libpcapを使用してパケットをキャプチャし、TCPストリームを再構築するプログラムを作成しています。私のプログラムは単にトラフィックを監視しているだけなので、パケットの受信と送信を制御することはできません。私のプログラムは、TCP/IP以外のトラフィックをすべて無視します。
ISNから次に予想されるシーケンス番号を計算し、次に連続するSEQ番号を計算します。すべてのTCP接続が、送信元IP、送信元ポート、宛先IP、および宛先ポートで構成されるタプルによって一意に識別されるように設定しています。予想とは異なるシーケンス番号のパケットを受信するまで、すべてが順調に進んでいます。ここで説明していることを説明するために、スクリーンショットをアップロードしました。
私の質問は次のとおりです。1。「失われた」パケットにあったデータはどこにありますか?2.この状況からSEQ番号の順序はどのように回復しますか?3.これらの発生を処理するために何ができますか。
思い出してください; ただし、TCPに準拠したプログラムは作成していません。TCPストリームのネットワークトラフィックを受動的に監視し、生データをディスクに保存しようとするプログラムを書いていますが、上記の状態が発生する理由と、それを処理するためのプログラム方法について混乱しています。
ありがとうございました