シーケンス番号とTCPフラグ(SYN、ACK)に焦点を当てて、rawソケットを使用してTCPパケットを作成します
1台のマシンSを使用してtcpACKパケットを送信し(フラグACKは1に設定されています)、別のマシンRを使用して受信しました。これら2台のマシンは、すべて私の学校で異なるサブネットにあります。
その間、tcpdumpを使用してパケットをキャプチャしました。
奇妙なことが起こります!マシンSでは、キャプチャされたパケットは期待どおりであり、ACKパケットですが、受信マシンRでは、パケットはSYNパケットになり、シーケンス番号が変更されます。シーケンス番号は予想より1小さくなり、ack_seqは次のようになります。 0!
潜在的な問題は何ですか?私の推測では、ルーター/ファイアウォールは、ACKの前にSYN SYN / ACK交換を認識しないため、ACKパケットをSYNパケットに変更しましたか?それは可能かどうか?
キャプチャされた2つのパケットは次のとおりです。
https://docs.google.com/file/d/0B09y_TWqTtwlVnpuUlNwUmM1YUE/edit?usp=sharing https://docs.google.com/file/d/0B09y_TWqTtwlTXhjUms4ZnlkMVE/edit?usp=sharing