一种视联网的网络状况测试方法和装置制造方法

文档序号:7776775阅读:239来源:国知局
一种视联网的网络状况测试方法和装置制造方法
【专利摘要】本申请提供了一种视联网的网络状况测试方法和装置。所述方法包括:第一测试端连入视联网,并通过视联网与第二测试端建立连接;所述第一测试端生成包含套接字信息的测试数据包,并按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包,所述套接字信息标识所述测试数据包在视联网的数据链路层进行传输的传输路径;所述第一测试端或第二测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数,以对所述视联网的网络状态进行诊断,所述异常状况包括数据包丢失、数据包错位、发送延时或发送抖动中的至少一种。本申请可以实现对视联网的网络状况进行监控。
【专利说明】一种视联网的网络状况测试方法和装置
【技术领域】
[0001]本申请涉及网络【技术领域】,特别是涉及一种视联网的网络状况测试方法,以及,一种视联网的网络状况测试装置。
【背景技术】
[0002]视联网是一个实时交换平台,是互联网的更高级形态,面对网络上潜在的巨大视频流量,视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包,并且,用户数据在全网范围内不需任何格式转换,能够实现目前互联网无法实现的全网高清视频实时传输。
[0003]因此,视联网将众多互联网应用推向高清视频化、统一化,高清面对面。最终将实现世界无距离,实现全球范围内人与人的距离只是一个屏幕的距离;另一方面,视联网具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,在通讯历史上第一次实现了全网交换式虚拟电路,以及数据格式的无缝连接。
[0004]在实际应用中,采用视联网进行视频会议时会出现花屏、卡顿或者下发菜单不成功等情况,这些问题可能是有很多原因造成的,而网络不稳定是其中一种可能的原因,因此,需要提供一种视联网的网络状况测试机制,以实现对视联网的网络状况进行监控。

【发明内容】

