127.0.0.1 有多快?

47 nic loopback network-speed

我想知道它是否完全绑定到我的网卡,或者操作系统或驱动程序是否拦截并立即返回发送到环回地址的数据?

信号是否真的传输到我的 NIC 然后 NIC 返回它?

Zyp*_*her 43

所有 127.xx.xx.xx 流量永远不会到达物理网络,它由内核中的环回适配器处理。

  • 任何本地地址都不会访问物理网络。127.0.0.1 只是其中之一 (14认同)
  • “命中物理网络”有点模棱两可,因为它可以在没有被发送的情况下到达您的网卡并且不会到达物理网络,无论如何,如果它是由内核(即操作系统)返回的,显然它不会到达网卡。 (2认同)

Cho*_*er3 37

您没有提到特定的操作系统,但大多数情况下,数据沿堆栈向下传输,直到到达 IP,此时它几乎被发回。这是一个巨大的过度简化,但意味着整个过程通常受 CPU 限制,因此其性能因此与 CPU 速度和堆栈效率直接相关。实际上,现代 CPU 和操作系统应该能够以比 40Gbps 快得多的速度“反弹”回环流量——这是我认为我今天能够购买的最快的 NIC。希望这可以帮助。


小智 13

您可能对 Microsoft 在 Windows 8 和 Windows Server 2012 中添加的“Loopback Fast Path”功能感兴趣。请参阅:

http://blogs.technet.com/b/wincat/archive/2012/12/05/fast-tcp-loopback-performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast-路径.aspx

它还提供了经过优化和不经过优化的环回所采用的路径的说明。


alv*_*osu 8

127.0.0.1 并不比任何其他本地 ip 快。本地ip很快,因为它不使用物理设备和2层。(它永远不会碰到你的网卡)

iperf -c 109.191.109.xxx 1111 -t 5
iperf: ignoring extra argument -- 1111
------------------------------------------------------------
Client connecting to 109.191.109.241, TCP port 5001
TCP window size: 49.7 KByte (default)
------------------------------------------------------------
[  3] local 109.191.109.xxx port 32840 connected with 109.191.109.xxx port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 5.0 sec  4.72 GBytes  8.12 Gbits/sec

$ iperf -c 127.0.0.1 1111 -t 5
iperf: ignoring extra argument -- 1111
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 49.7 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 56482 connected with 127.0.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 5.0 sec  4.62 GBytes  7.94 Gbits/sec
Run Code Online (Sandbox Code Playgroud)

  • 这个答案有很多错误。它更快。如果您使碰撞窗口饱和,则限制因素将由上下文切换驱动。 (4认同)

Mat*_*les 5

这取决于您运行的操作系统,但 Windows 2000 中存在一个错误,其中环回适配器上的请求会很慢。有一些无用的琐事给你!

请参阅此知识库文章以获取更多信息。