一、前言
說道TCP滑動窗口協議,相信大家都很熟悉,但是說道 Window Scaling參數或許知道的和用過的人卻不多,本文我們來談談Window Scaling的由來
二、TCP滑動窗口
眾所周知,TCP是一種面向連接可靠消息傳輸協議;為了保證可靠,連接的兩端保持對所有傳輸數據的嚴格跟蹤,以便在需要時候進行重傳或重新排序。另外為了跟蹤已經發送了的數據在發送端有TCP發送緩存,在接受端有接受緩存,滑動窗口則是這個緩存的一部分,接收方接受數據後會把ack和當前滑動窗口可用空間告訴發送方,發送方則發送的數據不能超過接收方剩餘窗口大小,如果接收方窗口內數據還沒來得及由應用程序讀取,窗口滿了,則發送方會停止發送數據,直到接收方滑動窗口有空間。
假設我們有兩個主機A和B,它們建立了一個TCP連接。在連接開始時,兩個主機為傳入數據分配32 KB的緩衝區空間,因此每個主機的初始窗口大小為32,768。