詳解TCP協議(二) 詳解滑動視窗下丟包情況

2021-10-09 03:30:45 字數 657 閱讀 6562

首先滑動視窗是在保證可靠性的前提下,讓我們進一步提高傳輸效率。

如果沒有滑動視窗的機制:傳輸n份檔案,就需要等待n次應答時間,

總的傳輸時間=n份傳輸時間+n份應答傳輸時間

如果在在滑動視窗的機制下傳送資料發生丟包:

1.ack丟包

如上圖,資料報已經到達,ack丟了

如果丟失ack,不需要做任何處理,如1001這個ack丟了,但是2001ack卻已經傳送給主機a,說明1-1000這個資料也順利到達,1001ack丟了無所謂,只要當前序號開始,就說明之前的資料已經正確傳輸到達主機b

2.資料報丟包

如上圖1001-2000資料報丟了,而2001-3000,3001-4000都順利到達,此時主機b反饋的ack確認序號始終是1001,主機a如果發現主機b連續傳送ack都是1001,主機a就明白1001-2000這個資料丟包,就會重新傳送,當主機b重新收到丟失的1001-2000資料後,直接返回ack4001,因為2001-4000已經接受過(都在緩衝區等待),接下來ack直接從4001開始。

TCP 滑動視窗協議

什麼是滑動視窗協議?一圖勝千言,看下面的圖。簡單解釋下,傳送和接受方都會維護乙個資料幀的序列,這個序列被稱作視窗。傳送方的視窗大小由接受方確定,目的在於控制傳送速度,以免接受方的快取不夠大,而導致溢位,同時控制流量也可以避免網路擁塞。下面圖中的4,5,6號資料幀已經被傳送出去,但是未收到關聯的ack...

TCP 滑動視窗協議

本系列文章是博主學習tcp協議以來的個人筆記。博主不能保證本文所述 內容絕對正確,所 以請讀者抱著懷疑的態度閱讀本部落格內的文字。如果讀 者因本部落格內的文字造成損失,本人 無力負責。如果有任何謬誤或者問題,希望讀者不吝賜教。在遍布世界的網際網路線路上進行可靠的資料傳輸談何容易,一來傳輸介質 有差異...

TCP 滑動視窗協議

什麼是滑動視窗協議?一圖勝千言,看下面的圖。簡單解釋下,傳送和接受方都會維護乙個資料幀的序列,這個序列被稱作視窗。傳送方的視窗大小由接受方確定,目的在於控制傳送速度,以免接受方的快取不夠大,而導致溢位,同時控制流量也可以避免網路擁塞。下面圖中的4,5,6號資料幀已經被傳送出去,但是未收到關聯的ack...