System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种可编程网络业务单跳传输丢包率测量方法技术_技高网

一种可编程网络业务单跳传输丢包率测量方法技术

技术编号:40665049 阅读:5 留言:0更新日期:2024-03-18 18:59
本发明专利技术公开了一种可编程网络业务单跳传输丢包率测量方法,先通过在上下游交换机上部署特定的数据结构,然后利用上下游交换机的协同机制,在下游交换机实时的发现可能产生丢包的业务流,并记录其流ID,然后在上下游交换机上针对这一部分业务流进行细粒度统计,得到在单跳上产生丢包的业务流的丢包率。

【技术实现步骤摘要】

本专利技术属于网络测量,更为具体地讲,涉及一种可编程网络业务单跳传输丢包率测量方法


技术介绍

1、近年来,随着虚拟化技术的广泛运用和云计算等新兴应用模式的发展,再加上互联网在线业务的用户数量急剧增长,网络中传输的数据量呈现出爆炸式的发展趋势。庞大的数据流量容易使网络中突发网络拥塞,拥塞常常会导致丢包,直接引起网络的整体性能下降,包括流完成时间降低、链路利用率降低等,严重时甚至可能导致网络无法正常运行,严重影响用户体验以及运营商收益。在数据量增长的同时,网络的规模和网络中各种软硬件资源和关键业务系统也在急速增加。然而网络故障是不可避免的,包括但不限于硬件故障,其通常的表现就是网络业务产生丢包。在庞大的物理结构中定位故障位置和诊断故障原因是具有挑战性的,通常运营商需要数十小时来确定故障发生在何处,以及哪些流量受到了影响,并最终确定故障的根本原因。因此,及时、准确的测量单跳上业务的丢包率可以帮助运营商确定故障的根本原因并修复,最大限度地减少丢包对于应用程序和网络性能的不利影响。

2、常用的丢包率测量手段往往依赖于特定的协议或者专用的硬件设备,诸如基于icmp协议的ping和traceroute方案,这些方案往往无法完成业务级的丢包率测量。还有一些高级的丢包率测量方案需要专用硬件设备的支持,这可能会使得实施这些方案的成本变得较高。由于这些限制,有必要寻求适用于各种协议、无需专用硬件的解决方案,并能够以经济实惠的方式提供业务级别的测量精度的丢包率测量方案。

3、而近些年可编程网络尤其是可编程网络硬件的发展为丢包率测量提供了新的可能,可编程网络硬件允许网络管理员在数据平面根据具体需求自定义网络流量的处理方式,从网络流中采集相应的信息,这一技术带来了更灵活、更精确的丢包率测量手段,使得在各种网络环境中更容易实施业务级别的测量。但是,业务级别的测量往往会消耗网络设备的硬件资源,而可编程网络硬件的硬件资源十分有限。


技术实现思路

1、本专利技术的目的在于克服现有技术的不足,提供一种可编程网络业务单跳传输丢包率测量方法,利用可编程网络硬件及时准确的发现产生丢包的业务流并进行细粒度统计,尽可能的减少对硬件资源的消耗。

2、为实现上述专利技术目的,本专利技术一种可编程网络业务单跳传输丢包率测量方法,其特征在于,包括以下步骤:

3、(1)、数据结构部署;

4、(1.1)、在上、下游交换机上部署d行的粗粒度计数数据结构cm sketch,在每一行上部署w个计数器,计数器从左到右依次标记为0、1、…、w-1;同时,在每行部署一个哈希函数,每个哈希函数的结构不同,每行的哈希函数记为h1、h2、h3、…、hd,每个哈希函数计算得到的哈希值为区间[0,w-1]内的整数,且与计数器编号一一对应;

5、(1.2)、在上游交换机部署2行的细粒度计数数据结构哈希表,第一行用于存储流id,第二行用于存储数据包个数;另外,在每一行上部署m个计数器,计数器从左到右依次标记为0、1、…、m-1;在每行上部署相同的哈希函数h,哈希函数计算得到的哈希值为区间[0,m-1]内的整数,对应着标号为哈希值的计数器;

