999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Semi-TCP協議在ARM開發板RP4412下的實現方法

2017-05-24 14:48:15劉杰姜勝明楊愷健
現代計算機 2017年11期
關鍵詞:信息

劉杰,姜勝明,楊愷健

(上海海事大學信息工程學院,上海 201306)

Semi-TCP協議在ARM開發板RP4412下的實現方法

劉杰,姜勝明,楊愷健

(上海海事大學信息工程學院,上海 201306)

Semi-TCP協議將傳統TCP的擁塞控制下放到MAC層,構成逐跳的擁塞控制來判斷節點間的擁塞狀態,它比傳統TCP以及在這基礎上改進的無線TCP更適應于動態拓撲的網絡。但是目前對Semi-TCP協議的研究還僅局限于計算機仿真階段。因此嘗試基于實際平臺RP4412開發板,不修改已有MAC層的控制幀和已有的硬件配置信息,利用軟件定義發送數據幀的形式,在幀體域攜帶節點緩存狀態量化信息,完成節點擁塞狀態信息的傳遞,以此實現并測試Semi-TCP在實際平臺下擁塞控制的性能。

Semi-TCP;逐跳擁塞控制;多跳無線網絡;動態拓撲網

0 引言

在動態拓撲網絡中,由于信道損耗以及動態路由等相關問題,造成許多非擁塞因素引起的丟包,根據TCP層丟包即擁塞的原則,TCP盲目地擁塞控制,縮小擁塞窗口值,減小發送速率,導致網絡的吞吐量降低。Semi-TCP協議采用跨層設計的思想,將傳統傳輸層的端到端的擁塞控制功能下放到數據鏈路層的MAC層,保留TCP的可靠性控制[1]。它是一種逐跳的擁塞控制方法,是為解決在無線動態拓撲網絡場景下,由于許多非網絡擁塞因素造成對網絡擁塞誤判以及處理不及時的不足,提高了網絡擁塞控制的效率,提升了網絡吞吐量。

針對Semi-TCP的研究,大量仿真實驗已經證明其在動態拓撲網絡場景下,逐跳的擁塞控制比傳統TCP端到端的控制更有效。但是現在還僅局限于計算機仿真階段,主要的仿真實現方法是利用增加或修改控制幀并讓其攜帶緩存狀態信息,遞歸逐跳地傳遞擁塞信息,來實現擁塞控制。目前的實現方法有通過增加控制幀fCTS的方式,發送節點向接收節點發送RTS時,如果接收節點緩存空間不足以接收數據,回復fCTS給 RTS的發送方,告知擁塞[2];也可以通過修改RTS/CTS幀,即通過帶擁塞狀態的控制幀RTSC/CTSC來傳遞擁塞信息[3];在文獻[4]中,利用ACK捎帶其擁塞信息,以此告知發送方能否發送數據[4];還有方法是在MAC層和TCP層之間通過增加一個虛擬層VTCP,上層收到VACK后調節發送窗口大小,改變發送速率,并且修改RTS幀控制域的subtype字段,實現擁塞狀態的判定[5]。文獻6提出了一種基于被動偵聽和數據幀調度的無線多跳網絡擁塞方法[6]。綜上幾種Semi-TCP的實現方法,它們的共同點是都需要改變現有TCP/IP協議棧的體系結構,需要改變無線網絡接口卡的既有的硬件配置信息,同時網絡結構和終端系統都需要配置該協議。

本文嘗試基于現有實際平臺RP4412開發板,通過C語言修改相關函數,軟件定義發送數據幀的方式,不修改已有MAC層的控制幀和現有的硬件配置信息,在數據幀的幀體域攜帶節點緩存狀態量化信息,完成節點擁塞狀態信息的傳遞。本方法使用開發板4412搭建實際平臺,在Linux(Ubuntu)操作系統下交叉編譯已修改的相關代碼信息并移植到開發板上,利用軟件定義判斷開發板無線網卡緩存狀態再發送數據幀的方式實現擁塞狀態的判斷。

1 Semi-TCP協議實現原理

1.1 Semi-TCP協議算法

