fragen stichworte

Wie schnell ist 127.0.0.1?

Ich frage mich, ob es überhaupt an meine Netzwerkkarte gebunden ist oder ob das Betriebssystem oder der Treiber die an die Loopback-Adresse gesendeten Daten abfängt und sofort zurückgibt.

Geht das Signal tatsächlich zu meiner Netzwerkkarte, wird es von der Netzwerkkarte zurückgegeben?

antworten

Nein, kein 127.0.0.1-Datenverkehr trifft das physische Netzwerk, er wird von einem Loop-Back-Adapter im Kernel verarbeitet.

Sie erwähnen kein bestimmtes Betriebssystem, aber meistens passieren die Daten den Stack hinunter, bis sie an IP gelangen und an diesem Punkt ziemlich viel zurückgeschickt werden. Dies bedeutet eine massive Vereinfachung der Vereinfachung, bedeutet jedoch, dass der gesamte Prozess normalerweise an die CPU gebunden ist. Daher hängt seine Leistung direkt von der CPU-Geschwindigkeit und der Stack-Effizienz ab. In der Praxis sollten moderne CPUs und Betriebssysteme in der Lage sein, Loopback-Verkehr wesentlich schneller als 40 Gbps zu "prallen". Dies ist die schnellste NIC, die ich heute kaufen kann. Hoffe das hilft.

Möglicherweise interessieren Sie sich für das Feature "Loopback Fast Path", das Microsoft in Windows 8 und Windows Server 2012 hinzugefügt hat. Siehe:

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

Außerdem wird der Pfad veranschaulicht, den der Loopback mit und ohne Optimierung einnimmt.

127.0.0.1 ist keine andere lokale IP-Adresse. Die lokale IP-Adresse ist schnell, da keine physischen Geräte und 2-Layer verwendet werden

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

Es hängt von Ihrem Betriebssystem ab, aber Windows 2000 hatte einen Fehler, bei dem Anforderungen an den Loopback-Adapter langsam waren. Es gibt einige nutzlose Kleinigkeiten für Sie!

Weitere Informationen finden Sie in diesem kb-Artikel.

Ich würde eher sagen, dass Sie Ihre Antwort im Namen selbst finden. Der Name sagt: "Local Loopback Address", was an sich bedeutet, dass das Netzwerk niemals in den Prozess eingreift und die Anforderung in sich lokal zurückgeschleift wird.

Wenn Sie unter Linux sind ...

Geben Sie "ifconfig -a" als root ein ...

Beachten Sie die "Interrupt" -Zeile auf allen NICs ... Beachten Sie, dass es auf "lo" keine "Interrupt" -Zeile gibt ... das heißt, es ist nicht einmal ein Interrupt zugewiesen, also verdammt schnell ;-)