admin管理员组

文章数量:1530847

2024年5月16日发(作者:)

第25卷第8期 

2008年8月 

计算机应用研究 

Application Research of Computers 

V01.25 No.8 

Aug.2008 

WE6:实时高效 Windows平台l PV6 

网络模拟器设计与实现 

李学杰,金志刚,戴居丰 

(天津大学电子信息工程学院,天津300072) 

摘要:IPv6网络需要新的网络协议和设备。在将新设备应用到实际环境前,需要大量的实验对设备和协雄进 

行验证。网络模拟器是进行这类实验的有效工具。为此,设计了一种同时支持IPv6和IPv4协议的Windows平 

台网络模拟器:WE6(Windows.platform emulator IPv6)。可以实现对网络带宽、传输延迟、传输丢包率以及传输延 

迟抖动的控制和调节。在Cernet 1/上进行的实际使用表明,该网络模拟器可以对IPv6业务进行精确的实验环 

境控制,为协议和设备的开发与验证提供可靠的条件。 

关键词:模拟器;IPv6;Windows平台 

中图分类号:TP391.9 文献标志码:A 文章编号:1001—3695(2008)08—2502—03 

Design and implementation of real—time and effective 

network emulator of Windows for IPv6(WE6) 

LI Xue-jie,JIN Zhi—gang,DAI Ju—feng 

(School ofElectronics Engineering, 0 n University,Tianifn 300072,China) 

Abstract:With the deve lopment of Internet,new protocols and network equipments are required to develop.It is necessary 

to test the new protocols and network equipments extensively be ̄re deployment. Ilhis paper proposed the design and imple— 

mentation of RENEW,a useable and accurate network emulator which supposed both IPv4 and IPv6 protocols.Besides,it a1. 

SO worked on Windows plafform.In IPv6 testbed.it used RENEW to emulate various network characteristics and conditions in. 

cluding bandwidth,delay packet loss and jitter.Compared with the expected values,results were acceptable.Through imple— 

mentation and experimentation study.it shows that RENEW does provide the rea1.time control and change On the parameters of 

IPv6 network conditions effectively and expediently on Windows.It alSO gives enough accuracy and more satisfactory conven. 

ience to the development and test work for the new protocols. 

Key words:emulator:1Pv6:Windows platform 

网络模拟器可在实验室为网络研究人员提供可控、可再现 

的实验环境,可加快网络协议和设备的开发与应用进程。其优 

势在于不像用软件仿真(simulation)那样还需要对网络协议和 

服务再次在仿真软件中实现 。 

目前,已经有研究和开发人员设计和开发了一些网络模拟 

用IPv6技术。如果不能及时提供支持IPv6功能的模拟器将影 

响到IPv6的推广进程。 

微软公司的Windows已经被市场广泛认可,并且其易用性 

与界面的友好性比Linux类操作系统要高。考虑到Windows 

平台上数量巨大的各种应用,实现其平台上的模拟器对进一步 

减少网络协议和新应用的重新编码有巨大的作用。因此,本文 

提出了Windows平台的同时支持IPv6和IPv4的实时、高效的 

网络模拟器。该模拟器可对网络中需要处理的数据包在传输 

器。例如NISTNet是美国国家标准局提出的运行于Linux平台 

的模拟器软件包(2 3;Dummynet是小型的、有一定灵活性的模 

拟器软件 j,它基于FreeBSD操作系统。上述两种模拟器的缺 

点是需要先对操作系统进行补丁操作 。ONE(Ohio network 

emulator)是美国俄亥俄州立大学设计的运行在Sun公司的 

过程中根据需要,修改其传输延迟、延迟抖动、控制传输带宽、 

控制传输丢包率。 

Solafis工作站环境下的模拟器软件 j。它工作时模仿路由器 

的工作,需要有两个物理网卡。使用ONE模拟器时,需要运行 

ntpd和inetd等服务,并且用户界面不够友好,模拟器功能不 

够全面。对于网络模拟器的需求,也有企业进行了开发,提供 

了较成熟的产品。例如PacketStom公司的产品Packetrstorm是 

1 WE6总体设计 

1.1设计目标 

WE6的首要目标是对IPv6的支持。当然为了适应各种 

IPv4和IPv6共存的环境,还需要支持IPv4。根据Windows平 

台的特点,确定了下面的目标: 

a)有效性与精确性。有效地对用户设定的网络环境进行 

个功能强大的网络模拟器 J。但是其价格非常高,而且主 

