Я хочу изменить пакеты, которые у меня есть, и отправить эти пакеты через сетевую карту. Для этого мне нужно рассчитать мой уровень UDP Checksum
.Вычислить контрольную сумму уровня UDP
Так что я нашел this функцию, которая принимает массив и возвращает Checksum
, но у меня есть два маленьких вопроса:
UDP слой имеет 8 байт: 2 порта источника, 2 порта назначения, 2 длины и 2 контрольная сумма. функция, которую я нашел, должна быть вызвана с массивом, поэтому следует ли отправлять эту функцию в мой 6-байтовый массив с 2 байтами контрольной суммы или без нее?
Эта функция упоминает, что она вычисляет контрольную сумму IP, это также подходит для вычисления контрольной суммы
UDP
?Edit:
Я нашел this статью, вычислить IP/TCP/UDP контрольной суммы, может у меня есть помощь, чтобы преобразовать код вычисления контрольной суммы UDP в C#?
Вы проверили википедию? Хорошая страница с algos и все. – TomTom
yes Я проверил – user3637066
Контрольные суммы IP используют только заголовок. Контрольные суммы TCP/UDP используют заголовок и данные. – clcto