一、TCP流控 之前我們介紹過TCP是基於窗口的流量控制,在TCP的發送端會維持一個發送窗口,我們假設發送窗口的大小為N比特,網絡環回時延為RTT,那么在網絡狀況良好沒有發生擁塞的情況下,發送端每個RTT就可以發送N比特的數據,發送端的速率應該與N/RTT成正比,因此通過改變發送 ...
一 簡介 我們之前介紹過,TCP報文中的window size表示發出這個報文的一端准備多少bytes的數據,當TCP的一端一直接收數據,但是應用層沒有及時讀取的話,數據一直在TCP模塊中緩存,最終受限於接收緩存的大小,window size會變為 ,此時我們稱呼這個接收窗口為零窗 zero window ,對端也不能在發送更多的數據。如果隨后本端應用層從TCP接收緩存中讀取了足夠數據,TCP模塊 ...
2016-11-07 14:05 3 7985 推薦指數:
一、TCP流控 之前我們介紹過TCP是基於窗口的流量控制,在TCP的發送端會維持一個發送窗口,我們假設發送窗口的大小為N比特,網絡環回時延為RTT,那么在網絡狀況良好沒有發生擁塞的情況下,發送端每個RTT就可以發送N比特的數據,發送端的速率應該與N/RTT成正比,因此通過改變發送 ...
一、Nagle算法概述 之前我們介紹過,有一些交互式應用會傳遞大量的小包(稱呼為tinygrams),這些小包的負載可能只有幾個bytes,但是TCP和IP的基本頭就有40bytes,如果大量傳遞這種小包,會嚴重降低網絡利用率,還可能造成網絡擁塞。福特公司就曾經遇到過這種問題,John Nagle ...
一、簡介 之前的內容中我們多次提到延遲ACK(Delayed Ack),延遲ACK是在RFC1122協議中定義的,協議指出,一個TCP實現應該實現延遲ACK,但是ACK不能被過度延遲,協議給出延遲ACK的最大時間為0.5s。如果發送端連續發送最大的數據報文,那么沒兩個數據報文就需要回復一次ACK ...
現在開始介紹我們的第一個主題 - TCP 接收窗口。 TCP 連接的吞吐量可以通過發送和接收應用程序、發送和接收 TCP 的實現以及 TCP 對等方之間的傳輸路徑來限制。在本專欄中,我將介紹 TCP 接收窗口及其對 TCP 吞吐量的影響、TCP 窗口縮放的使用以及 Windows ...
在前面的內容中我們介紹了TCP連接管理中最常見的三次握手方式和四次揮手的方式。但是有可能A和B兩端同時執行主動打開並連接對方或者同時執行主動關閉連接(盡管發生這種情況的可能性比較低低),這個時候的流程就略有不同了。下面我們分別對同時打開(simultaneous open)連接 ...
的。 TFO(TCP fast open)是TCP協議的experimental update ...
一、TCP選項概述 在前面介紹TCP頭的時候,我們說過tcp基本頭下面可以帶有tcp選項,其中有些選項只能在連接過程中隨着SYN包發送,有些可以延后。下表匯總了一些tcp選項 其中我標記為紅色的部分是常見的TCP選項,我們僅針對這些紅色的TCP選項進行介紹(主要是非紅色 ...
我們在介紹TCP頭的時候,提到過其中有個RST標志位。當一個TCP報文中這個標志位打開的時候,我們叫做reset包(嚴格的說應該叫做reset段,但是很多時候段包幀並不加以區分)或者簡單稱呼為reset、RST。通常reset的產生是由於一個異常包導致,reset一般會導致TCP ...