TCP丢包检测技术详解
| TCP丟包檢測(cè)技術(shù)詳解 | |||||||||||
| |||||||||||
| ? | |||||||||||
| ? | |||||||||||
| ? | |||||||||||
| 2007年12月6日 10:23??中國(guó)新通信??作 者:李雪徐昌彪 | |||||||||||
| ??? 1、引言 ??? 傳輸控制協(xié)議(TransportControlProtocol,TCP)是目前Internet中廣泛采用的一種傳輸協(xié)議,它為各個(gè)主機(jī)之間提供可靠、按序傳輸、端到端的數(shù)據(jù)包傳輸服務(wù)。TCP擁塞控制是其成功的重要因素。TCP擁塞控制的前提是網(wǎng)絡(luò)擁塞為數(shù)據(jù)丟失的唯一原因,即只要終端檢測(cè)出有數(shù)據(jù)丟失,均認(rèn)為是網(wǎng)絡(luò)擁塞所致,于是調(diào)用擁塞控制機(jī)制。 ??? 隨著無(wú)線通信技術(shù)的發(fā)展,由于無(wú)線環(huán)境具有誤碼率高、信號(hào)衰落以及頻繁的移動(dòng)等特性,網(wǎng)絡(luò)擁塞已不能再被看成是數(shù)據(jù)丟失的唯一原因,直接沿用現(xiàn)有的TCP技術(shù)勢(shì)必會(huì)惡化TCP性能。這樣,能否區(qū)分丟包自然成為改善無(wú)線環(huán)境下TCP性能的關(guān)鍵。為此,人們?cè)谶@方面做了大量的研究和探索,提出了多種技術(shù)。但是針對(duì)特定丟包情況給出某一方法的文章還很少見。 ??? 2、無(wú)線網(wǎng)絡(luò)環(huán)境中三種丟包情況分析 ??? TCP擁塞控制機(jī)制的前提是網(wǎng)絡(luò)擁塞為數(shù)據(jù)丟失的唯一原因,由于無(wú)線信道特性,在無(wú)線網(wǎng)絡(luò)環(huán)境中大量的數(shù)據(jù)會(huì)因切換、信道衰落、干擾等而被丟棄,在這種情況下若TCP啟動(dòng)擁塞控制,會(huì)造成不必要的數(shù)據(jù)發(fā)送速率的降低,導(dǎo)致帶寬利用率不高、系統(tǒng)時(shí)延加大、吞吐量下降。 ??? 2.1隨機(jī)丟包(RandomLoss) ??? 傳統(tǒng)的TCP擁塞控制機(jī)制是為有線網(wǎng)絡(luò)而設(shè)計(jì)的。由比特差錯(cuò)以及鏈路差錯(cuò)引起的數(shù)據(jù)丟失幾乎可以忽略不計(jì)。但是在無(wú)線網(wǎng)絡(luò)中,數(shù)據(jù)丟失是由信號(hào)衰落引起的。對(duì)基于IS-95CDMA數(shù)據(jù)服務(wù)來(lái)說(shuō),有1%~2%是隨機(jī)丟包。 ??? 2.2突發(fā)丟包(BurstLoss) ??? 突發(fā)丟包是在一段很短的時(shí)間內(nèi),導(dǎo)致許多數(shù)據(jù)連續(xù)的丟失。它是由信號(hào)衰落引起的。 ??? 以無(wú)線局域網(wǎng)為例,對(duì)一個(gè)移動(dòng)主機(jī)來(lái)說(shuō),它的所有通信量(流入和流出)都是通過(guò)與它相連的基站路由出去的。當(dāng)移動(dòng)主機(jī)從一個(gè)基站的覆蓋范圍移出時(shí),它需要在它所運(yùn)動(dòng)到的另一基站處登記它的信息。所有之后的通信都是通過(guò)新的基站來(lái)完成的。然而,當(dāng)發(fā)生切換時(shí),通過(guò)原基站遞交給移動(dòng)主機(jī)的一系列數(shù)據(jù)包將會(huì)丟失。因此,切換可以導(dǎo)致突發(fā)丟包事件的發(fā)生。 ??? 2.3包的重新排序(PacketReordering) ??? 當(dāng)接受端收到包的順序與發(fā)送端發(fā)送順序不同時(shí),就要對(duì)包進(jìn)行重新排序。同樣是以無(wú)線局域網(wǎng)為例,包的重新排序與切換有關(guān)。當(dāng)移動(dòng)主機(jī)從一個(gè)基站切換到另一個(gè)基站時(shí),發(fā)往移動(dòng)主機(jī)或者是從移動(dòng)主機(jī)發(fā)出的包通過(guò)新的基站路由信息。因?yàn)閿?shù)據(jù)包在不同的路徑上傳輸會(huì)經(jīng)歷不同的RTT,導(dǎo)致了數(shù)據(jù)包不能按序遞交。 ??? 3、針對(duì)三種情況的解決方案 ??? 我們對(duì)一些有代表性的端到端的解決方案進(jìn)行了總結(jié),并分析了相應(yīng)的一些解決方法。 ??? 3.1隨機(jī)丟包的解決方案 ??? 3.1.1TCPWestwood ??? TCPWestwood是一種由發(fā)送方通過(guò)測(cè)量ACK的速率來(lái)調(diào)整擁塞窗口的TCP協(xié)議。它是在發(fā)生擁塞之后用于設(shè)置ssthresh和cwnd的,不像傳統(tǒng)的TCP擁塞控制機(jī)制檢測(cè)到數(shù)據(jù)丟失后盲目將發(fā)送速率減半,因此TCP-W在面臨隨機(jī)丟包的情況下可以達(dá)到較高的鏈路利用率。帶寬估算方法如下: ??? bn是在tn時(shí)刻第n個(gè)ACK到達(dá)時(shí)的估計(jì)帶寬,tn是接收到第n個(gè)ACK的時(shí)刻,Ln是被確認(rèn)的分組n的尺寸。實(shí)驗(yàn)結(jié)果表明,TCP-W在吞吐量、公平性方面都優(yōu)于Reno,但它也有不足之處,如與Reno共存時(shí),友好性問(wèn)題以及過(guò)高的估計(jì)帶寬出現(xiàn)ACK壓縮。
| |||||||||||
總結(jié)
以上是生活随笔為你收集整理的TCP丢包检测技术详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Windows 下单机最大TCP连接数
- 下一篇: 妙用0元素数组 实现大小可变结构体