Semi-TCP協議發送節點(或轉發節點)根據收到來自接收節點(或下一跳)的接收緩存狀態信息和接收節點緩存數據的處理速率及時地對自身節點發送速率和高層向下層發送速率的調節。收到下一跳發送的特殊數據幀,根據幀體域攜帶的信息進行擁塞判斷及處理。Semi-TCP系統的整體架構如圖1所示。

圖1 Semi-TCP協議體系結構

從整體上講,Semi-TCP算法可分成節點自身的擁塞判定和節點間的擁塞傳遞;節點自身的擁塞判定是指作為發送節點(包括轉發節點)時,對傳輸層向下層發送數據速率的調節。能否向下層發送數據取決于MAC層的發送緩存是否達到了擁塞門限值。節點自身緩存分層劃分如圖2所示,設節點內發送緩存的空間容量為L(已設定),擁塞門限值為CTh(Congestion Threshold),緩存中當前數據包占用空間為N,0〈CTH≤L。當N〈CTh時,沒有擁塞,否則有擁塞。當沒有擁塞時,發送節點(包括轉發節點)的傳輸層可以向下層發送數據,否則就不能發送數據[7]。

圖2 節點自身緩存劃分

節點間的擁塞傳遞是指相鄰節點間發送速率的調節。節點在收到下一跳發來的擁塞狀態信息,暫停向該節點發送數據。

1.2 Semi-TCP協議實現場景

Semi-TCP協議適用在無線網絡場景下,而Linux作為一個開放源代碼的操作系統,它支持大量的網絡協議,是測試新協議及其增強的良好平臺,RP4412開發板所用的正是Linux內核3.0,相關代碼修改后交叉編譯后移植到開發板上。Linux無線網絡架構如圖3所示。

圖3 Linux無線網絡結構概覽

圖3左側顯示了Linux內核網絡協議棧的基本機構,虛線下是以太網設備;右側顯示了Linux無線網絡結構,虛線以下是Wi-Fi設備,主要涉及物理層和數據鏈路層。虛線上展示的是內核空間的情況。用戶空間的程序運行在最上層,而硬件相關的設備則在最下面。Linux內核無線子系統分成兩大塊,cfg80211和mac80211,它們連通內核其他模塊和用戶空間的應用程序。其中cfg80211在內核空間提供配置管理服務,內核與應用層通過nl80211時間配置管理接口。Linux內核無線子系統處理OSI模型最底層的MAC和PHY層,MAC層可以分為MAC上層和MAC下層,前者管理無線網絡的身份認證、探測、關聯等;后者實現MAC層如ACK等操作。硬件(無線適配器)處理了大部分的PHY層和MAC下層操作。

Linux無線子系統實現大部分的MAC上層的回調函數。內核具有高內聚低耦合的特性,各個模塊之間分界線很清晰,內核通過一系列的函數指針使得各層之間相互透明不可見。所以在rtl8188EUS(4412開發板集成的USB無線網卡)驅動做修改時,不需要改動mac80211的代碼,添加Semi-TCP協議相關操作不用修改套接字層和設備無關層代碼。數據和管理路徑在mac80211中是分開實現的。數據路徑對應著IEEE802.11數據幀(Data Frame),而管理路徑對應著IEEE802.11控制幀(Control Frame)。

2 Semi-TCP協議的具體實現

2.1 交叉開發環境的搭建

開發環境的搭建采用主機與目標板相結合的交叉開發模式,在PC端主機上配置Windows XP操作系統,在虛擬機軟件VMware workstations上安裝Ubuntu 12.04操作系統并配置交叉編譯環境arm-2009q3.tar,用于編輯開發調試。開發板上配置內核Linux kernel 3.0文件系統android 4.0.4,PC端將開發好的協議代碼燒寫到開發板,開發板作為目標板運行和測試所編寫好的協議代碼。

開發板開發環境搭建外觀實景圖:

圖4 開發環境外觀實景

2.2 Semi-TCP協議數據包的傳送和接收過程

