Зачем нам нужен libnet_do_checksum? Контрольная сумма HTTP не работает - PullRequest
0 голосов
/ 03 июня 2010

Я понял, что контрольная сумма tcp вычисляется автоматически, если мы напишем 0 в функции libnet_build_tcp, так зачем нам нужен libnet_do_checksum?

У меня ошибка при попытке создать новый пакет. Регулярный TCP-пакет (SYN, ACK) работает нормально, но HTTP-пакет не работает, так как ошибка контрольной суммы tcp. Нужно ли использовать libnet_do_checksum?

1 Ответ

0 голосов
/ 16 марта 2011

Вы используете libnet_do_checksum (), когда хотите вручную вычислить контрольную сумму, чтобы проверить ее, например, перед отправкой.

Вы уверены, что пакет, содержащий данные HTTP, содержит ошибку контрольной суммы? Может случиться так, что ОС использует разгрузку контрольной суммы. Wireshark сообщит о неверной контрольной сумме на исходном компьютере, но сетевая карта вычислит ее перед отправкой пакета по сети.

...