国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用多路無線傳輸?shù)牟⑿芯W(wǎng)關(guān)系統(tǒng)①

2019-04-29 08:59楊海波賈正鋒
關(guān)鍵詞:傳輸速度數(shù)據(jù)包以太網(wǎng)

呂 峰,楊海波,賈正鋒

1(中國科學(xué)院大學(xué),北京 100049)

2(中國科學(xué)院 沈陽計(jì)算技術(shù)研究所,沈陽 110168)

引言

有線網(wǎng)絡(luò)的傳輸速度從10 Mbps、100 Mbps 發(fā)展到1 Gbps、10 Gbps.但是無線網(wǎng)絡(luò)的發(fā)展速度遠(yuǎn)遠(yuǎn)達(dá)不到有線網(wǎng)絡(luò)的發(fā)展速度水平.目前小型有線局域網(wǎng)絡(luò)大都可以實(shí)現(xiàn)1 Gbps 的傳輸速度,而無線網(wǎng)絡(luò)的理論速度只有100 Mbps、300 Mbps,實(shí)際情況下會因?yàn)榫嚯x和干擾等原因使得傳輸速度遠(yuǎn)遠(yuǎn)達(dá)不到300 Mbps的理論速度.移動網(wǎng)絡(luò)的速度雖然在高速發(fā)展,但傳輸速度也大都在100 Mbps 以下[1-6].

無線網(wǎng)絡(luò)的傳輸速度瓶頸問題,極大限制了需要通過無線網(wǎng)絡(luò)傳輸大量數(shù)據(jù)設(shè)備的發(fā)展.特別是目前攝像設(shè)備,許多移動高清攝像設(shè)備所錄制的視頻并不能通過單個移動無線網(wǎng)絡(luò)終端將數(shù)據(jù)傳輸?shù)街行姆?wù)器.特別對于汽車、軌道列車等移動場景,需要一套使用并行傳輸技術(shù)提高網(wǎng)絡(luò)速度的系統(tǒng)來解決該問題[7-10].

本論文針對單個無線網(wǎng)絡(luò)傳輸瓶頸的問題,設(shè)計(jì)并實(shí)現(xiàn)了并行傳輸網(wǎng)關(guān)系統(tǒng).在不需要改變網(wǎng)絡(luò)層與應(yīng)用層協(xié)議的情況下,通過在無線傳輸兩端添加專用的并行網(wǎng)關(guān),將數(shù)據(jù)鏈路層以太網(wǎng)數(shù)據(jù)包進(jìn)行重新封裝后通過多個無線網(wǎng)絡(luò)并行傳輸數(shù)據(jù),提高無線網(wǎng)絡(luò)的傳輸速度.網(wǎng)關(guān)之間的數(shù)據(jù)傳輸是基于UDT 數(shù)據(jù)傳輸協(xié)議,網(wǎng)關(guān)只要與無線設(shè)備之間網(wǎng)絡(luò)連通即可,數(shù)據(jù)會通過系統(tǒng)原來的方式進(jìn)行路由.

1 以太網(wǎng)數(shù)據(jù)幀與UDT 傳輸協(xié)議

1.1 以太網(wǎng)數(shù)據(jù)幀格式

以太網(wǎng)幀格式,即在以太網(wǎng)幀頭、幀尾中用于實(shí)現(xiàn)以太網(wǎng)功能的域.以太網(wǎng)幀格式多達(dá)5 種,但今天大多數(shù)TCP/IP 應(yīng)用都是用Ethernet V2 幀格式(IEEE 802.3-1997 改回了對這一格式的兼容),而交換機(jī)之間BPDU(橋協(xié)議數(shù)據(jù)單元)數(shù)據(jù)包則是IEEE 802.3/LLC 的幀,VLAN Trunk 協(xié)議如802.1Q 和Cisco 的CDP(思科發(fā)現(xiàn)協(xié)議)等則是采用IEEE 802.3SNAP 的幀[11,12].

