TCP如何進(jìn)行流量控制

  • B計(jì)算機(jī)向A計(jì)算機(jī)發(fā)出請(qǐng)求,要求A傳輸數(shù)據(jù)到B上,B和A之間先建立會(huì)話(三次握手)

  • A、B在建立連接的時(shí)候B會(huì)告訴A自己的滑動(dòng)窗口的大小

  • A向B發(fā)送數(shù)據(jù)12 34 56,但是56因?yàn)榫W(wǎng)絡(luò)原因,B沒有接收到,然后B會(huì)向A發(fā)送確認(rèn)號(hào)5來表示自己沒有接收到序列號(hào)為5的消息,與此同時(shí),如果B覺得A發(fā)送的太快了,自己來不及接收的時(shí)候可以將自己的滑動(dòng)窗口大小設(shè)置小點(diǎn),例如下面設(shè)置將10-->8,該信息隨著確認(rèn)信息發(fā)送到A,此時(shí)A需要根據(jù)B的新的滑動(dòng)窗口信息改變自己的窗口大小,


    rwnd = receive window

  • B將窗口大小改為8后,同時(shí)確認(rèn)號(hào)為5,表示A可以發(fā)送5到12之間的數(shù)據(jù),同時(shí)也說明了自己的1234都處理完成了,A收到了知道自己要重發(fā)56


  • B在接收完12后,重新設(shè)置自己的滑動(dòng)窗口大小為2,同時(shí)確認(rèn)號(hào)是13,表示A要傳輸13后的兩個(gè)數(shù)據(jù),A在傳完13、14后進(jìn)入等待階段,等待著B的確認(rèn)信號(hào),因?yàn)锳也將自己的滑動(dòng)窗口的大小修改為2,無法進(jìn)行后的發(fā)送;


  • 此時(shí)B可以發(fā)送確認(rèn)信息給A,同時(shí)將自己的滑動(dòng)窗口大小設(shè)置為0,(為什么一定要確認(rèn)呢?如果B不發(fā)送確認(rèn),A會(huì)認(rèn)為自己的數(shù)據(jù)丟失了,A要進(jìn)行重傳),B在將自己滑動(dòng)窗口大小修改為0后可以將改革得到的那些緩沖數(shù)據(jù)發(fā)送到自己的應(yīng)用程序進(jìn)行處理。


  • B的應(yīng)用程序處理完緩沖數(shù)據(jù)后,B再次發(fā)送確認(rèn)信號(hào),確認(rèn)號(hào)依舊從15開始,同時(shí)將自己的滑動(dòng)窗口大小設(shè)置為10,A接收到后也要改變自己的滑動(dòng)窗口大小

  • 如果B發(fā)送到A的確認(rèn)信號(hào)丟失怎么辦,其實(shí)A也會(huì)定時(shí)發(fā)送探測(cè)信號(hào),來查看B的滑動(dòng)窗口大小,以此來避免確認(rèn)信號(hào)的丟失。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容