TCPDUMP を使用して収集された収集されたパケット ダンプを使用して、接続を集約しています。私のコードはRubyです。コードは 4 タプル (SrcIP、SrcPort、DstIP、DstPort) を使用して接続を区別します。接続が同じマシン間で、同じ IP と同じポートを持つ場合、接続は次の方法で区別されます。1. 接続間の時間が 2 時間以上の場合、それは新しい接続です 2. FIN または RST がすでに確認されている場合、新しいパケットは新しい接続からのものです 3. SYN の数が 2 時間以上の場合two (各方向に 1 つ) の場合、接続は新しい接続です。
私が対処できない状況は次のとおりです。同じ 2 つのホスト (同じ 4 タプルを持つ) 間の新しい接続が 2 時間以内に発生し、TCPDUMP が以前の RST または FIN パケットをドロップし、両方から 2 つ以上の SYN パケットもドロップした場合接続。その場合、私が設定した上記の条件はどれも機能しません。そして、残っている唯一の情報セットは、パケットの新しいセットの時間、Seq Nos、Ack Nos、およびデータ サイズです。この情報を使用するだけで、接続が新しいものか古いものかを判断できますか?
シーケンス番号にパターンがあるかどうか、または SeqNo と AckNo の間にパターンがあるかどうかを確認しようとしましたが、明確なものはないようです。