tcp的三次握手和4次揮手

2021-08-07 17:18:43 字數 1188 閱讀 2672

第一次握手:host1傳送乙個tcp標誌位syn=1、ack=0的資料報給host2,並隨機會產生乙個sequence number=3233.當host2接收到這個資料後,host2由syn=1可知客戶端是想要建立連線;

第二次握手:host2要對客戶端的聯機請求進行確認,向host1傳送應答號ack=1、syn=1、

確認號acknowledge number=3234,此值是host1的序列號加1,還會產生乙個隨機的序列號sequence number=36457,這樣就告訴host1可以進行連線;

第三次握手:host1收到資料後檢查acknowledge number是否是3233+1的值,以及ack的值是否為1,若為1,host1會傳送ack=1、確認號碼acknowledge number=36457,告訴host2,你的請求連線被確認,連線可以建立。

第一次揮手:當傳輸的資料到達尾部時,host1向host2傳送fin=1標誌位;可理解成,host1向host2說,我這邊的資料傳送完成了,我準備斷開了連線;

第二次揮手:因tcp的連線是全雙工的雙向連線,關閉也是要從兩邊關閉;當host2收到host1發來的fin=1的標誌位後,host2不會立刻向host1傳送find=1的請求關閉資訊,而是先向host1傳送乙個ack=1的應答資訊,表示:你請求關閉的請求我已經收到,但我可能還有資料沒有完成傳送,你再等下,等我資料傳輸完成了我就告訴你;

第三次揮手:host2資料傳輸完成,向host1傳送fin=1,host1收到請求關閉連線的請求後,host1就明白host2的資料已傳輸完成,現在可以斷開連線了,

第四次揮手:host1收到find=1後,host1還是怕由於網路不穩定的原因,怕host2不知道他要斷開連線,於是向host2傳送ack=1確認資訊進行確認,把自己設定成time_wait狀態並啟動定時器,如果host2沒有收到ack,host2端tcp的定時器到達後,會要求host1重新傳送ack,當host2收到ack後,host2就斷開連線;當host1等待2mls(2倍報文最大生存時間)後,沒有收到host2的重傳請求後,他就知道host2已收到了ack,所以host1此時才關閉自己的連線。這一點我覺得設計得非常巧妙!

tcp的4次揮手 三次握手

1.tcp短連線 模擬一種tcp短連線的情況 1.client 向 server 發起連線請求 2.server 接到請求,雙 建 連線 3.client 向 server 傳送訊息 4.server 回應 client 5.一次讀寫完成,此時雙方任何乙個都可以發起 close 操作 在步驟5中,一...

TCP協議的三次握手 4次揮手

tcp的連線建立是乙個三次握手過程,目的是為了通訊雙方確認開始序號,以便後續通訊的有序進行。主要步驟如下 連線開始時,連線建立方 client 傳送syn包,幷包含了自己的初始序號a 連線接受方 server 收到syn包以後會回覆乙個syn ack包,其中包含了對上乙個a包的回應資訊ack,回應的...

TCP連線的「三次握手」與「4次揮手」

三次握手 所謂的三次握手即tcp連線的建立。這個連線必須是一方主動開啟,另一方被動開啟的。以下為客戶端主動發起連線的 握手之前主動開啟連線的客戶端結束closed階段,被動開啟的伺服器端也結束closed階段,並進入listen階段。隨後開始 三次握手 1 首先客戶端向伺服器端傳送一段tcp報文,其...