工作原理:通過限制在任何給定時間可以發(fā)送或接收的數(shù)據(jù)包的數(shù)量,滑動窗口協(xié)議允許使用固定大小的序列號傳送無限數(shù)量的數(shù)據(jù)包。發(fā)送方側(cè)的術(shù)語“窗口”表示接收方尚未確認(rèn)的分組總數(shù)的邏輯邊界。接收方在每個確認(rèn)包中通知發(fā)送器當(dāng)前的最大接收緩沖區(qū)大?。ù翱谶吔纾?TCP報頭使用16位字段向發(fā)送方報告接收窗口大小。因此,可以使用的最大窗口是2^16 = 64K字節(jié)。在慢啟動模式下,發(fā)送器以低分組計數(shù)器開始,并且在從接收方接收到確認(rèn)分組之后增加每個傳輸中的分組數(shù)量。對于接收的每個ACK分組,該窗口通過一個分組(邏輯地)滑動以傳送一個新分組。當(dāng)達(dá)到窗口閾值時,發(fā)送器發(fā)送一個包,用于接收到的一個ACK分組(確認(rèn)分組)。
如果窗口限制為10個數(shù)據(jù)包,則在慢啟動模式下,發(fā)送器可以開始發(fā)送一個數(shù)據(jù)包,后跟兩個數(shù)據(jù)包(發(fā)送兩個數(shù)據(jù)包之前必須接收一個數(shù)據(jù)包),其次是三個數(shù)據(jù)包等等,直到10個數(shù)據(jù)包。但是在達(dá)到10個分組之后,進(jìn)一步的傳輸被限制為一個接收到的一個分組發(fā)送的分組。在仿真中,看起來好像窗口對于接收到的每個ACK分組移動一個分組距離。在接收方側(cè),窗口也會為接收到的每個數(shù)據(jù)包移動一個數(shù)據(jù)包。滑動窗口方法可以確保網(wǎng)絡(luò)上的交通擁堵得以避免。應(yīng)用層仍將提供傳輸?shù)?a href="http://mmxcw.cn/" target="_self">TCP的數(shù)據(jù),而不用擔(dān)心網(wǎng)絡(luò)流量擁塞問題,因為發(fā)送方和接收方的TCP實現(xiàn)分組緩沖區(qū)的滑動窗口。窗口大小可能根據(jù)網(wǎng)絡(luò)流量而動態(tài)變化。