3

ループバック インターフェイスを介した Windows での TCP/IP 接続の遅延を測定しています。メッセージが送信されてから応答が受信されるまでの時間は約 4 ミリ秒です。

RPC の目的で、TCP/IP の上にTCF層があります。送受信されるメッセージには、TCF フレーミングに加えて、ペイロードとして 1 文字のみが含まれます。

コマンドを処理する「サーバー」は、boost asio を使用して C++ で実装されています。コマンドを送信する「クライアント」は、Python TCF リファレンス実装を使用する Python スクリプトです。

ソケット オプションを TCP_NODELAY に設定して Nagle アルゴリズムを無効にし、ソケットのさまざまなバッファ サイズを試してみましたが、ラウンドトリップ時間は約 4 ミリ秒のままです。かなり低いと予想していました。

C++ 側のプロファイリングでは、実行時間の約 50% がコマンドの待機に費やされていることが示されているため、次のステップでは、python スクリプトを C++ 実装に置き換えてみることになりますが、何が期待できるかを知っておくとよいでしょう。ループバック インターフェイスでの往復時間。

この SO, question:
Linux Loopback performance with TCP_NODELAY enabled は関連していますが、私の質問には完全には答えていません。

4

1 に答える 1

6

でレイテンシの下限を設定できますping localhost。報告される数は、送信された 1 つのパケットと受信された 1 つのパケットです。

TCP メッセージが既存の接続で送信される場合、ほぼそのレイテンシーが発生する可能性があります。

測定された時間に TCP 接続のセットアップが含まれていた場合、その 10 倍のレイテンシが発生する可能性があります。

于 2012-07-03T13:51:05.073 に答える