作者简介:刘发源(1997—),东南大学硕士研究生.研究方向:互联网管理和安全.E-mail:fyliu@njnet.edu.cn
中文责编:英 子
College of Cyberspace Security, Southeast University, Nanjing 211189, Jiangsu Province, P. R. China
computer network; internet; passive measurement; network performance; packet loss estimation; spurious retransmission
DOI: 10.3724/SP.J.1249.2020.99025
对边界网中的丢包率进行估计有助于网络管理者更好地获悉评估网络性能.以丢包率为切入点,分析现有丢包估计算法在网络边界应用的可行性,并基于标准数据集进行面向准确度的对比分析.在此基础上,发现现有丢包估计算法产生误差的原因是由于伪重传检测的不准确导致,为此提出针对性的解决方法,即通过伪重传的定义对其进行检测.测试结果表明,改进后的丢包估计算法的准确度得到了明显的提升.将改进后的丢包估计算法运用在CERNET和CERNET2南京主节点的4个校园网中,分别测量这4个校园网的IPv4与IPv6的丢包率.结果表明,IPv6网络中的丢包率低于IPv4网络中的丢包率.
Estimating the packet loss rate in the border network helps network managers better understand network performance and achieve effective estimation of network performance. Taking the packet loss rate as an entry point, the research work analyzes the feasibility of the existing packet loss estimation algorithm applied to the network boundary, and conducts an accuracy-oriented comparative analysis based on a standard data set. On this basis, the author locates the cause of the error in the existing packet loss estimation algorithm and proposes a targeted solution. The test results show that the accuracy of the improved packet loss estimation algorithm has been significantly improved. Finally, the improved packet loss estimation algorithm is applied to the four campus networks of the CERNET and CERNET2 Nanjing master nodes, and the IPv4 and IPv6 packet loss rates of these four campus networks are measured respectively. The results show the packet loss rate in the IPv6 networks is lower than the packet loss rate in IPv4 networks.
丢包是评价网络性能的重要测度之一.该测度最早由国际互联网工程任务组(internet engineering task force, IETF)的网络性能工作组(IP performance metric work group, IPPMWG)在对IP性能测度(IP performance metrics, IPPM)进行的规范化定义中提出.丢包首先出现在RFC2680[1]中,现在RFC2680已被RFC7860[2]替代.根据IPPM在RFC7680中给出的定义,丢包指源端在t时刻发送分组P到宿端,若宿端接收到该分组,则t时刻从源端到宿端的丢包为0,否则为1.同时给出丢包率测度的定义,在网络测量中,丢包率指在两台主机的交互过程中,宿端没有成功接收的分组占源端所发送分组总数的比例.根据这些描述,丢包和丢包率均是面向端系统传输行为的测度.
在网络性能测量中,依据是否向网络中注入负载,测量方式可分为主动测量与被动测量[3].对丢包和丢包率的测量,传统的方式是利用使用主动测量方法的探测工具,因其精度较低,测量结果的可用性较差.Barford-Sommer算法[4]可在一定程度上解决精度较低的问题,但该方法在探测过程中的发送报文频率会限制测量的解析度,探测频率过低会无法准确获取网络特征,探测频率过高会改变网络本身的运行情况,此因素导致主动测量无法在实际网络中被大规模应用.另一方面,单个端到端的测量结果对于网络管理者来说并没有太大的价值.文献[5-7]通过在网络边界采用基于TCP流的应答机制来测量丢包率,属于用被动测量手段获取丢包率的算法.这类算法对监测点位置要求较高,因为需要获取完整的TCP流的所有分组,所以监测点只能在网络的边界处,这意味着一般的主干信道的流量无法用于这类算法,因为会受到非对称路由的影响.但在网络边界基于被动方法进行的丢包测量可以面向整个被管网络,因此对网络管理者而言更有意义.
本研究将使用一个标准数据集对现有的、基于被动测量的丢包估计算法进行准确度分析,并尝试改进现有方法来修正误差,提高算法准确率.
论文第1章讨论现有的丢包算法的原理; 第2章完成对现有算法的精确度和误差原因分析; 第3章提出对现有算法的改进方法; 第4章将改进后的丢包检测算法应用到CERNET和CERNET2南京主节点网络中,给出了南京医科大学、南京林业大学、南京工业大学、河海大学4个校园网在相同时间段内IPv4和IPv6网的丢包率.
TCP提供可靠的数据传输服务,为保证传输的正确性,TCP会重传其认定已丢失的数据包.当确认报文丢失后,TCP启动重传操作,重传尚未确认的数据.
文献[7]直接利用监测点处观测到的重传报文作为丢包来统计相应TCP流的丢包率.基于重传估计丢包,重传报文的定义会直接影响丢包率的结果.因此,不能仅仅只根据序列号是否相同判断是否为重传报文.基于TCP协议的数据传输过程中,判断两个报文是否为伪重传报文,要充分考虑两个报文的序列号、应答号、报文负载长度、标志位等信息.若这些信息均相同,则将两个报文中到达时间靠后的报文,被判定为重传报文.
该算法存在的问题是没有考虑到存在未被采集器捕获的报文,这可能导致重传的报文只被捕获过1次,令算法对丢失报文的检测存在一定的遗漏.该算法也未考虑应答方式对丢包的影响,检测规则不完全,导致结果不准确.
1.2 Lan-18丢包算法[8]
Lan-18丢包算法利用TCP流对网络丢包进行了更细致的测量与分析,实现了对监测点前和监测点后丢包更为准确的估计.针对采集点处会存在未被捕获的数据包的现象,Lan-18丢包算法对采集器丢包做了一定的补偿.
对于监测点前丢失的报文来说,当发送端重传丢失的报文时,监测点会捕获到因重传而产生的无序报文.图 1 为一个监测点前报文丢失的示意图.假设源端在发送窗口内发送了一组数据,且在到达监测点前发生了丢包(D6).当源端重新发送丢失的数据包(D6'),无序段D6'将出现在监测点处并填补由D6丢失引起的数据缺失.因此,通过检测这样的无序报文来实现对监测点出的估计.
同时,对某些较早发送的分组比那些较晚发送的分组晚到达监测点的现象,和对于同一发送轮次内的一组数据,位于最后的分组会存在数据包丢失问题,即包重排序(packet reordering, PR)和尾部丢失(tail packet loss, TPL)问题.为应对PR问题和TPL问题,Lan-18丢包算法利用IP报头中的标识字段(IP-ID),采用突发间隙模式[9]和检测重复ACK报文的方法来解决.
分析
利用TCP基准数据集TCP mirror中的基准TCP流数据[10-11],对第1章中的两个算法的准确度进行验证.TCP mirror中的每条基准流数据均是由源点、宿点和采集点同步获取的同一次TCP传输的报文集合,表示为Flow_Trace(C, M, S). 其中, C为在源端获取的该完整TCP流所有报文集合; M为在采集点获取的该完整TCP流所有报文集合; S为在宿端获取的该完整TCP流所有报文集合.每个报文均可获取前120 byte,包括IP头部、TCP头部和少部分数据.
目前基准TCP mirror中共有5 988组数据,其中发生分片的有2 073组,未发生分片的有3 915组.两个算法均只能面向没有发生分片的、完整的TCP传输的报文流进行.
根据RFC7680对丢包和丢包率的定义,可计得在未发生分片的3 915组数据中,发生丢包的是747组数据,未发生丢包的是3 168组数据.对每组发生丢包的数据还可进一步计算出对应的丢包率.
对未发生分片的3 915组数据分别使用基于重传的丢包算法与Lan-18丢包算法,计算丢包率R和实际的丢包率Rreal, 得到丢包情况如表1与表2.比较这两种算法的查全率与查准率,结果如表3和表4.
由表3和表4可见,Lan-18丢包算法在查全率与查准率这两方面均优于基于重传的丢包算法.
对于标准数据集中有丢包发生的747组数据,可以进一步按公式(|Rreal-R|)/(Rreal)计算其实际丢包率与算法估计的丢包率之间的相对误差,并形成累积分布函数(cumulative distribation funetion, CDF)图.图3给出了两个算法相对误差的CDF图.图中横轴代表相对误差的值,纵坐标表示低于该点相对误差值的分组占所有分组的比例.
对于Rreal=0, R≠0时的情况,由于丢包率受TCP流总报文数据的影响,因此按照|Rreal-R|计算这组数据丢包数的绝对误差,并形成CDF图,结果见图4.
综上可见,Lan-18丢包算法对丢包率的计算,准确率要明显好于基于重传的丢包算法.
本节尝试对导致Lan-18丢包算法在某些情况下相对误差过大的问题进行进一步分析.Lan-18所提出的伪重传检测方法,在TCP流采取 SCA与SACK的应答方式时,对于没有丢失的报文,存在一定程度的误判,导致算法准确度下降.且当流经采集点的数据量过大时,需要记录的SACK块数目会大大增加,从而令空间开销大幅增加.
通过分析基准数据,发现导致相对误差过大的原因主要是对伪重传鉴别的不准确.在某一段时间内,由于网络原因,对于某一报文的应答报文S未到达发送端C, 当等待时间超过超时重传的时间后,发送端C重传此报文,造成伪重传,如图5.
根据2.3节的讨论,Lan-18丢包算法的误差源自对伪重传检测的不准确,因此改进算法将尝试消除伪重传的影响.
由于本研究假设分析的数据来源不会受到非对称路由影响的网络边界,因此可通过应答报文与伪重传的定义对伪重传报文进行检测.
在发生采集器报文丢失时,对于未捕获的报文,若发生了伪重传,该报文在捕获的过程中只出现了1次,会被判定为监测点前丢失的报文.因此,伪重传的检测也要考虑到采集丢包的情况.
测量伪重传的方法如下:当最新的应答报文A出现时,将原有的ackresent赋给ackpass,记录报文A的ack值为ackresent.当非应答报文S到达检测点时,记录S的序号seq值.若seq<ackresent时,且报文S为重传报文,则判定为伪重传报文; 否则, seq≤ackpass时报文S也为伪重传报文,且存在采集器丢包现象.
改进后伪重传检测算法流程如图6.
CERNET2丢包率对比
使用改进的Lan-18丢包算法基于在CERNET和CERNET2南京主节点边界同步获取的IPv4与IPv6流量,对主节点网内南京医科大学(A)、南京林业大学(B)、南京工业大学(C)、河海大学(D)4个高校的校园网进行丢包率测量.由于硬件平台的限制,实验数据采用轮转方式获取,每个校园网的数据采集时间是48 h,实验持续8 d,在2个时间段中进行.以5 min为一个单位时间获取流量并计算丢包率,每2 h获取一次,这样每个校园网共获取24个单位时间的数据.校园网A的数据获取时间为2020- 07-24和2020- 07-25数据; 校园网B的数据获取时间为2020- 07-26和2020- 07-27数据; 校园网C的数据获取时间为2020- 09-26和2020- 09-27; 校园网D的数据获取时间为2020- 09-28和2020- 09-29.
由于Lan-18丢包算法是为IPv4网络的丢包设计的,在使用改进后的Lan-18丢包算法计算IPv6的丢包率时,应先解决IPv6网络中PR问题的检测.方法为记录无序报文到达监测点的时间,若与上一个到达的报文相比,到达时间的差值小于突发间隙模式计算出的RTO时间,则认为该无序报文是PR现象引起的.这样IPv6网络中检测PR报文流程如图9.
用改进后的Lan-18丢包算法分别计算4个校园网的IPv4网络与IPv6网络单个单位时间内每条流的丢包率,再利用式(1)计算单个单位时间内总的丢包率.结果如图 10.
单位时间总丢包率=(单位时间丢失报文总数)/(单位时间报文总数)(1)
本研究通过改进Lan-18丢包算法,提高了该算法对伪重传报文检测的准确率.改进后的Lan-18丢包算法的非丢包的查全率和丢包时的查准率都得到了较大提升.同时,每条TCP流的丢包率计算的精度也得到了提高,节省了算法所需的空间,提高了算法的处理速度.针对IPv6报文头部的特点,改进了Lan-18丢包算法的适用性,使其在IPv6网络中也可以正常使用.
分析4个校园网的IPv4与IPv6网络丢包率变化趋势发现,IPv4网络与IPv6网络的丢包率均随时间的变化而变化.校园网在每天12:00—24:00丢包率处于较高水平,在2:00—10:00期间丢包率处于较低的水平.对比每个校园网的IPv4与IPv6网络的丢包率,IPv6网络的丢包率要明显低于IPv4的丢包率,这说明IPv6网络的IP性能要强于IPv4网络.
深圳大学学报理工版
JOURNAL OF SHENZHEN UNIVERSITY SCIENCE AND ENGINEERING
(1984年创刊 双月刊)
主 管 深圳大学
主 办 深圳大学
编辑出版 深圳大学学报理工版编辑部
主 编 李清泉
国内发行 深圳市邮电局
国外发行 中国国际图书贸易集团有限公司(北京399信箱)
地 址 北京东黄城根北街16号
邮 编 100717
电 话 0755-26732266
0755-26538306
Email journal@szu.edu.cn
标准刊号 ISSN 1000-2618
CN 44-1401/N