您的位置:首页 > 理论基础 > 计算机网络

rtcp字段计算方法

2015-12-05 07:10 555 查看
RTCP包括五种数据包类型(RFC3550 Page69):

abbrev. name value(该值RTCP头格式中的PT类型字段)

SR sender report 200

RR receiver report 201

SDES source description 202

BYE goodbye 203

APP application-defined 204

RTCP报文格式如下(RFC3550 Page35):



下面解释几个难懂的字段

NTP

Ntp把当前时间(自1970.1.1以来的秒数)分为整数部分N和小数部分X

Ntp高位=整数部分N+2208988800UL (其中2208988800UL表示自1900.1.1到1970.1.1的秒数)

Ntp低位=小数部分X* 4294967296 (其中4294967296为2^32)

RTP时间戳

以sample为单位,如音频8000HZ,一个packet为20ms,则两个rtp时间戳的间隔为160.

从rtp时间戳换算成ms的公式为:

rtp时间戳*1000/samplerate。

Jitter

设接收到两个rtp包的时间间隔,换算成以sample为单位。(Rj - Ri)

两个rtp包中rtp时间戳间隔为:(Sj - Si)

则该次jitter为D(i,j) = (Rj - Ri) - (Sj - Si)

总的jitter值取平均,计算公式为:J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16

rtcp中jitter值以sample为单位,换算成ms的公式为:jitter*1000/samplerate

LSR

取自上一个接收到的SR包中的ntp值,取值公式为:

ntp_msw&0xffff + ntp_lsw>>16 (取ntp_msw的低16位和ntp_lsw的高16位)

DLSR

从接收到上一个SR包到发送此接收报告块之间的延时,以1/65536秒为单位.

根据LSR和DLSR计算RTT

设接收到该报告块的时间为A,A的计算公式同NTP,并取msw的低16位和lsw的高16位。

RTT=(A-LSR-DLSR)>>16

该公式计算出的RTT以秒为单位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: