重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
小編給大家分享一下TCP的可靠傳輸原理是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)提供四川雅安電信機(jī)房服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購(gòu)買(mǎi)四川雅安電信機(jī)房服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。
TCP下面的IP層是盡最大努力的交付,是不可靠的,所以TCP需要靠自己去完成可靠傳輸。下面,我們先從簡(jiǎn)單的停止等待協(xié)議來(lái)講解可靠傳輸?shù)娜绾螌?shí)現(xiàn)的。需要注意可靠傳輸?shù)膸讉€(gè)特點(diǎn):不丟失、不重復(fù)、按序到達(dá)。
注意,TCP并不使用停止等待協(xié)議來(lái)實(shí)現(xiàn)可靠傳輸。
停止等待協(xié)議
傳輸層的數(shù)據(jù)傳輸單元稱(chēng)為段。下面,為了方便,都稱(chēng)為分組。
停止等待協(xié)議的原理非常簡(jiǎn)單,發(fā)送一個(gè)分組后就停止繼續(xù)發(fā)送,等待收到上一個(gè)分組的確認(rèn)后,再繼續(xù)發(fā)送后面的分組。
下面通過(guò)幾個(gè)不同情況來(lái)分析:
無(wú)差錯(cuò)情況
無(wú)差錯(cuò)情況非常簡(jiǎn)單,如下圖。每發(fā)送完一個(gè)分組后,就停止發(fā)送,等待收到該分組的確認(rèn)后,再繼續(xù)發(fā)送后面的分組。
出現(xiàn)差錯(cuò)
出現(xiàn)差錯(cuò)分兩種情況,第一種是發(fā)送的分組沒(méi)有交付成功到目的地址,另一種情況是傳送的數(shù)據(jù)包有差錯(cuò)。通過(guò)圖例,我們來(lái)分析兩種情況
首先來(lái)看看B的操作:A發(fā)送M1分組,該分組如果是錯(cuò)誤的,B收到后會(huì)丟棄該數(shù)分組,然后什么也不做(不會(huì)通知A收到了錯(cuò)誤分組)。如果B沒(méi)有收到M1分組,那么它什么也不知道,也不會(huì)去做任何動(dòng)作。
接下來(lái)看A是如何做的:A發(fā)完分組后,遲遲收不到B對(duì)M1分組的確認(rèn)后,當(dāng)?shù)却臅r(shí)間超時(shí)了,那么就需要重新發(fā)送該M1分組。要實(shí)現(xiàn)超時(shí)重傳,就需要設(shè)置一個(gè)超時(shí)計(jì)時(shí)器,當(dāng)發(fā)送的一個(gè)分組在超時(shí)時(shí)間前收到了確認(rèn),那么就重置超時(shí)計(jì)時(shí)器,否則的話就需要重傳分組。
有幾點(diǎn)是需要注意的:
A在發(fā)送完一個(gè)分組后,必須還要保存該分組的副本,以便超時(shí)重傳。當(dāng)收到這個(gè)分組的確認(rèn)后,就可以丟棄該分組的副本了。
需要給每一個(gè)分組做編號(hào),這樣才知道是各個(gè)分組的到達(dá)情況。
超時(shí)時(shí)間應(yīng)該設(shè)置的比平均傳輸時(shí)間稍長(zhǎng)一些,以免引起不必要的重傳。
確認(rèn)丟失和確認(rèn)遲到
除了分組在傳送過(guò)程中會(huì)出現(xiàn)差錯(cuò),在返回確認(rèn)的時(shí)候,也會(huì)出現(xiàn)差錯(cuò)——確認(rèn)丟失和確認(rèn)遲到。
首先看確認(rèn)丟失情況,A的分組B收到了,并給A發(fā)送了確認(rèn),但該確認(rèn)丟失了,A沒(méi)有收到。因?yàn)锳沒(méi)有收到M1的確認(rèn),那么等待超過(guò)超時(shí)后,就會(huì)向B重傳M1。這個(gè)時(shí)候B收到了重復(fù)的分組M1,需要做兩個(gè)操作:
將重復(fù)的分組M1丟棄
向A發(fā)送M1的確認(rèn)。因?yàn)榧热籄重傳了M1,就表示A沒(méi)有收到M1的分組。所以B需要繼續(xù)發(fā)送對(duì)M1的確認(rèn)。
再來(lái)看另一種情況,對(duì)M1的分組確認(rèn)遲到了(超過(guò)超時(shí)時(shí)間后才收到)。A在收到重復(fù)的確認(rèn)后,會(huì)丟棄,其他什么也不做。
通過(guò)上述的超時(shí)重傳機(jī)制,就可以實(shí)現(xiàn)在不可靠的網(wǎng)絡(luò)傳輸上實(shí)現(xiàn)可靠的傳輸。
信道利用率
上述的停止等待協(xié)議簡(jiǎn)單,但它有一個(gè)非常大的缺點(diǎn)——信道的利用率太低。在等待收到確認(rèn)的這段時(shí)間,信道是完全空閑的,十分浪費(fèi)。
為了提高信道利用率,可以使用流水線傳輸,流水線傳輸可以連續(xù)發(fā)送多個(gè)分組,這樣就可以大大提高信道利用率了。
采用流水線傳輸?shù)膮f(xié)議有連續(xù)ARQ協(xié)議和窗口滑動(dòng)協(xié)議。而TCP就是采用滑動(dòng)窗口協(xié)議來(lái)完成可靠傳輸?shù)摹?/p>
看完了這篇文章,相信你對(duì)TCP的可靠傳輸原理是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!