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