以太網(wǎng)的幀由:前導(dǎo)碼、幀起始定界符、目的MAC 地址、源MAC 地址、類型/長度、數(shù)據(jù)、幀校驗(yàn)序列這些字節(jié)組成.具體幀結(jié)構(gòu)和字段意義如表1.

表1 以太網(wǎng)幀格式表

1.2 UDT 數(shù)據(jù)傳輸協(xié)議

基于UDP 的數(shù)據(jù)傳輸協(xié)議(UDP-based Data Transfer protocol,UDT)是一種互聯(lián)網(wǎng)數(shù)據(jù)傳輸協(xié)議,是建于UDP 之上的可靠傳輸協(xié)議.UDT 是面向連接的雙向的應(yīng)用層協(xié)議.它支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報傳輸,同時傳輸效率要遠(yuǎn)遠(yuǎn)高于TCP[13-15].

2 并行傳輸網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

2.1 整體機(jī)構(gòu)

實(shí)現(xiàn)并行傳輸需要有三個獨(dú)立系統(tǒng)和設(shè)備,一是移動端的網(wǎng)關(guān);二是服務(wù)器端;三是目標(biāo)網(wǎng)絡(luò)的網(wǎng)關(guān).

其中,移動網(wǎng)絡(luò)網(wǎng)關(guān)與外部目標(biāo)網(wǎng)絡(luò)網(wǎng)關(guān)是同一種配置不同的設(shè)備即并行網(wǎng)關(guān),用來并行收發(fā)數(shù)據(jù).服務(wù)器端配對兩端網(wǎng)關(guān)設(shè)備.結(jié)構(gòu)設(shè)計(jì)如圖1所示.

并行網(wǎng)關(guān)與服務(wù)器之間網(wǎng)絡(luò)聯(lián)通,服務(wù)器協(xié)調(diào)多個并行網(wǎng)關(guān)之間的網(wǎng)絡(luò)聯(lián)通,使之成對進(jìn)行傳輸.并行網(wǎng)關(guān)將收發(fā)數(shù)據(jù)進(jìn)行并行收發(fā)處理,進(jìn)入網(wǎng)關(guān)的數(shù)據(jù)會被分成多路傳輸?shù)綄Χ?網(wǎng)關(guān)會將接收到的多路數(shù)據(jù)組合成一路數(shù)據(jù)輸出.其中多路的傳輸速度由各路網(wǎng)絡(luò)速度決定,多路組合的速度不能也不會超過各路傳輸速度的總和[16-19].

圖1 并行網(wǎng)絡(luò)傳輸結(jié)構(gòu)圖

2.2 系統(tǒng)邏輯結(jié)構(gòu)

系統(tǒng)的設(shè)計(jì)思想是將以太網(wǎng)層的數(shù)據(jù)通過傳輸層進(jìn)行傳輸,由傳輸層完成并行傳輸控制.每路UDT 通過物理上的一路傳輸網(wǎng)絡(luò)進(jìn)行連接,保證從每路UDT 收發(fā)的數(shù)據(jù)是從不同的無線網(wǎng)絡(luò)進(jìn)行傳輸?shù)?可以將UDT 的客戶端與服務(wù)器設(shè)置成不同網(wǎng)段的地址,物理連接時不同網(wǎng)段地址連接會被不同的物理網(wǎng)絡(luò)分開.最后數(shù)據(jù)匯聚到并行網(wǎng)關(guān).

從網(wǎng)卡接收數(shù)據(jù)后由上層處理數(shù)據(jù)時前導(dǎo)碼與幀開始符是使用不到的,實(shí)際幀從目的MAC 地址開始.如果將以太網(wǎng)的數(shù)據(jù)幀并行傳輸?shù)街付繕?biāo),需要以下兩個功能:

1)對以太網(wǎng)的幀進(jìn)行編號,確保在傳輸?shù)街付繕?biāo)前進(jìn)行排序,防止以太網(wǎng)幀亂序.

