rtp模拟了tcp的一些东西。tcp和rtp都有sequence,都可以通过sequence number对包进行排序,但是和tcp的不同点是rtp每个包加1,第一个包是1,第二个包是2,一直加1,是按包来的,而不是按字节来的,tcp是按字节来的,tcp是流式的。
同一帧数据,被拆包了,timestamp是一样的。
多方通信的时候,每一个发送者都有一个ssrc,不能冲突,如果两个发送源ssrc一致,可以协商再分配。
csrc相当于是混音或者混源,有好几个ssrc。
PT是payload type,标识这个rtp包里存的什么类型的数据。音频有音频的paylaod,视频有视频的payload。
mark位为1对于视频来说是一帧拆包后的结束包。
音频第一个标志为1。
cc是csrc的个数。
x:代表的是扩展。rtp有扩展位,扩展位里面的格式是tlv格式。
扩展头需要在信令层做交互,知道扩展的type之类的。
p数据padding位,填充位。rtp数据后面对于一些加密算法来说,需要字节对齐,才能解。比如说4个字节,8个字节之类的。这样的话,在解rtp封装的时候才能解出来。有时候在加密的时候是一个奇数,需要补上padding。最后一个字节是多少,就标识补了多少字节,加上最后一个字节。
v就是rtp的不同版本。