0

关于我首先要在这里实现的目标的一些信息。我正在使用德州仪器 (TI) 板 EVM6678LE,我想做的是增加板和我的 PC 之间的 UDP 传输速率。

我已通过 netsh>interface>ipv4 将 PC 上的 MTU 增加到 15,000。但是当我从我的 PC 上 ping 电路板时,我只能 ping 到“ping 192.168.2.100 -l 10194”,如果我 ping 195 字节以上,我会收到一个请求超时。这是我电脑的限制还是什么?

有谁知道这可能是什么原因?任何意见或建议都将受到欢迎。作为提高传输速率的唯一方法,我可以考虑增加每个数据包的大小,从而减少开销。在 10k 时,我的速率约为 9.1MB/s,我正试图达到 25MB/s。

谢谢!

4

1 回答 1

0

增加 PC 上的 MTU 可能无法防止碎片。我不知道到底是什么在控制它,但是即使未达到 MTU,您的网卡或驱动程序也可以对数据包进行分段。使用像 Wireshark 这样的嗅探器来查看数据包是如何发送的。

关于超时,您的主板可能会拒绝碎片 ping(因为 Ping of Death 保护)。还有一种可能是它的数据包缓冲区是 10kB (10240) 字节长,并且无法接收更大的数据包。此外,请确保接收端点具有匹配的 MTU。

无论如何,如果你想提高传输率,你就走错了路。UDP 的开销是 8 个字节,IP 20 个字节,以太网 18 个字节,总共 46 个字节(哦,巧合,46+10194 正好是 10240)。1024 MTU 的 46 字节开销为 95.5%。4096 的 46 字节为 98.9%,16384 的 46 字节为 99.7%。这意味着您从 1024 到 4096 MTU 获得 +3.5% 的传输率,从 4096 到 16384 获得 +0.8% 的传输率。增益简直荒谬,您应该让 MTU 达到常见的默认值 1500。

无论如何,仅通过更改 MTU 从 9.1MB/s 到 25MB/s 是不可能的(如果是,为什么 PC 默认值不更高?)。在这里,我猜您正在使用快速以太网 (100BASE-T),并且您已经在接近全带宽传输。要获得更高的速率,您需要拥有千兆以太网 (1000BASE‑T)。这意味着您需要两个硬件端点来支持 1000BASE-T。

于 2015-01-13T09:50:52.577 回答