gpt4 book ai didi

c# - 如果我在c#中发送0有效负载数据,udp数据包的大小是多少?

转载 作者:行者123 更新时间:2023-12-02 00:37:26 24 4
gpt4 key购买 nike

我已经计算出使用 udp 进行分片之前两个端点之间的最大数据是 1472(其他端点可能有所不同)。这表明 mtu 为 1500 字节,每个数据包的 header 开销为 28 字节。是否可以安全地假设,如果我发送 0 字节数据(有效负载),则实际传输的数据是 28 字节?我正在做一些基准测试,因此了解 channel 中发生的情况对我来说至关重要。

最佳答案

  • MTU 是可以在不分段的情况下传输的 IP 数据包的最大大小。

    IPv4 要求路径 MTU 至少为 576 字节,IPv6 要求路径 MTU 至少为 1280 字节。

    以太网的 MTU 为 1500 字节。

  • IP数据包由两部分组成:数据包头和负载。

    IPv4 header 的大小至少 20 字节,IPv6 header 的大小至少 40 字节。

    IP 数据包的有效负载通常是 TCP 段或 UDP 数据报。

  • UDP 数据报由 UDP header 和传输的数据组成。

    UDP header 的大小为 8 个字节。

这意味着以空 UDP 数据报作为有效负载的 IP 数据包至少需要 28 (IPv4) 或 48 (IPv6) 字节,但可能需要更多字节。

另请注意,在以太网的情况下,IP 数据包将另外包装在 MAC 数据包(14 字节 header + 4 字节 CRC)中,该数据包将嵌入以太网帧(8 字节前导序列)中。这会向 IP 数据包添加 26 字节的数据,但不计入 MTU。

因此,您不能假设 UDP 数据报将导致传输特定数量的字节。

关于c# - 如果我在c#中发送0有效负载数据,udp数据包的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4218553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com