Dlaczego ICMP jest klasyfikowany jako protokół warstwy 3? [Zamknięte]

11

ICMP jest sklasyfikowany jako protokół warstwy 3 w modelu OSI, ale o ile mogę stwierdzić, nie spełnia definicji protokołu warstwy sieci.

Nie zapewnia adresowania ani routingu pakietów (wykorzystuje do tego IP), więc wszystko, co robi, to wysyłanie informacji z jednego węzła do drugiego, na przykład protokołu transportowego. Biorąc to pod uwagę, dlaczego ICMP jest klasyfikowany jako protokół warstwy 3?

Robbie Mckennie
źródło
Może również powiedzieć, w którą stronę idzie ruch, potwierdzić istnienie hostów, poinformować nadawcę o problemach, a przede wszystkim do pracy, potrzebuje adresu IP
NickW
wszystkie rzeczy, o których wspomniałeś, które uważam za zwykłe formy przenoszenia informacji. Zgadzam się, że potrzebuje adresu IP, ale z pewnością jest to powód, aby umieścić go na warstwie powyżej adresu IP w stosie.
Robbie Mckennie
1
W każdym razie jest za dużo warstw :)
NickW
1
Przypuszczam, że źle popełniłem, kiedy powiedziałem, że POWINNY być w warstwie transportowej. Miałem na myśli, że wydaje się nie pasować do warstwy sieci, więc co to wyjaśnia? Oczywiście zakładam, że wszystko ma powód, czasem się mylę.
Robbie Mckennie
7
Ważne jest, aby zdać sobie sprawę, że Internet nie pasuje do czyszczenia w modelu OSI. W rzeczywistości RFC (3439 2.4) wspominają, że uważają nakładanie warstw za szkodliwe, gdy ludzie starają się być zbyt surowi. ICMP jest w zasadzie wymagany dla IP, więc można argumentować, że należy on do IP. ICMP jest w zasadzie funkcją powiadamiania o błędach IP. TCP / UDP używa IP do komunikatów o błędach (port nieosiągalny). PMTU jest wykonywane przez ICMP. ICMP z pewnością obniża TCP / UDP. Musisz po prostu zaakceptować fakt, że w TCP / IP nie ma sztywnych granic między warstwami . Liczy się tylko to, że coś działa.
Zoredache

Odpowiedzi:

15

ICMP znajduje się w górnej części warstwy 3. Wykorzystuje protokół IP do dostarczania danych do zdalnego hosta. Innymi słowy, wiadomości ICMP muszą być zamknięte w pakietach IP.

Rozważ to jako podobne do ARP, które można uznać za „na górze” warstwy 2, przy użyciu protokołu Ethernet do faktycznego wysyłania pakietów.

ICMP jest implementowany jako część warstwy IP, więc przetwarzanie ICMP może być postrzegane jako występujące równolegle lub jako część przetwarzania IP. Dlatego w temacie dotyczącym sieci warstwowej opartej na TCP / IP ICMP jest przedstawiany jako protokół warstwy 3.

@Robbie Mckennie

Która warstwa należy do ICMP jest przedmiotem zaciętej debaty. Nagłówek ICMP znajduje się na warstwie 4, podobnie jak TCP i UDP, więc ludzie twierdzą, że należy do warstwy 4. Inni twierdzą jednak, że ICMP jest protokołem warstwy 3, ponieważ wspomaga IP i nie ma pojęcia portów.

Dla mnie klasyfikacja protokołu jako należącego do określonej warstwy w modelu OSI zależy od tego, jak protokół działa. Przykład:

BGP jest używany do trasowania w warstwie 3, ale sam BGP jest przenoszony przez TCP (i oczywiście IP)

Cuonglm
źródło
Mówisz, że jest sklasyfikowany jako protokół warstwy 3 z powodu sposobu, w jaki jest przetwarzany w stosie, a nie z powodu tego, co robi?
Robbie Mckennie
3
Nie, działa na poziomie 3. Za wszystko, co robi, jest na poziomie 3. Ważną rzeczą, o którą powinieneś zapytać siebie,What is the "data unit of layer 4 protocol"?
cuonglm
Nie wiem nawet, co to pytanie znaczy. Właśnie myślałem zgodnie z definicjami, które przeczytałem dla różnych warstw, być może mój pomysł na to, jak działa model warstwy osi, jest nieprawidłowy
Robbie Mckennie
1
Operacja, tylko podpowiedź. data unit of layer 1 is bits, data unit of layer 2 is frames, data unit of layer 3 is packets. Co jest związane z warstwą 4?
cuonglm
Aby odpowiedzieć na cuonglm: jednostka PDU warstwy 4 jest „segmentem”
lobi
6

Wszystkie ICMP (i ICMPv6, IGMP itp.) Zarządzają połączeniami warstwy sieciowej. Nie są (zwykle) używane przez użytkowników końcowych, ale przez system operacyjny. Z tego powodu należy do warstwy 3 (sieć), mimo że do adresowania i określania ścieżki (routingu) korzysta z adresu IP.

Model OSI jest w dużej mierze napisany z perspektywy łączenia użytkowników (rzeczywistych ludzi lub serwerów aplikacji). Wszystkie protokoły zarządzania i to, co jeszcze nie pasuje do modelu OSI, ale nie będą pasować do języka, ponieważ (zazwyczaj) nie obsługują użytkowników bezpośrednio.

Chris S.
źródło