Наскільки швидко 127.0.0.1?


37

Цікаво, чи він взагалі прив’язаний до мого NIC або якщо ОС або драйвер перехоплює та негайно повертає дані, надіслані на адресу петлі?

Чи сигнал насправді подорожує моїм NIC, тоді NIC повертає його?


5
Більше дрібниць цілих 127/8 присвячено петлі назад
Якову

2
Було б цікаво побачити деякі показники пропускної здатності та / або затримки для реального часу, якщо хтось має.
NPE

3
Навіть якщо електрони туди їдуть, NIC, ймовірно, не поверне ті самі електрони :)
Halil Özgür

:) так, я повинен сказати сигнал ..

1
немає місця, як 127.0.0.1

Відповіді:


29

Ви не згадуєте про конкретну ОС, але для більшості, що трапляється, це те, що дані переміщуються вниз по стеку, поки вони не потрапляють до IP, і в цей момент вони майже відправляються назад. Це велике надмірне спрощення, але означає, що весь процес зазвичай пов'язаний з процесором, тому його продуктивність безпосередньо пов'язана зі швидкістю процесора плюс ефективністю стека. На практиці сучасні процесори та ОС повинні бути в змозі «відскакувати» зворотний трафік значно швидше, ніж 40 Гбіт / с - що є найшвидшим NIC, який я думаю, що я сьогодні здатний придбати. Сподіваюся, це допомагає.


39

Не весь трафік 127.0.0.1 ніколи не потрапляє у фізичну мережу, він обробляється адаптером зворотного циклу в ядрі.


так що це означає, що дуже швидко правильно :)

@Mrk Mnl так, ти ставиш. Для мого пінг-00м за допомогою XAMP 1.7.4

12
будь-яка локальна адреса ніколи не потрапляє у фізичну мережу. 127.0.0.1 лише один із них
alvosu

1
"потрапляння у фізичну мережу" є дещо неоднозначним, оскільки воно може потрапити до вашого NIC, не надсилаючись і не потрапивши у фізичну мережу, все одно, якщо воно повернеться ядром, тобто ОС, очевидно, він не потрапить до NIC.

12

Вас може зацікавити функція "Швидкий цикл зворотного шляху", яку Microsoft додала в Windows 8 та Windows Server 2012. Див.

http://blogs.technet.com/b/wincat/archive/2012/12/05/fast-tcp-loopback-performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast- path.aspx

Він також пропонує ілюстрацію шляху, пройденого циклом з оптимізацією та без неї.


7

127.0.0.1 не швидше будь-якого іншого локального ip. Локальний ip швидко, оскільки він не використовує фізичний пристрій та двошарові пристрої (він ніколи не потрапляє на ваш 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
У цій відповіді дуже багато неправильно. Це швидше. Якщо ви оцінюєте вікно зіткнення, то обмежуючий фактор визначатиметься перемиканням контексту.
symcbean

дивовижно, саме те, що я шукав. Я хотів побачити верхню межу під час запуску клієнта на сервер локально ... дякую за відповідь !!!!
Дін Гіллер

@symcbean: чи можете ви детальніше розкрити "неправильність" цієї відповіді?
Сем Топор

5

Це залежить від ОС, на якій ви працюєте, але в Windows 2000 була помилка, коли запити на адаптер петлі будуть повільними. Ось якісь марні дрібниці для вас!

Будь ласка, дивіться цю статтю kb для отримання додаткової інформації.


2

Я скоріше скажу, що ви знайдете свою відповідь у самій назві. Назва говорить: "Локальна адреса зворотного звороту", що саме по собі означає, що мережа ніколи не втручається в процес, а запит сам по собі відновлюється локально.


Я збирався поставити те саме, коли помітив, що ти побив мене. Дійсно, "loopback address" повинен дати підказку :)
luis.espinal

питання було наскільки швидко, я знаю, що це робить

Назва насправді нічого вам не говорить. Наприклад, назад фізичний цикл RS-232 буде настільки ж повільним, як і ваш послідовний порт, тоді як якби ви реалізували його на рівні драйвера, це було б швидше. Звичайно, localhost буде оброблятися в програмному забезпеченні, але ви не можете сказати це лише з назви "loopback". У разі , якщо ви занадто молоді , щоб знати про ці речі, я даю вам google.com/search?q=rs232+loopback&tbm=isch
ау

1

Якщо ви працюєте в Linux ...

введіть "ifconfig -a" як корінь ...

Зверніть увагу на рядок "переривання" на всіх NIC ... зауважте, що на "lo" немає лінії "переривання" ... це означає, що вона навіть не має присвоєного їй переривання, тому досить чорт швидко ;-)


в цьому немає сенсу. Це мало сенсу для віртуального пристрою і нічого не говорить про його продуктивність.
безсонний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.