2)更改目的MAC 地址為實(shí)際的目標(biāo)MAC 地址.

并行傳輸處理的過程:

1)將網(wǎng)關(guān)從內(nèi)部網(wǎng)絡(luò)接收的以太網(wǎng)數(shù)據(jù),去除目標(biāo)MAC 地址,添加加消息頭部(消息編號,時間戳),組成新的幀數(shù)據(jù).消息頭部(編號、時間戳)定義:

數(shù)據(jù)的幀格式會進(jìn)轉(zhuǎn)換,原以太網(wǎng)幀格式如表2所示,新幀格式如表3所示.

表2 原以太網(wǎng)幀格式表

表3 新幀格式表

2)由不同的物理連接網(wǎng)絡(luò)將新的幀數(shù)據(jù)作為數(shù)據(jù)通過UDT(n路)可靠傳輸?shù)綄Χ瞬⑿芯W(wǎng)關(guān).

對于接收到的UDT 數(shù)據(jù)進(jìn)行解頭,將消息頭部提取,將頭部后面的信息重新添加目標(biāo)MAC 地址后組成新的的以太網(wǎng)幀數(shù)據(jù).通過頭部信息進(jìn)行排序后,由單路有線網(wǎng)絡(luò)發(fā)送到指定目標(biāo).具體的邏輯結(jié)構(gòu)設(shè)計(jì)如圖2所示.

解決并行控制與并行數(shù)據(jù)處理的問題方法:

1)每路UDT 的傳輸速度不一致,要保證數(shù)據(jù)包會按照每路UDT 傳輸?shù)乃俣确峙湎鄳?yīng)的數(shù)據(jù)量,就要實(shí)現(xiàn)每路UDT 進(jìn)行搶占式的發(fā)送方式.每路UDT 強(qiáng)占到資源后會立即進(jìn)行發(fā)送,發(fā)送完畢后再次進(jìn)入就緒狀態(tài).

2)數(shù)據(jù)包的順序問題,丟包處理.對傳輸過來的數(shù)據(jù)包根據(jù)包頭中的msgindex 進(jìn)行排序(序號可以設(shè)置為0-n的循環(huán)數(shù)字,n可以設(shè)置為80 000 以上的大數(shù)),確認(rèn)數(shù)據(jù)包的順序.設(shè)置超時機(jī)制,保證不會因?yàn)閭€別數(shù)據(jù)包的超時,影響后續(xù)數(shù)據(jù)包.

3)不同并行網(wǎng)關(guān)之間的聯(lián)通問題.解決這個問題需要在網(wǎng)絡(luò)可達(dá)的地方放置并行數(shù)據(jù)處理服務(wù)器.每臺并行網(wǎng)關(guān)首先連接服務(wù)器,由服務(wù)器進(jìn)行并行網(wǎng)關(guān)之間的匹配與建立連接.

圖2 并行網(wǎng)絡(luò)傳輸邏輯結(jié)構(gòu)圖

3 并行傳輸網(wǎng)關(guān)系統(tǒng)的實(shí)現(xiàn)

使用Linux 系統(tǒng)的x86 多網(wǎng)口工控機(jī)來實(shí)現(xiàn)并行傳輸網(wǎng)關(guān)設(shè)備.實(shí)際應(yīng)用場景中網(wǎng)絡(luò)連接的簡圖如圖3所示.

圖3 網(wǎng)絡(luò)拓?fù)浜唸D

并行傳輸網(wǎng)關(guān)設(shè)備的一路網(wǎng)口A 連接內(nèi)部網(wǎng)絡(luò),其它多路網(wǎng)口Bi 連接無線或其它外部傳輸網(wǎng)絡(luò).內(nèi)部網(wǎng)絡(luò)發(fā)往外部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)發(fā)往內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù),經(jīng)過并行網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā).

數(shù)據(jù)經(jīng)過以下步驟進(jìn)行并行轉(zhuǎn)發(fā):

