Почему ICMP относится к категории протокола 3 уровня? [закрыто]

11

ICMP классифицируется как протокол уровня 3 в модели OSI, но, насколько я могу судить, он не соответствует определению протокола сетевого уровня.

Он не обеспечивает адресацию или маршрутизацию пакетов (для этого он использует IP), поэтому все, что он делает, - это отправляет информацию с одного узла на другой узел, как транспортный протокол. Итак, учитывая это, почему ICMP классифицируется как протокол уровня 3?

Робби Маккенни
источник
Он также может сказать вам, в каком направлении идет трафик, подтвердить существование хостов, сообщить отправителю о проблемах и, прежде всего, для работы ему нужен IP-адрес
NickW
все те вещи, о которых вы упомянули, я считаю простой формой передачи информации. Я согласен, что ему нужен IP, но, конечно, это причина, по которой он помещается на уровень выше IP в стеке.
Робби Маккенни
1
В любом случае слишком много слоев :)
NickW
1
Полагаю, я ошибся, когда сказал, что ДОЛЖЕН быть на транспортном уровне. Я имел в виду, что он кажется неуместным на сетевом уровне, так каково объяснение этого там? Конечно, я предполагаю, что у всего есть причина, иногда я ошибаюсь.
Робби Маккенни
7
Вам важно понять, что Интернет не подходит для очистки в модели OSI. На самом деле RFC (3439 2.4) упоминают, что они считают наслоение вредным, когда люди пытаются быть слишком строгими по отношению к нему. ICMP в основном требуется для IP, поэтому можно утверждать, что он принадлежит как часть IP. ICMP - это в основном функция уведомления об ошибках IP. TCP / UDP использует IP для сообщений об ошибках (порт недоступен). PMTU выполняется ICMP. Так что ICMP наверняка снизит TCP / UDP. Вам просто нужно принять, что в TCP / IP нет жестких границ между слоями . Имеет значение только то, что что-то работает.
Зоредаче

Ответы:

15

ICMP фактически находится на «вершине» уровня 3. Он использует протокол IP для доставки данных на удаленный хост. Другими словами, сообщения ICMP должны быть инкапсулированы в IP-пакеты.

Считайте, что это похоже на ARP, который можно рассматривать как «наверху» уровня 2, при этом используя протокол Ethernet для фактической отправки пакетов.

ICMP реализован как часть уровня IP, так что обработка ICMP может рассматриваться как происходящая параллельно или как часть обработки IP. Поэтому в разделе о многоуровневой сети на основе TCP / IP ICMP показан как протокол уровня 3.

@Robbie Mckennie

К какому уровню относится ICMP, является предметом ожесточенных споров. Заголовок ICMP находится на уровне 4, так же, как TCP и UDP, поэтому люди утверждают, что он принадлежит к уровню 4. Другие, однако, утверждают, что ICMP является протоколом уровня 3, поскольку он помогает IP и не имеет понятия портов.

Для меня классификация протокола как принадлежащего определенному уровню в модели OSI зависит от того, как работает протокол. Пример:

BGP используется для маршрутизации на уровне 3, но сам BGP передается по протоколу TCP (и, конечно, IP)

cuonglm
источник
Итак, вы говорите, что он классифицирован как протокол уровня 3 из-за способа его обработки в стеке, а не из-за того, что он делает?
Робби Маккенни
3
Нет, это работает на уровне 3. Для всего, что он делает, это на уровне 3. Важная вещь, которую вы должны спросить себя,What is the "data unit of layer 4 protocol"?
cuonglm
Я даже не знаю, что означает этот вопрос. Я просто размышлял в соответствии с определениями, которые я прочитал для разных слоев, возможно, моя идея о том, как работает модель ос-слоя, неверна
Робби Маккенни
1
Опс, просто подсказка. data unit of layer 1 is bits, data unit of layer 2 is frames, data unit of layer 3 is packets. Что насчет слоя 4?
cuonglm
Чтобы ответить cuonglm: PDU уровня 4 является «сегментом»
лоби
6

ICMP (и ICMPv6, IGMP и т. Д.) Управляют соединениями сетевого уровня. Они (как правило) используются не конечными пользователями, а операционной системой. По этой причине он относится к уровню 3 (сеть), хотя он использует IP для адресации и определения пути (маршрутизация).

Модель OSI в значительной степени написана с точки зрения подключения пользователей (реальных людей или серверов приложений). Все протоколы управления и тому подобное все еще вписываются в модель OSI, но, похоже, не совсем соответствуют языку, поскольку они (как правило) не обслуживают пользователей напрямую.

Крис С
источник