網路學習 傳輸層TCP(視窗控制提高效率)

2021-08-20 06:10:35 字數 2104 閱讀 5461

內容are

關鍵字tcp以段為單位傳送資料

mms利用視窗控制提高效率

視窗大小,視窗滑動方式

視窗控制和重發控制

快重傳,ack丟了,資料報丟了

tcp以段為單位傳送資料

tcp在建立連線的時候,就確定了傳送資料報的基本單位。這個長度被稱之為「最大訊息長度」(mms:maximum segment size),。最理想的情況是。mms等於ip資料報中不會被分片處理的最大資料長度。

tcp在傳送資料的時候,是以mms的大小將資料進行切割傳送。進行重發時也是以mms為單位進行傳送。

mms是在三次握手的時候,在兩端計算機中得出。兩端主機發出建立連線的請求時。會在tcp首部寫上mms選項。告訴對方自己的mms大小是多少。然後在兩者之中選擇乙個較小值使用。

(為附加mms,tcp的首部將不再是20位元組,而是4位元組的整數倍,且在建立連線時,有一方mms選項被省略,可以選為ip資料報長度不超過576位元組的長度)

利用視窗控制提高效率

tcp以乙個段為單位,每發乙個段進行一次確認,這樣的傳輸方式有乙個缺點,就是效率低。包往返的時間越長,通訊效率就越低。

如下

為了解決這個問題tcp引入視窗這個概念。即使在往返時間較長的情況下,他也能控制網路效能的下降。

如下圖,確認應答不再是以每個分段進行確認,而是以更大的單位進行確認,**時間將會大幅度縮短。也就是說,傳送端在傳送完乙個段後不必一直等待應答確認,而是可以繼續傳送。

視窗大小指的是無需等待確認應答而可以繼續傳送資料的最大值. 上圖的視窗大小就是4000個位元組(四個段)

傳送前四個段的時候, 不需要等待任何ack, 直接傳送;

收到第乙個ack後, 滑動視窗向後移動, 繼續傳送第五個段的資料; 依次類推;

作業系統核心為了維護這個滑動視窗, 需要開闢 傳送緩衝區 來記錄當前還有哪些資料沒有應答;

只有確認應答過的資料, 才能從緩衝區刪掉;視窗越大, 則網路的吞吐率就越高;

以下是視窗滑動方式

如圖,傳送區高亮處就是前面提到的視窗。在這個視窗內的資料,即便沒有收到ack,也可以傳送出去。不過在整個視窗的確認應答收到之前,如果發現部分資料丟包,那麼傳送端仍然要負責重傳。, 需要開闢 傳送緩衝區 來記錄當前這些待被重傳的資料。直到收到他們的確認應答。

在滑動視窗左邊是已經傳送的卻收到ack的資料。右邊是尚未傳送的資料。當資料發出後,如期收到ack,就不需要重發,且將他們從緩衝區清除。

收到應答時,將串列埠滑動到確認應答序列號位置,這樣就可以順序的將多個段同時傳送,以提高效能。

視窗控制和重發控制

提高了效率,並不意味著不會丟包。

1)ack丟了

這種情況下, 部分ack丟了並不要緊, 因為可以通過後續的ack進行確認。

2)資料報丟了

當某一段報文段丟失之後, 傳送端會一直收到 1001 這樣的ack, 就像是在提醒傳送端 「我想要的是 1001」 一樣;如果傳送端主機連續三次收到了同樣乙個 「1001」 這樣的應答, 就會將對應的資料1001 - 2000 重新傳送(之所以會收到三次而不是兩次,是因為即使資料段序列號被替換兩次也會觸發重傳機制。

這個時候接收端收到了 1001 之後, 再次返回的ack就是7001了(因為2001 - 7000)接收端其實之前就已經收到了, 被放到了接收端作業系統核心的接收緩衝區接收緩衝區中;

這種機制被稱為 「高速重發控制」(也叫 「快重傳」).

快重傳基於慢重傳。

網路學習 傳輸層TCP(流量控制和擁塞控制)

內容 關鍵字流量控制 視窗大小,視窗擴大因子m,機理,視窗探測資料段 擁塞控制 擁塞視窗,慢啟動,閾值 流量控制概念 接收端處理資料的速度是有限的,如果傳送方的速度太快,就會把緩衝區u打滿。這個時候如果繼續傳送資料,就會導致丟包等一系列連鎖反應。所以tcp支援根據接收端能力來決定傳送端的傳送速度。這...

傳輸層 傳輸控制協議TCP概述 之一

一,tcp的主要特點 1 面向連線 2 點對點 3 可靠交付,無差錯 不丟包 不重複 按需到達 4 全雙工通訊,接收端和傳送端都設有傳送快取和接受快取 5 面向位元組流 tcp把應用程式交付下來的資料僅僅看成 一連串無結構位元組流 但tcp不知道位元組流含義。tcp也不保證接收方收到的資料塊和傳送方...

網路原理 TCP協議(傳輸控制協議)

寫在前面 這篇文章講解的很詳細,但是建議從末尾的tcp的功能總結來看,先對tcp有乙個大致了解,在詳細的構建tcp的整體 定義 對資料傳輸進行控制的可靠協議,同時既要保證可靠性,又要具有高效性。特點 保證可靠性 校驗和 同時對資料體也進行校驗 序列號 按序到達 確認應答 每次傳送的訊息需要進行應答 ...