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

        ?

        利用Linux的流量控制功能進行嵌入式網絡程序測試

        2009-03-02 09:33:14
        新媒體研究 2009年2期

        高 嵐

        [摘要]介紹常用的網絡程序測試的幾種方法,并利用linux的流量控制功能搭建一個網絡仿真器用以對嵌入式設備的網絡功能進行測試,最后對該仿真器的實際仿真效果進行檢驗。

        [關鍵詞]嵌入式設備 網絡仿真 流量控制 tc netem

        中圖分類號:TP3 文獻標識碼:A 文章編號:1671-7597(2009)0120053-02

        一、引言

        隨著嵌入式技術發(fā)展成熟,各種嵌入式設備由于其自身擁有體積小、功耗低、可靠性好、集成度高等優(yōu)點,逐漸深入到生產生活中的方方面面,承擔著各種重要角色。但由于其應用場合比較特殊,為測試帶來了許多新的挑戰(zhàn)。對于嵌入式設備,其工作時的網絡環(huán)境常常和開發(fā)時的實驗室網絡環(huán)境相差很遠,所以為了對嵌入式設備上網絡程序的功能性能以及可靠性等指標進行測試,我們必須采用與普通網絡設備測試不同方法。

        二、網絡應用程序測試方法概述

        一般測試網絡應用程序的主要過程可以概括成觀察應用程序在網絡上運行時的執(zhí)行方式。通常用于測試網絡的方法有以下幾種:

        (一)利用測試網絡

        測試網絡是網絡應用程序開發(fā)時最常用到的方法。開發(fā)時經常利用實驗室中的電腦和網絡設備搭建一個測試環(huán)境,有時甚至直接使用實驗室的局域網進行一些基本功能的測試驗證。但是,通常的情況是網絡應用程序能在實驗室網絡環(huán)境中正常的工作,一旦拿到實際的使用的生產網絡環(huán)境中就容易出錯。大多數測試網絡無法顧及同實際生產網絡相關的問題。

        (二)利用生產網絡

        生產網絡就是網絡應用程序最終工作時所處的網絡。測試網絡應用程序最精密的方法就是在生產網絡環(huán)境中實際運行程序,和實際的情況完全一樣。但是,這種方法也有其不利的一面。首先,開發(fā)人員通常無法接觸最終的使用環(huán)境,幾乎所有的商業(yè)網絡應用程序都是這樣。其次,即使開發(fā)人員能夠使用最終的生產網絡,直接使用生產網絡進行測試也是一種不安全的行為。被測程序一旦失控,比如耗盡了所有的帶寬影響的別的程序,破壞了其他的有用數據,后果都將是災難性的。

        (三)利用網絡仿真

        折中的方案就是網絡仿真器。網絡仿真器在一臺設備中對整個生產網絡建立模型,生產網絡中發(fā)現的所有問題以及網絡的大部分特性都將復制在網絡仿真器仿真出來的測試網絡環(huán)境中。網絡仿真的關鍵是可以對真實的網絡行為進行細致的仿真,把實際網絡中的問題再現在測試網絡中。

        如圖1所示,網絡仿真器通常被安插在被測網絡應用程序的客戶端與服務器之間。用以模擬實際生產網絡中處在客戶端與服務器之間的所有網絡對數據包產生的影響。例如通信一端在另一個網絡,客戶端在本地,網絡仿真器模擬的就是廣域網對數據包的影響;又比如通信的兩端在局域網,那么網絡仿真器模擬的就是本地局域網。當數據包進入網絡仿真器之后,仿真器就會按照實際被仿真的網絡的模型按照一定的策略對數據包進行處理。常見的如帶寬限制、延時、錯誤、丟包、重復等等。

        通過對比以上幾種網絡應用程序測試的方法,可以看出用網絡仿真構建的測試環(huán)境相對來說有近似度高、成本低、安全性好的優(yōu)點,非常適合對于嵌入式設備的網絡功能進行測試。本文將要介紹一種利用linux內建的流量控制(Traffic Control,TC)功能搭建一個網絡仿真平臺的方法。

        三、Linux的流量控制機制在網絡仿真平臺中的應用

        Linux從內核2.1版本開始嘗試支持流量控制(Traffic Control,TC),之后發(fā)布的2.2版本內核是第一個支持流量控制的穩(wěn)定版本。TC成為Linux下的流量控制工具,用戶可以通過TC工具包提供的接口控制內核進行流量控制。

        目前的從2.4版本的內核開始,流量控制可以在入口(Ingress)隊列和出口(egress)隊列進行。

        TC對數據包進入入口和出口隊列的控制主要由三個關鍵部分實現:隊列規(guī)則(Queue Discipline,qdisc)、類別(Class)、過濾器(Filter)。

        如圖2,數據包在進入入口隊列或出口隊列前會由過濾器按照用戶給定的篩選方法分類,每一個分類對應一個隊列規(guī)則。在某一類中的數據包全部按照該隊列規(guī)則排隊等候處理或發(fā)送。

        (一)帶寬控制的實現

        具體的排隊規(guī)則分為可分類的和不可分類的兩種。不可分類的包括TBF(Token Bucket Filter,令牌桶過濾器)、pfifo_fast(Third Band First In First Out Queue,先進先出隊列)、SFQ(Stochastic Fairness Queuing,隨機公平隊列)??煞诸惖陌–BQ(Class Based Queuing,基于類別排隊)、HTB(Hierarchical Token Bucket,分層令牌桶)、PRIO。

        在進行網絡仿真過程中,我們需要對網絡的帶寬進行控制。在上面介紹的排隊規(guī)則中可以選擇TBF令牌桶過濾器來進行流量整形。

        令牌桶只允許不超過事先設定的速率到來的數據包通過。實際中的桶是一個緩沖器,這個“桶”不斷被恒定速率的虛擬數據“令牌”(Token)填充著,到來的數據包只有拿到令牌才可以從桶里發(fā)送出去。

        (二)丟包率、時延的仿真

        在2.6.7之后版本的Linux中引入了netem模塊,這個模塊是Stephen Hemminger在QOS(Quality of Service)和di_serv(Differentiated Services)的基礎上開發(fā)的工具。Netem是作為TC的一個排隊規(guī)則(qdisc)來使用的,通過netem的接口可以非常靈活方便地對所有離開特定網絡端口的數據分組進行以下幾種處理:

        延遲(delay) 按照某種統(tǒng)計模型延遲每一個分組

        丟棄(loss) 按照一定百分比丟棄某些分組

        復制(duplication) 按照一定百分比復制一些相同的分組

        重排序(reordering) 對一組分組中某一個進行延遲以打亂最終接收到的順序

        綜合利用tc和netem提供的這些功能的組合可以對網絡的基本參數進行仿真。

        四、應用舉例

        工作中需要對一個車載的移動嵌入式設備的網絡功能性能進行測試。實際工作中的設備工作在移動的列車上,通過無線網絡與地面中心通信。我們利用一臺電腦對無線網絡的傳輸率丟包延時等進行仿真。

        實現如上圖,用一臺裝有雙網卡的運行Linux的機器作為無線網絡的仿真器。具體配置如下:

        車載移動被測設備

        IP address eth0: 10.0.1.2

        Netmask: 255.255.255.0

        Gateway: 10.0.1.1

        地面中心

        IP address eth0: 10.0.0.2

        Netmask: 255.255.255.0

        Gateway: 10.0.0.1

        無線網仿真器

        IP address eth0: 10.0.0.1

        IP address eth1: 10.0.1.1

        Netmask: 255.255.255.0

        以下操作都在作為仿真器的電腦上完成,首先打開Linux的路由轉發(fā)功能:

        # echo 1>/proc/sys/net/ipv4/ip_forward

        再加入兩條路由:

        # route add net 10.0.1.0 netmask 255.255.255.0 dev eth0

        # route add net 10.0.0.0 netmask 255.255.255.0 dev eth1

        下面用tc配置eth0端口的帶寬丟包率等:

        # tc qdisc add dev eth0 root handle 1: netem loss 20%

        # tc qdisc add dev eth0 parent 1:1 handle 10: delay 30ms

        # tc qdisc add dev eth0 parent 10:1 handle 20: tbf rate 1mbit latency 200ms burst 128k

        數據包先經過TBF進行帶寬限制處理,再通過netem進行丟包率和時延的處理。這樣配置之后帶寬被限制在1Mbps,延遲為30ms,平均丟包率20%。

        然后檢測一下仿真效果。用ping命令ping 10.0.0.2

        --- 10.0.0.2 ping statistics ---

        83 packets transmitted, 73 received, 12% packet loss, time 82006ms

        rtt min/avg/max/mdev = 31.218/31.744/54.061/2.646 ms

        延遲平均在31.744。

        利用iperf的upd測試丟包率

        0.0-30.3 sec234 KBytes63.3 Kbits/sec0.063 ms 43/206 (21%)

        丟包率平均在21%。

        再用iperf的tcp測試帶寬

        0.0-30.2 sec2112 KBytes573 Kbits/sec

        帶寬在受到丟包的影響之后為573kbps,在只使用令牌桶的情況下可以達到1Mbps。

        五、結束語

        本文介紹了一種利用linux的流量控制功能搭建網絡仿真平臺對嵌入式網絡設備進行測試的方法,在實際使用中發(fā)現tc參數只能在開始仿真之前靜態(tài)手動設置好,而不能在使用過程中動態(tài)自動調節(jié)。我們希望找到一種方法能夠在仿真過程中實時調整延遲、丟包等參數,更加逼真的對如基站切換造成的周期性網絡性能變化進行仿真。

        參考文獻:

        [1]Hubert B,Gregory Maxwell,van Mook R.“Linux Advanced Routing & Traffic Control HOWTO”.http://lartc.org/lartc.pdf.2003.

        [2]S.Hemminger,“Network Emulation with NetEm”in Proceedings of Linux Conf Au 2005,2005.

        [3]NetEm:http://developer.osdl.org/shemminger/netem.

        [4]R.Blum,Network Performance Open Source Toolkit:Using Netperf,Tcptrace,NIST Net,and SSFNet(Wiley,2003).

        [5]菜文郁、金心宇、張昱,基于Linux的網絡流量控制機制,2006-08.

        作者簡介:

        高嵐,男,漢,山東泰安,同濟大學,電子與信息工程學院,碩士研究生,研究方向:嵌入式系統(tǒng)及應用。

        蜜桃视频永久免费在线观看| 五十路熟女一区二区三区| 欧美刺激午夜性久久久久久久| av男人操美女一区二区三区| 国产在线一区二区三区四区不卡| 国产精品久久国产精品99 | 国产性感丝袜美女av| 看女人毛茸茸下面视频 | 国产精品反差婊在线观看| 亚洲av本道一本二本三区| 欧美成人秋霞久久aa片| 一本大道色婷婷在线| 亚州五十路伊人网| 丝袜美腿制服诱惑一区二区| 门卫又粗又大又长好爽| 国产黄a三级三级三级av在线看 | 久久久久成人精品免费播放动漫| 欧美肥胖老妇做爰videos| 久久亚洲AV无码精品色午夜| 午夜亚洲精品一区二区| 日本xxxx色视频在线观看免费| 色八a级在线观看| 一本一本久久a久久精品综合| 日本女u久久精品视频| 成人国产一区二区三区| 亚洲欧洲精品成人久久曰影片| 狠狠综合亚洲综合亚色| 日韩五码一区二区三区地址| 亚洲日韩欧美一区、二区| 亚洲最大天堂无码精品区| 亚洲二区三区四区太九| 人妻精品视频一区二区三区| 中文字字幕在线精品乱码| 国产免费人成视频在线播放播| 国产精品亚洲在线播放| 男女性爽大片视频| 美女胸又www又黄的网站 | 亚洲乱码中文字幕三四区| 99精品久久精品一区二区| 亚洲人成亚洲人成在线观看| 中文字幕av一区二区三区诱惑|