【问题标题】:iperf UDP over IPv6基于 IPv6 的 iperf UDP
【发布时间】:2015-09-25 08:03:57
【问题描述】:

我正在通过 IPv6 使用 iperf (https://iperf.fr/) 进行一些 UDP 带宽测试。使用带有以下命令行的 Linux UDP 客户端时,我的结果非常糟糕:

iperf -u -V -c fe80::5910:d4ff:fe31:5b10%usb0 -b 100m

调查 Wireshark 的问题 我发现客户端发送数据时出现了一些碎片。更准确地说,我看到 UDP 客户端传出的数据包大小为 1510 字节和 92 字节,交替出现。 例如,我看到的 UDP 数据包具有以下模式(大小):1510, 92, 1510, 92, 1510, 92,...,1510, 92,...

阅读 iperf2 文档我为选项 (-l) 阅读了以下内容:

要读取或写入的缓冲区的长度。 iPerf 通过多次写入一个 len 字节数组来工作。 TCP 的默认值为 8 KB,UDP 的默认值为 1470 字节。请注意,对于 UDP,这是数据报大小,在使用 IPv6 寻址时需要将其降低到 1450 或更少以避免碎片。另请参阅 -n 和 -t 选项。

我已尝试通过将 Linux iperf UDP 客户端命令行替换为以下内容来进行相同的带宽测试:

iperf -u -V -c fe80::5910:d4ff:fe31:5b10%usb0 -b 100m -l1450

我看到了很好的结果。查看 Wireshark 捕获的内容,我再也看不到碎片了。

在 IPv4 上进行相同的测试我不需要更改默认的 UDP 数据报大小(我不需要使用“-l”选项)以获得良好的结果。

所以我的结论是(通过 IPv6 的)分段是导致带宽性能不佳的原因。

无论如何,我想知道当通过 IPv6 将 UDP 数据报大小设置为 1450 时会发生什么。为什么使用 UDP 数据报大小的默认值在 IPv6 上而不是在 IPv4 上进行分段?还有,为什么我把UDP数据报大小减到1450时没有分片?

谢谢。

【问题讨论】:

    标签: linux udp ipv6 bandwidth iperf


    【解决方案1】:

    基础 IPv4 报头为 20 字节,基础 IPv6 报头为 40 字节,UDP 报头为 8 字节。

    对于 IPv4,总数据包大小为 1470+8+20=1498,小于默认的以太网 MTU 1500。

    使用 IPv6,总数据包大小为 1470+8+40=1518,大于 1500,必须分段。

    现在让我们看看您的观察结果。您会看到大小为 1510 和 92 的数据包。其中包括 14 字节的以太网标头。因此,您的 IPv6 数据包是 1496 和 78 个字节。大包的内容是:IPv6头(40字节)、分片头(8)、UDP头(8)和1440字节的数据。较小的数据包包含 IPv6 标头 (40)、分段标头 (8) 和剩余的 30 字节数据。

    【讨论】:

      【解决方案2】:

      以太网最常见的MTU 是1500,not including ethernet frame headers。这意味着您可以通过网络在一个数据包中发送 1500 个字节,包括 IP 标头。 IPv6 headers 大于 IPv4 headers 有几个原因,最重要的是 IPv6 地址大于 IPv4。因此,当您在 IPv6 上使用默认值运行时,您的数据包大小会超过 MTU 大小,并且需要将数据包分成两部分;称为fragmentation 的过程。

      【讨论】:

      • 所以,如果我理解得很好,将 MTU 固定在 1500,由于 IPv6 标头更大,我们有更少的空间用于 UDP 有效负载。因此,默认的 UDP 数据报不适合以太网帧以及以太网和 IPv6 标头,因此必须对数据包进行分段。
      • 是的!尽管以太网 MTU 执行not include ethernet headers。因此,您通常可以在每个以太网帧中发送一个 1500 字节的 payload(以太网上下文中的有效负载是 IP 数据包,包括 IP 标头)。
      猜你喜欢
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 2021-12-01
      相关资源
      最近更新 更多