TCP的工作是对RTP上传输的数据流分发质量进行反馈,如丢包率,抖动,带宽,速率等;当检测到质量较差时会根据自身设置在下次发送数据包的时候做一些调整,来实现优化。此过程在接收方和发送方是没有动作体现的,也不会说RTCP因为某次反馈到的质量非常不好而中断这次会话。如果网络丢包实在太差,有可能RTCP自己都收不到回包。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RTCP:Real-time Transport Control Protocol
RTP:RTP Control Protocol是姐妹协议。
RTP 使用一个 偶数 UDP port ;而RTCP 则使用 RTP 的下一个 port,也就是一个奇数 port。
RTCP由RFC3550定义。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Spydroid 代码
public void setDestinationPorts(int dport) {
if (dport % 2 == 1) {
mRtpPort = dport-1;
mRtcpPort = dport;
} else {
mRtpPort = dport;
mRtcpPort = dport+1;
}
}