CN103986622A - 一种基于多核技术的网络吞吐率并行化测量方法 - Google Patents
一种基于多核技术的网络吞吐率并行化测量方法 Download PDFInfo
- Publication number
- CN103986622A CN103986622A CN201410228009.8A CN201410228009A CN103986622A CN 103986622 A CN103986622 A CN 103986622A CN 201410228009 A CN201410228009 A CN 201410228009A CN 103986622 A CN103986622 A CN 103986622A
- Authority
- CN
- China
- Prior art keywords
- packet
- core
- packet loss
- network
- speed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于多核技术的网络吞吐率并行化测量方法,包括步骤:确定串行吞吐率测试方法流程;将整个测试流程当作总任务,并进行任务分解得到多个子任务;对这些子任务进行并行化分析,分别从功能和数据方面将目标分为任务流和数据流,对任务流和数据流进行任务分配,采用N分法和细粒度法进行测试处理,以达到实现对高速网络性能指标的测量以及提高测试效率的目的。本发明对现有的单核串行式的网络吞吐率测试方法进行了改进,引入了多核技术,充分利用并行化的优势,实现网络吞吐率的准确高效测试。
Description
技术领域
本发明涉及多核技术和网络测量技术,具体是基于多核技术的网络吞吐率并行化测量方法。
背景技术
截至2013年12月,中国网民规模达6.18亿,互联网普及率为45.8%,这就意味着网络已经成为了人们工作和生活中必不可少的一部分。当今互联网的行为特征和性能表现成为了网络维护和运营的重要环节。为了提高网络服务质量、推动互联网和信息基础结构发展,需要对网络的性能指标进行提取和分析。这些指标包括网络的吞吐率、带宽、时延以及丢包率等。网络或设备的最大可承受能力也就是吞吐率,成为了衡量性能好坏的一个非常重要的参数。吞吐率是指网络互连设备如交换机,路由器等的最大报文处理和转发速率。
当前网络吞吐率的测试方法是:以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。
然而对于吞吐率数量级在10Gbps及以上的高速网络而言,传统的串行发包以及数据包接收方式很难满足如此大的数据吞吐率要求。因此从某种程度讲,串行的处理模式会极大制约整个测量方法的性能,所以将串行的处理模式转变为并行的处理模式,可以弥补串行协议栈性能上的不足。
发明内容
针对以上现有技术中的不足,本发明的目的在于提供一种发包速率快、测试效率高的方法,本发明的技术方案如下:一种基于多核技术的网络吞吐率并行化测量方法,包括以下步骤:
101、将网络吞吐率测量任务分为若干个测量子任务,设定测试初始帧长为A1,并在网络的发送端和网络的接收端采用N核设备来发送和接收测量子任务,所述N核设备包括一个总核和N-1个分核,所述N-1个分核包括核1,核2,核3……核N-1,将若干个测量子任务分别通过任务映射的方式第一次映射给N-1个分核,所述核1,核2,核3……核N-1分别以速率V1,V2,V3……VN-1发送C1,C2,C3……CN-1个数据包给网络的接收端,网络的接收端接收到的数据包数目是N1,N2,N3……NN-1,,然后与发送的数据包数目C1,C2,C3……CN-1作比较判断是否丢包,设以速率Vi发包时Ni=Ci,V1~Vi发包时不丢包,i=1…N-1,以速率Vi+1发包时Ni+1<Ci+1丢包;
102,再将若干个测量子任务分别通过任务映射的方式第二次映射给N-1个分核,所述核1,核2,核3……核N-1分别以速率V1'=[Vi+1-Vi]/N,V2'=2[Vi+1-Vi]/N……VN-1'=(N-1)[Vi+1-Vi]/N发送C1',C2',C3'……CN-1'个数据包给网络的接收端,网络的接收端接收到的数据包数目是N1',N2',N3'……NN-1',然后与发送的数据包数目C1',C2',C3'……CN-1'作比较判断是否丢包,设以速率Vj'发包时Nj'=Cj',j=1…N-1',Vj+1'发包时Nj+1'<Cj+1';当第二次测量判断为丢包时,则将第二次的发包速率和第一次判断为不丢包时的发包速率之和的平均值作为下次发包速率;当本次测量判断为不丢包时,则将第二次的发包速率和第一次判断为丢包时的发包速率之和的的平均值作为下次发包速率;
103,当第一次丢包第二次不丢包或第一次不丢包第二次丢包所对应的发包速率之差绝对值在1-10Mbps数量级之间时,停止N分法,开始采用细粒度法,将N-1个分核的发包速率分别调整为V1''=[Vi+1-Vi]/N+Vj',V2''=2[Vi+1-Vi]/N+Vj'……VN-1''=(N-1)[Vi+1-Vi]/N+Vj',开始进行下一轮测试;
104,若下轮测试为本次丢包,且本次丢包对应的发包速率与上次不丢包对应的发包速率之差<0.1Mbps,则测试结束,取本次发包速率作为吞吐率测试值;若本次不丢包,且本次不丢包对应的发包速率与上次丢包对应的发包速率的差值<0.1Mbps时,则测试结束,取本次发包速率作为吞吐率测试值;若连续五次差值都大于0.1Mbps,则取这五次发包速率的平均值作为吞吐率测试值。进一步的,步骤101中的初始帧长A1包括64B或128B或256B或512B或1024B或1280B或1518B。
进一步的,步骤101中的数据包类型包括TCP数据包或UDP数据包或ICMP数据包。
进一步的,步骤104中的吞吐率测试值均为空载状态下,双向全双工模式下的测试值。
本发明的优点及有益效果如下:
本发明采用基于多核技术实现了一种网络吞吐率的并行化测量方法,可以改善传统单核设备发包速率相对较慢、测试效率较低等问题。通过将多核多线程技术引入到网络测量领域,可以对网络设备性能测试提供更好的支持。
附图说明
图1为本发明的串行吞吐率测试方法流程图;
图2数据包发送和接收过程;
图3任务并行化流程图;
图4串行协议栈模型;
图5并行协议栈模型。
具体实施方式
下面结合附图给出一个非限定性的实施例对本发明作进一步的阐述。
参照图1-图5所示,图1是本发明实施例的一种串行吞吐率测试方法的流程图,包括如下步骤:
步骤101,发送数据帧,发送速率为V1,帧长64B,初始发包速率为10Mbps,检测发包数量是否与收包数量相等。若相等,则下次发包速率调整为更高一级数量级,即100Mbps;若收包数量小于发包数量,则下次发包速率调整为更低一级数量级,即1Mbps。由此可确定吞吐量的数量级位于10n-10n+1bps之间。
步骤102,将发包速率调整为(10i+10i+1)/2,继续统计收包数量和发包数量。当本次测量反馈为丢包时,则将本次发包速率和上次不丢包速率平均值作为下次发包速率;当本次测量反馈为不丢包时,则将本次发包速率和上次丢包速率平均值作为下次发包速率。我们称该阶段发包方法为二分法。
步骤103,当两次的丢包与不丢包的发包速率之差绝对值在1-10Mbps数量级之间时,停止二分法,开始采用细粒度法。细粒度法,即本次测量若丢包,则用该次测量发包速率乘以0.9作为下次发包速率;若本次测量不丢包,则将该次测量发包速率乘以1.1作为下次发包速率。
步骤104,若出现下列情形之一,则测试结束,取该次发包速率作为吞吐率测试值。C1:若本次丢包,且与上次不丢包速率之差<0.1Mbps;C2:本次不丢包,且与上次丢包速率的差值<0.1Mbps;C3:连续五次都大于0.1Mbps,则取这五次速率的平均值作为最终的吞吐量测试结果。S5:将测试帧长设定为128B,256B,512B,1024B,1280B,1518B,按照上述S1-S4重新进行测试。对于同一帧长的每组实验,设定测试时间为120秒。
图2是本发明实施例的数据包发送和接收过程示意图,包括如下步骤:
步骤201,主机CPU检查网卡是否有足够的缓冲区空间存储待发送的数据包。
步骤202,主机CPU拷贝内存缓冲区中的MAC数据包到网卡的缓冲区中。
步骤203,网卡将缓冲区内的MAC数据包封装成帧,添加头部信息,然后传送到以太网中,然后网卡设备产生一个发送中断,随即进入中断处理程序,清除缓冲区内的数据包。
步骤204,数据帧经过交换机由发送端传递到接收端,被网卡芯片获取之后进行校验。若经检验为正确的数据帧,则将物理帧头部去掉得到MAC数据包。然后网卡会检查MAC数据包的目的地址是否与网卡MAC地址一致,如果一致,则拷贝到网卡缓冲区中,若不一致则丢弃。
步骤205,网卡接收到数据帧后会产生一个接收中断,通知主机数据包的到来,CPU开始进行接收中断处理。
步骤206,CPU在主机内存中分配出缓冲区用来存放数据包。
步骤207,网卡驱动通过中断服务程序将网卡缓冲区中的数据包拷贝到系统的内存缓冲区中。
步骤208,协议栈去掉MAC数据包头,最终得到数据包。
图3是本发明实施例的任务并行化流程图,包括如下步骤:
步骤301,将网络吞吐率测试认为是总任务,通过具体分析后进行任务分解,形成n个子任务。
步骤302,对这n个子任务进行并行化分析,形成了一个并行架构;每个任务都有自己所属的核心和处理模块。
步骤303,将这些子任务的传送结果进行数据合并,形成最终的总测试结果。
图4是本发明实施例的串行协议栈模型,底层负责数据收集,然后经过协议栈传给上层协议分析及参数反馈与调节模块。
图5是本发明实施例的并行协议栈模型,采用多个串行的协议栈共同处理数据包。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明方法权利要求所限定的范围。
Claims (4)
1.一种基于多核技术的网络吞吐率并行化测量方法,其特征在于,包括以下步骤:
101、将网络吞吐率测量任务分为若干个测量子任务,设定测试初始帧长为A1,并在网络的发送端和网络的接收端采用N核设备来发送和接收测量子任务,所述N核设备包括一个总核和N-1个分核,所述N-1个分核包括核1,核2,核3……核N-1,将若干个测量子任务分别通过任务映射的方式第一次映射给N-1个分核,所述核1,核2,核3……核N-1分别以速率V1,V2,V3……VN-1发送C1,C2,C3……CN-1个数据包给网络的接收端,网络的接收端接收到的数据包数目是N1,N2,N3……NN-1,,然后与发送的数据包数目C1,C2,C3……CN-1作比较判断是否丢包,设以速率Vi发包时Ni=Ci,V1~Vi发包时不丢包,i=1…N-1,以速率Vi+1发包时Ni+1<Ci+1丢包;
102,再将若干个测量子任务分别通过任务映射的方式第二次映射给N-1个分核,所述核1,核2,核3……核N-1分别以速率V1'=[Vi+1-Vi]/N,V2'=2[Vi+1-Vi]/N……VN-1'=(N-1)[Vi+1-Vi]/N发送C1',C2',C3'……CN-1'个数据包给网络的接收端,网络的接收端接收到的数据包数目是N1',N2',N3'……NN-1',然后与发送的数据包数目C1',C2',C3'……CN-1'作比较判断是否丢包,设以速率Vj'发包时Nj'=Cj',j=1…N-1',Vj+1'发包时Nj+1'<Cj+1';当第二次测量判断为丢包时,则将第二次的发包速率和第一次判断为不丢包时的发包速率之和的平均值作为下次发包速率;当本次测量判断为不丢包时,则将第二次的发包速率和第一次判断为丢包时的发包速率之和的的平均值作为下次发包速率;
103,当第一次丢包第二次不丢包或第一次不丢包第二次丢包所对应的发包速率之差绝对值在1-10Mbps数量级之间时,停止N分法,开始采用细粒度法,将N-1个分核的发包速率分别调整为V1''=[Vi+1-Vi]/N+Vj',V2''=2[Vi+1-Vi]/N+Vj'……VN-1''=(N-1)[Vi+1-Vi]/N+Vj',开始进行下一轮测试;
104,若下轮测试为本次丢包,且本次丢包对应的发包速率与上次不丢包对应的发包速率之差<0.1Mbps,则测试结束,取本次发包速率作为吞吐率测试值;若本次不丢包,且本次不丢包对应的发包速率与上次丢包对应的发包速率的差值<0.1Mbps时,则测试结束,取本次发包速率作为吞吐率测试值;若连续五次差值都大于0.1Mbps,则取这五次发包速率的平均值作为吞吐率测试值。
2.根据权利要求1所述的基于多核技术的网络吞吐率并行化测量方法,其特征在于,步骤101中的初始帧长A1包括64B或128B或256B或512B或1024B或1280B或1518B。
3.根据权利要求1所述的基于多核技术的网络吞吐率并行化测量方法,其特征在于,步骤101中的数据包类型包括TCP数据包或UDP数据包或ICMP数据包。
4.根据权利要求1所述的基于多核技术的网络吞吐率并行化测量方法,其特征在于,步骤104中的吞吐率测试值均为空载状态下,双向全双工模式下的测试值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410228009.8A CN103986622A (zh) | 2014-05-27 | 2014-05-27 | 一种基于多核技术的网络吞吐率并行化测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410228009.8A CN103986622A (zh) | 2014-05-27 | 2014-05-27 | 一种基于多核技术的网络吞吐率并行化测量方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103986622A true CN103986622A (zh) | 2014-08-13 |
Family
ID=51278449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410228009.8A Pending CN103986622A (zh) | 2014-05-27 | 2014-05-27 | 一种基于多核技术的网络吞吐率并行化测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103986622A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162642A (zh) * | 2015-04-28 | 2015-12-16 | 重庆大学 | 一种基于WiFi的TCP和UDP流吞吐量分析方法 |
CN106302001A (zh) * | 2016-07-30 | 2017-01-04 | 华为技术有限公司 | 数据通信网络中业务故障检测方法、相关装置及系统 |
CN106445068A (zh) * | 2016-08-31 | 2017-02-22 | 湖南大学 | 一种基于gpu数据包分类的模糊控制节能方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794670A (zh) * | 2005-12-21 | 2006-06-28 | 中国移动通信集团公司 | Ip设备吞吐量的测试方法 |
CN102082707A (zh) * | 2010-12-24 | 2011-06-01 | 汉柏科技有限公司 | 多核防火墙并行处理性能测试方法 |
US20140059111A1 (en) * | 2012-08-27 | 2014-02-27 | Vmware, Inc. | Method and system for enabling multi-core processing of vxlan traffic |
-
2014
- 2014-05-27 CN CN201410228009.8A patent/CN103986622A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794670A (zh) * | 2005-12-21 | 2006-06-28 | 中国移动通信集团公司 | Ip设备吞吐量的测试方法 |
CN102082707A (zh) * | 2010-12-24 | 2011-06-01 | 汉柏科技有限公司 | 多核防火墙并行处理性能测试方法 |
US20140059111A1 (en) * | 2012-08-27 | 2014-02-27 | Vmware, Inc. | Method and system for enabling multi-core processing of vxlan traffic |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105162642A (zh) * | 2015-04-28 | 2015-12-16 | 重庆大学 | 一种基于WiFi的TCP和UDP流吞吐量分析方法 |
CN106302001A (zh) * | 2016-07-30 | 2017-01-04 | 华为技术有限公司 | 数据通信网络中业务故障检测方法、相关装置及系统 |
CN106302001B (zh) * | 2016-07-30 | 2020-02-14 | 华为技术有限公司 | 数据通信网络中业务故障检测方法、相关装置及系统 |
CN106445068A (zh) * | 2016-08-31 | 2017-02-22 | 湖南大学 | 一种基于gpu数据包分类的模糊控制节能方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100463422C (zh) | 一种链路、路径、网络可用带宽测量方法 | |
US9838293B2 (en) | Throughput test method and apparatus | |
DE102020112346A1 (de) | Techniken zum betrieb einer tdm-mac | |
CN101272290B (zh) | Ip网络中路径拥塞状态的测量方法和测量装置 | |
WO2011130957A1 (zh) | 利用数据流头部特征的tcp流量在线识别方法及装置 | |
CN101051959A (zh) | 基于逐跳时间戳标签的网络链路带宽的测量方法 | |
CN101964727B (zh) | 一种利用混合报文测量可用带宽的方法和装置 | |
CN1659833A (zh) | 用于确定光纤信道结构中路由特征的方法和装置 | |
CN104429029A (zh) | 网络中通过中央控制器的基于延迟的业务速率控制 | |
CN107241238A (zh) | 一种手持式万兆网络测试装置 | |
CN103986622A (zh) | 一种基于多核技术的网络吞吐率并行化测量方法 | |
CN106330600B (zh) | 一种小流量快速获取网络可用带宽的方法 | |
US8879403B2 (en) | Link microbenchmarking with idle link correction | |
CN110138809A (zh) | 一种面向以太网控制器接收链路的tcp报文拼接系统和方法 | |
CN103560936A (zh) | 一种pon系统中计算onu平均队列长度的方法 | |
CN109101453A (zh) | 异步串行通信采样系统和方法 | |
CN102368729B (zh) | 一种在非实时系统上精确网络限速的方法 | |
US9917757B2 (en) | Network connectivity identification | |
CN104536928A (zh) | 通过多核pcie加速子卡后的数据排序方法 | |
EP3079307B1 (en) | Obtn time slot length adjustment method, device and node | |
CN106789429B (zh) | 一种自适应低代价sdn网络链路利用率测量方法及系统 | |
JP5742549B2 (ja) | パケットキャプチャ処理方法及び装置 | |
CN114375001B (zh) | 一种网络测速方法及设备 | |
CN112583658B (zh) | 一种可用带宽测量方法、存储介质及设备 | |
CN104579812B (zh) | 一种计算机网络可用带宽测量方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140813 |