在Linux無線網絡系統中,mac80211已經注冊了網絡設備驅動,可看作net_device。在代碼路徑kernel/ net/mac80211/iface.c中可見。在mac80211內部,ieee80211_subif_start_xmit實現這樣一個調用子序列:ieee80211_xmit=>ieee80211_tx=>ieee80211_tx_frags =>drv_tx信息從mac80211傳下來,驅動程序將數據轉換成底層硬件可識別的形式,再做相關幀數據的調整,將數據幀放入發送隊列,將幀的描述符發送給硬件。在開發板RP4412中數據幀到最后都是通過USB接口發送給無線設備rtl8188EUS。

當數據包在空中被無線設備捕捉到,RP4412內核通過輪詢機制判斷是否有數據到來,促使接收函數將被調用,驅動層的回調函數為mac80211填充接收描述符,然后把數據包推送給mac80211,由mac80211將數據包放入接收隊列。如果收到的幀是數據幀,它將被轉換成802.3數據幀,然后改數據幀將通過netif_receive_skb交付給網絡協議棧,在協議棧中各層網絡協議將會對數據進行解析,根據收到的數據幀的幀體域捎帶的MAC緩存狀態的量化信息,增加一個觸發器,如果預先設置緩存狀態信息大于90%(或者設置50%,70%,并作比較),則代表該發送節點擁塞,否則不擁塞;如果收到的幀是控制幀,則將會由ieee80211 _sta_rx_queued_mgmt處理,部分控制幀(如ack幀)在mac80211層終止,部分(如認證幀)則會通過cfg80211發送給用戶空間下的管理程序。

2.3 Semi-TCP協議實現的主要流程

發送節點內核通過輪詢得知有數據要發送,接收節點收到發送節點的大量數據,觸動觸發器,此時,接收節點向發送節點發送特殊的數據幀,幀體域攜帶接收緩存的占用率和接收節點的數據處理速率(向高層發送或者轉發至其他節點),作一個簡單判斷,然后根據這些信息調整自身的發送速率,通知高層降低發送速率,如果是中間節點(轉發節點),則向網絡中上一個節點反向遞歸傳遞擁塞信息,實現逐跳的擁塞控制。

特殊的數據幀的幀類型,設置幀控制域中的Type字段為10及Subtype字段為null,即特殊的數據幀。發送節點收到該特殊的數據幀,讀取subtype字段得知是事先定制攜帶有節點緩存信息的特殊數據幀,然后從幀體內讀取的緩存狀態信息。

幀體設置了一個標志位flag,當緩存占用率達到門限值時flag=1;否則flag=0;根據幀體攜帶擁塞狀態flag和接收節點的數據處理速率Rv兩個信息,發送節點根據接收到的信息,調低發送節點的發送速率Tv到小于接收節點的接收數據處理速率Rv,即Tv〈Rv;將原有TCP協議機制上將擁塞控制功能刪除,即內核協議棧中的擁塞窗口處理函數不做任何處理。實現流程如圖5。

圖5 實現主要流程

3 Semi-TCP協議測試

搭建測試平臺是為了在添加擁塞狀態判斷后網絡是否有異常,測試環境需要兩臺開發板測試機,一臺作為測試機,另一臺作為對端機;2一塊帶有兩塊網卡的服務機,一塊網卡接測試機網絡,另一塊網卡接AP網絡;3.一個帶有命令行界面的AP。測試工具采用OpenGroup開發維護的測試工具集TETware。

操作步驟如下:

(1)安裝Server和AP網絡:將無線測試腳本拷貝到目錄〈server machine>:/usr/local/bin/配置環境變量在/usr/local/bin/apset/apset.cisco/config.pm配置ap網絡地址IP,設置SSID_Semi-TCP以及AP_Login、AP_Password等相關配置;

(2)安裝測試機和對端機:將測試腳本寫入測試機;安裝和配置測試環境執行命令./config.sh-flrt以及./etc/TVSEnvironment,然后運行tvs run;

(3)開始測試:/usr/tet/TVS/etc/TVSListing定義好測試場景,運行測試腳本./etc/TVSEnvironment;獲取測試報告/usr/tet/TVS/Reports/latest。

