Расчет контрольной суммы UDP

Структура заголовка UDP, определенная в /usr/include/netinet/udp.h, выглядит следующим образом

struct udphdr
{
  u_int16_t source;
  u_int16_t dest;
  u_int16_t len;
  u_int16_t check;
};

Какое значение хранится в поле проверки заголовка? Как проверить правильность контрольной суммы? Я имел ввиду, по каким данным вычисляется контрольная сумма? (Это только заголовок udp или заголовок udp плюс полезная нагрузка, которая следует за ним?)

Благодарю.

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

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