TCP可靠機制

2021-09-25 17:52:56 字數 1129 閱讀 4448

超時重傳:

可以重傳超時事件內未收到確認的tcp報文段.

為此,tcp每個模組為每個tcp報文段都維護乙個重傳定時器,該定時器在tcp報文段第一次被傳送時啟動.如果超時時間內未收到接收方的應答,tcp模組將重傳tcp報文段並重置定時器.tcp一共執行5次重傳,每次重傳超時時間都增加一倍,在5次重傳均失敗的情況下,底層的ip和arp開始接管,直至客戶端放棄連線為止.

linux有兩個重要的核心引數與tcp超時重傳相關:(1)在底層ip接管之前tcp最少執行的重傳次數,預設值是3.(2)連線放棄前tcp最多可以執行的重傳次數,預設值是15.

擁塞控制:

為了提高網路利用率,降低丟包率,並保證網路資源對每條資料流的公平性.

包括四個部分:慢啟動,擁塞避免,快速重傳,快速恢復

擁塞控制的最終受控變數是傳送端向網路一次連續寫入(收到其中第乙個資料的確認之前)的資料量,我們稱為傳送視窗.它限制了傳送端能連續傳送的tcp報文段數量.這些tcp報文段的最大長度稱為smss.

慢啟動和擁塞避免:

慢啟動演算法:tcp模組剛開始傳送資料時並不知道網路的實際情況,需要用一種試探的方式平滑地增加擁塞視窗的大小,但是如果不施加其他手段,慢啟動必然使得擁塞視窗很快膨脹,並導致網路擁塞,所以定義了乙個慢啟動門限,如果擁塞視窗的大小超過該值,tcp將進入擁塞避免階段.

傳送端判斷擁塞發生的依據:(1)傳輸超時,或者說tcp重傳定時器溢位.(2)接收到重複的確認報文段.

對第一種情況:使用慢啟動和擁塞避免.

第二種情況:使用快速重傳和快速恢復,如果第二種情況發生在第一次之後,則也被當成第一種情況來對待.

快速重傳和快速恢復:

在很多情況下,傳送端都可能接收到重複的確認報文段,比如tcp報文段丟失,或者接收端收到亂序tcp報文段並重排它.擁塞控制演算法需要判斷當收到重複的確認報文段時,網路是否真的發生了擁塞,或者說tcp報文段是否真的丟失了.

做法:傳送端如果連續收到3個重複的確認報文段,就認為是擁塞發生了.然後啟用快速重傳和快速恢復演算法來處理擁塞:

(1)當收到第3個重複的確認報文段時,立即重傳丟失的報文段,並設定擁塞視窗.

(2)每次收到乙個重複的確認時,設定擁塞視窗.此時傳送端可以傳送新的tcp報文段(如果新的擁塞視窗允許的話)

(3)當收到新資料的確認時,設定擁塞視窗等於新的慢啟動門限值.

TCP的可靠傳輸機制

tcp的可靠傳輸機制 1 面向位元組流和快取機制 應用資料被分割成tcp認為最適合傳送的資料塊。2 超時重傳和確認機制 當tcp發出乙個段後,它啟動乙個定時器,等待目的端確認收到這個報文段。如果不能及時收到乙個確認,將重發這個報文段。當tcp收到發自tcp連線另一端的資料,它將傳送乙個確認。tcp有...

TCP的可靠傳輸機制詳解

tcp的可靠傳輸通過以下四種傳輸機制來保證。上層資料被分割為tcp認為最合適傳送的資料塊。我們將tcp傳遞給傳輸層 ip 的資訊單位稱為報文段或段。確認 當tcp收到來自tcp連線另一端的資料後,將給對端傳送乙個確認資訊,這個確認資訊並不是立即傳送的,通常情況下會延遲幾分之一秒。重傳 當tcp發出乙...

TCP的可靠性保證機制

我們常說,udp是不可靠的通訊協議,而後來發展的tcp彌補了udp的不可靠缺陷,那麼tcp是靠什麼來保證可靠性的呢?當接收方收到報文時就會確認,如果傳送方傳送一段時間後沒有確認就重傳 tcp會利用視窗控制來提高傳輸速度,意思是在乙個視窗大小內,不用一定要等到應答才能傳送下一段資料,視窗大小就是無需等...