面試連環炮系列(二十) TCP的滑動視窗協議是什麼

2022-01-19 04:33:36 字數 1014 閱讀 9272

tcp的滑動視窗協議是什麼

滑動視窗協議,用於網路資料傳輸時的流量控制,以避免擁塞的發生。該協議允許傳送方在停止並等待確認前傳送多個資料分組。由於傳送方不必每發乙個分組就停下來等待確認,因此該協議可以加速資料的傳輸,提高網路吞吐量。它本質上是描述接收方的tco資料報緩衝區大小的資料,傳送方根據這個資料來計算自己最多能傳送多長的資料。這個視窗大小為0時,傳送方將停止傳送資料。啟動定時器,等待這個視窗變成非0。

滑動視窗協議必須保證資料報的按序傳輸,傳送視窗中的序列號代表已傳送但尚未收到確認的資料報,傳送視窗可持續地維持一系列未經確認的資料報,因為傳送方視窗內的資料報可能在傳輸過程中丟失或損壞,所以傳送過程必須把傳送視窗中的所有資料報儲存起來以備重傳。傳送視窗一旦達到最大值,傳送過程就必須停止接收新的資料報,直到有空閒快取區。接收視窗外的資料報都要丟棄,當序列號等於接收視窗下限的資料報到達時,把它提交給應用程式並向傳送端傳送確認,接收視窗向前移動一位。傳送視窗和接收視窗上下限無需相同,大小也無需相同,但接收視窗大小需保持固定,傳送視窗大小可隨著資料報而改變。

滑動視窗的大小會變化嗎

tcp是雙工的協議,會話的雙方都可以同時接收、傳送資料。tcp會話的雙方都各自維護乙個傳送視窗和乙個接收視窗,各自的接收視窗大小取決於應用、系統、硬體的限制。當鏈路變好或者變差,這個視窗會發生變化。

這個協議什麼情況下會死鎖,怎麼解決死鎖

當接收端向傳送端傳送零視窗報文段後不久,接收端的接收快取又有了一些儲存空間,於是接收端向傳送端傳送了windows size = 2的報文段,然而這個報文段在傳輸過程中丟失了。傳送端一直等待收到接收端傳送的非零視窗的通知,而接收端一直等待傳送端傳送資料,這樣就死鎖了。

解決死鎖的方法是:tcp為每個連線設有乙個持續計時器。只要tcp連線的一方收到對方的零視窗通知,就啟動持續計時器,若持續計時器設定的時間到期,就傳送乙個零視窗探測報文段(僅攜帶1位元組的資料),而對方就在確認這個探測報文段時給出了現在的視窗值。

滑動視窗協議/10291557?fr=aladdin

TCP的滑動視窗

注 rto是由rtt計算得出的。參考 tcp中rtt的測量和rto的計算 tcp ip詳解 rtt和rto的計算方法 tcp會將資料拆分成段進行傳輸,而將資料段依次傳輸效率是極低的,需要對資料進行批量傳送,因此tcp必須解決可靠傳輸和包亂序的問題。tcp使用滑動視窗做流量控制與亂序重排。tcp的滑動...

TCP面試題之滑動視窗原理

作用 1.提供tcp可靠性 對傳送的資料進行確認 2.流量控制 視窗大小隨鏈路變化 一 tcp視窗機制 tcp中視窗大小是指tcp協議一次傳輸多少個資料。因為tcp是乙個面向連線的可靠的傳輸協議,既然是可靠的就需要傳輸的資料進行確認。tcp視窗機制有兩種,一種是固定視窗大小,另一種是滑動視窗。資料在...

TCP的滑動視窗與擁塞視窗

一 滑動視窗 滑動視窗協議是傳輸層進行流控的一種措施,接收方通過通告傳送方自己的視窗大小,從而控制傳送方的傳送速度,從而達到防止傳送方傳送速度過快而導致自己被淹沒的目的。對ack的再認識,ack通常被理解為收到資料後給出的乙個確認ack,ack包含兩個非常重要的資訊 一是期望接收到的下一位元組的序號...