1. 程式人生 > >TCP滑動視窗移動規則

TCP滑動視窗移動規則

一、TCP的滑動視窗大小實際上就是socket的接收緩衝區大小的位元組數

二、對於server端的socket一定要在listen之間設定緩衝區大小,因為,accept時新產生的socket會繼承監聽socket的緩衝區大小。對於client端的socket一定要在connet之前設定緩衝區大小,因為connet時需要進行三次握手過程,會通知對方自己的視窗大小。在connet之後再設定緩衝區,已經沒有什麼意義。

三、由於緩衝區大小在TCP頭部只有16位來表示,所以它的最大值是65536,但是對於一些情況來說需要使用更大的滑動視窗,這時候就要使用擴充套件的滑動視窗,如光纖高速通訊網路,或者是衛星長連線網路,需要視窗儘可能的大。這時會使用擴充套件的32位的滑動視窗大小。

四、滑動視窗聽移動規則:

1、視窗合攏:在收到對端資料後,自己確認了資料的正確性,這些資料會被儲存到緩衝區,等待應用程式獲取。但這時候因為已經確認了資料的正確性,需要向對方傳送確認響應ACK,又因為這些資料還沒有被應用程序取走,這時候便需要進行視窗合攏,緩衝區的視窗左邊緣向右滑動。注意響應的ACK序號是對方傳送資料包的序號,一個對方傳送的序號,可能因為視窗張開會被響應(ACK)多次。

2、視窗張開:視窗收縮後,應用程序一旦從緩衝區中取出資料,TCP的滑動視窗需要進行擴張,這時候視窗的右邊緣向右擴張,實際上視窗這是一個環形緩衝區,視窗的右邊緣擴張會使用原來被應用程序取走內容的緩衝區。
在視窗進行擴張後,需要使用ACK通知對端,這時候ACK的序號依然是上次確認收到包的序號。

3、視窗收縮,視窗的右邊緣向左滑動,稱為視窗收縮,Host Requirement RFC強烈建議不要這樣做,但TCP必須能夠在某一端產生這種情況時進行處理。

相關推薦

TCP滑動視窗移動規則

一、TCP的滑動視窗大小實際上就是socket的接收緩衝區大小的位元組數 二、對於server端的socket一定要在listen之間設定緩衝區大小,因為,accept時新產生的socket會繼承監聽socket的緩衝區大小。對於client端的socket一定要在co

TCP滑動視窗機制 流量控制 擁塞控制

轉自http://blog.chinaunix.net/uid-26275986-id-4109679.html TCP協議作為一個可靠的面向流的傳輸協議,其可靠性和流量控制由滑動視窗協議保證,而擁塞控制則由控制視窗結合一系列的控制演算法實現。 一、滑動視窗協議     &n

TCP滑動視窗控制流量的原理 TCP滑動視窗控制流量的原理

  TCP滑動視窗控制流量的原理   TCP的滑動視窗機制       TCP這個協議是網路中使用的比較廣泛,他是一個面向連線的可靠的傳輸協議。既然是一個可靠的傳輸協議就需要對資料進行確認。TCP協議裡視窗機制有2種:一種是固定的

TCP 滑動視窗 (流量控制)

首先明確: 1)TCP滑動視窗分為接受視窗,傳送視窗 滑動視窗協議是傳輸層進行流控的一種措施,接收方通過通告發送方自己的視窗大小,從而控制傳送方的傳送速度,從而達到防止傳送方傳送速度過快而導致自己被淹沒的目的。 對ACK的再認識,ack通常被理解為收到資料後給出的一個確認ACK,ACK包含兩個非常重要的資訊:

網路基本功(八):細說TCP滑動視窗

介紹 將TCP與UDP這樣的簡單傳輸協議區分開來的是它傳輸資料的質量。TCP對於傳送資料進行跟蹤,這種資料管理需要協議有以下兩大關鍵功能: 可靠性:保證資料確實到達目的地。如果未到達,能夠發現並重傳。 資料流控:管理資料的傳送速率,以使接收裝置不致於過載。 要完

TCP滑動視窗,流量控制,擁塞控制原理介紹

TCP協議作為一個可靠的面向流的傳輸協議,其可靠性和流量控制由滑動視窗協議保證,而擁塞控制則由控制視窗結合一系列的控制演算法實現。一、滑動視窗協議     關於這部分自己不曉得怎麼敘述才好,因為理解的部分更多,下面就用自己的理解來介紹下TCP的精髓:滑動視窗協議。     所

