固定窗口
TCP 還提供了流量控制機(jī)制。 流量控制可以調(diào)整給定會話中源和目的之間的數(shù)據(jù)流速,有助于保持 TCP 傳輸?shù)目煽啃浴?流量控制的實(shí)施方法包括限制一次可以轉(zhuǎn)發(fā)的數(shù)據(jù)段數(shù)量,并要求在發(fā)送更多數(shù)據(jù)段之前確認(rèn)接收。
要實(shí)施流量控制,TCP 要確定的第一件事是目的設(shè)備可以接受的數(shù)據(jù)段數(shù)量。 TCP 報頭包括一個稱為“窗口大小”的 16 位字段。 這是 TCP 會話的目的設(shè)備一次可以接受和處理的字節(jié)數(shù)。 通過源和目標(biāo)之間的三次握手,會話開始時即可確定初始窗口大小。 一旦同意,源設(shè)備必須根據(jù)窗口大小限制發(fā)送到目的設(shè)備的數(shù)據(jù)段數(shù)量。 只有源設(shè)備收到數(shù)據(jù)段已接收的確認(rèn)之后,才能繼續(xù)發(fā)送更多會話數(shù)據(jù)。
在接收確認(rèn)的延遲過程中,發(fā)送方不會發(fā)送任何額外數(shù)據(jù)段。 如果網(wǎng)絡(luò)擁堵,或者接收主機(jī)資源緊張,延遲時間可能就更長。 延遲時間越長,該會話過程的有效傳輸速率越低, 當(dāng)運(yùn)行多個會話時,減緩每個會話的數(shù)據(jù)傳輸有助于減少網(wǎng)絡(luò)和目的設(shè)備上的資源沖突。
請參看上圖中對窗口大小和確認(rèn)消息的簡易展示。 在本例中,TCP 會話的初始窗口大小為 3000 字節(jié)。 此會話的發(fā)送方在傳輸 3000 字節(jié)后等待這些數(shù)據(jù)的確認(rèn)消息,以便繼續(xù)傳輸更多數(shù)據(jù)段。 一旦發(fā)送方收到接收方發(fā)送的確認(rèn)消息,它就可以傳輸另外 3000 字節(jié)的數(shù)據(jù)段。
TCP 使用窗口大小嘗試管理傳輸速率,將其調(diào)整為網(wǎng)絡(luò)和目的設(shè)備可以支持的最大速度,同時最大限度減少損失和重新傳輸。
TCP滑動窗口
我們也可以通過動態(tài)窗口大小來控制數(shù)據(jù)流量。 當(dāng)網(wǎng)絡(luò)資源受到限制時,TCP 可以減小窗口的大小,這樣,目的主機(jī)就需要更加頻繁地確認(rèn)所接收的數(shù)據(jù)段。 由于源主機(jī)需要更加頻繁地等待數(shù)據(jù)確認(rèn),這便可以大大降低傳輸?shù)乃俾省?/p>
接收主機(jī)將窗口大小值發(fā)送到發(fā)送主機(jī),表示其準(zhǔn)備接收的字節(jié)數(shù)。 如果目的主機(jī)由于緩沖內(nèi)存受限需要降低通信速率,那么它向源主機(jī)發(fā)送的確認(rèn)信息中可以包含一個較小的窗口大小值。
如圖所示,如果接收主機(jī)發(fā)生擁堵,它可以向發(fā)送主機(jī)發(fā)送指定了較小窗口大小的數(shù)據(jù)段。 圖中顯示,其中一個數(shù)據(jù)段丟失了。 接收方將返回?cái)?shù)據(jù)段的 TCP 報頭中的窗口字段值由 3,000 減為 1,500,即將窗口大小改為 1,500。
在沒有數(shù)據(jù)丟失或資源限制的情況下傳輸一段時間后,接收方開始增加窗口字段,這樣可以減少網(wǎng)絡(luò)開銷,因?yàn)楸仨毎l(fā)送的確認(rèn)減少。 窗口大小持續(xù)增加,直至出現(xiàn)數(shù)據(jù)丟失,然后窗口大小隨之減少。
窗口大小的這種動態(tài)增減是 TCP 中的一個持續(xù)不斷的過程。 在高效網(wǎng)絡(luò)中,由于不丟失數(shù)據(jù),窗口可能會相當(dāng)大。 在基層基礎(chǔ)設(shè)施面臨壓力的網(wǎng)絡(luò)中,窗口可能會很小。
-
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1954瀏覽量
64855 -
TCP
+關(guān)注
關(guān)注
8文章
1378瀏覽量
79303 -
流量控制
+關(guān)注
關(guān)注
0文章
27瀏覽量
9675
發(fā)布評論請先 登錄
相關(guān)推薦
如何優(yōu)化TCP協(xié)議的性能
使用SNRBoost 3G技術(shù)的窗口
![使用SNRBoost 3G技術(shù)的<b class='flag-5'>窗口</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
控制臺窗口主機(jī)是什么
針對DLP DMD窗口的波長透射率考慮因素
![針對DLP DMD<b class='flag-5'>窗口</b>的波長透射率考慮因素](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
中值濾波窗口大小對結(jié)果影響有哪些
請問espnow的窗口同步機(jī)制如何使用?
鴻蒙開發(fā)接口圖形圖像:【@ohos.window (窗口)】
![鴻蒙開發(fā)接口圖形圖像:【@ohos.window (<b class='flag-5'>窗口</b>)】](https://file1.elecfans.com/web2/M00/EA/55/wKgZomZX34GAfTqdAAA9utPXPko512.png)
如何運(yùn)用emwin把顯示屏分為上下兩個窗口,實(shí)現(xiàn)上下窗口分別可以左右滑動?
鴻蒙OS元服務(wù)開發(fā):【(Stage模型)設(shè)置應(yīng)用主窗口】
![鴻蒙OS元服務(wù)開發(fā):【(Stage模型)設(shè)置應(yīng)用主<b class='flag-5'>窗口</b>】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙OS元服務(wù)開發(fā):【(Stage模型)學(xué)習(xí)窗口沉浸式能力】
![鴻蒙OS元服務(wù)開發(fā):【(Stage模型)學(xué)習(xí)<b class='flag-5'>窗口</b>沉浸式能力】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
MCGS嵌入版組態(tài)軟件主控窗口的屬性設(shè)置
![MCGS嵌入版組態(tài)軟件主控<b class='flag-5'>窗口</b>的屬性設(shè)置](https://file1.elecfans.com/web2/M00/C6/0E/wKgZomYE5biAANfHAAAuoyBmk7A130.png)
窗口子系統(tǒng)基本概念與流程分析
![<b class='flag-5'>窗口</b>子系統(tǒng)基本概念與流程分析](https://file1.elecfans.com/web2/M00/C3/84/wKgaomXlvAWALf5cAAAWJdArVoE132.png)
評論