一种在rtp中实时检测网络传输时延的方法

文档序号:82172阅读:1189来源:国知局
专利名称:一种在rtp中实时检测网络传输时延的方法
技术领域
本发明属于VOIP技术领域
,具体涉及一种在RTP(A Transport Protocol for Real-TimeApplications)中实现实时检测网络传输时延的方法,供业务根据网络质量动态进行语音编解码的选择。
背景技术
RTP为实时数据提供端到端的传输功能,如交互的音频视频数据。功能包括载荷类型辨别,序列号编码,时戳,传输监控。RTP在UDP协议之上,利用UDP复用,包校验功能协作共同完成传输层功能。
RTP协议包括两部分RTP(用于传输实时数据)和RTCP(用于RTP业务质量监控)会话信息交互。RTP部分主要完成载荷封装,序列号管理,时戳编码功能。RTCP周期地向RTP会话的各方发送控制报文。RTCP底层协议必须能够提供多路分发的能力(如使用UDP的不同端口)。RTCP实现的主要功能有提供数据传输质量的反馈,这也就是RTP作为传输层协议提供流控、拥塞控制的一个部分,这个反馈可用于自适应编码的控制,用于监控本地或远端错误,对于IP组播可提供给第三方作网络监控用。RTCP报文分为SR(发送者报告)、RR(接收者报告)、SDES(信源说明)、BYE(会话结束)、APP(特定应用报文)五种类型。SR和RR是最重要的两种,SR报文携带了来自语音发送者的统计信息,即RTP报文在发送者发送完RTP报文后发送SR报文,报文格式如图1;RR报文携带了来自会话参与者但非语音发送者的统计信息,报文格式如图2。两者除了报文类型PT值不同外,RR报文只比SR报文少20字节的发送者信息字段NTP(网络时间协议)时间戳,RTP报文时间戳,发送的报文数,发送的字节数。
SR与RR报文中可以包含0或多个报告块,用于携带自本端发送/接收最后一个RTP报文以来,接收到其他参与者的RTP报文情况的统计信息如丢包率,抖动,LSR(最近接收到的SR报文中64位NTP时间戳的中间32位),DLSR(自接收到上一个SR以来到发送当前这个RR报文的延迟)。其他参与者根据这些反馈信息可以检测到当时的网络情况。
其中一个重要参数是网络传输时延,计算过程如图3所示A端发送SR报文时,将发送时刻的NTP时间戳记录在SR报文的NTP timestamp字段中,B端接收到这个SR报文后发送的RR报文中将携带LSR(A端发送SR报文时刻的NTP时间戳的中间32位)和DLSR(B端自接收到上一个SR到发送当前这个RR报文的延迟),A端收到B端这个RR报文后,记录当前时间C,取出RR报文中携带的LSR和DLSR字段,计算回环网络传输时延Delay=C-LSR-DLSR。
网络传输时延在实际应用中非常重要,当网络传输时延过大(通讯行业标准中认为>400毫秒)时,会话质量极差,交流困难,因此发送者需要实时检测网络传输时延,一旦发现网络传输时延过大,就可以通过调整语音编解码来减小时延,保证语音质量。而现在的计算网络传输时延的方法只有在启用NTP时间协议的系统中,且必须发送过SR报文后才能计算,因为A端只有发送SR报文时才会记录NTP时间戳,而后才能从B端收到非0的有效DLSR和LSR信息,用于正确计算网络传输时延。这样的计算方法存在三个弊端1.必须启用NTP时间协议为各发送方提供准确时钟首先RTP协议(RFC3550)指出NTP是可以不启用的;其次启用NTP,要有准确的时间来源,这一时间应是国际标准时间UTC,时间依靠NTP服务器传播,每个发送方要与多台NTP服务器相连,防止发送方无法与其中一台NTP服务器联系时仍能从其他服务器获取准确时间,保证各发送方的时钟同步,因此启用NTP将增加系统成本和复杂度;另外一旦NTP服务器被攻击,或时间同步失败,将影响网络传输时延的计算结果,无法保证对语音质量的要求。
2.若没有发送过SR报文,就无法检测当前网络传输时延因为只有SR报文携带NTP时间戳,对端收到SR报文后才能得到计算时延所需的有效的LSR和DLSR。不发送SR报文,说明会话建立了,只是不发送语音报文,这种情况是存在的,此时如果能计算网络传输时延,就可以参考当前网络状况采用合适的语音编解码,避免采用不恰当的编解码导致语音质量差后再切换,提高了会话质量。
3.只能检测当前收到的报文和前一个发送的SR报文之间的回环网络传输时延若发送方发送了SR报文后不再发送SR报文了,也就是在会话过程中一方发送了一段时间的语音报文后就开始接收他人的语音,自己不再发言,这样的情况是普遍存在的,此时只能计算当前接收到的报文和最后一个SR报文之间的回环网络传输时延,若最后一个SR报文的网络传输时延较大(网络状况差),则即使当前网络状况已经好转,但计算的回环网络传输时延(主要是最后一个SR报文的网络传输时延影响)仍然很大,表示网络状况仍不理想,因此不能实时正确地体现当前网络状况,可能误导采用不合适的语音编解码格式,影响语音质量。

