TCP IP的三次握手和四次揮手

2022-07-11 02:33:13 字數 2128 閱讀 6520

從乙個小故事開始:

三次牽手:

男:我喜歡你。

女:我知道了,我也喜歡你。

男:我知道了,那我們在一起吧。

四次分手:

男:我不喜歡你了,我要和你分手。

女:我知道到了,等我先打完這把王者榮耀再說。

女:我打完了,我也不喜歡你了,我要和你分手。

男:我知道了,同意分手。

序列號與確認號的含義

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.向客戶端傳送確認自己收...