1

関数 libnet_build_tcp に 0 を書き込むと、tcp チェックサムが自動的に計算されることがわかりましたが、なぜ libnet_do_checksum が必要なのですか?

新しいパケットを作成しようとすると、エラーが発生します。通常の TCP パケット (SYN,ACK) は正常に動作しますが、HTTP パケットは tcp チェックサム エラーのために動作しません。libnet_do_checksum を使用する必要がありますか?

4

1 に答える 1

0

チェックサムを手動で計算する場合はlibnet_do_checksum()を使用するため、たとえば送信する前にチェックサムを確認できます。

HTTPデータを運ぶパケットにチェックサムエラーがありますか?OSがチェックサムオフロードを使用している可能性があります。Wiresharkはオリジンマシンで不正なチェックサムを報告しますが、ネットワークカードはパケットをネットワークに送信する前にそれを計算します。

于 2011-03-16T19:18:24.150 に答える