JavaのTCPパケットの1:1コピーを行い、クライアントのTCP実装が自動的に破棄するように戻すための簡単な方法はありますか?または私はこれに間違った方法で近づいていますか?それは簡単なことのように思えますが、私は困惑しています。Javaでパケットが重複していませんか?
EDITここで、RAWソケットライブラリは関連性がありますか、厳密には必須ではありませんか?
JavaのTCPパケットの1:1コピーを行い、クライアントのTCP実装が自動的に破棄するように戻すための簡単な方法はありますか?または私はこれに間違った方法で近づいていますか?それは簡単なことのように思えますが、私は困惑しています。Javaでパケットが重複していませんか?
EDITここで、RAWソケットライブラリは関連性がありますか、厳密には必須ではありませんか?
はい、必要なすべてのペイロードデータをコピーして再送信できます。
いいえ、TCP/IPヘッダー(および/またはイーサネットフレームヘッダー)をJavaソケットで直接再作成する方法はありません。
あなたはlibpcapを見たいかもしれません:TCP/IPヘッダーはカーネルレベルで満たされているので、
TCPパケットの重複は、カーネルレベルで行われるべきです。
おそらく、Linuxのカーネルを再コンパイルし、TCP/IPスタックの実装を変更して、パケットのドロップと複製をシミュレートする必要があります。
返信いただきありがとうございます。このようなことを行うには、rawソケットライブラリが必要ですか?私はRockSawについて聞いたことがありますが、決してそれを使用しませんでしたが、明らかにあなたが好きなことをすることができます... – xingyu