TCP 滑動視窗(傳送視窗和接收視窗

   TCP協議作為一個可靠的面向流的傳輸協議,其可靠性和流量控制由滑動視窗協議保證,而擁塞控制則由控制視窗結合一系列的控制演算法實現。一、滑動視窗協議     關於這部分自己不曉得怎麼敘述才好,因為理解的部分更多,下面就用自己的理解來介紹下TCP的精髓:滑動視窗協議。 

TCP滑動視窗協議及擁塞控制

TCP協議作為一個可靠的面向流的傳輸協議,其可靠性和流量控制由滑動視窗協議保證,而擁塞控制則由控制視窗結合一系列的控制演算法實現。一、滑動視窗協議     關於這部分自己不曉得怎麼敘述才好,因為理解的部分更多,下面就用自己的理解來介紹下TCP的精髓:滑動視窗協議。   

TCP滑動視窗與回退N針協議

滑動視窗協議   1.傳送端和接收端分別設定傳送視窗和接收視窗。  2.三次握手的時候,客戶端把自己的緩衝區大小也就是視窗大小發送給伺服器,伺服器迴應是也將視窗大小發送給客戶端,伺服器客戶端都知道了彼此的視窗大小。  3.比如主機A的傳送視窗大小為5,主機A可以向主機B傳

TCP滑動視窗和socket緩衝區之間的關係(記錄)

一、TCP的滑動視窗大小實際上就是socket的接收緩衝區大小的位元組數 二、對於server端的socket一定要在listen之間設定緩衝區大小,因為,accept時新產生的socket會繼承監聽socket的緩衝區大小。對於client端的socket一定要在co

TCP 滑動視窗機制

本文要解決的問題: 瞭解滑動視窗機制的原理和基本方法。 (1).視窗機制    滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了一個連續的允許傳送的幀的序號,稱為傳送視窗;同時,接收方也維

TCP滑動視窗機制

 (1).視窗機制 滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了一個連續的允許傳送的幀的序號,稱為傳送視窗;同時,接收方也維持了一個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗協議視窗大

TCP 滑動視窗/TCP 接收和傳送緩衝區/核心sock接收和傳送緩衝區

一個socket在核心中有兩個緩衝區,分別為接收和傳送緩衝區。 struct sock { …… struct sk_buff_head sk_receive_queue;—-接收佇列 struct sk_buff_hea

TCP 滑動視窗用以進行流量控制

滑動視窗協議原理是:對所有資料幀按順序賦予編號,傳送方在傳送過程中始終保持著一個傳送視窗,只有落在傳送視窗內的幀才允許被髮送;同時接收方也維持著一個接收視窗,只有落在接收視窗內的幀才允許接收。 通過調整發送方視窗和接收方視窗的大小可以實現流量控制,就象通過閥門控制水流速度

TCP滑動視窗與擁塞視窗

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

計算機網路 TCP 滑動視窗協議 詳解

滑動視窗機制解析: 1.視窗機制滑動視窗協議的基本原理就是在任意時刻,傳送方都維持了一個連續的允許傳送的幀的序號,稱為傳送視窗;同時,接收方也維持了一個連續的允許接收的幀的序號,稱為接收視窗。傳送視窗和接收視窗的序號的上下界不一定要一樣,甚至大小也可以不同。不同的滑動視窗

TCP滑動視窗/超時重傳/慢啟動機制

一. TCP的優勢從傳輸資料來講,TCP/UDP以及其他協議都可以完成資料的傳輸,從一端傳輸到另外一端,TCP比較出眾的一點就是提供一個可靠的,流控的資料傳輸,所以實現起來要比其他協議複雜的多,先來看下這兩個修飾詞的意義: 1. Reliability ,提供TCP的可靠性,

TCP滑動視窗

TCP的滑動視窗解決了端到端的流量控制問題,允許接受方對傳輸進行限制,直到它擁有足夠的緩衝空間來容納更多的資料。滑動視窗的大小由接收方確定,接收方在傳送確認訊號給傳送方的同時告訴傳送方自己的緩衝區大小(在TCP頭部欄位中),傳送方根據此大小確定視窗大小,從而控制資料傳送量。同時,滑動視窗協議允許傳送方在停止

TCP滑動視窗機制 流量控制

TCP滑動視窗機制TCP滑動視窗機制分為兩種:固定大小視窗;滑動視窗(不固定大小)。由於TCP傳輸是支援全雙工的,因此傳送方和接收方各維護了兩個滑動視窗(接收視窗和傳送視窗)。滑動視窗會對資料幀進行編號,只有落在傳送視窗的資料才能被髮送,也只有落在接收視窗的資料才能被讀取。因

TCP 滑動視窗的簡介

TCP的滑動視窗主要有兩個作用,一是提供TCP的可靠性,二是提供TCP的流控特性。同時滑動視窗機制還體現了TCP面向位元組流的設計思路。TCP 段中視窗的相關欄位。 TCP的Window是一個16bit位欄位,它代表的是視窗的位元組容量,也就是TCP的標準視窗最