Цікаво, чи він взагалі прив’язаний до мого NIC або якщо ОС або драйвер перехоплює та негайно повертає дані, надіслані на адресу петлі?
Чи сигнал насправді подорожує моїм NIC, тоді NIC повертає його?
Цікаво, чи він взагалі прив’язаний до мого NIC або якщо ОС або драйвер перехоплює та негайно повертає дані, надіслані на адресу петлі?
Чи сигнал насправді подорожує моїм NIC, тоді NIC повертає його?
Відповіді:
Ви не згадуєте про конкретну ОС, але для більшості, що трапляється, це те, що дані переміщуються вниз по стеку, поки вони не потрапляють до IP, і в цей момент вони майже відправляються назад. Це велике надмірне спрощення, але означає, що весь процес зазвичай пов'язаний з процесором, тому його продуктивність безпосередньо пов'язана зі швидкістю процесора плюс ефективністю стека. На практиці сучасні процесори та ОС повинні бути в змозі «відскакувати» зворотний трафік значно швидше, ніж 40 Гбіт / с - що є найшвидшим NIC, який я думаю, що я сьогодні здатний придбати. Сподіваюся, це допомагає.
Не весь трафік 127.0.0.1 ніколи не потрапляє у фізичну мережу, він обробляється адаптером зворотного циклу в ядрі.
Вас може зацікавити функція "Швидкий цикл зворотного шляху", яку Microsoft додала в Windows 8 та Windows Server 2012. Див.
Він також пропонує ілюстрацію шляху, пройденого циклом з оптимізацією та без неї.
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
Це залежить від ОС, на якій ви працюєте, але в Windows 2000 була помилка, коли запити на адаптер петлі будуть повільними. Ось якісь марні дрібниці для вас!
Будь ласка, дивіться цю статтю kb для отримання додаткової інформації.
Я скоріше скажу, що ви знайдете свою відповідь у самій назві. Назва говорить: "Локальна адреса зворотного звороту", що саме по собі означає, що мережа ніколи не втручається в процес, а запит сам по собі відновлюється локально.
Якщо ви працюєте в Linux ...
введіть "ifconfig -a" як корінь ...
Зверніть увагу на рядок "переривання" на всіх NIC ... зауважте, що на "lo" немає лінії "переривання" ... це означає, що вона навіть не має присвоєного їй переривання, тому досить чорт швидко ;-)