1)內(nèi)部網(wǎng)絡(luò)數(shù)據(jù)發(fā)往外部網(wǎng)絡(luò)數(shù)據(jù).內(nèi)部網(wǎng)絡(luò)發(fā)往外部網(wǎng)絡(luò)的以太網(wǎng)數(shù)據(jù)幀,會發(fā)送到并行傳輸網(wǎng)關(guān)的A 網(wǎng)口.

在并行傳輸網(wǎng)關(guān)中,通過Linux內(nèi)核中的Netfilter 架構(gòu)[20,21].首先在內(nèi)核中添加特殊的網(wǎng)絡(luò)橋接模塊read_kernel.ko.即在數(shù)據(jù)進(jìn)入到L2(數(shù)據(jù)鏈路)層時,截獲數(shù)據(jù),通過目標(biāo)MAC 判斷是否是內(nèi)部網(wǎng)絡(luò)數(shù)據(jù),如果是則不處理,數(shù)據(jù)走正常流程.如果不是,去除數(shù)據(jù)中的源MAC 地址,將剩下的數(shù)據(jù)寫入到虛擬設(shè)備write 中[22,23].內(nèi)核程序通過虛擬設(shè)備與用戶程序進(jìn)行數(shù)據(jù)交換.內(nèi)核程序流程圖如圖4(a)所示.

然后UDT 處理轉(zhuǎn)發(fā)程序通過讀取write 虛擬設(shè)備獲得L2 層的以太網(wǎng)數(shù)據(jù)幀(已經(jīng)去除源MAC 地址).在以太網(wǎng)數(shù)據(jù)幀上添加消息頭部(編號、時間戳),然后將數(shù)據(jù)寫入到阻塞隊(duì)列,由多路的UDT 連接線程搶占式的讀取阻塞隊(duì)列,最后將數(shù)據(jù)發(fā)送到UDT 對端程序.數(shù)據(jù)即被發(fā)送到連接目標(biāo)設(shè)備的并行傳輸網(wǎng)關(guān)中.

2)外部網(wǎng)絡(luò)數(shù)據(jù)發(fā)往內(nèi)部網(wǎng)絡(luò)數(shù)據(jù).外部網(wǎng)絡(luò)發(fā)往內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù),會由添加頭部的UTD 數(shù)據(jù)攜帶,發(fā)送到并行傳輸網(wǎng)關(guān)的UDT 接收程序.

UDT 處理轉(zhuǎn)發(fā)程序接收到對端UDT 發(fā)送的數(shù)據(jù),首先解析頭部,得到數(shù)據(jù)包的編號與時間戳.通數(shù)據(jù)包的編號判斷是否是順序的數(shù)據(jù)包,如果是則將數(shù)據(jù)包去除消息頭部后寫入到read 虛擬設(shè)備中,如果不是,進(jìn)行小范圍排序后寫入到read 虛擬設(shè)備中.用戶程序通過read 虛擬設(shè)備將數(shù)據(jù)發(fā)送到linux 內(nèi)核程序中,完成數(shù)據(jù)交換.

在內(nèi)核中添加write_kernel.ko 模塊,模塊程序首先讀取read 虛擬設(shè)備中的數(shù)據(jù).獲取以太網(wǎng)數(shù)據(jù)幀,添加源mac 地址后,開辟skb_buff 空間,將數(shù)據(jù)賦值給skb_buff,最后通過dev_queue_xmit 發(fā)送數(shù)據(jù).程序流程圖如圖4(b)所示.

UDT 在程序中起到了上層轉(zhuǎn)發(fā)的過程,將數(shù)據(jù)包的路由交給了默認(rèn)的系統(tǒng)路由.上層并行處理的程序流程如圖4(c)所示.

圖4 程序流程圖

4 速度損耗與實(shí)驗(yàn)結(jié)果

