TCPパケットを破棄し、TCPの再送信を防ぎます。

TCPパケットを破棄し、TCPの再送信を防ぎます。

TCPデータをサーバーに送信するアプリケーションがあります。私のサーバーは、アプリケーションが送信したパケットを意図的に破棄し、クライアントにパケットを再送信させます。クライアントが再送信するのを防ぐ必要があります。再送信を防ぐためにクライアントで設定できるものはありますか?たぶんiptablesルールがありますか?それとも何か変数があるのでしょうかnet.ipv4.tcp

TCPは本質的にパケットを再送信する必要があることを知っていますが、実際にはサーバーからTCPパケットを破棄し、パケットを再送信しないときにサーバーがどのように機能するかを観察する機能をテストする必要があります。だからここではUDPを使用することはできません。

クライアントはTCPハンドシェイクを完了でき、その後に送信されたパケットのみが破棄され、再送信が発生します。これが私が避けるべき再送です。

私はFedoraを使用しています:

[root@test sipp.svn]# uname -r
2.6.23.1-42.fc8
[root@test sipp.svn]# 

ベストアンサー1

あなたの意見に基づいて(好ましくはあなたの質問の一部):

TCPは本質的にパケットを再送信する必要があることを知っていますが、実際にはサーバーからTCPパケットを破棄し、パケットを再送信しないときにサーバーがどのように機能するかを観察する機能をテストする必要があります。だからここではUDPを使用することはできません。

私の理解によれば、クライアントが送信する内容について実際に気にする必要はありません。重要なのは、再送信されたパケットがサーバーに到達しないことです。それでは、最初のパケットのようにサーバー側でこれらのパケットを破棄するのはどうでしょうか?これを削除する方法はわかりませんが、iptablesを使用すると、クライアントはSYN / FINなしでTCPパケットをブロックするのに十分です。

クライアントが気にしないようにするには、サーバーでACKを偽にする必要があります。これを行うには、scapyまたは同様のツールを使用できます。

おすすめ記事