4 測試結果

根據三項測試得到的結果進行分析:

(1)通過端到端的連通測試工具ping命令分析和判斷網絡是否故障,根據測試結果分析,測試機與對端機之間網絡連接暢通,時延略有延長,丟包率為0。

(2)根據所搭建的測試環境平臺,在TETware下運行定義好的測試場景分析得出,在不同場景腳本下,設置不同的工作模式與信道,原有的802.11協議運行不會受到影響,網絡狀態正常。

(3)利用802.11網絡分析工具Wireshark,它是完全開放源源碼的封包分析軟件,將無線接口切換為監控模式(monitoring mode),然后輸入命令Wireshark啟動軟件,開始抓包。在封包列表窗口選中IEEE802 data,樹狀視圖窗格IEEE802.11 data域中,可見數據包的具體封裝,在下面的數據視圖窗格,獲取到幀體域(Frame Body)攜帶的擁塞狀態信息。根據在測試機和對端機之間大量的發送數據,呈現出兩種幀體攜帶擁塞信息的特殊的數據幀。實時的抓包可以看出擁塞狀態,狀態值n〈9(或者n〈5,n〈7)時,未發生擁塞,當值變成n=9(或者n=5,n=7時啟動觸發器,告知接收機器發生擁塞,可以看出我們通過軟件定義發送數據幀的形式,在幀體域攜帶節點緩存狀態量化信息,初步實現了兩個節點之間擁塞狀態信息的傳遞。

5 結語

隨著對Semi-TCP協議不斷研究,繼續對擁塞控制方法等的優化,對實現擁塞控制算法的優化還能繼續深入。在實際平臺RP4412開發板,通過軟件定義發送數據幀的形式,實現在幀體域攜帶節點緩存狀態量化信息,完成節點擁塞狀態信息的傳遞,在此基礎上利用開源測試工具TETware建立多種場景和Wareshark對Semi-TCP在實際平臺下擁塞控制的性能進行了分析。由此得知,Semi-TCP在實際平臺下內核協議棧和網卡驅動代碼的改進優化,對節點內和節點間的擁塞控制方法需要繼續不斷調試。

[1]Jiang S,Zuo Q,Wei G.Decoupling Congestion Control from TCP for Multi-Hop Wireless Networks:Semi-TCP[M],2009.

[2]姜勝明,韋崗,佐琴,胡海燕,劉桂開.基于RTS/CTS機制的多跳無線網絡擁塞控制方法[P].廣東:CN101345749,2009-01-14.

[3]姜勝明,蔡業桂,王麗,韋崗.一種改進的基于RTS/CTS的多跳無線網絡擁塞控制方法[P].廣東:CN101902776A,2010-12-01.

[4]姜勝明,吳泉明.一種附帶式跨層設計的無線網絡擁塞控制方法[P].廣東:CN102244568A,2011-11-16.

[5]劉梅,姜勝明,陸以勤.無線多跳網絡中Semi-TCP協議的實現[J].計算機工程,2012,(09):79-82.

[6]楊愷健,姜勝明,錢彥臻,吳世東.一種基于被動偵聽和數據幀調度的無線多跳網絡擁塞控制方法[P].上海:CN105873126A,2016-08-17.

[7]熊晨霖.Semi-TCP在海洋互聯網中的應用仿真研究[D].華南理工大學,2016.

[8]Behrouz A.Forouzan.TCP/IP協議族[M].北京:清華大學出版社,2011.

[9]Christian,Benvenuti.深入理解Linux網絡技術內幕[M].北京:中國電力出版社,2009.

[10]Mattbew S.Gast.802.11無線網絡權威指南[M].南京:東南大學出版社,2007.

[11]陳莉君.深入分析Linux內核源代碼[M].北京:人民郵電出版社,2002.

Implementation Method of Semi-TCP Protocol in ARM Development Board RP4412

LIU Jie,JIANG Sheng-ming,YANG Kai-jian

(College of Information Engineering,Shanghai Maritime University,Shanghai201306)

Semi-TCP protocol decouples congestion control from traditional TCP to MAC layer,so that it can realize hop-by-hop congestion control and then correctly judge congestion state between nodes.It is more suitable for dynamic topology networks than the traditional TCP and the improved wireless TCP.However,at present,the research on Semi-TCP protocol is only limited to the computer simulation.Therefore, doesn’t modify existing MAC layer control frames and existing hardware configuration information based on real platform,uses software to define the form of data frames and carries the node cache state quantization information in the frame area,so that it completes the transmission of node congestion state information.It implements and tests the performance of Semi-TCP congestion control in real platform.

Semi-TCP;Hop-by-Hop Congestion Control;Multi-Hop Wireless Networks;Dynamic Topology Networks

1007-1423(2017)11-0065-05

10.3969/j.issn.1007-1423.2017.11.013

劉杰(1989-),男,山西太原人,碩士研究生,研究方向為無線網絡協議

2017-03-16

2017-04-10

姜勝明(1964-),男,江蘇人,博士,教授,研究方向為通信網絡結構、協議和算法等

楊愷健(1991-),男,江蘇南京人,碩士研究生,研究方向為無線網絡協議

猜你喜歡
信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息超市
大眾創業(2009年10期)2009-10-08 04:52:00
展會信息
展會信息
展會信息
展會信息
展會信息
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 亚洲综合欧美在线一区在线播放| 蝴蝶伊人久久中文娱乐网| 国产成人精彩在线视频50| 亚洲综合第一页| 99这里只有精品6| 日韩精品免费一线在线观看| 欧美a网站| 国产麻豆福利av在线播放| 国产午夜人做人免费视频中文| 久久这里只精品国产99热8| 中文字幕乱妇无码AV在线| 久久免费观看视频| 亚洲欧美精品在线| 国产黄在线免费观看| 亚洲一区黄色| 国产精品太粉嫩高中在线观看 | 五月婷婷伊人网| 国产精品刺激对白在线| 国产精品成人AⅤ在线一二三四| 国模私拍一区二区| 亚洲日本中文综合在线| 美女无遮挡免费网站| 国产高清精品在线91| 在线观看精品自拍视频| 久久久久无码精品| 久久男人视频| 欧美激情视频二区| 国产成人亚洲精品无码电影| 亚洲精品波多野结衣| 午夜人性色福利无码视频在线观看| 四虎精品国产AV二区| 亚洲精品无码在线播放网站| 久久夜色精品国产嚕嚕亚洲av| 久久无码免费束人妻| 色偷偷一区二区三区| 九九九久久国产精品| 蜜桃臀无码内射一区二区三区| 亚洲免费福利视频| 99久久精品免费看国产免费软件| 91伊人国产| 国产一级特黄aa级特黄裸毛片| 国产一级毛片在线| 久久国产拍爱| 欧美中文一区| 玖玖免费视频在线观看| 国产精品嫩草影院视频| 青青操视频在线| 18黑白丝水手服自慰喷水网站| 免费全部高H视频无码无遮掩| A级全黄试看30分钟小视频| 十八禁美女裸体网站| 亚洲黄色激情网站| 99久久免费精品特色大片| 在线精品自拍| 真实国产乱子伦视频| 97一区二区在线播放| 在线观看亚洲精品福利片 | 亚洲天堂在线免费| 国产SUV精品一区二区| 日韩中文字幕亚洲无线码| 亚洲人网站| 欧美、日韩、国产综合一区| 欧美在线导航| 国产一级片网址| 久久久久无码精品| 国产精品欧美激情| 波多野结衣视频网站| 毛片a级毛片免费观看免下载| 免费国产一级 片内射老| 成人午夜视频网站| 亚洲免费成人网| 久久这里只有精品8| 成年女人a毛片免费视频| 黄片在线永久| 亚洲性视频网站| 免费人欧美成又黄又爽的视频| 成人午夜在线播放| 欧美a在线| 3p叠罗汉国产精品久久| 日韩AV无码免费一二三区| 极品尤物av美乳在线观看| 国产精品白浆无码流出在线看|