• 締切済み

TCP/IPの挙動

WiresharkとFirefoxを使って、TCPの動作を勉強中です。 ためしに、Yahooのページをアクセスしたときのログを見てみると、 GET / HTTP/1.1など、全てのGETコマンドの欄が赤く表示されました。詳細を見ると、TCPのチェックサムエラーでした。他のWEBサイトをアクセスしてもチェックサムエラーと表示されています。しかし、yahooのホームページは正しく表示されています。TCPではチェックサムが必須とされているのに不可解なWiresharkの表示です。 環境の異なるパソコンでも同じ結果でした。 Wiresharkの使いかたに問題があるのか?Wiresharkのバグなのか?httpに限ってはチェックサムが誤っていても良いのか? 実際にWiresharkを使ったうえでのコメントをお願いいたします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

送信するパケットのチェックサムは、ソフトじゃなくてハードウェア(LANカード)にセットさせることが出来ます。この場合、WindowsからLANカードのデバイスドライバに渡されるパケットのチェックサムフィールドは適当です。PCから外に出る段階では正しくなっていますので心配ありません。

mutant1000
質問者

補足

TCPの3ウェイハンドシェイクの SYN SYN+ACK ACK にはチェックサムエラーが出ませんし、 HTTPのGETコマンドのときのみ、TCPチェックサムエラーが出ます。 そもそも、LAN用チップのマニュアルによれば、CRCは殆ど全てのチップに任されている機能ですが、チェックサムは、最近のLAN用チップにのみに搭載されている機能です。そして、Wiresharkでは、IPヘッダーのチェックサム及びTCPのチェックサムをモニタできます。たとえ、TCPソケットがチェックサムをハードウェアに任せたとしても、Wiresharkではモニタできるようになっています。

関連するQ&A