Qual é a velocidade da 127.0.0.1?

37

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?

serv-inc
fonte
5
Mais trivia toda 127/8 é dedicado a loop de volta
Jacob
2
Seria interessante ver algumas taxas de transferência e / ou latência do mundo real para o loopback, se alguém as possuir.
NPE
3
Mesmo que os elétrons viajam lá, o NIC provavelmente não voltar os mesmos elétrons :)
Halil Özgür
:) Sim, eu deveria dizer sinal ..
1
não há nenhum lugar como 127.0.0.1

Respostas:

29

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.

Chopper3
fonte
39

Nem todo o tráfego 127.0.0.1 nunca atinge a rede física, é processado por um adaptador de loop back no kernel.

Zypher
fonte
Então, isso significa super rápido, à direita :) #
@ Mrk Mnl sim, você aposta. Para meus ping 00ms usando o XAMP 1.7.4
12
qualquer endereço local nunca atinge a rede física. 127.0.0.1 apenas um deles
alvosu
1
"atingir a rede física" é um pouco ambíguo, pois pode chegar à sua NIC sem ser enviado e não atingir a rede física, de qualquer forma, se for retornado pelo kernel, ou seja, o sistema operacional, obviamente ele não chega à NIC.
7

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
alvosu
fonte
4
Há muita coisa errada nessa resposta. É mais rápido. Se você aturar a janela de colisão, o fator limitante será determinado pela alternância de contexto.
symcbean 11/02
incrível, exatamente o que eu estava procurando. Eu queria ver meu limite superior ao executar cliente para servidor localmente ... obrigado pela resposta !!!!
Dean Hiller
@symcbean: você pode elaborar o "erro" desta resposta, por favor?
Sam Ax
5

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.

Matthew Steeples
fonte
2

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.

ikartik90
fonte
Eu estava prestes a postar o mesmo quando notei que você me venceu. De fato 'endereço de auto-retorno' deveria dar uma dica :)
luis.espinal
a questão era como rápido, eu sei o que ele faz
O nome não diz nada. Por exemplo, um loop back físico RS-232 será tão lento quanto sua porta serial, enquanto que se você implementasse uma no nível do driver, seria mais rápido. É claro que o localhost será tratado no software, mas você não pode dizer isso apenas pelo nome "loopback". Caso você seja jovem demais para saber dessas coisas, eu dou a você google.com/search?q=rs232+loopback&tbm=isch
partir de
1

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 ;-)

jim_m_somewhere
fonte
isso não faz sentido. Isso faz pouco sentido para um dispositivo virtual e não diz nada sobre seu desempenho.
sleeplessnerd