日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

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

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

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

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

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

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

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

序號和確認號

序號

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

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

確認號

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

累計確認

對于接收方來說,TCP永遠只確認第一個丟失的字節(jié)的序號。對于發(fā)送方來說,如果收到確認號N,則代表接收方收到了N以前的所有字節(jié)。

下圖展示了接收方只確認第一個丟失的序號1000。

 

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

快速重傳

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

上面的這個例子另外需要額外主頁,當接收方收到發(fā)送方的快速傳遞的seq100后,直接ack了5000,因為5000之前的字節(jié)接收方已經(jīng)收到了。可以看到快速重傳提高了效率。

SACK

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多