基于RTP协议的网络通话数据传输方法及通信设备与流程

文档序号:12278023阅读:523来源:国知局
基于RTP协议的网络通话数据传输方法及通信设备与流程

本申请涉及通信领域,特别涉及一种基于RTP协议的网络通话数据传输方法及通信设备。



背景技术:

RTP(Realtime Transport Protocol)协议可以用于实时传输数据;RTCP(Realtime Transport Control Protocol)协议可以用于反馈网络传输状态。

现实生活中,随着互联网的普及,RTP标准非常广泛的应用于流媒体相关的通讯和娱乐,包括电话、视频播放等。

VOIP指使用网络聊天工具来进行语音聊天,这种语音聊天的方式不同于电信运营商的传统电话网络进行传输通话,而是基于RTP标准将语音转化为RTP数据包,进一步通过互联网传输。

在VOIP通话过程中,通信双方都会按照预定的发包频率向对方发送RTP数据包,即使一方用户没有说话,客户端也会发出静音的RTP数据包。在这种场景下,对网络状态的要求会相对比较高。比如一方网络状态很差时,另一方不断发出RTP数据包,可能进一步造成网络拥堵,或者造成比较严重的丢包现象等。所以需要通信双方及时了解对方的网络接收状态。

现有的RTP标准中,网络的状态需要根据RTCP数据包进行反馈,其难以及时反馈网络状态。RTCP数据包是预定时间间隔发送一次。若预定时间间隔太长,导致难以及时获知网络状态,进而无法及时调整传输策略。例如,在一些情况下,网络出现拥堵,若未及时调整降低编码率,可能会导致网络进一步拥堵。若降低预定时间间隔,又会增多了RTCP数据包的数量,进而增大了网络传输的负荷。



技术实现要素:

本申请实施方式的目的是提供一种基于RTP协议的网络通话数据传输方法及其通信设备。

为解决上述技术问题,本申请提供一种基于RTP协议的网络通话数据传输方法,所述方法包括:接收目标通信设备发出的RTP数据包,所述RTP数据包附带有第一网络状态信息;所述第一网络状态信息表示所述目标通信设备接收数据的网络状态;根据所述第一网络状态 信息按照预定调整规则调整数据发送规则;根据RTP数据包的接收记录得出第二网络状态信息;所述第二网络状态信息表示当前通信设备接收数据的网络状态;生成当前RTP数据包,所述当前RTP数据包附带所述第二网络状态信息;按照所述调整后的数据发送规则发送所述当前RTP数据包给所述目标通信设备。

本申请还提供一种基于RTP协议的网络通话数据传输通信设备,所述通信设备包括:接收模块,其用于接收目标通信设备发出的RTP数据包,所述RTP数据包附带有第一网络状态信息;所述第一网络状态信息表示所述目标通信设备接收数据的网络状态;调整模块,其用于根据所述第一网络状态信息按照预定调整规则调整数据发送规则;状态生成模块,其用于根据RTP数据包的接收记录得出第二网络状态信息;所述第二网络状态信息表示当前通信设备接收数据的网络状态;RTP数据包生成模块,其用于生成当前RTP数据包,所述当前RTP数据包附带所述第二网络状态信息;发送模块,其用于按照所述调整后的数据发送规则发送所述当前RTP数据包给所述目标通信设备。

由以上本申请实施方式提供的技术方案可见,本申请可以通过在发送的RTP数据包中附带网络状态信息,发送给对方,对方解析出RTP数据包中的网络状态信息,根据此网络状态信息调整数据的发送规则。可以不需要再单独发送RTCP数据包解析网络状态,使网络状态反馈地更快捷实时。

附图说明

在此描述的附图仅用于解释目的,而不意图以任何方式来限制本申请公开的范围。另外,图中的各部件的形状和比例尺寸等仅为示意性的,用于帮助对本申请的理解,并不是具体限定本申请各部件的形状和比例尺寸。本领域的技术人员在本申请的教导下,可以根据具体情况选择各种可能的形状和比例尺寸来实施本申请。

图1为本申请一个实施方式提供的基于RTP协议的网络通话数据传输方法的流程图;

图2为本申请一个实施方式提供的RTP数据包的报头格式示意图;

图3为本申请一个实施方式提供的RTP数据包的扩展报头格式示意图;

图4为本申请一个实施方式提供的基于RTP协议的网络通话数据传输通信设备的模块图。

