TCP协议的三次握手、四次挥手
TCP(Transmission Control Protocol) 傳輸控制協(xié)議
TCP是主機對主機層的傳輸控制協(xié)議,提供可靠的連接服務(wù),通過三次握手建立一個連接
TCP 三次握手圖示:
位碼即tcp標(biāo)志位,有6種標(biāo)示:
SYN(synchronous建立聯(lián)機)
ACK(acknowledgement 確認(rèn))
PSH(push傳送)
FIN(finish結(jié)束)
RST(reset重置)
URG(urgent緊急)
Sequence number(順序號碼) Acknowledge number(確認(rèn)號碼)
第一次握手:客戶端A向服務(wù)器發(fā)送SYN=1 ,隨機產(chǎn)生seq=x(序號為x) 的數(shù)據(jù)包,進入SYN-SENT狀態(tài),服務(wù)器B由SYN=1得知A要建立連機。
第二次握手:服務(wù)端B收到請求后確認(rèn)信息,向客戶端返回SYN=1,ACK=1 ,seq=y,ack=x+1(表示客戶A下一次發(fā)送的數(shù)據(jù)包號為x+1),此時服務(wù)器B進入SYN-RCVD狀態(tài)。
第三次握手:客戶端A收到后檢查ack(確認(rèn)號)是否正確,即第一次發(fā)送的序號+1和ACK是否為1.若正確,客戶端A再次發(fā)送ACK=1,發(fā)送序號為seq=x+1,確認(rèn)號為y+1,服務(wù)端B收到后確認(rèn)seq與ack=1,此時客戶A和服務(wù)器B進入ESTABLISHED狀態(tài),完成三次握手。??????
完成三次握手,客戶端和服務(wù)器開始傳送數(shù)據(jù)。
圖解:
一個三次握手的過程(圖1,圖2)
(圖1)
?
(圖2)
第一次握手的標(biāo)志位(圖3)
我們可以看到標(biāo)志位里面只有個同步位,也就是在做請求(SYN)
?
?(圖3)
?
第二次握手的標(biāo)志位(圖4)
我們可以看到標(biāo)志位里面有個確認(rèn)位和同步位,也就是在做應(yīng)答(SYN + ACK)
(圖4)
?
第三次握手的標(biāo)志位(圖5)
我們可以看到標(biāo)志位里面只有個確認(rèn)位,也就是再做再次確認(rèn)(ACK)
(圖5)
?
一個完整的三次握手也就是 請求---應(yīng)答---再次確認(rèn)
四次揮手
由于TCP連接是全雙工的,因此每個方向都必須單獨進行關(guān)閉。客戶A和服務(wù)器B都可以主動斷開連接,如果A客戶發(fā)送完數(shù)據(jù)后不主動斷開就會占有服務(wù)器B的資源。
第一次揮手:客戶A和服務(wù)器B都處于ESTABLISHED建立狀態(tài),客戶A向服務(wù)器B發(fā)送FIN=1來結(jié)束A到B的數(shù)據(jù)傳送。客戶A就進入FIN-WAIT-1狀態(tài)。
第二次揮手:服務(wù)器B收到這個FIN,它返回一個ACK,確認(rèn)序號為收到的序號加1,和SYN一樣,一個FIN將占用一個序號,服務(wù)器B進入COLSE-WAIT狀態(tài)。
第三次揮手:服務(wù)器B關(guān)閉與客戶A的連接,發(fā)送一個FIN給客戶A。服務(wù)器B進入closed狀態(tài)
第四次揮手:客戶A返回ACK確認(rèn),并將確認(rèn)序號設(shè)置為收到的序號加1,客戶A進入TIME-WAIT狀態(tài),到此四次揮手完成。
轉(zhuǎn)載于:https://blog.51cto.com/lyhbwwk/2162564
總結(jié)
以上是生活随笔為你收集整理的TCP协议的三次握手、四次挥手的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8月21日科技联播:支付宝转账遭骗可一键
- 下一篇: jetty9.x版本配置优化