国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

TCP三次握手

2019-11-11 01:50:10
字體:
供稿:網(wǎng)友
TCP(Transmission Control PRotocol) 傳輸控制協(xié)議TCP是主機對主機層的傳輸控制協(xié)議,提供可靠的連接服務(wù),采用三次握手確認建立一個連接:位碼即tcp標志位,有6種標示:SYN(synchronous建立聯(lián)機) ACK(acknowledgement 確認) PSH(push傳送) FIN(finish結(jié)束) RST(reset重置) URG(urgent緊急)Sequence number(順序號碼) Acknowledge number(確認號碼)第一次握手:主機A發(fā)送位碼為syn=1,隨機產(chǎn)生seq number=1234567的數(shù)據(jù)包到服務(wù)器,主機B由SYN=1知道,A要求建立聯(lián)機;第二次握手:主機B收到請求后要確認聯(lián)機信息,向A發(fā)送ack number=(主機A的seq+1),syn=1,ack=1,隨機產(chǎn)生seq=7654321的包第三次握手:主機A收到后檢查ack number是否正確,即第一次發(fā)送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發(fā)送ack number=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。完成三次握手,主機A與主機B開始傳送數(shù)據(jù)。在TCP/ip協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個連接。 第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進入SYN_SEND狀態(tài),等待服務(wù)器確認; 第二次握手:服務(wù)器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進入SYN_RECV狀態(tài); 第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進入ESTABLISHED狀態(tài),完成三次握手。 完成三次握手,客戶端與服務(wù)器開始傳送數(shù)據(jù).實例:IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1第一次握手:192.168.1.116發(fā)送位碼syn=1,隨機產(chǎn)生seq number=3626544836的數(shù)據(jù)包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立聯(lián)機;第二次握手:192.168.1.123收到請求后要確認聯(lián)機信息,向192.168.1.116發(fā)送ack number=3626544837,syn=1,ack=1,隨機產(chǎn)生seq=1739326486的包;第三次握手:192.168.1.116收到后檢查ack number是否正確,即第一次發(fā)送的seq number+1,以及位碼ack是否為1,若正確,192.168.1.116會再發(fā)送ack number=1739326487,ack=1,192.168.1.123收到后確認seq=seq+1,ack=1則連接建立成功。TCP三次握手所謂三次握手(Three-way Handshake),是指建立一個TCP連接時,需要客戶端和服務(wù)器總共發(fā)送3個包。 三次握手的目的是連接服務(wù)器指定端口,建立TCP連接,并同步連接雙方的序列號和確認號并交換 TCP 窗口大小信息.在socket編程中,客戶端執(zhí)行connect()時。將觸發(fā)三次握手。?第一次握手:客戶端發(fā)送一個TCP的SYN標志位置1的包指明客戶打算連接的服務(wù)器的端口,以及初始序號X,保存在包頭的序列號(Sequence Number)字段里。 ?第二次握手:服務(wù)器發(fā)回確認包(ACK)應(yīng)答。即SYN標志位和ACK標志位均為1同時,將確認序號(Acknowledgement Number)設(shè)置為客戶的I S N加1以.即X+1。 ?第三次握手.客戶端再次發(fā)送確認包(ACK) SYN標志位為0,ACK標志位為1.并且把服務(wù)器發(fā)來ACK的序號字段+1,放在確定字段中發(fā)送給對方.并且在數(shù)據(jù)段放寫ISN的+1 SYN攻擊   在三次握手過程中,服務(wù)器發(fā)送SYN-ACK之后,收到客戶端的ACK之前的TCP連接稱為半連接(half-open connect).此時服務(wù)器處于Syn_RECV狀態(tài).當收到ACK后,服務(wù)器轉(zhuǎn)入ESTABLISHED狀態(tài).  Syn攻擊就是 攻擊客戶端 在短時間內(nèi)偽造大量不存在的IP地址,向服務(wù)器不斷地發(fā)送syn包,服務(wù)器回復(fù)確認包,并等待客戶的確認,由于源地址是不存在的,服務(wù)器需要不斷的重發(fā)直 至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標系統(tǒng)運行緩慢,嚴重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓。 Syn攻擊是一個典型的DDOS攻擊。檢測SYN攻擊非常的方便,當你在服務(wù)器上看到大量的半連接狀態(tài)時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊.在linux下可以如下命令檢測是否被Syn攻擊netstat -n -p TCP | grep SYN_RECV一般較新的TCP/IP協(xié)議棧都對這一過程進行修正來防范Syn攻擊,修改tcp協(xié)議實現(xiàn)。主要方法有SynAttackProtect保護機制、SYN cookies技術(shù)、增加最大半連接和縮短超時時間等.但是不能完全防范syn攻擊。TCP 四次揮手TCP的連接的拆除需要發(fā)送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務(wù)器均可主動發(fā)起揮手動作,在socket編程中,任何一方執(zhí)行close()操作即可產(chǎn)生揮手操作。參見wireshark抓包,實測的抓包結(jié)果并沒有嚴格按揮手時序。我估計是時間間隔太短造成。【注意】 在TIME_WAIT狀態(tài)中,如果TCP client端最后一次發(fā)送的ACK丟失了,它將重新發(fā)送。TIME_WAIT狀態(tài)中所需要的時間是依賴于實現(xiàn)方法的。典型的值為30秒、1分鐘和2分鐘。等待之后連接正式關(guān)閉,并且所有的資源(包括端口號)都被釋放。【問題1】為什么連接的時候是三次握手,關(guān)閉的時候卻是四次握手?答:因為當Server端收到Client端的SYN連接請求報文后,可以直接發(fā)送SYN+ACK報文。其中ACK報文是用來應(yīng)答的,SYN報文是用來同步的。但是關(guān)閉連接時,當Server端收到FIN報文時,很可能并不會立即關(guān)閉SOCKET,所以只能先回復(fù)一個ACK報文,告訴Client端,"你發(fā)的FIN報文我收到了"。只有等到我Server端所有的報文都發(fā)送完了,我才能發(fā)送FIN報文,因此不能一起發(fā)送。故需要四步握手。【問題2】為什么TIME_WAIT狀態(tài)需要經(jīng)過2MSL(最大報文段生存時間)才能返回到CLOSE狀態(tài)?答:雖然按道理,四個報文都發(fā)送完畢,我們可以直接進入CLOSE狀態(tài)了,但是我們必須假象網(wǎng)絡(luò)是不可靠的,有可以最后一個ACK丟失。所以TIME_WAIT狀態(tài)就是用來重發(fā)可能丟失的ACK報文。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 芜湖县| 凤山县| 泰州市| 高安市| 澄迈县| 沙洋县| 平阳县| 中方县| 莫力| 凤山市| 辽宁省| 南涧| 崇信县| 会宁县| 萨嘎县| 钟祥市| 罗城| 东明县| 郑州市| 霸州市| 南充市| 宝坻区| 桂阳县| 昆明市| 赤峰市| 和平县| 石首市| 玉林市| 日土县| 巴东县| 娄烦县| 桃源县| 藁城市| 灵宝市| 西青区| 苏州市| 青阳县| 菏泽市| 林甸县| 钟山县| 巴中市|