¿Qué tan rápido es 127.0.0.1?

37

Me pregunto si está vinculado a mi NIC o si el sistema operativo o el controlador interceptan e inmediatamente devuelven los datos enviados a la dirección de bucle invertido.

¿La señal realmente viaja a mi NIC y luego la NIC la devuelve?

serv-inc
fuente
55
Más curiosidades todo el 127/8 se dedica a la vuelta de bucle
Jacob
2
Sería interesante ver algunas cifras de rendimiento y / o latencia del mundo real para el loopback si alguien las tiene.
NPE
3
Incluso si los electrones viajan allí, la NIC probablemente no devolvería los mismos electrones :)
Halil Özgür
:) sí, debería decir señal ..
1
no hay lugar como 127.0.0.1

Respuestas:

29

No mencionas un sistema operativo en particular, pero para la mayoría de todo lo que sucede es que los datos viajan por la pila hasta llegar a IP, momento en el que prácticamente se envían de vuelta. Esa es una simplificación masiva, pero significa que todo el proceso generalmente está vinculado a la CPU, por lo que su rendimiento está directamente relacionado con la velocidad de la CPU y la eficiencia de la pila. En términos prácticos, las CPU y sistemas operativos modernos deberían poder 'rebotar' el tráfico de bucle invertido considerablemente más rápido que 40 Gbps, que es la NIC más rápida que creo que soy capaz de comprar hoy. Espero que esto ayude.

Chopper3
fuente
39

No todo el tráfico 127.0.0.1 nunca llega a la red física, es procesado por un adaptador de bucle de retorno en el núcleo.

Zypher
fuente
así que eso significa super rápido a la derecha :)
@Mrk Mnl sí, apuesta. Para mi ping 00ms usando XAMP 1.7.4
12
cualquier dirección local nunca llega a la red física. 127.0.0.1 solo uno de ellos
alvosu
1
"golpear la red física" es un poco ambiguo, ya que podría llegar a su NIC sin ser enviado y no golpear la red física, de todos modos si el núcleo lo devuelve, es decir, el sistema operativo, obviamente no llega a la NIC.
7

127.0.0.1 no es más rápido que cualquier otra ip local. La ip local es rápida, ya que no utiliza dispositivos físicos ni capas 2 (nunca llega a su NIC)

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
alvosu
fuente
44
Hay muchísimo mal con esta respuesta. Es mas rapido. Si atura la ventana de colisión, el factor limitante será impulsado por el cambio de contexto.
symcbean
impresionante, justo lo que estaba buscando. Quería ver mi límite superior cuando ejecutaba cliente a servidor localmente ... ¡gracias por la respuesta!
Dean Hiller
@symcbean: ¿puede explicar la "incorrección" de esta respuesta, por favor?
Sam Axe
5

Depende de qué sistema operativo esté ejecutando, pero Windows 2000 tenía un error en el que las solicitudes en el adaptador de bucle invertido serían lentas. ¡Hay algunas curiosidades inútiles para ti!

Consulte este artículo de kb para obtener más información.

Matthew Steeples
fuente
2

Prefiero decir que encuentras tu respuesta en su nombre. El nombre dice: "Dirección de bucle de retorno local", lo que en sí mismo significa que la red nunca interviene en el proceso y que la solicitud se repite localmente.

ikartik90
fuente
Estaba a punto de publicar lo mismo cuando noté que me ganaste. De hecho 'dirección de bucle' debería dar una pista :)
luis.espinal
la pregunta era qué tan rápido, sé lo que hace
El nombre en realidad no te dice nada. Por ejemplo, un bucle RS-232 físico será tan lento como su puerto serie, mientras que si implementara uno en el nivel del controlador sería más rápido. Por supuesto, localhost se manejará en software, pero no se puede distinguir solo por el nombre "loopback". En caso de que seas demasiado joven para saber de estas cosas, te doy google.com/search?q=rs232+loopback&tbm=isch
aij
1

Si estás en Linux ...

escriba "ifconfig -a" como root ...

Observe la línea de "interrupción" en todas las NIC ... observe que no hay una línea de "interrupción" en "lo" ... eso significa que ni siquiera tiene una interrupción asignada, así que bastante rápido ;-)

jim_m_somewhere
fuente
eso no tiene sentido. Esto tiene poco sentido para un dispositivo virtual y no dice nada sobre su rendimiento.
sleeplessnerd