Quão rápido é 127.0.0.1?

33

Gostaria de saber se ele está ligado ao meu NIC ou se o sistema operacional ou o driver interceptam e imediatamente retornam os dados enviados para o endereço de loopback?

O sinal realmente viaja para minha NIC e a NIC a retorna?

    
por serv-inc 11.02.2011 / 05:05

7 respostas

28

Você não menciona um sistema operacional em particular, mas, para a maioria dos casos, os dados percorrem a pilha até chegar ao IP, ponto em que é praticamente enviado de volta. Isso é uma simplificação massiva, mas significa que todo o processo é normalmente vinculado à CPU, portanto, seu desempenho está diretamente vinculado à velocidade da CPU e à eficiência da pilha. Em termos práticos, CPUs e sistemas operacionais modernos devem ser capazes de “rebater” o tráfego de loopback consideravelmente mais rápido que 40Gbps - que é o NIC mais rápido que acho que posso comprar hoje. Espero que isso ajude.

    
por 11.02.2011 / 12:16
38

Nenhum todo o tráfego 127.0.0.1 nunca atinge a rede física, ele é processado por um adaptador de loopback no kernel.

    
por 11.02.2011 / 05:07
12

Você pode estar interessado no recurso "Loopback Fast Path", que a Microsoft adicionou no Windows 8 e no Windows Server 2012. Consulte:

link

Também fornece uma ilustração do caminho percorrido pelo loopback com e sem a otimização.

    
por 05.12.2012 / 19:48
6

127.0.0.1 não é mais rápido que qualquer outro ip local. O ip local rápido, porque ele não usa dispositivo físico e 2 camadas (nunca atinge seu 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
    
por 11.02.2011 / 12:26
5

Depende de qual sistema operacional você está executando, mas o Windows 2000 possui um bug no qual os pedidos no adaptador de loopback são lentos. Há algumas curiosidades inúteis para você!

Consulte este artigo do KB para obter mais informações.

    
por 11.02.2011 / 11:51
2

Eu prefiro dizer que você encontre sua resposta em seu próprio nome. O nome diz: "Local Loopback Address", que por si só significa que a rede nunca intervém no processo e o pedido é em si mesmo retornado localmente.

    
por 11.02.2011 / 13:21
1

Se você está no Linux ...

digite "ifconfig -a" como root ...

Observe a linha "interrupt" em todos os NICs ... note que não há uma linha "interrupt" em "lo" ... isso significa que ela nem sequer tem uma interrupção atribuída a ela, então é muito rápido ;-)

    
por 05.12.2012 / 21:49