我正在a Java implementation RFC 3550 (RTP),我遇到了一个小问题:
在chapter 11第2段中,它指出:
(...)参与者不得假设传入RTP或RTCP数据包的源端口可用作传出RTP或RTCP数据包的目标端口。当RTP数据包在两个方向上发送时,每个参与者的RTCP SR数据包必须被发送到另一个参与者指定用于接收RTCP的端口。 (...)
RTP没有任何机制来通知这些地址和端口(这取决于SDP或其他一些设置协议),这将使我将此段理解为“如果您从未知来源接收数据,丢弃它“。
但在section 6.3.3中,它基本上表示当收到带有未知SSRC的RTP或非BYE RTCP数据包时,应将新参与者添加到表中。
总结一下:
所以百万美元的问题是:人们应该如何处理意想不到的SSRC?
答案 0 :(得分:2)
所以百万美元的问题仍值一百万美元。会研究和更新你。在此期间,如果您找到答案,请更新我们。
答案 1 :(得分:0)
根据我对RFC的解释,您对问题的回答见第6.3.3节:
6.3.3接收RTP或非BYE RTCP数据包
当从SSRC不在成员表中的参与者收到RTP或RTCP数据包时,SSRC将被添加到表中,并且一旦参与者按照第6.2节所述验证参与者,就会更新成员的值。 1。
关于哪个条目应被视为有效:
(...)在收到携带新SSRC的多个数据包之前,可以认为新条目无效(见附录A.1),或者直到收到包含该SSRC的CNAME的SDES RTCP数据包为止。 ...)
我可能会遗漏一些东西吗? ;)