随着中国移动各种数据业务的开展,对于端到端用户的服务质量保证得到了越来越多的重视。很多业务的开展都要得到足够的端到端可用带宽的保证,对于运营商来说,核心运营网络优化工作的基础必然是基于端到端的带宽测量。对现有实际带宽容量的测量不仅对于评估网络工程质量有一定的意义,而且还影响到网络扩容以及资源利用率。市场上现有网管产品在带宽测量上功能较单一,价格也非常昂贵,不适合集中网管的要求。针对这一需求,目前在中国移动数据综合网管二期项目中已经部署了Ping时延拨打测试的模块,该模块主要用于对数据设备和业务主机是否在线进行测试,并且获取端到端的时延情况。
在这种情况下,山西移动利用现有的网管模块,提出了一种利用Ping拨打测试来实现数据网端到端带宽测试的方法。这种方法应用了流量工程里的可变包长探测的方法,能够实现端到端路径上每一跳(hop)的带宽估计。值得一提的是,只要对网管系统拨打测试模块进行较少改造即可实现这一测试方法,因此性价比十分优越。
1、改进探测方法
1.1可变包长探测方法
可变包长探测方法利用了Ping测试的结果,主要是为了测试路径上每一跳的容量带宽。网络管理员可以直接读取路由器或者交换机的端口信息来获取这类信息,但是对于端到端的网络容量以及未在管理范围内的网络容量就无从得知了,而且在实际网络环境下,理论的端口信息与实际带宽容量相差较大。另外,最终用户和服务提供商只能通过带宽估计而无法直接获取网络容量参数。对于工程上的线路质量和网络瓶颈这类问题,运营商也只能通过带宽估计来发现,这在实际网络环境中有很大的不便。
可变包长探测主要是从源端到路径上的任一设备发送不同大小的包,通过计算往返时延与包大小的函数关系来获取路径各段带宽容量的方法。具体来说,首先利用IP包头的TTL域(工作原理和常用的Tracerouter工具一样),强制包在一个特定的跳上超时。这一跳的路由器将丢弃该探测包,并利用Internet控制消息协议(ICMP)的超时错误报文发回源设备。源设备就获取到了路径设备信息,然后就可以发送Ping测试包,通过接收到的ICMP报文计算出到这一跳的往返时延。
往返时延由三部分组成,第一部分是数据包被发送到线路上的时延,这部分时延和包的大小有关,假如数据包的长度为L,带宽为C,则发送时延为T=L/C;第二部分是信号的传输时延,在数量级上目前基本上都达到了光速级别,与包的大小无关,只要不改变路径,这部分时延就不会改变;第三部分是排队时延,主要与路由器交换机的缓存有关,由于网络内数据包的数量很多,可能会在某个路由器缓存内排队等待发送,这种现象将导致排队时延。
可变包长探测方法就是从源设备端节点向路径上的每一个三层设备发送大小固定的很多包,该方法假设至少有一个包可以避免排队时延,那么该往返时延肯定是不包含排队时延的。因此,我们可以认为在这些包中具有最小往返时延的包只包含了发送时延和传输时延。我们设定发送L长度的数据包时,第i跳最小的往返时延为Ti(L):
(1)
这里Ck是第k跳的容量,ɑ是与包大小无关的时延,βi是该一次函数的斜率,。因此有:(2)
这就是可变包长探测方法的数学表达,即通过求出某一跳所在两个设备的往返时延函数的斜率,从斜率上计算出该跳的容量带宽。
在对Ping拨打测试模块改造的基础上,我们进行了现网测试,得到的测试结果如图1所示。该测试是对网内某台三层交换机进行拨打测试,包的大小从100字节增至1400字节(注意最大字节数不能超过硬件设备的最大传输单元,否则将导致硬件拆包重组),增长步长为100字节,每次测试32个包,如果网络较忙,一般采用128个数据包进行统计。经过测试发现,随着包的大小线性增加,最小往返时延也呈线性递增状态。
图1
最小往返时延趋势将数据进行线性拟和得到最小往返时延趋势拟和线,即可获得当前的βi。通过这一系列的β值,我们可以利用公式(2)计算出路径上各段的带宽容量。
按照公式(2),我们在省级CMNET网络和山西省某地市网络进行了测试,按照常见的网络环境,可以得到表1的测试结果。将结果与现网历史端口流量的统计结果进行对比,表明了可变包长测试方法能够测试出实际的网络带宽容量,但是由于存在某些网络环境并不是完全符合理论要求,因此第3个测试结果应该小于实际的带宽容量。
序号 | 理论带宽 | 测试带宽 | 网络环境说明 |
1 | 100 Mbit/s | 41 Mbit/s | 3个信息点机架转接 |
2 | 100 Mbit/s | 83 Mbit/s |
直接 |
3 | 100 Mbit/s | 34 Mbit/s | 存在2层交换机 |
4 | 2.5 Gbit/s | 1 536 Mbit/s | SDH |
5 | 1 Gbit/s | 319 Mbit/s | — |
表1带宽估计测试表
序号理论带宽测试带宽网络环境说明
1100Mbit/s41Mbit/s3个信息点机架转接
2100Mbit/s83Mbit/s直接
3100Mbit/s34Mbit/s存在2层交换机
42.5Gbit/s1536Mbit/sSDH
51Gbit/s319Mbit/s—
虽然如此,通过分析端到端的各段网络带宽估计结果,我们还是可以得出网络瓶颈所在,以及网线布放工程的质量问题,这对于优化数据网络还是很有意义的。
1.2可变包长探测方法的缺陷
可变包长探测方法建立在以下前提上:第一,假设路径上所有的设备都是工作在三层的存储转发机制,并支持生存时间(TTL)机制;第二,要求路由采用单通路;第三,路径较空闲,最小往返时延不包含排队时延。可以看出,第一个前提条件对于实际网络最为苛刻,第三个假设则可以通过大量采样来实现。经过多次测试,我们发现第一个条件之所以难以满足主要是由于在接入端网络有一些未配置IP地址的二层的设备,这些设备工作在二层,不能支持TTL机制,导致往返时间不能去除由于这一跳带来的发送时延。
在现网测试环境下,我们发现网络设备对ICMP的响应速度也有区别。部分网络设备在操作系统软件的设计上,把ICMP包作为低级别的包进行响应,因此在测试包数量较少而网络负荷较高时,ICMP包很有可能存在排队时延。这时必须通过加大测试包的数量来解决该问题,但是由于数据网管开发商的技术水平以及投入成本问题,微秒级计时存在较大的缺陷,也影响了测试结果。
2、其他常用测试方法
目前还有其他的带宽估计方法,下面简单介绍三种。
2.1PPTD(PacketPair/TrainDispersion)
PPTD是目前比较著名的一种测试方法,该方法是测量端到端的整体带宽容量。PPTD方法的原理是在源端发送有固定时间间隔的一对大小相同的数据包,然后在收端测量这两个包的时间间隔,通过这个时间间隔可以推算出端到端的容量。该方法要求网络中没有其他的干扰流量,这在实际网络环境中基本上不可能实现,因此需要多次测量,将那些受到干扰的测量包过滤掉。这种方法需要两端同时进行测量,如果在数据网管中使用,其部署代价是巨大的,可以在极为关注的端到端部署(例如SP与短信网关的端到端质量分析,或者SP与WAP网关的连接带宽测试等)场合下应用。
2.2SLoPS(Self-LoadingPeriodicStreams)
Self-LoadingPeriodicStreams(SLoPS)是另一个常用带宽估计方法,该方法是测量端到端的可用带宽。SLoPS也是从源端发送数据包到目的端,其原理是当测试数据流量速率大于可用带宽时,目的端包的时延将呈上升趋势,在测试数据流量速度近似可用带宽时,时延将是较平稳的。该方法是通过不断发送测试数据来进行流量估算,因此对网络资源的占用较大,还会对现网的正常业务性能造成影响。
2.3TOPP(TrainsofPacketPairs)
该方法与SLoPS方法类似,不仅可以测量端到端的可用带宽,而且还可以估算出当前路径的容量带宽,但是该方法也需要发送大量的探测包,对网络的占用较大,在实际网络测试中需要付出较大的代价并具有一定的危险性。
3、结语
文章阐述了数据综合网管系统如何利用Ping拨打测试来实现对网络带宽的估计,并且给出了实际省级网络的测试结果。其结果表明该方法简单可行,对数据网络优化有积极的意义。文章最后介绍了目前较流行的一些网络带宽估算方法,对于其可行性以及可能的使用范围进行了分析。在后续工作上,过单向时延分析可以极大地提高网络带宽分析的准确性,这在运营商进行网络推广更有意义。