我知道在网络中,数据流会在第四层被分成不同的段。每个段都将被封装为端口号和IP地址。我有几个困惑的问题需要问一下:
是应用程序还是第四层负责将数据流分成不同的段?
我了解到UDP不支持分段。那么在发送数据流时(如VoIP应用程序),数据流如何分成不同的段?
是应用程序还是第四层负责将数据流分成不同的段?
我了解到UDP不支持分段。那么在发送数据流时(如VoIP应用程序),数据流如何分成不同的段?
应用层不应该担心TCP通信中的分段(传输层数据包)。因为它是由TCP层创建的。理论上,段大小可以达到65495。但它将根据您的出站接口(如以太网卡)的MTU计算。因此,应用层根本不涉及数据流的分段。UDP也在第4层,但它不支持TCP的可靠性。否则,UDP数据报的创建(UDP通信中的传输层数据包)与TCP中的段完全相同。
第三层的责任是处理数据分段。MTU的通常大小为576字节。因此,网络层将传输层段分成大小为576字节的块,添加自己的头并将其发送到数据链路层。
即使使用UDP,也可能发生分段。UDP不知道分段和片段的重组,因为执行这些操作的是网络层。无论传输层协议如何,超过576字节的任何内容都会被分段。
在VoIP中,每次处理20-30毫秒的数据块,并作为应用层消息发送。