亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)據(jù)中心中TCP連接建立過(guò)程的優(yōu)化方法

        2017-10-21 08:10:00廖蘋秀
        計(jì)算機(jī)應(yīng)用 2017年8期
        關(guān)鍵詞:隊(duì)列交換機(jī)數(shù)據(jù)包

        夏 羽,廖蘋秀,崔 雷

        (1.四川師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,成都 610101; 2.中國(guó)電子科技集團(tuán)公司 第30研究所,成都 610041;3.華為技術(shù)有限公司,廣東 深圳 518129)

        (*通信作者電子郵箱rainsia@163.com)

        數(shù)據(jù)中心中TCP連接建立過(guò)程的優(yōu)化方法

        夏 羽1*,廖蘋秀2,崔 雷3

        (1.四川師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,成都 610101; 2.中國(guó)電子科技集團(tuán)公司 第30研究所,成都 610041;3.華為技術(shù)有限公司,廣東 深圳 518129)

        (*通信作者電子郵箱rainsia@163.com)

        針對(duì)數(shù)據(jù)中心中由于SYN包丟失而引起的TCP連接被延遲從而錯(cuò)過(guò)任務(wù)時(shí)間限制的問(wèn)題,在無(wú)需更換現(xiàn)有設(shè)備以及無(wú)需修改應(yīng)用和TCP的前提下,提出一種基于加權(quán)隨機(jī)早期檢測(cè)(WRED)協(xié)議的TCP連接初始化的優(yōu)化方法。該方法解決了連接優(yōu)化的三個(gè)關(guān)鍵問(wèn)題:如何識(shí)別和標(biāo)記SYN包,如何在交換機(jī)上為SYN包預(yù)留空間以及需要預(yù)留多少空間。與原TCP相比,優(yōu)化后TCP連接建立的時(shí)間極大地減少。實(shí)驗(yàn)表明TCP連接初始化優(yōu)化方法可以解決任務(wù)錯(cuò)過(guò)規(guī)定時(shí)間限制的問(wèn)題。

        數(shù)據(jù)中心;傳輸控制協(xié)議;三次握手;SYN分組

        0 引言

        數(shù)據(jù)中心已經(jīng)成為大數(shù)據(jù)、云計(jì)算和移動(dòng)計(jì)算必不可少的基礎(chǔ)設(shè)施?,F(xiàn)代數(shù)據(jù)中心基本上是基于Internet模型建立的,因此大部分現(xiàn)有數(shù)據(jù)中心都直接使用經(jīng)典的TCP/IP模型。然而經(jīng)典的傳輸控制協(xié)議(Transmission Control Protocol, TCP)在數(shù)據(jù)中心環(huán)境中卻往往顯得力不從心,在筆者所在實(shí)驗(yàn)數(shù)據(jù)中心當(dāng)中部署和測(cè)試應(yīng)用時(shí),發(fā)現(xiàn)應(yīng)用的性能顯得極其低下。經(jīng)過(guò)大量的收集、統(tǒng)計(jì)和分析工作,我們發(fā)現(xiàn)了TCP連接建立過(guò)程中存在的潛在問(wèn)題:TCP握手?jǐn)?shù)據(jù)包“SYN”一旦丟失,則會(huì)造成較大的連接時(shí)延,從而嚴(yán)重影響整個(gè)計(jì)算任務(wù)的性能、降低計(jì)算結(jié)果的準(zhǔn)確性甚至使得整個(gè)計(jì)算任務(wù)錯(cuò)過(guò)規(guī)定的計(jì)算時(shí)間。為了解決這個(gè)問(wèn)題,提出了一種基于加權(quán)隨機(jī)早期檢測(cè)(Weighted Random Early Detection, WRED)的主動(dòng)隊(duì)列管理方法來(lái)避免SYN包的丟失,從而優(yōu)化數(shù)據(jù)中心中TCP連接的建立過(guò)程。這種方法不需要更新現(xiàn)有數(shù)據(jù)中心的任何設(shè)備,也不需要更改現(xiàn)有的TCP,可以在任何數(shù)據(jù)中心當(dāng)中有效地部署。

        1 TCP連接建立問(wèn)題

        數(shù)據(jù)中心是大量的計(jì)算節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)相互連接而組成的高性能計(jì)算設(shè)施,這些計(jì)算節(jié)點(diǎn)之間相互協(xié)作,最終完成一個(gè)計(jì)算任務(wù)。這些計(jì)算任務(wù)的完成一般都有一定的時(shí)間限制,這個(gè)限制一般被稱為服務(wù)水平約定(Service-Level Agreement, SLA)。為了使計(jì)算節(jié)點(diǎn)獲得更多的處理時(shí)間,數(shù)據(jù)中心內(nèi)部都采用高速網(wǎng)絡(luò)連接。由于計(jì)算量龐大,數(shù)據(jù)中心中的計(jì)算任務(wù)一般都使用大量的計(jì)算節(jié)點(diǎn)并行運(yùn)行,最后將這些計(jì)算結(jié)果匯總到同一個(gè)計(jì)算節(jié)點(diǎn)再作統(tǒng)一的處理,這種計(jì)算模型一般被稱為Map/Reduce[1]。

        為了處理某個(gè)計(jì)算任務(wù),建立了一個(gè)基于FatTree結(jié)構(gòu)[2]的數(shù)據(jù)中心。FatTree結(jié)構(gòu)(如圖1所示)的優(yōu)點(diǎn)是在數(shù)據(jù)中心的任意層次都不需要使用更高性能的交換機(jī)/路由器的前提下對(duì)整個(gè)數(shù)據(jù)中心提供全二分帶寬(bisection bandwidth),從而提高數(shù)據(jù)中心的性價(jià)比。在這個(gè)實(shí)驗(yàn)數(shù)據(jù)中心中,使用Map/Reduce模型在不同的服務(wù)器上部署計(jì)算任務(wù)來(lái)收集和處理數(shù)據(jù),然后在特定的時(shí)間點(diǎn)把這些分別處理的數(shù)據(jù)匯總到某個(gè)服務(wù)器集中處理。從收集、處理到匯總計(jì)算的時(shí)間必須被限制在某個(gè)預(yù)定的SLA之內(nèi)完成,但在實(shí)際實(shí)驗(yàn)時(shí)發(fā)現(xiàn),大量的計(jì)算任務(wù)遠(yuǎn)遠(yuǎn)地錯(cuò)過(guò)了預(yù)定的SLA。

        圖1 FatTree結(jié)構(gòu)示例Fig. 1 Illustration of the FatTree data center

        起初筆者認(rèn)為這是由于TCP傳輸效率引起的,因此根據(jù)已有數(shù)據(jù)中心TCP優(yōu)化的相關(guān)文獻(xiàn)資料,更換了TCP的不同版本(例如DCTCP等[3-5]),但還是出現(xiàn)大部分的計(jì)算任務(wù)錯(cuò)過(guò)了SLA。為了進(jìn)一步分析其原因,我們收集了網(wǎng)絡(luò)運(yùn)行過(guò)程中的信息,并對(duì)網(wǎng)絡(luò)的運(yùn)行情況進(jìn)行了分析。最終發(fā)現(xiàn)了數(shù)據(jù)中心中關(guān)于TCP的一個(gè)潛在問(wèn)題:TCP連接建立過(guò)程中,一旦SYN包丟失,則連接建立過(guò)程被延遲,而由于缺少一些數(shù)據(jù),使得計(jì)算精度被降低甚至整個(gè)計(jì)算任務(wù)超過(guò)時(shí)間限制而無(wú)效。

        為了隱藏實(shí)驗(yàn)數(shù)據(jù)中心應(yīng)用的部署細(xì)節(jié),同時(shí)也為了能更清楚地闡述在分析中發(fā)現(xiàn)的問(wèn)題,使用一個(gè)簡(jiǎn)化版本的實(shí)驗(yàn)來(lái)說(shuō)明連接延遲問(wèn)題。如圖2所示,有21個(gè)服務(wù)器由一個(gè)端口速率均為1 Gb/s的48口交換機(jī)相互連接。其中20個(gè)服務(wù)器運(yùn)行計(jì)算任務(wù),而每個(gè)服務(wù)器處理10個(gè)單獨(dú)的計(jì)算任務(wù)。當(dāng)每個(gè)服務(wù)器中相應(yīng)的任務(wù)處理完成后,各個(gè)服務(wù)器將自己的處理結(jié)果匯總給一個(gè)特定的服務(wù)器。這20個(gè)服務(wù)器稱為工作節(jié)點(diǎn)(worker),而這個(gè)特定的服務(wù)器被稱為匯總節(jié)點(diǎn)(aggregator)。當(dāng)匯總節(jié)點(diǎn)接收到所有工作節(jié)點(diǎn)的計(jì)算結(jié)果后,整理這些結(jié)果,最后整個(gè)計(jì)算任務(wù)完成。交換機(jī)共有8 MB主存空間,這些主存平均分配給48個(gè)端口。由于交換機(jī)運(yùn)行需要占用一定的主存,但手冊(cè)上并未給出具體數(shù)值,我們通過(guò)實(shí)驗(yàn)提前估算了在平均分配策略下每個(gè)端口可以分配100 KB左右的隊(duì)列空間。此外,根據(jù)實(shí)驗(yàn)統(tǒng)計(jì),所有數(shù)據(jù)處理任務(wù)完成時(shí)間相差在500 ms以內(nèi)。為了便于理解和估計(jì),將每個(gè)處理任務(wù)發(fā)送的數(shù)據(jù)量限制為1 MB,可以簡(jiǎn)單計(jì)算需要傳輸?shù)目倲?shù)據(jù)量為20×10×1 MB=200 MB。由于瓶頸帶寬為1 Gb/s,在理想情況下,整個(gè)傳輸完成時(shí)間應(yīng)該為1.6 s左右。然而在實(shí)際網(wǎng)絡(luò)中遠(yuǎn)遠(yuǎn)達(dá)不到全速率的傳輸,加上TCP握手時(shí)間、傳輸時(shí)間、TCP窗口調(diào)整速率損失以及TCP丟包重傳時(shí)間等因素,預(yù)計(jì)流完成時(shí)間應(yīng)該在3 s以內(nèi)較為合理,但實(shí)際的實(shí)驗(yàn)結(jié)果卻遠(yuǎn)遠(yuǎn)超出了3 s。

        為了進(jìn)一步分析原因,將這200個(gè)傳輸任務(wù)進(jìn)行編號(hào),分別記為0~200條流。在實(shí)驗(yàn)中沒(méi)有任何其他背景流量的情況下,200條流的完成時(shí)間如圖3(a)所示,其中橫坐標(biāo)表示流的編號(hào),縱坐標(biāo)則表示流從開(kāi)始建立TCP連接到完成1 MB數(shù)據(jù)傳輸所經(jīng)歷的時(shí)間。從圖3(a)中可以看出,有少量的流用了9 s左右的時(shí)間才完成傳輸,這影響了整個(gè)數(shù)據(jù)的完整傳輸,降低了計(jì)算結(jié)果的質(zhì)量。

        將圖3(a)中的流完成時(shí)間進(jìn)一步分解為圖3(b)所示的連接建立時(shí)間和圖3(c)所示的流傳輸時(shí)間。連接建立時(shí)間是指從開(kāi)始建立TCP連接到連接建立完成的時(shí)間,而流傳輸時(shí)間是指從TCP連接建立完成到1 MB數(shù)據(jù)傳輸完成所用的時(shí)間。從圖3(b)中可以清楚地看到,某些連接在創(chuàng)建時(shí)所消耗的時(shí)間就已經(jīng)超過(guò)了3 s,少量的連接甚至消耗了9 s左右;而圖3(c)所顯示的傳輸數(shù)據(jù)所占的時(shí)間僅為很少的一部分,用于傳輸?shù)淖畲髸r(shí)間僅為2.02 s。因此整個(gè)任務(wù)的完成時(shí)間主要由連接建立時(shí)間所決定。

        圖2 實(shí)驗(yàn)?zāi)P虵ig. 2 Experimental model

        圖3 200條流的完成、連接建立與傳輸時(shí)間Fig. 3 Completion, establishment and transfer time of 200 flows

        Map/Reduce流量表現(xiàn)出極大的突發(fā)和匯聚特性,也被稱為高扇入(high fan-in)特性[6]。當(dāng)大量的流申請(qǐng)和匯總節(jié)點(diǎn)建立連接時(shí),由于交換機(jī)出口隊(duì)列中存在大量的分組,從而導(dǎo)致隊(duì)列擁塞。現(xiàn)有的工作多集中在研究數(shù)據(jù)包丟失之后如何快速重傳該數(shù)據(jù)包以避免200 ms的最小重傳超時(shí)時(shí)間(Retransmission TimeOut,RTO)[5,7-8]。而實(shí)驗(yàn)表明,隊(duì)列擁塞也可能造成TCP握手?jǐn)?shù)據(jù)包“SYN”丟失,此時(shí)發(fā)送端和接收端均無(wú)法發(fā)現(xiàn)SYN包的丟失,因此只能等待超時(shí)。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),超時(shí)時(shí)間大概是3 s左右(不同操作系統(tǒng)中超時(shí)時(shí)間略有不同)。筆者試圖減少這個(gè)延遲時(shí)間,但并沒(méi)有找到可以控制這個(gè)時(shí)延行為的環(huán)境變量。要減少這個(gè)超時(shí)時(shí)間,必須修改TCP,這和我們不修改當(dāng)前運(yùn)行環(huán)境的出發(fā)點(diǎn)相沖突。

        SYN包被丟棄到超時(shí)的過(guò)程如圖4所示,當(dāng)發(fā)送端發(fā)送的SYN包丟失之后,發(fā)送端和接收端都無(wú)法得知SYN包的丟失信息,因此發(fā)送端必須等待超時(shí)之后才會(huì)再次發(fā)送SYN包。接收端接收到SYN包之后回復(fù)SYN+ACK包,最后發(fā)送端回復(fù)ACK包后連接建立完成,發(fā)送端和接收端之間開(kāi)始數(shù)據(jù)傳輸。如果重傳的SYN包再次因?yàn)閾砣鴣G失,延遲時(shí)間將會(huì)呈指數(shù)增長(zhǎng),這個(gè)行為被稱為TCP的指數(shù)性回退(exponential backoff)。這就是實(shí)驗(yàn)中為什么有的連接建立時(shí)間為9 s的原因。

        圖4 由于SYN包丟失引起的TCP連接建立延遲Fig. 4 TCP connection establishment delay due to SYN packet loss

        需要說(shuō)明的是,在實(shí)際網(wǎng)絡(luò)中一般都會(huì)部署主動(dòng)隊(duì)列管理(Active Queue Management, AQM),例如隨機(jī)早期檢測(cè)(Random Early Detection, RED)協(xié)議[9],來(lái)優(yōu)化TCP性能。主動(dòng)隊(duì)列管理是在隊(duì)列還未達(dá)到最大值之前就開(kāi)始主動(dòng)丟棄一些數(shù)據(jù)包,從而提前使得TCP降低其擁塞窗口而降低網(wǎng)絡(luò)擁塞的有效方法。然而RED等協(xié)議無(wú)法區(qū)分普通數(shù)據(jù)包或者SYN包,因此即便在隊(duì)列未滿的情況下也會(huì)引起SYN包丟失。

        在傳統(tǒng)Internet當(dāng)中也存在SYN包丟失的問(wèn)題,然而由于Internet網(wǎng)絡(luò)當(dāng)中的往返時(shí)間較長(zhǎng)(一般為500 ms以上),同時(shí)用戶對(duì)網(wǎng)絡(luò)延遲的容忍度相對(duì)較高,因此問(wèn)題并不嚴(yán)重。但是在數(shù)據(jù)中心中,往返時(shí)間較短(一般僅為100 μs左右[6-7]),且計(jì)算任務(wù)對(duì)網(wǎng)絡(luò)延遲的容忍度較低,因此SYN包丟失所帶來(lái)的影響更為突出。

        2 基于WRED的連接建立優(yōu)化

        2.1 SYN包丟失和隊(duì)列長(zhǎng)度關(guān)系

        連接延遲問(wèn)題的關(guān)鍵在于交換機(jī)端口擁塞之后,SYN包丟失會(huì)造成超時(shí)。本節(jié)試圖從根源上解決SYN包丟失所帶來(lái)的問(wèn)題。

        首先,SYN包丟失是由于隊(duì)列溢出引起的,因此試圖通過(guò)增加隊(duì)列長(zhǎng)度來(lái)降低SYN包丟失的概率。由于實(shí)驗(yàn)中使用的交換機(jī)是共享內(nèi)存的,可以控制給特定端口所分配的主存空間比例。為此改變匯總節(jié)點(diǎn)所連接的交換機(jī)端口的隊(duì)列大小,從100 KB增加到300 KB,然后收集不同隊(duì)列大小所對(duì)應(yīng)的所有流的平均和最大完成時(shí)間,結(jié)果如圖5所示。從圖5可以看出,隨著分配的隊(duì)列空間的增加,所有流完成的平均時(shí)間變化不大,但是最大流完成時(shí)間總在3 s以上。這意味著,隨著隊(duì)列空間的增大,始終有SYN包丟失,并且存在丟失2次的可能。其原因在于只要不發(fā)生隊(duì)列溢出,發(fā)送端的TCP擁塞窗口就會(huì)一直擴(kuò)大,直到發(fā)生擁塞而丟包,擁塞窗口才會(huì)減小。因此,無(wú)論給隊(duì)列分配多大空間,總會(huì)被填滿并引起SYN包丟失。此外,為了降低數(shù)據(jù)中心建立的成本,一般也不會(huì)在數(shù)據(jù)中心的接入層使用大主存的高端交換機(jī)[3]。因此,通過(guò)更換高端交換機(jī)來(lái)避免SYN包丟失是行不通的。

        圖5 200條流的完成時(shí)間隨隊(duì)列大小的變化Fig. 5 Impact of buffer size on flow completion time

        2.2 關(guān)鍵技術(shù)

        目前大多數(shù)低端交換機(jī)都支持WRED主動(dòng)隊(duì)列管理協(xié)議或者類似協(xié)議(例如華為系列的交換機(jī))。WRED協(xié)議[10]在RED協(xié)議[9]的基礎(chǔ)上,通過(guò)IP數(shù)據(jù)包頭當(dāng)中所攜帶的不同的DSCP (Differentiated Services Code Point)值來(lái)區(qū)分不同的閾值和丟包概率,從而提供區(qū)分服務(wù)。RED協(xié)議為隊(duì)列設(shè)置一個(gè)最小閾值(Thmin)和一個(gè)最大閾值(Thmax)。平均隊(duì)列長(zhǎng)度小于最小閾值時(shí)不丟包;在最小閾值和最大閾值之間時(shí),交換機(jī)以一定的概率丟棄數(shù)據(jù)包(不超過(guò)設(shè)置的最大丟包概率Probmax);超過(guò)最大閾值時(shí),丟棄所有的數(shù)據(jù)包。其具體過(guò)程如圖6所示。

        圖6 RED協(xié)議圖示Fig. 6 Illustration of RED protocol

        通過(guò)WRED協(xié)議來(lái)避免SYN包的丟棄的基本原理是為普通數(shù)據(jù)包設(shè)置一個(gè)隊(duì)列閾值,當(dāng)達(dá)到閾值時(shí),以一定的概率丟失數(shù)據(jù)包,從而為SYN包預(yù)留下隊(duì)列空間。由于數(shù)據(jù)中心當(dāng)中往返時(shí)延(Round-Trip Time, RTT)較小,可以通過(guò)TCP的機(jī)制快速重傳丟失的數(shù)據(jù)包。但是通過(guò)TCP的現(xiàn)有機(jī)制無(wú)法快速重傳SYN包,因此,可以考慮犧牲部分?jǐn)?shù)據(jù)包的存儲(chǔ)空間來(lái)?yè)Q取更重要的SYN包的傳輸。

        數(shù)據(jù)中心中一般不存在多媒體數(shù)據(jù)包,TCP包占95%以上,此外還有少量UDP廣播包用于廣播配置信息和少量ICMP包用于網(wǎng)絡(luò)控制,但這些數(shù)據(jù)包的量不會(huì)造成網(wǎng)絡(luò)擁塞,因此主要通過(guò)WRED協(xié)議控制TCP包的流量。如果數(shù)據(jù)中心中有其他數(shù)據(jù)包的流量較大,可以使用不同的DSCP參數(shù)和TCP進(jìn)行隔離。

        在具體實(shí)現(xiàn)過(guò)程中,需要解決以下三個(gè)關(guān)鍵問(wèn)題。

        1)交換機(jī)如何識(shí)別SYN包。

        SYN包的識(shí)別需要解析傳輸層包頭,而交換機(jī)是二層設(shè)備,無(wú)法檢測(cè)四層包頭信息,因此考慮在端系統(tǒng)上進(jìn)行識(shí)別。目前數(shù)據(jù)中心的應(yīng)用幾乎都部署在虛擬機(jī)上,而我們無(wú)法同時(shí)修改所有的客戶端操作系統(tǒng)(Guest Operation System),因此考慮在現(xiàn)有主操作系統(tǒng)中(或稱為Hypervisor)增加一個(gè)TCP代理,所有虛擬機(jī)上的數(shù)據(jù)包要發(fā)送出去,都必須經(jīng)過(guò)這個(gè)代理,如圖7所示。識(shí)別過(guò)程是通過(guò)匹配數(shù)據(jù)包包頭的特定字段,如果字段全部匹配上,則這個(gè)數(shù)據(jù)包是一個(gè)SYN包,同時(shí)將這個(gè)數(shù)據(jù)包的IP包頭中的DSCP字段進(jìn)行標(biāo)記,方便交換機(jī)識(shí)別。為了避免標(biāo)記SYN包的DSCP值和網(wǎng)絡(luò)中已經(jīng)部署的DSCP值沖突,采用DSCP值當(dāng)中專門為本地網(wǎng)絡(luò)和實(shí)驗(yàn)網(wǎng)絡(luò)預(yù)留的數(shù)值段,即DSCP值最末兩位二進(jìn)制位為11[11]。

        圖7 TCP代理示意圖Fig. 7 Illustration of TCP proxy

        2)WRED協(xié)議限制的是平均隊(duì)列長(zhǎng)度,如何限制數(shù)據(jù)包的隊(duì)列占用。

        WRED協(xié)議限制隊(duì)列長(zhǎng)度是通過(guò)滑動(dòng)平均 (moving average)的方式來(lái)計(jì)算歷史平均隊(duì)列長(zhǎng)度,因此設(shè)定閾值智能控制平均隊(duì)長(zhǎng),實(shí)際隊(duì)列長(zhǎng)度還是有可能達(dá)到最大隊(duì)長(zhǎng)從而造成SYN包丟失。根據(jù)Cisco交換機(jī)的標(biāo)準(zhǔn),WRED協(xié)議計(jì)算隊(duì)列長(zhǎng)度的方式為:

        avg(t)=avg(t-1)·(1-0.5exp)+qlen·0.5exp

        其中:avg(t)為當(dāng)前平均隊(duì)列長(zhǎng)度,avg(t-1)為上一個(gè)周期的平均隊(duì)列長(zhǎng)度,而qlen為當(dāng)前的實(shí)際隊(duì)列長(zhǎng)度。因此,當(dāng)WRED參數(shù)exp取值為0時(shí),則交換機(jī)將用實(shí)際隊(duì)列長(zhǎng)度來(lái)控制丟包。本文將普通數(shù)據(jù)包對(duì)應(yīng)最大閾值設(shè)為低于最大隊(duì)列長(zhǎng)度的某個(gè)值,在隊(duì)列長(zhǎng)度超過(guò)閾值后,數(shù)據(jù)包將被丟棄,從而為SYN包預(yù)留一定的空間;對(duì)于SYN包,將對(duì)應(yīng)的最小閾值和最大閾值都設(shè)置為最大隊(duì)列長(zhǎng)度,實(shí)際上就不會(huì)對(duì)SYN包進(jìn)行丟棄,直到隊(duì)列滿為止。

        3)需要為SYN包預(yù)留多少空間。

        在最大閾值之上的空間是為SYN包預(yù)留的,普通數(shù)據(jù)包不能占用。如果預(yù)留空間過(guò)多,則會(huì)影響數(shù)據(jù)包的傳輸效率;而如果預(yù)留空間過(guò)少,則SYN包會(huì)因?yàn)殛?duì)列溢出而被丟棄。因此必須知道需要預(yù)留的空間大小。為此,統(tǒng)計(jì)了在0.4 ms內(nèi)到達(dá)隊(duì)列的SYN包數(shù)量(包括被丟棄的SYN包)。實(shí)際上,對(duì)于1 Gb/s的端口速率,在0.2 ms內(nèi),隊(duì)列已經(jīng)可以清空24 KB的空間來(lái)存儲(chǔ)SYN包。考慮到實(shí)際網(wǎng)絡(luò)的傳輸效率,我們認(rèn)為在0.4 ms內(nèi)同時(shí)到達(dá)的SYN包會(huì)因?yàn)榭臻g不足而同時(shí)被丟棄。實(shí)驗(yàn)結(jié)果表明在大多數(shù)情況下,在0.4 ms內(nèi)僅有1個(gè)SYN包同時(shí)到達(dá),而同時(shí)到達(dá)2個(gè)SYN包的次數(shù)僅為10。因此在網(wǎng)絡(luò)正常的情況下,不會(huì)出現(xiàn)大量的SYN包同時(shí)到達(dá)的情況。在SYN泛洪攻擊的情況下,可能會(huì)出現(xiàn)網(wǎng)絡(luò)中存在大量SYN包的情況,從而導(dǎo)致SYN包溢出。然而本文討論的場(chǎng)景主要是在網(wǎng)絡(luò)中已經(jīng)有有效的防火墻的情況下,正常TCP流量的性能問(wèn)題,因此此處假定防火墻已經(jīng)攔截了大量SYN包泛洪的情況。

        將每個(gè)服務(wù)器上運(yùn)行的任務(wù)數(shù)從10增加到16(由于實(shí)驗(yàn)服務(wù)器CPU只有16核,如再增加任務(wù)數(shù)量會(huì)使每個(gè)任務(wù)無(wú)法以全速率運(yùn)算,影響任務(wù)運(yùn)行效率),此時(shí)最大流數(shù)量為320。圖8顯示了同時(shí)到達(dá)的SYN包的最大值與網(wǎng)絡(luò)中流數(shù)量的關(guān)系??梢钥闯?,在0.4 ms內(nèi),最大的SYN包并發(fā)數(shù)量為4,且出現(xiàn)次數(shù)僅為1。這種關(guān)系為預(yù)留隊(duì)列空間提供了很好的參考。

        圖8 同時(shí)的SYN包隨流數(shù)量的變化Fig. 8 Impact of the number of flows on the number of concurrent SYN packets

        2.3 最終方案

        在解決了以上三個(gè)關(guān)鍵問(wèn)題后,本文提出了一種優(yōu)化TCP連接建立過(guò)程的簡(jiǎn)單方案。

        首先,在端系統(tǒng)中部署TCP代理用于匹配SYN包并標(biāo)記特定的DSCP值,此處選擇DSCP值為111111表示SYN包;對(duì)于其他數(shù)據(jù)包則不作標(biāo)記,如果邊界路由器部署有區(qū)分服務(wù),則邊界路由器會(huì)標(biāo)記數(shù)據(jù)包。

        其次,更改網(wǎng)絡(luò)中交換機(jī)的WRED配置,將DSCP值為111111的最大閾值和最小閾值都改為隊(duì)列長(zhǎng)度,因此SYN包永遠(yuǎn)不會(huì)主動(dòng)丟棄。對(duì)于其他數(shù)據(jù)包對(duì)應(yīng)的DSCP值,最小閾值需要設(shè)置得相對(duì)較高,以避免不必要的丟包影響網(wǎng)絡(luò)利用率;最大閾值和最小閾值之間的差值也要足夠大以避免不同的TCP實(shí)例同步減小擁塞窗口。因此將其他DSCP值的最小閾值改為隊(duì)列長(zhǎng)度的一半,最大閾值改為隊(duì)列長(zhǎng)度減8個(gè)包大小,從而預(yù)留8個(gè)包的空間給并發(fā)的SYN包。

        3 實(shí)驗(yàn)與分析

        網(wǎng)絡(luò)配置和第一章配置相同??蛻舳说淖畲蠓侄未笮?Maximum Segment Size, MSS)設(shè)置為1 024,每個(gè)包的大小為1 KB,因此隊(duì)列可以存儲(chǔ)大約100個(gè)包。將111111對(duì)應(yīng)的WRED的最大閾值和最小閾值都設(shè)置為100;對(duì)于普通數(shù)據(jù)包,設(shè)置最小閾值為50,最大閾值為92(即預(yù)留8個(gè)空間存儲(chǔ)SYN包),最大閾值和最小閾值之間的最大丟包概率為5%。通過(guò)實(shí)驗(yàn)統(tǒng)計(jì)這200條流的傳輸完成時(shí)間,結(jié)果如圖9(a)所示??梢钥闯?,所有流都在3 s以內(nèi)完成,最大完成時(shí)間僅為2.03 s。同樣將這個(gè)時(shí)間分解為連接建立時(shí)間和流傳輸時(shí)間,如圖9(b)和圖9(c)所示??梢郧宄乜吹?,此時(shí)連接建立時(shí)間最大僅為1.4 ms;而流完成時(shí)間主要取決于傳輸時(shí)間,最大傳輸時(shí)間為約2.03 s。數(shù)據(jù)中心TCP傳輸效率的優(yōu)化已經(jīng)超出本文的主題范圍,可以參考其他文獻(xiàn),如文獻(xiàn)[3,5,12-14]等。

        圖9 優(yōu)化后的200條流的完成、連接建立與傳輸時(shí)間Fig. 9 Completion, establishment and transfer time of 200 flows after optimization

        接著通過(guò)實(shí)驗(yàn)驗(yàn)證流數(shù)量變化對(duì)流完成時(shí)間的影響。將每個(gè)服務(wù)器運(yùn)行的任務(wù)數(shù)量從10增加到16,然后統(tǒng)計(jì)所有流的平均完成時(shí)間和最大完成時(shí)間,結(jié)果如圖10所示??梢钥闯鲭S著流數(shù)量的增加,平均完成時(shí)間呈線性增加,但是最大完成時(shí)間略有起伏,其原因在于對(duì)于不同情況所采用的WRED參數(shù)完全一致,并未調(diào)校,因此性能上會(huì)有所不同。此外,還考慮了理想情況下所有流均以最高速率傳輸時(shí)的流完成時(shí)間作為參考的預(yù)計(jì)完成時(shí)間。

        圖10 完成時(shí)間隨流數(shù)量的變化Fig. 10 Impact of flow number on flow completion time

        最后一組實(shí)驗(yàn)考慮WRED參數(shù)對(duì)TCP性能的影響。WRED共有Thmin、Thmax和Probmax三個(gè)參數(shù),其中Thmax在本方案中用來(lái)控制預(yù)留的空間,不能調(diào)整。因此實(shí)驗(yàn)中先將Thmin的值從10增加到60,并統(tǒng)計(jì)所有TCP流的平均和最大完成時(shí)間,結(jié)果如圖11所示??梢钥闯?,Thmin的大部分值對(duì)最大完成時(shí)間的影響都不明顯,但在45時(shí)達(dá)到最小值。

        接下來(lái)將Thmin的值固定為45,然后改變Probmax的值從2%到50%,統(tǒng)計(jì)所有流的平均和最大完成時(shí)間,結(jié)果如圖12所示??梢钥闯?,Probmax值在12%~44%時(shí)TCP性能較好,并且在14%~22%時(shí)達(dá)到最佳性能。

        圖11 WRED最小閾值對(duì)TCP性能的影響Fig. 11 Impact of Thmin on TCP performance

        圖12 WRED最大丟包概率對(duì)TCP性能的影響Fig. 12 Impact of Probmax on TCP performance

        4 結(jié)語(yǔ)

        針對(duì)TCP連接建立過(guò)程中由于擁塞而出現(xiàn)的SYN包丟失所帶來(lái)的數(shù)據(jù)中心任務(wù)失敗問(wèn)題,本文提出了一種基于WRED協(xié)議的方法來(lái)避免SYN包的丟失。這種方法無(wú)需更改任何設(shè)備和協(xié)議,可以在現(xiàn)有數(shù)據(jù)中心當(dāng)中直接部署。實(shí)驗(yàn)證明,該方法有效地降低了TCP連接建立的時(shí)間,避免了任務(wù)超時(shí)的問(wèn)題。然而TCP傳輸?shù)男阅芎蚖RED協(xié)議的設(shè)置的參數(shù)相關(guān),未來(lái)的實(shí)驗(yàn)中可以進(jìn)一步設(shè)計(jì)一種自適應(yīng)的方法來(lái)自動(dòng)配置WRED參數(shù)。此外,本文提出的方法提高了TCP連接建立的成功率,同時(shí)也使得TCP之間競(jìng)爭(zhēng)更加激烈。在未來(lái)的研究中如果可以考慮網(wǎng)絡(luò)的擁塞情況,適當(dāng)?shù)乜刂埔欢〞r(shí)間段內(nèi)TCP連接成功的數(shù)量,則效果會(huì)更好。

        References)

        [1] DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters [J]. Communications of the ACM — 50th Anniversary Issue: 1958-2008, 2008, 51(1): 107-113.

        [2] MYSORE R N, PAMBORIS A, FARRINGTON N, et al. PortLand: a scalable fault-tolerant layer 2 data center network fabric [C]// SIGCOMM 2009: Proceedings of the ACM SIGCOMM 2009 Conference on Data Communication. New York: ACM, 2009: 39-50.

        [3] ALIZADEH M, GREENBERG A, MALTZ D A. et al. Data center TCP (DCTCP) [J]. ACM SIGCOMM Computer Communication Review — SIGCOMM ’10, 2010, 40(4): 63-74.

        [4] 葉進(jìn),李陶深,葛志輝.數(shù)據(jù)中心網(wǎng)絡(luò)基于優(yōu)先級(jí)擁塞控制的最后期限可感知TCP協(xié)議[J].軟件學(xué)報(bào),2015,26(S2):61-70. (YE J, LI T S, GE Z H. Priority-based congestion control scheme for deadline-aware TCP in data center networks [J]. Jounal of Software, 2015, 26(2): 61-70.)

        [5] 陸菲菲,郭得科,方興,等.數(shù)據(jù)中心網(wǎng)絡(luò)高效數(shù)據(jù)匯聚傳輸算法[J].計(jì)算機(jī)學(xué)報(bào),2016,39(9):1750-1762. (LU F F, GUO D K, FANG X, et al. Algorithm of efficient data aggregation transfers in data center networks [J]. Chinese Journal of Computers, 2016, 39(9): 1750-1762.

        [6] VASUDEVAN V, PHANISHAYEE A, SHAH H, et al. Safe and effective fine-grained TCP retransmissions for datacenter communication [J]. ACM SIGCOMM Computer Communication Review — SIGCOMM ’09, 2009, 39(4): 303-314.

        [7] CHEN Y, GRIFFITH R, LIU J. Understanding TCP incast throughput collapse in datacenter networks [C]// WREN ’09: Proceedings of the 1st ACM Workshop on Research on Enterprise Networking. New York: ACM, 2009: 73-82.

        [8] TAM A S-W, XI K, XU Y, et al. Preventing TCP incast throughput collapse at the initiation, continuation, and termination [C]// IWQoS 2012: Proceedings of the 20th International Workshop on Quality of Service. Piscataway, NJ: IEEE, 2012: 1-9.

        [9] FLOYD S, VAN JACOBSON. Random early detection gateways for congestion avoidance [J]. IEEE/ACM Transactions on Networking, 1993, 1(4): 397-413.

        [10] WURTZLER M. Analysis and simulation of Weighted Random Early Detection (WRED) queues [R]. Evanston, Illinois: Northwestern University, Electrical Engineering and Computer Science, 2002.

        [11] NICHOLS K, BLACK D L, BLAKE S, et al. RFC2474: Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 headers [S/OL]. [2016- 11- 05]. https://tools.ietf.org/html/rfc2474.

        [12] MUNIR A, QAZI I A, UZMI Z A, et al. Minimizing flow completion times in data centers [C]// INFOCOM 2013: Proceedings of the 2013 International Conference on Computer Communications. Piscataway, NJ: IEEE, 2013: 2157-2165.

        [13] XIA Y, WANG T, SU Z, et al. Preventing passive TCP timeouts in data center networks with packet drop notification [C]// CloudNet 2014: Proceedings of the 3rd International Conference on Cloud Networking. Piscataway, NJ: IEEE, 2014: 173-178.

        [14] 孫三山,汪帥,樊自甫.軟件定義網(wǎng)絡(luò)架構(gòu)下基于流調(diào)度代價(jià)的數(shù)據(jù)中心網(wǎng)絡(luò)擁塞控制路由算法[J].計(jì)算機(jī)應(yīng)用,2016,36(7):1784-1788. (SUN S S, WANG S, FAN Z F. Flow sheculing cost based ccongestion control routing algorithm for data center network on software defined network architecture [J]. Journal of Computer Applications, 2016, 36(7): 1784-1788.)

        This work is partially supported by the Scientific Research Fund of Sichuan Provincial Education Department (16ZB0064) and Sichuan Normal University Fund (Project name: Research and Optimization of Data Center Networks).

        XIAYu, born in 1983, Ph. D., lecturer. His research interests include high-performance switching, data center network.

        LIAOPingxiu, born in 1983, M. S., engineer. Her research interests include protocol analysis, network device testing.

        CUILei, born in 1982, engineer. His research interests include design and implementation of high-speed switches, network interfacing.

        OptimizationoftheTCPconnectioninitiatingprocessindatacenters

        XIA Yu1*, LIAO Pingxiu2, CUI Lei3

        (1.SchoolofComputerScience,SichuanNormalUniversity,ChengduSichuan610101,China;2.The30thInstitute,ChinaElectronicsTechnologyGroupCorporation,ChengduSichuan610041,China;3.HuaweiTechnologiesCompanyLimited,ShenzhenGuangdong518129,China)

        An SYN packet might be dropped when initiating a Transmission Control Protocol (TCP) connection in data centers, causing the tasks missing the expected deadline; accordingly, without changing the existing devices, applications and the TCP itself, a viable mechanism based on Weighted Random Early Detection (WRED) was proposed to avoid the drop of SYN packets. Three related key problems were solved by the proposed method: how to mark and recognize the SYN packets; how to reserve space for the SYN packets in switches; how much space is required for reserving. Compared with the original TCP, the TCP connection establishment time was greatly reduced after optimizing. The simulation results show that the connection initialization optimization method can solve the problem of tasks missing the expected deadline.

        data center; Transmission Control Protocol (TCP); three-way handshake; SYN packet

        TP393.06

        A

        2017- 02- 20;

        2017- 03- 27。

        四川教育廳基金資助項(xiàng)目(16ZB0064);四川師范大學(xué)基金項(xiàng)目(項(xiàng)目名稱:數(shù)據(jù)中心網(wǎng)絡(luò)的研究和優(yōu)化)。

        夏羽(1983—),男,云南昆明人,講師,博士,主要研究方向:高性能交換、數(shù)據(jù)中心網(wǎng)絡(luò); 廖蘋秀(1983—),女,四川樂(lè)山人,工程師,碩士,主要研究方向:協(xié)議分析、網(wǎng)絡(luò)設(shè)備測(cè)試; 崔雷(1982—),男,河南鄭州人,工程師,主要研究方向:高性能交換機(jī)設(shè)計(jì)與實(shí)現(xiàn)、網(wǎng)絡(luò)接口。

        1001- 9081(2017)08- 2157- 06

        10.11772/j.issn.1001- 9081.2017.08.2157

        猜你喜歡
        隊(duì)列交換機(jī)數(shù)據(jù)包
        隊(duì)列里的小秘密
        基于多隊(duì)列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊(duì)列里
        SmartSniff
        修復(fù)損壞的交換機(jī)NOS
        使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
        豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
        PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計(jì)
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
        羅克韋爾自動(dòng)化交換機(jī)Allen-Bradley ArmorStratix 5700
        日本国产在线一区二区| 少妇久久久久久被弄到高潮| 亚洲精品人成无码中文毛片| 妞干网中文字幕| 久久人妻精品免费二区| 欧美巨鞭大战丰满少妇| 少妇做爰免费视频网站| 日韩av在线毛片| 亚洲另类国产精品中文字幕| 久久久久久夜精品精品免费啦| 婷婷五月六月综合缴情| 精品久久久久久无码不卡| 久久精品国产白丝爆白浆| 久久精品中文少妇内射| 久久人与动人物a级毛片| 国产福利片无码区在线观看| 国产午夜福利av在线麻豆| 粗大猛烈进出高潮视频大全| 国产精品毛片久久久久久久| 日韩一区二区超清视频| 久久精品天堂一区二区| 国产乱人无码伦av在线a| 猫咪免费人成网站在线观看| 激情亚洲的在线观看| 日韩美女av一区二区| 亚洲国产日韩精品一区二区三区| 提供最新的在線欧美综合一区| 在线一区二区三区免费视频观看| 中出人妻希奇杰卡西av| 国产69精品久久久久999小说| 久久国产欧美日韩高清专区| 青青草在线免费观看在线| 在教室伦流澡到高潮hgl动漫| 国产黄a三级三级三级av在线看| jiZZ国产在线女人水多| 91精品国产综合久久久密臀九色| 亚洲av午夜福利精品一区二区| 国产丝袜在线精品丝袜不卡| 亚洲一区二区三区精品久久| 精品人妻大屁股白浆无码| 久久99精品久久久久久|