论文部分内容阅读
网络模拟器(Network Emulator)为在实验室环境下测试、分析和评价Internet的各种应用系统和技术提供了一个方便、高效的方法,具有费用较低、规模较小、使用方便、实时性等特点。针对国内外网络模拟器的研究现状,本课题设计开发了一个面向协议的、基于Windows平台的网络模拟器——WINPLEM。它不仅能模拟用户定义的简单网络链路条件,如带宽、延迟和丢包等,还能够模拟数据包错序传输的网络现象,并支持trace文件加载模式,从而模拟动态的网络传输,使模拟更具有真实性,适合用于多媒体应用等各种网络服务的性能分析和评价。本文在介绍网络模拟器的开发现状以及Windows平台下进行相关开发的关键技术之后,提出了WINPLEM的体系结构。WINPLEM由多个模块及相应的接口组成,通过采用相关技术独立实现各主要功能及接口,使其可以实现对多种网络现象的模拟。为达到延迟模拟的高精度要求,文中对Windows平台下可采用的两种延时方式进行了对比,一种是利用性能计数器循环查询时钟产生延时,另一种是利用Windows内核定时器控制缓冲队列产生延时。大量测试实验结果表明,后一种方式只产生较低的误差率和系统负荷,可以更有效地实现数据包延时。在实现网络传输延时的基础上,将带宽模拟作为传输延迟的一个特例,实现了对网络传输带宽的实时控制。通过修改Windows平台下网络驱动接口规范(NDIS)的数据包发送流程,实现了丢包的功能,并且通过随机数生成策略实现了对丢包率的动态模拟。提出了一种数据包动态调度机制,并通过I/O请求包(IRP)实现了用户配置参数和trace文件的加载功能,实现了广域网数据包错序传输的模拟。通过调度机制和加载功能的结合实现对动态传输延迟的模拟。大量性能测试实验的结果表明,本文设计、实现的网络模拟器WINPLEM达到了高精度、低负荷的设计要求,其中带宽模拟的误差率低于2.25%,延迟模拟的误差率低于5%,丢包率模拟的误差率低于2%,而CPU的占用率能够一直保持在5%以下。最后,提出了一个应用实例,将WINPLEM用于流媒体视频测试,进一步论证了WINPLEM的有效性和应用性。