CN108513703B - 网络性能检测方法及装置 - Google Patents
网络性能检测方法及装置 Download PDFInfo
- Publication number
- CN108513703B CN108513703B CN201680069142.0A CN201680069142A CN108513703B CN 108513703 B CN108513703 B CN 108513703B CN 201680069142 A CN201680069142 A CN 201680069142A CN 108513703 B CN108513703 B CN 108513703B
- Authority
- CN
- China
- Prior art keywords
- test
- message
- group
- messages
- path
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种网络性能检测方法及装置。该方法包括:发送第一组测试报文以及第二组测试报文;接收第一测试路径上返回的第一组测试报文,以及第二测试路径上返回的第二组测试报文;其中,第一组测试报文根据预设的振荡次数在待测链路上振荡;进一步地,根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能。可见,本申请实施例中,通过第一测试报文在待测链路上振荡的方式,增加了待测链路在整个第一测试路径中的比重(即待测链路的比重大于上游链路的比重),从而减小了上游链路的网络性能的波动对待测链路网络性能测量的影响,使得待测链路的网络性能的测量结果更加准确。
Description
技术领域
本申请涉及互联网技术,尤其涉及一种网络性能检测方法及装置。
背景技术
随着互联网技术的发展,运营商为了降低网络运营成本和满足业务发展需求,对整网进行网络之间互连的协议(Internet Protocol,简称IP)化改造(全IP是目前和未来网络的发展趋势)。但IP技术是一种简单的无连接协议,并不能保证传输的可靠性。
随着IP网络承载越来越多的新型互联网业务(例如各种视频、语音、游戏等),终端用户对互联网业务感知的体验要求越来越高,从而运营商对IP网络性能的要求也越来越高,如何测量和优化IP网络性能是运营商当前及未来面临的挑战之一。因此,IP网络性能监测技术应用而生。
由于检测点数量与位置的限制,链路的网络性能只能通过测试路径的网络性能计算得到,因此,后一跳链路的网络性能的测量会依赖于前一跳的网络性能,导致后一跳链路的网络性能的测量结果会存在较大误差。图1为现有IP网络性能监测的应用场景示意图。如图1所示,假设节点P1与P2之间双向链路的丢包率均为a,P2与P3之间双向链路的丢包率为b;根据测试路径L1,2=<P0,P1,P2,P1,P0>确定a、根据plrL1,2,3=1-(1-a)2(1-b)2确定测试路径L1,2,3=<P0,P1,P2,P3,P2,P1,P0>的丢包率;进一步地,根据a以及测试路径L1,2,3的丢包率确定链路<P2,P3>的丢包率b=1-sqrt((1-plrL1,2,3)/(1-a)2)。
由于实际网络的网络性能是实时变化的,测试路径L1,2与测试路径L1,2,3的检测时间通常不一致,会导致链路<P2,P3>的丢包率的测量结果误差较大;例如,当检测测试路径L1,2的丢包率时,链路<P1,P2>的丢包率为a,但在检测测试路径L1,2,3的丢包率时,链路<P1,P2>的实际丢包率变为a1,因此,在计算b时,若仍认为<P1,P2>的丢包率为a,则计算得到的b会存在较大误差。
发明内容
本申请实施例提供一种网络性能检测方法及装置,提高了待测链路的网络性能的测量结果的准确度。
第一方面,本申请实施例提供一种网络性能检测方法,包括:
发送第一组测试报文以及第二组测试报文;其中,第一组测试报文用于测试第一测试路径,第二组测试报文用于测试第二测试路径;第一测试路径包括:第二测试路径以及待测链路;
接收第一测试路径上返回的第一组测试报文,以及第二测试路径上返回的第二组测试报文;其中,第一组测试报文根据预设的振荡次数在待测链路上振荡;
根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能。
通过第一方面提供的网络性能检测方法,通过发送用于测试第一测试路径的第一组测试报文以及用于测试第二测试路径的第二组测试报文,其中,第一测试路径包括:第二测试路径以及待测链路;进一步地,接收第一测试路径上返回的第一组测试报文(第一组测试报文根据预设的振荡次数在待测链路上振荡),以及第二测试路径上返回的第二组测试报文,并根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能。可见,本申请实施例中,通过第一测试报文在待测链路上振荡的方式,增加了待测链路在整个第一测试路径中的比重(即待测链路的比重大于上游链路的比重),从而减小了上游链路的网络性能(如第二测试路径的网络性能)的波动对待测链路网络性能测量的影响,使得待测链路的网络性能的测量结果更加准确。
在一个可能的设计中,发送第一组测试报文以及第二组测试报文之前,还包括:
根据预设的振荡次数生成第一组测试报文;
其中,第一组测试报文中的每个第一测试报文携带:待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;其中,每个第一链路标签组包括M个相同的第一链路标签,每个第二链路标签组包括M个相同的第二链路标签;M的数值等于预设的振荡次数,第一链路标签用于指示第一测试报文在正向传输方向的下一跳目标节点,第二链路标签用于指示第一测试报文在反向传输方向的下一跳目标节点。
在一个可能的设计中,根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能,包括:
根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定第一测试路径的时延或抖动;
根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定第二测试路径的时延或抖动;
根据第一测试路径的时延、第二测试路径的时延以及预设的振荡次数,确定待测链路的时延;或者,根据第一测试路径的抖动、第二测试路径的抖动以及预设的振荡次数,确定待测链路的抖动。
在一个可能的设计中,根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能,包括:
根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率;
根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率;
根据第一测试路径的丢包率、第二测试路径的丢包率以及预设的振荡次数,确定待测链路的丢包率。
在一个可能的设计中,根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能,包括:
根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定第一组测试报文的乱序数,并根据乱序数与第一测试路径上发送的第一测试报文的个数的商,确定第一测试路径的乱序率;
根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定第二组测试报文的乱序数,并根据乱序数与第二测试路径上发送的第二测试报文的个数的商,确定第二测试路径的乱序率;
根据第一测试路径的乱序率、第二测试路径的乱序率以及预设的振荡次数,确定待测链路的乱序率。
在一个可能的设计中,根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定第一测试路径的时延或抖动,包括:
根据第一组测试报文的乱序为每个第一测试报文分配接收时间戳;
根据每个第一测试报文的接收时间戳、发送时间戳,确定第一测试路径的时延或抖动。
在一个可能的设计中,根据第一组测试报文的乱序为每个第一测试报文分配接收时间戳,包括:
当接收到第一组测试报文中的第i个第一测试报文时,判断i是否等于j;其中,i为当前接收到的第一测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个第一测试报文;其中,缓存序列用于保存乱序的第一测试报文,乱序的第一测试报文的报文标识大于j;
若缓存序列中保存有第j+1个第一测试报文,则将第j+1个第一测试报文的初始接收时间戳修改为第i个第一测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤,直至缓存序列中未保存有第j+1个第一测试报文,则继续接收第一组测试报文中下一个到达的第一测试报文。
在一个可能的设计中,判断i是否等于j之后,还包括:
若i不等于j,则判断缓存序列中是否已满;
若缓存序列中未满,则将第i个第一测试报文保存至缓存序列中,并继续接收第一组测试报文中下一个到达的第一测试报文;
若缓存序列中已满,则判断缓存序列中是否保存有第j个第一测试报文;
若缓存序列中未保存有第j个第一测试报文,则确定第j个第一测试报文已丢失,根据第一组测试报文中报文标识小于j的各第一测试报文的平均时延,确定第j个第一测试报文的时延,并执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤。
在一个可能的设计中,将第j+1个第一测试报文的初始接收时间戳修改为第i个第一测试报文的接收时间戳之后,还包括:
将缓存序列中的第j+1个第一测试报文删除。
通过该实施方式提供的网络性能检测方法,通过根据第一组测试报文的乱序为每个第一测试报文分配接收时间戳;进一步地,根据每个第一测试报文的接收时间戳(即根据第一组测试报文的乱序为每个第一测试报文所分配的合适的接收时间戳)、发送时间戳,计算所得到的第一测试路径的时延或抖动的测量结果更加精确,从而进一步提高了待测链路的时延或抖动测量结果的准确度。
第二方面,本申请实施例提供一种网络性能检测装置,包括:
发送模块,用于发送第一组测试报文以及第二组测试报文;其中,第一组测试报文用于测试第一测试路径,第二组测试报文用于测试第二测试路径;第一测试路径包括:第二测试路径以及待测链路;
接收模块,用于接收第一测试路径上返回的第一组测试报文,以及第二测试路径上返回的第二组测试报文;其中,第一组测试报文根据预设的振荡次数在待测链路上振荡;
确定模块,用于根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能。
在一个可能的设计中,装置还包括:
生成模块,用于根据预设的振荡次数生成第一组测试报文;
其中,第一组测试报文中的每个第一测试报文携带:待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;其中,每个第一链路标签组包括M个相同的第一链路标签,每个第二链路标签组包括M个相同的第二链路标签;M的数值等于预设的振荡次数,第一链路标签用于指示第一测试报文在正向传输方向的下一跳目标节点,第二链路标签用于指示第一测试报文在反向传输方向的下一跳目标节点。
在一个可能的设计中,确定模块,包括:
第一确定子模块,用于根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定第一测试路径的时延或抖动;
第二确定子模块,用于根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定第二测试路径的时延或抖动;
第三确定子模块,用于根据第一测试路径的时延、第二测试路径的时延以及预设的振荡次数,确定待测链路的时延;或者,根据第一测试路径的抖动、第二测试路径的抖动以及预设的振荡次数,确定待测链路的抖动。
在一个可能的设计中,确定模块,包括:
第四确定子模块,用于根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率;
第五确定子模块,用于根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率;
第六确定子模块,用于根据第一测试路径的丢包率、第二测试路径的丢包率以及预设的振荡次数,确定待测链路的丢包率。
在一个可能的设计中,确定模块,包括:
第七确定子模块,用于根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定第一组测试报文的乱序数,并根据乱序数与第一测试路径上发送的第一测试报文的个数的商,确定第一测试路径的乱序率;
第八确定子模块,用于根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定第二组测试报文的乱序数,并根据乱序数与第二测试路径上发送的第二测试报文的个数的商,确定第二测试路径的乱序率;
第九确定子模块,用于根据第一测试路径的乱序率、第二测试路径的乱序率以及预设的振荡次数,确定待测链路的乱序率。
在一个可能的设计中,第一确定子模块,包括:
分配单元,用于根据第一组测试报文的乱序为每个第一测试报文分配接收时间戳;
确定单元,用于根据每个第一测试报文的接收时间戳、发送时间戳,确定第一测试路径的时延或抖动。
在一个可能的设计中,分配单元具体用于:
当接收模块接收到第一组测试报文中的第i个第一测试报文时,判断i是否等于j;其中,i为当前接收到的第一测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个第一测试报文;其中,缓存序列用于保存乱序的第一测试报文,乱序的第一测试报文的报文标识大于j;
若缓存序列中保存有第j+1个第一测试报文,则将第j+1个第一测试报文的初始接收时间戳修改为第i个第一测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤,直至缓存序列中未保存有第j+1个第一测试报文,则接收模块继续接收第一组测试报文中下一个到达的第一测试报文。
在一个可能的设计中,分配单元还用于:
若i不等于j,则判断缓存序列中是否已满;
若缓存序列中未满,则将第i个第一测试报文保存至缓存序列中,接收模块继续接收第一组测试报文中下一个到达的第一测试报文;
若缓存序列中已满,则判断缓存序列中是否保存有第j个第一测试报文;
若缓存序列中未保存有第j个第一测试报文,则确定第j个第一测试报文已丢失,根据第一组测试报文中报文标识小于j的各第一测试报文的平均时延,确定第j个第一测试报文的时延,并执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤。
在一个可能的设计中,分配单元将第j+1个第一测试报文的初始接收时间戳修改为第i个第一测试报文的接收时间戳之后,还用于:将缓存序列中的第j+1个第一测试报文删除。
上述第二方面的实施方式所提供的网络性能检测装置,其有益效果可以参见上述第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第三方面,本申请实施例提供一种网络性能检测方法,包括:
接收测试路径上返回的一组测试报文;
根据组测试报文的乱序为组测试报文中每个测试报文分配接收时间戳;
根据每个测试报文的接收时间戳、发送时间戳,确定测试路径的时延或抖动。
通过第一方面提供的网络性能检测方法,在接收测试路径上返回的一组测试报文后,通过根据该组测试报文的乱序为每个测试报文分配接收时间戳;进一步地,根据每个测试报文的接收时间戳(即根据该组测试报文的乱序为每个测试报文所分配的合适的接收时间戳)、发送时间戳,从而使得计算所得到的测试路径的网络性能的测量结果更加精确。
在一个可能的设计中,根据组测试报文的乱序为组测试报文中每个测试报文分配接收时间戳,包括:
当接收到组测试报文中的第i个测试报文时,判断i是否等于j;其中,i为当前接收到的测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个测试报文;其中,缓存序列用于保存乱序的测试报文,乱序的测试报文的报文标识大于j;
若缓存序列中保存有第j+1个测试报文,则将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个测试报文的步骤,直至缓存序列中未保存有第j+1个测试报文,则继续接收组测试报文中下一个到达的测试报文。
在一个可能的设计中,i是否等于j之后,还包括:
若i不是否等于j,则判断缓存序列中是否已满;
若缓存序列中未满,则将第i个测试报文保存至缓存序列中,并继续接收组测试报文中下一个到达的测试报文;
若缓存序列中已满,则判断缓存序列中是否保存有第j个测试报文;
若缓存序列中未保存有第j个测试报文,则确定第j个测试报文已丢失,根据组测试报文中报文标识小于j的各测试报文的平均时延,确定第j个测试报文的时延,并执行判断缓存序列中是否保存有第j+1个测试报文的步骤。
在一个可能的设计中,将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳之后,还包括:
将缓存序列中的第j+1个测试报文删除。
第四方面,本申请实施例提供一种网络性能检测装置,包括:
接收模块,用于接收测试路径上返回的一组测试报文;
分配模块,用于根据组测试报文的乱序为组测试报文中每个测试报文分配接收时间戳;
确定模块,用于根据每个测试报文的接收时间戳、发送时间戳,确定测试路径的时延或抖动。
在一个可能的设计中,分配模块具体用于:
当接收模块接收到组测试报文中的第i个测试报文时,判断i是否等于j;其中,i为当前接收到的测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个测试报文;其中,缓存序列用于保存乱序的测试报文,乱序的测试报文的报文标识大于j;
若缓存序列中保存有第j+1个测试报文,则将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个测试报文的步骤,直至缓存序列中未保存有第j+1个测试报文,则接收模块继续接收组测试报文中下一个到达的测试报文。
在一个可能的设计中,分配模块还用于:
若i不是否等于j,则判断缓存序列中是否已满;
若缓存序列中未满,则将第i个测试报文保存至缓存序列中,接收模块继续接收组测试报文中下一个到达的测试报文;
若缓存序列中已满,则判断缓存序列中是否保存有第j个测试报文;
若缓存序列中未保存有第j个测试报文,则确定第j个测试报文已丢失,根据组测试报文中报文标识小于j的各测试报文的平均时延,确定第j个测试报文的时延,并执行判断缓存序列中是否保存有第j+1个测试报文的步骤。
在一个可能的设计中,分配模块将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳之后,还用于:
将缓存序列中的第j+1个测试报文删除。
上述第四方面的实施方式所提供的网络性能检测装置,其有益效果可以参见上述第三方面的各可能的实施方式所带来的有益效果,在此不再赘述。
附图说明
图1为现有IP网络性能监测的应用场景示意图;
图2A为本申请网络性能检测方法实施例一的流程示意图;
图2B为本申请网络性能检测方法的应用场景示意图;
图3A为本申请网络性能检测方法实施例二的流程示意图;
图3B为本申请测试报文的格式示意图;
图4为本申请网络性能检测方法实施例三的流程示意图;
图5A为本申请网络性能检测方法实施例四的流程示意图;
图5B为本申请网络性能检测方法实施例五的流程示意图;
图6A为本申请网络性能检测方法实施例六的流程示意图;
图6B为本申请实施例中网络性能检测装置为每个第一测试报文分配合适的接收时间戳的流程示意图;
图7为本申请实施例中网络性能检测装置为每个测试报文分配合适的接收时间戳的流程示意图;
图8为本申请网络性能检测方法一实施例中接收到的测试报文序列以及缓存序列的示意图;
图9A为本申请网络性能检测方法实施例七的流程示意图;
图9B为本申请实施例中网络性能检测装置为每个测试报文分配合适的接收时间戳的流程示意图三;
图10为本申请网络性能检测装置实施例一的结构示意图;
图11为本申请网络性能检测装置实施例二的结构示意图;
图12为本申请网络性能检测装置实施例三的结构示意图;
图13为本申请网络性能检测装置实施例四的结构示意图。
具体实施方式
首先对现有技术中计算测试路径的丢包率、时延、抖动以及乱序等网络性能的方式进行详细介绍:
1)丢包率:
由于丢包率是一个统计值,因此,无法从单个测试报文中获得测试路径上的丢包率,需要从一组测试报文中获得:
plr=1-Nrecv/Nsend (1)
其中,plr代表丢包率,Nsend、Nrecv分别代表测试报文的发送数量和接收数量。
2)时延:
单个测试报文的时延可以表示为
delayi=Ti,recv-Ti,send (2)
其中,delayi代表第i个测试报文的时延,Ti,recv代表第i个测试报文的接收时间,Ti,send代表第i个测试报文的发送时间。
整条测试路径的时延可以由该条测试路径上所有测试报文的时延取均值获得:
其中,delay代表测试路径的时延,N代表测试路径上所接收到的所有测试报文的数量,N为大于等于1的正整数。
3)抖动
测试报文在传输路径上的时延存在差异,而这些差异就是测试报文的抖动,两个测试报文之间的抖动可以定义为:
jitteri=abs(delayi+1-delayi) (4)
其中,abs(_)代表取绝对值,delayi+1代表第i+1个测试报文的时延,delayi代表第i个测试报文的时延,jitteri代表第i+1个测试报文与第i个测试报文之间的抖动。
整条测试路径上的抖动通过对所有测试报文的抖动取均值获得:
其中,jitter代表测试路径的抖动。
4)乱序率:
乱序率和丢包率类似,单个测试报文的乱序没有意义,通过定义缓存序列来获得乱序数,乱序数等于累积进入缓存序列的测试报文的数量;进一步地,乱序率=乱序数/测试路径上发送的所有测试报文的个数。
如图1所示,由于检测点数量与位置的限制,链路的网络性能只能通过测试路径的网络性能计算得到,因此,后一跳链路的网络性能的测量会依赖于前一跳的网络性能,且上游链路在整个测试路径上所占的比重大于或者等于下游被测链路所占的比重,即上游链路的网络性能的波动会严重影响下游链路网络性能的测量,使得下游链路的网络性能的测量结果误差较大。
图2A为本申请网络性能检测方法实施例一的流程示意图。本实施例的执行主体可以为配置在服务器中的网络性能检测装置,该装置可以通过软件和/或硬件实现。如图2A所示,本实施例的方法可以包括:
步骤S201、发送第一组测试报文以及第二组测试报文。
图2B为本申请网络性能检测方法的应用场景示意图,如图2B所示的网络为全IP网络,网络中运行分段路由(Segment routing,简称SR)协议。其中,P0代表网络性能检测装置,P1、P2和P3代表路由器或者转发器。为了便于描述,图2B中示出第一测试路径L1<P0、P1、P2、P3、P2、P3、P2、P1、P0>和第二测试路径L2<P0、P1、P2、P1、P0>,第一测试路径L1包括第二测试路径L2以及待测链路L3。当然,本申请网的络性能检测方法还可应用于其它形式的网络结构中,本申请实施例对此并不作限制。
本步骤中,如图2B所示,网络性能检测装置发送第一组测试报文以及第二组测试报文;其中,第一组测试报文用于测试第一测试路径L1,第二组测试报文用于测试第二测试路径L2;第一测试路径L1包括:第二测试路径L2以及待测链路L3。可选地,第一组测试报文中的每个第一测试报文中携带有测试路径标识1(用于指示第一测试报文检测的第一测试路径L1),第二组测试报文中的每个第二测试报文中携带有测试路径标识2(用于指示第二测试报文检测的第二测试路径L2)。
步骤S202、接收第一测试路径上返回的第一组测试报文,以及第二测试路径上返回的第二组测试报文。
本步骤中,网络性能检测装置接收第一测试路径L1上返回的第一组测试报文,以及第二测试路径L2上返回的第二组测试报文;其中,第一组测试报文根据预设的振荡次数在待测链路上振荡,如图2B所示,以预设振荡次数等于2为例,第一组测试报文中每个第一测试报文会在待测链路L3上振荡(如P2->P3、P3->P2、P2->P3、P3->P2)。可见,本申请实施例中,待测链路的比重远远大于上游链路的比重,从而减小了上游链路的网络性能的波动对待测链路网络性能测量的影响。
步骤S203、根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能。
本步骤中,网络性能检测装置根据接收的第一组测试报文以及第二组测试报文,确定待测链路L3的网络性能。可选地,网络性能检测装置根据接收的第一组测试报文确定第一测试路径L1的网络性能,以及根据接收的第二组测试报文确定第二测试路径L2的网络性能;进一步地,根据第一测试路径L1的网络性能、第二测试路径L2的网络性能以及预设的振荡次数,确定待测链路的网络性能。可见,本申请实施例中,通过第一组测试报文根据预设的振荡次数在所述待测链路上振荡的方式,使得待测链路的比重远远大于上游链路(例如,如图2B中链路P1->P2、链路P2->P1)的比重,从而减小了上游链路的网络性能的波动对待测链路网络性能测量的影响,减小了待测链路的网络性能的测量结果误差。
可选地,网络性能包括以下一项或多项:时延、抖动、丢包率、乱序率。当然,本申请涉及的网络性能还可以包括其它网络性能,本申请实施例中对此并不作限制。
本申请实施例中,通过发送用于测试第一测试路径的第一组测试报文以及用于测试第二测试路径的第二组测试报文,其中,第一测试路径包括:第二测试路径以及待测链路;进一步地,接收第一测试路径上返回的第一组测试报文(第一组测试报文根据预设的振荡次数在待测链路上振荡),以及第二测试路径上返回的第二组测试报文,并根据接收的第一组测试报文以及第二组测试报文,确定待测链路的网络性能。可见,本申请实施例中,通过第一测试报文在待测链路上振荡的方式,增加了待测链路在整个第一测试路径中的比重(即待测链路的比重大于上游链路的比重),从而减小了上游链路的网络性能(如第二测试路径的网络性能)的波动对待测链路网络性能测量的影响,使得待测链路的网络性能的测量结果更加准确。
图3A为本申请网络性能检测方法实施例二的流程示意图,图3B为本申请测试报文的格式示意图。如图3A所示,在上述实例的基础上,步骤S201之前,还包括:
步骤S204、根据预设的振荡次数生成第一组测试报文。
本实施例中,在发送第一组测试报文以及第二组测试报文之前,网络性能检测装置根据预设的振荡次数生成第一组测试报文;其中,第一组测试报文中的每个第一测试报文携带:待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;每个第一链路标签组包括M个相同的第一链路标签,每个第二链路标签组包括M个相同的第二链路标签;M的数值等于预设的振荡次数,第一链路标签用于指示第一测试报文在正向传输方向(即沿着网络性能检测装置发送测试报文的方向)的下一跳目标节点,第二链路标签用于指示第一测试报文在反向传输方向(即沿着网络性能检测装置接收测试报文的方向)的下一跳目标节点。可选地,待测链路对应的第一链路标签组所包括的第一链路标签和第二链路标签组所包括的第二链路标签都可携带于第一测试报文的SR报头中(如图3B所示),以便待测链路上的节点在收到第一测试报文后,根据SR报头中包括的链路标签转发第一测试报文,使得第一测试报文在待测链路上振荡,增加了待测链路在整个第一测试路径中的比重(即待测链路的比重大于上游链路的比重),从而减小了上游链路的网络性能的波动对待测链路网络性能测量的影响。
例如:如图2B所示,预设的振荡次数为2,第一测试报文在待测链路L3上振荡(如P2->P3、P3->P2、P2->P3、P3->P2),每个第一测试报文携带:包括2个相同第一链路标签(如P2->P3链路标签)的第一链路标签组,以及包括2个相同第二链路标签(如P3->P2链路标签)的第二链路标签组。又例如:预设的振荡次数为2,第一测试报文在待测链路上振荡(如P2->P3、P3->P4、P4->P3、P3->P2、P2->P3、P3->P4、P4->P3、P3->P2),每个第一测试报文携带:包括2个相同第一链路标签(如P2->P3链路标签)的第一链路标签组1、包括2个相同第一链路标签(如P3->P4链路标签)的第一链路标签组2、包括2个相同第二链路标签(如P3->P2链路标签)的第二链路标签组1以及包括2个相同第二链路标签(如P4->P3链路标签)的第二链路标签组2。
为了区别多个网络性能检测装置所发出的测试报文,可选地,第一组测试报文中的每个第一测试报文和第二组测试报文中的每个第二测试报文可携带:探测器标识;探测器标识用于指示发出对应测试报文的网络性能检测装置。例如,第一测试报文携带的探测器标识用于指示发出第一测试报文的网络性能检测装置,第二测试报文携带的探测器标识用于指示发出第二测试报文的网络性能检测装置。
如图3B所示,测试报文包括:路径信息字段(用于控制测试报文的转发路径)、检测信息字段以及可选字段。其中,路径信息字段包括:SR报头(包括SR标签)和IP报头。检测信息字段包括用于计算测试路径上网络性能所必须的信息,例如:测试报文标识用于唯一标志测试报文(即过滤其它无关报文)、探测器标识用于标识该测试报文是由哪个网络性能检测装置发出的、测试报文路径标识用于标识测试报文负责检测哪一条测试路径、测试报文的报文身份标识(Identity,简称ID)用于区分同一测试路径上的不同测试报文、发送时间戳用于指示测试报文的发送时间、接收时间戳用于指示测试报文的接收时间。
图4为本申请网络性能检测方法实施例三的流程示意图。如图4所示,在上述实施例的基础上,步骤S203包括:
步骤S203A1、根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定第一测试路径的时延或抖动。
可选地,每个第一测试报文都会携带发送时间戳和接收时间戳,其中,发送时间戳用于指示网络性能检测装置发送第一测试报文的发送时间,接收时间戳用于指示网络性能检测装置接收第一测试报文的接收时间。
本步骤中,可选地,网络性能检测装置根据接收的第一组测试报文中每个第一测试报文所携带的时间信息(例如,发送时间戳和接收时间戳),通过上述公式(3)确定第一测试路径L1的时延。
可选地,网络性能检测装置根据接收的第一组测试报文中每个第一测试报文所携带的时间信息(例如,发送时间戳和接收时间戳),通过上述公式(2)和(4)确定第一测试路径L1的抖动。
步骤S203B1、根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定第二测试路径的时延或抖动。
可选地,每个第二测试报文都会携带发送时间戳和接收时间戳,其中,发送时间戳用于指示网络性能检测装置发送第二测试报文的发送时间,接收时间戳用于指示网络性能检测装置接收第二测试报文的接收时间。
本步骤中,可选地,网络性能检测装置根据接收的第二组测试报文中每个第二测试报文所携带的时间信息(例如,发送时间戳和接收时间戳),通过上述公式(3)确定第二测试路径L2的时延。
可选地,网络性能检测装置根据接收的第二组测试报文中每个第二测试报文所携带的时间信息(例如,发送时间戳和接收时间戳),通过上述公式(2)、(4)和(5)确定第二测试路径L2的抖动。
步骤S203C1、根据第一测试路径的时延、第二测试路径的时延以及预设的振荡次数,确定待测链路的时延;或者,根据第一测试路径的抖动、第二测试路径的抖动以及预设的振荡次数,确定待测链路的抖动。
本实施例中,由于第一测试报文根据预设的振荡次数会在待测链路L3上振荡,因此,在计算待测链路L3的网络性能时需要考虑振荡因素。可选地,假设第一测试报文在待测链路L3上振荡n次(即预设的振荡次数为n),则根据第一测试路径L1的时延delayL1、第二测试路径L2的时延delayL2以及预设的振荡次数n,通过如下公式(6)和(7)确定待测链路L3的时延delayL3:
delayL1=2*delayL2+2n*delayL3 (6)
可选地,假设第一测试报文在待测链路L3上振荡n次(即预设的振荡次数为n),则根据第一测试路径L1的抖动jitterL1、第二测试路径L2的抖动jitterL2以及预设的振荡次数n,通过如下公式(8)和(9)确定待测链路L3的抖动jitterL3:
jitterL1=2*jitterL2+2n*jitterL3 (8)
综上所述,由于第一测试报文在待测链路L3上振荡n次,因此,待测链路L3的时延或抖动的计算过程中,需要进行多次平均,从而减小了上游链路的时延或抖动(如第二测试路径L2的时延或抖动)的波动对待测链路L3的网络性能测量的影响,使得待测链路L3的时延或抖动的测量结果更加准确。
图5A为本申请网络性能检测方法实施例四的流程示意图。如图5A所示,在上述实施例的基础上,步骤S203包括:
步骤S203A2、根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率。
本步骤中,网络性能检测装置根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,通过上述公式(1)确定第一测试路径L1的丢包率。
步骤S203B2、根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率。
本步骤中,网络性能检测装置根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,通过上述公式(1)确定第二测试路径L2的丢包率。
步骤S203C2、根据第一测试路径的丢包率、第二测试路径的丢包率以及预设的振荡次数,确定待测链路的丢包率。
本实施例中,由于第一测试报文根据预设的振荡次数会在待测链路L3上振荡,因此,在计算待测链路L3的网络性能时需要考虑振荡因素。可选地,假设第一测试报文在待测链路L3上振荡n次(即预设的振荡次数为n),则根据第一测试路径L1的丢包率plrL1、第二测试路径L2的丢包率plrL2以及预设的振荡次数n,通过如下公式(10)和(11)确定待测链路L3的丢包率plrL3:
plrL1=1-(1-plrL2)2(1-plrL3)2n (10)
plrL3=1-((1-plrL1)/(1-plrL2)2)1/2n (11)
综上所述,由于第一测试报文在待测链路L3上振荡n次,因此,待测链路L3的丢包率的计算过程中,需要开n次幂,从而减小了上游链路的丢包率(如第二测试路径L2的丢包率)的波动对待测链路L3的网络性能测量的影响,使得待测链路L3的丢包率的测量结果更加准确。
图5B为本申请网络性能检测方法实施例五的流程示意图。如图5B所示,在上述实施例的基础上,步骤S203包括:
步骤S203A3、根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定第一组测试报文的乱序数,并根据乱序数与第一测试路径上发送的第一测试报文的个数的商,确定第一测试路径的乱序率。
本步骤中,网络性能检测装置根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文ID以及第一预设报文标识(如待处理测试报文的报文标识),判断当前接收到的第一测试报文的报文ID是否等于第一预设报文标识,若是(即当前接收到的第一测试报文为提前到达的测试报文),则将当前接收到的第一测试报文存入缓存序列(缓存序列用于保存乱序的第一测试报文)。进一步地,网络性能检测装置根据缓存序列中所包括的第一测试报文的数量确定第一组测试报文的乱序数,并根据乱序数与第一测试路径上发送的所有第一测试报文的个数的商,确定第一测试路径L1的乱序率。
步骤S203B3、根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定第二组测试报文的乱序数,并根据乱序数与第二测试路径上发送的第二测试报文的个数的商,确定第二测试路径的乱序率。
本步骤中,网络性能检测装置根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识(如待处理测试报文的报文标识),判断当前接收到的第二测试报文的报文ID是否等于第二预设报文标识,若是(即当前接收到的第二测试报文为提前到达的测试报文),则将当前接收到的第二测试报文存入缓存序列(缓存序列用于保存乱序的第二测试报文)。进一步地,网络性能检测装置根据缓存序列中所包括的第二测试报文的数量确定第二组测试报文的乱序数,并根据乱序数与第二测试路径上发送的所有第二测试报文的个数的商,确定第二测试路径L2的乱序率。
步骤S203C3、根据第一测试路径的乱序率、第二测试路径的乱序率以及预设的振荡次数,确定待测链路的乱序率。
本实施例中,由于第一测试报文根据预设的振荡次数会在待测链路L3上振荡,因此,在计算待测链路L3的网络性能时需要考虑振荡因素。可选地,假设第一测试报文在待测链路L3上振荡n次(即预设的振荡次数为n),则根据第一测试路径L1的乱序率disorL1、第二测试路径L2的乱序率disorL2以及预设的振荡次数n,通过如下公式(12)和(13)确定待测链路L3的乱序率disorL3:
disorL1=1-(1-disorL2)2(1-disorL3)2n (12)
disorL3=1-((1-disorL1)/(1-disorL2)2)1/2n (13)
综上所述,由于第一测试报文在待测链路L3上振荡n次,因此,待测链路L3的乱序率的计算过程中,需要开n次幂,从而减小了上游链路的乱序率(如第二测试路径L2的乱序率)的波动对待测链路L3的网络性能测量的影响,使得待测链路L3的乱序率的测量结果更加准确。
根据上述公式(2)-(5)可知,测试路径的时延以及抖动的计算,完全依赖于测试报文的发送时间和接收时间。由于测试报文是网络性能检测装置逐个按顺序发送的,可以认为测试报文的发送时间都是准确的,因此,为每个测试报文标记合适的接收时间戳,会直接影响测试路径的时延与抖动的计算。
由于网络中存在乱序情况,应用程序在处理数据时,通常将接收的所有数据存入缓冲区,并对缓冲区内的数据做排序处理,以便进一步按顺序依次处理数据。例如,假设第3秒的视频数据比第1秒的视频数据优先达到,应用程序不会直接处理第3秒的视频数据,而是在等到第1秒的视频数据到达后,按顺序先处理第1秒的视频数据,因此,用户感觉到的时延要比视频数据的真实时延(即视频数据从发送端发出的时间与到达接收端的时间之间的时延)要长。
与上述视频数据类似,测试报文到达接收节点的时间不一定是真实处理时间。为了使时延的计算更接近于用户的真实感受,需要考虑乱序对时延和/或抖动的影响,下面介绍在考虑乱序情况下,如何对测试报文打上合适的接收时间戳,以便获得更准确的时延和/或抖动的测量结果。
图6A为本申请网络性能检测方法实施例六的流程示意图。如图6A所示,在上述实施例的基础上,步骤S203A1,包括:
步骤SA11、根据第一组测试报文的乱序为每个第一测试报文分配接收时间戳。
本步骤中,网络性能检测装置根据第一组测试报文的乱序为每个第一测试报文分配合适的接收时间戳,使得时延和/或抖动的计算更接近于用户的真实感受。
图6B为本申请实施例中网络性能检测装置为每个第一测试报文分配合适的接收时间戳的流程示意图。如图6B所示,当接收到第一组测试报文中的第i个第一测试报文时,网络性能检测装置判断i是否等于j;其中,i为当前接收到的第一测试报文的报文标识;j为待处理测试报文的报文标识(即网络性能检测装置已经为j-1个第一测试报文分配了合适的接收时间戳)。其中,i为大于0的整数,j为大于1的整数。
1)若i等于j(即当前所接收到的第i个第一测试报文为待处理报文),则网络性能检测装置判断缓存序列中是否保存有第j+1个第一测试报文,其中,缓存序列用于保存乱序的第一测试报文(即提前到达的第一测试报文),乱序的第一测试报文的报文标识大于j。若缓存序列中保存有第j+1个第一测试报文(即第j+1个第一测试报文比第j个第一测试报文提前到达网络性能检测装置),则将第j+1个第一测试报文的初始接收时间戳修改为第i个(即第j个)第一测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤,以此类推,直至缓存序列中未保存有第j+1个第一测试报文,则继续接收第一组测试报文中下一个到达的第一测试报文。可选地,将第j+1个第一测试报文的初始接收时间戳修改为第i个第一测试报文的接收时间戳之后,将缓存序列中的第j+1个第一测试报文删除,以便缓存序列中可以保存其它提前到达的第一测试报文。
2)若i不等于j(即当前所接收到的第i个第一测试报文为非待处理报文),则网络性能检测装置判断缓存序列中是否已满。2a)若缓存序列中未满,则将第i个第一测试报文保存至缓存序列中,并继续接收第一组测试报文中下一个到达的第一测试报文。2b)若缓存序列中已满,则判断缓存序列中是否保存有第j个第一测试报文(即待处理测试报文)。若缓存序列中未保存有第j个第一测试报文,则确定第j个第一测试报文已丢失,根据第一组测试报文中报文标识小于j的各第一测试报文的平均时延,确定第j个第一测试报文的时延,并执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤。可选地,网络性能检测装置将第一组测试报文中报文标识小于j的各第一测试报文的平均时延与预设系数(例如,1.5)的乘积,作为该第j个第一测试报文的时延。当然,根据第一组测试报文中报文标识小于j的各第一测试报文的平均时延,还可通过其它方式确定该第j个第一测试报文的时延,本申请实施例中对此并不作限制。
可见,网络性能检测装置将接收到的第一组测试报文的每个第一测试报文都打上合适的接收时间戳,其中,对于丢失的第一测试报文赋予了合理的时延。
步骤SA12、根据每个第一测试报文的接收时间戳、发送时间戳,确定第一测试路径的时延或抖动。
本步骤中,网络性能检测装置根据每个第一测试报文的接收时间戳(即根据第一组测试报文的乱序为每个第一测试报文所分配的合适的接收时间戳)、发送时间戳,确定第一测试路径的时延或抖动。可选地,具体的计算方式参见本申请上述网络性能检测方法实施例三中关于步骤S203A1的相关描述,本申请实施例中,此处不再赘述。
本实施例中,通过根据第一组测试报文的乱序为每个第一测试报文分配接收时间戳;进一步地,根据每个第一测试报文的接收时间戳(即根据第一组测试报文的乱序为每个第一测试报文所分配的合适的接收时间戳)、发送时间戳,计算所得到的第一测试路径的时延或抖动的测量结果更加精确,从而进一步提高了待测链路的时延或抖动测量结果的准确度。
可选地,本申请上述网络性能检测方法实施例三中的步骤S203B1(即根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定第二测试路径的时延或抖动),包括:根据第二组测试报文的乱序为每个第二测试报文分配接收时间戳;根据每个第二测试报文的接收时间戳、发送时间戳,确定第二测试路径的时延或抖动。根据上述方式计算所得到的第二测试路径的时延或抖动的测量结果更加精确,从而进一步提高了待测链路的时延或抖动测量结果的准确度。可选地,具体的实现方式可参见本申请上述网络性能检测方法实施例六中关于步骤SA11和步骤SA12的相关描述,本申请实施例中,此处不再赘述。
图7为本申请实施例中网络性能检测装置为每个测试报文分配合适的接收时间戳的流程示意图。假设网络性能检测装置从第1个测试报文开始,逐个为测试报文分配合适的接收时间戳,j表示待处理测试报文的报文标识(即网络性能检测装置已经将报文标识小于等于j-1的测试报文都分配了合适的接收时间戳),i表示网络性能检测装置当前接收到的测试报文的报文标识,m1表示网络性能检测装置接收到测试报文的总个数,m2表示已经进入缓冲序列的测试报文的总个数。
如图7所示,在上述实施例的基础上,本实施例中网络性能检测装置为每个测试报文分配合适的接收时间戳的流程如下:
(1)当接收到第i个测试报文时,网络性能检测装置将m1加1,并为第i个测试报文打上初始接收时间戳(用于指示第i个测试报文的接收时间)。
(2)网络性能检测装置判断i是否等于j;若i不等于j(即当前所接收到的第i个测试报文为非待处理报文),则将第i个测试报文存入缓冲序列,并判断缓存序列中是否已满。若缓存序列中未满,则将m2+1,并继续接收下一个到达的测试报文。若缓存序列中已满,则判断缓存序列中是否保存有第j个测试报文;若缓存序列中未保存有第j个测试报文,则确定第j个测试报文已丢失,此时由于无法确定第j个测试报文的接收时间,为了便于计算测试路径上的时延,根据已到达的报文标识小于j的各测试报文的平均时延与预设系数(例如,1.5)的乘积,确定第j个测试报文的默认时延;进一步地,判断缓存序列中是否保存有第j+1个测试报文。
(3)若i等于j(即当前所接收到的第i个测试报文为待处理报文),则网络性能检测装置判断缓存序列中是否保存有第j+1个测试报文(即判断第j+1个测试报文是否比第j个测试报文提前到达)。若缓存序列中保存有第j+1个测试报文(即第j+1个测试报文比第j个测试报文提前到达网络性能检测装置),则将第j个测试报文的接收时间戳覆盖第j+1个测试报文的初始接收时间戳,并删除缓存序列中的第j+1个测试报文以及j加1,返回执行判断缓存序列中是否保存有第j+1个第一测试报文的步骤,以此类推;
(4)接上述步骤“判断缓存序列中是否保存有第j+1个第一测试报文,以此类推”,直至缓存序列中未保存有第j+1个测试报文,则继续接收下一个到达的测试报文。可选地,在继续接收下一个测试报文之前,若对缓存序列中的测试报文进行删除操作,则将m2加1;否则,无需加1。
(5)网络性能检测装置实时计算已经接收到的测试报文的平均时延,当连续5倍的平均时延时间内都未接收到新测试报文时,则确定测试报文接收完毕。
综上所述,本实施例中,网络性能检测装置通过根据乱序为每个测试报文分配合适的接收时间戳,使得时延的计算更接近于用户的真实感受,以便获得更准确的时延和/或抖动的测量结果。
图8为本申请网络性能检测方法一实施例中接收到的测试报文序列以及缓存序列的示意图。结合图2B和图8所示,对网络性能检测装置为每个测试报文分配合适的接收时间戳的流程进行详细说明。
1)初始化m1=0,m2=0,j=1;
2)当接收到第1个测试报文时(即i=1),网络性能检测装置将m1加1(即m1=1),并为第1个测试报文打上初始接收时间戳(用于指示第1个测试报文的接收时间);由于i等于j并且缓冲序列为空,则直接处理下一个测试报文(即第2个测试报文),对第1个测试报文的处理同第1个测试报文,此处不再赘述;在处理完第2个测试报文后,j=3,m1=2,m2=0;
3)当接收到第6个测试报文时(即i=6)时,网络性能检测装置将m1加1(即m1=3),并为第6个测试报文打上初始接收时间戳;由于i不等于j并且缓冲序列为空,则将第6个测试报文存入缓冲序列,以及将m2加1(即m2=1),并直接处理下一个测试报文,直到第8个测试报文存入缓冲序列(假设缓存序列能够存放5个报文);
4)此时缓冲序列已满,网络性能检测装置确定第3个测试报文已丢失,并为第3个测试报文分配默认时延(可选地,默认时延等于第1个测试报文与第2个测试报文的平均时延的1.5倍);进一步地,在确定缓存序列中保存有第4个测试报文,则将第8个测试报文的接收时间戳覆盖第4个测试报文的初始接收时间戳,并删除缓存序列中的第4个测试报文,以及将j加1;依次对缓存序列中的第5个测试报文、第6个测试报文、第7个测试报文和第8个测试报文进行相应处理,直至缓存序列中未保存有提前到达的测试报文,则继续接收下一个到达的测试报文(即第9个测试报文);
5)当接收到第9个测试报文时(即i=9)时,j=9,m1=7以及m2=5,网络性能检测装置将m1加1(即m1=8),并为第9个测试报文打上初始接收时间戳;由于i等于j并且缓冲序列为空,则直接处理下一个测试报文(即第11个测试报文);
6)当接收到第11个测试报文时(即i=11)时,j=10,m1=8以及m2=5,网络性能检测装置将m1加1(即m1=9),并为第11个测试报文打上初始接收时间戳;由于i不等于j,则将第11个测试报文存入缓冲序列,由于缓冲序列未满则将m2加1(即m2=6),并直接处理下一个测试报文(即第10个测试报文);
7)当接收到第10个测试报文时(即i=10)时,网络性能检测装置将m1加1(即m1=10),并为第10个测试报文打上初始接收时间戳(此时j=9);由于i等于j,在确定缓存序列中保存有第11个测试报文,则将第10个测试报文的接收时间戳覆盖第11个测试报文的初始接收时间戳,并删除缓存序列中的第11个测试报文(由于执行了删除操作,将m2加1);此时j=12,m1=10以及m2=7。
可见,网络性能检测装置将接收到的每个测试报文都打上合适的接收时间戳,并对于丢失的测试报文赋予了合理的时延,使得测试路径的时延/抖动的测量结果更加精确。例如,虽然第3个测试报文丢失了,网络性能检测装置通过为第3个测试报文分配默认时延,并不影响第2个测试报文与第3个测试报文,以及第3个测试报文与第4个测试报文之间抖动的计算。
根据上述公式公式(2)-(5)可知,测试路径的时延以及抖动的计算,完全依赖于测试报文的发送时间和接收时间。由于测试报文是网络性能检测装置逐个按顺序发送的,可以认为测试报文的发送时间都是准确的,因此,为每个测试报文标记合适的接收时间戳,会直接影响测试路径的时延与抖动的计算。
由于网络中存在乱序情况,应用程序在处理数据时,通常将接收的所有数据存入缓冲区,并对缓冲区内的数据做排序处理,以便进一步按顺序依次处理数据。例如,假设第3秒的视频数据比第1秒的视频数据优先达到,应用程序不会直接处理第3秒的视频数据,而是在等到第1秒的视频数据到达后,按顺序先处理第1秒的视频数据,因此,用户感觉到的时延要比视频数据的真实时延(即视频数据从发送端发出的时间与到达接收端的时间之间的时延)要长。
与上述视频数据类似,测试报文到达接收节点的时间不一定是真实处理时间。为了使时延的计算更接近于用户的真实感受,需要考虑乱序情况对时延和/或抖动的影响,下面介绍在考虑乱序情况下,如何对测试报文打上合适的接收时间戳,以便获得更准确的时延和/或抖动的测量结果。
图9A为本申请网络性能检测方法实施例七的流程示意图。本实施例的执行主体可以为配置在服务器中的网络性能检测装置,该装置可以通过软件和/或硬件实现。如图9A所示,本实施例的方法可以包括:
步骤S901、接收测试路径上返回的一组测试报文。
本步骤中,网络性能检测装置接收某条测试路径上返回的一组测试报文。可选地,该组测试报文中的每个测试报文携带:探测器标识;所述探测器标识用于指示发出对应测试报文的网络性能检测装置;具体的报文格式可参见图3B所示。
步骤S902、根据该组测试报文的乱序为该组测试报文中每个测试报文分配接收时间戳。
本步骤中,网络性能检测装置根据该组测试报文的乱序情况为该组测试报文中每个测试报文分配接收时间戳,使得时延和/或抖动的计算更接近于用户的真实感受。
图9B为本申请实施例中网络性能检测装置为每个测试报文分配合适的接收时间戳的流程示意图三。如图9B所示,当接收到一组测试报文中的第i个测试报文时,网络性能检测装置判断i是否等于j+1;其中,i为当前接收到的测试报文的报文标识;j为待处理测试报文的报文标识(即网络性能检测装置已经为j-1个第一测试报文分配了合适的接收时间戳)。
1)若i等于j(即当前所接收到的第i个测试报文为待处理报文),则网络性能检测装置判断缓存序列中是否保存有第j+1个测试报文,其中,缓存序列用于保存乱序的测试报文(即提前到达的测试报文),乱序的测试报文的报文标识大于j。若缓存序列中保存有第j+1个测试报文(即第j+1个测试报文比第j个测试报文提前到达网络性能检测装置),则将第j+1个测试报文的初始接收时间戳修改为第i个(即第j个)测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个测试报文的步骤,直至缓存序列中未保存有第j+1个测试报文,则继续接收该组测试报文中下一个到达的测试报文。可选地,将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳之后,将缓存序列中的第j+1个测试报文删除,以便缓存序列中可以保存其它提前到达的测试报文。
2)若i不等于j(即当前所接收到的第i个测试报文为非待处理报文),则网络性能检测装置判断缓存序列中是否已满。2a)若缓存序列中未满,则将第i个测试报文保存至缓存序列中,并继续接收该组测试报文中下一个到达的测试报文。2b)若缓存序列中已满,则判断缓存序列中是否保存有第j个测试(即待处理测试报文)。若缓存序列中未保存有第j个测试报文,则确定第j个测试报文已丢失,根据该组测试报文中报文标识小于j的各测试报文的平均时延,确定第j个测试报文的时延,并执行判断缓存序列中是否保存有第j+1个测试报文的步骤。可选地,网络性能检测装置将该组测试报文中报文标识小于j的各测试报文的平均时延与预设系数(例如,1.5)的乘积,作为该第j个测试报文的时延。当然,根据该组测试报文中报文标识小于j的各测试报文的平均时延,还可通过其它方式确定第j个测试报文的时延,本申请实施例中对此并不作限制。
可见,网络性能检测装置将接收到的一组测试报文的每个测试报文都打上合适的接收时间戳,其中,对于丢失的测试报文赋予了合理的时延。
步骤S903、根据每个测试报文的接收时间戳、发送时间戳,确定测试路径的时延或抖动。
本步骤中,网络性能检测装置根据每个测试报文的接收时间戳(即根据该组测试报文的乱序为每个该测试报文所分配的合适的接收时间戳)、发送时间戳,确定测试路径的网络性能时延或抖动。可选地,具体的计算方式参见本申请上述网络性能检测方法实施例三中关于步骤S203A1的相关描述,本申请实施例中,此处不再赘述。
本实施例中,在接收测试路径上返回的一组测试报文后,通过根据该组测试报文的乱序为每个测试报文分配接收时间戳;进一步地,根据每个测试报文的接收时间戳(即根据该组测试报文的乱序为每个测试报文所分配的合适的接收时间戳)、发送时间戳,从而使得计算所得到的测试路径的网络性能的测量结果更加精确。
可选地,本申请实施例中,网络性能检测装置为每个测试报文分配合适的接收时间戳的流程,还可参见上述图7所示网络性能检测装置为每个测试报文分配合适的接收时间戳的流程示意图二,以及结合图8所述的网络性能检测装置为每个测试报文分配合适的接收时间戳的流程,此处不再赘述。
图10为本申请网络性能检测装置实施例一的结构示意图。如图10所示,本实施例提供的终端网络性能检测装置100,包括:
发送模块1001,用于发送第一组测试报文以及第二组测试报文;其中,所述第一组测试报文用于测试第一测试路径,所述第二组测试报文用于测试第二测试路径;所述第一测试路径包括:所述第二测试路径以及待测链路;
接收模块1002,用于接收所述第一测试路径上返回的第一组测试报文,以及所述第二测试路径上返回的第二组测试报文;其中,所述第一组测试报文根据预设的振荡次数在所述待测链路上振荡;
确定模块1003,用于根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能。
可选地,所述装置还包括:
生成模块,用于根据所述预设的振荡次数生成所述第一组测试报文;
其中,所述第一组测试报文中的每个第一测试报文携带:所述待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;其中,每个所述第一链路标签组包括M个相同的第一链路标签,每个所述第二链路标签组包括M个相同的第二链路标签;所述M的数值等于所述预设的振荡次数,所述第一链路标签用于指示所述第一测试报文在正向传输方向的下一跳目标节点,所述第二链路标签用于指示所述第一测试报文在反向传输方向的下一跳目标节点。
可选地,所述确定模块1003,包括:
第一确定子模块,用于根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定所述第一测试路径的时延或抖动;
第二确定子模块,用于根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定所述第二测试路径的时延或抖动;
第三确定子模块,用于根据所述第一测试路径的时延、所述第二测试路径的时延以及所述预设的振荡次数,确定所述待测链路的时延;或者,根据所述第一测试路径的抖动、所述第二测试路径的抖动以及所述预设的振荡次数,确定所述待测链路的抖动。
可选地,所述确定模块1003,包括:
第四确定子模块,用于根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率;
第五确定子模块,用于根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率;
第六确定子模块,用于根据所述第一测试路径的丢包率、所述第二测试路径的丢包率以及所述预设的振荡次数,确定所述待测链路的丢包率。
可选地,所述确定模块1003,包括:
第七确定子模块,用于根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定所述第一组测试报文的乱序数,并根据所述乱序数与所述第一测试路径上发送的所述第一测试报文的个数的商,确定所述第一测试路径的乱序率;
第八确定子模块,用于根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定所述第二组测试报文的乱序数,并根据所述乱序数与所述第二测试路径上发送的所述第二测试报文的个数的商,确定所述第二测试路径的乱序率;
第九确定子模块,用于根据所述第一测试路径的乱序率、所述第二测试路径的乱序率以及所述预设的振荡次数,确定所述待测链路的乱序率。
可选地,所述第一确定子模块,包括:
分配单元,用于根据所述第一组测试报文的乱序为每个第一测试报文分配接收时间戳;
确定单元,用于根据每个所述第一测试报文的接收时间戳、发送时间戳,确定所述第一测试路径的时延或抖动。
可选地,所述分配单元具体用于:
当所述接收模块接收到所述第一组测试报文中的第i个第一测试报文时,判断i是否等于j;其中,所述i为当前接收到的所述第一测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个第一测试报文;其中,所述缓存序列用于保存乱序的第一测试报文,所述乱序的第一测试报文的报文标识大于j;
若所述缓存序列中保存有第j+1个第一测试报文,则将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳,并将j加1,返回执行所述判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤,直至所述缓存序列中未保存有第j+1个第一测试报文,则所述接收模块继续接收所述第一组测试报文中下一个到达的第一测试报文。
可选地,所述分配单元还用于:
若i不等于j,则判断所述缓存序列中是否已满;
若所述缓存序列中未满,则将所述第i个第一测试报文保存至所述缓存序列中,所述接收模块继续接收所述第一组测试报文中下一个到达的第一测试报文;
若所述缓存序列中已满,则判断所述缓存序列中是否保存有第j个第一测试报文;
若所述缓存序列中未保存有所述第j个第一测试报文,则确定所述第j个第一测试报文已丢失,根据所述第一组测试报文中报文标识小于所述j的各第一测试报文的平均时延,确定所述第j个第一测试报文的时延,并执行判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤。
可选地,所述分配单元将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳之后,还用于:将所述缓存序列中的所述第j+1个第一测试报文删除。
本实施例的网络性能检测装置,可以用于执行本申请上述网络性能检测方法实施例一至实施例六中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本申请网络性能检测装置实施例二的结构示意图。如图11所示,本实施例提供的网络性能检测装置110可以包括处理器1101、存储器1102、接收器1103以及发送器1104。其中,存储器1102、接收器1103以及发送器1104都与处理器1101相连。
其中,发送器1104用于发送第一组测试报文以及第二组测试报文;其中,所述第一组测试报文用于测试第一测试路径,所述第二组测试报文用于测试第二测试路径;所述第一测试路径包括:所述第二测试路径以及待测链路。接收器1103用于接收所述第一测试路径上返回的第一组测试报文,以及所述第二测试路径上返回的第二组测试报文;其中,所述第一组测试报文根据预设的振荡次数在所述待测链路上振荡。存储器1102用于存储执行指令;处理器1101用于执行存储器1102中的执行指令,用以执行以下操作:根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能。
可选地,所述处理器1101还用于:
根据所述预设的振荡次数生成所述第一组测试报文;
其中,所述第一组测试报文中的每个第一测试报文携带:所述待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;其中,每个所述第一链路标签组包括M个相同的第一链路标签,每个所述第二链路标签组包括M个相同的第二链路标签;所述M的数值等于所述预设的振荡次数,所述第一链路标签用于指示所述第一测试报文在正向传输方向的下一跳目标节点,所述第二链路标签用于指示所述第一测试报文在反向传输方向的下一跳目标节点。
可选地,所述处理器1101还用于:
根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定所述第一测试路径的时延或抖动;
根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定所述第二测试路径的时延或抖动;
根据所述第一测试路径的时延、所述第二测试路径的时延以及所述预设的振荡次数,确定所述待测链路的时延;或者,根据所述第一测试路径的抖动、所述第二测试路径的抖动以及所述预设的振荡次数,确定所述待测链路的抖动。
可选地,所述处理器1101还用于:
根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率;
根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率;
根据所述第一测试路径的丢包率、所述第二测试路径的丢包率以及所述预设的振荡次数,确定所述待测链路的丢包率。
可选地,所述处理器1101还用于:
根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定所述第一组测试报文的乱序数,并根据所述乱序数与所述第一测试路径上发送的所述第一测试报文的个数的商,确定所述第一测试路径的乱序率;
根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定所述第二组测试报文的乱序数,并根据所述乱序数与所述第二测试路径上发送的所述第二测试报文的个数的商,确定所述第二测试路径的乱序率;
根据所述第一测试路径的乱序率、所述第二测试路径的乱序率以及所述预设的振荡次数,确定所述待测链路的乱序率。
可选地,所述处理器1101还用于:
根据所述第一组测试报文的乱序为每个第一测试报文分配接收时间戳;
根据每个所述第一测试报文的接收时间戳、发送时间戳,确定所述第一测试路径的时延或抖动。
可选地,所述处理器1101还用于:
当接收到所述第一组测试报文中的第i个第一测试报文时,判断i是否等于j;其中,所述i为当前接收到的所述第一测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个第一测试报文;其中,所述缓存序列用于保存乱序的第一测试报文,所述乱序的第一测试报文的报文标识大于j;
若所述缓存序列中保存有第j+1个第一测试报文,则将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳,并将j加1,返回执行所述判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤,直至所述缓存序列中未保存有第j+1个第一测试报文,则继续接收所述第一组测试报文中下一个到达的第一测试报文。
可选地,所述处理器1101还用于:
若i不等于j,则判断所述缓存序列中是否已满;
若所述缓存序列中未满,则将所述第i个第一测试报文保存至所述缓存序列中,并继续接收所述第一组测试报文中下一个到达的第一测试报文;
若所述缓存序列中已满,则判断所述缓存序列中是否保存有第j个第一测试报文;
若所述缓存序列中未保存有所述第j个第一测试报文,则确定所述第j个第一测试报文已丢失,根据所述第一组测试报文中报文标识小于所述j的各第一测试报文的平均时延,确定所述第j个第一测试报文的时延,并执行判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤。
可选地,所述处理器1101将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳之后,还用于:将所述缓存序列中的所述第j+1个第一测试报文删除。
本实施例的网络性能检测装置,可以用于执行本申请上述网络性能检测方法实施例一至实施例六中任意实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本申请网络性能检测装置实施例三的结构示意图。如图12所示,本实施例提供的终端网络性能检测装置120,包括:
接收模块1201,用于接收测试路径上返回的一组测试报文;
分配模块1202,用于根据组测试报文的乱序为组测试报文中每个测试报文分配接收时间戳;
确定模块1203,用于根据每个测试报文的接收时间戳、发送时间戳,确定测试路径的时延或抖动。
可选地,分配模块1202具体用于:
当接收模块接收到组测试报文中的第i个测试报文时,判断i是否等于j;其中,i为当前接收到的测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个测试报文;其中,缓存序列用于保存乱序的测试报文,乱序的测试报文的报文标识大于j;
若缓存序列中保存有第j+1个测试报文,则将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳,并将j加1,返回执行判断缓存序列中是否保存有第j+1个测试报文的步骤,直至缓存序列中未保存有第j+1个测试报文,则接收模块继续接收组测试报文中下一个到达的测试报文。
可选地,分配模块1202还用于:
若i不是否等于j,则判断缓存序列中是否已满;
若缓存序列中未满,则将第i个测试报文保存至缓存序列中,接收模块继续接收组测试报文中下一个到达的测试报文;
若缓存序列中已满,则判断缓存序列中是否保存有第j个测试报文;
若缓存序列中未保存有第j个测试报文,则确定第j个测试报文已丢失,根据组测试报文中报文标识小于j的各测试报文的平均时延,确定第j个测试报文的时延,并执行判断缓存序列中是否保存有第j+1个测试报文的步骤。
可选地,分配模块1202将第j+1个测试报文的初始接收时间戳修改为第i个测试报文的接收时间戳之后,还用于:
将缓存序列中的第j+1个测试报文删除。
本实施例的网络性能检测装置,可以用于执行本申请上述网络性能检测方法实施例实施例六的技术方案,其实现原理和技术效果类似,此处不再赘述。
图13为本申请网络性能检测装置实施例四的结构示意图。如图13所示,本实施例提供的网络性能检测装置130可以包括处理器1301、存储器1302以及收发器1303。其中,存储器1302以及收发器1303都与处理器1301相连。
其中,收发器1303用于接收测试路径上返回的一组测试报文。存储器1302用于存储执行指令;处理器1301用于执行存储器1302中的执行指令,用以执行以下操作:根据所述组测试报文的乱序为所述组测试报文中每个测试报文分配接收时间戳;根据每个所述测试报文的接收时间戳、发送时间戳,确定所述测试路径的时延或抖动。
可选地,处理器1301还用于:
当接收到所述组测试报文中的第i个测试报文时,判断i是否等于j;其中,所述i为当前接收到的所述测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个测试报文;其中,所述缓存序列用于保存乱序的测试报文,所述乱序的测试报文的报文标识大于j;
若所述缓存序列中保存有第j+1个测试报文,则将所述第j+1个测试报文的初始接收时间戳修改为所述第i个测试报文的接收时间戳,并将j加1,返回执行所述判断所述缓存序列中是否保存有第j+1个测试报文的步骤,直至所述缓存序列中未保存有第j+1个测试报文,则继续接收所述组测试报文中下一个到达的测试报文。
可选地,处理器1301还用于:
若i不是否等于j,则判断所述缓存序列中是否已满;
若所述缓存序列中未满,则将所述第i个测试报文保存至所述缓存序列中,并继续接收所述组测试报文中下一个到达的测试报文;
若所述缓存序列中已满,则判断所述缓存序列中是否保存有第j个测试报文;
若所述缓存序列中未保存有所述第j个测试报文,则确定所述第j个测试报文已丢失,根据所述组测试报文中报文标识小于所述j的各测试报文的平均时延,确定所述第j个测试报文的时延,并执行判断所述缓存序列中是否保存有第j+1个测试报文的步骤。
可选地,处理器1301将所述第j+1个测试报文的初始接收时间戳修改为所述第i个测试报文的接收时间戳之后,还用于:将所述缓存序列中的所述第j+1个测试报文删除。
本实施例的网络性能检测装置,可以用于执行本申请上述网络性能检测方法实施例六的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:本文中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
本领域普通技术人员可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (18)
1.一种网络性能检测方法,其特征在于,包括:
发送第一组测试报文以及第二组测试报文;其中,所述第一组测试报文用于测试第一测试路径,所述第二组测试报文用于测试第二测试路径;所述第一测试路径包括:所述第二测试路径以及待测链路;
接收所述第一测试路径上返回的第一组测试报文,以及所述第二测试路径上返回的第二组测试报文;其中,所述第一组测试报文根据预设的振荡次数在所述待测链路上振荡;
根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能。
2.根据权利要求1所述的方法,其特征在于,所述发送第一组测试报文以及第二组测试报文之前,还包括:
根据所述预设的振荡次数生成所述第一组测试报文;
其中,所述第一组测试报文中的每个第一测试报文携带:所述待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;其中,每个所述第一链路标签组包括M个相同的第一链路标签,每个所述第二链路标签组包括M个相同的第二链路标签;所述M的数值等于所述预设的振荡次数,所述第一链路标签用于指示所述第一测试报文在正向传输方向的下一跳目标节点,所述第二链路标签用于指示所述第一测试报文在反向传输方向的下一跳目标节点。
3.根据权利要求1或2所述的方法,其特征在于,所述根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能,包括:
根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定所述第一测试路径的时延或抖动;
根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定所述第二测试路径的时延或抖动;
根据所述第一测试路径的时延、所述第二测试路径的时延以及所述预设的振荡次数,确定所述待测链路的时延;或者,根据所述第一测试路径的抖动、所述第二测试路径的抖动以及所述预设的振荡次数,确定所述待测链路的抖动。
4.根据权利要求1或2所述的方法,其特征在于,所述根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能,包括:
根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率;
根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率;
根据所述第一测试路径的丢包率、所述第二测试路径的丢包率以及所述预设的振荡次数,确定所述待测链路的丢包率。
5.根据权利要求1或2所述的方法,其特征在于,所述根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能,包括:
根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定所述第一组测试报文的乱序数,并根据所述乱序数与所述第一测试路径上发送的所述第一测试报文的个数的商,确定所述第一测试路径的乱序率;
根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定所述第二组测试报文的乱序数,并根据所述乱序数与所述第二测试路径上发送的所述第二测试报文的个数的商,确定所述第二测试路径的乱序率;
根据所述第一测试路径的乱序率、所述第二测试路径的乱序率以及所述预设的振荡次数,确定所述待测链路的乱序率。
6.根据权利要求3所述的方法,其特征在于,所述根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定所述第一测试路径的时延或抖动,包括:
根据所述第一组测试报文的乱序为每个第一测试报文分配接收时间戳;
根据每个所述第一测试报文的接收时间戳、发送时间戳,确定所述第一测试路径的时延或抖动。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一组测试报文的乱序为每个第一测试报文分配接收时间戳,包括:
当接收到所述第一组测试报文中的第i个第一测试报文时,判断i是否等于j;其中,所述i为当前接收到的所述第一测试报文的报文标识;j为待处理测试报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个第一测试报文;其中,所述缓存序列用于保存乱序的第一测试报文,所述乱序的第一测试报文的报文标识大于j;
若所述缓存序列中保存有第j+1个第一测试报文,则将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳,并将j加1,返回执行所述判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤,直至所述缓存序列中未保存有第j+1个第一测试报文,则继续接收所述第一组测试报文中下一个到达的第一测试报文。
8.根据权利要求7所述的方法,其特征在于,所述判断i是否等于j之后,还包括:
若i不等于j,则判断所述缓存序列中是否已满;
若所述缓存序列中未满,则将所述第i个第一测试报文保存至所述缓存序列中,并继续接收所述第一组测试报文中下一个到达的第一测试报文;
若所述缓存序列中已满,则判断所述缓存序列中是否保存有第j个第一测试报文;
若所述缓存序列中未保存有所述第j个第一测试报文,则确定所述第j个第一测试报文已丢失,根据所述第一组测试报文中报文标识小于所述j的各第一测试报文的平均时延,确定所述第j个第一测试报文的时延,并执行判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤。
9.根据权利要求7或8所述的方法,其特征在于,所述将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳之后,还包括:
将所述缓存序列中的所述第j+1个第一测试报文删除。
10.一种网络性能检测装置,其特征在于,包括:
发送模块,用于发送第一组测试报文以及第二组测试报文;其中,所述第一组测试报文用于测试第一测试路径,所述第二组测试报文用于测试第二测试路径;所述第一测试路径包括:所述第二测试路径以及待测链路;
接收模块,用于接收所述第一测试路径上返回的第一组测试报文,以及所述第二测试路径上返回的第二组测试报文;其中,所述第一组测试报文根据预设的振荡次数在所述待测链路上振荡;
确定模块,用于根据接收的所述第一组测试报文以及所述第二组测试报文,确定所述待测链路的网络性能。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
生成模块,用于根据所述预设的振荡次数生成所述第一组测试报文;
其中,所述第一组测试报文中的每个第一测试报文携带:所述待测链路对应的至少一个第一链路标签组和至少一个第二链路标签组;其中,每个所述第一链路标签组包括M个相同的第一链路标签,每个所述第二链路标签组包括M个相同的第二链路标签;所述M的数值等于所述预设的振荡次数,所述第一链路标签用于指示所述第一测试报文在正向传输方向的下一跳目标节点,所述第二链路标签用于指示所述第一测试报文在反向传输方向的下一跳目标节点。
12.根据权利要求10或11所述的装置,其特征在于,所述确定模块,包括:
第一确定子模块,用于根据接收的第一组测试报文中每个第一测试报文携带的时间信息确定所述第一测试路径的时延或抖动;
第二确定子模块,用于根据接收的第二组测试报文中每个第二测试报文携带的时间信息确定所述第二测试路径的时延或抖动;
第三确定子模块,用于根据所述第一测试路径的时延、所述第二测试路径的时延以及所述预设的振荡次数,确定所述待测链路的时延;或者,根据所述第一测试路径的抖动、所述第二测试路径的抖动以及所述预设的振荡次数,确定所述待测链路的抖动。
13.根据权利要求10或11所述的装置,其特征在于,所述确定模块,包括:
第四确定子模块,用于根据发送的第一组测试报文中第一测试报文的个数以及接收的第一组测试报文中第一测试报文的个数,确定第一测试路径的丢包率;
第五确定子模块,用于根据发送的第二组测试报文中第二测试报文的个数以及接收的第二组测试报文中第二测试报文的个数,确定第二测试路径的丢包率;
第六确定子模块,用于根据所述第一测试路径的丢包率、所述第二测试路径的丢包率以及所述预设的振荡次数,确定所述待测链路的丢包率。
14.根据权利要求10或11所述的装置,其特征在于,所述确定模块,包括:
第七确定子模块,用于根据接收的第一组测试报文中每个第一测试报文携带的测试报文的报文身份标识ID以及第一预设报文标识,确定所述第一组测试报文的乱序数,并根据所述乱序数与所述第一测试路径上发送的所述第一测试报文的个数的商,确定所述第一测试路径的乱序率;
第八确定子模块,用于根据接收的第二组测试报文中每个第二测试报文携带的测试报文的报文ID以及第二预设报文标识,确定所述第二组测试报文的乱序数,并根据所述乱序数与所述第二测试路径上发送的所述第二测试报文的个数的商,确定所述第二测试路径的乱序率;
第九确定子模块,用于根据所述第一测试路径的乱序率、所述第二测试路径的乱序率以及所述预设的振荡次数,确定所述待测链路的乱序率。
15.根据权利要求12所述的装置,其特征在于,所述第一确定子模块,包括:
分配单元,用于根据所述第一组测试报文的乱序为每个第一测试报文分配接收时间戳;
确定单元,用于根据每个所述第一测试报文的接收时间戳、发送时间戳,确定所述第一测试路径的时延或抖动。
16.根据权利要求15所述的装置,其特征在于,所述分配单元具体用于:
当所述接收模块接收到所述第一组测试报文中的第i个第一测试报文时,判断i是否等于j;其中,所述i为当前接收到的所述第一测试报文的报文标识;j为待处理报文的报文标识;
若i等于j,则判断缓存序列中是否保存有第j+1个第一测试报文;其中,所述缓存序列用于保存乱序的第一测试报文,所述乱序的第一测试报文的报文标识大于j;
若所述缓存序列中保存有第j+1个第一测试报文,则将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳,并将j加1,返回执行所述判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤,直至所述缓存序列中未保存有第j+1个第一测试报文,则所述接收模块继续接收所述第一组测试报文中下一个到达的第一测试报文。
17.根据权利要求16所述的装置,其特征在于,所述分配单元还用于:
若i不等于j,则判断所述缓存序列中是否已满;
若所述缓存序列中未满,则将所述第i个第一测试报文保存至所述缓存序列中,所述接收模块继续接收所述第一组测试报文中下一个到达的第一测试报文;
若所述缓存序列中已满,则判断所述缓存序列中是否保存有第j个第一测试报文;
若所述缓存序列中未保存有所述第j个第一测试报文,则确定所述第j个第一测试报文已丢失,根据所述第一组测试报文中报文标识小于所述j的各第一测试报文的平均时延,确定所述第j个第一测试报文的时延,并执行判断所述缓存序列中是否保存有第j+1个第一测试报文的步骤。
18.根据权利要求16或17所述的装置,其特征在于,所述分配单元将所述第j+1个第一测试报文的初始接收时间戳修改为所述第i个第一测试报文的接收时间戳之后,还用于:将所述缓存序列中的所述第j+1个第一测试报文删除。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/112734 WO2018119790A1 (zh) | 2016-12-28 | 2016-12-28 | 网络性能检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108513703A CN108513703A (zh) | 2018-09-07 |
CN108513703B true CN108513703B (zh) | 2020-07-28 |
Family
ID=62710846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680069142.0A Active CN108513703B (zh) | 2016-12-28 | 2016-12-28 | 网络性能检测方法及装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3474499B1 (zh) |
CN (1) | CN108513703B (zh) |
WO (1) | WO2018119790A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111262749B (zh) * | 2018-11-30 | 2023-05-23 | 华为技术有限公司 | 一种检测网络可靠性的方法及设备 |
CN112787877B (zh) * | 2019-11-07 | 2022-08-26 | 华为技术有限公司 | 一种网络时延检测方法及相关设备 |
CN111277454B (zh) * | 2020-01-15 | 2021-06-25 | Ut斯达康通讯有限公司 | 一种网络性能检测系统及方法 |
CN112565017A (zh) * | 2020-12-04 | 2021-03-26 | 盛科网络(苏州)有限公司 | 一种基于SRv6 SID的时延测量方法及装置 |
CN115086199A (zh) * | 2021-03-15 | 2022-09-20 | 中国电信股份有限公司 | 网络质量测试方法及装置、存储介质、电子设备 |
CN115333980B (zh) * | 2021-05-11 | 2023-10-20 | 中国联合网络通信集团有限公司 | 测试方法、第二边缘节点设备及边缘网关 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1400774A (zh) * | 2002-08-22 | 2003-03-05 | 陈鸣 | 互连网端到端性能监测方法及其系统 |
CN103139014A (zh) * | 2013-01-28 | 2013-06-05 | 深信服网络科技(深圳)有限公司 | 基于旁路的网络质量评测方法及装置 |
CN104780095A (zh) * | 2015-04-30 | 2015-07-15 | 杭州华三通信技术有限公司 | 一种sdn网络中的路径探测方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7443801B2 (en) * | 2004-10-28 | 2008-10-28 | Telcordia Technologies, Inc. | Remote estimation of round-trip delays in a data network |
US8107385B2 (en) * | 2005-09-29 | 2012-01-31 | Avaya Inc. | Evaluating quality of service in an IP network with cooperating relays |
US7324913B2 (en) * | 2006-02-01 | 2008-01-29 | International Business Machines Corporation | Methods and apparatus for testing a link between chips |
CN101677289B (zh) * | 2008-09-17 | 2012-04-25 | 华为技术有限公司 | 一种优化路由的方法和装置 |
US9571366B2 (en) * | 2009-12-27 | 2017-02-14 | At&T Intellectual Property I, L.P. | Method and apparatus for detecting and localizing an anomaly for a network |
CN102684947B (zh) * | 2012-05-25 | 2015-04-22 | 四川迅游网络科技股份有限公司 | 一种网络加速系统的测速方法 |
US9369371B2 (en) * | 2012-10-05 | 2016-06-14 | Cisco Technologies, Inc. | Method and system for path monitoring using segment routing |
CN106936656B (zh) * | 2015-12-30 | 2020-01-03 | 华为技术有限公司 | 一种实现丢包检测的方法、装置和系统 |
EP3474493B1 (en) * | 2016-12-06 | 2021-10-20 | Huawei Technologies Co., Ltd. | Network performance measurement method and detection device |
-
2016
- 2016-12-28 WO PCT/CN2016/112734 patent/WO2018119790A1/zh unknown
- 2016-12-28 EP EP16925546.0A patent/EP3474499B1/en active Active
- 2016-12-28 CN CN201680069142.0A patent/CN108513703B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1400774A (zh) * | 2002-08-22 | 2003-03-05 | 陈鸣 | 互连网端到端性能监测方法及其系统 |
CN103139014A (zh) * | 2013-01-28 | 2013-06-05 | 深信服网络科技(深圳)有限公司 | 基于旁路的网络质量评测方法及装置 |
CN104780095A (zh) * | 2015-04-30 | 2015-07-15 | 杭州华三通信技术有限公司 | 一种sdn网络中的路径探测方法和装置 |
Non-Patent Citations (1)
Title |
---|
"Measuring the Effects of Internet Path Faults on";Nick Feamster,等;《SIGMETRICS "03 Proceedings of the 2003 ACM SIGMETRICS international conference on Measurement and modeling of computer systems》;20030614;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108513703A (zh) | 2018-09-07 |
EP3474499A4 (en) | 2019-08-07 |
EP3474499A1 (en) | 2019-04-24 |
WO2018119790A1 (zh) | 2018-07-05 |
EP3474499B1 (en) | 2020-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108513703B (zh) | 网络性能检测方法及装置 | |
US8605598B2 (en) | Frame loss measurement method, system, and apparatus | |
CN101056215B (zh) | 一种网络性能测量方法及系统 | |
CN101056217B (zh) | 一种网络性能测量方法及系统 | |
US20070242620A1 (en) | Method, System and Device for Measuring Performance Parameters of Multiprotocol Label Switching Network | |
CN102783089A (zh) | 用于估计子路径的可用带宽的方法 | |
KR101467137B1 (ko) | 분산 라우터/스위치 아키텍처에서 서비스 중 스루풋을 테스팅하는 방법 | |
JP2013516807A (ja) | パケットロス検出方法及び装置、並びにルータ | |
CN103299583A (zh) | 测量源于单个端点的ip路径的可用容量和紧链路容量的系统和方法 | |
CN108429701A (zh) | 网络加速系统 | |
CN106067854A (zh) | 一种网络质量检测方法及设备 | |
US20150036510A1 (en) | Method and device for measuring ethernet performance | |
CN114553760B (zh) | 路径权重分配方法以及装置 | |
CN109617805B (zh) | 链路动态属性的获取方法、装置及路径选择方法、装置 | |
US20220247651A1 (en) | System and method for network and computation performance probing for edge computing | |
JP2014143499A (ja) | 通信システム、通信装置および通信方法 | |
CN110519103A (zh) | 一种异构网络的故障定位方法、装置及终端 | |
CN110784378B (zh) | 使用twamp实现精准流量均衡的方法及装置 | |
CN111490907B (zh) | 一种确定vxlan网络性能参数的方法及装置 | |
CN102752169B (zh) | 传输监控方法及装置 | |
CN109005122A (zh) | 报文发送方法、装置及网络设备 | |
CN114157595B (zh) | 一种通信系统、数据处理方法以及相关设备 | |
CN113812119B (zh) | 用于性能测量的网络节点 | |
CN107592269B (zh) | 传输路径的负载信息的方法和网络节点 | |
EP3085021A1 (en) | Probing a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |