电竞比分网-中国电竞赛事及体育赛事平台

分享

TCP可靠數(shù)據(jù)傳輸原理

 Coder編程 2022-10-10 發(fā)布于北京

之前介紹的可靠數(shù)據(jù)傳輸原理:

1. 可靠數(shù)據(jù)傳輸基本原理(1)-解決數(shù)據(jù)受損問(wèn)題

2. 可靠數(shù)據(jù)傳輸基本原理(2)-解決數(shù)據(jù)丟失問(wèn)題

3. 可靠數(shù)據(jù)傳輸基本原理(3)-滑動(dòng)窗口

本文主要介紹TCP字節(jié)的可靠傳輸原理,基本原理和之前介紹的差不多,但是TCP本身字節(jié)實(shí)現(xiàn)的時(shí)候有一定的差異和優(yōu)化。

序號(hào)和確認(rèn)號(hào)

序號(hào)

TCP把數(shù)據(jù)看成一個(gè)無(wú)結(jié)構(gòu)的數(shù)據(jù)流,其序號(hào)(Sequence number)是建立在傳送的字節(jié)流的之上,而不是建立在傳輸?shù)捻樞蛏?。一個(gè)TCP報(bào)文的序號(hào)是該報(bào)文段的首字節(jié)的字節(jié)流編號(hào)。

例子,假設(shè)應(yīng)用層發(fā)送了一個(gè)500 000字節(jié)的文件到傳輸層,傳輸層的MSS(Max segment size)是1000字節(jié),那么TCP將會(huì)為該文件構(gòu)建500個(gè)報(bào)文段(每個(gè)大小為1000字節(jié)),如果初始序列號(hào)(ISN:initial sequence number)0,那么第一個(gè)報(bào)文段的序號(hào)分配為0,第二個(gè)報(bào)文段的序號(hào)分配為1000,第三個(gè)為2000。。。。。。以此類(lèi)推,如下圖所示。

確認(rèn)號(hào)

之前討論的基本原理中,確認(rèn)號(hào)是當(dāng)前收到的報(bào)文段的序號(hào)。但是在TCP的實(shí)現(xiàn)中確認(rèn)號(hào)是期望收到的下一個(gè)字節(jié)的序號(hào),加入主機(jī)A給主機(jī)B發(fā)送了編號(hào)為0數(shù)據(jù)長(zhǎng)度為1000的一個(gè)報(bào)文段,主機(jī)B成功接收后傳給主機(jī)A的確認(rèn)號(hào)應(yīng)該是1000。

累計(jì)確認(rèn)

對(duì)于接收方來(lái)說(shuō),TCP永遠(yuǎn)只確認(rèn)第一個(gè)丟失的字節(jié)的序號(hào)。對(duì)于發(fā)送方來(lái)說(shuō),如果收到確認(rèn)號(hào)N,則代表接收方收到了N以前的所有字節(jié)。

下圖展示了接收方只確認(rèn)第一個(gè)丟失的序號(hào)1000。

 

下圖展示了累計(jì)確認(rèn)在發(fā)送方的執(zhí)行情況,由于在seq0超時(shí)前收到了ack2000,說(shuō)明2000之前的數(shù)據(jù)已經(jīng)被全部接收,所有不會(huì)在重新傳遞seq為1的數(shù)據(jù),減少了一次重傳。

快速重傳

基于累積確認(rèn)的基礎(chǔ),如果接收方連續(xù)三次(可以配置)接收到重復(fù)的ACK,可以在超時(shí)之前直接重傳這個(gè)分組。

上面的這個(gè)例子另外需要額外主頁(yè),當(dāng)接收方收到發(fā)送方的快速傳遞的seq100后,直接ack了5000,因?yàn)?000之前的字節(jié)接收方已經(jīng)收到了??梢钥吹娇焖僦貍魈岣吡诵?。

SACK

Sellective Acknowledgement。如果接受的收到多個(gè)不連續(xù)的數(shù)據(jù)分組,接收方的接收緩存中會(huì)出現(xiàn)很多的空洞,通過(guò)sack功能,接收方可以在把這些空洞通知發(fā)送方。這樣發(fā)送方就會(huì)有更多的信息來(lái)判斷那些數(shù)據(jù)需要重傳。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多