Как рассчитать контрольную сумму TCP

Я пишу модуль ядра, который использует перехватчики Netfilter для изменения части информации заголовка TCP и, очевидно, перед отправкой я хочу пересчитать контрольную сумму.
Я также редактирую заголовок на принимающей стороне, поэтому мне нужно пересчитать его и там.

Выполняя поиск в Интернете, я обнаружил, что некоторые люди говорят, что я могу просто установить его на 0, и он будет рассчитан для меня, по-видимому, это не сработало.
Я также нашел эту функцию

tcp_v4_send_check(struct sock *sk, struct sk_buff *skb);

Хотя никто не объяснил, как это используется, и могу ли я на самом деле использовать его при получении / отправке таким же образом.
Моя собственная попытка состояла в том, чтобы установить контрольную сумму в 0, затем вызвать эту функцию, передавая skb, который у меня есть, и skb-> gt, который я имею, все еще ничего.

Итак, пожалуйста, каков простой способ вычисления контрольной суммы дейтаграмм TCP?

Ответы на вопрос(3)

Ваш ответ на вопрос