我想通过在 PC 上安装两个 NIC(网络接口卡)并执行 ping 操作来测试 10Gig 以太网串行接口。我有以下问题:
1- 一台 PC 上可以安装两个独立的 NIC 并拥有独立的 IP 地址(用于 ping 操作)吗?
2-这看起来像是一种生成/检查通过该接口传输的数据的合理方法吗?
[
答案1
是的
也许吧。这取决于操作系统是否能打败你。过去,当我尝试测试通过 10G 以太网连接到一台计算机中的多个 NIC 的 FPGA 设计时,我遇到了问题,并且我的所有测试数据包都由操作系统路由,而不是通过网络发出(为什么 netperf 在 10G NIC 上以 40G 的速度运行?!)。
答案2
1- 一台 PC 上可以安装两个独立的网卡,并拥有独立的 IP 吗?
是的。一个系统中有多个 NIC 并没有什么特别之处。我怀疑这甚至是几乎所有服务器的标准配置,我旁边的两个台式机也都有双 NIC(很快就会有第三个,一对 10GBit NIC 已订购)。
具有多个 NIC/IP 的计算机的术语是“多宿主”
2-这看起来像是一种生成/检查通过该接口传输的数据的合理方法吗?
不,有几个原因。
- ICMP 回显请求(又名 ping)不是一个很好的测试。尝试使用 iperf 之类的工具。
- 路由可能会变得棘手。CPU 使用率也是如此。最好将其干净地分成两个系统。
- 而且,正如 Alex 已经提到的那样。有时操作系统会变得非常聪明。使用两台不同的计算机进行测试会更简单、更安全。
答案3
问题是操作系统中的 IP 堆栈不是为此设计的。
它们旨在支持多个适配器,以允许它们在网络之间路由和/或在多个网络上存在。绑定发生在地址上,而不是适配器上。如果您绑定到一个本地 IP 并尝试 ping 另一个,那么数据包将永远不会通过线路出去。
也许可以使用虚拟机或网络命名空间等来解决这个问题,但我认为使用两台独立的机器会更容易。