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

?

基于OMNEST的以太網(wǎng)傳輸丟包問題研究

2015-05-29 12:21:09王建璞趙亞麗占凌云
現(xiàn)代電子技術(shù) 2015年10期
關(guān)鍵詞:以太網(wǎng)

王建璞+趙亞麗+占凌云

摘 要: 針對(duì)實(shí)驗(yàn)過程中以太網(wǎng)傳輸?shù)膩G包問題,使用OMNEST進(jìn)行仿真建模,利用精確的系統(tǒng)描述,復(fù)現(xiàn)所出現(xiàn)的問題,進(jìn)行丟包和端到端時(shí)延的研究。通過仿真分析定位問題,發(fā)現(xiàn)ARPCache中目的地址的超時(shí)或定期清空導(dǎo)致故障發(fā)生?;诖藛栴}提出解決方案,為解決問題提供支持。

關(guān)鍵詞: OMNEST; 丟包; 以太網(wǎng); ARP解析

中圖分類號(hào): TN911?34; TP393.11 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)10?0016?04

0 引 言

在通信系統(tǒng)建立以及調(diào)試過程中,仿真建模實(shí)驗(yàn)作為一種重要的支撐技術(shù)發(fā)揮著越來(lái)越重要的作用。相對(duì)于實(shí)物調(diào)試試驗(yàn),使用仿真技術(shù)能夠更快、更多的遍歷問題出現(xiàn)的條件,為解決問題提供方案,提高工作效率。

OMNEST是一款面向?qū)ο蟮碾x散事件網(wǎng)絡(luò)模擬器,它的特征體現(xiàn)在分層次嵌入式模塊、各模塊以模塊類型分類、模塊之間通過信號(hào)在通道上的傳輸進(jìn)行通信、靈活的模塊參數(shù)和拓?fù)涿枋稣Z(yǔ)言。一個(gè)可執(zhí)行仿真程序一般由網(wǎng)絡(luò)描述語(yǔ)言NED、.h和.cc文件、配置文件INI及消息文件.msg組成,其中:網(wǎng)絡(luò)描述語(yǔ)言NED,描述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);.h和.cc文件,用于完成各模塊的代碼編寫、也可以通過代碼生成網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),以及實(shí)現(xiàn)仿真結(jié)果的統(tǒng)計(jì)工作;配置文件INI,主要實(shí)現(xiàn)對(duì)模塊參數(shù)的配置,便于對(duì)仿真參數(shù)的更改;消息文件.msg,可以模擬傳輸過程中的事件、消息、包、幀等。

本文使用OMNEST離散事件仿真工具對(duì)以太網(wǎng)進(jìn)行建模,建立以太網(wǎng)節(jié)點(diǎn)模型及其中心節(jié)點(diǎn)內(nèi)各分功能模塊模型,多個(gè)節(jié)點(diǎn)模型通過NED語(yǔ)言聯(lián)合組成最終的網(wǎng)絡(luò)模型。節(jié)點(diǎn)模型由應(yīng)用層模塊APP、傳輸層模塊UDP、網(wǎng)絡(luò)層模塊NETWORK(包含IP、ICMP、IGMP等子模塊)、鏈路層模塊ETH(包含ARP、ENCAP、MAC等模塊)組成[1?2]。

1 以太網(wǎng)傳輸丟包問題分析

在進(jìn)行某綜合試驗(yàn)的過程中,使用千兆以太網(wǎng)通過交換機(jī)將主機(jī)與終端相連。在實(shí)際網(wǎng)絡(luò)傳輸過程中,由主機(jī)產(chǎn)生消息通過接入設(shè)備路由將消息分別傳輸給所有的終端。對(duì)系統(tǒng)進(jìn)行調(diào)試中,主機(jī)上的綜合監(jiān)控軟件在向終端上的監(jiān)控信息模擬軟件發(fā)送數(shù)據(jù)的過程中出現(xiàn)丟包現(xiàn)象。經(jīng)分析,對(duì)出現(xiàn)問題的原因建立故障樹,如圖1所示。

