2009-08-20 24 views
2

私はLinuxネットワークプログラミングで遊んでいます。クライアントとサーバープロセスの間に小さなメッセージを送り、ラウンドトリップ時間を測定する小さなクライアントサーバーアプリケーションを作成しました。一貫して、私はlocalhost往復のために約80msを見ます(これは接続設定の後です)。これは非常に高いようです。同一のコードを実行している同じマシンは、Vistaでは1ミリ秒よりかなり遅くなります。Linuxネットワークアプリケーションの待ち時間が高い

この相違点はどこから得られるでしょうか?コードはかなり簡単で、一方の側で受け入れ、他方の側で接続し、次にピアソケットを介して送受信します。

私はLinuxで始まったばかりですが、これが愚かな質問であれば謝ります。

+0

コードが表示されますか? – Havenard

+0

問題/ソリューションのアップデートはありますか? – TheJacobTaylor

+0

NAGLEを無効にした後、私はLinuxで〜40usを得ます。ダー。 – samwise

答えて

6

TCPソケットを使用している場合は、disable the Nagle algorithm(TCP_NODELAYソケットオプションを設定します)が必要な場合があります。

+0

これはほぼ確実に問題です。 TCPは、パケットを送信する前にそれ以上のデータを与えるかどうかを確認するために少し待っています(そうした場合は、パケットを1つのパケットにまとめることができます)。 – caf