Что означает псевдозаголовки TCP / UDP?

Я заглянул в эти ответы, но те не ответили на мои вопросы, поэтому я решил задать один сам.

1) Первое, что я не понимаю: почему TCP / UDP вообще должен что-то знать об IP? Это абсолютно разные протоколы, которые работают на разных уровнях. Разве модуль IP не обрезает заголовок IP перед передачей сообщения в модуль UDP?

2) Второе: очень трудно понять, как использовать псевдоголовок при вычислении контрольной суммы. RFC-страница UDP говорит, что мне нужно добавить псевдоголовок, и рассчитать его тоже. Но разве это невозможно? Потому что есть только два варианта:

A) Я создаю этот псевдоголовок и заполняю его некоторыми значениями, но RFC не говорит, какими должны быть значения: если я использую одно значение и получаю другие, контрольная сумма просто не будет совпадать! Более того: в этом случае я могу просто пренебречь этим шагом, и это не повредит как-то (по крайней мере, не более, чем использование разных значений для заполнения).

Б) IP каким-то образом получает доступ к высокоуровневому протоколу (т.е. UDP) и дает мне собственный заполненный заголовок, который я собираюсь использовать на этапе вычисления контрольной суммы. Но в этом случае заголовок не будет «псевдо», а два протокола фактически будут одним протоколом.

Причина, почему я спрашиваю: мне нужно создать стабильное соединение через последовательный порт (по какой-то причине могут быть как-то поврежденные пакеты), и я решил сделать TCP здесь, и мне абсолютно не нужно Протокол IP.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]