通過對(duì)故障進(jìn)行排查,排除了硬件和應(yīng)用軟件的問題。在主機(jī)和終端上分別安裝CommView抓包軟件,通過多次試驗(yàn),查看抓到的數(shù)據(jù)包發(fā)現(xiàn)出錯(cuò)的現(xiàn)象相同,故障可復(fù)現(xiàn)。每次出錯(cuò)時(shí),數(shù)據(jù)包信息描述如下:

(1) ARP request方向?yàn)椋罕緳C(jī)→對(duì)端;

(2) IP分片方向?yàn)椋罕緳C(jī)→對(duì)端;

(3) ARP respond 方向?yàn)椋罕緳C(jī)←對(duì)端。

圖1 故障樹分析

查看抓到的數(shù)據(jù)包內(nèi)容:

ARP Request方向數(shù)據(jù)包中源IP為本機(jī)IP,源MAC為本機(jī)MAC,目的IP為對(duì)端IP,目的MAC為全“1”,意為廣播,這種形式的ARP包是在一臺(tái)主機(jī)的ARP列表中不含有可用項(xiàng)時(shí)發(fā)出的標(biāo)準(zhǔn)的ARP請(qǐng)求數(shù)據(jù)包;

IP分片方向通過查看數(shù)據(jù)包的大小、偏移量和MF標(biāo)志位,證實(shí)它是數(shù)據(jù)包中一包數(shù)據(jù)所分成的IP片中的最后一片(每包數(shù)據(jù)大小為8 960 B,被分成7個(gè)IP片);

ARP Respond方向數(shù)據(jù)包中的內(nèi)容顯示它是一個(gè)標(biāo)準(zhǔn)的ARP應(yīng)答包。通過抓包分析猜測(cè)問題出現(xiàn)在ARP解析過程中,當(dāng)發(fā)送方主機(jī)ARPCache清空或者目的地址超時(shí)導(dǎo)致MAC目的地址不可用,就會(huì)發(fā)起ARP查詢時(shí),故障出現(xiàn)。在故障樹中對(duì)應(yīng)于操作系統(tǒng)引起的故障。在連續(xù)試驗(yàn)過程中,由于故障每隔10 min會(huì)出現(xiàn)一次,因此,分析認(rèn)為是系統(tǒng)定期ARP查詢導(dǎo)致故障的出現(xiàn)。

2 仿真模型的建立

本文使用OMNEST進(jìn)行仿真,實(shí)現(xiàn)由1臺(tái)主機(jī)向6臺(tái)終端通過路由器發(fā)送報(bào)文,對(duì)故障進(jìn)行編碼設(shè)計(jì)具有ARPCache清空功能的ARP協(xié)議,通過參數(shù)設(shè)定,與標(biāo)準(zhǔn)以太網(wǎng)模塊進(jìn)行比較定位問題。圖2所示為使用OMNEST搭建的仿真場(chǎng)景。通過對(duì)抓包結(jié)果進(jìn)行分析,定位問題可能出現(xiàn)在ARP解析過程中。在每一次ARP解析時(shí)都會(huì)出現(xiàn)丟包現(xiàn)象,而且總是丟掉IP分片的前面6片,而發(fā)送最后一個(gè)分片。

基于以上分析,本文建立如圖3所示的節(jié)點(diǎn)模型,使用計(jì)算機(jī)體系結(jié)構(gòu)5層協(xié)議來(lái)模擬發(fā)送數(shù)據(jù)端[3]。應(yīng)用層為myapp,實(shí)現(xiàn)消息的產(chǎn)生,接收以及統(tǒng)計(jì);傳輸層使用UDP協(xié)議,綁定端口號(hào)1 024;網(wǎng)絡(luò)層建立IP?ICMP?IGMP結(jié)構(gòu)模型,實(shí)現(xiàn)IP分片以及差錯(cuò)控制等功能;數(shù)據(jù)鏈路層建立myarp?encap?MAC結(jié)構(gòu)模型,myarp模塊實(shí)現(xiàn)地址的ARP解析模型,以及復(fù)現(xiàn)上述所定位的問題的編程實(shí)現(xiàn),encap模塊實(shí)現(xiàn)仿真中上下層報(bào)文的發(fā)送控制,MAC模塊實(shí)現(xiàn)MAC地址的分配;最后通過1 000 MHz以太網(wǎng)發(fā)送。在消息的產(chǎn)生以及傳輸?shù)确矫?,通過上述方法建立的節(jié)點(diǎn)模型都與實(shí)際情況一致。

