Należy pamiętać o dwóch ważnych faktach dotyczących modelu OSI:
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).
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.