Model OSI i relacje protokołów sieciowych


27

Kiedy większość studentów sieci po raz pierwszy dowiaduje się o modelu OSI, spędzają dużo czasu próbując dowiedzieć się, do której warstwy modelu pasuje dany protokół. Na tym forum otrzymujemy wiele pytań na temat warstw OSI i zazwyczaj są one następujące:

  • Na jakiej warstwie OSI działa IS-IS?
  • Czy HTML jest protokołem prezentacji lub aplikacji?
  • Czy tunele VPN są warstwą 2 czy 3?

Jak uczeń (lub specjalista w tej dziedzinie) powinien rozumieć związek między modelem OSI a protokołami, z którymi współpracuje?

Odpowiedzi:


35

Należy pamiętać o dwóch ważnych faktach dotyczących modelu OSI:

  1. Jest to model konceptualny. Oznacza to, że opisuje wyidealizowaną, abstrakcyjną, teoretyczną grupę funkcji sieciowych. Nie opisuje niczego, co ktoś faktycznie zbudował (a przynajmniej niczego, co jest dziś w użyciu).

  2. To nie jest jedyny model. Istnieją inne modele, w szczególności pakiet protokołów TCP / IP (RFC-1122 i RFC-1123), który jest znacznie bliższy obecnie używanej.

Trochę historii: Prawdopodobnie wszyscy słyszeliście o pierwszych dniach tworzenia pakietów sieciowych, w tym ARPANET, poprzednik Internetu. Oprócz wysiłków Departamentu Obrony USA zmierzających do stworzenia protokołów sieciowych, zaangażowanych było także kilka innych grup i firm. Każda grupa opracowywała własne protokoły w zupełnie nowej dziedzinie przełączania pakietów. IBM i firmy telefoniczne opracowywały własne standardy. We Francji badacze pracowali nad własnym projektem sieci o nazwie Cyklady.

Prace nad modelem OSI rozpoczęły się pod koniec lat 70. XX wieku, głównie w odpowiedzi na rosnący wpływ dużych firm, takich jak IBM, NCR, Burroughs, Honeywell (i inne) oraz ich zastrzeżonych protokołów i sprzętu. Ideą było stworzenie otwartego standardu, który zapewni interoperacyjność między różnymi producentami. Ponieważ jednak model ISO miał zasięg międzynarodowy, miał wiele konkurujących ze sobą interesów politycznych, kulturowych i technicznych. Ponad sześć lat zajęło wypracowanie konsensusu i opublikowanie standardów.

W międzyczasie opracowano również model TCP / IP. Był prosty, łatwy do wdrożenia, a co najważniejsze, był darmowy. Trzeba było kupić standardowe specyfikacje OSI, aby stworzyć dla niego oprogramowanie. Cała uwaga i wysiłki rozwojowe dotyczyły TCP / IP. W rezultacie model OSI nigdy nie został zaimplementowany jako zestaw protokołów, a TCP / IP stał się standardem dla Internetu.

Chodzi o to, że wszystkie obecnie używane protokoły to pakiet TCP / IP; protokoły routingu, takie jak RIP, OSPF i BGP; a protokoły systemu operacyjnego hosta, takie jak Windows SMB i Unix RPC, zostały opracowane bez uwzględnienia modelu OSI. Czasem są do niej podobne, ale standardy OSI nigdy nie były przestrzegane podczas ich opracowywania. Błędem jest więc próba dopasowania tych protokołów do OSI. Po prostu nie pasują.

To nie znaczy, że model nie ma wartości; dobrym pomysłem jest przestudiowanie go, aby zrozumieć ogólne pojęcia. Koncepcja warstw OSI jest tak wpleciona w terminologię sieci, że mówimy o warstwach 1, 2 i 3 w codziennej mowie sieciowej. Definicja warstw 1, 2 i 3 jest, jeśli trochę się zmrużysz, dość dobrze uzgodniona. Tylko z tego powodu warto wiedzieć.

Najważniejsze informacje na temat modelu OSI (lub dowolnego innego) to:

  • Możemy podzielić protokoły na warstwy
  • Warstwy zapewniają enkapsulację
  • Warstwy zapewniają abstrakcję
  • Warstwy oddzielają funkcje od innych

Podział protokołów na warstwy pozwala nam oddzielnie rozmawiać o ich różnych aspektach. Ułatwia zrozumienie protokołów i ułatwia rozwiązywanie problemów. Możemy łatwo izolować określone funkcje i grupować je z podobnymi funkcjami innych protokołów.

Każda „funkcja” (ogólnie) hermetyzuje warstwę (warstwy) nad nią. Warstwa sieciowa otacza warstwy powyżej niej. Warstwa łącza danych hermetyzuje warstwę sieci i tak dalej.

