Ответы:
Вы видите «неправильные» контрольные суммы из-за функции, называемой разгрузкой контрольной суммы TCP. Поля контрольной суммы для исходящих пакетов TCP предварительно не рассчитываются операционной системой, а вместо этого устанавливаются в 0 и оставляются для расчета процессором NIC. В FAQ по Wireshark есть более подробное объяснение.
tcpdump
печатает первый пакет с «неправильной контрольной суммой» вместе с комментарием «ПРЕДУПРЕЖДЕНИЕ: пакет продолжается в последующих сегментах TCP». Тогда есть еще несколько с «неправильной контрольной суммой», за которой следует комментарий «Пакет SMB-over-TCP: (необработанные данные или продолжение?)». Я полагаю, что контрольная сумма в первом пакете набора будет правильной, если все последующие пакеты (которые на самом деле не имеют контрольной суммы в месте, где tcpdump
происходит захват контрольной суммы) были собраны во все целое ≤ 64 КБ целое
tcpdump --dont-verify-checksums
чтобы игнорировать это.