Gostaria de saber se ele está vinculado à minha placa de rede ou se o SO ou o driver intercepta e retorna imediatamente os dados enviados para o endereço de loopback?
O sinal realmente viaja para minha NIC e depois a NIC o devolve?
Gostaria de saber se ele está vinculado à minha placa de rede ou se o SO ou o driver intercepta e retorna imediatamente os dados enviados para o endereço de loopback?
O sinal realmente viaja para minha NIC e depois a NIC o devolve?
Respostas:
Você não menciona um sistema operacional específico, mas quase tudo o que acontece é que os dados trafegam pela pilha até chegarem ao IP, quando são enviados de volta. Essa é uma simplificação excessiva, mas significa que todo o processo geralmente está vinculado à CPU, portanto, seu desempenho está diretamente relacionado à velocidade da CPU e à eficiência da pilha. Em termos práticos, CPUs e sistemas operacionais modernos devem ser capazes de "devolver" o tráfego de loopback consideravelmente mais rápido que 40 Gbps - que é a NIC mais rápida que acho que sou capaz de comprar hoje. Espero que isto ajude.
Nem todo o tráfego 127.0.0.1 nunca atinge a rede física, é processado por um adaptador de loop back no kernel.
Você pode estar interessado no recurso "Caminho Rápido de Loopback" que a Microsoft adicionou no Windows 8 e Windows Server 2012. Consulte:
Ele também fornece uma ilustração do caminho percorrido pelo loopback com e sem a otimização.
127.0.0.1 não é mais rápido que qualquer outro ip local. O ip local é rápido, porque não usa dispositivo físico e duas camadas (nunca atinge sua 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
Depende do SO que você está executando, mas o Windows 2000 teve um bug, em que as solicitações no adaptador de loopback seriam lentas. Há algumas curiosidades inúteis para você!
Consulte este artigo do kb para obter mais informações.
Prefiro dizer que você encontra sua resposta no próprio nome. O nome diz: "Local Loopback Address", que por si só significa que a rede nunca intervém no processo e a solicitação é, em si mesma, retornada localmente.
Se você estiver no Linux ...
digite "ifconfig -a" como root ...
Observe a linha "interrupção" em todas as placas de rede ... observe que não há linha "interrupção" em "lo" ... isso significa que ela nem sequer tem uma interrupção atribuída a ela, muito rápido ;-)