圖2 OMNEST仿真場(chǎng)景

圖3 節(jié)點(diǎn)模型

圖4為實(shí)現(xiàn)myarp模塊的編碼流程圖。參考計(jì)算機(jī)網(wǎng)絡(luò)ARP標(biāo)準(zhǔn)并結(jié)合實(shí)驗(yàn)的實(shí)際情況,本文設(shè)計(jì)具有ARPCache清空功能的ARP協(xié)議,在協(xié)議中中采用ARP高速緩存存放局域網(wǎng)上各主機(jī)和路由器的IP地址到硬件的映射表。本文中規(guī)定ARPCache清空時(shí)間為t1,而對(duì)于每一個(gè)目的地址,在協(xié)議中有一個(gè)生存時(shí)間為t2,在t2時(shí)間內(nèi)使用過該目的地址則再延長(zhǎng)一個(gè)生存時(shí)間,如果超過這個(gè)生存時(shí)間就會(huì)把這一地址映射丟棄。

3 仿真結(jié)果及分析

OMNEST系統(tǒng)自帶有ARP模塊,此模塊按照計(jì)算機(jī)網(wǎng)絡(luò)ARP標(biāo)準(zhǔn)建立。標(biāo)準(zhǔn)ARP模塊無(wú)法準(zhǔn)確描述實(shí)驗(yàn)出現(xiàn)的問題,所以本文建立具有ARPCache清空功能的以太網(wǎng)模型。仿真實(shí)驗(yàn)時(shí),將具有ARPCache清空功能的以太網(wǎng)模型與標(biāo)準(zhǔn)的以太網(wǎng)模型進(jìn)行對(duì)比。分別對(duì)故障樹羅列情況進(jìn)行仿真,得到仿真結(jié)果,并對(duì)仿真結(jié)果進(jìn)行對(duì)比分析。

3.1 仿真參數(shù)

本文的仿真的參數(shù)都使用實(shí)物實(shí)驗(yàn)時(shí)設(shè)定的參數(shù)值和實(shí)驗(yàn)過程中實(shí)測(cè)的數(shù)據(jù),以保證對(duì)系統(tǒng)的精確描述。

圖4 ARP編碼流程圖

表1 仿真主要參數(shù)設(shè)定

3.2 仿真結(jié)果及分析

使用具有ARPCache清空功能的以太網(wǎng)模型進(jìn)行仿真,千兆網(wǎng)下各發(fā)報(bào)時(shí)間點(diǎn)所對(duì)應(yīng)的延時(shí)見圖5。

圖5 各發(fā)報(bào)時(shí)間點(diǎn)的延時(shí)情況

在10 s,20 s,30 s,40 s,70 s,100 s,440 s,530 s,570 s,600 s,620 s,630 s,670 s,730 s,740 s,900 s,940 s,1 200 s,1 210 s,1 230 s,1 280 s,1 380 s,1 510 s發(fā)生了丟包,其中10 s,20 s,30 s,40 s,70 s,100 s,600 s,620 s,630 s,670 s,730 s,740 s,1 200 s,1 210 s,1 230 s,1 280 s,1 380 s,1 510 s是由于ARPCache在每隔600 s進(jìn)行一次清空導(dǎo)致的ARP查詢,而440 s,530 s,570 s,900 s,940 s則是由于超過120 s未使用ARPCache中對(duì)應(yīng)的目的地址過期導(dǎo)致的。其他時(shí)刻正常發(fā)出6個(gè)包,傳輸正常。

圖6為仿真過程中發(fā)生ARP查詢時(shí),接收端應(yīng)用層收到的報(bào)文。從圖6中可看到,在ARP查詢時(shí),接受終端收到的報(bào)文大小為724 B,正好是IP分片的最后一片。正常傳輸時(shí)接收端會(huì)收到7個(gè)IP分片,而在仿真過程中發(fā)現(xiàn),每進(jìn)行一次ARP查詢?cè)贛AC層都只能收到兩個(gè)包,一個(gè)是ARP請(qǐng)求包,另外一個(gè)是IP分片,而在應(yīng)用層只能收到一個(gè)包,是IP分片的最后一片。