发明内容本发明的目的在于提供一种在RTP中实现实时检测网络传输时延的方法。本发明所要解决的技术问题是对于无论是否启用NTP时间协议的系统,且无论是否发送SR报文都能准确实时地计算当前网络传输时延,供应用参考以采取最恰当的语音编解码格式,最大程度地提高语音会话质量。
本发明具体是这样实现的一种在RTP中实时检测网络传输时延的方法,包括以下步骤步骤一,本端记录向对端发送SR/RR报文的系统时间,本端向对端发送SR/RR报文;步骤二,对端记录接收本端发送SR/RR报文的系统时间若对端接收到的为SR报文,记录为接收SR报文的系统时间,若对端接收到的为RR报文,记录为接收RR报文的系统时间;步骤三,当对端向本端发送SR/RR报文时,利用对端记录的当前系统时间分别与记录为接收SR/RR报文的系统时间的时间差,得到对端从接收SR报文到发送当前SR/RR报文的延时DLSR,或对端从接收SR/RR报文到发送当前SR/RR报文的延时DLRTCP;;步骤四,本端接到对端发送的SR/RR报文,本端记录接收SR/RR报文的系统时间,利用本端记录接收SR/RR报文的系统时间与本端记录发送SR/RR报文的系统时间的时间差再减去对端发送的SR/RR报文中携带的DLRTCP计算网络传输时延。
所述对端接收SR/RR报文到发送当前SR/RR报文的延迟,使用SR/RR报文的扩展字段profile-specific extensions,单位采用1/65536秒。
本端每发送一个SR/RR报文,所述本端记录发送SR/RR报文的系统时间更新为当前系统时间值;本端每收到一个SR/RR报文,所述本端记录接收SR/RR报文的系统时间更新为当前系统时间值。
所述计算的网络时延在无论双方是否均发送SR报文的情况下都是最近两个SR/RR报文的回环时延。
本发明的技术效果在于在分析RTP协议和SR/RR报文结构的基础上,确定用系统时间代替NTP时间,这样无论系统是否启用NTP协议都可以实时检测网络传输时延,且检测不受必须发送SR报文的限制,计算的网络时延是在无论双方是否均发送SR报文的情况下都是最近两个SR/RR报文的回环时延,不一定是当前报文与上一个SR报文的回环时延,提高了检测的实时性。在计算过程中采用两端分别计算各自时间差的方式屏蔽了两端系统时间不同步可能引入的误差,保证了网络时延的精确性。这个实时的网络传输时延可以准确反映网络当时状况,业务据此来动态调整语音编解码格式,使会话语音质量得到保证。
图1是SR报文格式;图2是RR报文格式;图3是根据NTP时间计算网络传输时延;图4a、4b、4c、4d是根据本发明所述方法计算网络传输时延。
具体实施方式为达到上述目的,本发明采用的方法是在本端记录上一次发送SR/RR的系统时间(LASTTIME)和接收到SR/RR的当前系统时间(CURRTIME),用对端系统时间计算DLSR(自接收到上一个SR到发送当前这个RR报文的延迟)和DLRTCP(自接收到上一个SR/RR到发送当前这个SR/RR报文的延迟,该项为自定义字段,使用SR/RR报文的扩展字段profile-specific extensions,为与DLSR保持一致性,单位采用与DLSR一样的1/65536秒),网络传输时延=CURRTIME-LASTTIME-DLRTCP,包括以下步骤步骤一,A端设置LASTTIME和CURRTIME两个全局变量,分别记录本端发送SR/RR和收到SR/RR的系统时间;步骤二,A端发送SR/RR报文;步骤三,B端记录其接收到A端发送的SR/RR报文的系统时间若B端接收到的为SR报文,则将系统时间记录在STIME中,若B端接收到的为RR报文,则将系统时间记录在TTIME中。
随后当B端发送SR/RR报文时,利用B端当前系统时间TIME2与STIME/TTIME的时间差计算DLSR/DLRTCP。
DLRTCP为TIME2与TTIME的时间差,DLSR为TIME2与STIME的时间差。
步骤四,A端收到B端的SR/RR报文后记录当前系统时间CURRTIME,并利用CURRTIME和收到的SR/RR报文中携带的DLSR或DLRTCP来计算网络传输时延。
下面结合附图进一步详细说明本发明的具体实施方式
,以简单的A、B双方会话为例来详细说明本发明的实时网络传输时延计算,为说明本发明适用于无论是否启用NTP时间协议,无论是否发送过SR报文。
假设系统不启用NTP时间协议,某一时刻A端发送RR报文,B端收到后发送RR报文,A端收到B端的这个RR报文后计算网络传输时延,也就是双方都发送RR报文。B端的计算与其类似。若系统启用NTP时间协议,或发送过SR报文,计算过程类似,也可以使用现有的计算方式,只需在发送SR报文时,将发送者信息填入SR报文相应字段中。
本发明的方法包括以下步骤步骤1,开始,在A端设置两个全局变量LASTTIME和CURRTIME,分别用来记录发送SR/RR和收到SR/RR的系统时间,每发送一个SR/RR报文,LASTTIME就更新为当前系统时间值;每收到一个SR/RR报文,CURRTIME更新为当前系统时间值。
步骤21,按照附图2,根据协议要求填写RR报文各字段。其中与本发明相关的重要字段为LSR字段按照协议取64位NTP时间戳的中间32位。若不启用NTP时间,或A端未收到过来自B端的SR报文,则LSR为0;取当前系统时间保存在LASTTIME中,DLSR=(LASTTIME一收到上一个SR报文的系统时间)/65536,根据协议要求DLSR以1/65536秒为单位,如果A端没有收到过SR,则DLSR=0;profile-specific extensions字段填写DLRTCP值,DLRTCP=(LASTTIME-收到上一个SR/RR报文的系统时间)/65536,为与DLSR保持一致,DLRTCP也以1/65536秒为单位,若之前没有收到过RTCP报文,填0,这一情况可能在会话刚建立时出现,此时对端收到这个报文后无法计算网络传输时延,但这段时间非常短,且是在会话还未稳定时刻,随后收到对方的RTCP报文后就能计算,因此可以忽略。
步骤22,发送RR报文。
步骤31,B端接收到A端的RR报文,记录当前系统时间TTIME;步骤32,B端发送RR报文按照附图2填写要发送的RR报文各字段,LSR字段按照协议取64位NTP时间戳的中间32位,若不启用NTP时间,或A端未收到过来自B端的SR报文,则LSR为0;取当前系统时间TIME2,计算DLSR=(TIME2-STIME)/65536,根据协议要求DLSR以1/65536秒为单位,如果A端没有收到过SR,则DLSR=0;profile-specificextensions字段填写DLRTCP值,DLRTCP=(TIME2-TTIME)/65536,为与DLSR保持一致,DLRTCP也以1/65536秒为单位。将RR发送给A端。
步骤4,A端收到B端的RR报文,记录当前系统时间为CURRTIME,取出RR报文中的DLRTCP字段,将CURRTIME、LASTTIME和DLRTCP转换为需要的统一单位,按照附图4a、4b、4c、4d,计算网络传输时延Delay=CURRTIME-LASTTIME-DLRTCP。这样计算得到的Delay是一个回环的网络传输时延,若需要单程网络传输时延,可以将Delay/2估算。
权利要求
1.一种在RTP中实时检测网络传输时延的方法,其特征在于,包括以下步骤步骤一,本端记录向对端发送SR/RR报文的系统时间,本端向对端发送SR/RR报文;步骤二,对端记录接收本端发送SR/RR报文的系统时间若对端接收到的为SR报文,记录为接收SR报文的系统时间,若对端接收到的为RR报文,记录为接收RR报文的系统时间;步骤三,当对端向本端发送SR/RR报文时,利用对端记录的当前系统时间分别与记录为接收SR/RR报文的系统时间的时间差,得到对端从接收SR报文到发送当前SR/RR报文的延时DLSR,或对端从接收SR/RR报文到发送当前SR/RR报文的延时DLRTCP;;步骤四,本端接到对端发送的SR/RR报文,本端记录接收SR/RR报文的系统时间,利用本端记录接收SR/RR报文的系统时间与本端记录发送SR/RR报文的系统时间的时间差再减去对端发送的SR/RR报文中携带的DLRTCP计算网络传输时延。
2.如权利要求
1所述的在RTP中实时检测网络传输时延的方法,其特征在于所述对端接收SR/RR报文到发送当前SR/RR报文的延迟,使用SR/RR报文的扩展字段profile-specific extensions,单位采用1/65536秒。
3.如权利要求
1或2所述的在RTP中实时检测网络传输时延的方法,其特征在于本端每发送一个SR/RR报文,所述本端记录发送SR/RR报文的系统时间更新为当前系统时间值;本端每收到一个SR/RR报文,所述本端记录接收SR/RR报文的系统时间更新为当前系统时间值。
4.如权利要求
1或2所述的在RTP中实时检测网络传输时延的方法,其特征在于所述计算的网络时延在无论双方是否均发送SR报文的情况下都是最近两个SR/RR报文的回环时延。
专利摘要
本发明涉及一种在RTP中实现实时检测网络传输时延的方法。在本端记录上一次发送SR/RR的系统时间和接收到SR/RR的当前系统时间;用对端系统时间计算得到的DLSR和DLRTCP来计算网络传输时延。本发明确定用系统时间代替NTP时间,无论系统是否启用NTP协议都可以实时检测网络传输时延,且检测不受必须发送SR报文的限制,计算的网络时延是最近两个SR/RR报文的回环时延,提高了检测的实时性。在计算过程中采用两端分别计算各自时间差的方式屏蔽了两端系统时间不同步可能引入的误差,保证了网络时延的精确性。可准确反映网络当时状况,业务据此来动态调整语音编解码格式,使会话语音质量得到保证。
文档编号H04L29/06GK1996897SQ200510132658
公开日2007年7月11日 申请日期2005年12月28日
发明者柳海宁, 张联峰, 周蕙菁 申请人:中兴通讯股份有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1