TCP的視窗滑動機制

2021-08-23 12:24:06 字數 1164 閱讀 3315

秋招面試不論哪一家,只要是帶點技術崗的都會問tcp/ip方面的知識,前面已經總結過tcp的三次握手,四次釋放、今天在來說一說tcp協議的視窗滑動機制吧。

本文摘自博文tcp滑動視窗控制流量的原理

tcp的滑動視窗主要有兩個作用,一是提供tcp的可靠性,二是提供tcp的流控特性同時滑動視窗機制還體現了tcp面向位元組流的設計思路。

可靠:對傳送的資料進行確認

流控制:視窗大小隨鏈路變化。

tcp中視窗大小是指tcp協議一次傳輸多少個資料。因為tcp是乙個面向連線的可靠的傳輸協議,既然是可靠的就需要對傳輸的資料進行確認。tcp的視窗機制有兩種,一種是固定視窗大小,另一種是滑動視窗。資料在傳輸時,tcp會對所有資料進行編號,傳送方在傳送過程中始終保持著乙個視窗,只有落在傳送視窗內的資料幀才允許被傳送;同時接受方也始終保持著乙個接收視窗,只有落在視窗內的資料才會被接收。這樣通過改變傳送視窗和接收視窗的大小就可以實現流量控制。

tcp的視窗滑動技術通過動態改變視窗的大小來調節兩台主機之間資料傳輸。每個tcp/ip主機支援全雙工資料傳輸,因此tcp有兩個滑動視窗,乙個用於接收資料,乙個用於傳送資料。接收方裝置要求視窗大小為0時,表明接收方已經接收了全部資料,或者接收方應用程式沒有時間讀取資料,要求暫停傳送。

tcp在傳送資料時,第一次發資料傳送方的視窗大小是由鏈路頻寬決定的,但是接受方在接收到傳送方的資料後,返回ack確認報文,同時也告訴了傳送方自己的視窗大小,此時傳送發第二次傳送資料時,會改變自己的視窗大小和接受方一致。

當視窗過大時,會導致不必要的資料來擁塞我們的鏈路,但是視窗太小時,會造成很大的延時,比如為1時,傳送方沒傳送乙個資料,接受方就會返回乙個ack報文,在傳送方未接收到接受方的確認報文ack之前不會進行下一次傳送。當鏈路變好了或者變差了這個視窗還會發生變話,並不是第一次協商好了以後就永遠不變了。

是tcp使用的一種流量控制方法。該協議允許傳送方在停止並等待接收確認報文前可以連續傳送多個分組。由於傳送方不必每發乙個分組就停下來等待確認,因此該協議可以加速資料的傳輸。 只有在接收視窗向前滑動時(與此同時也傳送了確認),傳送視窗才有可能向前滑動。收發兩端的視窗按照以上規律不斷地向前滑動,因此這種協議又稱為滑動視窗協議。

TCP視窗滑動機制

滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了乙個連續的允許傳送的幀的序號,稱為傳送視窗 同時,接收方也維持了乙個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大小一般不同。傳送方視窗內的序列號代表了那些已經被傳...

TCP視窗滑動機制

滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了乙個連續的允許傳送的幀的序號,稱為傳送視窗 同時,接收方也維持了乙個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大小一般不同。傳送方視窗內的序列號代表了那些已經被傳...

TCP的視窗滑動機制

tcp的滑動視窗主要有兩個作用,一是提供tcp的可靠性,二是提供tcp的流控特性。同時滑動視窗機制還體現了tcp面向位元組流的設計思路。可靠 對傳送的資料進行確認 流控制 視窗大小隨鏈路變化。tcp中視窗大小是指tcp協議一次傳輸多少個資料。因為tcp是乙個面向連線的可靠的傳輸協議,既然是可靠的就需...