Слишком много неправильных ошибок контрольной суммы в TCPDUMP
23
Я нахожу слишком много неправильных ошибок контрольной суммы из TCPDUMP, сделанного на 64- битном сервере GNU Linux. В экспорте почти 50% неправильных чекчумов?
cksum 0xe61f (неверно (-> 0x8c37)
Как мы можем интерпретировать эти данные? Это сильно влияет на производительность?
Вы видите «неправильные» контрольные суммы из-за функции, называемой разгрузкой контрольной суммы TCP. Поля контрольной суммы для исходящих пакетов TCP предварительно не рассчитываются операционной системой, а вместо этого устанавливаются в 0 и оставляются для расчета процессором NIC. В FAQ по Wireshark есть более подробное объяснение.
Я видел это, но это было специфично для «Если все пакеты с неправильными контрольными суммами TCP отправляются машиной, на которой работает Wireshark», и было неясно, сколько неудачных допустимых контрольных сумм повлияет на производительность сети.
Вишал
4
Вы должны видеть только неправильные контрольные суммы на пакетах, отправленных вашей машиной. Это не относится к Wireshark, любое программное обеспечение для захвата пакетов, работающее на этом уровне, даст аналогичные результаты. Если вы видите, что контрольная сумма не получена на полученных пакетах, это может быть проблемой - эти пакеты отбрасываются стеком TCP и запускают повторную передачу, а также алгоритмы управления перегрузкой, что напрямую влияет на пропускную способность данных.
The Wabbit
Ошибки контрольной суммы были только на отправленных пакетах. Благодарность!
Вишал
Я вижу неправильные контрольные суммы на больших входящих пакетах SMB, которые должны быть повторно собраны. tcpdumpпечатает первый пакет с «неправильной контрольной суммой» вместе с комментарием «ПРЕДУПРЕЖДЕНИЕ: пакет продолжается в последующих сегментах TCP». Тогда есть еще несколько с «неправильной контрольной суммой», за которой следует комментарий «Пакет SMB-over-TCP: (необработанные данные или продолжение?)». Я полагаю, что контрольная сумма в первом пакете набора будет правильной, если все последующие пакеты (которые на самом деле не имеют контрольной суммы в месте, где tcpdumpпроисходит захват контрольной суммы) были собраны во все целое ≤ 64 КБ целое
tcpdump --dont-verify-checksums
чтобы игнорировать это.Ответы:
Вы видите «неправильные» контрольные суммы из-за функции, называемой разгрузкой контрольной суммы TCP. Поля контрольной суммы для исходящих пакетов TCP предварительно не рассчитываются операционной системой, а вместо этого устанавливаются в 0 и оставляются для расчета процессором NIC. В FAQ по Wireshark есть более подробное объяснение.
источник
tcpdump
печатает первый пакет с «неправильной контрольной суммой» вместе с комментарием «ПРЕДУПРЕЖДЕНИЕ: пакет продолжается в последующих сегментах TCP». Тогда есть еще несколько с «неправильной контрольной суммой», за которой следует комментарий «Пакет SMB-over-TCP: (необработанные данные или продолжение?)». Я полагаю, что контрольная сумма в первом пакете набора будет правильной, если все последующие пакеты (которые на самом деле не имеют контрольной суммы в месте, гдеtcpdump
происходит захват контрольной суммы) были собраны во все целое ≤ 64 КБ целое