-1

使用 WinPcap,我制作了一系列自定义 UDP 数据包并将它们注入以太网层。

我发送了 1000 个数据包,每个数据包 1440 字节。100 Mbps 带宽需要 2.1 秒。

如何利用全带宽?

4

4 回答 4

1

Your throughput seems to be exactly the max you'd get for a 10 mbit connection. Sure there's no 10mbit involved anywhere ?

于 2009-03-24T05:09:09.687 回答
1

最初我误读了这个问题,并认为它是这个的副本。但是 100Mbps 使它完全不同。

即使是非常普通的硬件也应该能够毫无问题地使 100Mbps 连接饱和 - 特别是如果您使用 1440 字节的 udp 数据包。

正如 krosenvold 所建议的那样,这些数字看起来确实像 10Mbps 连接,而不是 100Mbps。我会从头到尾检查所有链接,以确保它们达到您认为的 100Mbps。该链中的任何 10Mbps 链路都将成为问题。

根据您使用的设备,您可能会发现链路自动协商存在问题。有些设备是出了名的糟糕,因此您可以通过关闭自动协商并将链接速度强制为 100Mbps 来获得更好的结果。

由于您有一个正在使用的 pcap 文件,我建议您尝试tcpreplay进行一些速度测试。tcpreplay 提供了几个选项来以尽可能高的速度重播文件。(特别是,看看这个wiki 条目)

如果这给您的结果与您目前看到的不同,则可能表明 pcap 文件存在问题。例如,pcap 文件确实包含可在重放文件时使用的计时信息。如果您的 pcap 文件中的时间是从 10Mbps 网络中获取的(例如),那么实时重放它会给您提供您所看到的结果。

于 2009-03-24T22:12:10.320 回答
0

确保数据交换路径上的所有设备和媒体都以 100 mbps 的速度运行,连接的速度仅与最薄弱的链路一样快。还要确保所有设备(包括您的网卡)都在全双工模式下运行。

于 2009-03-24T22:22:27.627 回答
0

传输期间的 CPU 使用率如何?

我们需要找到瓶颈。它可以是 NIC/网络或 CPU。确保您没有为每个数据包“打开”NIC。

错误的:

loop{
   OpenDevice
   SendPacket
}

好的:

OpenDevice
loop{
 SendPacket
}
于 2009-03-25T22:42:03.157 回答