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?


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.


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.


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

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.


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.


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


isso não faz sentido. Isso faz pouco sentido para um dispositivo virtual e não diz nada sobre seu desempenho.
sleeplessnerd
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.