контрольная сумма tcp и разгрузка tcp

я использую необработанные сокеты для создания собственного сокета. мне нужно установить tcp_checksum.
я пробовал много ссылок, но все они не работают (я использую wireshark для тестирования).
не могли бы вы мне помочь.
кстати, я где-то читал что если вы установите tcp_checksum=0. то аппаратное обеспечение автоматически рассчитает контрольную сумму для вас. Это правда? я пробовал, но в wireshark tcp_checksum дает значение 0X000 и говорит о разгрузке tcp. я также читал о разгрузке tcp и не понял, может только wireshark не может проверить разгруженную контрольную сумму tcp, но есть правильная??

РЕДАКТИРОВАТЬ: я понял, что если вы установите tcpChecksum на 0, то его установит сетевая карта, а не операционная система. я тестировал с помощью wireshark и виртуальной машины, так что это объясняет, почему контрольная сумма равна 0x000 (поскольку пакет даже не проходит на сетевую карту.)
но мне все еще любопытно вычислить tcp_checksum вручную... любая помощь или ссылки?


person scatman    schedule 23.03.2010    source источник
comment
Вы действительно получили способ вычислить контрольную сумму, пройдя 0000? Не работает для меня.   -  person user666412    schedule 18.05.2015


Ответы (1)


В этой статье делается попытка объяснить, как это делается.

Еще одно место, на которое стоит обратить внимание, это исходные коды ядра Linux, начните с файла net/ipv4/tcp__ipv4.c

person Kimvais    schedule 23.03.2010