新的數(shù)據(jù)幀會添加上UDT 的包頭,所以數(shù)據(jù)在傳輸時會有速度的損耗.速度的損耗與數(shù)據(jù)載荷大小n有關(guān),原以太網(wǎng)的數(shù)據(jù)包大小為n+20,使用UDT 進(jìn)行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)包大小為62+n,損耗率計(jì)算公式為:

數(shù)據(jù)載荷大小n的取值范圍[0,1438],所以速度的損耗率sr的取值范圍[0.028,0.687].

n越大速度的損耗越小,當(dāng)數(shù)據(jù)高速傳輸時,n值較大,所以損耗率相當(dāng)小.在實(shí)際使用并行網(wǎng)關(guān)的場景中速度的損耗幾乎可以忽略.

不同網(wǎng)絡(luò)實(shí)驗(yàn)的情況下,網(wǎng)絡(luò)傳輸?shù)乃俣惹闆r如表4所示.

表4 并行傳輸實(shí)驗(yàn)對照表

并行傳輸網(wǎng)關(guān)是否能發(fā)揮最大效果,與實(shí)際的網(wǎng)絡(luò)情況有一定關(guān)系,在大延時,丟包比較嚴(yán)重的情況下不適合使用并行傳輸網(wǎng)關(guān)系統(tǒng)進(jìn)行并行傳輸來提高網(wǎng)絡(luò)速度,可以使用并行傳輸網(wǎng)關(guān)系統(tǒng)進(jìn)行冗余傳輸以改善網(wǎng)絡(luò)丟包嚴(yán)重的情況.而在網(wǎng)絡(luò)相對良好的情況下,并行傳輸網(wǎng)關(guān)系統(tǒng)可以有效提高網(wǎng)絡(luò)的傳輸速度.多路并行傳輸?shù)睦眯试?0%-90%之間.

5 總結(jié)

并行網(wǎng)關(guān)傳輸系統(tǒng),適用于無線多路傳輸?shù)膱鼍?與有線多路傳輸?shù)膽?yīng)用場景中.在移動端的網(wǎng)關(guān)添加不同運(yùn)營商的網(wǎng)絡(luò)模塊,可以提供多運(yùn)營商的并行傳輸網(wǎng)絡(luò),通過各運(yùn)營商之間的信號覆蓋互補(bǔ),可以提高更加有效的網(wǎng)絡(luò).進(jìn)行配置可以提供速度疊加高速網(wǎng)絡(luò)或冗余可靠網(wǎng)絡(luò).但是該系統(tǒng)在某種程度上增加網(wǎng)絡(luò)的延時,所以不太適合需要超低延時的場景.

猜你喜歡
傳輸速度數(shù)據(jù)包以太網(wǎng)
二維隱蔽時間信道構(gòu)建的研究*
Microchip推出首款車載以太網(wǎng)音視頻橋接(AVB)全集成解決方案
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
SSD移動硬盤大降價,可以考慮了
C#串口高效可靠的接收方案設(shè)計(jì)
三大因素驅(qū)動創(chuàng)新提速以太網(wǎng)快步邁入“靈活”時代
三大因素驅(qū)動創(chuàng)新提速 以太網(wǎng)快步邁入“靈活”時代
電網(wǎng)中無線通信技術(shù)的應(yīng)用探析
淺談提升互聯(lián)網(wǎng)信息傳輸速度技術(shù)分析
基于ENC28J60的嵌入式以太網(wǎng)/CAN網(wǎng)關(guān)設(shè)計(jì)
高陵县| 江油市| 卢氏县| 平湖市| 会泽县| 阿坝县| 彭州市| 庆安县| 满城县| 花莲市| 棋牌| 襄樊市| 宽城| 手游| 古交市| 山东省| 梓潼县| 楚雄市| 安泽县| 英吉沙县| 绥芬河市| 新郑市| 洛阳市| 台州市| 邢台市| 江北区| 高唐县| 石楼县| 弥勒县| 宿松县| 宁城县| 苍梧县| 安平县| 新化县| 涞源县| 民县| 台山市| 嘉峪关市| 依兰县| 新昌县| 敦化市|