大虾们!rtcp协议怎么实现丢包重发!????
看了一下rtp/RTCP 协议,发现RTCP 的报文中仅仅有丢包率这样的概念,但好像客户端并没有将所有丢失的包的序列号或时间戳发给服务器要求重发,所以想问问大虾们:
1. rtcp到底怎样实现丢包补发的?
2. rtcp如果有重发(补发)的机制,那么是根据序列号重发还是时间戳?大虾请详细讲讲。
3. 另外,由于rtp 的序列号仅仅2个字节(最高65536帧),经过对live 555开源rtsp服务器打印序列号log,
发现序列号是循环复用的。那么对于大文件或直播不断增长的缓存文件,服务器再接受到客户端丢失包
的序列号后,如何根据序列号在文件中找到相应的帧,重发?
补充:问题产生的缘由,假设某个点播文件比较大,并超过65536帧,那么rtsp服务器再发送第65536帧后,
以后的帧的序列号会由1重新开始。那么如果这个时候客户端发送的报告中说帧为1的数据丢失了,那么
这时候服务器如果根据序列号的话,把文件开始的第一帧发送出去就会出错。因为实际应该是65537帧丢失了。
所以,rtp/rtcp如何解决序列号2个字节不够用的问题的?
以上任何文件答对都给分。