|
窗口:給飛馳的駿馬套上一個(gè)韁繩。打馬揚(yáng)鞭飛馳兩里地,沒(méi)見(jiàn)身后的她;好吧,勒住韁繩,飲馬吃草;突然發(fā)現(xiàn)身后有她,再打馬揚(yáng)鞭飛馳兩里地。這樣保持游戲的趣味性,而不要噠噠噠,一口氣跑出十里地去,沒(méi)了懸念。
假設(shè)發(fā)送窗口尺寸為2,接收窗口尺寸為1:
①初始態(tài),發(fā)送方?jīng)]有幀發(fā)出,發(fā)送窗口前后沿相重合。接收方0號(hào)窗口打開(kāi),等待接收0號(hào)幀;
②發(fā)送方打開(kāi)0號(hào)窗口,表示已發(fā)出0幀但尚確認(rèn)返回信息。此時(shí)接收窗口狀態(tài)不變;
③發(fā)送方打開(kāi)0、1號(hào)窗口,表示0、1號(hào)幀均在等待確認(rèn)之列。至此,發(fā)送方打開(kāi)的窗口數(shù)已達(dá)規(guī)定限度,在未收到新的確認(rèn)返回幀之前,發(fā)送方將暫停發(fā)送新的數(shù)據(jù)幀。接收窗口此時(shí)狀態(tài)仍未變;
④接收方已收到0號(hào)幀,0號(hào)窗口關(guān)閉,1號(hào)窗口打開(kāi),表示準(zhǔn)備接收1號(hào)幀。此時(shí)發(fā)送窗口狀態(tài)不變;
⑤發(fā)送方收到接收方發(fā)來(lái)的0號(hào)幀確認(rèn)返回信息,關(guān)閉0號(hào)窗口,表示從重發(fā)表中刪除0號(hào)幀。此時(shí)接收窗口狀態(tài)仍不變;
⑥發(fā)送方繼續(xù)發(fā)送2號(hào)幀,2號(hào)窗口打開(kāi),表示2號(hào)幀也納入待確認(rèn)之列。至此,發(fā)送方打開(kāi)的窗口又已達(dá)規(guī)定限度,在未收到新的確認(rèn)返回幀之前,發(fā)送方將暫停發(fā)送新的數(shù)據(jù)幀,此時(shí)接收窗口狀態(tài)仍不變;
⑦接收方已收到1號(hào)幀,1號(hào)窗口關(guān)閉,2號(hào)窗口打開(kāi),表示準(zhǔn)備接收2號(hào)幀。此時(shí)發(fā)送窗口狀態(tài)不變;
⑧發(fā)送方收到接收方發(fā)來(lái)的1號(hào)幀收畢的確認(rèn)信息,關(guān)閉1號(hào)窗口,表示從重發(fā)表中刪除1號(hào)幀。此時(shí)接收窗口狀態(tài)仍不變。
盡管有沒(méi)有收到ack的數(shù)據(jù),在發(fā)送窗口產(chǎn)生沉淀。但是由于發(fā)送窗口(窗口大于1)的存在,在收到ack的同時(shí),也不斷有數(shù)據(jù)被發(fā)送出去。以確保數(shù)據(jù)的發(fā)送一直進(jìn)行著,沒(méi)有因?yàn)閍ck的問(wèn)題,而停滯不前。
這個(gè)應(yīng)該是TCP協(xié)議,TCP協(xié)議需要ack應(yīng)答。
同時(shí),想清楚一點(diǎn),以太網(wǎng)芯片是全雙工的芯片,收發(fā)同時(shí)進(jìn)行。
|
|