具体实施方式

结合附图和本申请具体实施方式的描述,能够更加清楚地了解本申请的细节。但是,在此描述的本申请的具体实施方式,仅用于解释本申请的目的,而不能以任何方式理解成是对本申请的限制。在本申请的教导下,技术人员可以构想基于本申请的任意可能的变 形,这些都应被视为属于本申请的范围。

请参阅图1,为本申请的一个实施方式提供的基于RTP协议的网络通话数据传输方法,其包括如下步骤。

步骤S10:接收目标通信设备发出的RTP数据包,所述RTP数据包附带有第一网络状态信息;所述第一网络状态信息表示所述目标通信设备接收数据的网络状态。

在本实施方式中,目标通信设备可以为智能手机、台式电脑、笔记本电脑、平板电脑或者智能可穿戴设备。当然,目标通信设备不限于上述举例。其可以为其它可以运行软体的智能设备。目标通信设备可以发出RTP数据包。

在本实施方式中,目标通信设备发出的RTP数据包可以是具有语音数据的RTP数据包或表示静音的RTP数据包。目标通信设备基于RTP协议将数据封装成RTP数据包之后发出。

在本实施方式中,RTP数据包中附带有第一网络状态信息,可以将表示第一网络状态信息的数据作为RTP数据包内容的一部分。具体的,可以为RTP数据包内设置标识位,该标识位后预定字节长度的数据为第一网络状态信息。

在本实施方式中,目标通信设备发出的网络状态信息可以为该目标通信设备从网络接收数据的网络状态。目标通信设备进行网络通信过程中可以为双向通信。即目标通信设备可以发送数据和接收数据。发送数据和接收数据的网络状态可能会不相同。通过第一网络状态信息表示目标通信设备接收数据的网络状态,使得当前通信设备便可以获知目标通信设备接收数据的网络状态,从而适当调整数据发送规则。第一网络状态信息本身可以包括表示网络状态的数据。例如第一网络状态信息可以包括网络抖动值、丢包率、网络速率等。

步骤S12:根据所述第一网络状态信息按照预定调整规则调整数据发送规则。

在本实施方式中,当前通信设备可以根据第一网络状态信息按照预定调整规则判断得出目标通信设备的网络状态。根据目标通信设备的网络状态适当调整数据发送规则。具体的,例如:当判断得出目标通信设备接收数据的网络状态较佳,可以增大发送RTP数据包的频率;当判断得出目标通信设备接收数据的网络状态较差,可以减少发送RTP数据包的频率。如此当前通信设备便可以根据目标通信设备接收数据的网络状态,调整数据发送规则。如此,可以兼顾了整体数据发送的效率,也可以起到避免向目标通信设备发出的数据过多,造成目标通信设备的网络拥堵。

步骤S14:根据RTP数据包的接收记录得出第二网络状态信息;所述第二网络状态信息表示当前通信设备接收数据的网络状态。

在本实施方式中,所述当前通信设备可以为智能手机、台式电脑、笔记本电脑、平板电脑或者智能可穿戴设备。当然,当前通信设备不限于上述举例。其可以为其它可以运行软体 的智能设备。当前通信设备也可以发出RTP数据包。

在本实施方式中,当前通信设备向目标通信设备发出RTP数据包时,可以反馈当前通信设备的接收数据的网络状态给目标通信设备,以使得目标通信设备可以针对当前通信设备的网络状态调整数据发送规则。当前通信设备进行网络通信过程中也可以为双向通信。即当前通信设备可以发送数据和接收数据,发送数据和接收数据的网络状态也可能不相同。通过第二网络状态信息表示当前通信设备接收数据的网络状态,使得在目标通信设备接收到第二网络状态信息之后,可以根据第二网络状态信息进行相应调整。

在本实施方式中,当前通信设备接收RTP数据包之后,可以记录接收的RTP数据包的一些特征数据,以形成接收记录。接收记录本身可以存储在通信设备的存储器中,也可以存储在缓存中。具体的,例如接收记录可以包括:实际接收RTP数据包的数量,接收到RTP数据包的接收时间,每个RTP数据包的字节数等。

