




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、TCP 協(xié)議的擁塞控制策略及改進(jìn)姜明摘 要: TCP 是針對(duì)固定網(wǎng)絡(luò)設(shè)計(jì)的一種傳輸協(xié)議,其錯(cuò)誤控制機(jī)制是基于將所有丟包原因都?xì)w結(jié)于網(wǎng)絡(luò)擁塞的假設(shè)。這種錯(cuò)誤控制機(jī)制在有線網(wǎng)絡(luò)上獲得了很大的成功;但由于移動(dòng)計(jì)算環(huán)境有著明 顯不同于有線網(wǎng)絡(luò)環(huán)境的特點(diǎn),如較高的位出錯(cuò)率、可用帶寬小、衰減信道等,因此針對(duì)傳統(tǒng)有線 網(wǎng)絡(luò)設(shè)計(jì)的 TCP 協(xié)議, 其性能受到了很大影響。 本文對(duì)目前移動(dòng)計(jì)算環(huán)境下 TCP 協(xié)議的一些主要改 進(jìn)方案進(jìn)行了綜述,在對(duì)這些方案進(jìn)行分類的基礎(chǔ)上,對(duì)其優(yōu)缺點(diǎn)進(jìn)行了分析,并且對(duì)這些方案進(jìn) 行了比較。最后,提出了進(jìn)一步研究的方向。關(guān)鍵詞: TCP, 移動(dòng)計(jì)算,無線網(wǎng)絡(luò),錯(cuò)誤控制1. 引言互聯(lián)
2、網(wǎng)最初源于美國(guó)國(guó)防部的 ARPANET 計(jì)劃。在上世紀(jì) 60年代中期, 正是冷戰(zhàn)的高峰, 美國(guó)國(guó)防 部希望有一個(gè)命令和控制網(wǎng)絡(luò)能夠在核戰(zhàn)爭(zhēng)的條件下幸免于難,而傳統(tǒng)的電路交換的電話網(wǎng)絡(luò)則顯 得太脆弱。國(guó)防部指定其下屬的高級(jí)研究計(jì)劃局 (ARPA )解決這個(gè)問題,此后誕生的一個(gè)新型網(wǎng)絡(luò) 便稱為 ARPANET ,其最大特點(diǎn)是采用無連接的端到端包交換服務(wù)。隨后 ARPANET 開始與美國(guó)國(guó) 家科學(xué)基金會(huì)(NSF)建成的NSFNET及加拿大、歐洲和太平洋地區(qū)的網(wǎng)絡(luò)互聯(lián)。到了 80年代中期,人們開始把互聯(lián)的網(wǎng)絡(luò)稱為互聯(lián)網(wǎng)。早在 70年代中期, ARPA 為了實(shí)現(xiàn)異種網(wǎng)絡(luò)之間的互聯(lián)與互通,推出了 TCP/
3、IP 體系結(jié)構(gòu)和協(xié)議規(guī) 范。時(shí)至今日, TCP/IP 協(xié)議也成為最流行的網(wǎng)際互聯(lián)協(xié)議,并由單純的 TCP/IP 協(xié)議發(fā)展成為一系 列以IP為基礎(chǔ)的TCP/IP協(xié)議簇。TCP/ IP協(xié)議簇為互聯(lián)網(wǎng)提供了基本的通信機(jī)制?;ヂ?lián)網(wǎng)采用的是無連接的端到端數(shù)據(jù)包交換,提供盡力而為”(best effort)服務(wù)模型的設(shè)計(jì)機(jī)制。這種機(jī)制的最大優(yōu)勢(shì)是設(shè)計(jì)簡(jiǎn)單,可擴(kuò)展性強(qiáng)?;ヂ?lián)網(wǎng)在過去的十幾年中經(jīng)歷了爆炸式的增長(zhǎng),這 已經(jīng)充分證明了這種設(shè)計(jì)機(jī)制的成功。然而這種優(yōu)勢(shì)并不是沒有代價(jià)的,隨著互聯(lián)網(wǎng)用戶數(shù)量的膨 脹,網(wǎng)絡(luò)的擁塞問題也越來越嚴(yán)重。例如由于隊(duì)列溢出,互聯(lián)網(wǎng)路由器會(huì)丟棄約10%的數(shù)據(jù)包。據(jù)統(tǒng)計(jì),互聯(lián)網(wǎng)上 95
4、%的數(shù)據(jù)流使用的是 TCP/IP 協(xié)議,因此,互聯(lián)網(wǎng)上主要的互連協(xié)議 TCP/IP 的擁 塞控制( congestion control )機(jī)制對(duì)控制網(wǎng)絡(luò)擁塞具有特別重要的意義。擁塞控制是確?;ヂ?lián)網(wǎng)魯棒 性(robustness)的關(guān)鍵因素,也是各種管理控制機(jī)制和應(yīng)用(如多媒體通信中QoS控制、區(qū)分服務(wù)( differentiated services )的基礎(chǔ),因此關(guān)于互聯(lián)網(wǎng)的擁塞控制問題一直是網(wǎng)絡(luò)研究的一個(gè)熱點(diǎn)。TCP 是目前 Internet 上使用最廣泛的一種傳輸協(xié)議,根據(jù) MCI 的統(tǒng)計(jì), Internet 上總字節(jié)數(shù)的 95 及總數(shù)據(jù)包數(shù)的 90使用 TCP 協(xié)議傳輸 25。 TC
5、P 的目的是為了解決 Internet 的穩(wěn)定性、 異質(zhì)性(接 受端緩沖區(qū)大小、網(wǎng)絡(luò)帶寬及延遲等)、各流之間享用帶寬的公平性、使用效率及擁塞控制等問題, 從而為In ternet提供可靠、健壯(robust )的端到端通訊。In ternet近十年來的迅猛發(fā)展已證明TCP協(xié)議在設(shè)計(jì)上是成功的。但是, TCP 是為固定主機(jī)及有線網(wǎng)絡(luò)設(shè)計(jì)的一種滑動(dòng)窗口協(xié)議,它在位出錯(cuò)率(bit rate error, BER)很低、丟包的主要原因是網(wǎng)絡(luò)擁塞的傳統(tǒng)網(wǎng)絡(luò)上的成功在移動(dòng)計(jì)算環(huán)境下受到了巨大的挑戰(zhàn)。移動(dòng) 計(jì)算帶來的新問題主要是無線鏈路傳輸?shù)目煽啃?、移?dòng)操作的特點(diǎn)以及對(duì)效率進(jìn)行評(píng)估的性能尺度等。因此,對(duì)TC
6、P協(xié)議的改進(jìn)已經(jīng)成為近幾年網(wǎng)絡(luò)通訊領(lǐng)域的一個(gè)研究熱點(diǎn)。本文第二部分對(duì)網(wǎng)絡(luò)擁塞的基本概念進(jìn)行了簡(jiǎn)要介紹;第三部分TCP的擁塞控制機(jī)制及有線網(wǎng)絡(luò)環(huán)境下的改進(jìn)進(jìn)行了介紹;第四部分分析了TCP在移動(dòng)計(jì)算環(huán)境下的缺點(diǎn)及其需要增加的功能;第五部分對(duì)增強(qiáng)移動(dòng)環(huán)境下 TCP的技術(shù)方案進(jìn)行了分類介紹,分析了各自的優(yōu)缺點(diǎn),并對(duì)這些方案進(jìn)行 了比較。最后進(jìn)行了總結(jié),并提出了有待進(jìn)一步研究的一些熱點(diǎn)方向。2. 網(wǎng)絡(luò)擁塞的基本概念 2.1擁塞的基本概念和互聯(lián)網(wǎng)模型當(dāng)網(wǎng)絡(luò)中存在過多的數(shù)據(jù)包時(shí),網(wǎng)絡(luò)的性能就會(huì)下降,這種現(xiàn)象稱為擁塞。在網(wǎng)絡(luò)發(fā)生擁塞時(shí),會(huì) 導(dǎo)致吞吐量下降,嚴(yán)重時(shí)會(huì)發(fā)生擁塞崩潰”(congestion coll
7、apse)現(xiàn)象。一般來說,擁塞崩潰發(fā)生在網(wǎng)絡(luò)負(fù)載的增加導(dǎo)致網(wǎng)絡(luò)效率的降低的時(shí)候。最初觀察到這種現(xiàn)象是在1986年10月,在這個(gè)過程中,LBL與UC Berkeley之間的吞吐量從 32kbps下降到了 40bps。Floyd總結(jié)出擁塞崩潰主要包括 以下幾種:傳統(tǒng)的崩潰、未傳送數(shù)據(jù)包導(dǎo)致的崩潰、由于數(shù)據(jù)包分段造成的崩潰、日益增長(zhǎng)的控制 信息流造成的崩潰等。圖1:網(wǎng)絡(luò)負(fù)載與吞吐量及響應(yīng)時(shí)間的關(guān)系對(duì)于擁塞現(xiàn)象,我們可以進(jìn)一步用圖1來描述。當(dāng)網(wǎng)絡(luò)負(fù)載較小時(shí),吞吐量基本上隨著負(fù)載的增長(zhǎng)而增長(zhǎng),呈線性關(guān)系,響應(yīng)時(shí)間增長(zhǎng)緩慢。當(dāng)負(fù)載達(dá)到網(wǎng)絡(luò)容量時(shí),吞吐量呈現(xiàn)出緩慢增長(zhǎng),而響 應(yīng)時(shí)間急劇增加,這一點(diǎn)稱為Kne
8、e。如果負(fù)載繼續(xù)增加,路由器開始丟包,當(dāng)負(fù)載超過一定量時(shí),吞吐量開始急劇下降,這一點(diǎn)稱為Cliff。擁塞控制機(jī)制實(shí)際上包含擁塞避免(congestion avoidance和擁塞控制(congestion contro)兩種策略。前者的目的是使網(wǎng)絡(luò)運(yùn)行在Knee附近,避免擁塞的發(fā)生;而后者則是使得網(wǎng)絡(luò)運(yùn)行在Cliff的左側(cè)區(qū)域。前者是一種預(yù)防”措施,維持網(wǎng)絡(luò)的高吞吐量、低延遲狀態(tài),避免進(jìn)入擁塞;后者是一種 恢復(fù)”措施,使網(wǎng)絡(luò)從擁塞中恢復(fù)過來,進(jìn)入正常的運(yùn)行 狀態(tài)。擁塞現(xiàn)象的發(fā)生和前面提到的互聯(lián)網(wǎng)的設(shè)計(jì)機(jī)制有著密切關(guān)系,我們對(duì)這種設(shè)計(jì)機(jī)制作一個(gè)簡(jiǎn)單的 歸納:1. 數(shù)據(jù)包交換(packet swi
9、tched)網(wǎng)絡(luò):與電路交換(circuit switched )網(wǎng)絡(luò)相比,由于包交換 網(wǎng)絡(luò)對(duì)資源的利用是基于統(tǒng)計(jì)復(fù)用(statistical multiplexing )的,因此提高了資源的利用效率。但在基于統(tǒng)計(jì)復(fù)用的情況下,很難保證用戶的服務(wù)質(zhì)量(quality of service , QoS),并且很容易出現(xiàn)數(shù)據(jù)包亂序”的現(xiàn)象,對(duì)亂序數(shù)據(jù)包的處理會(huì)大大增加擁塞控制的復(fù)雜性。2. 無連接(connectionless)網(wǎng)絡(luò):互聯(lián)網(wǎng)的節(jié)點(diǎn)之間在發(fā)送數(shù)據(jù)之前不需要建立連接,從而簡(jiǎn)化了網(wǎng)絡(luò)的設(shè)計(jì),網(wǎng)絡(luò)的中間節(jié)點(diǎn)上無需保留和連接有關(guān)的狀態(tài)信息。但無連接模型很難引 入接納控制(admission
10、control),在用戶需求大于網(wǎng)絡(luò)資源時(shí)難以保證服務(wù)質(zhì)量;此外,由 于對(duì)數(shù)據(jù)發(fā)送源的追蹤能力很差,給網(wǎng)絡(luò)安全帶來了隱患;無連接也是網(wǎng)絡(luò)中出現(xiàn)亂序數(shù)據(jù)包的主要原因。3. 盡力而為”的服務(wù)模型:不對(duì)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)提供服務(wù)質(zhì)量保證。在這種服務(wù)模型下,所 有的業(yè)務(wù)流被一視同仁”地公平地競(jìng)爭(zhēng)網(wǎng)絡(luò)資源,路由器對(duì)所有的數(shù)據(jù)包都采用先來先處理(First Come First Service,F(xiàn)CFS)的工作方式,它盡最大努力將數(shù)據(jù)包包送達(dá)目的地。但對(duì) 數(shù)據(jù)包傳遞的可靠性、延遲等不能提供任何保證。這很適合Email、Ftp、WWW等業(yè)務(wù)。但隨著互聯(lián)網(wǎng)的飛速發(fā)展,IP業(yè)務(wù)也得到了快速增長(zhǎng)和多樣化。特別是隨著
11、多媒體業(yè)務(wù)的興起, 計(jì)算機(jī)已經(jīng)不是單純的處理數(shù)據(jù)的工具。這對(duì)互聯(lián)網(wǎng)也就相應(yīng)地提出了更高的要求。對(duì)那些有帶寬、延遲、延遲抖動(dòng)等特殊要求的應(yīng)用來說,現(xiàn)有的盡力而為”服務(wù)顯然是不夠的。2.2擁塞產(chǎn)生的原因擁塞發(fā)生的主要原因在于網(wǎng)絡(luò)能夠提供的資源不足以滿足用戶的需求,這些資源包括緩存空間、鏈 路帶寬容量和中間節(jié)點(diǎn)的處理能力。由于互聯(lián)網(wǎng)的設(shè)計(jì)機(jī)制導(dǎo)致其缺乏接納控制”能力,因此在網(wǎng)絡(luò)資源不足時(shí)不能限制用戶數(shù)量,而只能靠降低服務(wù)質(zhì)量來繼續(xù)為用戶服務(wù),也就是盡力而為”的服務(wù)。13. 2kbps踣由觀11圖 2( a)圖 2( b)擁塞雖然是由于網(wǎng)絡(luò)資源的稀缺引起的,但單純?cè)黾淤Y源并不能避免擁塞的發(fā)生。例如增加
12、緩存空 間到一定程度時(shí),只會(huì)加重?fù)砣?,而不是減輕擁塞,這是因?yàn)楫?dāng)數(shù)據(jù)包經(jīng)過長(zhǎng)時(shí)間排隊(duì)完成轉(zhuǎn)發(fā)時(shí), 它們很可能早已超時(shí),從而引起源端超時(shí)重發(fā),而這些數(shù)據(jù)包還會(huì)繼續(xù)傳輸?shù)较乱宦酚善?,從而?費(fèi)網(wǎng)絡(luò)資源,加重網(wǎng)絡(luò)擁塞。事實(shí)上,緩存空間不足導(dǎo)致的丟包更多的是擁塞的癥狀”而非原因。另外,增加鏈路帶寬及提高處理能力也不能解決擁塞問題,例如,圖2(a)中,四個(gè)節(jié)點(diǎn)之間的鏈路帶寬都是19.2kbps,傳輸某個(gè)文件需要用時(shí) 5分鐘;當(dāng)?shù)谝粋€(gè)節(jié)點(diǎn)和第二個(gè)節(jié)點(diǎn)之間的鏈路帶寬 提高到1Mbps時(shí)(如圖2( b)所示),傳輸完該文件所需時(shí)間反而大大增加到了7個(gè)小時(shí)!這是因?yàn)樵诼酚善鱎1中,數(shù)據(jù)包的到達(dá)速率遠(yuǎn)遠(yuǎn)大于轉(zhuǎn)發(fā)的
13、速率,從而導(dǎo)致大量數(shù)據(jù)包被丟棄,源端的發(fā)送速度被抑止,從而使得傳輸時(shí)間大大增加。即使所有鏈路具有同樣大的帶寬也不能解決擁塞問題, 例如圖3中,CT矽 所有躡帶克和詢10bpF所有鏈路帶寬都是IGbps,如果A和B同時(shí)向C以IGbps的速率發(fā)送數(shù)據(jù),則路由器R的輸入速率為2Gbps,而輸出速率只能為IGbps,從而產(chǎn)生擁塞。單純地增加網(wǎng)絡(luò)資源之所以不能解決擁塞問題,是因?yàn)閾砣旧硎且粋€(gè)動(dòng)態(tài)問題,它不可能只靠靜 態(tài)的方案來解決,而需要協(xié)議能夠在網(wǎng)絡(luò)出現(xiàn)擁塞時(shí)保護(hù)網(wǎng)絡(luò)的正常運(yùn)行。目前對(duì)互聯(lián)網(wǎng)進(jìn)行的擁 塞控制主要是依靠在源端執(zhí)行的基于窗口的TCP擁塞控制機(jī)制。網(wǎng)絡(luò)本身對(duì)擁塞控制所起的作用較小,但近幾年
14、這方面的研究已經(jīng)成了一個(gè)新的熱點(diǎn)。3. TCP擁塞控制及其改進(jìn)3.1 TCP擁塞控制機(jī)制介紹基于源端的擁塞控制策略中,使用最為廣泛的是TCP協(xié)議中的擁塞控制策略,TCP協(xié)議是目前互聯(lián)網(wǎng)中使用最為廣泛的傳輸協(xié)議。根據(jù) MCI的統(tǒng)計(jì),互聯(lián)網(wǎng)上總字節(jié)數(shù)的 95%及總數(shù)據(jù)包數(shù)的90% 使用TCP協(xié)議傳輸。早期的TCP協(xié)議只有基于窗口的流控制(flow control)機(jī)制而沒有擁塞控制機(jī)制,因而易導(dǎo)致網(wǎng) 絡(luò)擁塞。1988年Jacobson針對(duì)TCP在網(wǎng)絡(luò)擁塞控制方面的不足,提出了 慢啟動(dòng)”(Slow Start)和擁塞避免”(Congestion Avoidanee )算法。1990年出現(xiàn)的TCP R
15、eno版本增加了 快速重傳”(Fast Retransmit)、快速恢復(fù)”(Fast Recovery)算法,避免了網(wǎng)絡(luò)擁塞不嚴(yán)重時(shí)采用慢啟動(dòng)"算法而造成過度減小發(fā)送窗口尺寸的現(xiàn)象,這樣TCP的擁塞控制就主要由這 4個(gè)核心算法組成。TCP協(xié)議的目的是為上層應(yīng)用提供可靠的服務(wù),其主要特征在于:1. 確保各流享用帶寬的公平性。2. 動(dòng)態(tài)發(fā)現(xiàn)當(dāng)前可利用的帶寬。3. 擁塞避免及控制機(jī)制以避免擁塞崩潰(co ngestion collapse )的發(fā)生。標(biāo)準(zhǔn)版本的 TCP使用基于窗口的的和式增加積式減小(Additive In crease Multiplicative Decrease ,A
16、IMD )方式控制發(fā)送速率,以保證穩(wěn)定性及帶寬享用的公平性。錯(cuò)誤控制機(jī)制是一個(gè)可靠傳輸協(xié)議的關(guān)鍵部分。它對(duì)協(xié)議的性能有很大的影響,包括吞吐量、 能量消耗及可靠性。錯(cuò)誤控制通常包括錯(cuò)誤檢測(cè)和錯(cuò)誤恢復(fù)兩部分。為了保證數(shù)據(jù)傳輸?shù)目煽啃?,TCP要求接受端在正確接收到數(shù)據(jù)段(data segmen)后向發(fā)送端發(fā)送一個(gè)確認(rèn)包,確認(rèn)包中包含了期望接收到的下一個(gè)數(shù)據(jù)段的序號(hào)。TCP發(fā)送端通過監(jiān)測(cè)確認(rèn)包的序號(hào)來檢測(cè)是否發(fā)生了錯(cuò)誤。如果發(fā)生超時(shí)或者發(fā)送端收到一定數(shù)量(通常是3個(gè))重復(fù)的確認(rèn)包,則認(rèn)為傳輸過程中發(fā)生了錯(cuò)誤,數(shù)據(jù)段被丟棄。由于有線網(wǎng)絡(luò)的位出錯(cuò)率很低(例如光纖的BER通常只有10- 1222),因此TC
17、P假設(shè)丟包是由于網(wǎng)絡(luò)擁塞引起的。在錯(cuò)誤恢復(fù)處理過程中,TCP重傳丟棄的數(shù)據(jù)段、減小發(fā)送端窗口大小并且在超時(shí)情況下重置超時(shí)時(shí)鐘。最初的TCP協(xié)議只有基于窗口的流控制(flow control )機(jī)制而沒有擁塞控制機(jī)制。流控制作為 接受方管理發(fā)送方發(fā)送數(shù)據(jù)的方式,用來防止接受方可用的數(shù)據(jù)緩存空間的溢出。流控制是一 種局部控制機(jī)制,其參與者僅僅是發(fā)送方和接收方,它只考慮了接收端的接收能力,而沒有考 慮到網(wǎng)絡(luò)的傳輸能力;而擁塞控制則注重于整體,其考慮的是整個(gè)網(wǎng)絡(luò)的傳輸能力,是一種全 局控制機(jī)制。正因?yàn)榱骺刂频倪@種局限性,從而導(dǎo)致了擁塞崩潰現(xiàn)象的發(fā)生。1986年初,Jacobson開發(fā)了現(xiàn)在在 TCP應(yīng)
18、用中的擁塞控制機(jī)制。運(yùn)行在端節(jié)點(diǎn)主機(jī)中的這些機(jī) 制使得TCP連接在網(wǎng)絡(luò)發(fā)生擁塞時(shí)回退(back off),也就是說TCP源端會(huì)對(duì)網(wǎng)絡(luò)發(fā)出的擁塞指示(congestion notification )(例如丟包、重復(fù)的ACK等)作出響應(yīng)。1988年Jacobson針對(duì)TCP 在控制網(wǎng)絡(luò)擁塞方面的不足,提出了 慢啟動(dòng)"(Slow Start)和 擁塞避免"(Congestion Avoidanee )算法。1990年出現(xiàn)的TCP Reno版本增加了 快速重傳” (Fast Retransmit)、 快速恢復(fù)” (Fast Recovery)算法,避免了網(wǎng)絡(luò)擁塞不嚴(yán)重時(shí)采用慢啟動(dòng)
19、”算法而造成過大地減小發(fā)送窗口尺寸的現(xiàn)象,這樣TCP的擁塞控制就由這 4個(gè)核心部分組成。近幾年又出現(xiàn)TCP的改進(jìn)版本如NewReno 和選擇性應(yīng)答(selective acknowledgement, SACK )等。正是這些擁塞控制機(jī)制防止了今天網(wǎng)絡(luò) 的擁塞崩潰。TCP擁塞控制四個(gè)主要過程(如圖 4(玄)和(b)所示)簡(jiǎn)要介紹如下:1. 慢啟動(dòng)階段:早期開發(fā)的 TCP應(yīng)用在啟動(dòng)一個(gè)連接時(shí)會(huì)向網(wǎng)絡(luò)中發(fā)送大量的數(shù)據(jù)包,這樣很容易導(dǎo)致路由器緩存空間耗盡,網(wǎng)絡(luò)發(fā)生擁塞,使得TCP連接的吞吐量急劇下降。由于TCP源端無法知道網(wǎng)絡(luò)資源當(dāng)前的利用狀況,因此新建立的TCP連接不能一開始就發(fā)送大量數(shù)據(jù),而只能
20、逐步增加每次發(fā)送的數(shù)據(jù)量,以避免上述現(xiàn)象的發(fā)生。具體地說,當(dāng)建立新的TCP連接時(shí),擁塞窗口( congestion window , cwnd)初始化為一個(gè)數(shù)據(jù)包大小。源端按 cwnd大小發(fā)送數(shù)據(jù),每收到一個(gè)ACK確認(rèn),cwnd就增加一個(gè)數(shù)據(jù)包發(fā)送量,這樣cwnd就將隨著回路響應(yīng)時(shí)間(Round Trip Time , RTT)呈指數(shù)增長(zhǎng),源端向網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量將急 劇增加。事實(shí)上,慢啟動(dòng)一點(diǎn)也不慢,要達(dá)到每RTT發(fā)送W個(gè)數(shù)據(jù)包所需時(shí)間僅為RTTXIogW。由于在發(fā)生擁塞時(shí),擁塞窗口會(huì)減半或降到1,因此慢啟動(dòng)確保了源端的發(fā)送速率最多是鏈路帶寬的兩倍。2. 擁塞避免階段:如果 TCP源端發(fā)現(xiàn)超時(shí)
21、或收到 3個(gè)相同ACK副本時(shí),即認(rèn)為網(wǎng)絡(luò)發(fā)生了擁塞(主要因?yàn)橛蓚鬏斠鸬臄?shù)據(jù)包損壞和丟失的概率很小(<<1% )。此時(shí)就進(jìn)入擁塞避免階段。慢啟動(dòng)閾值(ssthresh)被設(shè)置為當(dāng)前擁塞窗口大小的一半;如果超時(shí),擁塞窗口被置1。如果cwnd>ssthresh, TCP就執(zhí)行擁塞避免算法,此時(shí), cwnd在每次收到一個(gè) ACK時(shí) 只增加1/cwnd個(gè)數(shù)據(jù)包,這樣,在一個(gè)RTT內(nèi),cwnd將增加1,所以在擁塞避免階段,cwnd 不是呈指數(shù)增長(zhǎng),而是線性增長(zhǎng)。3. 快速重傳和快速恢復(fù)階段:快速重傳是當(dāng)TCP源端收到到三個(gè)相同的 ACK畐怵時(shí),即認(rèn)為有數(shù)據(jù)包丟失,則源端重傳丟失的數(shù)據(jù)包
22、,而不必等待RTO超時(shí)。同時(shí)將ssthresh設(shè)置為當(dāng)前cwnd值的一半,并且將cwnd減為原先的一半??焖倩謴?fù)是基于管道"模型(pipe model)的 數(shù)據(jù)包守恒"的原則(conservation of packets principle),即同一時(shí)刻在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù) 包數(shù)量是恒定的,只有當(dāng)舊”數(shù)據(jù)包離開網(wǎng)絡(luò)后,才能發(fā)送新”數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)。如果發(fā)送方收到一個(gè)重復(fù)的 ACK,則認(rèn)為已經(jīng)有一個(gè)數(shù)據(jù)包離開了網(wǎng)絡(luò),于是將擁塞窗口加1。如果數(shù)據(jù)包守恒”原則能夠得到嚴(yán)格遵守,那么網(wǎng)絡(luò)中將很少會(huì)發(fā)生擁塞;本質(zhì)上,擁塞控制的 目的就是找到違反該原則的地方并進(jìn)行修正。1S-W"
23、;JFjfL:*ssfithresh圖4( a):慢啟動(dòng)和擁塞避免圖4 (b):快速重傳和快速恢復(fù)經(jīng)過十多年的發(fā)展,目前 TCP協(xié)議主要包含有四個(gè)版本:TCP Tahoe、TCP Reno、TCP NewReno和TCP SACK。TCP Tahoe是早期的TCP版本,它包括了 3個(gè)最基本的擁塞控制算法慢啟動(dòng)”、擁塞避免”和 快速重傳”。TCP Reno在TCP Tahoe基礎(chǔ)上增加了 快速恢復(fù)”算法。TCP NewReno對(duì)TCP Reno中的 快速恢復(fù)”算法進(jìn)行了修正,它考慮了一個(gè)發(fā)送窗口內(nèi)多個(gè)數(shù)據(jù)包丟失的情況。在Re no版中,發(fā)送端收到一個(gè)新的ACK后舊退出 快速恢復(fù)”階段,而在New
24、Reno版中,只有當(dāng)所有的數(shù)據(jù)包都被確認(rèn)后才退出快速恢復(fù)”階段。TCP SACK關(guān)注的也是一個(gè)窗口內(nèi)多個(gè)數(shù)據(jù)包丟失的情況,它避免了之前版本的 TCP重傳一個(gè)窗口內(nèi)所有數(shù)據(jù)包的情況,包括那些已經(jīng)被接收端正確接收的數(shù)據(jù)包,而只是重傳那些被丟棄的數(shù)據(jù)包。另外,在1994年,L.S.Brakmo等提出了一種新的擁塞控制策略一TCP Vegas。由于RTT值與網(wǎng)絡(luò)運(yùn)行情況有密切關(guān)系,因此,TCP Vegas通過觀察TCP連接中RTT值改變感知網(wǎng)絡(luò)是否發(fā)生擁塞,從而控制擁塞窗口大小。如果發(fā)現(xiàn)RTT值變大,Vegas就認(rèn)為網(wǎng)絡(luò)正在發(fā)生擁塞,于是開始減小擁塞窗口;另一方面,如果 RTT變小,Vegas就認(rèn)為網(wǎng)
25、絡(luò)擁塞正在解除,于是再次增加擁塞窗口。這樣, 擁塞窗口在理想情況下就會(huì)穩(wěn)定在一個(gè)合適的值上。TCP Vegas的最大優(yōu)點(diǎn)在于擁塞機(jī)制的觸發(fā)只與RTT的改變有關(guān),而與包的具體傳輸時(shí)延無關(guān)。由于TCP Vegas不是利用丟包來判斷網(wǎng)絡(luò)可用帶寬,而是以RTT的變化來判斷,因此能更精確地預(yù)測(cè)網(wǎng)絡(luò)的可利用帶寬,其公平性、效率都較好。但TCP Vegas之所以未能在互聯(lián)網(wǎng)上大規(guī)模使用,主要是因?yàn)槭褂肨CP Vegas的流在帶寬競(jìng)爭(zhēng)能力方面不及未使用 TCP Vegas的流,從而導(dǎo)致網(wǎng)絡(luò)資源享用不公平,而不是算法本身的問題。3.2擁塞控制的主要問題擁塞控制的問題主要集中在效率和公平性(fairness)上。
26、網(wǎng)絡(luò)資源的使用效率是指源端要求的總資源與網(wǎng)絡(luò)所能提供的資源之間的關(guān)系。如果二者剛好相等或者很接近,那么這種算法的效率就是高 的,否則都是效率不高的表現(xiàn)。公平性是指在網(wǎng)絡(luò)發(fā)生擁塞時(shí)各連接能公平地共享網(wǎng)絡(luò)資源。產(chǎn)生公平性的根本原因在于擁塞發(fā)生 必然導(dǎo)致數(shù)據(jù)包丟失,而數(shù)據(jù)包丟失會(huì)導(dǎo)致各數(shù)據(jù)流之間為爭(zhēng)搶有限的網(wǎng)絡(luò)資源發(fā)生競(jìng)爭(zhēng),競(jìng)爭(zhēng)能 力強(qiáng)的數(shù)據(jù)流將到更多網(wǎng)絡(luò)資源,從而損害了其他流的利益。所以說沒有擁塞,也就沒有公平性問 題。公平性問題表現(xiàn)在兩方面:一是擁塞響應(yīng)的TCP流和非擁塞響應(yīng)的 UDP流之間資源享用不公平;二是TCP流之間資源享用的不公平。前者主要是在發(fā)生擁塞時(shí)對(duì)擁塞指示作出的不同反應(yīng)造成 的。
27、由于TCP流具有擁塞控制機(jī)制,在收到擁塞指示后,源端會(huì)主動(dòng)降低發(fā)送速率;而UDP流由于沒有端到端的擁塞控制機(jī)制,因此在收到擁塞指示后,UDP不會(huì)降低數(shù)據(jù)發(fā)送速率。結(jié)果在網(wǎng)絡(luò)擁塞時(shí),擁塞適應(yīng)的 TCP流得到的資源越來越少,非擁塞適應(yīng)的UDP得到的資源越來越多,從而導(dǎo)致了網(wǎng)絡(luò)資源分配的不公平。網(wǎng)絡(luò)資源分配的不公平反過來會(huì)加重?fù)砣闆r,甚至可能導(dǎo)致?lián)砣?崩潰。對(duì)于第二個(gè)不公平性問題,研究表明,不同的窗口大小、RTT值及數(shù)據(jù)包的尺寸都會(huì)影響 TCP流對(duì)帶寬的占用。窗口較大,或者RTT較小,或者數(shù)據(jù)包較大的流往往能占用更多的帶寬。3.3有線網(wǎng)絡(luò)中TCP擁塞控制機(jī)制的改進(jìn)3.3.1針對(duì)對(duì)不必要的超時(shí)重傳和
28、快速重傳我們知道,當(dāng)前的TCP應(yīng)用主要有兩種重傳機(jī)制快速重傳和超時(shí)重傳。當(dāng)TCP源端收到3個(gè)ACK副本時(shí),就會(huì)觸發(fā)快速重傳機(jī)制,此時(shí)源端重傳丟失的數(shù)據(jù)包并且將擁塞窗口大小減半。這種情況 下,TCP流往往能夠很快從丟包中恢復(fù)過來,重新回到原先的發(fā)送速率。但如果TCP源端沒有收到3個(gè)ACK副本,例如擁塞窗口大小小于4,那么TCP源端則需要等待相當(dāng)長(zhǎng)時(shí)間,以便超時(shí)重發(fā)。這樣,小窗口的TCP流就很容易陷入不必要的超時(shí)重發(fā),使其吞吐量大大下降。為了避免這種不必要的超時(shí)重傳,一種改進(jìn)辦法就是只要TCP源端收到一個(gè)或者兩個(gè) ACK副本,并且如果通告窗口允許,便繼續(xù)發(fā)送新的數(shù)據(jù)包。這是因?yàn)橹灰盏?ACK副本
29、,就表明有數(shù)據(jù)包已 經(jīng)離開網(wǎng)絡(luò)被接受端接收了,而此時(shí)源端還無法判斷數(shù)據(jù)包是否被丟棄,根據(jù)數(shù)據(jù)包守恒”原則,只要遵守?fù)砣翱诘囊?guī)范,也即同時(shí)在網(wǎng)絡(luò)中傳送的數(shù)據(jù)包數(shù)量不能超過擁塞窗口的大?。ㄒ詳?shù)據(jù) 包為單位),源端就可以繼續(xù)發(fā)送新的數(shù)據(jù)包。這種機(jī)制稱為限制傳輸機(jī)制(Limited Tran smitmechanism),這種機(jī)制對(duì)排序的數(shù)據(jù)包尤其有效。限制傳輸機(jī)制可以使小窗口的TCP流很快從丟包中恢復(fù)過來。例如,對(duì)于擁塞窗口大小為 4地TCP流,如果其第二個(gè)數(shù)據(jù)包丟失,那么按傳統(tǒng)地做法需要等待超時(shí)重傳。而在限制傳輸機(jī)制下,當(dāng)源 端收到對(duì)第三個(gè)數(shù)據(jù)包確認(rèn)的ACK副本時(shí)(ACK中要求源端發(fā)送第二個(gè)數(shù)據(jù)
30、包),繼續(xù)發(fā)送新的數(shù)據(jù)包,最終源端可以收到三個(gè)ACK副本從而觸發(fā)快速重傳,從而減少了不必要的超時(shí)重傳。3.3.2針對(duì)亂序包和延遲包引起的重傳在不少情況下,TCP源端推斷認(rèn)為數(shù)據(jù)包被丟棄了,從而導(dǎo)致重傳及擁塞窗口的減小,而實(shí)際上數(shù) 據(jù)包并沒有被丟棄。如果超時(shí)時(shí)鐘過早地到時(shí)了(事實(shí)上數(shù)據(jù)包或者 ACK并沒有丟失,只要能夠再等待一會(huì)兒并可收到 ACK ),源端便毫無必要地重發(fā)了數(shù)據(jù)包,更嚴(yán)重的是擁塞窗口的減小,而實(shí) 際上并沒有數(shù)據(jù)包被丟棄。類似地,如果由于數(shù)據(jù)包的亂序?qū)е略炊私邮盏?個(gè)ACK副本,便會(huì)導(dǎo)致快速重傳,TCP源端也毫無必要地重發(fā)了數(shù)據(jù)包,并且減小了擁塞窗口。對(duì)于前者,雖然可以通 過更為精確地調(diào)節(jié)超時(shí)時(shí)鐘來減少不必要地超時(shí)重傳,但要完全避免卻是不可能的。同樣,對(duì)于后 者,雖然可以通過提高快速重傳算法的性能來減少不必要的快速重傳,但也不可能完全避免。對(duì)于擁塞窗口較大的流, 比如大小為 W,不必要地減小擁塞窗口會(huì)導(dǎo)致其至少花費(fèi)W/2 RTT時(shí)間恢復(fù)到原來擁塞窗口的大小,從而使其性能大大下降,特別是在數(shù)據(jù)包持續(xù)出現(xiàn)亂序或者對(duì)RTT的估算不很
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 桃樹造林規(guī)劃方案范本
- 礦山安全監(jiān)測(cè)與火災(zāi)防控考核試卷
- 彈簧在汽車油門踏板的反饋和控制性能考核試卷
- 莞城區(qū)水庫清淤施工方案
- 證券從業(yè)資格證行業(yè)競(jìng)爭(zhēng)策略試題及答案
- 舊房地基維修施工方案
- 水下作業(yè)的深海地質(zhì)研究新技術(shù)考核試卷
- 考生必知的知識(shí)點(diǎn)證券從業(yè)試題及答案
- 2025年投資組合理論試題及答案
- 2024年微生物檢測(cè)技師真題及答案
- 2025年04月包頭醫(yī)學(xué)院公開招聘28名事業(yè)單位工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 《美的電器審計(jì)案例》課件
- 2025-2030中國(guó)冰鞋行業(yè)市場(chǎng)發(fā)展分析與發(fā)展趨勢(shì)及投資風(fēng)險(xiǎn)研究報(bào)告
- 2024年美容師考試相關(guān)法律法規(guī)知識(shí)試題及答案
- 2025新疆交投集團(tuán)所屬子公司招56人筆試參考題庫附帶答案詳解
- 綜藝節(jié)目贊助合同書
- 三級(jí)精神病醫(yī)院基本標(biāo)準(zhǔn)(2023版)
- 高爾夫球場(chǎng)澆灌施工方案
- 出納員工考核試題及答案
- 節(jié)假日期間醫(yī)療安全
- 智能交通系統(tǒng)在城市管理中的應(yīng)用與前景
評(píng)論
0/150
提交評(píng)論