每天資訊【思唯網路】TCP協議介紹

菜單

【思唯網路】TCP協議介紹

TCP協議握手為什麼需要三次?

為了實現可靠傳輸,傳送方和接收方始終需要同步序號。需要注意的是, 序號並不是從 0 開始的, 而是由傳送方隨機選擇的初始序列號 開始 。由於 TCP 是一個雙向通訊協議, 通訊雙方都有能力傳送資訊, 並接收響應。因此, 通訊雙方都需要隨機產生一個初始的序列號, 並且把這個起始值告訴對方。

於是, 這個過程就變成了下面這樣。

【思唯網路】TCP協議介紹

TCP協議揮手為什麼需要四次?

四次揮手過程以及狀態

【思唯網路】TCP協議介紹

動關閉方向被動關閉方傳送結束報文段。

報文段2:被動關閉方傳送結束報文段確認,此時主動關閉方資料已經傳輸完畢。

報文段3:被動關閉方資料也傳送完畢,傳送結束報文段。

報文段4:主動關閉方對結束報文段進行確認。

可以三次揮手嗎?

觀察四次揮手過程可見報文段3包含了報文段2中的確認值,因此三次揮手只能將報文段3和報文段2合併。但這樣合併是有問題的。被動關閉方傳送報文段2只是確認主動關閉方發來的結束報文段,但並不代表自身的資料已經傳輸完畢。即就是當斷開連線的時候,一個方向的斷開,只是說明該方向資料已傳輸完畢,而另一方向或許還有資料,所以要等到另一個方向資料也全部傳輸完成後,才能實現三次握手。但是這個時間不確定,因此會造成主動關閉方的結束報文段長時間未得到響應而進行超時重傳等等。造成了不必要的資源浪費甚至更意想不到的問題。

一起開心的衝浪吧!