從乙個小故事開始:
三次牽手:
男:我喜歡你。
女:我知道了,我也喜歡你。
男:我知道了,那我們在一起吧。
四次分手:
男:我不喜歡你了,我要和你分手。
女:我知道到了,等我先打完這把王者榮耀再說。
女:我打完了,我也不喜歡你了,我要和你分手。
男:我知道了,同意分手。
序列號與確認號的含義
ack=1:確認序號有效;
syn=1:發起乙個新連線;
fin=1:釋放乙個連線;
seq = x:本報文段傳送的資料的第乙個位元組的序號
第一次握手
客戶端 ------->>syn=1,seq=x ---------->>伺服器 客戶端進入 syn-sent 狀態(在傳送連線請求後等待匹配的連線請求)
注:客戶端向伺服器發起乙個連線,並傳送乙個第乙個位元組的序號為x的報文字段
第二次握手
伺服器 ------->>syn=1,ack=1,seq=y,ack=x+1 ---------->>客戶端 伺服器端進入 syn-rcvd 狀態 (在收到和傳送乙個連線請求後等待對連線請求的確認)
注:伺服器向客戶端發起乙個連線,並傳送乙個隨機產生乙個值 seq=y,確定發出的序號有效,並向客戶端傳送期待下次接受到乙個第乙個位元組的序號為x+1的報文字段
第三次握手
客戶端 -------->> ack=1,seq=x+1,ack=y+1----------->>伺服器 客戶端和伺服器端進入 established 狀態 ( 代表乙個開啟的連線,資料可以傳送給使用者)
注:客戶端收到確認後,檢查 ack 是否為 x+1,ack 是否為 1,如果正確則將標誌位 ack 置為 1,ack=y+1,並將該資料報傳送給伺服器端,伺服器端檢查 ack是否為 y+1,ack 是否為 1,如果正確則連線建立成功
第一次揮手
客戶端 -------->>fin=1,seq=u ---------->>伺服器 客戶端進入 fin-wait-1 狀態 (等待遠端 tcp 的連線中斷請求,或先前的連線中斷請求的確認)
注:客戶端程序發出連線釋放報文,並且停止傳送資料。釋放資料報文首部,fin=1,其序列號為 seq=u 等於前面已經傳送過來的資料的最後乙個位元組的序號加 1,並將該資料報傳送給伺服器端,用來關閉客戶端到伺服器端的資料傳送。
第二次揮手
伺服器 -------->> ack=1,seq=v,ack=u+1---------->>客戶端 客戶端就進入 fin-wait-2 狀態 (從遠端 tcp 等待連線中斷請求)
注:伺服器端收到 fin=1 後,發出確認報文,ack=1,ack=u+1,並且帶上自己的序列號 seq=v。
第三次揮手
伺服器 --------->>fin=1,ack=1,seq=w,ack=u+1---------->> 客戶端 伺服器端進入 last-ack 狀態 (等待原來發向遠端 tcp 的連線中斷請求的確認)
注:當伺服器端確定資料已傳送完成,就向客戶端傳送連線釋放報文。置 fin=1,ack=1,ack=u+1,由於在半關閉狀態,伺服器很可能又傳送了一些資料,假定此時的序列號為 seq=w
第四次揮手
客戶端 --------->>ack=1,seq=u+1,ack=w+1 ------------->>伺服器 客戶端就進入 time-wait 狀態 (等待足夠的時間以確保遠端 tcp 接收到連線中斷請求的確認) 伺服器只要收到了客戶端發出的確認,立即進入 closed 狀態 (沒有任何連線狀態)
注:客戶端收到伺服器端的連線釋放報文後,必須發出確認 ack=1,ack=w+1,而自己的序列號是 seq=u+1,此時,客戶端就進入 time-wait 狀態,如果 server 端沒有收到 ack 則可以重傳。注意此時 tcp 連線還沒有釋放,必須經過 2msl(最長報文段壽命)的時間後,當客戶端撤銷相應的 tcb 後,才進入 closed 狀態。伺服器只要收到了客戶端發出的確認,立即進入 closed 狀態。同樣,撤銷 tcb 後,就結束了這次的 tcp 連線。可以看到,伺服器結束 tcp 連線的時間要比客戶端早一些
TCP IP三次握手和四次揮手
一 tcp協議 1 tcp協議是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議,採用全雙工通訊 full duplex 2 雙工通訊 full duplex 指通訊雙方都能在同一時刻進行傳送和接收操作,目前所有的交換機都支援雙工模式。3 半雙工方式 half duplex 指通訊雙方都能在同一...
TCP IP 三次握手和四次揮手
作用 建立tcp連線 1.三次握手是客戶端先發起請求到伺服器,此時伺服器處於listen監聽狀態,a會先傳送乙個連線請求的報文 syn 1,ack 0,seq x 這個包也稱為syn包,當客戶端傳送完syn包後,就進入syn sent狀態。2.伺服器b收到報文後,如果確認要與a建立tcp連線,要回覆...
TCP IP三次握手 四次揮手
一 tcp ip三次握手原理 建立連線協議 三次握手 1 客戶端向伺服器端傳送連線請求包syn syn j 等待伺服器回應 2 伺服器端收到客戶端連線請求包syn syn j 後,將客戶端的請求包syn syn j 放入到自己的未連線佇列,此時伺服器需要傳送兩個包給客戶端 1.向客戶端傳送確認自己收...