Слишком много неправильных ошибок контрольной суммы в TCPDUMP

23

Я нахожу слишком много неправильных ошибок контрольной суммы из TCPDUMP, сделанного на 64- битном сервере GNU Linux. В экспорте почти 50% неправильных чекчумов?

cksum 0xe61f (неверно (-> 0x8c37)

Как мы можем интерпретировать эти данные? Это сильно влияет на производительность?

Вишал
источник
4
Используйте, tcpdump --dont-verify-checksumsчтобы игнорировать это.
Виллем

Ответы:

31

Вы видите «неправильные» контрольные суммы из-за функции, называемой разгрузкой контрольной суммы TCP. Поля контрольной суммы для исходящих пакетов TCP предварительно не рассчитываются операционной системой, а вместо этого устанавливаются в 0 и оставляются для расчета процессором NIC. В FAQ по Wireshark есть более подробное объяснение.

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