1.本发明一般地涉及多媒体通信技术领域。更具体地,本发明涉及一种用于对多媒体网络状况进行检测的方法、用于传输多媒体网络中媒体数据包的方法和电子设备。
背景技术:2.本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本技术的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
3.通常多媒体网络系统中的终端需要通过媒体转发服务器(selectiveforwarding unit,sfu)来对媒体数据进行转发。特别在复杂的网络结构中,通过分布式部署sfu以使处于不同网络中的终端可以互联互通。例如,在使用多媒体网络系统进行音视频时,可以根据多个维度(例如网络扑结构、负载均衡、用户归属等)决定终端所接入的sfu以及两个终端间媒体包的路由网络路径等。可以看出,不同终端间所涉及的路由网络路径会根据网络状态而动态改变,一旦出现网络问题导致音视频质量下降或不稳定时,相关人员很难了解到网络的具体状况。为此,在相关技术中通常需要人工来进行问题分析(例如人为通过日志来获取网络路径,并逐一在网络路径上各个节点处进行抓包分析),使得整个问题分析过程不仅操作繁杂,且问题定位精度以及效率均偏低。
技术实现要素:4.为了至少解决上述背景技术部分所描述的技术问题,本发明提出了一种用于对多媒体网络状况进行检测的方案。利用本发明的方案,无需引入过多人为操作,通过对目标媒体数据包的分析,即可实现对多媒体网络状况的精准定位分析。可以看出,本发明的方案可以有效提高分析多媒体网络状况的精准度和效率。鉴于此,本发明在如下的多个方面提供解决方案。
5.另外,本发明还提出了一种传输多媒体网络中媒体数据包的方案,使得多媒体网络中的各个节点可以将检测的多媒体网络状况信息汇总在媒体数据包中,为基于媒体数据包实现对网络的精准定位分析提供有利保障。
6.本发明的第一方面提供了一种用于对多媒体网络状况进行检测的方法,所述方法包括:获取目标媒体数据包,其中所述目标媒体数据包包括所述多媒体网络中各个节点对所述多媒体网络状况的检测信息;对所述目标媒体数据包进行解析,以得到所述各个节点对所述多媒体网络状况的检测信息;以及基于所述各个节点对所述多媒体网络状况的检测信息,确定所述多媒体网络的状况。
7.在一个实施例中,其中所述检测信息包括各个节点的标识信息、其与上一节点之间的数据接收状况信息和/或与下一节点之间的数据发送状况信息。
8.在一个实施例中,其中所述数据接收状况信息包括丢包率信息和抖动信息,所述数据发送状况信息包括网络延时信息。
9.在一个实施例中,其中所述目标媒体数据包包括填充位字段、填充内容字段和填充长度字段,其中所述检测信息填充在所述填充内容字段中,其中对所述目标媒体数据包进行解析包括:响应于所述填充位字段为预定字段,根据所述填充长度字段,解析所述填充内容字段中的检测信息。
10.本发明的第二方面提供了一种用于传输多媒体网络中媒体数据包的方法,所述多媒体网络包括用于传输媒体数据包的始发节点和多个中间节点,所述方法包括在所述始发节点处执行以下操作:获取待传输的媒体数据包;获取对所述多媒体网络状况的检测信息;以及按照预定填充格式将所述检测信息填充至所述媒体数据包中,并将其发送至相邻的中间节点。
11.在一个实施例中,其中所述媒体数据包包括填充位字段、填充内容字段和填充长度字段,其中按照预定填充格式将所述检测信息填充至所述媒体数据包中包括:按照预定填充格式将所述检测信息填充至所述填充内容字段中;以及根据所述检测信息的长度确定所述填充长度字段中的数值。
12.在一个实施例中,其中将其发送至相邻的转发节点包括:响应于获取到关于所述多媒体网络状况的检测信令,周期性地将所述媒体数据包发送至相邻的中间节点。
13.本发明的第三方面提供了一种用于传输多媒体网络中媒体数据包的方法,所述多媒体网络包括用于传输媒体数据包的始发节点、多个中间节点以及最终节点,所述方法包括在每个中间节点处执行以下操作:获取相邻的上一节点发送的媒体数据包,其中所述上一节点包括始发节点或中间节点;获取当前中间节点对所述多媒体网络状况的检测信息;以及按照预定填充格式将所述检测信息填充至所述媒体数据包中,并将其发送至相邻的下一节点,其中所述下一节点包括中间节点或最终节点。
14.在一个实施例中,其中所述媒体数据包包括填充位字段、填充内容字段和填充长度字段,其中按照预定填充格式将所述检测信息填充至所述媒体数据包中包括:检测所述填充位字段是否是预定字段;响应于所述填充位字段是预定字段,按照预定填充格式将所述检测信息填充至所述填充内容字段中;以及根据所述填充内容字段中的所有检测信息的长度更新所述填充长度字段中的数值。
15.本发明的第四方面提供了一种电子设备,包括:处理器;以及存储器,其存储有用于对多媒体网络状况进行检测的计算机指令,当所述计算机指令由所述处理器运行时,使得所述电子设备执行前文第一方面以及在下文多个实施例中所述的方法,或存储有用于传输多媒体网络中媒体数据包的计算机指令,当所述计算机指令由所述处理器运行时,执行前文第二方面以及下文多个实施例中所述的方法,或执行前文第三方面以及下文多个实施例中所述的方法。
16.本发明的第五方面提供了一种计算机程序产品,包括用于对多媒体网络状况进行检测的计算机指令,当所述计算机指令由所述处理器运行时,使得实现前文第一方面以及在下文多个实施例中所述的方法,或包括用于传输多媒体网络中媒体数据包的计算机指令,使得实现前文第二方面以及在下文多个实施例中所述的方法或者执行前文第三方面以及下文多个实施例中的方法。
或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0028]
下面结合附图来详细描述本发明的具体实施方式。
[0029]
为了能够更好地理解本发明的方案,以下将结合图1对多媒体网络系统进行简单说明。
[0030]
图1是示出根据本发明实施例的多媒体网络系统的示例性场景100的示图。在本发明的上下文中,前述的场景100可以是各种设备进行媒体数据包交互的场景。例如,利用多媒体网络系统进行视频或音频交互的场景等。其中,前述的设备可以包括能够支持媒体数据包传输的各种终端或服务器。例如,终端可以包括手机、平板、电脑、智能可穿戴设备以及其他支持音视频交互的终端等,而服务器可以包括支持媒体数据包转发的服务器,例如sfu。在本发明的上下文中,前述的设备和服务器的数量并不限定。例如,图1中的终端1、终端2、sfu1以及sfu2也仅是示例性说明, sfu1和sfu2之间还可以存在多个sfu,这些设备均可作为多媒体网络中的各个节点。
[0031]
如图1所示,用户在利用终端1与终端2进行音频或视频会议过程中有检测网络状况需求时,根据本发明的技术方案,多媒体网络系统中的各个节点可以将对多媒体网络状况的检测信息汇总至媒体数据包中。例如,终端2将自身的检测信息添加至媒体数据包,并将其转发给sfu2。sfu2 同样将自身的检测信息添加至该媒体数据包,然后继续转发至下一节点 sfu1。sfu1在执行完前述相同的检测信息添加操作后发送至终端1。而终端1在完成自身的检测信息添加操作之后,即可获得包含所有节点的检测信息的目标媒体数据包。然后,利用对该目标媒体数据包的分析即可确定网络的状况。需要说明的是,这里以终端2为媒体流的始发节点且以终端1为最终节点为例进行说明,并不对本发明的方案进行限制。例如,媒体流的始发节点和最终节点可以根据不同用户对网络的检测需求进行调整,本发明的方案均能够对始发节点和最终节点之间的网络状况进行精准定位。
[0032]
图2是示出根据本发明实施例的用于对多媒体网络状况进行检测的方法200的流程图。可以理解的是,这里的多媒体网络可以是图1中所描述的多媒体网络,因此前文结合图1中的细节描述同样也适用于下文。如前所述,多媒体网络中的多个节点可以包括起始节点、中间节点以及最终节点,其中起始节点和最终节点可以包括终端,而中间节点可以包括媒体转发服务器。而图2中所示的步骤可以在最终节点侧执行。
[0033]
如图2所示,在步骤s201处,可以获取目标媒体数据包。其中所述目标媒体数据包包括前述各个节点对多媒体网络状况的检测信息。在一些实施例中,可以根据一些触发机制来获取该目标媒体数据包。例如,可以通过触发按钮(具体可以是部署在最终节点上的实体按钮或部署在音视频交互界面上的虚拟按钮等),或者预定义触发手势等触发对网络的检测需求。然后,响应该网络检测需求来执行对目标媒体数据包的获取操作。可以理解的是,这里对获取目标媒体数据包的描述仅是一种示例性说明,本发明的方案并不受此限制。
[0034]
接着,在步骤s202处,可以对前述的目标媒体数据包进行解析,以得到前述各个节点对多媒体网络状况的检测信息。在一些实施场景中,前述的检测信息可以包括各个节点的标识信息(例如节点ip或节点名称等)、其与上一节点之间的数据接收状况信息(例如丢包率信息、抖动信息等) 和/或与下一节点之间的数据发送状况信息(例如网络延时信息等)。可以理解的是,这里对检测信息中所包含内容的描述仅是一种示例性说明,并不对本发明的方案进行限制,其他能够表示网络状况的信息也可以包含在该检测信息中。
[0035]
在一些实施例中,前述的媒体数据包可以包括填充位字段、填充内容字段和填充长度字段,且前述的检测信息填充在该填充内容字段中。基于此,前述对媒体数据包的解析具体可以涉及响应于前述的填充位字段为预定字段,可以根据该填充长度字段来解析填充内容字段中的检测信息。可以理解的是,这里对目标媒体数据包的内容以及解析方式的描述仅是一种示例性说明,具体需要根据承载该媒体数据包的网络传输协议来适应性调整。在一些实施例中,前述的网络传输协议可以是实时传输协议(real-timetransport protocol,rtp)或其他自定义协议。
[0036]
接着,在步骤s203处,可以基于前述各个节点对多媒体网络状况的检测信息来确定多媒体网络的状况。在一些实施例中,如前所述,各个节点的检测信息可以包括该节点的标识信息和其与其他节点之间的数据收发状况信息。通过各个节点的标识信息可以确定媒体数据包所途径的完整网络路径,以及各个节点之间的网络状况,从而实现对可能存在的问题的精准定位,并有效提高了分析效率。进一步地,在一些实施例中,还可以对多媒体网络的状况进行展示,例如可以直接在最终节点侧的音视频屏幕上展示,以便用户能够直观地查看到相关信息,从而提升用户使用体验。还可以将多媒体网络的状况发送至指定终端,以利于运维人员后期的跟进和完善。
[0037]
以下结合图3和图4对媒体数据包在多媒体网络中的传输过程进一步说明。
[0038]
图3是示出根据本发明实施例的用于传输多媒体网络中媒体数据包的一个方法300的流程图。可以理解的是,这里的多媒体网络可以是图1和图2中所描述的多媒体网络,因此前文结合图1和图2中的细节描述同样也适用于下文。如前所述,多媒体网络中的多个节点可以包括起始节点、中间节点以及最终节点,其中起始节点和最终节点可以包括终端,而中间节点可以包括媒体转发服务器。而图3中所示的步骤可以在始发节点侧执行。
[0039]
如图3所示,在步骤s301处,可以获取待传输的媒体数据包。在一些实施场景中,前述的最终节点可以发起对网络的检测信令,而起始节点在接收到该检测信令时,可以抓取当前的媒体数据包作为所述待传输的媒体数据包。可以理解的是,这里对获取媒体数据包的描述仅是示例性说明,本发明的方案并不受此限制。
[0040]
接着,在步骤s302处,可以获取对多媒体网络状况的检测信息。在一些实施例中,前述的检测信息可以包括起始节点的标识信息以及其与下一节点之间的网络延时信息(例如网络回环延迟)。可以理解的是,这里对检测信息的内容描述仅是一种示例性说明,本发明的方案并不受此限制。另外,前述的网络回环延迟具体可以根据承载前述媒体数据包的网络传输协议来确定。
[0041]
接着,在步骤s303处,可以按照预定填充格式将检测信息填充至前述的媒体数据包中,并将其发送至相邻的中间节点。在一些实施例中,前述的媒体数据包可以包括填充位字段、填充内容字段和填充长度字段。基于此,前述的检测信息的填充方式具体可以涉及按照预定填充格式将检测信息填充至填充内容字段中。接着,可以根据检测信息的长度来确定填充长度字段中的数值。其中,填充位字段的设置可以用来标识是否需要进行信息填充,而填充长度字段可以用来指示所填充信息的长度,以利于下一节点对上一节点所填充内容精准定位。可以理解的是,这里对媒体数据包的描述仅是示例性说明,其具体内容可以根据承载其的网络传输协议进行调整。
[0042]
在一些实施例中,在完成检测信息的填充之后,可以周期性地将媒体数据包发送
至相邻的中间节点。可以理解的是,这里的各个周期的间隔时间可以根据需求进行调整,通过周期性地发送该媒体数据包,可保证最终节点能够接收到该媒体数据包。替换地,还可以仅向中间节点发送一次或无规律的有限次该媒体数据包。
[0043]
图4是示出根据本发明实施例的用于传输多媒体网络中媒体数据包的另一个方法400的流程图。可以理解的是,这里的多媒体网络可以是图1 至图3中所描述的多媒体网络,因此前文结合图1至图3中的细节描述同样也适用于下文。如前所述,多媒体网络中的多个节点可以包括起始节点、中间节点以及最终节点,其中起始节点和最终节点可以包括终端,而中间节点可以包括媒体转发服务器。而图4中所示的步骤可以在每个中间节点处执行。
[0044]
如图4所示,在步骤s401处,可以获取相邻的上一节点发送的媒体数据包。可以理解的是,这里的上一节点可以包括中间节点或始发节点。在一些实施例中,如前所述,该媒体数据包可以包括填充位字段、填充内容字段和填充长度字段。
[0045]
接着,在步骤s402处,可以获取当前节点对多媒体网络状况的检测信息。在一些实施例中,前述的检测信息可以包括当前节点的标识信息和其与其他节点之间的数据收发信息(例如丢包率信息、抖动信息以及网络回环延迟等)。而前述的丢包率信息、抖动信息和网络回环延迟具体可以根据承载前述媒体数据包的网络传输协议来确定。
[0046]
接着,在步骤s403处,可以按照预定填充格式将前述的检测信息填充至该媒体数据包中,并将其发送至相邻的下一节点。可以理解的是,这里的下一节点可以包括中间节点或最终节点。而前述的预定填充格式可以根据具体的网络传输协议来设定。在一些实施例中,该媒体数据包可以参考前文结合图2和图3所描述的媒体数据包,这里就不再赘述。基于此,在进行检测信息填充时,可以检测该媒体数据包中的填充位字段是否是预定字段。在确定是预定字段时,说明需要进行信息填充。此时可以按照前述的预定填充格式将检测信息填充至填充内容字段中,并根据填充内容字段中的所有检测信息的长度来更新填充长度字段中的数值。可以理解的是,这里对检测信息的填充方式的描述仅是一种示例性说明,本发明的方案并不受此限制。
[0047]
以下以图1中的终端1为最终节点、终端2为始发节点、sfu1和sfu2 为中间节点以及实时传输协议rtp作为承载媒体数据包的网络传输协议为例进一步说明。这里需要说明的是,在多媒体网络系统中的节点间传输 rtp数据包时,还可以通过实时传输控制协议(rtp control protocol, rtcp)进行网络质量的测量和反馈。例如,媒体数据包发送者可以发送 rtcp/sr(即发送者报告),而媒体数据包接收者可以利用rtp规范定义的包序号、时间戳等信息计算出丢包率、抖动等数据。然后,通过rtcp/rr (即接收者报告)向媒体数据包发送者反馈。在媒体数据包发送者收到 rtcp/rr后,可以计算出两者之间的网络回环延迟(round-trip time, rtt)。
[0048]
另外,不同于相关技术中终端1和终端2直接互发rtcp/sr和 rtcp/rr、并由中间各sfu进行透传的方式。本发明的多媒体网络系统中的各个相邻节点可以直接互相发送rtcp/sr和rtcp/rr。
[0049]
基于上述描述,在终端1开启网络检测功能时,可以通过检测信令将检测命令发送至终端2。而终端2接收到该检测信令后,可以进入网络检测状态。接着,可以周期性(例如每隔1秒)选择一个当前待传输的rtp 数据包进行传输,并可以将该rtp数据包的包头pad位置设置为1(即设置预定字段),以表示需要追加该节点的标识信息和网络质量测量数据(例如
通过rtcp计算获得的rtt、抖动和丢包率等)。另外,还可以利用数据包的最后一个字节来代表所有填充字节的数量(包括该长度字节本身)。需要说明的是,网络检测功能的发起者也可以是终端2,或者还可以是中间sfu,具体可以实际需求进行调整。
[0050]
在一些实施例中,中间的各个sfu收到包头pad位为1的rtp数据包时,需要追加自己的标识信息以及网络质量测量数据。而终端1收到 rtp数据包后,通过对该rtp数据包的解析即可获知该路媒体流所途径的完整网络路径,以及各段网络之间的网络质量测量数据。最后,在确定无需再继续检测时,可以通过终端1通知终端2退出网络检测状态。
[0051]
在一些实施例中,多媒体网络系统中各个节点所需填充数据的格式可以参考表1:
[0052]
节点类型6bit.0-终端,1-sfu,其他保留,便于扩展更多类型地址类型2bit.0-ipv4,1-ipv6,其他保留ip地址ipv4:4字节;ipv6:16字节丢包率1字节.丢包率百分比抖动2字节.单位:毫秒.若超过最大值65535,则取最大值rtt2字节.单位:毫秒.若超过最大值65535,则取最大值
[0053]
表1
[0054]
在一些实施例中,终端2在接收到检测信令后,具体可以将待传输的rtp包头的
‘
p’位(即填充位)修改为1。然后,在rtp负载最后按表 1定义的格式追加相关信息,其中节点类型为0(表示终端),地址类型和ip地址可以根据实际填写,丢包率和抖动填写0,rtt填写终端2到 sfu2之间的网络回环延迟。最后追加一个长度字节,表示这段填充信息的实际长度。
[0055]
而当各sfu收到rtp数据包后,首先可以检查rtp包头的
‘
p’位是否为1,如果为0则直接转发;如果为1,代表需要填写网络质量测量数据。在一些实施例中,可以先记录rtp数据包最后一个字节的长度,然后删除该长度字节。接着,再按表1定义的格式追加相关信息。其中丢包率和抖动是该sfu作为接收者测量的数据,即该sfu从前一节点(始发节点或sfu)接收数据方向的丢包率和抖动。而rtt是sfu作为发送者测量的数据,即该sfu和下一节点(sfu或最终节点)间的网络回环延迟。然后,计算总填充长度(其中总填充长度=原有填充长度+本次填充长度),并在rtp数据包最后追加一个长度字节,把总填充长度填入。
[0056]
当终端1收到rtp数据包后,首先检查rtp包头的
‘
p’位是否为1,如果为0,则直接进行下一步处理;如果为1,则首先读取rtp包最后一个字节,以获得总填充长度。然后,根据该总填充长度向前查找,直至找到填充的首字节。接着,从填充首字节开始,按表1格式定义依次解析出各个节点追加的地址信息及网络质量测量数据,并通过用户交互界面向用户展示。例如,某终端收到某rtp数据包并解析填充信息后,可能包含如
[0057]
表2所示信息:
[0058]
节点类型地址类型ip地址丢包率抖动rtt001.1.1.10%05102.2.2.210%110103.3.3.310%25
[0059]
表2
[0060]
其中,表2中数据表示发送该rtp数据包的终端2的ip地址为1.1.1.1,它到sfu2之间的网络回环延迟为5ms;sfu2的ip地址为2.2.2.2,初始节点到sfu2方向的丢包率为10%,
5014、gpu 5015、fpga 5016、mlu 5017和通信接口5018可以通过总线5019相互连接,并且通过该总线与外围设备实现数据交互。在一个实施例中,通过该总线5019,cpu 5011可以控制设备501 中的其他硬件组件及其外围设备。
[0068]
在工作中,本发明的设备501的处理器cpu 5011可以通过输入装置 503或数据传输接口504获取媒体数据包,并调取存储于存储器5012中的计算机程序指令或代码对获取到的信息进行处理,以完成媒体数据包中检测信息的填充或确定网络状况。
[0069]
从上面关于本发明模块化设计的描述可以看出,本发明的系统可以根据应用场景或需求进行灵活地布置而不限于附图所示出的架构。进一步,还应当理解,本发明示例的执行操作的任何模块、单元、组件、服务器、计算机或设备可以包括或以其他方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的)和/或不可移动的)例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。基于此,本发明也公开了一种计算机可读存储介质,其上存储有用于对多媒体网络状况进行检测或用于传输多媒体网络中媒体数据包的方法的计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现在前结合附图所描述的方法和操作。
[0070]
虽然本说明书已经示出和描述了本发明的多个实施方式,但对于本领域技术人员显而易见的是,这样的实施方式是仅以示例的方式提供的。本领域技术人员在不偏离本发明思想和精神的情况下想到许多更改、改变和替代的方式。应当理解在实践本发明的过程中,可以采用本文所描述的本发明实施方式的各种替代方案。所附权利要求书旨在限定本发明的保护范围,并因此覆盖这些权利要求范围内的模块组成、等同或替代方案。