Warstwy wyodrębniają warstwy poniżej. Twoja przeglądarka internetowa nie musi wiedzieć, czy używasz TCP / IP, czy czegoś innego w warstwie sieci (tak jakby było coś innego). Do twojej przeglądarki, dolne warstwy po prostu zapewniają strumień danych. Sposób wyświetlania tego strumienia jest ukryty w przeglądarce. TCP / IP nie wie (lub nie obchodzi), czy używasz Ethernetu, modemu kablowego, linii T1 lub satelity. Po prostu przetwarza pakiety. Wyobraź sobie, jak trudno byłoby zaprojektować aplikację, która poradziłaby sobie z tym wszystkim. Warstwy wyodrębniają niższe warstwy, więc projektowanie i obsługa oprogramowania stają się znacznie prostsze.

Oddzielenie: Teoretycznie możesz zastąpić jedną określoną technologię inną na tej samej warstwie. Tak długo, jak warstwa komunikuje się z powyższą i z niższą w ten sam sposób, nie powinno mieć znaczenia, w jaki sposób jest implementowana. Na przykład możemy usunąć bardzo dobrze znany protokół warstwy 3, IP w wersji 4, i zastąpić go IP w wersji 6. Wszystko inne powinno działać dokładnie tak samo. Dla twojej przeglądarki lub modemu kablowego nie powinno to mieć znaczenia.

Model TCP / IP jest tym, na czym oparto pakiet protokołów TCP / IP (niespodzianka!). Ma tylko cztery warstwy, a wszystko powyżej transportu to tylko „aplikacja”. Łatwiej jest to zrozumieć i zapobiega niekończącym się pytaniom, takim jak „Czy ta warstwa sesji lub warstwa prezentacji?” Ale to także jest tylko model, a niektóre rzeczy nie są pasują również do niego, podobnie jak protokoły tunelowania (aby wymienić tylko GRE, MPLS, IPSec).

Ostatecznie modele są sposobem reprezentowania niewidzialnych abstrakcyjnych pomysłów, takich jak adresy, pakiety i bity. Tak długo, jak to pamiętasz, model OSI lub TCP / IP może być przydatny w zrozumieniu sieci.


1
Zawsze zastanawiałem się, dlaczego odwołujemy się do modelu OSI, skoro w rzeczywistości model TCP / IP lepiej pasuje do rachunku.
Ryan Foley

5
@RyanFoley, prawda w wielu przypadkach. Jednak jeśli chodzi o rozwiązywanie problemów (a zwłaszcza uczenie go), lepiej mieć osobne warstwy fizyczne i dane, aby rozwiązać problemy osobno. Na przykład dobrze jest znać różnicę w urządzeniu Cisco między interfejsem, który jest połączony w górę / w górę, tym, który jest w górę / w dół, a tym, który jest w dół / w dół.
YLearn

„Na przykład możemy usunąć bardzo dobrze znany protokół warstwy 3, IP w wersji 4 i zastąpić go IP w wersji 6. Wszystko inne powinno działać dokładnie tak samo. W przeglądarce lub modemie kablowym nie powinno to mieć znaczenia. „ Niestety robi to różnicę, ponieważ abstrakcje są nieszczelne. Aplikacje i protokoły transportowe muszą wiedzieć o adresowaniu używanym przez protokół internetowy.
Peter Green

Właśnie dlatego modele są tylko modelami.
Ron Trunk

1
joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions Budujemy abstrakcje, aby ukryć brzydkie szczegóły leżącej u podstaw rzeczy, ale niektóre szczegóły tej rzeczy przeciekają i powodują problemy. Jedną z takich rzeczy, która przecieka aż do szczytu stosu, jest system adresowania.
Peter Green

2

Jest tu trochę zamieszania. To, że funkcja nie pasuje do warstwy, nie oznacza, że ​​nie. OSI jest elastyczny i pozwala obiektom i podwarstwom, w których praktyczne implementacje odwzorowują model. Niektóre funkcje warstwy mogą być również powielane na innych warstwach. Również przetwarzanie nie musi odbywać się w warstwie aplikacji. Wreszcie OSI było czymś więcej niż modelem, zostało w całości wdrożone przez niektórych producentów. Pracowałem nad projektem DEC. Praktyczność sprawiła, że ​​tylko niektóre części OSI są obecnie używane.


1

Wszystkie protokoły routingu IGP (wewnętrzne bramy) działają na warstwie 3. Zewnętrzny BGP działa na warstwie 4, a wewnętrzny na warstwie 3.

Warstwa fizyczna - zajmuje się sprzętowymi urządzeniami sieciowymi, tj. Laptopami, telefonami komórkowymi, komputerami stacjonarnymi. Warstwa 1 jest znana jako domena kolizyjna, warstwa 1 PDU (jednostka danych protokołu to bity).

Warstwa danych / łącza - ta warstwa dotyczy przełączników warstwy 2, domen rozgłaszania, VLANS, STP, VTP. Jednostka danych protokołu tej warstwy jest nazywana ramkami.

Warstwa sieci - w tym momencie występuje routing, większość protokołów routingu działa na tej warstwie. Jest to również znane jako warstwa IP, w której komunikuje się VLANS. Jednostka PDU dla tej warstwy jest znana jako pakiety.

