Интересно, привязан ли он к моему сетевому адаптеру вообще, или ОС или драйвер перехватывают и немедленно возвращают данные, отправленные на адрес обратной связи?
Действительно ли сигнал поступает на мою сетевую карту, а затем возвращается?
Нет, весь трафик 127.0.0.1 никогда не попадает в физическую сеть, он обрабатывается адаптером обратной связи в ядре.
Вы не упоминаете конкретную ОС, но чаще всего происходит то, что данные перемещаются вниз по стеку, пока не попадут на IP, и в этот момент они в значительной степени отправляются обратно. Это значительное упрощение, но означает, что весь процесс обычно привязан к ЦП, поэтому его производительность напрямую связана со скоростью ЦП и эффективностью стека. На практике современные процессоры и операционные системы должны иметь возможность «возвращать» кольцевой трафик значительно быстрее, чем 40 Гбит / с - это самая быстрая сетевая карта, которую я думаю, что я могу купить сегодня. Надеюсь это поможет.
Возможно, вас заинтересует функция «Быстрый обратный путь», которую Microsoft добавила в Windows 8 и Windows Server 2012. См.:
Он также обеспечивает иллюстрацию пути, пройденного обратной связью с оптимизацией и без нее.
127.0.0.1 не быстрее любого другого локального ip. Локальный ip быстрый, потому что он не использует физическое устройство и двухуровневый (он никогда не попадает в вашу сетевую карту)
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 была ошибка, из-за которой запросы к адаптеру обратной связи были медленными. Есть для вас несколько бесполезных мелочей!
Пожалуйста, посмотрите это статья в кб Чтобы получить больше информации.
Я бы сказал, что ответ вы найдете в самом названии. В названии написано: «Локальный адрес обратной петли», что само по себе означает, что сеть никогда не вмешивается в процесс, и запрос сам по себе возвращается в локальную петлю.
Если у вас Linux ...
введите "ifconfig -a" как root ...
Обратите внимание на строку «прерывание» на всех сетевых адаптерах ... обратите внимание, что на «lo» нет строки «прерывание» ... это означает, что ей даже не назначено прерывание, так что чертовски быстро ;-)