要针对大型的网络环境。 

另一方面,上述模拟器一般都是在IPv4环境下对协议进 

行模拟。但是随着IP地址空间的日益紧张,下一代网络将采 

收稿日期:2007-09—30;修回日期:2007.12—23 

模拟,并且足够精确。这些仿真应该尽可能实时完成。 

b)小干扰。当模拟器运行时,尽可能小地对Windows的 

基金项目:国家自然科学基金资助项目(90604013);天津市政府信息办项目(07033012) 

作者简介:李学杰(1965・),男,河北沧州人,博士,主要研究方向为计算机网络、信息安全(1xj@tipp.gov.cn);金志刚(1972.),男,上海人,教 

授,博导,主要研究方向为网络与信息安全;戴居丰(1944.),男,湖北宜昌人,教授,博导,主要研究方向为通信与信息系统、信息安全. 

第8期 李学杰,等:WE6:实时高效Windows平台IPv6网络模拟器设计与实现 

drop tail、随机丢包等,丢弃特定的包。 

1.3.2传输延迟控制 

2503・ 

正常任务的运行进行干扰。这样的话,得到的模拟结果的可信 

性才比较高。 

C)灵活性。要求网络模拟器能够实现尽量多的网络环境 

模拟,并且适应不同的网络硬件。 

1.2 WE6系统结构 

延迟是影响网络协议工作的另一个主要性能参数。在一 

般的网络中,数据包的传输延迟由链路带宽和业务流量等确 

定。但是用户为了对协议进行测试,往往需要得到大延迟,或 

者延迟抖动情况下的行为。例如,网络流媒体播放器需要实验 

为了实现上述设计目标,经过对Windows的网络协议栈的 

深入分析,WE6模拟器选择了主要在数据链路层添加和修改 

Windows的代码并且在网络层进行少量的配合代码的方式来 

实现。WE6的系统结构如图1所示。选择在数据链路层实现 

模拟器的主要原因是由于IPv6和IPv4的协议栈在网络层实现 

在大延迟,而且延迟抖动的环境下是否可以流畅工作。模拟器 

通过人工增加用户可调节的延迟来实现用户的需求。 

具体实现的方法是,收到数据包后,将其按照需要在缓冲 

区中存放一定时间。其中的关键技术是实现高精度的内核定 

时器。在定时器的支持下,将需要延迟发送的数据包组成 

上有较大的差异,但是在数据链路层实现基本相同。为了实现 

对IPv6和IPv4的支持,在网络层使用了不同的代码。这样的 

timer.1ist。按照其定时器的失效时间升序排列该链表中的项。 

分层结构使WE6网络模拟器可以高效、准确地工作。 

此链表是动态维护的,随时可能有新的项加入,也会有表项因 

r—————————] 广__Ⅵ ————一 

为定时器超时被删除。模拟器仅需要对表头进行检查,这使得 

l applications I  Iinte 誉 l 

其处理效率提高,实现实处理行。在具体实现时,仅使用了一 

个高精度定时器进行扫描,大大降低了对CPU和内存的消耗。 

为了保证高精度定时器的时问精度,将其单独作为一个线程 

(主线程)。模拟器的其他功能模块构成另外一个线程。当模 

拟器运行时,主线程负责对数据包的处理;定时器线程实现高 

 II 

精度的定时;定时器线程一旦扫描到超时的数据包就立刻将其 

图1 WE6在协议层次的位置 

传递给主线程进行相关处理。 

Windows操作系统提供了用户和内核模式。wE6模拟器 

1.3.3传榆延迟抖动(delay iitter)控制 

由两个主要模块组成,如图2所示。a)用户界面,工作于用户 

数据包在网络中传输时会有不同的传输延迟,不同的延迟 

模式。模拟器的用户可以通过此界面控制需要调整的网络参 

形成了延迟抖动。延迟抖动对于网络协议的性能、设置协议工 

数来改变网络环境。b)内核模块,工作于内核模式。由于其 

作的正确性有很大的影响。WE6网络模拟器提供了对延迟抖 

嵌入到Windows的内核中,不会受到进程切换和Windows工作 

动的控制和模拟。为了实现对抖动的模拟和控制,使用了文献 

模式的影响。内核模块提供了模拟器的主要模拟功能。它截 

[7]中的多结构延迟抖动模型。此模型采用了不相关采样的 

获收到的数据包,然后对其根据用户的设置改变其传输的延 

概率分布函数来生成。其过程如图3所示。 

