127.0.0.1はどれくらい速いですか?


37

NICに関連付けられているのか、OSまたはドライバーがループバックアドレスに送信されたデータをインターセプトしてすぐに返すのか、疑問に思います。

信号は実際にNICに送信され、NICはそれを返しますか?


5
127/8全体がループバック専用のトリビア
Jacob

2
ループバックの実際のスループットやレイテンシの数値があれば、それがあれば興味深いでしょう。
NPE

3
電子がそこに移動しても、NICはおそらく同じ電子を返さないでしょう:)
ハリルÖzgür11年

:)ええ、私は信号を言う必要があります。

1
127.0.0.1などのない場所ではありません

回答:


29

特定のOSについては言及していませんが、ほとんどの場合、データはIPに到達するまでスタックを下って移動し、その時点でほとんど送り返されます。これは大規模な単純化ですが、プロセス全体が通常CPUにバインドされているため、そのパフォーマンスはCPU速度とスタック効率に直接リンクしています。実際的には、最新のCPUとOSはループバックトラフィックを40Gbpsよりもかなり速く「バウンス」できるはずです。これは、今日購入できる最速のNICです。お役に立てれば。


39

127.0.0.1のすべてのトラフィックが物理ネットワークに到達することはありません。カーネル内のループバックアダプターによって処理されます。


つまり、超高速の権利を意味します:)

@Mrk Mnlはい、あなたは賭けます。XAMP 1.7.4を使用した00msのpingの場合

12
ローカルアドレスが物理ネットワークに到達することはありません。127.0.0.1それらの1つだけ
アルボス

1
「物理ネットワークのヒット」は送信されずにNICに到達し、物理ネットワークにヒットしないため、カーネル、つまりOSから返された場合、明らかにNICに到達しないため、少しあいまいです。


7

127.0.0.1は他のローカルIPよりも高速ではありません。物理デバイスと2層を使用しないため、ローカル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

実行しているOSによって異なりますが、Windows 2000にはバグがあり、ループバックアダプターでの要求が遅くなります。役に立たない雑学があります!

詳細については、このKB記事参照してください。


2

私はむしろあなたがその名前自体にあなたの答えを見つけたと言いたいです。「ローカルループバックアドレス」という名前は、それ自体がネットワークがプロセスに介入することはなく、リクエスト自体がローカルでループバックされることを意味します。


あなたが私にそれを打ち負かしたことに気付いたとき、私は同じものを投稿しようとしていました。実際、「ループバックアドレス」はヒントを提供する必要があります:)
luis.espinal

質問はどれくらい速いか、私はそれが何をするか知っている

名前は実際には何も教えてくれません。たとえば、物理的なRS-232ループバックはシリアルポートと同じくらい遅くなりますが、ドライバーレベルで実装する場合は高速になります。もちろん、localhostはソフトウェアで処理されますが、「loopback」という名前だけではわかりません。これらのことを知るには若すぎる場合は、google.com
search

1

Linuxを使用している場合...

ルートとして「ifconfig -a」と入力します...

すべてのNICの「割り込み」行に注意してください...「lo」に「割り込み」行がないことに注意してください。つまり、割り込みが割り当てられていないことを意味します。


それは意味がありません。これは仮想デバイスにはほとんど意味がなく、そのパフォーマンスについては何も言いません。
sleeplessnerd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.