[0005]本申请提供了一种视联网的网络状况测试方法,以实现对视联网的网络状况进行监控。
[0006]相应的,本申请还提供了一种视联网的网络状况测试装置,用以保证上述方法的实现。
[0007]本申请提供了一种视联网的网络状况测试方法,包括:
[0008]第一测试端连入视联网,并通过视联网与第二测试端建立连接;
[0009]所述第一测试端生成包含套接字信息的测试数据包,并按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包,所述套接字信息标识所述测试数据包在视联网的数据链路层进行传输的传输路径;
[0010]所述第一测试端或第二测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数,以对所述视联网的网络状态进行诊断,所述异常状况包括数据包丢失、数据包错位、发送延时或发送抖动中的至少一种。
[0011]优选地,所述套接字信息包括数据链路层的物理层的协议号、接口索引号、报头类型、分组类型、物理层地址和物理层地址长度中的一种或多种。
[0012]优选地,所述按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包的步骤包括:
[0013]根据预设测试带宽和预设测试包大小,确定每秒发送的测试数据包的个数;
[0014]依据所述套接字信息所标识的传输路径,按照确定发送的测试数据包的个数在预设测试时间周期内经视联网逐个匀包向第二测试端发送测试数据包,其中,各个测试数据包携带相应的数据包序号,最后一个测试数据包还携带发送结束标志。
[0015]优选地,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述表征所述异常状况的参数为数据包丢失率和/或数据包错位率,所述第一测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数的步骤包括:
[0016]接收所述第二测试端返回的表示接收到所述测试数据包的协议包;
[0017]提取所述协议包中的接收统计参数,将所述接收统计参数与在所述测试时间周期内发送的测试数据包个数做差,得到数据包丢失个数,将所述数据包丢失个数与发送的测试数据包个数相除,得到所述数据包丢失率;
[0018]和/或,提取所述协议包中的错位统计参数,得到数据包错位个数,将所述数据包错位个数与发送的测试数据包个数相除,得到所述数据包错位率。
[0019]优选地,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述第二测试端判断所述测试数据包的发送是否发生异常状况的步骤包括:
[0020]所述第二测试端在接收到各个测试数据包时,将当前接收到的测试数据包的数据包序号与预设的接收变量进行比较;
[0021]若不一致,则确定发生数据包丢失和/或数据包错位的状况。
[0022]优选地,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包丢失率,所述第二测试端统计相应的表征所述异常状况的参数的步骤包括:
[0023]若依次接收到的数据包包序中存在理论上接收到的所有数据包包序,则确定未发生数据包丢失的状况,若依次接收到的数据包包序中不存在一个或多个理论上接收到的数据包包序,则确定发生数据包丢失的状况;
[0024]统计依次接收到的数据包包序中所不存在的理论上接收到的数据包包序的个数,作为所述数据包丢失的个数,将所述数据包丢失个数与确定发送的测试数据包个数相除,得到所述数据包丢失率。
[0025]优选地,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包错位率,所述第二测试端统计相应的表征所述异常状况的参数的步骤包括:
[0026]判断依次接收到的数据包包序中是否存在理论上接收到的所有数据包包序,若存在,则确定发生数据包错位的状况;
[0027]将依次接收到的数据包包序组成接收数组,将理论上依次接收到的各个数据包包序组成理论数组;
[0028]对两个数组进行比较,将两个数组中相同位置不同包序的个数作为所述数据包错位的个数,将所述数据包错位个数与确定发送的测试数据包个数相除,得到所述数据包错位率。
[0029]优选地,所述测试数据包包括多个,当所述异常状况包括发送延时时,所述第一测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数的步骤包括:[0030]针对各个测试数据包,在发送各个测试数据包时,记录测试数据包的发送时间和发送的包序;
[0031]接收所述第二测试端返回的表示接收到所述测试数据包的应答包,并判断所述应答包所携带的数据包序号是否为所述发送记录参数的当前数值;
[0032]若否,则提取所述应答包所携带的接收时间,与所述发送时间做差,得到各个测试数据包的发送延时时间。
[0033]优选地,当所述异常状况包括发送抖动时,所述第一测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数的步骤还包括:
[0034]统计各个测试数据包的发送延时时间的平均值,根据所述平均值和各个测试数据包的发送延时时间进行连续传输的平滑平均值差的计算,作为发送抖动的抖动参数。
[0035]优选地,所述预设测试带宽为统计多次带宽测试中所述第二测试端接收到的测试数据包的个数得到的视联网的实际带宽、所述视联网的标准带宽或所述视联网在未发生丢包状况下的最大可用带宽。
[0036]优选地,所述方法还包括,通过以下步骤统计所述视联网在未发生丢包状况下的最大可用带宽:
[0037]当所述测试数据包的发送发生数据包丢失的异常状况时,将预设最大带宽和预设最小带宽的一半作为所述最大可用带宽;
[0038]当所述测试数据包的发送未发生数据包丢失的异常状况时,将所述预设最大带宽和所述预设最小带宽的一半或所述预设最小带宽的预设比例,作为所述最大可用带宽。
[0039]优选地,所述方法还包括:
[0040]所述第一测试端对统计得到的表征所述异常状况的参数进行展示,以提供对所述视联网的网络状态进行诊断的依据。
[0041]本申请还提供了一种视联网的网络状况测试装置,包括:
[0042]连接模块,用于第一测试端连入视联网,并通过视联网与第二测试端建立连接;
[0043]测试数据生成模块,用于所述第一测试端生成包含套接字信息的测试数据包;
[0044]测试数据发送模块,用于按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包,所述套接字信息标识所述测试数据包在视联网的数据链路层进行传输的传输路径;
[0045]异常判断模块,用于所述第一测试端或第二测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数,以对所述视联网的网络状态进行诊断,所述异常状况包括数据包丢失、数据包错位、发送延时或发送抖动中的至少一种。
[0046]优选地,所述套接字信息包括数据链路层的物理层的协议号、接口索引号、报头类型、分组类型、物理层地址和物理层地址长度中的一种或多种。
[0047]优选地,所述测试数据发送模块包括:
[0048]个数确定子模块,用于根据预设测试带宽和预设测试包大小,确定每秒发送的测试数据包的个数;
[0049]数据包发送子模块,用于依据所述套接字信息所标识的传输路径,按照确定发送的测试数据包的个数在预设测试时间周期内经视联网逐个匀包向第二测试端发送测试数据包,其中,各个测试数据包携带相应的数据包序号,最后一个测试数据包还携带发送结束ο
[0050]优选地,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述表征所述异常状况的参数为数据包丢失率和/或数据包错位率,所述异常判断模块包括:
[0051]协议包接收子模块,用于接收所述第二测试端返回的表示接收到所述测试数据包的协议包;
[0052]第一丢失率计算子模块,用于提取所述协议包中的接收统计参数,将所述接收统计参数与在所述测试时间周期内发送的测试数据包个数做差,得到数据包丢失个数,将所述数据包丢失个数与发送的测试数据包个数相除,得到所述数据包丢失率;
[0053]和/或,第一错位率计算子模块,用于提取所述协议包中的错位统计参数,得到数据包错位个数,将所述数据包错位个数与发送的测试数据包个数相除,得到所述数据包错位率。
[0054]优选地,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述异常判断模块包括:
[0055]异常确定子模块,用于所述第二测试端在接收到各个测试数据包时,将当前接收到的测试数据包的数据包序号与预设的接收变量进行比较,若不一致,则确定发生数据包丢失和/或数据包错位的状况。
[0056]优选地,当所述 异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包丢失率,所述异常判断模块包括:
[0057]丢失异常确定子模块,用于若依次接收到的数据包包序中存在理论上接收到的所有数据包包序,则确定未发生数据包丢失的状况,若依次接收到的数据包包序中不存在一个或多个理论上接收到的数据包包序,则确定发生数据包丢失的状况;
[0058]第二丢失率计算子模块,用于统计依次接收到的数据包包序中所不存在的理论上接收到的数据包包序的个数,作为所述数据包丢失的个数,将所述数据包丢失个数与确定发送的测试数据包个数相除,得到所述数据包丢失率。
[0059]优选地,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包错位率,所述异常判断模块包括:
[0060]包序确定子模块,用于判断依次接收到的数据包包序中是否存在理论上接收到的所有数据包包序,若存在,则确定发生数据包错位的状况;
[0061]数组生成子模块,用于将依次接收到的数据包包序组成接收数组,将理论上依次接收到的各个数据包包序组成理论数组;
[0062]第二错位率计算子模块,用于对两个数组进行比较,将两个数组中相同位置不同包序的个数作为所述数据包错位的个数,将所述数据包错位个数与确定发送的测试数据包个数相除,得到所述数据包错位率。
[0063]优选地,所述测试数据包包括多个,当所述异常状况包括发送延时时,所述异常判断模块包括:
[0064]发送处理子模块,用于针对各个测试数据包,在发送各个测试数据包时,记录测试数据包的发送时间和发送的包序;
[0065]应答包判断子模块,用于接收所述第二测试端返回的表示接收到所述测试数据包的应答包,并判断所述应答包所携带的数据包序号是否为所述发送记录参数的当前数值,若否,则执行延时计算子模块;
[0066]延时计算子模块,用于提取所述应答包所携带的接收时间,与所述发送时间做差,得到各个测试数据包的发送延时时间。
[0067]优选地,当所述异常状况包括发送抖动时,所述异常判断模块还包括:
[0068]抖动计算子模块,用于统计各个测试数据包的发送延时时间的平均值,根据所述平均值和各个测试数据包的发送延时时间进行连续传输的平滑平均值差的计算,作为发送抖动的抖动参数。
[0069]优选地,所述预设测试带宽为统计多次带宽测试中所述第二测试端接收到的测试数据包的个数得到的视联网的实际带宽、所述视联网的标准带宽或所述视联网在未发生丢包状况下的最大可用带宽。
[0070]优选地,所述装置还包括:
[0071]最大带宽计算模块,用于统计所述视联网在未发生丢包状况下的最大可用带宽;
[0072]所述最大带宽计算模块包括:
[0073]第一带宽计算子模块,用于当所述测试数据包的发送发生数据包丢失的异常状况时,将预设最大带宽和预设最小带宽的一半作为所述最大可用带宽;
[0074]第二带宽计算子模块,用于当所述测试数据包的发送未发生数据包丢失的异常状况时,将所述预设最大带宽和所述预设最小带宽的一半或所述预设最小带宽的预设比例,作为所述最大可用带宽。
[0075]优选地,所述装置还包括:
[0076]展示模块,用于所述第一测试端对统计得到的表征所述异常状况的参数进行展示,以提供对所述视联网的网络状态进行诊断的依据。
[0077]与【背景技术】相比,本申请包括以下优点:
[0078]通过本发明实施例,第一测试端连入视联网并通过视联网向第二测试端发送测试数据包,并由第一测试端或第二测试端通过监测测试包的发送是否发生异常情况,并统计相应的表征网络状况异常的参数,从而实现了对视联网的网络状况的监控。
【专利附图】

