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

        ?

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

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

        宮興琦,姜會增,周用貴

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

        為旅客提供互聯(lián)網(wǎng)接入服務是旅客列車無線局域網(wǎng)系統(tǒng)的主要功能之一,該系統(tǒng)采用移動、聯(lián)通和電信3家運營商的4G網(wǎng)絡,構建9路車地通信鏈路,提升互聯(lián)網(wǎng)出口帶寬。高鐵及動車車廂內用戶密度高,車地通信出口帶寬較小,旅客列車無線局域網(wǎng)寬帶分配系統(tǒng)作為旅客列車無線局域網(wǎng)接入系統(tǒng)的關鍵部分,切實影響旅客接入互聯(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)接入服務,單車服務器提供車廂內局域網(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 關鍵技術

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

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

        2.2 RoundRobin算法

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

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

        RoundRobin算法的優(yōu)點是簡潔,無需記錄當前所有連接的狀態(tài),是一種無狀態(tài)分配。系統(tǒng)使用了RoundRobin的權重分配算法,即為每條鏈路分配不同的比例系數(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,內核版本為2.6.38,采用的編譯器為gcc。系統(tǒng)的用戶發(fā)現(xiàn)模塊采用內核編程方式,鏈路發(fā)現(xiàn)模塊采用應用層編程方式,二者通過netlink套接字方式通信。

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

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

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

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

        當內核態(tài)通過hash mac散列算法將用戶列表更新后,內核通過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ā)生變化時能夠將用戶調度到可用鏈路上,對上層應用是透明的,能夠保證用戶通信的連續(xù)性。

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

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

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

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

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

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

        圖2 可用鏈路更新流程圖

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

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

        本文允許其他模塊通過調用RoundRobin模塊對各條鏈路的權重系數(shù)進行調節(jié),其中,sendpercent[7]為權重系數(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ù)轉移模塊,此時需要將此鏈路設為不可用鏈路,停止繼續(xù)分配數(shù)據(jù)包至此鏈路,代碼如下:

        IP變化消息中的新IP為0.0.0.0,說明該網(wǎng)卡的IP已經(jīng)失效,需要將此鏈路中的輪詢比例(dis)屬性設為0,數(shù)據(jù)調度模塊會檢測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ù)時間內判別大量用戶實時狀態(tài),提升9路鏈路的應用效率,采用運營商的網(wǎng)絡進行互聯(lián)網(wǎng)接入,具備同時接入中國移動、中國聯(lián)通和中國電信3G/4G網(wǎng)絡的能力。每列車中心服務器上統(tǒng)一配置一套互聯(lián)網(wǎng)接入設備,具備多信道帶寬匯聚并在車載局域網(wǎng)內進行自適應分配的功能。

        5 結束語

        旅客列車無線局域網(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)和安裝布線總體技術要求(暫行)[Z]. 北京:中國鐵路總公司,2015.

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

        [3]張 昊. 高鐵車地通信系統(tǒng)級仿真平臺設計與多基站協(xié)作技術的研究[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)技術研究與實現(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)先級排序策略研究
        久久久久国产精品片区无码| 精品国产三级a∨在线欧美| 内射夜晚在线观看| 无码精品人妻一区二区三区人妻斩 | 久久免费国产精品一区二区| 日韩精品有码中文字幕| 国产一区二区三区天堂 | 五十路熟妇高熟无码视频| 精品免费久久久久久久 | 亚洲嫩模高清在线视频| 日本成人中文字幕亚洲一区| 亚洲色一区二区三区四区| 看全色黄大色大片免费久久| 性做久久久久久久| 亚洲无人区一码二码国产内射| 蜜桃免费一区二区三区| 日本最新免费二区三区| 国产一区日韩二区欧美三区| 亚洲无码美韩综合| 人妖一区二区三区在线| 蜜桃av抽搐高潮一区二区| 99精品国产在热久久国产乱| 丰满人妻无奈张开双腿av| 中文字幕本久久精品一区| 国产精品熟女视频一区二区| 国产精品久久久久久麻豆一区 | 亚洲中文字幕国产剧情| av无码精品一区二区三区| 久久久久久免费毛片精品| 欧美日韩综合在线视频免费看| 亚洲av色福利天堂久久入口| 国产午夜成人av在线播放| 伊人99re| 一区二区三区av资源网| 97精品人妻一区二区三区在线| 特级做a爰片毛片免费看| 国产一区二区不卡老阿姨| 人妻少妇精品一区二区三区| 亚洲男人av天堂久久资源| 欧洲精品免费一区二区三区| 老熟女熟妇嗷嗷叫91|