技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种链路质量探测方法、装置、设备及存储介质。
相关背景技术
[0002] H.323协议是ITU‑T提出的关于视频监控、视频电话及多媒体会议传输协议H.32x系列中的一部分。它解决了点对点及多点视频监控、视讯会议等媒体应用中诸如呼叫与会话控制、多媒体与带宽管理等问题。H.323因其较为成熟的协议族和良好的扩展性,广泛应用于基于IP的媒体应用系统中。由于互联网情况的复杂性和多样性,急需一种基于H.323协议族来检测媒体流是否正常的方法。相关技术中可以通过检测使用H.323协议的终端是否可以完成正常呼叫,来判断媒体流是否正常,但是此种方法只能判断终端是否正常,并不能测量媒体流的链路质量。
具体实施方式
[0043] 应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0044] 参照图1,图1为本发明实施例方案涉及的硬件运行环境的链路质量探测设备结构示意图。
[0045] 如图1所示,该链路质量探测设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless‑Fidelity,WI‑FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的非易失性存储器(Non‑Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0046] 本领域技术人员可以理解,图1中示出的结构并不构成对链路质量探测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0047] 如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及链路质量探测程序。
[0048] 在图1所示的链路质量探测设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明链路质量探测设备中的处理器1001、存储器1005可以设置在链路质量探测设备中,所述链路质量探测设备通过处理器1001调用存储器1005中存储的链路质量探测程序,并执行本发明实施例提供的链路质量探测方法。
[0049] 基于上述链路质量探测设备,本发明实施例提供了一种链路质量探测方法,参照图2,图2为本发明链路质量探测方法第一实施例的流程示意图。
[0050] 本实施例中,所述链路质量探测方法包括以下步骤:
[0051] 步骤S10:在接收到链路质量探测请求时,提取所述链路质量探测请求中的探测信息。
[0052] 需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,或者是一种能够实现上述功能的电子设备或探测控制器。以下以所述探测控制器为例,对本实施例及下述各实施例进行说明。
[0053] 应理解的是,本实施例对应的场景可以是:在进行视频会议、视频监控等媒体处理前,或者在视频会议、视频监控等媒体无法正常进行的时候,使用媒体流质量探测,并根据探测的结果来判断当前网络环境中是否存在链路质量问题,是否需要调整网络,以及根据探测结果的建议调整媒体流参数。比如,探测结果显示网络环境中存在H.323NAT设备,使用者可以根据实际业务情况,选择是否继续使用当前的网络。探测结果中还会显示链路丢包、延时、抖动、带宽使用率的情况,使用者可以了解当前的网络状况。探测结果中还会使用质量探测模型为使用者计算出来当前链路可以使用的最优媒体流参数。
[0054] 需要说明的是,所述链路质量探测请求可以是用户通过探测控制器的用户界面或API接口提交的探测命令。所述探测信息可以包括:配置的探测终端的运行环境、探测目标地址和端口、探测协议、探测任务周期、探测间隔时间、重试次数等参数信息。
[0055] 步骤S20:根据所述探测信息生成探测任务,并将所述探测任务发送至探测终端,所述探测终端用于与所述探测任务对应的探测服务器执行所述探测任务,并反馈探测信息。
[0056] 需要说明的是,所述根据所述探测信息生成探测任务可以是探测控制器根据所述探测信息中的探测目标地址和端口、探测协议、探测任务周期、探测间隔时间、重试次数、需要探测的链路质量参数等信息生成探测任务。并将所述探测任务发送至所述探测信息中需要进行网络质量探测的探测终端。所述探测终端在接收到探测任务后,会根据探测任务中的探测信息生成探测协商报文,并将探测协商报文发送给要进行网络质量探测的探测服务器。探测服务器接收到所述探测协商报文后,对探测协商报文进行解析和校验,确保探测任务的有效性和安全性;探测服务器根据探测协商报文的信息,准备相关的探测报文(报头、参数、时间),并进行必要的配置和参数设置;探测服务器准备完成后通知探测终端开始探测任务。然后探测服务器和探测终端执行所述探测任务,并对各自接收到的探测报文进行统计和分析,生成探测结果,探测服务器将生成探测结果发送至探测终端,因此,所述探测信息包括探测服务器根据接收到的探测报文生成的探测结果和探测终端根据接收到的探测报文生成的探测结果。
[0057] 进一步的,为了使探测终端和探测服务器能够顺利完成所述探测任务。还需要检测H.323常用协议报文是否经过H.323网络地址转换设备。若经过,则可能由于网络地址的转换,探测终端和探测服务器无法进行数据交互以及完成探测任务。因此,所述步骤S10之前,还包括:接收探测服务器与探测终端的呼叫信息;根据所述呼叫信息判断探测协议报文是否经过网络地址转换;若探测协议报文经过网络地址转换,则根据所述探测终端的网络参数确定网络地址映射信息。
[0058] 需要说明的是,所述呼叫信息可以是探测服务器接收到的探测终端发送的H.323报文的协议类型和使用的IP及端口等信息。所述根据所述呼叫信息判断探测协议报文是否经过网络地址转换可以是探测服务器收到探测终端发来的H.323报文等信息后,根据不同的协议类型解析payload,提取IP和端口进行对比,判断是否经过了H.323NAT设备。若经过了网络地址转换,则根据所述探测终端的网络参数确定网络地址映射信息,在后续进行数据交互和探测时,根据所述网络地址映射信息将探测协议报文发送至探测终端。
[0059] 步骤S30:接收所述探测终端反馈的所述探测信息,并根据所述探测信息生成链路质量探测结果。
[0060] 需要说明的是,根据所述探测信息生成链路质量探测结果可以是根据所述探测信息中的探测报文交互情况、链路质量参数、报文是否完整、NAT设备是否存在等信息确定当前的网络质量参数,并根据所述网络质量参数生成链路质量探测结果。还可以根据探测信息进行探测任务的管理和优化,例如调整探测频率、调整探测终端的参数、重新指定探测目标地址等,探测控制器还可以使用探测信息,对应用程序进行优化和改进,提高用户的体验和媒体流的质量。
[0061] 在具体实施中,探测终端和探测服务器执行探测任务的具体步骤可以是:
[0062] 1、探测控制器根据用户的请求,配置探测相关信息,并下发探测任务。
[0063] 用户可以通过探测控制器的用户界面或API接口提交探测任务请求;
[0064] 探测控制器根据探测任务,配置探测终端的运行环境、探测目标地址和端口、探测协议、探测任务周期、探测间隔时间、重试次数等参数;
[0065] 探测控制器将配置好的探测任务下发给探测终端;
[0066] 如果需要对多个探测任务进行管理,探测控制器可以使用调度算法对探测任务进行调度和优化。
[0067] 2、探测终端收到探测任务后,根据探测任务内容构造探测协商报文,并将探测协商报文发送给探测服务器。探测服务器接收到探测协商报文后进行相应的准备工作。
[0068] 探测协商报文中包含探测任务的相关信息,例如目标地址、探测协议、探测参数等;
[0069] 探测终端根据探测任务的信息,准备相关的探测协商报文,并进行必要的配置和参数设置;
[0070] 探测终端使用TCP或UDP协议将探测协商报文发送给探测服务器;
[0071] 探测服务器对探测协商报文进行解析和校验,确保探测任务的有效性和安全性;
[0072] 探测服务器根据探测协商报文的信息,准备相关的探测报文(报头、参数、时间),并进行必要的配置和参数设置;
[0073] 探测服务器准备完成后通知探测终端开始探测任务。
[0074] 3、探测服务器和探测终端执行探测任务,并对各自接收到的报文进行统计和分析。
[0075] 探测服务器和探测终端将准备好的探测报文按照指定的时间间隔发出。
[0076] 探测服务器和探测终端对收发的探测报文进行统计和分析;
[0077] 4、探测服务器和探测终端的探测结果汇总到探测终端。
[0078] 完成发送后,探测服务器基于对报文的统计和分析,得出探测结果,例如网络质量情况、报文是否完整、NAT设备是否存在等;
[0079] 探测服务器将探测结果发送给探测终端;
[0080] 完成发送后,探测终端也基于对收到的报文的统计和分析,得出探测结果,例如网络质量情况、报文是否完整、NAT设备是否存在等;
[0081] 探测终端收发探测服务器发送的探测结果后,将本地得到的探测结果汇总。
[0082] 5、探测终端将汇总的探测结果发送给探测控制器,探测控制器根据收到的汇总的探测结果,对探测任务进行管理和优化。
[0083] 探测终端将本次探测结果信息上报给探测控制器,包括探测报文交互情况、链路质量参数、报文是否完整、NAT设备是否存在等信息;
[0084] 探测控制器根据收到的探测结果信息,进行探测任务的管理和优化,例如调整探测频率、调整探测终端的参数、重新指定探测目标地址等;
[0085] 探测控制器还可以使用探测结果信息,对应用程序进行优化和改进,提高用户的体验和媒体流的质量。
[0086] 本实施例需要探测控制器,探测终端和探测服务器共同完成。探测终端收到探测控制器发来的探测请求后,根据探测的信息生成对应的H.323报文;探测终端将报文和对应的校验信息发给探测服务器;探测服务器和探测终端按照要求进行探测报文的收发,探测服务器计算完成探测结果后返回给探测终端,探测终端进行链路质量参数结果的汇总,并将这些汇总后的信息上报给探测控制器进行展示和优化。
[0087] 本实施例在接收到链路质量探测请求时,提取所述链路质量探测请求中的探测信息;根据所述探测信息生成探测任务,并将所述探测任务发送至探测终端,所述探测终端用于与所述探测任务对应的探测服务器执行所述探测任务,并反馈探测信息;接收所述探测终端反馈的所述探测信息,并根据所述探测信息生成链路质量探测结果。由于本实施例是根据探测信息生成探测任务,接收探测终端与探测任务对应的探测服务器执行探测任务生成的探测信息,根据探测信息生成链路质量探测结果。相对于现有的通过定期发送心跳包的方式检测两个系统的连接状态,本实施例上述方式能够获取包含链路质量参数的探测结果,检测网络环境中是否存在网络质量问题。
[0088] 参考图3,图3为本发明链路质量探测方法第二实施例的流程示意图。
[0089] 基于上述第一实施例,在本实施例中,所述步骤S30之后,还包括:
[0090] 步骤S401:根据所述链路质量探测结果确定当前媒体流参数。
[0091] 需要说明的是,所述当前媒体流参数可以包括延迟值、丢包率、抖动值、最大帧率、可用带宽、最大分辨率等参数以及参数值。
[0092] 步骤S402:基于预设媒体流参数算法和所述当前媒体流参数确定目标媒体流参数。
[0093] 需要说明的是,所述目标媒体流参数可以包括最优码率、最优帧率,最优分辨率。所述基于预设媒体流参数算法和所述当前媒体流参数确定目标媒体流参数可以是根据所述当前媒体流参数和预设参数阈值确定初始网络参数;
[0094] 对所述初始网络参数进行归一化,得到目标网络参数;
[0095] 基于预设媒体流参数算法和所述目标网络参数确定目标媒体流参数。
[0096] 需要说明的是,所述预设参数阈值可以是预先设置的延迟值阈值、丢包率阈值以及抖动阈值等。所述根据所述当前媒体流参数和预设参数阈值确定初始网络参数可以是根据所述当前媒体流参数除所述当前媒体流参数对应的预设参数阈值得到初始网络参数。例如,将实际测量到的延迟值除以预先设定的延迟值阈值得到初始延迟值。对所述初始网络参数进行归一化可以是将所述初始网络参数归一化至[0,1]范围内。所述基于预设媒体流参数算法和所述目标网络参数确定目标媒体流参数可以是基于所述目标网络参数参照以下算法计算目标媒体流参数:
[0097] 最优码率=(1‑归一化延迟系数)*(1‑归一化丢包率系数)*(1‑归一化抖动系数)*可用带宽
[0098] 最优帧率=最大帧率*(1‑归一化延迟系数)*(1‑归一化丢包率系数)[0099] 最优分辨率=最大分辨率*(1‑归一化延迟系数)*(1‑归一化丢包率系数)[0100] 其中,归一化延迟系数:将实际测量到的延迟值除以预先设定的最大延迟值,将结果归一化至[0,1]范围内。归一化延迟系数表示实际延迟占最大延迟的百分比。
[0101] 归一化丢包率系数:将实际测量到的丢包率除以预先设定的最大丢包率值,将结果归一化至[0,1]范围内。归一化丢包率系数表示实际丢包率占最大丢包率的百分比。
[0102] 归一化抖动系数:将实际测量到的抖动值除以预先设定的最大抖动值,将结果归一化至[0,1]范围内。归一化抖动系数表示实际抖动占最大抖动的百分比。
[0103] 可用带宽:实际可用的网络带宽,可以通过带宽估计算法(如BBR、RENO等)来获取。
[0104] 最大帧率:设备支持的最大帧率,例如60fps、30fps等。
[0105] 最大分辨率:设备支持的最大分辨率,例如1920x1080、1280x720等。
[0106] 步骤S403:将所述目标媒体流参数发送至所述探测终端,所述探测终端用于基于所述目标媒体流参数与探测服务器进行数据交互。
[0107] 在具体实施中,在探测控制器根据链路质量探测结果计算出最优的目标媒体流参数后,可将所述目标媒体流参数发送至探测终端和探测服务器,以使探测终端和探测服务器根据所述目标媒体流参数进行数据交互。
[0108] 本实施例根据所述链路质量探测结果确定当前媒体流参数;基于预设媒体流参数算法和所述当前媒体流参数确定目标媒体流参数;将所述目标媒体流参数发送至所述探测终端,所述探测终端用于基于所述目标媒体流参数与探测服务器进行数据交互。本实施例为用户提供了最优的媒体流参数;经过探测获取到的数据和信息可以为终端进行媒体应用提供了更多的参考,以便用户可以及时调整网络拓扑和媒体流参数,从而进行高质量的媒体流服务。
[0109] 参考图4,图4为本发明链路质量探测方法第三实施例的流程示意图。
[0110] 基于上述各实施例,在本实施例中,所述步骤S30之后,所述方法还包括:
[0111] 步骤S501:根据所述链路质量探测结果确定网络参数信息。
[0112] 需要说明的是,所述网络参数信息可以包括探测终端和探测服务器进行探测时探测报文采用的协议信息以及探测终端和探测服务器的基本设备信息。
[0113] 步骤S502:获取所述探测终端与所述探测服务器的业务信息。
[0114] 需要说明的是,所述业务信息可以是所述探测终端与所述探测服务器之间进行的数据交互的需求。
[0115] 步骤S503:根据所述业务信息和所述网络参数信息确定探测报文类型;
[0116] 需要说明的是,所述探测报文类型可以包括基于UDP的H.225RAS信令、基于TCP的H.225呼叫信令以及基于TCP的H.245媒体控制信令。
[0117] 应理解的是,使用H.323协议族进行一次完整的呼叫过程涉及到H.225和H.245两种协议;同时,使用H.225传输层的协议还包含UDP和TCP两种;应用H.323协议族的可拓展特性,可以在探测报文中增加媒体流两端设备的基本信息以及媒体流应用可以支持的能力以及相关校验等。因此,可以在标准H.323协议的基础上对探测报文进行优化,探测控制器可以根据使用者的需求,通知探测终端生成如下几种类型的报文:基于UDP的H.225RAS信令、基于TCP的H.225呼叫信令以及基于TCP的H.245媒体控制信令。
[0118] 步骤S504:将所述探测报文类型发送至所述探测终端,所述探测终端用于基于所述探测报文类型生成探测协商报文,通过所述探测协商报文与探测服务器执行所述探测任务。
[0119] 本实施例根据所述链路质量探测结果确定网络参数信息;获取所述探测终端与所述探测服务器的业务信息;根据所述业务信息和所述网络参数信息确定探测报文类型;将所述探测报文类型发送至所述探测终端,所述探测终端用于基于所述探测报文类型生成探测协商报文,通过所述探测协商报文与探测服务器执行所述探测任务。能够提高探测服务器与探测终端的探测效率以及数据交互效率。
[0120] 参照图5,图5为本发明链路质量探测装置第一实施例的结构框图。
[0121] 如图5所示,本发明实施例提出的链路质量探测装置包括:
[0122] 探测信息提取模块10,用于在接收到链路质量探测请求时,提取所述链路质量探测请求中的探测信息;
[0123] 探测模块20,用于根据所述探测信息生成探测任务,并将所述探测任务发送至探测终端,所述探测终端用于与所述探测任务对应的探测服务器执行所述探测任务,并反馈探测信息;
[0124] 链路质量探测结果生成模块30,用于接收所述探测终端反馈的所述探测信息,并根据所述探测信息生成链路质量探测结果。
[0125] 本实施例在接收到链路质量探测请求时,提取所述链路质量探测请求中的探测信息;根据所述探测信息生成探测任务,并将所述探测任务发送至探测终端,所述探测终端用于与所述探测任务对应的探测服务器执行所述探测任务,并反馈探测信息;接收所述探测终端反馈的所述探测信息,并根据所述探测信息生成链路质量探测结果。由于本实施例是根据探测信息生成探测任务,接收探测终端与探测任务对应的探测服务器执行探测任务生成的探测信息,根据探测信息生成链路质量探测结果。相对于现有的通过定期发送心跳包的方式检测两个系统的连接状态,本实施例上述方式能够获取包含链路质量参数的探测结果,检测网络环境中是否存在网络质量问题。
[0126] 需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
[0127] 另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的链路质量探测方法,此处不再赘述。
[0128] 基于本发明上述链路质量探测装置第一实施例,提出本发明链路质量探测装置的第二实施例。
[0129] 在本实施例中,所述链路质量探测结果生成模块30,还用于根据所述链路质量探测结果确定当前媒体流参数;
[0130] 基于预设媒体流参数算法和所述当前媒体流参数确定目标媒体流参数;
[0131] 将所述目标媒体流参数发送至所述探测终端,所述探测终端用于基于所述目标媒体流参数与探测服务器进行数据交互。
[0132] 进一步的,所述链路质量探测结果生成模块30,还用于根据所述当前媒体流参数和预设参数阈值确定初始网络参数;
[0133] 对所述初始网络参数进行归一化,得到目标网络参数;
[0134] 基于预设媒体流参数算法和所述目标网络参数确定目标媒体流参数。
[0135] 进一步的,所述链路质量探测结果生成模块30,还用于根据所述链路质量探测结果确定网络参数信息;
[0136] 获取所述探测终端与所述探测服务器的业务信息;
[0137] 根据所述业务信息和所述网络参数信息确定探测报文类型;
[0138] 将所述探测报文类型发送至所述探测终端,所述探测终端用于基于所述探测报文类型生成探测协商报文,通过所述探测协商报文与探测服务器执行所述探测任务。
[0139] 进一步的,所述探测信息提取模块10,还用于接收探测服务器与探测终端的呼叫信息;
[0140] 根据所述呼叫信息判断探测协议报文是否经过网络地址转换;
[0141] 若探测协议报文经过网络地址转换,则根据所述探测终端的网络参数确定网络地址映射信息。
[0142] 进一步的,所述探测终端在接收到所述探测任务时,生成探测协商报文,并将所述探测协商报文发送至探测服务器;
[0143] 所述探测服务器对所述探测协商报文进行解析和校验,并在校验通过后通知所述探测终端开始执行所述探测任务。
[0144] 进一步的,所述探测终端将所述探测协商报文通过TCP或UDP协议发送至探测服务器。
[0145] 本发明链路质量探测装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
[0146] 此外,本发明实施例还提出一种存储介质,所述存储介质上存储有链路质量探测程序,所述链路质量探测程序被处理器执行时实现如上文所述的链路质量探测方法的步骤。
[0147] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0148] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0149] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0150] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。