6、(1.3)、在下游交换机部署3行的细粒度计数数据结构哈希表,第一行用于存储流id,第二行用于存储到达下游交换机的数据包个数,第三行用于存储检测到的链路丢包数;在每行上部署m个计数器,计数器从左到右依次标记为0、1、…、m-1;在每行上部署相同的哈希函数h,哈希函数计算得到的哈希值为区间[0,m-1]内的整数,对应着标号为哈希值的计数器;

7、(2)、基于数据结构的业务流进行细粒度统计;

8、(2.1)、初始化数据结构;

9、(2.2)、当上游交换机接收到数据包时,先解析数据包,提取数据包的帧头和流idf,如果数据包的帧头类型与自定义数据包的帧头类型不同,则执行步骤(2.3);反之,判定接收到数据包为自定义数据包,然后执行操作(2.8);

10、(2.3)、调用上游交换机中的哈希函数h,将流id作为哈希函数h的输入,并进行哈希计算,得到哈希值h;

11、将哈希值h作为索引在上游交换机的哈希表中进行查询,将查询位置处的数值与流id进行比较,如果二者不一致,查询失败,则执行步骤(2.4);如果一致,查询成功,则执行步骤(2.6);

12、(2.4)、调用上游交换机中的哈希函数h1、h2、h3、…、hd,将流id分别作为哈希函数h1、h2、h3、…、hd的输入,并进行哈希计算,得到哈希值h1、h2、h3、…、hd;

13、将哈希值h1、h2、h3、…、hd作为索引操作位于cm-sketch中每行的对应计数器的计数值+1,然后添加标记此业务流在cm-sketch中计数的标签sketchflag;

14、读取cm-sketch中每行的计数值upstreamsketchdata-1、upstreamsketchdata-2、…、upstreamsketchdata-d,以及标签sketchflag,将其全部写入数据包的包头中,然后下发至下游交换机,进入步骤(2.5);

15、(2.5)下游交换机接收到该数据包后,解析数据包,提取数据包的流id、标签sketchflag以及计数值downstreamsketchdata-1、downstreamsketchdata-2、…、downstreamsketchdata-d;

16、然后调用下游交换机中的哈希函数h1、h2、…、hd,将流id分别作为哈希函数h1、h2、…、hd的输入,并进行哈希计算,得到哈希值h1、h2、h3、…、hd;

17、将哈希值h1、h2、h3、…、hd作为索引操作位于cm-sketch中每行的对应计数器的计数值+1;

18、依次比对更新前后cm-sketch中每行的计数值,若对应位置处的计数值都不一致,则生成一个自定义的数据包,将当前流的流id写入数据包包头中发往上游交换机,当前业务流的数据包则根据流表正常转发,跳转至步骤(3);反之,不生成自定义的数据包,直接根据流表转发当前数据包,然后,跳转至步骤(3);

19、(2.6)、根据哈希值h操作对应计数器的计数值+1,并添加标记此业务流在哈希表中计数的标签hashtableflag,之后读取哈希表中的计数值hashtabledata以及标签hashtableflag,将其全部写入数据包包头中发往下游交换机,执行步骤(2.7);

20、(2.7)、下游交换机接收到该数据包后,解析数据包,提取数据包的流id、hashtableflag以及hashtabledata;

21、然后调用下游交换机中的哈希函数h,将流id作为哈希函数h的输入,并进行哈希计算,得到哈希值h;

22、将哈希值h作为索引操作哈希表每行中的对应位置的计数器,第一行的计数器令其计数值等于流id,第二行的计数器令其计数值+1,第三行本文档来自技高网...

【技术保护点】

1.一种可编程网络业务单跳传输丢包率测量方法,其特征在于,包括以下步骤:

【技术特征摘要】

1.一种可编程网络业务单跳传输丢包率...

【专利技术属性】
技术研发人员:熊俊超王雄任婧王晟徐世中
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1