UDP编号的段?

Posted

技术标签:

【中文标题】UDP编号的段?【英文标题】:UDP numbered segments? 【发布时间】:2021-09-04 16:42:39 【问题描述】:

我的防火墙教科书上说:“UDP 将消息分成编号的段以便传输。”

我的理解是 UDP 没有序列或其他编号方案?该数据被分成数据包并在另一端没有有序的重构就被发送出去,至少在这个层面上是这样。我错过了什么吗?

【问题讨论】:

是的,这种说法没有多大意义,但我必须查看上下文来判断它是完全错误还是描述不当。 (也许是指 IP 数据包分段?但那是在 IP 层,而不是 UDP。) books.google.com/… 【参考方案1】:

这本书是错的。 relevant section 说:

用户数据报协议 (UDP) - 此协议与 TCP 类似,因为它处理消息的寻址。 UDP 将消息分成编号的段以便传输。然后,当它到达目标计算机时,它会重新组合消息。

UDP 不包括任何分段或重组消息的机制;每条消息都作为单个 UDP 数据报发送。如果您查看第 108 页上的 UDP“数据包”(技术上的数据报)结构,就会发现没有段号或类似的东西。

请注意,分段可能发生在 UDP 之上或之下的其他层:

如果 IP 数据包对于网络链路的 MTU(最大传输单元)而言太大,则可能会被分段。这可能发生在包含 UDP、TCP 或其他任何内容的 IP 数据包上。这实际上与防火墙有关,因为创意碎片可以sometimes be used to bypass packet filtering rules。

在 UDP 之上运行的一些协议也使用编号段之类的东西。例如,TFTP(普通文件传输协议)将文件分成“块”,并传输block number in the header for each block。 (并且接收者响应确认它收到的块号——这就像一个大大简化的 TCP 版本。)但这是 TFTP 协议的一部分,而不是 UDP 的一部分。

QUIC 是在 UDP 上运行并支持分段(和多个连接,等等)的协议的另一个示例,每个数据包 contains a packet number。但它又是 QUIC 协议的一部分,而不是 UDP。

【讨论】:

感谢戈登的确认!

以上是关于UDP编号的段?的主要内容,如果未能解决你的问题,请参考以下文章

如何找到线程正在运行的处理器编号?

59.使用UDP协议检测网络性能

自己的第一个存储过程

慢速CPU的快速索引?

网络编程基础

55.伪造UDP数据包