在本实施方式中,网络状态信息可以包括丢包率、网络抖动值中的一个或全部。根据所述RTP数据包得出第二网络状态信息的方式可以包括:将应接收的RTP数据包数量与实际接收的RTP数据包数量的差值与应接收的RTP数据包的数量的做比值,计算得出所述丢包率;其中,应接收的RTP数据包数量可以为当前接收RTP数据包的RTP报头中的序列号sequence number。或者,计算所述RTP数据包与前一个RTP数据包的网络传输时间的差值,得出所述网络抖动值;计算的公式举例,可以用D表示网络抖动指,Si表示RTP数据包i的时间标记,Ri表示当前通信设备中RTP数据包i以RTP时间标志单位的接收时间;则对于两个RTP数据包i和j,网络抖动值D可以表达为相邻的两个RTP数据包的网络传输时间差值:D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)。或者,根据传输的时间以及字节数,计算当前的网络速率。

S16:生成当前RTP数据包,所述当前RTP数据包附带所述第二网络状态信息。

在本实施方式中,当前RTP数据包可以包括具有语音数据的RTP数据包或表示静音的RTP数据包等,当前通信设备基于RTP协议将该语音数据封装成RTP数据包,或者封装表示静音的RTP数据包之后发出。

在本实施方式中,当前RTP数据包中附带有第二网络状态信息,可以将表示第二网络状态信息的数据作为当前RTP数据包内容的一部分。具体的,可以为当前RTP数据包内设置标识位,该标识位后预定字节长度的数据为第二网络状态信息。

S18:按照所述调整后的数据发送规则发送所述当前RTP数据包给所述目标通信设备。

在本实施方式中,当前通信设备接收到目标通信设备的第一网络状态信息后,得出目标通信设备接收数据的网络状态,进而相应调整了数据发送规则。根据调整后的数据发送规则发送数据,便可以与目标通信设备的当前接收数据的网络状态相匹配,可以在保障数据正常 发送的基础上,在一定程度上避免目标通信设备的网络拥堵。具体的,例如:当判断得出目标通信设备接收数据的网络状态较佳,可以增大发送RTP数据包的频率;当判断得出目标通信设备接收数据的网络状态较差,可以减少发送RTP数据包的频率。如此能够提高网络通信效率,避免向目标通信设备发出的数据过多,造成目标通信设备的网络拥堵。

在一个具体的实施方式中,以通信设备接收数据的速率作为网络状态信息为例。假设目标通信设备接收数据的当前速率为10KB/S,目标通信设备把当前速率封装在RTP数据包中,发送给当前通信设备。当前通信设备接收到该RTP数据包,解析出目标通信设备接收数据的速率为10KB/S。预定调整规则可以包括将该速率与预设速率值进行比较,判断目标通信设备网络状态。例如预定速率为50KB/S。此时判断得出目标通信设备接收数据的速率低于预定速率,此时当前通信设备可以降低RTP数据包的发送频率,例如将RTP数据包的发送频率由20个/秒,降低至10个/秒。如此实现,在发现目标通信设备的网络状态较差时,减少数据发送量,对目标通信设备的网络负荷进行缓解,可以一定程度上避免网络拥堵。同理,假设当前通信设备接收到RTP数据包,解析出目标通信设备接收数据的速率为100KB/S,可以将RTP数据包的发送频率增大至30个/秒,如此可以相对充分利用目标通信设备较好的网络状态,提升数据的整体发送进度。同理,当前通信设备每次发出的RTP数据包中可以包括有当前接收数据的速率,以使得目标通信设备可以根据当前通信设备接收数据的网络状态调整数据发送规则。

本申请实施方式提供的基于RTP协议的网络通话数据传输方法可以在发送的RTP数据包中附带网络状态信息,发送给对方,对方解析出RTP数据包中的网络状态信息,根据此网络状态信息调整数据的发送规则。可以不需要再单独发送RTCP数据包解析网络状态,使网络状态反馈地更快捷实时。

在一个实施方式中,RTP数据包设置有扩展项,所述第一网络状态信息记录在所述接收的RTP数据包的扩展项中;所述第二网络状态信息记录在所述生成的当前RTP数据包的扩展项中。

在本实施方式中,采用RTP数据包的扩展项记录网络状态信息,以使得当前通信设备每接收一个RTP数据包便可以获得表示目标通信设备网络状态的第一网络状态信息。当前通信设备每发出一个RTP数据包,便可以通过第二网络状态信息将当前通信设备的网络状态告知目标通信设备。如此实现,当前通信设备可以非常及时的响应目标通信设备的网络状态,改变自身的数据发送规则。使得目标通信设备也可以根据当前通信设备的网络状态,改变其数据发送规则。可以在整体上提升了网络资源的利用率,提升了数据量的整体发送速度。

