Systemy otwarte - model odniesienia ISO - OSI.
Wprowadzenie.
W celu ułatwienia projektowania sieci komputerowych oraz oprogramowania systemów sieciowych opracowano warstwową architekturę sieci komputerowych. Wyróżniono w niej pewną liczbę poziomów hierarchii (warstw), usługi i funkcje przypisane każdemu z nich oraz protokoły komunikacyjne i jednostki danych używane na poszczególnych poziomach. Przed rokiem 1978 nie było żadnego światowego standardu definiującego ile warstw ma posiadać taka architektura oraz jakie usługi mają oferować poszczególne warstwy. Duże firmy opracowały swoje architektury (modele zamknięte), wśród których były m.in.:
architektura SNA (System Network Architecture) firmy IBM, umożliwiająca łączenie produktów tej firmy. Dotyczy dużych (mainframe) oraz średnich (midrange) systemów komputerowych. Określono w niej zbiór protokołów oraz zdefiniowano sposób komunikowania się maszyn. Architektura ta przeznaczona jest dla systemów komputerowych (sieci) z hostami;
architektura DNA (Digital Network Architecture) firmy DEC. W ramach tej architektury zdefiniowano zbiór protokołów, formaty i mechanizmy wymiany komunikatów sterujących w sieci. Model ten ma strukturę siedmiowarstwową.
Rozwiązania takie były niedogodne dla mniejszych producentów i stąd w 1978 r. zdecydowano się na opracowanie w ramach międzynarodowej organizacji standaryzacyjnej ISO jednego modelu, który umożliwiałby komunikację zgodnych z jego zaleceniami produktów. Model OSI (ang. Open Systems Interconnect) został opublikowany jako norma ISO 7498.
Model odniesienia (Reference Model). Warstwy wyróżnione w modelu odniesienia i ich funkcje.
System otwarty to system zgodny z zaleceniami modelu odniesienia i zdolny do wymiany informacji z innymi systemami otwartymi.
Czytając książki dotyczące zagadnień sieciowych, można odnieść wrażenie, że prawie każda z nich (patrz rys. 1) rozpoczyna się opisem modelu łączenia systemów otwartych. Czyli modelu OSI (ang. Open Systems Interconnect). Nie dzieje się tak bez powodu. Omówienie takie pozwala bowiem ustalić wspólną terminologię oraz określić zakresy podstawowych pojęć tworzących dzięki temu zrozumiały układ odniesienia. Model OSI przydaje się więc nie tylko użytkownikom rozpoczynającym zgłębianie zagadnień związanych z sieciami, lecz również fachowcom często korzystającym zeń podczas rozwiązywania problemów sieciowych. Dzięki niemu, na przykład, stwierdzenie, że warstwa łącza danych działa poprawnie, pozwala ograniczyć poszukiwanie ewentualnych niesprawności warstw wyższych.
7 |
aplikacji |
6 |
prezentacji |
5 |
sesji |
4 |
transportu |
3 |
sieci |
2 |
łącza danych |
1 |
fizyczna |
Rys. 1 Warstwy modelu OSI
Model OSI jest użytecznym modelem sieci umożliwiającym prawidłowe opanowanie technik sieciowych. Podstawowa wiedza nabyta przy okazji studiowania modelu OSI ułatwia orientację w ogólnej strukturze pojęć, w związku z czym wiedzę tę łatwo można następnie uzupełnić nowymi pojęciami. Model OSI można porównać do schematu funkcjonowania auta, znajomość którego ułatwia zrozumienie zasad działania opon oraz przekładni biegów.
Model OSI nie jest jednak niczym więcej, jak tylko i wyłącznie modelem. A model nie jest instrukcją, której należy trzymać się ściśle w każdym jej punkcie, lecz schematem dostarczającym wspólnej bazy pojęciowej, w zakresie której można konstruować, omawiać i porównywać protokoły sieciowe.
Model OSI, czyli model łączenia systemów otwartych, został opracowany przez Międzynarodową Organizację Normalizacyjną, zwaną w skrócie ISO (ang. International Standards Organization). Podczas prac nad tym modelem utworzony został również zestaw protokołów o tej samej nazwie. Zestaw ten jednak nigdy nie został szeroko przyjęty. Nie zmienia to faktu, że jego powstanie w znacznym stopniu przybliżyło nam zasady działania protokołów sieciowych oraz wskazywało sposoby ich doskonalenia.
Opracowanie modelu oraz zestawu protokołów OSI wynikało z potrzeby ustanowienia międzynarodowego standardu, za pomocą którego różne urządzenia przyłączone do sieci mogłyby się komunikować. Ze względu na bardzo długi czas trwania prac nad zestawem protokołów OSI coraz częściej wykorzystywany był jednak protokół TCP/IP. W miarę wzrostu liczby użytkowników protokołów TCP/IP zmniejszało się zapotrzebowanie na OSI. Obecnie protokół TCP/IP realizuje cele wyznaczane niegdyś protokołowi OSI.
Analogia pocztowa modelu OSI
Podział tak złożonego zadania, jakim jest zaprojektowanie i wdrożenie protokołu sieciowego w kolejnych warstwach sieci, w wyniku czego otrzymujemy stos protokołów, znacznie ułatwia realizację tego zadania. Na rysunku 2 przedstawiony jest siedmiowarstwowy model OSI, którego poszczególnym warstwom odpowiadają kolejne etapy procesu przesyłania listu za pośrednictwem poczty.
Analiza porównania kolejnych warstw modelu OSI z kolejnymi etapami przesyłania listu wskazuje, ze porównanie to jest zaskakująco trafne!
ustalenie treści listu |
7 |
aplikacji |
|
7 |
aplikacji |
czytanie listu |
użycie pióra i atramentu |
6 |
prezentacji |
|
6 |
prezentacji |
rozłożenie stron listu |
prośba o odpowiedź |
5 |
sesji |
|
5 |
sesji |
konieczność udzielenia odpowiedzi |
włożenie listu do koperty i zaadresowanie jej |
4 |
transportu |
|
4 |
transportu |
potwierdzenie adresu na kopercie |
sposób dostarczenia listu (zwykły, polecony) |
3 |
sieci |
|
3 |
sieci |
dostarczenie listu do odbiorcy |
list w torbie listonosza |
2 |
łącza danych |
|
2 |
łącza danych |
wyjęcie listu z torby |
|
1 |
|
|
1 |
fizyczna |
|
Rys. 2 Analogia pocztowa modelu OSI
UWAGA: Warstwy protokołu sieciowego nazywane stosem protokołów, ponieważ ułożone są one jedna na drugiej. Funkcjonowanie każdej warstwy stosu uwarunkowane jest działaniem warstwy leżącej bezpośrednio pod nią. Dlatego poprawność działania warstwy transportu zależy od prawidłowego dostarczenia pakietów w warstwie sieci, a to kolei zależy od jakości transmisji w warstwie łącza danych, czyli od uzyskania dostępu do nośnika na poziomie warstwy fizycznej oraz bezbłędnego zbuforowania otrzymywanych z tej warstwy bitów w ramkach. Ramki te muszą być zgodne ze specyfikacjami określonymi dla warstwy łącza danych (dlatego, w zależności od specyfikacji oraz wykorzystywanego nośnika, mówimy o ramkach Ethernet, ramkach Token Ring lub ramkach FDDI).
Warstwa aplikacji
Warstwa aplikacji jest interfejsem łączącym aplikacje (takie jak Telnet, FTP itp.) ze stosem protokołów sieciowych. Określa ona, jakie wywołania programów musi wykonać aplikacja, aby mogło dojść do przesyłania danych przez sieć.
W analogii pocztowej warstwie aplikacji odpowiada wymiana korespondencji. Odpowiednikiem interfejsu są w tym przypadku przedmioty konieczne do jej przeprowadzenia, czyli pióro i papier lub ołówek i papier albo maszyna do pisania i papier lub też komputer i edytor tekstów. Wszystkie dane utworzone na poziomie warstwy aplikacji przekazywane są do warstwy prezentacji.
Warstwa prezentacji
Warstwa prezentacji jest odpowiedzialna za przeprowadzenie wszystkich konwersji danych wymaganych w procesie komunikowania się z odległymi systemami (czyli systemami zdalnymi). Wszystkie protokoły sieciowe przekształcają dane do postaci tzw. standardowego formatu sieciowego. W związku z tym, że formaty danych przesyłanych w sieci są zdefiniowane i ustandaryzowane, każdy system musi dokonać konwersji swojej wewnętrznej reprezentacji danych do postaci standardowego formatu sieciowego. I tak na przykład komputery używające rozszerzonego kodu znakowego EBCDIC (ang. extended binary-coded decimal interchange code) muszą przekonwertować swoje dane do postaci dającej się wyrazić za pomocą zestawu znaków ASCII. W warstwie prezentacji może być ponadto przeprowadzane kodowanie danych lub ich kompresja.
Wracając do porównania z wymianą korespondencji załóżmy, że chcemy, aby treść naszego listu byłą poufna. W tym celu możemy ją zakodować, wykorzystując do tego prosty algorytm polegający na zastąpieniu danej litery alfabetu literą znajdującą się w alfabecie o 13 pozycji dalej. Czyli na przykład litera A zamieniana jest na literę N, litera B na O, C na P itd. (pod warunkiem, że transformacja dotyczy znaków kodu ASCII, a nie alfabetu polskiego). Tego rodzaju transformacja nosi nazwę Rot-13, ponieważ litery alfabetu są przesunięte (ang. rotated) o 13 znaków. Przekształcone dane zostają następnie przekazane do warstwy sesji.
Warstwa sesji
Warstwa sesji zapewnia podtrzymywanie dialogu z systemem odległym (czyli zdalnym). Dla aplikacji sieciowej takiej jak Telnet oznacza to np. określenie typu terminalu użytkownika, dzięki czemu dane mogą być poprawnie przedstawiane na ekranie. Ponadto na poziomie tej warstwy uzgadniane jest na przykład, czy z wejścia użytkownika przesyłany jest każdy znak czy każdy wiersz.
Podobnie prowadzeni korespondencji może najpierw wymagać wzajemnego przedstawienia się sobie oraz dokonania wyboru języka, w którym będzie ona prowadzona, i podjęcia decyzji, czy kolejny list będzie wysyłany po otrzymaniu odpowiedzi na poprzedni (na zmianę), czy też za każdym razem, gdy któryś z korespondentów ma coś do zakomunikowania. Nagłówek sesji wskazuje, czy nadawca oczekuje odpowiedzi i do kiedy odpowiedź powinna zostać udzielona. W takim przypadku wymagany czas odpowiedzi przekazywany jest do warstwy transportu.
Warstwa transportu
Warstwa transportu pozwala na wzajemną komunikacją programom komputerowym uruchomionym na dwóch różnych systemach, Komunikacja ta niemal we wszystkich stosach protokołów oparta jest na jednym z dwóch mechanizmów przesyłania danych.
Pierwszy z nich stosuje protokół niezawodnego transferu danych, który retransmituje uszkodzone lub zagubione segmenty danych, zwalniając tym samym program z wykonania tej funkcji. Drugi sposób, nie obarczony narzutem informacji sterujących, pozwala na przesyłanie datagramów z wiadomościami, bez obciążania sieci. Nie wystarcza to jednak, aby zagwarantować dostarczenie wszystkich przesyłanych danych. W zależności od potrzeb, osoba projektująca aplikację może się zdecydować na wykorzystanie jednego ze wspomnianych mechanizmów.
Jednym z czynników, jakie należy wziąć pod uwagę podejmując tę decyzję, jest sposób komunikacji: czy będzie ona zorientowana na przepływ strumienia danych (podobnie jak ma to miejsce w przypadku przesyłania plików), czy też na obsługę żądań (jak w zapytaniach do bazy danych). Kolejnym czynnikiem jest wbudowana niezawodność protokołu. Jeśli podczas przesyłania danych pojawi się błąd, a wykorzystywanym protokołem jest protokół niezawodny, to ponowna transmisja uszkodzonych lub zagubionych danych jest wykonywana przez warstwę transportu. Natomiast w przypadku korzystania z protokołów datagramowych, nie gwarantujących niezawodnego przesyłania danych powinna być zadaniem realizowanym przez program.
Na poziomie warstwy transportu dane są opakowane w swego rodzaju "kopertę", opatrzoną logiczną nazwą miejsca przeznaczenia, wykorzystywaną do sprawdzania adresu docelowego. W analogii listowej odpowiada to zaadresowaniu listu i nadaniu mu numeru porządkowego, dzięki któremu adresat będzie mógł określić kolejność przychodzących doń listów. Pozwoli mu to na ich uporządkowanie, w razie gdyby listy nadchodziły w niewłaściwej kolejności, a w razie zaginięcia któregoś z nich, na zwrócenie się z prośbą do nadawcy o ponowne wysłanie tego listu. Na poziomie warstwy transportu dane wraz z informacjami sterowania przebiegiem sesji umieszczane są w medium transportowym, którym w naszym przykładzie jest koperta. Tak przygotowane dane są następnie przekazywane do warstwy sieci.
UWAGA: Enkapsulacja (ang. encapsulation), nazywana czasem hermetyzacją, jest procesem, którego polega na opakowywaniu danych, czyli umieszczaniu ich w kapsule (pojemniku). Kopertę (lub pakiet TCP) można uważać za pojemnik używany do przesyłania danych w sieci. Na jego zewnętrznej stronie umieszczony jest adres przeznaczenia, pozwalający warstwie sieci określić najlepszą metodę przekazania listu (lub pakietu) do właściwego miejsca.
Proces odwrotny nazywany dekapsulacją (ang. decapsulation), czyli odpakowywaniem. Polega on na wydobywaniu danych ze wspomnianego pojemnika. W sieci opakowywanie i odpakowywanie danych najczęściej przeprowadzane jest na poziomie warstwy transportu, warstwy sieci oraz warstwy łącza danych. Pojemniki stosowane w każdej z tych warstw opatrzone są nagłówkami informującymi o zawartości tychże pojemników.
Warstwa sieci
Na poziomie warstwy sieci sprawdzany jest adres, pod który dane mają zostać przesłane, i określana jest najlepsza trasa ich przesłania. Ustalenia optymalnej trasy pozwala warstwie sieci na ustalenia typu warstwy łącza danych, która zostanie użyta do przeniesienia danych do kolejnego węzła znajdującego się na tej trasie. Następnie przesyłane dane dzielone są na fragmenty o rozmiarze zależnym od mechanizmu transportującego je do następnego węzła. Od mechanizmu tego natomiast, jak również od techniki łączenia systemów na poziomie fizycznym, nie zależą w żaden sposób adresy sieciowe stosowane przez protokoły zestawu TCP/IP. I ta właśnie niezależność adresów sieciowych od nośnika fizycznego jest istotnym warunkiem poprawności działania ruterów.
Do przesyłania listu możemy użyć jednego z wielu mechanizmów dostarczania, odpowiadających różnym technikom przesyłania danych w sieci. Wybrać możemy faks, system Poczty Polskiej, system usług kurierskich lub dowolny inny sposób, pozwalający na dostarczenie listu w zamierzone miejsce. Podobnie wybór sposobu przesyłania danych jest pierwszym krokiem procesu wyznaczania trasy przesyłania, czyli trasowania, za który to proces w sieciach komputerowych odpowiedzialne są rutery. W omawianych przypadkach napisany list zostaje włożony do koperty i wysłany przy użyciu Poczty Polskiej - jako że nie musi być dostarczony w trybie pilnym. Analogicznie "koperta" z danymi zostaje przekazana do warstwy łącza danych.
Warstwa łącza danych
Warstwa łącza danych odpowiada za dostarczenie koperty do następnego węzła, znajduje się na drodze prowadzącej do miejsca docelowego. W przypadku sieci jest związane z uzyskaniem dostępu do nośnika (czyli medium transmisyjnego) - dostępu uczciwego, w którym żadna ze stacji nie może nośnika zmonopolizować. Kolejną czynnością wykonywaną na poziomie tej warstwy jest takie sformatowanie danych, które pozwala na prawidłowe przesłanie ich przez wybrane uprzednio medium transmisyjne. Większość nośników wymaga na poziomie warstwy łącza danych indywidualnego sposobu adresowania. Dlatego adresowanie na poziomie warstwy sieci uniezależnia proces trasowania od rodzaju nośnika i ułatwia łączenie różnych rodzajów sieci LAN i WAN.
Czynności wykonywane na poziomie warstwy łącza danych w analogii pocztowej odpowiadają dostarczeniu koperty do organizacji doręczającej przesyłki, czyli, na przykład, wrzuceniu listu do skrzynki pocztowej. Koperta z zawartością musi spełniać pewne wymagania dotyczące rozmiaru, wagi itp., a nalepiony na nią znaczek musi mieć odpowiedni nominał. Następny etap przesyłania polega na umieszczeniu listu ("opakowaniu" go) w torbie pocztowej, w której list będzie transportowany przez warstwę fizyczną. Warto zwrócić uwagę, że sam worek również ma przypisany adres, analogicznie jak w przypadku adresu łącza danych segmentu sieci.
Warstwa fizyczna
Ostatnią warstwą w modelu OSI jest warstwa fizyczna. Warstwa ta zamienia bity na sygnały elektryczne, przesyłane następnie przewodami, bądź na fotony transmitowane z pomocą światłowodów.
W analogii pocztowej list nie zmienia swej formy podczas jego przesyłania (o ile nie jest przesyłany za pomocą faksu). Jest natomiast wkładany do torby pocztowej, w której przenosi go listonosz.
Często torba ta trafia do urzędu pocztowego, podobnie jak wysłane z komputera dane trafiają przez Ethernet do rutera.
Tam listy są sortowane i zostają dostarczone adresatom przez listonoszy obsługujących ich okolicę (którą dla rutera jest segment).
Zalety modelu OSI
Model OSI pozwala podzielić zadania sieciowe na łatwiejsze do rozwiązania części. Kolejną zaletą jest możliwość łatwego zastępowania jednego rozwiązania innym, niezależnie od jego miejsca w stosie protokołów. Na przykład pierwszą wykorzystywaną w połączeniu z protokołem TCP/IP technologią LAN był Ethernet. Następnie wprowadzona została technologia Token Ring , zastąpiona przez 16-megabitowy Token Ring, FDDI i obecnie rozpowszechnione Fast Ethernet oraz ATM. Zastąpienie funkcji realizowanych przez warstwę łącza danych technologii Ethernet funkcjami realizowanymi przez warstwę łącza danych technologii Token Ring (lub innej) pozwala na korzystanie z usprawnień oferowanych przez nowsze rozwiązania.
Niezależność poszczególnych rodzajów nośników wykorzystywanych w sieciach przypomina niezależność różnych środków transportu - jedne zastępują (bądź uzupełniają) drugie. Przykładem może być uzupełnienie transportu przy użyciu kolei przez realizowany za pomocą samolotów. We współczesnym systemie pocztowym używane są bardzo różne środki transportowe (statki, pociągi, samochody dostawcze, ciężarówki, samoloty rowery). Zupełnie podobnie ma się rzecz z wykorzystywanymi obecnie sieciami (Ethernet, Token Ring, FDDI, AM, PPP, Frame Relay).
Model OSI wskazuje, że mimo iż aplikacji wydawać by się mogło (gdyby mogło), że komunikuje się bezpośrednio z odpowiadającą jej aplikacją uruchomioną na innym komputerze, to komunikacja ta nie jest bezpośrednia. Aplikacja bowiem w celu przekształcenia danych i dostarczenia ich do miejsca docelowego wywołuje funkcje oferowane przez warstw prezentacji. Podobnie warstwa prezentacji jednego systemu wirtualnie porozumiewa się z warstwą prezentacji innego systemu zdalnego, w rzeczywistości wywołując funkcje warstwy sesji, pozwalające na sterowanie sesją i dostarczenie danych do warstwy prezentacji systemu zdalnego. Tego rodzaju „wirtualna” komunikacja zachodzi na poziomie każdej warstwy poza fizyczną, na poziomie której dwa urządzenia [połączone przy użyciu określonego nośnika i kontaktują się rzeczywiście (fizycznie).
Protokoły, pakiety, ramki.
W modelu OSI poszczególne warstwy komunikują się przy użyciu ściśle określonych protokołów. Można powiedzieć, że utworzony jest stos protokołów.
Protokół jest zdefiniowanym sposobem komunikowania się z innym systemem. Określa czas dla poszczególnych sygnałów oraz strukturę danych.
Jednostka protokołu (ramka) każdej warstwy zawiera informacje z warstwy wyższej oraz informacje dotyczące warstwy bieżącej (odebrane/wysyłane od/do warstwy równorzędnej w innym systemie).
Rys. 3 Przechodzenie pakietu przez stos protokołów.
Protokoły komunikacyjne poszczególnych warstw grupuje się w kategorie:
protokoły aplikacji - obejmują warstwy: aplikacji, prezentacji i sesji. Zapewniają wzajemne oddziaływanie aplikacji i wymianę danych (FTP, Telnet, SMTP, SNMP, NetBIOS ,...);
protokoły transportowe - realizują połączeniowe usługi przesyłania danych, zapewniają wymianę danych pomiędzy systemami końcowymi w sposób sekwencyjny (TCP, SPX, NetBIOS, NetBEUI);
protokoły sieciowe - zapewniają usługi łączy dla systemów komunikacyjnych, obsługują adresowanie i informację routingu, weryfikację błędów oraz żądania retransmisji. Obejmują również procedury dostępu do sieci określone przez wykorzystywany rodzaj sieci (IP, IPX);
Dialog pomiędzy równorzędnymi warstwami protokołów obejmuje następujące informacje oraz czynności:
tworzenie żądanie i wysyłanie danych;
odbieranie żądania i danych;
odrzucenie żądania lub danych;
potwierdzenie odbioru;
obsługa buforowania nadchodzących danych;
przerwanie i ponowny start transmisji;
ustanowienie priorytetów transmisji;
obsługa wykrywania błędów, korekcji i retransmisji;
utrzymywanie sesji połączeniowych;
numerowanie i ustawianie kolejności pakietów;
obsługa adresowania i routingu;
W środowiskach sieciowych dane przesyłane są w pakietach przez warstwy protokołów oraz w postaci ramek (strumienia bitów) przez połączenia fizyczne.
Pakiet jest rodzajem „paczki danych” przesyłanej między urządzeniami przy wykorzystaniu łącza komunikacyjnego. Dane umieszczane są w pakietach przez różne podsystemy komunikacyjne (warstwy), następnie tworzone są ramki, które przesyła się przez łącza komunikacyjne. Jednym z głównych powodów tworzenia pakietów i ramek jest ograniczenie wpływu błędów pojawiających się przy transmisji do niewielkich części przesyłanych informacji, co ułatwia ich retransmisję. Po drugie: stosowanie długich transmisji mogłoby spowodować duże opóźnienia w ruchu w sieci.
Strukturę pakietu i ramki definiuje protokół komunikacyjny. Zazwyczaj pakiet zawiera nagłówek i dane. W nagłówkach może znajdować się adres nadawcy i odbiorcy, informacje potrzebne do obsługi błędów i zapewniające prawidłową transmisję danych, wskaźnik ostatniego pakietu, identyfikator informacji, numer określający, którą częścią informacji jest pakiet, itp. Pakiet może mieć różne rozmiary, ale zazwyczaj określa się jego maksymalną długość.
Rys. 4 Tworzenie, transmisja i odtwarzanie pakietów.
Model OSI nie jest w pełni uwzględniany przez producentów. Stosują oni różne stosy protokołów. Produkt wykorzystujący jeden stos protokołów nie może bezpośrednio współpracować z produktem korzystającym z innego stosu protokołów. Stosuje się różne metody kapsułkowania (encapsulation) i konwersji protokołów w celu osiągnięcia możliwości współpracy.
OSI |
NetWare |
UNIX |
Apple |
LANManager |
||||||||||
Warstwa aplikacji |
NetWare Core |
Network Filing |
Apple Share |
Serwer message |
||||||||||
Warstwa prezentacji |
Protocol |
System (NFS) |
Apple Talk Filing Protocol (AFP) |
blocks |
||||||||||
Warstwa sesji |
Potoki nazwane |
NetBIOS |
SNMP |
FTP |
SMPT |
Telnet |
ASP |
ADSP |
ZIP |
PAP |
NetBIOS |
Potoki nazwane |
||
Warstwa transporto-wa |
SPX |
TCP |
ATP |
NBP |
AEP |
RTMP |
NetBEUI |
|||||||
Warstwa sieciowa |
IPX |
IP |
Datagram Delivery Protocol (DDP) |
|
||||||||||
Warstwa |
LAN drivers |
LAN drivers |
LAN drivers |
LAN drivers |
||||||||||
łącza danych |
ODI |
NDIS |
Media Access Control |
Local-talk |
Ether-talk |
Token-talk |
NDIS |
|||||||
Warstwa fizyczna |
Warstwa fizyczna |
Warstwa fizyczna |
Warstwa fizyczna |
Warstwa fizyczna |
Kapsułkowanie polega na przesyłaniu pakietu w określonym protokole wewnątrz innego pakietu w innym protokole. Technika ta pozwala na przesyłanie danych pomiędzy sieciami korzystającymi z jednakowego protokołu za pośrednictwem sieci, która korzysta z innego protokołu. Kapsułkowanie wykorzystano w technice IP tunnelling, pozwalającej na przesyłanie pakietów IPX wewnątrz pakietów TCP/IP. Do łączenia odrębnych sieci i kapsułkowania służą routery. W sieci docelowej struktura pakietu zostaje zmieniona i pakiet dostarczany jest do określonej stacji.
Rys. 5 Kapsułkowanie pakietów.
Konwersja protokołów jest procesem tłumaczenia sygnałów elektrycznych lub formatów danych jednego systemu komunikacyjnego na postać umożliwiającą transmisję w innym systemie. Możliwe są różne poziomy konwersji, np. zmieniające kody ASCII na inny kod lub zmieniające strumień danych asynchroniczny na synchroniczny. Konwerter protokołów upodabnia się swym działaniem do bramy a nie do routera. W konwersji pakietu uczestniczą wszystkie warstwy stosu protokołów (poza warstwą aplikacji).
Rodzina protokołów TCP/IP (Transmission Control Protocol/Internet Protocol).
Architektura protokołów
Zestaw protokołów został opracowany w celu umożliwienia komunikacji między różnymi typami systemów komputerowych, jak również między różnymi sieciami. Agencja DARPA oraz Stanford University rozpoczęły pracę nad protokołem TCP w 1973 r. Efektem 5-letniego okresu badań było opracowanie dwóch wzajemnie uzupełniających się protokołów: protokołu połączeniowego TCP i protokołu bezpołączeniowego IP (stąd nazwa TCP/IP). W 1983 r. przyjęte jako standard wojskowy. Protokoły TCP/IP są wykorzystywane w systemach UNIX-owych, sieciach lokalnych i sieciach rozległych. Protokoły służą do łączenia oddzielnych fizycznie sieci w jedną sieć logiczną.
Do najistotniejszych zalet protokołów TCP/IP można zaliczyć:
otwartość i niezależność od specyfikacji sprzętowo-programowej systemów komputerowych,
możliwość integracji wielu różnych rodzajów sieci komputerowych,
wspólny schemat adresacji pozwalający na jednoznaczne zaadresowanie każdego użytkownika,
istnienie standardowych protokołów warstw wyższych .
Protokoły TCP/IP to dzisiaj cały zestaw protokołów przeznaczonych do:
transferu danych: IP, TCP, UDP (User Datagram Protocol),
kontroli poprawności połączeń: ICMP (Internet Control Message Protocol),
zarządzania siecią: SNMP (Simple Network Management Protocol),
zdalnego włączania się do sieci: TELNET,
usług aplikacyjnych typu przesyłania plików: FTP (File Transfer Protocol),
Architektura protokołów TCP/IP jest trochę odmienna od modelu ISO/OSI. Mamy tutaj do czynienia z czterowarstwowym hierarchicznym modelem protokołów TCP/IP (TCP/IP rys. 6). Dane generowane przez programy aplikacyjne są przekazywane w dół stosu jeśli mają być przesyłane poprzez sieć i w górę stosu przy odbiorze. Każda warstwa stosu dodaje do danych przekazywanych z warstwy wyższej informacje sterujące w postaci nagłówków. Nagłówek dodany w warstwie wyższej jest traktowany jako dane w warstwie niższej.
Warstwy protokołów TCP/IP używają różnych nazw do określania przekazywanych danych. Aplikacje stosujące w warstwie transportowej protokół TCP nazywają swoje dane strumieniem. Z kolei TCP nazywa swoje dane segmentem. Aplikacje wykorzystujące w warstwie transportowej protokół UDP określają swoje dane jako wiadomości, a dane protokołu UDP to pakiety. W warstwie Internet protokół IP traktuje swoje dane jako bloki zwane datagramami. W najniższej warstwie bloki danych to ramki lub pakiety w zależności od używanego protokołu.
Warstwa aplikacji |
Warstwa transportowa |
Warstwa Internet |
Warstwa dostępu do sieci |
Rys. 6 Warstwy TCP/IP
Warstwa dostępu do sieci jest najniższą warstwą w hierarchii architektury protokołów TCP/IP. W warstwie tej do datagramów IP dodaje się nagłówki oraz zakończenie i w ten sposób otrzymuje się ramki przesyłane w sieci. Funkcje tej warstwy odpowiadają w przybliżeniu funkcjom trzech najniższych warstw modelu ISO/OSI. Do komunikacji w sieciach rozległych lub przez łącza szeregowe mogą być stosowane takie protokoły jak X.25, PPP (Point-to-Point Protocol) lub SLIP (Serial Line IP). Te dwa ostatnie protokoły zostały specjalnie opracowane do przesyłania datagramów IP poprzez szeregowe łącza dwupunktowe. Protokół SLIP zazwyczaj jest stosowany do łączenia pojedynczych komputerów poprzez łącza szeregowe. Natomiast w sieciach rozległych zalecane jest stosowanie protokołu PPP.
Warstwa Internet znajduje się powyżej warstwy dostępu do sieci. Podstawowym protokołem tej warstwy jest IP. Protokół ten jest odpowiedzialny za przesyłanie pakietów zwanych datagramami między użytkownikami sieci. Jest to protokół bezpołączeniowy, co oznacza, że datagramy są przesyłane przez sieć bez kontroli poprawności ich dostarczenia. W efekcie datagram może zostać zgubiony w sieci, przekłamany lub zniekształcony. Protokół IP jest przeznaczony do sieci o bardzo dobrej jakości i niezawodności łączy transmisyjnych. Drugim protokołem tej warstwy jest ICMP ściśle związany z IP. Służy on do przesyłania komunikatów o nieprawidłowościach w pracy sieci. Protokół pozwala na przesyłanie wiadomości sterujących między węzłami sieci. Wiadomości te dotyczą sterowania przepływem, testowania połączeń, wskazania alternatywnych połączeń i wykrywania niedostępnych użytkowników.
Warstwa transportowa zapewnia bezpośrednie połączenie między końcowymi użytkownikami (systemami) wymieniającymi informacje. Do najważniejszych protokołów tej warstwy zaliczamy TCP oraz UDP. Protokół TCP jest protokołem połączeniowym umożliwiającym wykrywanie błędów na obu końcach połączenia. Ma on możliwość ustanowienia i utrzymania połączenia wirtualnego między dwoma użytkownikami w celu przesyłania danych, sterowania przepływem, przesyłania potwierdzeń oraz kontroli i korekcji błędów. Protokół UDP jest protokołem bezpołączeniowym, nie posiadających mechanizmów sprawdzania poprawności dostarczenia danych do miejsca przeznaczenia. Segmenty TCP jak i pakiety UDP w celu ich dalszego przesłania są umieszczane wewnątrz datagramu IP.
Warstwa aplikacji zawiera procesy wykorzystujące protokoły TCP lub UDP. Protokoły tej warstwy dostarczają użytkownikom różnych usług. Do najbardziej znanych protokołów warstwy aplikacji korzystających z TCP należą:
TELNET dla usług terminalowych. Pozwala na rozpoczęcie sesji poprzez sieć.
TFTP (Trivial File Transfer Protocol) dla prostych usług transferu plików. Jest to uproszczona wersja protokołu FTP.
FTP (File Transfer Protocol) dla transferu plików. Umożliwia interakcyjne przesyłanie plików.
SMTP (Simple Mail Transfer Protocol) dla wymiany poczty elektronicznej. Umożliwia pracę w trybie zapamiętaj i prześlij (store-and-forward) pomiędzy systemami poczty korzystającymi z serwerów pocztowych.
Natomiast do bardziej znanych protokołów warstwy aplikacji korzystających z protokołu UDP należą:
DNS (Domain Name Service) do zamiany adresów IP na nazwy urządzeń sieciowych.
RIP (Routing Information Protocol) do wymiany informacji związanych z aktualizacją reguły doboru tras w węzłach sieci.
NFS (Network File System) do współdzielenia plików przez wiele komputerów dołączonych do sieci. Jest to rozproszony system plików działających według modelu klient-serwer.
Protokoły TCP/IP wyróżniają dwa typy urządzeń sieciowych: routery (lub gatewaye) oraz hosty (czyli komputery). Routery służą do przesyłania pakietów między sieciami (TCP/IP rys.7), a na hostach instalowane jest oprogramowanie aplikacyjne użytkowników.
Rys. 7 Przesyłanie pakietów między sieciami
Każda aplikacja korzystająca z protokołów TCP/IP jest identyfikowana za pomocą numeru portu. Z kolei protokoły transportowe są określone za pomocą numerów protokołów. Pozwala to łączyć dane generowane przez różne aplikacje z kilkoma protokołami transportowymi i z kolei te protokoły z protokołem IP. Takie podejście daje możliwość multipleksacji danych, czyli np. umożliwia równoczesną komunikację wielu aplikacji z TCP. W Internecie niektóre numery portów są zarezerwowane i wstępnie przypisane do tzw. dobrze znanych usług (mogą przyjmować numery od 0 do 255). Dobrze znane usługi to np. takie protokoły sieciowe jak FTP lub TELNET. Protokoły TCP/IP używają również abstrakcyjnego pojęcia gniazda. Gniazdo to kombinacja adresu IP i numeru portu. W związku z tym gniazdo jednoznacznie określa proces w Internecie. Gniazd to również zakończenie logicznego łącza komunikacyjnego między dwiema aplikacjami. Jeśli aplikacje realizowane są na dwóch różnych komputerach, to para odpowiadających im gniazd definiuje połączenie w protokole połączeniowym TCP.
Na podstawie:
„Zaawansowane trasowanie w sieciach Cisco” Terry Slattery & Bill Burton, Wydawnictwo PLJ Warszawa 2000
SIECI KOMPUTEROWE wykłady mgr inż. Agata Skowrońska
6/12
listonosz przenosi torbę