• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      旅客列車無線局域網(wǎng)帶寬分配系統(tǒng)的研究與實現(xiàn)

      2018-03-01 18:57:36宮興琦姜會增周用貴
      鐵路計算機應用 2018年2期
      關(guān)鍵詞:鏈表局域網(wǎng)數(shù)據(jù)包

      宮興琦,姜會增,周用貴

      (中國鐵道科學研究院 標準計量研究所,北京 100081)

      為旅客提供互聯(lián)網(wǎng)接入服務是旅客列車無線局域網(wǎng)系統(tǒng)的主要功能之一,該系統(tǒng)采用移動、聯(lián)通和電信3家運營商的4G網(wǎng)絡,構(gòu)建9路車地通信鏈路,提升互聯(lián)網(wǎng)出口帶寬。高鐵及動車車廂內(nèi)用戶密度高,車地通信出口帶寬較小,旅客列車無線局域網(wǎng)寬帶分配系統(tǒng)作為旅客列車無線局域網(wǎng)接入系統(tǒng)的關(guān)鍵部分,切實影響旅客接入互聯(lián)網(wǎng)的實際體驗。利用有限的帶寬為旅客提供更好的互聯(lián)網(wǎng)接入服務是帶寬分配系統(tǒng)的一個重要功能。

      1 帶寬分配系統(tǒng)設計

      1.1 系統(tǒng)組成

      旅客列車無線局域網(wǎng)由中心服務器、單車服務器、無線訪問接入點(AP)和無線網(wǎng)橋組成,中心服務器主要提供旅客互聯(lián)網(wǎng)接入服務,單車服務器提供車廂內(nèi)局域網(wǎng)服務,AP提供無線終端接入服務,無線網(wǎng)橋連接車廂間的單車服務器,局域網(wǎng)組成如圖1所示[1]。

      旅客列車無線局域網(wǎng)帶寬分配系統(tǒng)部署于中心服務器,由用戶發(fā)現(xiàn)模塊和鏈路發(fā)現(xiàn)模塊組成,主要用于提升互聯(lián)網(wǎng)接入利用率。

      1.2 系統(tǒng)功能

      帶寬分配系統(tǒng)的用戶發(fā)現(xiàn)模塊主要用于實時更新車上用戶的狀態(tài),適應高鐵停靠站旅客上下線較頻繁的情況,為鏈路發(fā)現(xiàn)模塊提供信息支持;鏈路發(fā)現(xiàn)模塊主要根據(jù)在線用戶狀態(tài)和9路車地鏈路狀態(tài)為用戶選擇合適的通信信道。

      圖1 旅客列車無線局域網(wǎng)組成圖

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

      2.1 jhash_3words哈希算法

      jhash_3words算法為Linux 網(wǎng)絡協(xié)議中常用的一個哈希算法,適用于網(wǎng)絡數(shù)據(jù)哈希運算。通過用戶數(shù)據(jù)包解析出用戶的mac地址,并通過jhash_3words算法將解析出的mac地址進行hash散列運算,用戶發(fā)現(xiàn)模塊通過對jhash_3words算法進行二次封裝,得到mac地址散列運算函數(shù)get_tuple_hash。

      運算結(jié)果更新,存入用戶信息鏈表,信息鏈表的單個節(jié)點記錄了用戶的狀態(tài)、最新數(shù)據(jù)更新狀態(tài)和權(quán)限級別。當用戶接入中心服務器后,get_tuple_hash函數(shù)通過用戶源IP和mac地址進行hash運算,根據(jù)運算結(jié)果將用戶登入時間和權(quán)限等信息更新到指定的鏈表結(jié)點上,如果指定結(jié)點不存在則表示為新用戶,為其創(chuàng)建新的結(jié)點[2]。如果結(jié)點已經(jīng)存在則表示該用戶為老用戶,更新其最后一次訪問時間。

      當內(nèi)核態(tài)通過hash mac散列算法將用戶列表更新后,內(nèi)核通過netlink socket動態(tài)消息通道向用戶態(tài)應用發(fā)送新的用戶列表。

      2.2 RoundRobin算法

      鏈路發(fā)現(xiàn)模塊負責數(shù)據(jù)包在各條可用鏈路上的并發(fā)傳輸,帶寬分配方式的選擇原則是并行帶寬增大和數(shù)據(jù)傳輸可靠。

      采用 RoundRobinScheme算法[4],也稱為輪詢調(diào)度算法,該算法把來自用戶的請求輪流分配給內(nèi)部鏈路,從1開始,直到N(網(wǎng)卡個數(shù)),然后重新開始循環(huán)。

      RoundRobin算法的優(yōu)點是簡潔,無需記錄當前所有連接的狀態(tài),是一種無狀態(tài)分配。系統(tǒng)使用了RoundRobin的權(quán)重分配算法,即為每條鏈路分配不同的比例系數(shù),例如,3塊網(wǎng)卡設置為3:1:1時,將控制數(shù)據(jù)包在各條鏈路上的分發(fā)比例為3:1:1。

      3 系統(tǒng)實現(xiàn)

      帶寬分配系統(tǒng)采用 C語言開發(fā),開發(fā)平臺為Centos6.6,內(nèi)核版本為2.6.38,采用的編譯器為gcc。系統(tǒng)的用戶發(fā)現(xiàn)模塊采用內(nèi)核編程方式,鏈路發(fā)現(xiàn)模塊采用應用層編程方式,二者通過netlink套接字方式通信。

      3.1 用戶發(fā)現(xiàn)模塊實現(xiàn)

      當用戶通過列車AP接入中心服務器后,用戶發(fā)現(xiàn)模塊通過內(nèi)核HOOK獲取用戶數(shù)據(jù)包[3],根據(jù)數(shù)據(jù)包信息通過jhash_3words算法更新用戶列表,之后通過netlink套接字將消息發(fā)送至應用層接收程序,應用層接收程序?qū)崟r更新用戶列表。部分實現(xiàn)代碼如下:

      jhash_3words算法進行二次封裝,得到高性能mac地址散列運算函數(shù)get_tuple_hash,實現(xiàn)代碼如下:

      此時,get_tuple_hash函數(shù)通過用戶源IP和mac地址進行hash運算,根據(jù)運算結(jié)果將用戶登入時間和權(quán)限等信息更新到指定的鏈表結(jié)點上,如果指定結(jié)點不存在,則表示為新用戶,為其創(chuàng)建新的結(jié)點。如果結(jié)點已經(jīng)存在,則表示該用戶為老用戶,更新其最后一次訪問時間,其部分實現(xiàn)代碼如下:

      當內(nèi)核態(tài)通過hash mac散列算法將用戶列表更新后,內(nèi)核通過netlink socket動態(tài)消息通道向用戶態(tài)應用發(fā)送新的用戶列表,netlink需要定義新的協(xié)議號用來標示消息,如下所示:

      3.2 鏈路發(fā)現(xiàn)模塊實現(xiàn)

      中心服務器使用移動、聯(lián)通、電信的3G/4G網(wǎng)絡作為車地通信的網(wǎng)絡出口,支持最多9條無線鏈路并發(fā)傳輸用戶數(shù)據(jù),但是相對于乘客的需求而言,此時帶寬仍屬于窄帶通信,因而如何將9路鏈路充分利用,提高帶寬分配效率是提升乘客使用體驗的一個重要環(huán)節(jié)。

      鏈路發(fā)現(xiàn)模塊的作用在于即時維護各條鏈路的真實狀態(tài),包括鏈路的可用性、鏈路IP變換,并且在鏈路狀態(tài)發(fā)生變化時能夠?qū)⒂脩粽{(diào)度到可用鏈路上,對上層應用是透明的,能夠保證用戶通信的連續(xù)性。

      鏈路發(fā)現(xiàn)模塊需要維護可用鏈路鏈表,在IP發(fā)生變化時通過可用鏈表來選擇數(shù)據(jù)轉(zhuǎn)移的去處,同時更新可用鏈表中的內(nèi)容,IP切換的過程可以分解為兩個部分:

      (1)現(xiàn)有的IP地址消失,即舊的鏈路失效,此時,應該將數(shù)據(jù)轉(zhuǎn)移到其他鏈路上去。

      (2)新的IP地址出現(xiàn),即新的可用鏈路出現(xiàn),此時,應該將一部分數(shù)據(jù)分配到新的可用鏈路上。

      在新的IP出現(xiàn)時需要新建套接字描述符,并將其代表的鏈路名稱等信息生成一條新的可用鏈路結(jié)構(gòu)加入到鏈表中,同時,將代表該鏈路上的舊IP記錄刪除,注銷套接字描述符。

      創(chuàng)建套接字的過程并不復雜,關(guān)鍵在于要保證在IP切換的過程中數(shù)據(jù)能夠及時、連續(xù)地進行交互[5]。當可用鏈路的數(shù)量發(fā)生變化時,自動地將數(shù)據(jù)進行轉(zhuǎn)移分發(fā),既不能向失效鏈路分配數(shù)據(jù),也不能使新的可用鏈路閑置。

      以4塊網(wǎng)卡為例,當4條鏈路變?yōu)?條,或者3條鏈路變?yōu)?條之后,需要對網(wǎng)卡進行重新排序,調(diào)整各條可用鏈路的狀態(tài),處理流程如圖2所示。

      圖2 可用鏈路更新流程圖

      可用鏈路模塊在數(shù)據(jù)轉(zhuǎn)移模塊中的作用比較重要,可用鏈路模塊維護了現(xiàn)在可用鏈路的全部信息,為數(shù)據(jù)包的鏈路分發(fā)提供了重要參考。

      鏈路發(fā)現(xiàn)模塊負責數(shù)據(jù)包在各條可用鏈路上的并發(fā)傳輸,實現(xiàn)并行帶寬增加和數(shù)據(jù)傳輸可靠。在調(diào)度方式的選擇上,采用RoundRobin算法[6]。

      本文允許其他模塊通過調(diào)用RoundRobin模塊對各條鏈路的權(quán)重系數(shù)進行調(diào)節(jié),其中,sendpercent[7]為權(quán)重系數(shù),鏈路發(fā)現(xiàn)模塊將根據(jù)sendprecent設置的系數(shù),并進一步通過匹配ifname和device_id來確定對應的鏈路,從而正確設置系數(shù)。

      RoundRobin算法在高速移動環(huán)境下簡單易實現(xiàn),是從鏈路負載的角度進行考慮。然而從用戶使用的角度上講有著很大的局限性,通過簡單的輪詢,同一個應用的數(shù)據(jù)流被分到不同的鏈路上很可能非但沒有增加并行傳輸?shù)膸?,反而造成了鏈路帶寬的下降。假設有兩條鏈路A和B,A鏈路的往返時間(RTT)為40 ms,B鏈路的RTT為80 ms,如圖3所示。

      圖3 RoundRobin輪詢算法示例

      由圖3可知,B鏈路的時延較大,在Packet1到達Recver后,需要等到Packet2也到達Recver才能向上層應用進行遞交,也就是說,即便A鏈路此時的RTT較小,也需要等待B鏈路的數(shù)據(jù)包,此時對于用戶來講,B鏈路的情況較差。在A鏈路不發(fā)生擁塞的情況下,B鏈路的加入反而拉低了A鏈路的表現(xiàn)。

      當某條鏈路的IP失效時,鏈路發(fā)現(xiàn)模塊會將發(fā)生IP變化的鏈路消息通知數(shù)據(jù)轉(zhuǎn)移模塊,此時需要將此鏈路設為不可用鏈路,停止繼續(xù)分配數(shù)據(jù)包至此鏈路,代碼如下:

      IP變化消息中的新IP為0.0.0.0,說明該網(wǎng)卡的IP已經(jīng)失效,需要將此鏈路中的輪詢比例(dis)屬性設為0,數(shù)據(jù)調(diào)度模塊會檢測dis的數(shù)值,當為0時會停止向此鏈路分發(fā)數(shù)據(jù),此時可用鏈路的數(shù)目發(fā)生了變化,需要更新鏈路ID,確??捎面溌锋湵淼臓顟B(tài)是最新的,通過檢查dis屬性設置可用鏈路的ID和可用鏈路的數(shù)量[5]。

      當接收到的IP變化的消息中新IP不為零時說明有新的可用鏈路加入,此時應該將其加入到可用鏈路鏈表,為其分配數(shù)據(jù)[8],代碼如下:

      4 系統(tǒng)測試

      帶寬分配系統(tǒng)在試驗室環(huán)境下已經(jīng)通過功能驗證,經(jīng)測試,該系統(tǒng)能夠在常數(shù)時間內(nèi)判別大量用戶實時狀態(tài),提升9路鏈路的應用效率,采用運營商的網(wǎng)絡進行互聯(lián)網(wǎng)接入,具備同時接入中國移動、中國聯(lián)通和中國電信3G/4G網(wǎng)絡的能力。每列車中心服務器上統(tǒng)一配置一套互聯(lián)網(wǎng)接入設備,具備多信道帶寬匯聚并在車載局域網(wǎng)內(nèi)進行自適應分配的功能。

      5 結(jié)束語

      旅客列車無線局域網(wǎng)帶寬分配系統(tǒng)在試驗室環(huán)境下已經(jīng)通過功能驗證,但是在實際情況下,每條線路的運營商3G/4G信號覆蓋強度不同,導致不同的線路出口帶寬差別較大。下一步需做的工作是在實際運行環(huán)境下進行測試,通過積累大量用戶的行為特征與數(shù)據(jù)特性,更好地優(yōu)化互聯(lián)網(wǎng)接入功能,更進一步提升互聯(lián)網(wǎng)帶寬分配效率,提升用戶使用體驗。

      [1]中國鐵路總公司. 旅客列車無線局域網(wǎng)系統(tǒng)和安裝布線總體技術(shù)要求(暫行)[Z]. 北京:中國鐵路總公司,2015.

      [2]李晨光. Linux系統(tǒng)網(wǎng)絡管理模塊的實現(xiàn)[J].鐵路計算機應用,2008 ,17(6):35-38.

      [3]張 昊. 高鐵車地通信系統(tǒng)級仿真平臺設計與多基站協(xié)作技術(shù)的研究[D].成都:西南交通大學,2013.

      [4]丁良輝. 無線自組織網(wǎng)絡中的TCP協(xié)議研究[D]. 上海:上海交通大學,2008.

      [5]周開波. 利用mSCTP實現(xiàn)3G和WLAN無縫切換及其性能分析[D]. 北京:北京郵電大學,2012.

      [6]何 川. 移動自組織網(wǎng)絡中的可靠傳送協(xié)議[D].成都:電子科技大學,2013.

      [7]宮興琦.高速移動環(huán)境下連接及擁塞控制的研究與實現(xiàn)[D].北京:北京交通大學,2014.

      [8]方 棋,吉 強,韓 臻.Linux環(huán)境下基于策略路由實現(xiàn)多線路負載均衡[J]. 鐵路計算機應用,2006,15(9):35-38.

      [9]Andrea De Vendictis, Andrea Baiocchi, Michela Bonacci.Analysis and enhancement of TCP Vegas congestion control in a mixed TCP Vegas and TCP Reno network scenario[J].Performance Evaluation, 2003(533).

      [10]Tine Stegel, Janez Sterle, Urban Sedlar, et al. SCTP multihoming provisioning in converged IP-based multimedia environment[J]. Computer Communications, 2010(3314).

      猜你喜歡
      鏈表局域網(wǎng)數(shù)據(jù)包
      基于VPN的機房局域網(wǎng)遠程控制系統(tǒng)
      電子制作(2019年16期)2019-09-27 09:35:04
      基于二進制鏈表的粗糙集屬性約簡
      跟麥咭學編程
      SmartSniff
      基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
      基于802.1Q協(xié)議的虛擬局域網(wǎng)技術(shù)研究與實現(xiàn)
      電子制作(2017年17期)2017-12-18 06:40:48
      局域網(wǎng)性能的優(yōu)化
      電子制作(2017年8期)2017-06-05 09:36:15
      基于Libpcap的網(wǎng)絡數(shù)據(jù)包捕獲器的設計與實現(xiàn)
      鏈表方式集中器抄表的設計
      電測與儀表(2014年1期)2014-04-04 12:00:22
      視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
      信丰县| 邛崃市| 隆回县| 科技| 邛崃市| 孟州市| 东源县| 阿勒泰市| 阿合奇县| 政和县| 井研县| 鹰潭市| 锦屏县| 饶阳县| 余江县| 黔江区| 巴楚县| 蛟河市| 榆林市| 额尔古纳市| 淳化县| 哈密市| 陈巴尔虎旗| 金华市| 博爱县| 玉门市| 嘉峪关市| 松桃| 于田县| 南靖县| 宁国市| 鸡东县| 镇沅| 贡觉县| 蕉岭县| 瑞金市| 平舆县| 南澳县| 福安市| 大田县| 廊坊市|