请参阅图2,在一个具体的实施方式中,RTP数据包包括RTP报头和有效载荷。RTP报 头包括:RTP协议版本号V、填充标识P、扩展标识X、CSRC计数器CC、标记位M、有效载荷类型PT、序列号sequence number、时间标记timestamp、同步信源SSRC、特约信源CSRC等。其中,扩展标识X的取值为1时,表示在RTP报头后设置有一个扩展报头。在该扩展报头中可以设置有扩展项,以存储网络状态信息。即当前通信设备接收的RTP数据包的扩展项中记录有第一网络状态信息。当前通信设备生成的RTP数据包中记录有第二网络状态信息。

在一个实施方式中,接收的RTP数据包的扩展项包括对应记录的识别标识符和第一网络状态信息;其中,所述识别标识符表示该扩展项的内容为第一网络状态信息;所述第一网络状态信息包括目标通信设备的丢包率、网络抖动值和接收数据的速率中的一个或多个。

在本实施方式中,RTP数据包可以设置有多个扩展项,并可以通过识别标识符相区分,如此可以实现一个RTP数据包可以携带更多的信息。通过扩展项设置识别标识符,便可以通过识别标识符区分扩展项,从而避免混淆。

请参阅图3,在一个具体的实施方式中,RTP报头的扩展报头的标识可以采用“0xBEDE”。扩展报头可以设置有多个扩展项,每个扩展项可以包括有识别标识符ID,如此通过识别标识符ID不同而区分不同的扩展项。网络状态信息的丢包率可以用“loss”表示,网络抖动值可以用“jitter”表示。当然,网络状态信息还可以包括接收数据的速率。其中,网络状态信息可以包括丢包率、网络抖动值和接收数据的速率中的任意一个或多个。例如,以扩展项长度为32bit为例,其中ID可以为8bit,丢包率可以为8bit,网络抖动值可以为16bit。如果网络状态信息还包括接收数据的速率,扩展项的分配可以修改为ID可以为8bit,loss可以为8bit,jitter可以为8bit,接收数据的速率可以为8bit。

在本实施方式中,接收的RTP数据包的扩展项中记录目标通信设备的第一网络状态,实现当前通信设备在接收到RTP数据包之后,可以根据该第一网络状态进行调整数据发送规则。以实现当前通信设备根据目标通信设备接收数据的网络状态调整数据发送规则。

在一个实施方式中,第一网络状态信息包括目标通信设备的丢包率,所述预定调整规则包括所述目标通信设备的丢包率在预定丢包率以上时,增大待发送数据的编码率或数据冗余度,或者二者组合。

在本实施方式中,数据冗余度指的是,在数据传输过程中,针对一个有效载荷发送RTP数据包的次数。当然,具有同一个有效载荷的RTP数据包之间,其具体的内容可以经过算法处理,使得具体的编码组成可以不同,但解析之后得到的数据相同。比如将一个RTP数据包的有效载荷进行异或处理得到另一RTP数据包的有效载荷。

在本实施方式中,在设备采集到音频数据之后,可以对音频数据进行压缩,将压缩后的 音频数据作为RTP数据包的有效载荷发送给目标通信设备。其中,编码率可以为针对采集的音频数据进行数据压缩时的压缩率。增大编码率可以减少有效载荷的数据量,但用户接听到的声音质量可能会降低;降低编码率可以增大有效载荷的数据量,相应的用户接听到的声音质量可能会提高。若丢包率在预定丢包率以上时,降低待发送数据的编码率或增大数据冗余度,或者二者组合。如此会提高数据代码的抗干扰能力,进而减轻网络传输的负担,减少网络传输过程中的丢包现象。

在本实施方式中,丢包率表示应接收的RTP数据包数量与实际接收的RTP数据包数量的差值与应接收的RTP数据包数量的比值;其中,应接收的RTP数据包数量可以为当前接收RTP数据包的RTP报头中的序列号sequence number。具体的,例如应接收的RTP数据包数量为10000,实际接收的RTP数据包数量为9990,那么丢包率为(10000-9990)/10000=0.001。本实施方式中的预定丢包率可以为一个预先设定的数值,以该预定丢包率作为判断网络状态的基准。

