3

私は、3つの組み合わせがTCPで200msの遅延のようなものを引き起こすことを読みました:Nagleのアルゴリズム、遅延確認応答、および「書き込み-書き込み-読み取り」の組み合わせ。ただし、Javaソケットではこの遅延を再現できないため、正しく理解したかどうかはわかりません。

ループバックアドレスを介してソケットを使用する2つのスレッドを備えたJava7を搭載したWindows7でテストを実行しています。ソケットのtcpNoDelayオプション(デフォルトではfalse)に触れたり、OSのTCP設定を試したりしていません。クライアントのコードの主な部分は次のとおりです。サーバーは、クライアントから2バイトを受信するたびに1バイトで応答しています。

for (int i = 0; i < 100; i++) {
    client.getOutputStream().write(1);
    client.getOutputStream().write(2);
    System.out.println(client.getInputStream().read());
}

遅れは見られません。なぜだめですか?

4

1 に答える 1