迟、传输使用的带宽和产生需要的丢包环境。 

 I竺 !!坌塑垩垄H !! 竺 堡!! !H堂墼 !!! ! !塑 I 

图3延迟抖动模型 

其中,拉普拉斯变换用来生成用户指定的包传输延迟抖动的均 

值和标准差。为了与实际的抖动特性更加接近,进一步使用下 

面的公式变换。 

F( )=1/2 e 一a 佃,X≤a (1) 

,( )=1—1/2 e。 一 , ≤Ot (2) 

d=mean,口= 

其中,高斯白噪声用来得到大时间尺度的延迟。 

network 

图2 WE6系统结构 

2模拟器实现关键技术 

WE6的基本工作流程如下:每一个输入的数据包都会被 

监测,包匹配模块根据用户设置的规则决定是否对数据包进行 

2.1 Windows下的原型 

处理,以及进行哪种处理。为了区分不同的流,本文使用了业 

为了实现对数据包的处理,模拟器需要控制所有穿越的数 

务表,将IP地址(源和目的)、协议类型、端口号(源和目的)组 

据。Windows操作系统的数据链路层功能是在网络驱动程序 

合起来构成该表的条目。考虑到ICMP协议的特殊性,对ICMP 

中实现的。因此,WE6模拟器需要修改和扩展Windows的网 

与ICMPv6协议的业务流使用端口域存储类型和代码数据。为 

络驱动程序。将模拟器作为Windows XP(sp2)的设备驱动程 

了进一步提高对数据包匹配和处理的实时性,WE6模拟器设计 

序的扩展模块。Windows XP平台下的实现框架如图4所示。 

和实现了包分类器,通过此分类器对包进行实时匹配。 

wE6模拟器采用了NDIS(network driver interface speciif。 

1.3模拟功能实现策略 

cation)规范,并使用WDM(Windows driver mode1)编程模型。 

1.3.1 丢包控制 

修改后的网络驱动程序将不同的网卡看做不相互独立的关系。 

很多网络协议和设备都需要验证和测试在一定数据包丢 

数据包可以在用户配置的控制下在卡间流动。通过NDIS技 

失条件下的性能和可靠性。同时为了保证测试的可重复性,还 术,模拟器实现了对数据包的修改、延迟和丢包等操作。 

希望此丢包场景是可准确再现的。丢包控制实现了此功能。 当模拟器初始化时,主线程绑定到所有的网卡或设备句 

当用户设置的某个业务流期望的丢包率大于0时,模拟器根据 

柄。一旦完成初始化,就启动定时器线程。当有数据包到达 

期望的丢包率产生随机数,并且根据用户选择的丢包策略,如 

时,主线程对其进行分类处理。另一方面,WE6模拟器虽然作 

2504・ 计算机应用研究 

ms,期望的延迟标准差为4 ms。 

第25卷 

为网络驱动的模块加入到Windows内核中,但是没有修改原来 

驱动程序的功能模块,保证了Windows的网络功能不受影响。 

2.2高精度定时器实现 

采用Windows提供的kemel dispatcher对象来实现高精度 

定时器。在任意时刻,对象处于signaled或not—signaled状态之 

200 400 600 800 1000 

通过使用API函数KeWaitForSingleObject(),可以阻塞某 

bandwidth settings/kbps 

图6延迟50Ins时屏幕截图 

图7带宽控制实验 

个线程,或者让某个线程等待被signaled。在Windows操作系 

统的核心态,并且使用非分页内存时,等待的时间单位是100 

as(即0.1 s)。而直接使用Windows提供的默认定时器的定 

时精度是10 ms 。在Windows系统上对这类定时器的实际 

测量表明,当系统的负荷高时,定时器的精度很难保证。WE6 

模拟器使用kemel dispatcher对象方式实现的高精度定时器可 

以通过提高定时器线程的优先级来解决这些问题。 

图8丢包率期望值为10%的屏幕截图 

∞ 麒 -圣 

麓 

艄 

4结束语 

网络模拟器对于协议的设计和验证、网络设备的应用与调 

试具有重要作用。功能全面、用户友好的模拟器可加快上述过 

程,并提供一个用户可控、场景可再现的网络环境。本文设计 

了Windows平台的IPv6网络模拟器:WE6。在NDIS框架基础 

上,设计和实现了通过对网络驱动程序扩展来完成对数据包的 

模拟器将kernel dispatcher对象与截获的数据包进行关 

