немного оффтоп:
вопрос по алгоритму вычисления контрольной суммы UDP и IPHeader, кажется RFC, неоднозначно его определяет.
алгоритм сложения с "двойным переносом":
ABCD + EFGH _____ KLMNO
так вот, если был перенос из 16-го бита в 17-ый (если K = 1), то мы должны присуммировать эту "единицу" к младшему байту - "NO".
---------------это все, что сказано в РФЦ.
но может быть ситуация такая, что последняя операция вызывает перенос из 8 бита в 9-ый:
D80F + E8F0 _____ 1C0FF
1) первый возможный результат: FF+1 = 00 => искомое значение - C000 2) второй возможный результат: C0FF + 1 = C100 => искомое значение - C100
Кто разъяснит эту ситуацию, как считать правильно?
--------------------
IPSA SCIENTIA POTESTAS EST
|