在本实施方式中,目标通信设备的丢包率在预定丢包率以上时,可以表明目标通信设备接收RTP数据包的网络状态较差。存在较多的RTP数据包在网络传输过程中被丢失。如此,当前通信设备便可以根据目标通信设备的网络状态调整数据发送规则。当前通信设备可以通过增大数据冗余度,即增多发送相同有效载荷的RTP数据包的数量,如此可以增大了目标通信设备接收到RTP数据包的几率,以实现降低丢包率的目的。当前通信设备还可以增大发送数据的编码率,如此减少了发送的RTP数据包中有效载荷的数据量,进而降低了网络的数据传输负荷,有利于缓解目标通信设备网络的阻塞,有利于降低丢包率。

在一个实施方式中,预定调整规则还包括所述目标通信设备的丢包率小于所述预定丢包率时,降低待发送数据的编码率或降低数据冗余度,或者二者组合。

在本实施方式中,若丢包率小于所述预定丢包率时,降低待发送数据的编码率或降低数据冗余度,或者二者组合会提高网络的通信传输效率,使得网络通话更加顺畅,用户收听效果更加清晰。

在一个实施方式中,所述网络状态信息包括目标通信设备的网络抖动值,所述预定调整规则包括所述网络抖动值在预定抖动值以上时,增大待发送数据的编码率或增大数据冗余度,或者二者组合。本实施方式中的预定抖动值可以为一个预先设定的数值,以该预定抖动值作为判断网络状态的基准。

在本实施方式中,网络抖动值表示相邻的两个RTP数据包的网络传输时间差值。网络抖动值可以表示网络状态情况,进而发送RTP数据包时可以根据网络状态进行针对性的调整RTP数据包的数据发送规则。网络抖动值大于预定抖动值,可以表示网络状态出现了一定程 度的阻塞。通过增大待发送数据的编码率或增大数据冗余度,或者二者组合。如此会提高数据代码的抗干扰能力,进而减轻网络传输的负担。

在本实施方式中,请参阅图2,在RTP数据包的报头中具有时间标记Timestamp。时间标记反映了该RTP数据包的生成过程中有效载荷的采样时刻。当前通信设备可以使用时间标记来计算网络延迟抖动值。在一个具体的实施方式中,可以用D表示网络抖动指,Si表示RTP数据包i的时间标记,Ri表示当前通信设备中RTP数据包i以RTP时间标志单位的接收时间。则对于两个RTP数据包i和j,网络抖动值D可以表达为相邻的两个RTP数据包的网络传输时间差值:D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)。

在一个实施方式中,所述预定调整规则还包括所述网络抖动值小于所述预定抖动值时,降低待发送数据的编码率或降低数据冗余度,或者二者组合。

在本实施方式中,若网络抖动值小于所述预定抖动值时,降低待发送数据的编码率或降低数据冗余度,或者二者组合。如此可以提高网络的通信传输整体进度,使得网络通话顺畅,如此,可以兼顾了整体数据发送的效率。

在一个实施方式中,所述第二网络状态信息包括当前通信设备的丢包率;在根据RTP数据包的接收记录得出第二网络状态信息的步骤中包括:将应接收的RTP数据包数量与实际接收的RTP数据包数量的差值与应接收的RTP数据包的数量的做比值,计算得出所述丢包率。

在本实施方式中,通过第二网络状态信息中包括当前通信设备的丢包率,使得当前通信设备发出的RTP数据包中附带有当前通信设备接收RTP数据包的丢包率。在目标通信设备接收到该RTP数据包后,便可以根据当前通信设备的丢包率情况,调整其数据发送规则。具体的,例如目标通信设备发现当前通信设备的丢包率较高,便可以调整数据发送规则增大发送RTP数据包的数据冗余度;目标通信设备发现当前通信设备的丢包率较低,可以降低发送RTP数据包的数据冗余度。

在本实施方式中,应接收的RTP数据包的数量可以为接收的RTP数据包的RTP报头中的序列号sequence number。当前通信设备的RTP数据包接收记录中可以记录有实际接收的RTP数据包数量。即当前通信设备可以每接收到一个RTP数据包,便进行一次计数。

