
純粋な ACK (データのない TCP ACK) を無効にしたいのですが、その方法がわかりません。ACK が常に次のデータ パケット (確実に来るもの) に乗せられるように設定できるオプションはありますか?
特定のネットワーク範囲とデバイスに対してコマンドを使用してクイック ACK を無効にしてみましたip route
が、効果がないようです。追加情報として、このマシンでは 4.4 カーネルを実行しています。さらに情報が必要な場合は、質問していただければ提供します。
答え1
パケットは、特定の時間内に受信者によって確認応答される必要があります。そうしないと、送信者はパケットが失われたと想定し、再送信します。受信者がとにかくデータを送信すると、これらのデータに ACK が追加されます。データが送信されない場合は、パケットが受信されたことを送信者に時間どおりに知らせるために、純粋な ACK を送信する必要があります。
答え2
結局のところ、これらの純粋な ACK を返すアプリケーションは、TCP_NODELAY オプションが設定されたソケットを使用していたため、すべてのパケットは、追加のデータを待たずにできるだけ早く応答されることになります。