"TCP checksum incorrect"エラー
問題
送信パケットに "TCP CHECKSUM INCORRECT" がでてくる。
ダンプするとこんな感じ。
192.168.1.20 -> xxx.xxx.0.5 TCP 60277 > 8080 [ACK] Seq=xxx Ack=xxx Win=xxx [TCP CHECKSUM INCORRECT] Len=xxx TSV=xxx TSER=xxx
解決方法
NICの種類によってはチェックサムを計算する機能を持つものがある(らしい)。
チェックサムを計算しないNICが混在するネットワークに接続するとエラーがおこるということなのだろうか?
なので、とりあえずChecksum Offload機能をOFFにする。
ifconfig NIC-Name -rxcsum -txcsum
この設定をおこなった後は、"CHECKSUM INCORRECT" がでなくなった。
参考
ASTEC Eyes on the net FAQ ~ Q29
http://www.asteceyes.com/faq.html#Q29