Почему в заголовке IPv4 есть поле общей длины? [closed]

Заголовки дейтаграмм IPv4 содержат поле, называемое общей длиной , закодированное на 16 битах. Поскольку уже есть информация о длине заголовка дейтаграммы, общая длина кажется избыточной: ее можно вычислить путем вычитания длины заголовка из общей длины данных, переданных с канального уровня.

Это поле действительно необходимо?

0
задан 18 May 2013 в 13:37
2 ответа

Короткий ответ - да - спецификация IPv4 говорит, что это необходимо, и так оно и есть, по крайней мере, для целей совместимости.

Длинный ответ заключается в том, что некоторые транспорты уровня 2 будут дополнять датаграмму если он меньше определенного размера. заголовок длины IP важен, когда это происходит, так что заполнение второго уровня может быть отброшено.

5
ответ дан 4 December 2019 в 11:10

Вероятно, это вопрос не по теме, но я ясно помню, что примерно 25 лет назад в университете задавал тот же вопрос, когда мы обсуждали TCP / IP в сети 101.

Два ответа я получил, и это все еще имеет смысл, где:

"В то время, когда был разработан TCP / IP v4, было далеко не уверенно, что в будущем не будет расширения IPv4, которое сделало бы его более полезным. Поэтому они оставили это в качестве открытия для будущих изменений. "

" Если программное обеспечение, обрабатывающее пакеты TCP-IP, не знает аспектов L2 передачи данных, если требуется метод определения размера. Вы либо помещаете его в пакет или вы предоставляете программе отдельный аргумент, определяющий длину. Так что вы можете просто поместить его в заголовок в первую очередь. "

(Чтобы проиллюстрировать последнее:Вы сами упомянули об этом в вопросе: «Общая длина данных, передаваемых с канального уровня» - это дополнительный аргумент.)

2
ответ дан 4 December 2019 в 11:10

Теги

Похожие вопросы