具有卫星链路的TCP/IP网络性能测量方法
扫描二维码
随时随地手机看文章
1概述
一个用于测控的TCP/IP网络系统,传输了包括视频、语音和实时数据等多媒体信息。由于该系统运行在一个不可到达的环境,对其业务承载能力及传输质量的评估需要在模拟系统上进行,包括建设网络实验平台、设计合理的测量方法、研制性能测试综合软件等。通过在模拟平台上测量信号传输质量及网络性能,整理和分析测试数据,参考设计实际网络配置和对实际网络进行性能评估。该网络包括一条长链路的卫星接入信道,传输速率具有可任意设置的特点。
为了实现上述目标,开展了以下工作:①构建仿真网络实验平台,具有大延时特性和莱斯噪声的卫星模拟链路;可手动设置接入带宽,最高传输速率为2Mb/s,可变速率为n?64Kb/s;②模拟接入多路数字视频和语音,通过增减业务数来控制网络背景流量;③在具有一定背景流量的情况下,通过增减可控速率的数据业务,对网络传输能力和信号传输质量进行测量,测量内容包括链路可用带宽、链路时延和时延抖动,数据信号丢包率等;④根据所测数据来分析网络参数和传输质量之间的关系,绘制曲线并归纳模型,为网络设计及信道租用提供依据。
2卫星链路模拟器的设计
在卫星信道上采用TCP协议进行高速数据传输时,会受到BDP(时延带宽积)的“瓶颈”制约[1]。TCP是采取超时重发的策略来进行流量控制的,其窗口字节(在TCP协议中是16比特)制约了数据的传输性能,传统TCP中的16比特窗口限制了最大的时延带宽积只能为64K,这使得在长延时链路上的吞吐量受到很大的限制。(向同步轨道卫星传输数据,其时延约为200ms)[2],可以得到:64kb/0.2=320k。为了适应这一特点,应允许“大窗口”存在,使窗口值超过64K,这样在信道上同时可以有更多的数据分组在传输,缓解时延长带来的影响,TCP在避免出现拥塞的前提下会逐渐增大窗口值以提高传输效率。
在卫星通信中,误码率较高也是必须注意的一个特点。同其他无线通信方式一样,信息易受白噪声、突发噪声的干扰,气候等各种因素都会对信道的误码特性产生影响。在数据的收端,TCP通过“校验和”决定数据是否受到干扰,“校验和”错误的数据包将被丢弃。然而在数据的发端,TCP假定数据未正确到达的主要原因是信道拥塞,将通过对发送窗口的调整来适应信道特性。这样数据传送速率将逐渐降低,将导致卫星通信效率的低下。
如上所述,实验网络中的卫星信道模拟器将具有以下特点:①只涉及星地链路;②卫星链路模拟器主要考虑传输时延和无线误码两大基本特性。
对于卫星信道传输时延,拟采用环形储存器结构实现[3][4]。由于FPGA片上存储器资源有限,卫星信道的传输时延从几个毫秒到几百毫秒变化范围较大,因此对传输时延的模拟利用外部SDRAM实现,每条信道通过独立的输入输出缓冲,FIFO,实现与SDRAM的连接。
卫星信道误码考虑包括传播损耗、衰落、多普勒频移、噪声等带来的影响。根据有关卫星信道的理论研究,卫星信道可用多种模型建模,如C.LOO模型,CORRAZA模型等,这些模型中均假定信道衰落特性服从一定概率分布特性。卫星信道中的自由传输损耗、天线增益、极化损耗、转发器的功率损耗等特性最后影响的都是接收端的信噪比。因此,整个卫星信道从仿真的角度可以看成由包括直接影响信噪比特性的AGWN信道部分和影响衰落特性部分的多径衰落信道相加构成,假定多径衰落信道具有直射分量,则信道衰落特性具有莱斯分布[3][4]。
信道仿真模块结构框图如图1所示。
图1卫星信道模拟器结构示意图
3具有卫星接入链路的可变带宽网络实验模型
图2是根据项目要求设计和建造的网络实验平台,特点如下:①SDH构成一个环型骨干网,传输带宽为155Mb/s;②2M速率的PCM终端,具有手动可设置n?64Kb/s速率的以太网口,在实验中设置网络瓶颈带宽;③卫星信道模拟器,模拟具有长时延带宽积的卫星信道,用以实验改进TCP协议的缺省窗口,增加卫星链路的最大吞吐量。
图2具有卫星接入链路的可变带宽实验网络模型
4网络测量方法研究
网络测量的方法和工具多种多样,可以分为主动测量和被动测量两大类。主动测量通过向网络中注入探测流量来进行,通过结果响应数据来获得网络状态信息;被动测量是在网络的主要出入口监听和记录网络中的分组流量并进行测量,从中提取数据,进行分析从而得到网络状态信息。
在网络测评中,确定网络性能指标或测度最为关键,直接影响网络测评的内容及其全面性、合理性和有效性。例如带宽、时延、时延抖动、丢包率、流量或吞吐量等指标都是众所周知的测度。目前IETFsIPPM(IPPeRFormanceMetrics)定义的网络测量指标分为RFC已经定义的指标和目前还是IETF中的一个草案的指标,前者包括连通性(RFC 2678)、单向延迟(RFC 2679)、单向包丢失(RFC 2680)、往返延迟(RFC 2681),后者包括瞬间包延迟变化、IP包延迟变化、单向丢失模式采样[5][6]。
4.1测试方法及性能参数选择
本项目采用主动测试方法:在网络上布置测试机器,主动发送测试流量,如,从A端到B端,获得两端点间的测试结果信息。
本项目选择的网络测量内容包括带宽、时延、时延抖动、丢包率、流量和吞吐量等。
4.2试验要点
①将实验网络设为某专用网络带宽,逐步加大业务,测量信息丢包率、时延和时延抖动等指标,目测视频传输的质量情况,标定上述指标的可容忍度。
②在给定业务容量情况下,逐步调低网络传输速率,按照标定指标进行判断,得出传输给定业务的所需的最小带宽。
③加入卫星信道模拟器,逐步加入噪声或加大时延,测试信息传输丢包率的变化情况,绘制丢包率、时延、噪声功率的双变量曲线。
④变化业务数,记录视频质量变化、各段带宽值的变化、各段时延值变化,丢包率指标变化,查找专用网络在带宽和时延上的“瓶颈”。这里的时延专指传播时延,不包括传输时延,因为传输时延已经由瓶颈带宽反映出来[7]。
4.3测试程序架构
测量程序采用Winpcap+Winsock的层次化测量架构。
Winpcap源于BPF(BerkleyPacketFilter)和libpcap函数库,支持Win32的网络监测程序设计。Winsock是人们很熟悉的Windows套接字编程工具,源于Berkley Socket技术。这两款网络开发工具各有特色,结合使用可以取长补短,提高软件开发的效率,增强软件的运行性能。Winpcap支持网络原始数据包的接收和发送,绕开了TCP/IP协议栈,有利于高速的数据包检测和分析;支持对数据包的过滤,只处理应用程序感兴趣的数据,可以提高程序运行性能,减少系统开销,但不能为端到端的应用提供面向连接和无连接的网络服务。
Winsock是建立在TCP/IP协议栈之上的程序开发工具,提供面向连接和的连接得网络服务,可以大大降低程序开发工作量。但是,网络程序必须从协议栈获取数据包,增加了运行的开销,降低了性能;由于链路层帧首部在提交给IP层之前就已经去掉,不便于网络低层的数据分析,应用范围有限。
图3测量程序架构
程序采用三层架构:网络接口层、网络层、测试层。
其中网络接口层就是网卡驱动程序模块,负责程序与网络设备间的交互。
网络层包括两部分:一个是基于NPF(网络数据包过滤器)的网络模块,一个是基于TCP/IP的网络模块。
测试层通过Winpcap编程接口来访问NPF,检测出原始数据包并获取数据包到达时刻;通过Winsock编程接口来访问TCP/IP,获取TCP会话信息。主从程序测试层均包括两个基本功能模块:数据包检测和TCP会话。数据包检测模块利用Winpcap接口获取网络中的原始数据包,测量开始后,主程序数据包检测模块直接解析出发送端计算机发出的数据包IP标识,记录进主测试窗口,从程序的数据包检测模块直接解析出接收端计算机接收的数据包IP标识,记录进从测试窗口,同时记录视频包的达到时刻;TCP会话模块利用Winsock接口建立主从程序间的TCP连接,控制测量步骤,并交互测量过程中获取的数据。窗口调节模块利用这两个基本功能动态调整测试窗口尺寸。根据正确接收的数据包和主程序通知确认的数据包序列,从程序的丢包确认模块检查数据包的丢失情况,并把丢包数据反馈给主程序。根据反馈的丢包信息,主程序的丢包率计算分析模块计算丢包率。从程序的延迟计算模块通过时间提取,计算相继到达视频包的延迟,并通过TCP会话连接将最后的延迟统计值返回给主程序的延迟获取模块。
5结论
通过将测量软件用于实验平台进行测试,验证了所选性能测量指标的可用性和测量方法的有效性。特别针对专用网络的具体情况,制定了适合网络承载业务传输的优先级方案,提出了改进网络性能的方案措施,为项目顺利结题打下了基础。在今后的工作中,将根据目标任务书要求,加强故障管理功能研究,并把网络性能测试和故障定位技术推广到新一代自组织网络中。在卫星信道模拟器方面,将把研究具有星际网络的综合性多功能模拟器作为目标。
本文作者的创新点是:(1)试验平台的可变速率设计为网络可用带宽的测试提供了条件;(2)引入卫星信道模拟器,实现大时延信道的TCP/IP传输研究。