在一个实施方式中,所述第二网络状态信息包括当前通信设备的网络抖动值;在根据RTP数据包的接收记录得出第二网络状态信息的步骤中包括:计算接收的所述RTP数据包与前一个接收RTP数据包的网络传输时间的差值,得出所述网络抖动值。

在本实施方式中,通过第二网络状态信息中包括网络抖动值,使得当前通信设备发出的RTP数据包中附带有当前通信设备接收RTP数据包的网络抖动值。在目标通信设备接收到该RTP数据包后,便可以根据当前通信设备的网络抖动情况,调整其数据发送规则。具体的, 例如目标通信设备发现当前通信设备的网络抖动值较高,便可以调整数据发送规则增大待发送数据的编码率或增大数据冗余度,或者二者组合。目标通信设备发现当前通信设备的网络抖动值较低,便可以降低待发送数据的编码率或降低数据冗余度,或者二者组合

请参阅图4,本申请实施方式还提供一种基于RTP协议的网络通话数据传输通信设备100,所述通信设备100包括:接收模块10、调整模块12、状态生成模块14、RTP数据包生成模块16以及发送模块18。

接收模块10用于接收目标通信设备发出的RTP数据包,所述RTP数据包附带有第一网络状态信息;所述第一网络状态信息表示所述目标通信设备接收数据的网络状态。

在本实施方式中,通信设备可以为智能手机、台式电脑、笔记本电脑、平板电脑或者智能可穿戴设备。当然,通信设备不限于上述举例。其可以为其它可以运行软体的智能设备。通信设备可以发出RTP数据包。

在本实施方式中,目标通信设备发出的RTP数据包可以是具有语音数据的RTP数据包或表示静音的RTP数据包。目标通信设备基于RTP协议将数据封装成RTP数据包之后发出。

在本实施方式中,RTP数据包中附带有第一网络状态信息,可以将表示第一网络状态信息的数据作为RTP数据包内容的一部分。具体的,可以为RTP数据包内设置标识位,该标识位后预定字节长度的数据为第一网络状态信息。

在本实施方式中,目标通信设备发出的网络状态信息可以为该目标通信设备从网络接收数据的网络状态。目标通信设备进行网络通信过程中可以为双向通信。即目标通信设备可以发送数据和接收数据。发送数据和接收数据的网络状态可能会不相同。通过第一网络状态信息表示目标通信设备接收数据的网络状态,使得当前通信设备便可以获知目标通信设备接收数据的网络状态,从而适当调整数据发送规则。第一网络状态信息本身可以包括能够表示网络状态的数据。例如第一网络状态信息可以包括网络抖动值、丢包率、网络速率等。

调整模块12用于根据所述第一网络状态信息按照预定调整规则调整数据发送规则。

在本实施方式中,当前通信设备100可以根据第一网络状态信息按照预定调整规则判断得出目标通信设备的网络状态。根据目标通信设备的网络状态适当调整数据发送规则。具体的,例如:当判断得出目标通信设备接收数据的网络状态较佳,可以增大发送RTP数据包的频率;当判断得出目标通信设备接收数据的网络状态较差,可以减少发送RTP数据包的频率。如此当前通信设备100便可以根据目标通信设备接收数据的网络状态,调整数据发送规则。如此,可以兼顾了整体数据发送的效率,也可以起到避免向目标通信设备发出的数据过多,造成目标通信设备的网络拥堵。

状态生成模块14根据RTP数据包的接收记录得出第二网络状态信息;所述第二网络状 态信息表示当前通信设备100接收数据的网络状态。

在本实施方式中,向目标通信设备发出RTP数据包时,可以反馈当前通信设备100的接收数据的网络状态给目标通信设备,以使得目标通信设备可以针对当前通信设备的网络状态调整数据发送规则。当前通信设备100进行网络通信过程中也可以为双向通信。即当前通信设备可以发送数据和接收数据,发送数据和接收数据的网络状态也可能不相同。通过第二网络状态信息表示当前通信设备100接收数据的网络状态,使得在目标通信设备接收到第二网络状态信息之后,可以根据第二网络状态信息进行相应调整。

在本实施方式中,当前通信设备100接收RTP数据包之后,可以记录接收的RTP数据包的一些特征数据,以形成接收记录。接收记录本身可以存储在通信设备的存储器中,也可以存储在缓存中。具体的,例如接收记录可以包括:实际接收RTP数据包的数量,接收到RTP数据包的接收时间,每个RTP数据包的字节数等。