Warstwa transportowa - warstwa transportowa zajmuje się portami TCP i UDP, w których pakiety z warstw 3 są wysyłane do portów docelowych. Ważne jest, aby pamiętać, że TCP jest protokołem zorientowanym na połączenie, podczas gdy UDP jest protokołem zorientowanym na połączenie (nie gwarantowane dostarczanie danych). PDU dla tej warstwy to datagramy.

Warstwa sesji - warstwa sesji jest miejscem, w którym pakiety są kapsułkowane przed dekapsulacją z warstwy 3. Ta warstwa dotyczy wielu języków programowania po stronie serwera, w których można tworzyć aplikacje oparte na oprogramowaniu i konwertować je na ->

Warstwa prezentacji - ta warstwa dotyczy kodów po stronie klienta wyświetlanych w przeglądarce internetowej lub po kliknięciu prawym przyciskiem myszy i wyświetleniu źródła, są to głównie kody HTM / CSS / Javascript, które pozwalają wyświetlić ->

Warstwa aplikacji - tutaj GUI (graficzny interfejs użytkownika) tłumaczy kody HTML / CSS z warstwy 6 na tę warstwę. W przeglądarce internetowej widać interfejs GUI. PDU warstwy 5,6,7 nazywane jest komunikatem.

Mam nadzieję, że odpowiedzą na wszystkie pytania związane z OSI.

Na jakiej warstwie OSI działa IS-IS? - Warstwa 3
Czy HTML jest protokołem prezentacji lub aplikacji? - Prezentacja
Czy tunele VPN są warstwą 2 czy 3? -> L2TP to warstwa 2 -> Tunele VPN zazwyczaj działają na warstwie 3, takiej jak IPSEC.


1
To nie odpowiada OP; nigdy nie pytał, co robi każda warstwa, pytał, co ktoś powinien zrozumieć na temat podstawowych pojęć.
Ryan Foley

1
Informacje są świetne, ale jest to strona z problemami / rozwiązaniami. Twoja odpowiedź jest świetna, jeśli pytanie brzmi „Jakie są różne warstwy modelu OSI i co robi każda z nich?” . Pytanie dotyczy podstaw opartych na modelu OSI, a nie bezpośrednio modelu OSI. Świetny wgląd, ale zła odpowiedź na to konkretne pytanie.
Ryan Foley

5
Chris, doceniam twoje odpowiedzi i w dużej mierze masz rację. Ale ISIS działa na bazie IP, czy to czyni warstwę 4? Co powiesz na BGP? Działa na TCP. Czy to jest warstwa 5? Chodzi mi o to, że chociaż można wcisnąć protokoły w warstwy, to tak naprawdę nie pasują. Jeśli spojrzysz na specyfikację warstwy prezentacji OSI, nie sądzę, aby HTML się kwalifikował. Nawet OSI przyznało, że warstwa 2 była zbyt szeroka i musieli podzielić ją na dwie podwarstwy.
Ron Trunk

2
Model OSI to tylko model teoretyczny. Nawet jeśli protokół routingu <nazwa tutaj> używa pakietów (L2 | L3), jest również częścią L7, ponieważ jest to aplikacja i musi obliczyć tabelę routingu, a może tę samą warstwę między nimi. Nie wszystko jest czarno-białe.
mulaz

3
@Ron, ISIS nie jest rodzimym protokołem IP. OSPF to. (Aby dodać więcej zamieszania. :-))
John Jensen

1

HTTP (nie HTML) ma zarówno warstwę prezentacji, jak i warstwę aplikacji. Tunele VPN dodają warstwy nakładek do istniejącego stosu: może to być Warstwa 2 lub Warstwa 3 zależnie od ich rodzaju. Następnie będziesz mógł zobaczyć dodaną warstwę (warstwy) dwa razy w pakiecie.


1
Z pewnością można nazywać rzeczy według własnego uznania, ale HTTP został opracowany bez względu na model OSI i nie jest zgodny ze specyfikacjami. To samo dotyczy VPN - standardy OSI nigdy ich nie przewidywały. Zatem wszelkie podobieństwo jest, jak mówią, całkowicie przypadkowe.
Ron Trunk

0

Jedną z niewielu rzeczy, które faktycznie pochodzą z modelu OSI, są certyfikaty X.509 i duże porcje LDAP pochodzące z X.500. Inną sprawą jest X.400 do przesyłania wiadomości, MS Exchange miał to co najmniej w wersji 5.5, nie jestem pewien, czy zawierały to późniejsze wersje.

Tak więc OSI jest modelem, w domenie sieci przegrał wyścig z TCP / IP i naprawdę nie rozumiem, dlaczego uczą go o tym uczniowie. Próba umieszczenia rzeczy takich jak MPLS w tym modelu nie ma żadnego sensu.

Głębsze kopanie doprowadzi cię do bólu wielkich organizacji próbujących egzekwować standardy, okropnych rzeczy, takich jak ASN.1 i BER ... nadinżynierii wszystkiego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.