udp - RTP 数据包最大大小?

标签 udp size protocols rtp payload

我试图弄清楚哪个是 RTP 数据包的最大大小。我知道最小 header 大小为 12 个字节,但我没有找到任何有关有效负载的信息。

RTP 数据包的最大大小可能与 UDP 有效负载的最大大小相同吗?我的意思是,我只有一个负载巨大的 RTP 数据包。这是否可能,在这种情况下,对于不这样做的 RTP 数据包有任何推荐的大小吗?

例如我在 RTP 中封装 MP3 帧。我是用 1 个 MP3 帧、2 个还是多少个来制作 RTP 帧?

我希望你能理解我的问题:)

最佳答案

RTP 数据包的最大大小可能与 UDP 有效负载的最大大小相同吗?

RTP 标准没有设置最大大小,因此您可以自由设置。

(巨型数据包通常有其自身的传输问题,但这通常与较低层协议(protocol)有关。)

RTP 数据包的最大大小可能与 UDP 有效负载的最大大小相同吗?我的意思是,我只有一个负载巨大的 RTP 数据包。这是否可能,在这种情况下,对于不这样做的 RTP 数据包有任何推荐的大小吗?

是的,您可以创建一个 1446 字节长的有效负载,并将其放在 MTU 为 1500 字节的网络上的 12 字节 RTP 数据包(1458 字节)中。

当您包含一个 8 字节的 UDP header + 20 字节的 IP header + 14 字节的以太网 header 时,您有 42 字节的开销,这使您达到 1500 字节。

在实践中,如果您通过 Internet 传输此内容,此流量将被封装或跨不同的传输层传输,您可能希望将其保持在 1400 字节以下以确保安全。

例如我在 RTP 中封装 MP3 帧。我是用 1 个 MP3 帧、2 个还是多少个来制作 RTP 帧?

RTP 具有从一个唯一源到一个 RTP 流的一对一映射(除非流被混合/多路复用到一个流中)因此每个 MP3 源都将放入自己的 RTP 流中,每个都有它有自己独特的同步源标识符 (SSRC) 来区分每个流。

有关 RTP 的更多信息,请访问 the RFC 3550 itself , Colin Perkins 有一本很棒的书叫做“RTP: Audio and Video for the Internet”,I'vea fair bit on RTP on my blog我还创建了一个 Python library for creating RTP packets.

关于udp - RTP 数据包最大大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097580/

相关文章:

c++ - 无法将大小 QMainWindow 设置为小于 200x100 像素

xml - Android Seekbar编码

xcode - 如何在 swift 中使用performSelector 的默认协议(protocol)实现?

c++ - 在 C++ 中通过 UDP 套接字发送结构、 float 和整数

c++ - 通过 UDP 从 Flex 客户端到 C++ 服务器的大文件传输

c# - 使用 udp 时确定服务器是否正在监听

swift - 扩展 Dictionary,其中 Key 是 String 类型

java - 当消息太长时,log4j 不会记录整个消息

python - 在 Python 中获取 %ROOT% 大小

ios - swift 3 从父 ViewController 调用函数