圖6 發(fā)出的報(bào)文情況

可以看出在ARPCache定時(shí)清空或目的地址超時(shí)發(fā)生的情況下,仿真可以復(fù)現(xiàn)實(shí)際以太網(wǎng)傳輸所出現(xiàn)的丟包問題。通過參數(shù)設(shè)定,將帶ARPCache清空的的節(jié)點(diǎn)與標(biāo)準(zhǔn)模型下的節(jié)點(diǎn)對(duì)故障樹對(duì)應(yīng)的各個(gè)問題進(jìn)行仿真對(duì)比,結(jié)果如表2所示。

表2 仿真結(jié)果

從仿真結(jié)果可以看出帶ARPCache清空的以太網(wǎng)模型發(fā)送端都發(fā)生了丟包,而使用標(biāo)準(zhǔn)ARP模塊的以太網(wǎng)模型的節(jié)點(diǎn)則沒有發(fā)生丟包。通過參數(shù)設(shè)定進(jìn)行仿真分析發(fā)現(xiàn)試驗(yàn)中的以太網(wǎng)丟包問題只和ARP查詢有關(guān),所以可以在實(shí)際試驗(yàn)中把問題準(zhǔn)確定位在ARPCache上。

3.3 機(jī)理分析

從仿真中可以看出當(dāng)ARP查詢時(shí)會(huì)導(dǎo)致丟包,而致使ARP查詢的原因是每隔600 s一次的ARPCache清空或者120 s每ARPCache內(nèi)的目的地址未使用而導(dǎo)致的地址過期。對(duì)于這兩個(gè)因素,在實(shí)際環(huán)境中進(jìn)行驗(yàn)證分析。

(1) 操作系統(tǒng)自動(dòng)發(fā)起ARP查詢。在操作系統(tǒng)HKE_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/ TcpIP/Parameters注冊(cè)列表下,保存了操作系統(tǒng)自動(dòng)發(fā)起ARP查詢時(shí)間的鍵值。鍵值1:ArpCacheLife,類型為Dword,單位為s,默認(rèn)值為120;鍵值2:ArpCacheMinReferencedLife,類型為Dword,單位為s,默認(rèn)值為600;默認(rèn)情況下這些鍵值不存在,如需修改,則需自行創(chuàng)建。在默認(rèn)情況下,Windows Server 2003和Windows XP的ARP緩存中的ArpCacheLife表項(xiàng)僅存儲(chǔ)2 min,如果一個(gè)ARP緩存表項(xiàng)在2 min內(nèi)被用到,則其再延長(zhǎng)2 min,直到最大生命周期10 min為止,超過10 min的最大期限后,ARP緩存表項(xiàng)將被移除,并通過一對(duì)ARP請(qǐng)求和ARP應(yīng)答來(lái)獲得新的對(duì)應(yīng)關(guān)系。綜上所述,當(dāng)ArpCacheLife小于ArpCacheMinReferencedLife的值時(shí),ArpCacheLife表示未被使用的表項(xiàng)在ARP緩存中的生存時(shí)間,ArpCacheMinReferencedLife表示被重復(fù)使用的表項(xiàng)在ARP緩存中的生存時(shí)間,當(dāng)設(shè)置ArpCacheLife的值大于或等于ArpCacheMinReferencedLife時(shí),則被使用和未被使用的表項(xiàng)的生存時(shí)間均為ArpCacheLife。

(2) 發(fā)起ARP查詢時(shí)僅發(fā)送最后一個(gè)IP片。在ARP協(xié)議源碼中,獲得與IP地址對(duì)應(yīng)的MAC地址由arpresovle函數(shù)完成。該函數(shù)的一個(gè)工作特點(diǎn)是:如果一個(gè)節(jié)點(diǎn)沒有一個(gè)有效的MAC地址就必須發(fā)送一個(gè)ARP請(qǐng)求,在發(fā)送ARP請(qǐng)求和接收ARP應(yīng)答之間,如果有多個(gè)發(fā)往同一目的IP地址的數(shù)據(jù)包即IP分片要發(fā)送,則只把最近一個(gè)IP數(shù)據(jù)包保留,而將其他的IP分片丟棄。