在本实施方式中,网络状态信息可以包括丢包率、网络抖动值中的一个或全部。根据所述RTP数据包得出第二网络状态信息的方式可以包括:将应接收的RTP数据包数量与实际接收的RTP数据包数量的差值与应接收的RTP数据包的数量的做比值,计算得出所述丢包率;其中,应接收的RTP数据包数量可以为当前接收RTP数据包的RTP报头中的序列号sequence number。或者,计算所述RTP数据包与前一个RTP数据包的网络传输时间的差值,得出所述网络抖动值。计算的公式举例,可以用D表示网络抖动指,Si表示RTP数据包i的时间标记,Ri表示当前通信设备中RTP数据包i以RTP时间标志单位的接收时间。则对于两个RTP数据包i和j,网络抖动值D可以表达为相邻的两个RTP数据包的网络传输时间差值:D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)。

RTP数据包生成模块16用于生成当前RTP数据包,所述当前RTP数据包附带所述第二网络状态信息。

在本实施方式中,当前RTP数据包可以包括具有语音数据的RTP数据包或表示静音的RTP数据包等,当前通信设备100基于RTP协议将该语音数据封装成RTP数据包,或者封装表示静音的RTP数据包之后发出。

在本实施方式中,当前RTP数据包中附带有第二网络状态信息,可以将表示第二网络状态信息的数据作为当前RTP数据包内容的一部分。具体的,可以为当前RTP数据包内设置标识位,该标识位后预定字节长度的数据为第二网络状态信息。

发送模块18用于按照所述调整后的数据发送规则发送所述当前RTP数据包给所述目标通信设备。

在本实施方式中,当前通信设备100接收到目标通信设备的第一网络状态信息后,得出 目标通信设备接收数据的网络状态,进而相应调整了数据发送规则。根据调整后的数据发送规则发送数据,便可以与目标通信设备的当前接收数据的网络状态相匹配,可以在保障数据正常发送的基础上,在一定程度上避免目标通信设备的网络拥堵。具体的,例如:当判断得出目标通信设备接收数据的网络状态较佳,可以增大发送RTP数据包的频率;当判断得出目标通信设备接收数据的网络状态较差,可以减少发送RTP数据包的频率。如此能够提高网络通信效率,避免向目标通信设备发出的数据过多,造成目标通信设备的网络拥堵。

在一个具体的实施方式中,以通信设备接收数据的速率作为网络状态信息为例。假设目标通信设备接收数据的当前速率为10KB/S,目标通信设备把当前速率封装在RTP数据包中,发送给当前通信设备。当前通信设备接收到该RTP数据包,解析出目标通信设备接收数据的速率为10KB/S。预定调整规则可以包括将该速率与预设速率值进行比较,判断目标通信设备网络状态。例如预定速率为50KB/S。此时判断得出目标通信设备接收数据的速率低于预定速率,此时当前通信设备可以降低RTP数据包的发送频率,例如将RTP数据包的发送频率由20个/秒,降低至10个/秒。如此实现,在发现目标通信设备的网络状态较差时,减少数据发送量,对目标通信设备的网络负荷进行缓解,可以一定程度上避免网络拥堵。同理,假设当前通信设备接收到RTP数据包,解析出目标通信设备接收数据的速率为100KB/S,可以将RTP数据包的发送频率增大至30个/秒,如此可以相对充分利用目标通信设备较好的网络状态,提升数据的整体发送进度。同理,当前通信设备每次发出的RTP数据包中可以包括有当前接收数据的速率,以使得目标通信设备可以根据当前通信设备接收数据的网络状态调整数据发送规则。

本申请实施方式提供的基于RTP协议的网络通话数据传输方法可以在发送的RTP数据包中附带网络状态信息,发送给对方,对方解析出RTP数据包中的网络状态信息,根据此网络状态信息调整数据的发送规则。可以不需要再单独发送RTCP数据包解析网络状态,使网络状态反馈地更快捷实时。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。每个实施方式重点说明的都是与其他实施例不同之处。尤其对于通信设备的实施方式而言,由于其基本相似于方法实施方式,所以描述的比较简单,相关之处参见方法实施方式部分说明即可。

上述实施例只为说明本申请的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本申请的内容并据以实施,并不能以此限制本申请的保护范围。凡根据本申请精神实质所作的等效变化或修饰,都应涵盖在本申请的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1