联,并且将对象的失效时刻也关联上。这样一来,仅需要对对 

象是否超时失效进行检查,就可以实现精确的定时。 

3模拟器实验验证 

3.1 实验环境 

为了验证模拟器的功能,特别是其IPv6功能,在天津大学 

的IPv6网络中进行了实验。天津大学是Cemet的地区主节 

点,是Cemet II纯IPv6网络的节点。实验中,源节点和目的节 

处理的能力。通过使用Windows的特殊对象方式获得了高精 

度的定时器,解决了数据包的定时问题。在此基础上,针对模 

拟器的主要功能:传输延迟、带宽控制、传输丢包率、延迟抖动 

等(图9)进行了设计和实现。实验表明其主要功能工作良好, 

实现了实时、高效的网络模拟功能。大量实验表明,该模拟器 

的精度较高,适合IPv6环境。 

点间通过wE6模拟器连接,使用的是100 Mbps的链路。模拟 

器软件安装在一台Dell PC上(Dimension3000),配置了两个 

以太网卡,标记为D3000。目的节点是一台Dell笔记本电脑 

(INSPIRON2200),标记为12200。源节点是一台ASUS笔记本 

电脑(U5 series),标记为U5。逻辑连接如图5所示。 

D3O0o 

emulator 

。 

固癌隧圆一 --锄窿窿蠡 一 

图9抖动功能实验 

参考文献: 

u5's0urce, 

IP address=20ol 

:da8:aO0o:5::3 

gateway=200l: 

da8:a000:5::l 

[1]JIN Zhi-gang,WU Xiu-li,SHU Yan-tai.Designing and implementing 

of a wireless network emulator f C]//Proc of IEEE Canadian Confe. 

renee on Electicarl and Computer Engineering.Ontario:IEEE Publica- 

tion.2004:341-344. 

[二 匾亟 口

3.2模拟器实验 

 

图4 WindowsXP平台下的实现框架 

图5实验拓扑 

[2]NIST Internetworking Technology Group.NIST net network emulation 

package[EB/OL].http://snad ncs1.nist.gov/itg/nistnet. 

[3]RIZZO L.Dummynet:a simple approach to the evaluation of network 

protocols[J].ACM Computer Communication Review,1997,27 

(1):31—41. 

为了测试对传输延迟的改变能力,对传输延迟实验增加了 

延迟的范围为0—100 ms。在源节点发送数据至目的节点。其 

中,设置延迟为50 ms时的屏幕截图如图6。可以看出模拟器 

的误差非常小,其平均延迟误差大约为3.8%。为了验证模拟 

[4] KAYSSI A,E1.HAJ—MAHMOUD A.EmuNET:a rea1.time network 

emulator[C]//Proc of ACM Symposium on Applied Computing.New 

York:ACM Publication,2004:357-362. 

器的带宽控制功能,使用了Iperf工具来测量带宽。实验使用 

的是The version of Iperf 1.7.0,支持IPv6。实验中设置的带宽 

[5]ALLMAN M,CALDWELL A,OSTEMANN S.ONE:the Ohio net. 

work emulator,TechReport TR-19972[R].[S.1.]:Ohio University, 

1997. 

测试范围是0 Kbps~1 Mbps。图7给出了60 S的平均带宽,平 

均误差为6%。 

测试数据包丢失率的控制同样使用了Iperf工具。图8给 

出了设置期望丢包率为10%情况下实际测量的截图。实验数 

据表明,丢包率的相对误差不超过3.4%。 

[6]PaeketStonn Communication lnc.White papers of PacketStorm[EB/ 

OL].http://www.packetstorm.corn. 

[7]DANIEL E,CHRISTOPHER W,TEAGUE K.An inter—arrival delay 

jitter model using multi-structure network delay characteristics for 

WE6网络模拟器的另外一个重要功能是对传输延迟抖动 

的控制,实验中采用Winpcap 4.0来进行截包和测量。将Win. 

packet networks[C]//Conference Record of the Asilomar Conference 

Off Signals,Systems and Computers.Asilomar Ground:IEEE Publica— 

tion,2003:1738-1742. 

pcap得到的数据包的到达时刻进行处理,得到间隔时间,然后 

使用MATLAB绘制了延迟的变化图。图9中期望的延迟是50 

[8]DDK document[EB/OL].http://msdn2.microsoft.corn/en—us/li. 

brary/aa9735 17.aspx. 

本文标签: 模拟器网络延迟实现进行