发明内容
有鉴于此,本发明提供一种通信网元、时钟频率校正系统及校正方法,能够简单、有效地实现时钟频率的校正。
为达到上述目的,本发明提供一种通信网元,包括:
获取模块,用于在接收到作为时钟参考源的对端通信网元发送的RTCP报文时,获取所述RTCP报文中携带的发包时间戳值以及本地的收包时间戳值;
抖动值估计模块,用于估计所述RTCP报文的抖动值;
频偏计算模块,用于根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差;
校正模块,用于根据所述时钟频率偏差,校正时钟频率。
所述频偏计算模块进一步用于根据连续接收到的三包RTCP报文中第一包RTCP报文的收包时间戳值、第二包RTCP报文和第三包RTCP报文的发包时间戳值、收包时间戳值以及第三包RTCP报文与第二包RTCP报文的抖动值,计算时钟频率偏差。
所述时钟频率偏差的计算公式为:
ΔTD2=(ΔT22-ΔT21)+(J0-J1)
其中,foff表示时钟频率偏差,fc表示时钟标称频率,ΔN2表示所述三包RTCP报文中第二包RTCP报文和第三包RTCP报文的收包时间戳值对应的计数值的差,ΔN1表示所述第二包RTCP报文和第三包RTCP报文的发包时间戳值对应的计数值的差,ΔTD2表示所述第三包RTCP报文与第二包RTCP报文的抖动值,ΔT21表示所述三包RTCP报文中第二包RTCP报文的收包时间戳值与第一包RTCP报文的收包时间戳值的差,ΔT22表示所述第三包RTCP报文的收包时间戳值与第二包RTCP报文的收包时间戳值的差,J0表示所述第一包RTCP报文的实际到达时间与理想到达时间之差,J1表示所述第二包RTCP报文的实际到达时间与理想到达时间之差。
所述抖动值估计模块包括:
获取单元,用于获取当前RTCP报文和上一次接收到的RTCP报文之间的RTP报文的收包时间戳值;
计算单元,用于根据所述RTP报文的收包时间戳值,计算所述RTP报文的平均到达时间间隔差;
处理单元,用于根据所述平均到达时间间隔差估计所述当前RTCP报文与所述上一次接收到的RTCP报文的抖动值。
所述通信网元还包括:
精度控制模块,用于判断所述频偏计算模块计算得到的时钟频率偏差是否满足预设的精度门限要求;
所述校正模块进一步用于在所述时钟频率偏差满足所述预设的精度门限要求时,根据所述时钟频率偏差,校正时钟频率。
本发明还提供一种时钟频率校正系统,包括作为时钟参考源的第一通信网元和时钟频率待校正的第二通信网元,所述第二通信网元包括:
获取模块,用于在接收到所述第一通信网元发送的RTCP报文时,获取所述RTCP报文中携带的发包时间戳值以及本地的收包时间戳值;
抖动值估计模块,用于估计所述RTCP报文的抖动值;
频偏计算模块,用于根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差;
校正模块,用于根据所述时钟频率偏差,校正时钟频率。
所述第一通信网元包括:
封装模块,用于在向所述第二通信网元发送RTCP报文时,将本地的发包时间戳值封装于所述RTCP报文中。
所述频偏计算模块进一步用于根据连续接收到的三包RTCP报文中第一包RTCP报文的收包时间戳值、第二包RTCP报文和第三包RTCP报文的发包时间戳值、收包时间戳值以及第三包RTCP报文与第二包RTCP报文的抖动值,计算时钟频率偏差。
所述时钟频率偏差的计算公式为:
ΔTD2=(ΔT22-ΔT21)+(J0-J1)
其中,foff表示时钟频率偏差,fc表示时钟标称频率,ΔN2表示所述三包RTCP报文中第二包RTCP报文和第三包RTCP报文的收包时间戳值对应的计数值的差,ΔN1表示所述第二包RTCP报文和第三包RTCP报文的发包时间戳值对应的计数值的差,ΔTD2表示所述第三包RTCP报文与第二包RTCP报文的抖动值,ΔT21表示所述三包RTCP报文中第二包RTCP报文的收包时间戳值与第一包RTCP报文的收包时间戳值的差,ΔT22表示所述第三包RTCP报文的收包时间戳值与第二包RTCP报文的收包时间戳值的差,J0表示所述第一包RTCP报文的实际到达时间与理想到达时间之差,J1表示所述第二包RTCP报文的实际到达时间与理想到达时间之差。
所述抖动值估计模块包括:
获取单元,用于获取当前RTCP报文和上一次接收到的RTCP报文之间的RTP报文的收包时间戳值;
计算单元,用于根据所述RTP报文的收包时间戳值,计算所述RTP报文的平均到达时间间隔差;
处理单元,用于根据所述平均到达时间间隔差估计所述当前RTCP报文与所述上一次接收到的RTCP报文的抖动值。
所述第二通信网元还包括:
精度控制模块,用于判断所述频偏计算模块计算得到的时钟频率偏差是否满足预设的精度门限要求;
所述校正模块进一步用于在所述时钟频率偏差满足所述预设的精度门限要求时,根据所述时钟频率偏差,校正时钟频率。
本发明还提供一种时钟频率校正方法,包括以下步骤:
通信网元在接收到作为时钟参考源的对端通信网元发送的RTCP报文时,获取所述RTCP报文中携带的发包时间戳值以及本地的收包时间戳值;
所述通信网元估计所述RTCP报文的抖动值;
所述通信网元根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差;
所述通信网元根据所述时钟频率偏差,校正时钟频率。
所述通信网元根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差,具体为:
所述通信网元根据连续接收到的三包RTCP报文中第一包RTCP报文的收包时间戳值、第二包RTCP报文和第三包RTCP报文的发包时间戳值、收包时间戳值以及第三包RTCP报文与第二包RTCP报文的抖动值,计算时钟频率偏差。
所述时钟频率偏差的计算公式为:
ΔTD2=(ΔT22-ΔT21)+(J0-J1)
其中,foff表示时钟频率偏差,fc表示时钟标称频率,ΔN2表示所述三包RTCP报文中第二包RTCP报文和第三包RTCP报文的收包时间戳值对应的计数值的差,ΔN1表示所述第二包RTCP报文和第三包RTCP报文的发包时间戳值对应的计数值的差,ΔTD2表示所述第三包RTCP报文与第二包RTCP报文的抖动值,ΔT21表示所述三包RTCP报文中第二包RTCP报文的收包时间戳值与第一包RTCP报文的收包时间戳值的差,ΔT22表示所述第三包RTCP报文的收包时间戳值与第二包RTCP报文的收包时间戳值的差,J0表示所述第一包RTCP报文的实际到达时间与理想到达时间之差,J1表示所述第二包RTCP报文的实际到达时间与理想到达时间之差。
所述通信网元估计所述RTCP报文的抖动值,具体为:
所述通信网元获取当前RTCP报文和上一次接收到的RTCP报文之间的RTP报文的收包时间戳值;
所述通信网元根据所述RTP报文的收包时间戳值,计算所述RTP报文的平均到达时间间隔差;
所述通信网元根据所述平均到达时间间隔差估计所述当前RTCP报文与所述上一次接收到的RTCP报文的抖动值。
本发明的实施例具有以下有益效果:
采用具有稳定晶振的对端通信网元作为时钟参考源,在向待校正通信网元发送的RTCP报文中携带高精度的发包时间戳值,从而待校正通信网元可以根据所述RTCP报文中的发包时间戳值、本地的收包时间戳值以及所述RTCP报文的抖动值,计算时钟频率偏差,简单、有效地实现时钟频率的校正;
系统中无需引入第三方网元,降低了系统成本和组网的复杂度;
通信双方间不需要增加额外的同步报文,作为时钟参考源的对端通信网元上的处理大为简化,提高了对端通信网元的底层硬件处理其它报文的效率,同时,还能够有效的节省宝贵的网络传输带宽;
利用接收到的RTP报文的平均到达时间间隔差,能够有效估计RTCP报文的抖动,提高时钟频率校正的精度;另外,还可以利用接收到的RTP报文的平均到达时间间隔差,对RTCP报文进行筛选,实现校正精度和校正周期的可控。
具体实施方式
本发明实施例中,利用现有的RTP(Real Time Transport Protocol,实时传输协议)/RTCP(Real Time Control Protocol,实时传输控制协议)协议,实现通信网元的时钟频率的校正,无需引入第三方网元,降低了系统成本和组网的复杂度,另外,也无需在作为时钟参考源的通信网元与待校正通信网元之间增加大量的同步报文,从而不影响传输带宽以及通信网元底层硬件处理其它类型报文的效率。
下面对RTP/RTCP协议进行简单说明。
RTP/RTCP协议是针对Internet(以太网)上多媒体数据流的一个传输协议,其中,RTP报文用于传输实时数据,RTCP报文用于传输某些监控数据,例如RTP报文的丢包率、抖动等,可以在一定程度上反映网络传输的质量。采用RTP/RTCP协议通信的网元,其RTP报文和RTCP报文在通信双方是周期性交互的,即使没有实时数据传输时也存在保活报文。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示为本发明实施例的通信网元的一结构示意图,所述通信网元为时钟频率待校正的通信网元,与作为时钟参考源的对端通信网元通信,所述作为时钟参考源的对端通信网元中具有稳定的晶振,例如恒温晶振,能够产生稳定的时钟频率。所述待校正的通信网元和所述作为时钟参考源的对端通信网元均位于IP网络中,采用RTP/RTCP协议通信。
所述作为时钟参考源的对端通信网元在向所述待校正通信网元发送RTCP报文时,调用底层接口读取高精度的时间戳值,作为所述RTCP报文的发包时间戳值,封装于所述RTCP报文中。现有的RTCP报文中均有一个NTP时戳字段,所述NTP时戳字段用于记录绝对时间值,现有技术中在发送RTCP报文时,通常并不填写所述NTP时戳字段,将其保留为空或者填为零。本发明实施例中,作为时钟参考源的对端通信网元在向所述待校正通信网元发送RTCP报文时,可以将读取的高精度时间戳值填写到所述NTP时戳字段中,作为所述RTCP报文的发包时间戳值。
所述待校正通信网元包括:
获取模块101,用于在接收到作为时钟参考源的对端通信网元发送的RTCP报文时,获取所述RTCP报文中携带的发包时间戳值以及本地的收包时间戳值。
抖动值估计模块102,用于估计所述RTCP报文的抖动值。由于IP网络不可避免的存在一定的时延和抖动,因此,所述待校正通信网元接收到的RTCP报文也必然存在抖动,所述RTCP报文的抖动值是指当前接收到的RTCP报文的传输时延与上一次接收到的RTCP报文的传输时延之差,RTCP报文的传输时延是指RTCP报文的收包时间戳值与发包时间戳值之差。
频偏计算模块103,用于根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差;
校正模块104,用于根据所述时钟频率偏差,校正时钟频率。
上述实施例中,采用具有稳定晶振的对端通信网元作为时钟参考源,作为时钟参考源的对端通信网元向待校正通信网元发送的RTCP报文中携带高精度的发包时间戳值,从而待校正通信网元可以根据所述RTCP报文中的发包时间戳值、本地的收包时间戳值以及所述RTCP报文的抖动值,计算时钟频率偏差,从而实现时钟频率的校正。
由于采用对端通信网元作为时钟参考源,因此,系统中无需引入第三方网元,降低了系统成本和组网的复杂度。
作为时钟参考源的对端通信网元的处理流程大为简化,采用NTP协议或PTP协议实现时钟频率校正时,对端通信网元需要增加单独的软件处理模块,且实现过程复杂,本发明实施例中,对端通信网元只需在封装RTCP报文时,填写一个发包时间戳值即可。
本发明实施例中利用通信双方间已经存在的RTP/RTCP报文进行时钟频率的校正,不需要增加额外的同步报文,因此,还能够有效的节省宝贵的网络传输带宽,同时,也提高了作为时钟参考源的对端通信网元的底层硬件处理其它报文的效率。
采用NTP协议或PTP协议实现时钟频率校正时,需要增加新的端口号传输同步报文,而同步报文在传输中不可避免的会经过多个路由器,如果路由器设置屏蔽某些端口号的报文,则这些同步报文就无法到达目的地,也就无法完成时钟频率的校正。本发明实施例中,利用通信双方已经存在的RTP/RTCP报文,不需要增加新的端口号,因此也不存在上述问题。
采用NTP协议或PTP协议实现时钟频率校正时,如果作为时钟参考源的对端通信网元同时对多个待校正的通信网元的时钟频率进行校正,将会导致大量的报文排队等待处理,从而导致报文的到达间隔增加一定的抖动,影响校正的精度。而本发明实施例中,作为时钟参考源的对端通信网元主动发送RTCP报文,因此不存在上述问题。
下面结合附图2对所述频偏计算模块103如何根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差的方法进行详细说明。
如图2所示,T10、T11、T12分别表示作为时钟参考源的对端通信网元记录的连续三包RTCP报文的发包时间,需要说明的是,本发明实施例中,所述对端通信网元是按照固定时间间隔发送RTCP报文的,T20、T21、T22分别表示待校正通信网元记录的连续三包RTCP报文的收包时间,TD0、TD1、TD2分别表示三包RTCP报文在传输中的时延,ΔT11、ΔT12分别表示所述连续三包RTCP报文中相邻两包RTCP报文的发包时间间隔,ΔT21、ΔT22分别表示所述连续三包RTCP报文中相邻两包RTCP报文的收包时间间隔。
从图2中可以看出:ΔT22+TD1=ΔT12+TD2;
从上式可以推出:ΔT22=ΔT12+TD2-TD1;
可以令ΔTD2=TD2-TD1,则可以得到公式(1):
ΔT22=ΔT12+ΔTD2....................................(1)
公式(1)中,ΔT22表示所述连续三包RTCP报文中第三包RTCP报文与第二包RTCP报文的收包时间间隔,ΔT12表示第三包RTCP报文与第二包RTCP报文的发包时间间隔,ΔTD2表示第三包RTCP报文的传输时延与第二包RTCP报文的传输时延之差,即第三包RTCP报文与第二包RTCP报文的抖动值。
通常情况下,通信网元中是以晶振驱动FPGA(Field Programmable GateArray,现场可编程门阵列)计数来表示时间值的,本发明实施例中,所述待校正的通信网元以26M(兆赫)的晶振驱动FPGA计数,即所述待校正的通信网元读取到的时间戳值均是以FPGA计数值表示的。假设FPGA的时钟标称频率为fc(本发明实施例中,fc为26M),时钟频率偏差为foff,下面用N表示FPGA的计数值,其中,ΔN2表示第三包RTCP报文与第二包RTCP报文的收包时间间隔对应的计数值,ΔN1表示第三包RTCP报文与第二包RTCP报文的发包时间间隔对应的计数值,ΔNd表示第三包RTCP报文的传输时延与第二包RTCP报文的传输时延的差对应的计数值。
根据公式:时间T=频率F/计数值N,可以将公式(1)可转换为:
公式(2)中,FPGA的时钟标称频率fc为固定的值,ΔN1和ΔN2能够根据RTCP报文的收包时间和发包时间计算得到,而ΔNd涉及RTCP报文在传输中的时延,RTCP报文的传输时延为:RTCP报文的收包时间与RTCP报文的发包时间之差,然而,由于待校正的通信网元的时钟频率存在偏差,因此,无法通过直接计算RTCP报文的收包时间与RTCP报文的发包时间之差得到传输时延。
公式(2)中的即ΔTD2,可以通过估计ΔTD2,来计算时钟频率偏差foff。
下面具体说明如何估计ΔTD2。
从图2中还可以看出:
TD1+B1=ΔT21;
TD2+B2=ΔT22;
从上式可以推出:TD2-TD1=(ΔT22-ΔT21)+(B1-B2).....................(4)
其中,B1表示第二包RTCP报文的发包时间与第一包RTCP报文的收包时间之差,B2表示第三包RTCP报文的发包时间与第二包RTCP报文的收包时间之差。
本发明实施例中,由于作为时钟参考源的对端通信网元是按照固定时间间隔发送RTCP报文的,因此,在理想的情况下(即传输过程中不存在抖动的情况下),待校正通信网元的收包时间间隔是也固定的,如图2所示,三包RTCP报文的理想的到达时间分别为T20′、T21′、T22′,假设J0为第一包RTCP报文的理想到达时间和时间到达时间之差,J1为第二包RTCP报文的理想到达时间和时间到达时间之差,L为当前RTCP报文的理想到达时间和下一个RTCP报文的发包时间之差,可以得出:
B1=L+J0;
B2=L+J1(这里J1为负值);
从上式可以推出:
B1-B2=(L+J0)-(L+J1)=J0-J1................................................(5)
将公式(5)带入公式(4)可以得到:
ΔTD2=TD2-TD1=(ΔT22-ΔT21)+(J0-J1)......................................(6)
根据上式可知,如果可以估计出第一包RTCP报文的理想到达时间和时间到达时间之差J0和第二包RTCP报文的理想到达时间和时间到达时间之差J1,则可以估计出ΔTD2,并根据ΔTD2计算时钟频率偏差foff,即上述公式(2)还可以表示为:
ΔTD2=(ΔT22-ΔT21)+(J0-J1) .....................(7)
公式(7)中,foff表示时钟频率偏差,fc表示时钟标称频率,ΔN2表示所述三包RTCP报文中第二包RTCP报文和第三包RTCP报文的收包时间戳值对应的计数值的差,ΔN1表示所述第二包RTCP报文和第三包RTCP报文的发包时间戳值对应的计数值的差,ΔTD2表示所述第三包RTCP报文与第二包RTCP报文的抖动值,ΔT21表示所述三包RTCP报文中第二包RTCP报文的收包时间戳值与第一包RTCP报文的收包时间戳值的差,ΔT22表示所述第三包RTCP报文的收包时间戳值与第二包RTCP报文的收包时间戳值的差,J0表示所述第一包RTCP报文的实际到达时间与理想到达时间之差,J1表示所述第二包RTCP报文的实际到达时间与理想到达时间之差。
由于上述时钟频率偏差foff的计算公式涉及到连续接收到的三包RTCP报文的相关数据,因此,所述频偏计算模块103需要根据连续接收到的三包RTCP报文中第一包RTCP报文的收包时间戳值、第二包RTCP报文和第三包RTCP报文的发包时间戳值、收包时间戳值以及第三包RTCP报文与第二包RTCP报文的抖动值,计算时钟频率偏差。
下面对如何估计RTCP报文的抖动值进行详细说明。
在当前RTCP报文与上一次接收到的RTCP报文之间,待校正通信网元和作为参考源的对端通信网元之间会收发多包的RTP报文,假设作为时钟参考源的通信网元是按照固定时间间隔发送RTP报文的,例如20ms,如果网络上不存在抖动,则相邻RTP报文的到达时间间隔也应该是固定的。在网络上存在抖动的情况下,相邻RTP报文的到达时间间隔是存在偏差值的,这些偏差值可以反映这段时间内网络的实际抖动情况。因此,可以利用该段时间内的RTP报文的平均到达时间间隔差(即多包RTP报文的抖动),来估计当前RTCP报文的抖动值。
具体的,待校正的通信网元可以记录在相邻两包RTCP报文之间接收到的所有RTP报文对应的本地收包时间戳值,并根据每一RTP报文的收包时间戳值,计算RTP报文的平均到达时间间隔差。
结合附图2,本发明实施例中,可以根据相邻两包RTCP报文的平均到达时间间隔差,估计第一包RTCP报文的实际到达时间与理想到达时间之差J0和第二包RTCP报文的实际到达时间与理想到达时间之差J1,即将计算出的第一包RTCP报文对应的平均到达时间间隔m0和第二包RTCP报文对应的平均到达时间间隔m1带入式(7)中,计算时钟频率偏差:
对应于上述RTCP报文的抖动值的估计方法,所述待校正通信网元需要具有如图3所示的结构,如图3所示为本发明实施例的通信网元的另一结构示意图,在图1所示的实施例的基础上,所述抖动值估计模块102包括:
获取单元1021,用于获取当前RTCP报文和上一次接收到的RTCP报文之间的RTP报文的收包时间戳值。
计算单元1022,用于根据所述RTP报文的收包时间戳值,计算所述RTP报文的平均到达时间间隔差。
处理单元1023,用于根据所述平均到达时间间隔差估计所述当前RTCP报文与所述上一次接收到的RTCP报文的抖动值。
另外,本发明实施例中,还可以对时钟频率校正的精度进行控制。如图3所示,所述通信网元还包括:
精度控制模块105,用于判断所述频偏计算模块103计算得到的时钟频率偏差是否满足预设的精度门限要求。
所述校正模块104进一步用于在所述时钟频率偏差满足所述预设的精度门限要求时,根据所述时钟频率偏差,校正时钟频率。
本发明实施例中可以通过多种方法对时钟频率校正的精度进行控制,下面将一一进行说明。
一种对时钟频率校正的精度进行控制的方法是:预设设置满足校正精度要求的时钟频率偏差的取值范围,判断计算得到的时钟频率偏差是否位于所述取值范围内,如果满足,则可以采用计算得到的时钟频率偏差,校正时钟频率,否则,不采用所述时钟频率偏差。
另外,还可以利用RTP报文的平均到达时间间隔差,对校正用的RTCP报文进行筛选,采用满足精度要求的RTCP报文计算时钟频率偏差,否则丢弃该包RTCP报文,从而对时钟频率校正的精度进行控制,具体实现方法如下:
计算出当前RTCP报文与上一次接收到的RTCP报文之间的RTP报文的平均到达时间间隔差m,将m作为抖动值带入公式(2)中,得出此时的校正精度n,即
上述公式(2)中的
可以表示相邻两次接收到的RTCP报文的抖动情况,因此可以用m代替;公式(9)中,f
off=f
c*n。
根据上式可以计算出校正精度n的值为:
若计算出的n值不满足预定的精度要求,则可以认为此时的m为坏值,说明这段时间内网络的抖动值很大,因此,当前RTCP报文不满足时钟频率偏差的计算条件,丢弃所述RTCP报文;若计算出的n值满足预定的精度要求,则可以认为此时的m值为好值,说明这段时间内网络的抖动值较小,可以采用当前RTCP报文计算时钟频率偏差。
另外,还可以采用以下方法对校正用的RTCP报文进行筛选,以实现对时钟频率校正的精度的控制,具体实现方法如下:
可以预先设置精度门限为(-n,n),并计算在此精度下允许的最大抖动值max,根据上述公式(9)可以得出max的计算公式如下:
由于此时精度值n可能为正值也可能为负值,因此,可以得出max的取值范围为:
可以计算出当前RTCP报文与上一次接收到的RTCP报文之间的RTP报文的平均到达时间间隔差m,判断m是否位于上述max的取值范围内,若计算出的m不位于所述取值范围内,则可以认为此时的m值为坏值,说明这段时间内网络的抖动值很大,因此,当前RTCP报文不满足时钟频率偏差的计算条件,丢弃所述RTCP报文;若计算出的m位于所述取值范围内,则可以认为此时的m值为好值,说明这段时间内网络的抖动值较小,可以采用当前RTCP报文计算时钟频率偏差。
上述实施例中,可以根据具体应用的实际需要筛选RTCP报文,例如,当对校正的精度要求较高,对校正的周期要求不是很严格时,可以采用更加严格的筛选门限;当对校正的周期要求较高,对校正的精度要求不是特别高的情况下,则可以通过采用相对较低的门限值,这样采数的速度就会加快,因而校正的周期也会更短,从而实现校正精度和校正周期可控的目的。
为了使得校正结果更加准确,本发明实施例中,可以获取多个满足精度要求的时钟频率偏差,然后进行第二次筛选,去掉所述多个时钟频率偏差中的最大值和最小值,将剩余的时钟频率偏差求平均计算,得到一时钟频率偏差的平均值,并利用所述时钟频率偏差的平均值,完成时钟频率校正。
如图4所示为本发明实施例的时钟频率校正系统的一结构示意图,所述时钟频率校正系统包括:作为时钟参考源的第一通信网元200和时钟频率待校正的第二通信网元100,所述第一通信网元200和所述第二通信网元100采用RTP/RTCP协议通信,所述第一通信网元200具有稳定的晶振,例如恒温晶振,能够产生稳定的时钟频率,所述第一通信网元200可以和多个所述第二通信网元100通信,对所述多个第二通信网元100的时钟频率进行校正。
所述第一通信网元200在向所述第二通信网元100发送RTCP报文时,调用底层接口读取高精度的时间戳值,作为所述RTCP报文的发包时间戳值,封装于所述RTCP报文中。具体的,可以将读取的高精度时间戳值填写到所述RTCP报文的NTP时戳字段中。
因此,所述第一通信网元包括:
封装模块201,用于在向所述第二通信网元100发送RTCP报文时,将本地的发包时间戳值封装于所述RTCP报文中。
所述第二通信网元100包括:
获取模块101,用于在接收到作为时钟参考源的对端通信网元发送的RTCP报文时,获取所述RTCP报文中携带的发包时间戳值以及本地的收包时间戳值。
抖动值估计模块102,用于估计所述RTCP报文的抖动值。由于IP网络不可避免的存在一定的时延和抖动,因此,所述待校正通信网元接收到的RTCP报文也必然存在抖动,所述RTCP报文的抖动值是指当前接收到的RTCP报文的传输时延与上一次接收到的RTCP报文的传输时延之差,RTCP报文的传输时延是指RTCP报文的收包时间戳值与发包时间戳值之差。
频偏计算模块103,用于根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差。
校正模块104,用于根据所述时钟频率偏差,校正时钟频率。
具体的,所述频偏计算模块103进一步用于根据连续接收到的三包RTCP报文中第一包RTCP报文的收包时间戳值、第二包RTCP报文和第三包RTCP报文的发包时间戳值、收包时间戳值以及第三包RTCP报文与第二包RTCP报文的抖动值,计算时钟频率偏差。
所述时钟频率偏差的计算公式为:
ΔTD2=(ΔT22-ΔT21)+(J0-J1)
其中,foff表示时钟频率偏差,fc表示时钟标称频率,ΔN2表示所述三包RTCP报文中第二包RTCP报文和第三包RTCP报文的收包时间戳值对应的计数值的差,ΔN1表示所述第二包RTCP报文和第三包RTCP报文的发包时间戳值对应的计数值的差,ΔTD2表示所述第三包RTCP报文与第二包RTCP报文的抖动值,ΔT21表示所述三包RTCP报文中第二包RTCP报文的收包时间戳值与第一包RTCP报文的收包时间戳值的差,ΔT22表示所述第三包RTCP报文的收包时间戳值与第二包RTCP报文的收包时间戳值的差,J0表示所述第一包RTCP报文的实际到达时间与理想到达时间之差,J1表示所述第二包RTCP报文的实际到达时间与理想到达时间之差。
在当前RTCP报文与上一次接收到的RTCP报文之间,所述第二通信网元100和所述第一通信网元200之间会收发多包的RTP报文,假设作为时钟参考源的通信网元是按照固定时间间隔发送RTP报文的,如果网络上不存在抖动,则相邻RTP报文的到达时间间隔也应该是固定的。在网络上存在抖动的情况下,相邻RTP报文的到达时间间隔是存在偏差值的,这些偏差值可以反映这段时间内网络的实际抖动情况。因此,可以利用该段时间内的RTP报文的平均到达时间间隔差(即多包RTP报文的抖动),来估计当前RTCP报文的抖动值。
具体的,待校正的通信网元可以记录在相邻两包RTCP报文之间接收到的所有RTP报文对应的本地收包时间戳值,并根据每一RTP报文的收包时间戳值,计算RTP报文的平均到达时间间隔差。
此时,所述抖动值估计模块包括:
获取单元,用于获取当前RTCP报文和上一次接收到的RTCP报文之间的RTP报文的收包时间戳值;
计算单元,用于根据所述RTP报文的收包时间戳值,计算所述RTP报文的平均到达时间间隔差;
处理单元,用于根据所述平均到达时间间隔差估计所述当前RTCP报文与所述上一次接收到的RTCP报文的抖动值。
另外,本发明实施例中,还可以对时钟频率校正的精度进行控制,因此,所述第二通信网元还包括:
精度控制模块,用于判断所述频偏计算模块计算得到的时钟频率偏差是否满足预设的精度门限要求。
所述校正模块进一步用于在所述时钟频率偏差满足所述预设的精度门限要求时,根据所述时钟频率偏差,校正时钟频率。
一种对时钟频率校正的精度进行控制的方法是:预设设置满足校正精度要求的时钟频率偏差的取值范围,判断计算得到的时钟频率偏差是否位于所述取值范围内,如果满足,则可以采用计算得到的时钟频率偏差,校正时钟频率,否则,不采用所述时钟频率偏差。
另一种对时钟频率校正的精度进行控制的方法是:利用RTP报文的平均到达时间间隔差,对校正用的RTCP报文进行筛选,采用满足精度要求的RTCP报文计算时钟频率偏差,否则丢弃该包RTCP报文,从而对时钟频率校正的精度进行控制。
通过上述实施例提供的时钟频率校正系统,采用具有稳定晶振的对端通信网元作为时钟参考源,在向待校正通信网元发送的RTCP报文中携带高精度的发包时间戳值,从而待校正通信网元可以根据所述RTCP报文中的发包时间戳值、本地的收包时间戳值以及所述RTCP报文的抖动值,计算时钟频率偏差,简单、有效地实现时钟频率的校正;
系统中无需引入第三方网元,降低了系统成本和组网的复杂度;
通信双方间不需要增加额外的同步报文,作为时钟参考源的对端通信网元上的处理大为简化,提高了对端通信网元的底层硬件处理其它报文的效率,同时,还能够有效的节省宝贵的网络传输带宽;
利用接收到的RTP报文的平均到达时间间隔差,能够有效估计RTCP报文的抖动,提高时钟频率校正的精度;另外,还可以利用接收到的RTP报文的平均到达时间间隔差,对RTCP报文进行筛选,实现校正精度和校正周期的可控。
如图5所示为本发明实施例的时钟频率校正方法的一流程示意图,所述时钟频率校正方法包括以下步骤:
步骤501,通信网元在接收到作为时钟参考源的对端通信网元发送的RTCP报文时,获取所述RTCP报文中携带的发包时间戳值以及本地的收包时间戳值。
所述通信网元为时钟频率待校正的通信网元,与作为时钟参考源的对端通信网元之间采用RTP/RTCP协议通信,所述作为时钟参考源的对端通信网元中具有稳定的晶振,例如恒温晶振,能够产生稳定的时钟频率。
所述作为时钟参考源的对端通信网元在向所述待校正通信网元发送RTCP报文时,调用底层接口读取高精度的时间戳值,作为所述RTCP报文的发包时间戳值,封装于所述RTCP报文中。具体的,可以将读取的高精度时间戳值填写到所述RTCP报文的NTP时戳字段中。
步骤502,所述通信网元估计所述RTCP报文的抖动值。由于IP网络不可避免的存在一定的时延和抖动,因此,所述待校正通信网元接收到的RTCP报文也必然存在抖动,所述RTCP报文的抖动值是指当前接收到的RTCP报文的传输时延与上一次接收到的RTCP报文的传输时延之差,RTCP报文的传输时延是指RTCP报文的收包时间戳值与发包时间戳值之差。
步骤503,所述通信网元根据所述RTCP报文的发包时间戳值、收包时间戳值和抖动值,计算时钟频率偏差。
步骤504,所述通信网元根据所述时钟频率偏差,校正时钟频率。
具体的,上述步骤503可以具体为:所述通信网元根据连续接收到的三包RTCP报文中第一包RTCP报文的收包时间戳值、第二包RTCP报文和第三包RTCP报文的发包时间戳值、收包时间戳值以及第三包RTCP报文与第二包RTCP报文的抖动值,计算时钟频率偏差。
所述时钟频率偏差的计算公式为:
ΔTD2=(ΔT22-ΔT21)+(J0-J1)
其中,foff表示时钟频率偏差,fc表示时钟标称频率,ΔN2表示所述三包RTCP报文中第二包RTCP报文和第三包RTCP报文的收包时间戳值对应的计数值的差,ΔN1表示所述第二包RTCP报文和第三包RTCP报文的发包时间戳值对应的计数值的差,ΔTD2表示所述第三包RTCP报文与第二包RTCP报文的抖动值,ΔT21表示所述三包RTCP报文中第二包RTCP报文的收包时间戳值与第一包RTCP报文的收包时间戳值的差,ΔT22表示所述第三包RTCP报文的收包时间戳值与第二包RTCP报文的收包时间戳值的差,J0表示所述第一包RTCP报文的实际到达时间与理想到达时间之差,J1表示所述第二包RTCP报文的实际到达时间与理想到达时间之差。
在当前RTCP报文与上一次接收到的RTCP报文之间,待校正通信网元和作为参考源的对端通信网元之间会收发多包的RTP报文,假设作为时钟参考源的通信网元是按照固定时间间隔发送RTP报文的,如果网络上不存在抖动,则相邻RTP报文的到达时间间隔也应该是固定的。在网络上存在抖动的情况下,相邻RTP报文的到达时间间隔是存在偏差值的,这些偏差值可以反映这段时间内网络的实际抖动情况。因此,可以利用该段时间内的RTP报文的平均到达时间间隔差(即多包RTP报文的抖动),来估计当前RTCP报文的抖动值。
具体的,待校正的通信网元可以记录在相邻两包RTCP报文之间接收到的所有RTP报文对应的本地收包时间戳值,并根据每一RTP报文的收包时间戳值,计算RTP报文的平均到达时间间隔差。
此时,所述步骤502可以具体包括以下步骤:
步骤一,所述通信网元获取当前RTCP报文和上一次接收到的RTCP报文之间的RTP报文的收包时间戳值;
步骤二,所述通信网元根据所述RTP报文的收包时间戳值,计算所述RTP报文的平均到达时间间隔差;
步骤三,所述通信网元根据所述平均到达时间间隔差估计所述当前RTCP报文与所述上一次接收到的RTCP报文的抖动值。
通过上述实施例提供的时钟频率校正方法,采用具有稳定晶振的对端通信网元作为时钟参考源,在向待校正通信网元发送的RTCP报文中携带高精度的发包时间戳值,从而待校正通信网元可以根据所述RTCP报文中的发包时间戳值、本地的收包时间戳值以及所述RTCP报文的抖动值,计算时钟频率偏差,简单、有效地实现时钟频率的校正;
系统中无需引入第三方网元,降低了系统成本和组网的复杂度;
通信双方间不需要增加额外的同步报文,作为时钟参考源的对端通信网元上的处理大为简化,提高了对端通信网元的底层硬件处理其它报文的效率,同时,还能够有效的节省宝贵的网络传输带宽;
利用接收到的RTP报文的平均到达时间间隔差,能够有效估计RTCP报文的抖动,提高时钟频率校正的精度;另外,还可以利用接收到的RTP报文的平均到达时间间隔差,对RTCP报文进行筛选,实现校正精度和校正周期的可控。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。