Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
関数 libnet_build_tcp に 0 を書き込むと、tcp チェックサムが自動的に計算されることがわかりましたが、なぜ libnet_do_checksum が必要なのですか?
新しいパケットを作成しようとすると、エラーが発生します。通常の TCP パケット (SYN,ACK) は正常に動作しますが、HTTP パケットは tcp チェックサム エラーのために動作しません。libnet_do_checksum を使用する必要がありますか?
チェックサムを手動で計算する場合はlibnet_do_checksum()を使用するため、たとえば送信する前にチェックサムを確認できます。
HTTPデータを運ぶパケットにチェックサムエラーがありますか?OSがチェックサムオフロードを使用している可能性があります。Wiresharkはオリジンマシンで不正なチェックサムを報告しますが、ネットワークカードはパケットをネットワークに送信する前にそれを計算します。