Jak szybki jest 127.0.0.1?

37

Zastanawiam się, czy w ogóle jest on powiązany z moją kartą sieciową, czy system operacyjny lub sterownik przechwytuje i natychmiast zwraca dane wysłane na adres pętli zwrotnej?

Czy sygnał faktycznie dociera do mojej karty sieciowej, a następnie go zwraca?

serv-inc
źródło
5
Więcej ciekawostek, cały 127/8 jest poświęcony pętli zwrotnej
Jacob
2
Byłoby interesujące zobaczyć niektóre rzeczywiste dane dotyczące przepustowości i / lub opóźnienia dla pętli zwrotnej, jeśli ktoś je ma.
NPE
3
Nawet jeśli elektrony tam podróżują, NIC prawdopodobnie nie zwróci tych samych elektronów :)
Halil Özgür
:) tak, powinienem powiedzieć sygnał ..
1
nie ma takiego miejsca jak 127.0.0.1

Odpowiedzi:

29

Nie wspominasz o konkretnym systemie operacyjnym, ale w większości przypadków dane przemieszczają się w dół stosu, aż dotrą do adresu IP, w którym to momencie są prawie odsyłane. Jest to ogromne nadmierne uproszczenie, ale oznacza, że ​​cały proces jest zwykle związany z procesorem, więc jego wydajność jest bezpośrednio związana z szybkością procesora i wydajnością stosu. W praktyce nowoczesne procesory i systemy operacyjne powinny być w stanie „odbijać” ruch pętli zwrotnej znacznie szybciej niż 40 Gb / s - co jest najszybszą kartą sieciową, którą, jak sądzę, mogę dziś kupić. Mam nadzieję że to pomoże.

Siekacz 3
źródło
39

Żaden ruch 127.0.0.1 nigdy nie trafia do sieci fizycznej, jest przetwarzany przez adapter pętli zwrotnej w jądrze.

Zypher
źródło
więc to oznacza super szybką w prawo :)
@ Mr Mnl tak obstawiasz. Dla mojego ping 00ms przy użyciu XAMP 1.7.4
12
każdy adres lokalny nigdy nie trafia do sieci fizycznej. 127.0.0.1 tylko jeden z nich
alvosu
1
„uderzenie w fizyczną sieć” jest nieco dwuznaczne, ponieważ może dostać się do twojej karty sieciowej bez wysłania i nie trafić do sieci fizycznej, w każdym razie, jeśli zostanie zwrócone przez jądro, tj. system operacyjny, oczywiście nie dostanie się do karty sieciowej.
7

127.0.0.1 nie jest szybszym innym lokalnym IP. Lokalny adres ip szybki, ponieważ nie korzysta z fizycznego urządzenia i 2-warstw. (Nigdy nie uderza twojej karty sieciowej)

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
źródło
4
Jest bardzo źle z tą odpowiedzią. To jest szybsze. Jeśli wyczyścisz okno kolizji, wówczas czynnikiem ograniczającym będzie sterowanie przełączaniem kontekstu.
symcbean
niesamowite, właśnie tego szukałem. Chciałem zobaczyć mój górny limit podczas lokalnego uruchamiania klienta na serwer ... dzięki za odpowiedź !!!!
Dean Hiller,
@symcbean: czy możesz wyjaśnić „błędność” tej odpowiedzi, proszę?
Sam Axe
5

Zależy to od używanego systemu operacyjnego, ale w systemie Windows 2000 wystąpił błąd polegający na tym, że żądania adaptera sprzężenia zwrotnego byłyby wolne. Jest dla ciebie kilka bezużytecznych drobiazgów!

Więcej informacji można znaleźć w tym artykule KB .

Matthew Steeples
źródło
2

Wolę powiedzieć, że odpowiedź znajduje się w samej nazwie. Nazwa mówi: „Lokalny adres sprzężenia zwrotnego”, co samo w sobie oznacza, że ​​sieć nigdy nie ingeruje w proces, a samo żądanie jest zapętlane lokalnie.

ikartik90
źródło
Już miałem to samo opublikować, gdy zauważyłem, że mnie pobiłaś. Rzeczywiście „adres sprzężenia zwrotnego” powinien dać podpowiedź :)
luis.espinal
pytanie brzmiało, jak szybko wiem, co robi
Nazwa tak naprawdę nic ci nie mówi. Na przykład fizyczna pętla zwrotna RS-232 będzie tak samo wolna jak port szeregowy, podczas gdy gdybyś wdrożył ją na poziomie sterownika, byłoby to szybsze. Oczywiście localhost będzie obsługiwany w oprogramowaniu, ale nie można tego odróżnić od nazwy „loopback”. Jeśli jesteś za młody, aby wiedzieć o tych rzeczach, dam ci google.com/search?q=rs232+loopback&tbm=isch
aij
1

Jeśli korzystasz z systemu Linux ...

wpisz „ifconfig -a” jako root ...

Zwróć uwagę na linię „przerwań” na wszystkich kartach sieciowych… zauważ, że nie ma linii „przerwań” na „lo” ... to znaczy, że nie ma nawet przypisanego przerwania, więc cholernie szybko ;-)

jim_m_somewhere
źródło
to nie ma sensu. Nie ma to sensu dla urządzenia wirtualnego i nie mówi nic o jego wydajności.
sleeplessnerd