互联网络TCP单向时延被动测量方案


打开文本图片集

摘要:NAT协议会修改IP协议和TCP协议的协议头,从而无法有效的检查发送的数据包和接收到的数据包的一致性,导致被动测量单向网络性能指标失效。本论文通过对被动抓取的数据包的IP和TCP协议头进行修改,再对整个数据包计算摘要的,来确定发送数据包和接收数据包的对应关系。同时修改了单向时延的计算方法,加入了类似滑动窗口的技术,能够支持大规模的抓包数据的单向时延计算。用该方法对网络单向时延设计了测量方案,对实际网络进行了长时间的测量,证明了该方法的有效性。

关键词:计算机网络;网络性能测量;单向网络时延;NAT;被动测量

中图分类号:TP393.0

文献标识码:A

0 引言

截至2013年12月,我国网民规模达6.18亿,全年共计新增网民5358万人。互联网普及率为45.8%。由于网络的飞速发展和快速普及,人民生活和网络的关系变得紧密。网络游戏、网络社交、网上购物、网上支付、网络视频等各种形式多样的网络应用,使得人民的生活更加方便快捷、更加丰富多彩,人民的生活质量得到了很大的提高。而所有这些网络应用的基础是以TCP/IP协议为基础的互联网。

如何进行有效的监测网络运行状况,国内学者已经有较多的研究,形成了很多学术的分支。基于模式识别技术对网络流量进行分类、基于SNMP++实现网络管理软件和基于硬件网络探针测量网络质量等等,对网络从不同的角度进行了监测。本论文关注网络性能指标的测量。

网络性能的优劣直接关系到网络服务质量的高低。随着网络业务的快速发展,网络负荷越来重,服务质量严重下降。6亿人每个人等待1秒,就节约了6亿秒,约19年。由于互联网的使用人数的庞大,即使是网络性能上的微小的提升,也将节约巨大的资源。

网络性能测量是一种定量研究和分析网络运行状况的技术。网络性能测量,测量目的是了解网络的运行状态和业务质量,为网络性能优化、网络运行管理提供依据,为网络理论和技术的研究提供数据参考。

本文主要研究使用被动测量的方法,测量TCP包的单向时延。TCP包是TCP/IP协议中最重要的组成部分,对TCP包进行有效的测量,是网络测量的重点。由于上行网络和下行网络是非对称的,所以往返延时无法准确的说明上下行网络各自的网络状况。使用被动测量的测量方式,是为了尽量少的对测量网络中的产生人为影响,从而尽可能得到网络运行的真实情况的。

1 单向时延基本概念

P型分组单向时延:对于实数dT,在时刻T从源主机Src到目的主机Dst的P型单向时延“Type-P-One-way-Delay”为dT,是指在T时刻源主机Src发送了P型分组的第一个比特,而在T+dT时刻,目的主机接收到了该分组的最后一个比特。

端到端时延主要分为四个部分,处理时延、传输时延、传播时延、排队时延。处理时延主要是指网络交换的时延,主要指是路由器处理的路由解析的时延。传输时延是发送节点发送的第一比特到发送最后一比特所经历的时间。传播时延是传输链路上第一比特发送的到该比特被接收的时间。排队时延是指发分组在缓冲区中滞留的时间,也即在被处理和发送前的等待时间。

2 功能模块划分

探针:部署在被测量主机或者相同网络,利用libpcap实现对数据包的抓取。

控制台:控制和协调探针抓包,收集抓包数据,计算单向时延指标。

3 测量流程

测量开始时,测量控制台连接探针。发送过滤模式,使得探针抓取特定的数据包,抓取相应的数据包,为每一份抓到的数据包保留分析需要用到的信息。测量结束时,两端的探针把这些数据信息发送给控制台。控制台根据双方传回的数据,进行计算,得出性能指标。

3.1获取抓包过滤模式

过滤模式的作用提供给libpcap,对抓取的数据包进行过滤的。端到端的网络测量的过滤模式需要包括对端的IP地址。NAT的作用使得过滤模式不能包括抓包探针自身的IP地址。为测量TCP性能指标,过滤模式中要指定包括数据包类型TCP。

由于在被测网络中,有的探针被部署在和其他探针隔离的局域网中,通过路由器的NAT转换后才能到达其他的探针,所以其他探针为了得知局域网中的探针的对外的IP地址,需要让局域网中的探针主动的连接局域网外的探针。

(1)控制台分别连接探针A、探针B

(2)控制台分别给探针A和探针B发送模式包,其中包给探针A的模式包中含了探针B的IP地址,而给探针B的模式包不包含探针A的IP地址。

(3)探针B检测到收到的模式包没有A的IP地址,就会找一个端口进行监听,并且把成功监听的端口发给控制台。控制台接收到探针B的监听端口,就将此端口发给探针A。

(4)与此同时,探针A检查收到的模式包有B的IP地址,就会等待控制台,以得到探针B的监听端口。探针A接收到控制台转发的探针B的监听端口,就向探针B的监听端口发起连接。

(5)探针B收到探针A连接,即可获取探针A的外网地址。

3.2探针抓包及处理

探针A和探针B分别得到了自己的过滤模式之后,开始抓包。探针A和探针B抓包和处理的过程相似,下面只说明探针A的处理过程。

(1)检验抓取数据包的有效性,对每一层协议的包头长度进行有效性检验。

(2)确定方向。由于这些抓的数据包是经过了模式过滤的,所以这些数据包不是从探针A到探针B,就是从探针B到探针A的,这两种可能性。由于探针A自己的IP可能经过NAT转换,所以不能作为判断依据。只能将探针B和数据包的源IP和目的IP做比较,得出数据包是发送数据包或接收数据包。

(3)获取摘要。为了节约资源和方便后续的处理,需要将数据包进行摘要。在获取摘要中,需要保留尽可能多的有用字段,去除所有干扰字段。主要的干扰字段是路由器NAT转换导致的。这里抹掉了以太网协议的包头、IP协议的包头、TCP协议包头中除了序列号和ACK字段的其他所有部分。所以,在目的端对于TCP超时重发的数据包,是无法得知这些重发数据包的原本的先后顺序。

(4)最后一个数据包得到一组摘要、方向、长度、时间戳,首先将其存储在内存中。到达一定的阀值后将其存储到磁盘文件中,从而兼顾效率和处理规模。

4.2单向时延分段△t的取值和时间复杂度

计算的时间复杂度为n(Tr2-Tr1)/(Ts2-Ts1),所以对于△t的选取。△t的上限是内存中一次能够载入△t的数据包的数量。当满足公式(6)时,时间复杂度为n。

△t>>△tL+△tmg-△tml (6)

4.3无法计算单向时延的情况

对于重复发送的数据包或者只发送一次但是丢失了的数据包,都不计算时延。对于发送了一次丢失了的数据包,无法计算准确的时延。对于重复发送的数据包,如果都丢失了,显然也无法计算时延。即使重复发送的数据包,全部收到,也是没法算时延的,因为无法确定接收数据包和发送数据包的对应关系。所以,重复的数据包也不计算时延。

5 结论

本文给出了一种有NAT修改TCP数据包协议包头的情况下,仍然能够进行被动网络性能测量的解决方案,并且通过分布式的方案解决了大范围测量的问题,同时对抓包数据进行了摘要处理,能够有效减少数据传输,并且使用C/S架构,能够实现长时间的连续测量。

推荐访问:互联网络 被动 测量 方案 时延