【附图说明】
[0079]图1是本申请实施例所述一种视联网的网络状况测试方法的流程图;
[0080]图2是本申请实施例所述一种视联网的网络状况测试装置的结构框图;
[0081]图3是在机顶盒环境下应用本发明实施例的进行视联网的网络状况测试的系统架构图。
【具体实施方式】
[0082]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本申请作进一步详细的说明。
[0083]参照图1,其示出了本申请实施例所述一种视联网的网络状况测试流程图。
[0084]步骤101、第一测试端连入视联网,并通过视联网与第二测试端建立连接。
[0085]本发明实施例中,通过测试第一测试端和第二测试端之间采用视联网传输数据的情况对网络状况进行测试,第一视联网和第二视联网之间通过视联网进行连接,具体而言,第一测试端连入视联网,并通过视联网与第二测试端建立连接,第二测试端可以在第一测试端连入之前或之后连入视联网。
[0086]在具体的实现中,第一测试端和第二测试端均可以为机顶盒,作为第一测试端的机顶盒为机顶盒客户端(Client端),作为第二测试端的机顶盒为服务器端(server端),第一测试端和第二测试端也可以为其他可以连入视联网的设备。
[0087]步骤102、所述第一测试端生成包含套接字信息的测试数据包,并按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包,所述套接字信息标识所述测试数据包在视联网的数据链路层进行传输的传输路径。
[0088]第一测试端与第二测试端建立连接后,向第二测试端发送测试数据包,通过测试数据包的发送或接收情况来对网络状况进行测试。应用场景之一的机顶盒的相关环境是Linux环境,在Iinux环境中要从链路层(MAC)直接收发数据帧,本发明实施例中,测试数据包经视联网传输,与传统的以太网的传输方式不同之处在于:经以太网传输数据时,数据传输在ISO的第三层即应用层(网络层),通过IP地址对数据的发送端和接收端进行识别,数据包传输时携带发送端和接收端的IP地址;经视联网传输数据时,数据传输在ISO的第二层即链路层,通过链路层信息对数据的发送端和接收端进行识别,数据包传输时携带链路层Ih息。
[0089]在Iinux环境中可以通过Iibpcap与Iibnet两个动态库来分别完成收与发的工作。虽然它已被广泛使用,但在要求进行跨平台移植的软件中使用仍然有很多弊端;又因为视联网的视频都是通过二层(链路层)来进行收发数据的,同时为了减少flash的使用空间。本发明实施例使用了一种更为直接地、无须安装其它库的从链路层收发数据帧的方式,即通过定义链路层的套接字来完成。即packet套接字,packet套接字用于在MAC层上收发原始数据帧,这样就允许在用户空间完成链路层上各个层次的实现,无论是进行开发还是测试工作都带来了极大的便利性。
[0090]本发明实施例中采用套接字信息作为链路层的信息。第一测试端在生成测试数据包时在测试数据包中添加套接字信息,向第二测试端发送测试数据包时,按照套接字信息中标识的视联网数据链路层传输路径进行传输,套接字信息可以包括数据链路层的物理层的协议号、接口索引号、报头类型、分组类型、物理层地址和物理层地址长度中的一种或多种。
[0091]具体的,所述按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包的步骤包括:
[0092]子步骤S11、根据预设测试带宽和预设测试包大小,确定每秒发送的测试数据包的个数;
[0093]子步骤S12、依据所述套接字信息所标识的传输路径,按照确定发送的测试数据包的个数在预设测试时间周期内经视联网逐个匀包向第二测试端发送测试数据包,其中,各个测试数据包携带相应的数据包序号,最后一个测试数据包还携带发送结束标志。
[0094]测试数据包可以包括多个,可以根据预设的测试带宽值和测试包的大小来计算每秒发送的数据包的个数num_per_sec,num_per_sec与测试的时间周期(period)相乘,可以得到测试包的总个数,记为num=num_per_sec Xperiod,然后可以按照测试数据包所包含的套接字信息通过发包动作发包给第二测试端。其中,可以根据统一的视频中视频包的大小来确定测试数据包的大小,一般测试数据包固定为视频包的大小,即都是1084bit。
[0095]在发送各个测试数据包时,各个测试数据包携带相应的数据包序号,最后一个测试数据包还携带发送结束标志end,如果超过2S还是没有收到end,通知client重新发送最后一个包。
[0096]所有测试数据包在测试的时间周期内发送出去,根据预设测试时间周期和测试数据包的个数还可以得到各个数据包发送的理论时间,可以作为后续测试网络状况的依据。
[0097]在具体的实现中,所述预设测试带宽可以为统计多次带宽测试中所述第二测试端接收到的测试数据包的个数得到的视联网的实际带宽、所述视联网的标准带宽或所述视联网在未发生丢包状况下的最大可用带宽。所述方法还可以还包括,通过以下步骤统计所述视联网在未发生丢包状况下的最大可用带宽:
[0098]子步骤S21、当所述测试数据包的发送发生数据包丢失的异常状况时,将预设最大带宽和预设最小带宽的一半作为所述最大可用带宽;
[0099]子步骤S22、当所述测试数据包的发送未发生数据包丢失的异常状况时,将所述预设最大带宽和所述预设最小带宽的一半或所述预设最小带宽的预设比例,作为所述最大可用带宽。
[0100]预设测试带宽也可以是视联网的标准带宽,为已知的带宽,例如,有一个IOM带宽的专线,可以用IOM带宽去做测试,但是测试的时候丢包了,下次测试可以按照需求做另外一个带宽的测试,例如5M,如果还会出现丢包错位等问题,可以设置比5M更小的做测试。
[0101]本发明实施例中,可以进行多次带宽测试,获取每次带宽测试中,第二测试端接收到的测试数据包的个数来统计视联网的实际带宽,例如,针对20M的带宽,在一次统计中采用20M作为测试带宽,发出13836个数据包,得出丢包个数为0,发一个包理论实际时间为433.612610 μ S,则说明测试带宽小于等于实际带宽,实际带宽=(第二测试端接收到的测试数据包的个数X每个包的大小Χ8)/(第一测试端发包所花的时间)=19.999418Mbps,以30M为测试带宽,发出20754个数据包,接收到的数据包为14098个,则说明测试带宽大于实际带宽,由此得出,实际带宽=(第二测试端接收到的测试数据包的个数X每个包的大小X8)/(第一测试端发包所花的时间)=20.38Mbps。
[0102]在未知带宽的情况下,预设测试带宽可以是视联网在未发生丢包状况下的最大可用带宽,避免自己盲目的做带宽的测试。当预设测试带宽为视联网在未发生丢包状况下的最大可用带宽时,可以根据当前数据包发送的具体情况获取最大的可用带宽,类似于二分查找算法的收敛算法。具体而言,预置一个最大带宽和最小带宽,当前测试中测试数据包发生数据包丢失的异常状况时,可以将最大带宽和最小带宽的一半,当测试数据包的发送未发生数据包丢失的异常状况时,将最大带宽和最小带宽的一半,作为最大可用带宽,或是将最大带宽和最小带宽的预设比例,作为最大可用带宽,具体的实现中,可以在最大带宽变量的值为O的时候,预设测试带宽等于3/2的最小带宽,当其不为O的话,预设测试带宽等于最小带宽与最小带宽的一半。
[0103]在具体的实现中,可以根据具体的环境和应用需求来获取预设的测试带宽。
[0104]步骤103、所述第一测试端或第二测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数,以对所述视联网的网络状态进行诊断,所述异常状况包括数据包丢失、数据包错位、发送延时或发送抖动中的至少一种。
[0105]本发明实施例中,可以由第一测试端判断测试数据包的发送是否发生异常状况,也可以由第一测试端判断测试数据包是否发生异常状况。
[0106]测试数据包从第一测试端发送到第二测试端的过程中,可能发生的异常状况包括数据包丢失、数据包错位、发送延时或发送抖动等情况。异常情况可以通过相应的参数进行表征,通过判断确定测试数据包的发送是否发生异常状况后,可以进一步统计可以表征异常状况的各种参数,通过这些参数可以进一步对网络状况进行诊断。
[0107]在本发明实施例的一种优选示例中,可以由第一测试端对网络状况进行判断时,当测试数据包包括多个时,且异常状况包括数据包丢失和/或数据包错位时,表征所述异常状况的参数相应为数据包丢失率和/或数据包错位率。
[0108]相应的所述步骤103可以包括:
[0109]子步骤S31、接收所述第二测试端返回的表示接收到所述测试数据包的协议包;
[0110]子步骤S32、提取所述协议包中的接收统计参数,将所述接收统计参数与在所述测试时间周期内发送的测试数据包个数做差,得到数据包丢失个数,将所述数据包丢失个数与发送的测试数据包个数相除,得到所述数据包丢失率;
[0111]和/或,子步骤S33、提取所述协议包中的错位统计参数,得到数据包错位个数,将所述数据包错位个数与发送的测试数据包个数相除,得到所述数据包错位率。
[0112]由于线路带宽占用过高,数据包从一端到另外一端传输的途中,会产生丢失。丢包率是网络链路的一个重要指标,一旦产生丢包,说明网络带宽不足,导致视频会议、发布直播等会出现卡顿或者抖动、下载菜单不成功等情况。当出现乱序的话,视频会议可能会出现卡顿的情况。
[0113]本发明实施例中,第一测试端在发出测试数据包后,第二测试端在接收到测试数据包后相应对接收到的测试数据包的情况进行统计,并将统计的参数添加在协议包中,并返回给第一测试端,第一测试端接收到协议包(8704协议包)后即可确定第二测试端接收到了测试数据包,具体的接收情况需要根据协议包中所携带的数据进行分析。
[0114]具体而言,在统计数据包丢失情况时,协议包中统计的参数可以包括接收统计参数,接收统计参数记录了接收到的测试数据包的个数(rcv_num),将接收统计参数与第一测试端发送出去的测试数据包的个数(num)做差,进一步就可以得到测试数据包丢失的个数(l0SS_pack),差不为零则说明存在丢包的情况,然后再进一步将测试数据包丢失的个数与测试数据包的个数相除,即可得到数据包的丢失率;在统计数据包接收错位情况时,协议包中的统计的参数可以包括错位统计参数,错位统计参数记录了第二测试端所接收到的测试数据包发生错位的个数,错位统计参数不为零则说明存在数据包错位的情况,然后再进一步将测错位率。
[0115]在本发明实施例的一种优选示例中,可以由第二测试端对网络状况进行判断时,当测试数据包包括多个时,且异常状况包括数据包丢失和/或数据包错位时,相应的,判断所述测试数据包的发送是否发生异常状况的步骤可以包括:
[0116]子步骤S41、所述第二测试端在接收到各个测试数据包时,将当前接收到的测试数据包的数据包序号与预设的接收变量进行比较;
[0117]子步骤S42、若不一致,则确定发生数据包丢失和/或数据包错位的状况。[0118]第二测试端接收第一测试端发送的多个测试数据包,在接收到某个测试数据包时,由于测试数据包携带数据包序号,因此,可以设置一个接收变量,接收变量随着接收到的数据包增多而变化,变化后的值与正常情况下预期应该接收到的数据包的序号相同,也即是接收变量的值即是当前应该接收到的数据包的序号。将接收变量的值与数据包序号进行比较,以确定当前接收到的数据包是否正常,由于数据包丢失和数据包错位的情况都可能导致接收到的数据包的序号不同于接收变量的值,因此,当数据包序号与预设的接收变量不一致时,可能发生数据包丢失和数据包错位之中的至少一种情况。
[0119]例如,收到第一测试端发过来的数据包,得到包序和结束标志位end,把包序存到一个数组disor_num里面,同时得到最大的包序max ;在接收的过程中接收到的包的个数rcv_num自增I,如出现当前包序与接收到的包序不同的时候,做一个丢包个数total_loss_pack自增I的动作,并且设置一个丢包标志位,表明发生了丢包或错位的情况。
[0120]进一步,若当需要判断的异常状况同时包括数据包丢失和数据包错位时,在确定发生数据包丢失和/或数据包错位的状况的步骤之后,还需要进一步确定具体的情况,究竟是发生了数据包丢失,还是数据包错位,还是两种情况都有。
[0121]当表征所述异常状况的参数为数据包丢失率时,第二测试端统计相应的表征所述异常状况的参数的步骤包括:
[0122]子步骤S51、若依次接收到的数据包包序中存在理论上接收到的所有数据包包序,则确定未发生数据包丢失的状况,若依次接收到的数据包包序中不存在一个或多个理论上接收到的数据包包序,则确定发生数据包丢失的状况;
[0123]子步骤S52、统计依次接收到的数据包包序中所不存在的理论上接收到的数据包包序的个数,作为所述数据包丢失的个数,将所述数据包丢失个数与确定发送的测试数据包个数相除,得到所述数据包丢失率。
[0124]数据包丢失是指发送的数据包的个数与接收到的数据包的个数不一致,数据包错位是指发送的多个数据包的序号顺序与接收到的多个数据包的序号顺序不同,对数据包丢失和错位的情况进行区别时,可以将接收到的数据包的包序与理论上接收到的数据包的包序进行比对,若接收到的数据包的包序中存在理论上接收到的所有数据包包序,也即是接收到的数据包的包序和理论上的数据包的包序都一致,则说明数据包都已经接收到,可以确定没有发生数据包丢失的情况,而是发生了数据包错位的情况,反之,则发生了数据包丢失的情况。
[0125]对于数据包丢失的情况,可以进一步统计数据包的丢失个数,接收到的数据包包序中所不存在的理论上接收到的数据包包序的个数即是数据包丢失的个数,换而言之,数据包丢失的个数为理论上接收到的数据包包序的个数与接收到的数据包包序的个数之差,或理论上接收到的数据包的个数与接收到的数据包的个数之差,将数据包丢失个数与确定发送的测试数据包个数(也即是理论上接收到的数据包的个数)相除,可得到丢失率。
[0126]当表征所述异常状况的参数为数据包错位率时,第二测试端统计相应的表征所述异常状况的参数的步骤包括:
[0127]子步骤S61、判断依次接收到的数据包包序中是否存在理论上接收到的所有数据包包序,若存在,则确定发生数据包错位的状况;
[0128]子步骤S62、将依次接收到的数据包包序组成接收数组,将理论上依次接收到的各个数据包包序组成理论数组;
[0129]子步骤S63、对两个数组进行比较,将两个数组中相同位置不同包序的个数作为所述数据包错位的个数,将所述数据包错位个数与确定发送的测试数据包个数相除,得到所述数据包错位率。
[0130]通过子步骤S41和子步骤S42确定发生了数据包丢失和/或数据包错位的状况,若进一步判断接收到的数据包包序中存在理论上接收到的所有数据包包序,则说明数据包并未丢失,而是发生了数据包错位的情况。在具体确定错位的数据包的个数时,可以将接收到的数据包的包序按照接收的顺序组成一个数组(接收数组),理论上应该接收到的数据的包序包按照理论上应该接收的顺序也组成一个数组(理论数组),对比这两个数组的差异,若不存在错位和丢失的情况,两个数组应该是相同的,在判断错位时,可以将两个数组进行比较,两个数组中相同位置,包序不相同时,说明这个数据包错位,统计两个数组中相同位置不同包序的个数也即是错位数据包的个数,将错位个数与确定发送的测试数据包个数(也即是理论上接收到的数据包的个数)相除,可得到错位率。 [0131]如上例中,设置一个当前希望的理论包序expected_no ( —般为I),进行丢包和错位的区分的判断是一个while循环(条件是rcv_num和end)。具体而言,当disor_num的某个兀素与 expected_no 相等,将 expected_no 放到一个数组 order_num 中,expected_no自增1,得到下一个待判断的元素在数组的位置num_dis (主要是为优化算法做依据),当expected_no大于max的时候,跳出while,确定没有丢包而是发生了错位的情况。当跳出while循环后,再把disor_num和order_num两个数组做比较,如果disor_num[n] ! =order_num[n]的话,dis_num++,乱序个数为 dis_num,乱序率为 disorderment= (float) ((lose_pack*100) / ((float) rcv_num)) % 就可以得到错位的 dis_num 的个数。当 disor_num 的某个元素与expected_no不相等的话时,while走到num_dis后的20个元素或者大于total_loss_pack-l的话,就认为expected_no这个包丢掉了,err_count自增I,同时记录第err_count个丢包的包序是expected_no,显示出具体丢的是哪个包。当expected_no大于max的时候,跳出while,确定发生了丢包的情况,丢失率losepacket_rate= (float) ((lose_pack*100)/((float)send_ptk_num))%。
[0132]在本发明实施例的一种优选示例中,可以由第一测试端对网络状况进行判断时,当测试数据包包括多个时,且异常状况包括发送延时时,相应的,所述步骤103可以包括:
[0133]子步骤S71、针对各个测试数据包,在发送各个测试数据包时,记录测试数据包的发送时间和发送的包序;
[0134]子步骤S72、接收所述第二测试端返回的表示接收到所述测试数据包的应答包,并判断所述应答包所携带的数据包序号是否为所述发送记录参数的当前数值;
[0135]子步骤S73、若否,则提取所述应答包所携带的接收时间,与所述发送时间做差,得到各个测试数据包的发送延时时间。
[0136]延时一方面和数据传输两地之间的传输距离有关,比如北京到广东,理论延时最起码是50ms左右;延时另外一个原因是网络带宽的占用率,如果占用率高,则延时也高;延时的其他原因可能是cpu处理跟不上等,如果延时过大,就会觉得网络慢。第一测试端向第二测试端发送测试数据包,第二测试端接收到测试数据包后返回应答包(ACK),第一测试端接收到应答包表明第二测试端已经接收到了测试数据包,若在发送下一个数据包之前接收到针对上一个数据包返回的应答包,则说明发送正常,若是在发送下一个或多个数据包之后才接收到对上一个数据包返回的应答包,则说明上一个数据包的发送延时。
[0137]在发送各个数据包时,计算了但预设测试时间周期内的发送数据包的个数,因此,可以进一步得出各个数据包的发送时间,发送数据包时,将预设的发送记录参数做加I处理,在接收到返回的应答包后,应答包携带的有接收到的数据包的包序,若应答包的包序和发送记录参数当前数值相同,则说明未出现发送延迟,应答包的包序即为最新发送出去的数据包的包序,若不同,则说明出现发送延迟。
[0138]例如,发送记录参数初始值可以为0,发送第一个数据包后,发送记录参数增加至1,若未出现发送延迟的情况,则在发送第二个数据包之前会接收到应答包,应答包携带的包序为1,与发送记录参数值相同,若出现发送延迟的情况,例如,在发送完第二个数据包之后才接收到应答包,应答包携带的数值为1,由于发送完第二个数据包之后发送记录参数会增加至2并不是1,表明出现了发送延迟的情况。
[0139]确定数据包发生发送延时的情况后,可以进一步计算发送延时的时间,应答包还会携带第二测试端接收到数据包的接收时间,第一测试端还保存有各个数据包的发送时间,接收时间与第一测试端发送时间做差即可得到发送延时时间(Round-Trip Time:往返时延)。
[0140]例如,当第一测试端在做发包动作的时候得到一个发包的时间send_time(包括秒和微妙),第二测试端收到发过来的数据包,当接收数据包的个数rcv_num自增I之后,马上发一个应答包给第一测试端,由第一测试端进行延迟的统计。当第一测试端收到的应答包中包序不是当前理论包序的话,将应答包内的接收时间recv_time,与send_time做差得到延时(RTT)Jj^Ij ptk_delay_sum 数组里面。
[0141]具体算法如下:
[0142]第一个包:ptk_delay_sum[0]=tl2 - til`[0143]第二个包:ptk_delay_sum[l]=t22 - t21
[0144]…
[0145]% rcv_num:ptk_delay_sum[rcv_num-l] =t rcv_num2 - t rcv_numl
[0146]total_time=ptk_delay_sum[0] +ptk_delay_sum[l] +...+ptk_delay_sum[rcv_num]
[0147]RTT=(float)total_time/(float)rcv_num
[0148]第一测试端(客户端)在发包出去这个动作之前通过gettimeofday得到一个发包时间tnl (η为测试包的包序),放到1084包里面,发给server端,同时把其与包序放到一个结构体数组S里。第二测试端(server端)在收到2012时,发一个ACK包给client端,ACK大小为72byte,主要包括包序、发包结束标志,是否统计网络延时等。
[0149]当客户端收到server端发过来的ACK的时候,调用网络延时处理接口,使用for循环从S中找到每个包序对应的tl,然后通过gettimeofday得到一个时间tn2,做差值,放到到一个数组ptk_delay_sum里面,同时求到max和min值,当收到发包结束标志的时候,根据ptk_delay_sum数组得到延时的总数total_time,做一个平均值的处理,给到统计接口,显示出RTT值。
[0150]在本发明实施例的一种优选示例中,当异常状况包括发送抖动时,在子步骤S71-S73的基础上,所述步骤103还可以包括:
[0151]子步骤S74、统计各个测试数据包的发送延时时间的平均值,根据所述平均值和各个测试数据包的发送延时时间进行连续传输的平滑平均值差的计算,作为发送抖动的抖动参数。
[0152]如果延时不稳定,忽快忽慢,网络就存在抖动。抖动这个指标,在V0IP、视频会议等场合,是一个非常重要的指标,如果产生抖动,往往声音和图像也会抖动,无法听清楚或者看清楚。
[0153]根据子步骤S71-S73的方法可以得到各个测试数据包的发送延时时间,在多个测试数据包发送延即产生发送抖动,可以首先计算各个测试数据包的发送延时时间的平均值,然后将平均值与各个测试数据包的发送延时时间做连续传输的平滑平均值差的计算,得到的方差即为发送抖动的抖动参数。
[0154]client端在发包出去这个动作之前通过gettimeofday得到一个时间tnl,放到包里面,发给server端,server端在收到2012的时,做抖动的处理:得到一个时间tn2, tnl和tn2做差,得到tn3,其中有一个last_transit(初始值为O),如果其不等于0,delta_t等于t3减去last_transit的绝对值;计算抖动值jitter (初始值为O), jitter等于delta_t减去jitter,同时把t3赋值给last_transit。最后把jitter通过8a07发给client端,计算公式如下:
[0155]第一个包:T13=T11- T12 [0156]last_transit=T13 (初始值为 O)
[0157]第二个包:T23=T21- Τ22
[0158]delta_t2=T23-last_transit (T13)
[0159]jitter2+= (delta_t2 - 0) /16 (初始值为 O)
[0160]last_transit=T23
[0161]第三个包:T33=T31- Τ32
[0162]delta_t3=T33-last_transit (T23)
[0163]jitter3+=(delta_t3 - jitter2【delta_t2/16】)/16
[0164]jitter3+=((T33-T23) - (T23—T13)/16)/16
[0165]last_transit=T33
[0166]以此类推得到jitter的值。
[0167]进一步优选地,本发明实施例的方法还可以包括:
[0168]所述第一测试端对统计得到的表征所述异常状况的参数进行展示,以提供对所述视联网的网络状态进行诊断的依据。
[0169]本实施例中,可以对得到的表征异常状况的参数进行展示,例如,展示数据发送过程中的丢包个数、丢包率、数据包的错位个数、错位率、各个测试数据包的发送延时时间、发送抖动的抖动参数等数据,在具体的实现中,还可以展示统计的最大可用带宽等数据,技术人员根据这些数据可以对网络状态进行诊断,具体的诊断规则可以按照应用环境和需求来设计,本发明对此并不做限制。
[0170]例如,如果测试在某个带宽不丢包,表示网络是稳定的,而且网络是能够承受这个带宽的,而且如果没有包的错位,表示视频很流畅,没有卡顿或者马赛克等情况出现;如果有丢包的话,网络可能承受不了这个带宽,如果延时和抖动差别不大的话,表示网络还是比较稳的,网络带宽没有测试的那么大,可以进一步统计“O丢包率下的最大可用带宽”来检测网络带宽的问题。
[0171]通过本发明实施例,第一测试端连入视联网并通过视联网向第二测试端发送测试数据包,并由第一测试端或第二测试端通过监测测试包的发送是否发生异常情况,并统计相应的表征网络状况异常的参数,从而实现了对视联网的网络状况的监控。
[0172]在具体的实现中,可在机顶盒环境下,可以将本发明实施例的方法做成相应的装置模块在机顶盒中来运行进行测试网络状况,针对视联网专用网络下模拟其音视频包的大小做发包测试,如图3所示,给出了在机顶盒环境下应用本发明实施例的进行视联网的网络状况测试的系统架构图,机顶盒A通过视联网向机顶盒B发送连接,并接收反馈确定连接成功,然后向机顶盒B发送数据包用于测试,并根据返回的协议分析收包处理结果,包括数据包的丢失、错位、延时、抖动等情况,通过对这些参数的分析,来诊断从本地终端到某远端参会终端的网络状态,当视频会议或菜单等出现问题的时候,其他需要知道网络情况的技术人员可作为排查问题的依据。
[0173]为了使本领域技术人员更好地理解本发明,以下通过一个具体的示例说明进行说明,其中,第一测试端为client端,第二测试端为server端。
[0174]如果一个视联网的带宽为20M,要测试带宽是否属实的话,可使用实际带宽做测
试O
[0175]client端的统计结果如下:
[0176]发包总时间:delta_time=5999464μ s
[0177]发一个包理论平均时间:per_pack_time=433.600006 μ s
[0178]发一个包理论实际时间:average_sendpacket_time=433.612610 μ s
[0179]发包个数:sendpacket num: 13836
[0180]收包个数:revpacket num: 13836
[0181]错位个数:displace packet total num:3475
[0182]错位率!displacementrate=0.25%
[0183]actual send bandwidth=[19.999418]Mbps ;total sleep[4346121]
[0184]Round-Trip Time:min/avg/max=0.319/0.473/4.114ms
[0185]抖动jitter:0.061ms
[0186]
Bandwidth Jitter RTT Disorder Dis_per Lost/Total Datagrams
回环乱序丟包/包
带宽抖动乱序率丟包率
延时个数总数
20.00Mbps I 0.061ms 丨 0.473ms I 3475 | (0.25%)丨 0/13836 (0.00%)
[0187]client端根据20M和每个包1084bit的大小计算得到每个周期,发送数据包的个数为13836,得到发送每个包的理论时间为433.600006 μ S,设置一个每次发包的个数为1,然后通过发包动作发包给server端,得到发送数据包的实际时间。发送结束之后(发送最后一个包的时候同时把结束标志发过去),首先得到发送13836个包的总时间5999464 μ S、发送每个包的实际平均时间433.612610 μ s ;然后根据server端发过来的8704协议包得到丢包的情况:8a07中有一个rev—num为13836,与13836做差,得到丢包的个数为0,通过O和13836做除法运算得到丢包率为O。
[0188]根据server端发过来的8704协议包得到错位包的情况:8a07中有一个dis—num为3475,得到错位包的个数为3475,通过3475和13836做除法运算得到错位率为0.25%。
[0189]进一步得到发送抖动的抖动参数为0.061ms。
[0190]相应的,server端的统计结果如下:
[0191]----err packet nol=l
[0192]----err packet no2=2
[0193]----err packet no3=3
[0194]----err packet no4=4
[0195]----err packet no5=23
[0196]----err packet no6 (丢包个数)=4568 (丢包的序列号)
[0197]丢包个数:Errnum=6 [0198]错位个数:disnum=3475
[0199]server端收到client端发过来的数据包,得到包序和结束标志位1,把包序存到一个数组disor—num里面,同时得到最大的包序max ;在接收的过程中接收到的包的个数rev—num自增1,如出现当前包序与接收到的包序不同的时候,做一个丢包个数total—loss—pack自增I的动作,并且设置一个丢包标志位。当end为I的时候,total—loss—pack=3475,判断为发生错位或丢包的情况,设置一个当前希望的理论包序expected—no=l,做一个while循环(条件是rev—num和end),进一步判断:
[0200]当disor—num的某个兀素与expected—no相等时,将expected—no放到一个数组order—num中,expected—no自增1,得到下一个判断的数据包包序在数组的位置num—dis,当disor—num的某个元素与expected—no不相等的时,当while走到num—dis后的20个元素或者大于total—loss—pack-1的话,就认为expected—no这个包丢掉了,err—count自增1,据此得到丢包个数为6,并得到丢失的包序为1、2、3、4、23、4568。
[0201]当expected—no 大于max 的时候,跳出 while,将 disor—num和 order—num做比较,得到dis—num的个数为3475。
[0202]通过3475和13836做差得到错包率(乱序率)为0.25%,通过上述算法得到抖动参数为 0.061ms。
[0203]当使用大于20的带宽做测试时,client端的统计结果如下:
[0204]测试带宽:sendingrate:30.00Mbps
[0205]发包个数:sendpacket num:20754
[0206]收包个数:revpacket num:14098
[0207]当前丢包包序:momentlose packet num:6656
[0208]总共丢包个数:totallose packet num: 19970
[0209]丢包率:losepacket—rate:32.07%
[0210]错位个数:displace packet total num:2021[0211]错位率-displacement rate=0.14%
[0212]抖动参数:variance—sum=43473
[0213]实际带宽:actualbandwidth:20.38Mbps
[0214]Round-Trip Time:min/avg/max=0.329/0.477/4.106ms
[0215]displacement rate:0.14%
[0216]jitter:0.063ms
【权利要求】
1.一种视联网的网络状况测试方法,其特征在于,包括: 第一测试端连入视联网,并通过视联网与第二测试端建立连接; 所述第一测试端生成包含套接字信息的测试数据包,并按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包,所述套接字信息标识所述测试数据包在视联网的数据链路层进行传输的传输路径; 所述第一测试端或第二测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数,以对所述视联网的网络状态进行诊断,所述异常状况包括数据包丢失、数据包错位、发送延时或发送抖动中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述套接字信息包括数据链路层的物理层的协议号、接口索引号、报头类型、分组类型、物理层地址和物理层地址长度中的一种或多种。
3.根据权利要求1所述的方法,其特征在于,所述按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包的步骤包括: 根据预设测试带宽和预设测试包大小,确定每秒发送的测试数据包的个数; 依据所述套接字信息所标识的传输路径,按照确定发送的测试数据包的个数在预设测试时间周期内经视联网逐个匀包向第二测试端发送测试数据包,其中,各个测试数据包携带相应的数据包序号,最后一个测试数据包还携带发送结束标志。
4.根据权利要求1所述的方法,其特征在于,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述表征所述异常状况的参数为数据包丢失率和/或数据包错位率,所述第一测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数的步骤包括: 接收所述第二测试端返回的表示接收到所述测试数据包的协议包; 提取所述协议包中的接收统计参数,将所述接收统计参数与在所述测试时间周期内发送的测试数据包个数做差,得到数据包丢失个数,将所述数据包丢失个数与发送的测试数据包个数相除,得到所述数据包丢失率; 和/或,提取所述协议包中的错位统计参数,得到数据包错位个数,将所述数据包错位个数与发送的测试数据包个数相除,得到所述数据包错位率。
5.根据权利要求1所述的方法,其特征在于,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述第二测试端判断所述测试数据包的发送是否发生异常状况的步骤包括: 所述第二测试端在接收到各个测试数据包时,将当前接收到的测试数据包的数据包序号与预设的接收变量进行比较; 若不一致,则确定发生数据包丢失和/或数据包错位的状况。
6.根据权利要求5所述的方法,其特征在于,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包丢失率,所述第二测试端统计相应的表征所述异常状况的参数的步骤包括: 若依次接收到的数据包包序中存在理论上接收到的所有数据包包序,则确定未发生数据包丢失的状况,若依次接收到的数据包包序中不存在一个或多个理论上接收到的数据包包序,则确定发生数据包丢失的状况;统计依次接收到的数据包包序中所不存在的理论上接收到的数据包包序的个数,作为所述数据包丢失的个数,将所述数据包丢失个数与确定发送的测试数据包个数相除,得到所述数据包丢失率。
7.根据权利要求5所述的方法,其特征在于,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包错位率,所述第二测试端统计相应的表征所述异常状况的参数的步骤包括: 判断依次接收到的数据包包序中是否存在理论上接收到的所有数据包包序,若存在,则确定发生数据包错位的状况; 将依次接收到的数据包包序组成接收数组,将理论上依次接收到的各个数据包包序组成理论数组; 对两个数组进行比较,将两个数组中相同位置不同包序的个数作为所述数据包错位的个数,将所述数据包错位个数与确定发送的测试数据包个数相除,得到所述数据包错位率。
8.根据权利要求1所述的方法,其特征在于,所述测试数据包包括多个,当所述异常状况包括发送延时时,所述第一测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异 常状况的参数的步骤包括: 针对各个测试数据包,在发送各个测试数据包时,记录测试数据包的发送时间和发送的包序; 接收所述第二测试端返回的表示接收到所述测试数据包的应答包,并判断所述应答包所携带的数据包序号是否为所述发送记录参数的当前数值; 若否,则提取所述应答包所携带的接收时间,与所述发送时间做差,得到各个测试数据包的发送延时时间。
9.根据权利要求8所述的方法,其特征在于,当所述异常状况包括发送抖动时,所述第一测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数的步骤还包括: 统计各个测试数据包的发送延时时间的平均值,根据所述平均值和各个测试数据包的发送延时时间进行连续传输的平滑平均值差的计算,作为发送抖动的抖动参数。
10.根据权利要求3所述的方法,其特征在于,所述预设测试带宽为统计多次带宽测试中所述第二测试端接收到的测试数据包的个数得到的视联网的实际带宽、所述视联网的标准带宽或所述视联网在未发生丢包状况下的最大可用带宽。
11.根据权利要求10所述的方法,其特征在于,还包括,通过以下步骤统计所述视联网在未发生丢包状况下的最大可用带宽: 当所述测试数据包的发送发生数据包丢失的异常状况时,将预设最大带宽和预设最小带宽的一半作为所述最大可用带宽; 当所述测试数据包的发送未发生数据包丢失的异常状况时,将所述预设最大带宽和所述预设最小带宽的一半或所述预设最小带宽的预设比例,作为所述最大可用带宽。
12.根据权利要求1所述的方法,其特征在于,还包括: 所述第一测试端对统计得到的表征所述异常状况的参数进行展示,以提供对所述视联网的网络状态进行诊断的依据。
13.一种视联网的网络状况测试装置,其特征在于,包括:连接模块,用于第一测试端连入视联网,并通过视联网与第二测试端建立连接; 测试数据生成模块,用于所述第一测试端生成包含套接字信息的测试数据包; 测试数据发送模块,用于按照所述套接字信息经视联网向所述第二测试端发送所述测试数据包,所述套接字信息标识所述测试数据包在视联网的数据链路层进行传输的传输路径; 异常判断模块,用于所述第一测试端或第二测试端判断所述测试数据包的发送是否发生异常状况,并统计相应的表征所述异常状况的参数,以对所述视联网的网络状态进行诊断,所述异常状况包括数据包丢失、数据包错位、发送延时或发送抖动中的至少一种。
14.根据权利要求13所述的装置,其特征在于,所述套接字信息包括数据链路层的物理层的协议号、接口索引号、报头类型、分组类型、物理层地址和物理层地址长度中的一种或多种。
15.根据权利要求13所述的装置,其特征在于,所述测试数据发送模块包括: 个数确定子模块,用于根据预设测试带宽和预设测试包大小,确定每秒发送的测试数据包的个数; 数据包发送子模块,用于依据所述套接字信息所标识的传输路径,按照确定发送的测试数据包的个数在预设测试时间周期内经视联网逐个匀包向第二测试端发送测试数据包,其中,各个测试数据包携带相应的数据包序号,最后一个测试数据包还携带发送结束标志。
16.根据权利要求13所述的装置,其特征在于,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述表征所述异常状况的参数为数据包丢失率和/或数据包错位率,所述异常判断模块包括: 协议包接收子模块,用于接收所述第二测试端返回的表示接收到所述测试数据包的协议包; 第一丢失率计算子模块,用于提取所述协议包中的接收统计参数,将所述接收统计参数与在所述测试时间周期内发送的测试数据包个数做差,得到数据包丢失个数,将所述数据包丢失个数与发送的测试数据包个数相除,得到所述数据包丢失率; 和/或,第一错位率计算子模块,用于提取所述协议包中的错位统计参数,得到数据包错位个数,将所述数据包错位个数与发送的测试数据包个数相除,得到所述数据包错位率。
17.根据权利要求13所述的装置,其特征在于,所述测试数据包包括多个,当所述异常状况包括数据包丢失和/或数据包错位时,所述异常判断模块包括: 异常确定子模块,用于所述第二测试端在接收到各个测试数据包时,将当前接收到的测试数据包的数据包序号与预设的接收变量进行比较,若不一致,则确定发生数据包丢失和/或数据包错位的状况。
18.根据权利要求17所述的装置,其特征在于,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包丢失率,所述异常判断模块包括: 丢失异常确定子模块,用于若依次接收到的数据包包序中存在理论上接收到的所有数据包包序,则确定未发生数据包丢失的状况,若依次接收到的数据包包序中不存在一个或多个理论上接收到的数据包包序,则确定发生数据包丢失的状况; 第二丢失率计算子模块,用于统计依次接收到的数据包包序中所不存在的理论上接收到的数据包包序的个数, 作为所述数据包丢失的个数,将所述数据包丢失个数与确定发送的测试数据包个数相除,得到所述数据包丢失率。
19.根据权利要求17所述的装置,其特征在于,当所述异常状况包括数据包丢失和数据包错位时,所述表征所述异常状况的参数为数据包错位率,所述异常判断模块包括: 包序确定子模块,用于判断依次接收到的数据包包序中是否存在理论上接收到的所有数据包包序,若存在,则确定发生数据包错位的状况; 数组生成子模块,用于将依次接收到的数据包包序组成接收数组,将理论上依次接收到的各个数据包包序组成理论数组; 第二错位率计算子模块,用于对两个数组进行比较,将两个数组中相同位置不同包序的个数作为所述数据包错位的个数,将所述数据包错位个数与确定发送的测试数据包个数相除,得到所述数据包错位率。
20.根据权利要求13所述的装置,其特征在于,所述测试数据包包括多个,当所述异常状况包括发送延时时,所述异常判断模块包括: 发送处理子模块,用于针对各个测试数据包,在发送各个测试数据包时,记录测试数据包的发送时间和发送的包序; 应答包判断子模块,用于接收所述第二测试端返回的表示接收到所述测试数据包的应答包,并判断所述应答包所携带的数据包序号是否为所述发送记录参数的当前数值,若否,则执行延时计算子模块; 延时计算子模块,用于提取所述应答包所携带的接收时间,与所述发送时间做差,得到各个测试数据包 的发送延时时间。
21.根据权利要求20所述的装置,其特征在于,当所述异常状况包括发送抖动时,所述异常判断模块还包括: 抖动计算子模块,用于统计各个测试数据包的发送延时时间的平均值,根据所述平均值和各个测试数据包的发送延时时间进行连续传输的平滑平均值差的计算,作为发送抖动的抖动参数。
22.根据权利要求15所述的装置,其特征在于,所述预设测试带宽为统计多次带宽测试中所述第二测试端接收到的测试数据包的个数得到的视联网的实际带宽、所述视联网的标准带宽或所述视联网在未发生丢包状况下的最大可用带宽。
23.根据权利要求22所述的装置,其特征在于,还包括: 最大带宽计算模块,用于统计所述视联网在未发生丢包状况下的最大可用带宽; 所述最大带宽计算模块包括: 第一带宽计算子模块,用于当所述测试数据包的发送发生数据包丢失的异常状况时,将预设最大带宽和预设最小带宽的一半作为所述最大可用带宽; 第二带宽计算子模块,用于当所述测试数据包的发送未发生数据包丢失的异常状况时,将所述预设最大带宽和所述预设最小带宽的一半或所述预设最小带宽的预设比例,作为所述最大可用带宽。
24.根据权利要求13所述的装置,其特征在于,还包括: 展示模块,用于所述第一测试端对统计得到的表征所述异常状况的参数进行展示,以提供对所述视联网的网络状态进行诊断的依据。
【文档编号】H04L12/26GK103701658SQ201310577294
【公开日】2014年4月2日 申请日期:2013年11月18日 优先权日:2013年11月18日
【发明者】杨春晖, 吴小灿, 王艳辉, 李殿坤 申请人:北京视联动力国际信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1