4 解決措施

通過對(duì)問題機(jī)理的分析,可以看出在發(fā)送有IP分片的數(shù)據(jù)包時(shí),ARPCache清空所帶來(lái)的丟包就會(huì)發(fā)生,所以要解決這一問題就要從數(shù)據(jù)包大小和ARPCache清空兩個(gè)方面入手。本文提出5種解決措施,并指出每種措施的優(yōu)缺點(diǎn),為實(shí)際應(yīng)用提供支持,見表1所示[4]。

5 結(jié) 語(yǔ)

本文使用OMNEST通信仿真軟件對(duì)以太網(wǎng)主機(jī)之間通信進(jìn)行建模,對(duì)每個(gè)節(jié)點(diǎn)采用計(jì)算機(jī)網(wǎng)絡(luò)體系5層結(jié)構(gòu)進(jìn)行精確仿真,使用C++編程實(shí)現(xiàn)每一個(gè)功能模塊,使模型與真實(shí)模型逼近。針對(duì)以太網(wǎng)丟包問題,本文先建立故障樹對(duì)故障進(jìn)行理論分析,然后使用OMNEST建立具有ARPCache清空功能的節(jié)點(diǎn)模型,復(fù)現(xiàn)丟包現(xiàn)象,精確定位問題,并結(jié)合仿真結(jié)果提出問題的解決方案。隨著通信仿真技術(shù)的發(fā)展,通信仿真手段越來(lái)越多的被用來(lái)解決工程問題。本文使用OMNEST對(duì)以太網(wǎng)丟包問題的描述和解決為后續(xù)同類工程問題的解決提供借鑒。

參考文獻(xiàn)

[1] 趙永利,張杰.OMNET++與網(wǎng)絡(luò)仿真[M].北京:人民郵電出版社,2012.

[2] 單衛(wèi)龍,馬奎,周武能.基于OMNeT++的“實(shí)代碼”仿真模式研究[J].微型機(jī)與應(yīng)用,2010(20):11?15.

[3] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2008.

[4] 王海軍,劉彩霞,程?hào)|年.一種基于UDP的可靠傳輸協(xié)議分析與研究[J].計(jì)算機(jī)應(yīng)用研究,2005(11):181?185.

[5] 李振,鄭連澤,饒廣然.基于OMNeT++的Link 11網(wǎng)絡(luò)建模仿真研究[J].現(xiàn)代電子技術(shù),2012,35(3):21?25.

[6] 李愛國(guó).SCTP在工業(yè)以太網(wǎng)通信技術(shù)中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2011,34(3):160?162.

猜你喜歡
以太網(wǎng)
NWCS' 23新一代車載以太網(wǎng)傳輸技術(shù)研討會(huì)成功召開
汽車電器(2023年12期)2024-01-07 04:55:52
基于1500以太網(wǎng)養(yǎng)豬場(chǎng)的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
三大因素驅(qū)動(dòng)創(chuàng)新提速以太網(wǎng)快步邁入“靈活”時(shí)代
三大因素驅(qū)動(dòng)創(chuàng)新提速 以太網(wǎng)快步邁入“靈活”時(shí)代
談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動(dòng)化中的應(yīng)用
電子制作(2017年24期)2017-02-02 07:14:44
基于以太網(wǎng)傳輸?shù)母咚?2通道數(shù)據(jù)采集系統(tǒng)
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計(jì)
基于SOPC的工業(yè)嵌入式以太網(wǎng)接口設(shè)計(jì)
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
萬(wàn)兆以太網(wǎng)在連徐高速公路通信系統(tǒng)改造中的應(yīng)用
甘孜| 黄冈市| 南城县| 邳州市| 大关县| 武城县| 逊克县| 屏边| 原平市| 裕民县| 长春市| 阆中市| 台中县| 三原县| 平昌县| 河源市| 井冈山市| 邹平县| 赣州市| 卢龙县| 香格里拉县| 长宁区| 台湾省| 饶平县| 承德市| 渝中区| 东丰县| 淄博市| 资中县| 彰化市| 大同市| 通山县| 壤塘县| 祥云县| 宁河县| 双辽市| 宁波市| 土默特右旗| 闻喜县| 昌宁县| 新郑市|