sieci_komputerowe:modele_warstwowe

Pytanie: “Omów znane Ci modele warstwowe organizacji procesu transmisji w łączach szeregowych”

# Model OSI

OSI (ang. Open System Interconnection) lub Model OSI to zdefiniowany przez organizacje ISO oraz ITU-T standard opisujący strukturę komunikacji sieciowej. Model OSI jest traktowany jako model odniesienia dla większości rodzin protokołów komunikacji. Najpopularniejszy to model OSI-RM (ang. OSI Reference Model). Podstawowym założeniem modelu jest podział systemów sieciowych na 7 całkowicie niezależnych warstw (ang. layers).

## Organizacja warstwowa

Model OSI definiuje jakie zadania oraz rodzaje informacji mogą być przesyłane między warstwami w całkowitym oderwaniu od ich fizycznej i algorytmicznej realizacji. Mimo iż, każda z warstw sama nie jest funkcjonalna, to możliwe jest projektowanie warstwy w całkowitym oderwaniu od pozostałych. Jest to prawdziwe, jeżeli wcześniej zdefiniuje się protokoły wymiany informacji pomiędzy poszczególnymi warstwami.

## Warstwy górne

Wyróżniamy trzy warstwy górne, czyli warstwę aplikacji, prezentacji i sesji. Ich zadaniem jest współpraca z oprogramowaniem realizującym zadania zlecane przez użytkownika systemu komputerowego. Tworzą one pewien interfejs, który pozwala na komunikację z warstwami niższymi. Ta sama warstwa realizuje dokładnie odwrotne zadanie w zależności od kierunku przepływu informacji. Dla ustalenia uwagi załóżmy, że informacja porusza się w dół Modelu OSI, kiedy płynie od użytkownika do urządzeń sieciowych oraz w górę w przeciwnym wypadku.

### Warstwa aplikacji

(pozwala na komunikację sieciową)

Warstwa aplikacji jest warstwą najwyższą. Kiedy użytkownik korzystając z oprogramowania chce przesłać dane poprzez urządzenia sieciowe, to trafiają one właśnie do warstwy aplikacji. W tej warstwie znajdują się oba te programy. Podczas ruchu informacji w górę, to warstwa aplikacji pozwala użytkownikowi na odebranie potrzebnej mu informacji.

### Warstwa prezentacji

(formatuje odpowiednio dane dla niższych warstw)

Podczas ruchu w dół zadaniem warstwy prezentacji jest przetworzenie danych od aplikacji do postaci kanonicznej (ang. canonical representation) zgodnej ze specyfikacją OSI-RM, dzięki czemu niższe warstwy zawsze otrzymują dane w tym samym formacie. Kiedy informacje płyną w górę, warstwa prezentacji tłumaczy format otrzymywanych danych na zgodny z wewnętrzną reprezentacją systemu docelowego. Wynika to ze zróżnicowania systemów komputerowych, które mogą w różny sposób interpretować te same dane. Dla przykładu bity w bajcie danych w niektórych procesorach są interpretowane w odwrotnej kolejności niż w innych.

### Warstwa sesji

(rozdziela dane do poszczególnych aplikacji w odpowiedniej kolejności)

Warstwa sesji otrzymuje od różnych aplikacji dane, które muszą zostać odpowiednio zsynchronizowane. Warstwa sesji “wie”, która aplikacja łączy się z którą, dzięki czemu może zapewnić właściwy kierunek przepływu informacji. W nowoczesnych systemach sieciowych może równolegle pracować kilkadziesiąt aplikacji. Wymieszanie się ze sobą przesyłanych przez nie informacji zakończyłoby się katastrofą. Podczas ruchu w górę, ważne jest zadbanie o właściwą kolejność danych przesyłanych do warstwy prezentacji. Dolne warstwy często prowadzą do fragmentacji oraz przemieszania danych wysyłanych nie po kolei. Warstwa sesji jest ogniwem synchronizującym aplikacje pracujące w warstwie najwyższej na różnych maszynach. Dzięki posiadanemu przez warstwę sesji zbiorowi danych zwanemu punktem synchronizacji (ang. synchronization point) warstwa sesji potrafi stwierdzić, czy jedna aplikacja dostarczyła już dane potrzebne dla drugiej.

## Warstwy dolne

Najniższe warstwy zajmują się odnajdywaniem odpowiedniej drogi do celu, gdzie ma być przekazana konkretna informacja. Dzielą również dane na odpowiednie dla urządzeń sieciowych pakiety określane często skrótem PDU (ang. Protocol Data Unit). Dodatkowo zapewniają weryfikację bezbłędności przesyłanych informacji. Ważną cechą warstw dolnych jest całkowite ignorowanie sensu przesyłanych informacji. Dla warstw dolnych aplikacje nie istnieją. Jedynym ich zainteresowaniem cieszą się pakiety (ramki) danych, którymi to właśnie one się zajmują. Warstwy dolne to warstwa transportowa, sieciowa, łącza danych oraz fizyczna.

### Warstwa transportowa

(zapewnia poprawność transmisji, kolejkuje dane wg priorytetów)

Warstwa transportowa dba o poprawność przesyłania danych. W tej warstwie standardowa paczka danych oznaczana jest jako TPDU (ang. Transport Protocol Data Unit). Aby informacje mogły zostać przesłane w dół, często muszą zostać podzielone na mniejsze fragmenty. Jeżeli informacji nie uda się przesłać poprawnie za pierwszym razem, warstwa transportowa próbuje to zrobić, aż do wyczerpania limitu przekazów. Ważnym zadaniem warstwy transportowej jest szeregowanie przekazywanych informacji według priorytetów i przydzielanie im określonego pasma transmisji. Jeżeli wydajność niższych warstw sieciowych jest zbyt mała w stosunku do ilości przekazywanych z góry informacji, to warstwa transportowa układa je w określonych kolejkach według priorytetu. W ostateczności, kiedy kolejki się przepełniają warstwa transportowa zwraca do góry komunikaty o ich zapełnieniu i usuwa nadmiarowe dane. Warstwa transportowa rejestruje również komunikaty o przerwaniu połączenia i pozwala na bezpieczne zakończenie komunikacji.

### Warstwa sieciowa

(decyduje ile informacji wysłać na raz i gdzie, zna topologie sieci)

Warstwa sieciowa jako jedyna dysponuje wiedzą dotyczącą fizycznej topologii sieci. Rozpoznaje jakie drogi łączą poszczególne komputery (ang. routing) i decyduje ile informacji należy przesłać jednym z połączeń a ile innym. Jeżeli danych do przesłania jest zbyt wiele, to warstwa sieciowa po prostu je ignoruje. Ona nie musi zapewniać pewności transmisji, więc w razie błędu pomija niepoprawne pakiety danych. Standardowa paczka danych w tej warstwie czasami oznaczana jest jako NPDU (ang. Network Protocol Data Unit). Często w maszynie warstwa sieciowa jest najwyższa, co oznacza, że to urządzenie jest routerem. Nie znajdują się w nim żadne użyteczne dla ludzi aplikacje. Jedyne jego zadanie, to zapewnienie sprawnej łączności między bardzo odległymi punktami sieci. Routery są podstawą budowy rozległych sieci informatycznych takich jak Internet, bo potrafią odnaleźć najlepszą drogę do przekazania informacji. Warstwa sieciowa podczas ruchu w dół umieszcza dane wewnątrz pakietów zrozumiałych dla warstw niższych (enkapsulacja).

### Warstwa łącza danych

(nadzoruje transmisje warstwy fizycznej, rozpoznaje błędy transmisji i naprawia je)

Warstwa łącza danych jest czasami nazywana warstwą liniową. Ma ona nadzorować jakość przekazywanych informacji. Nadzór ten dotyczy wyłącznie warstwy niższej. Warstwa łącza danych ma możliwość zmiany parametrów pracy warstwy fizycznej, tak aby obniżyć ilość pojawiających się podczas przekazu błędów. Zajmuje się pakowaniem danych w ramki i wysyłaniem do warstwy fizycznej. Rozpoznaje błędy związane z niedotarciem pakietu oraz uszkodzeniem ramek i zajmuje się ich naprawą. Podczas ruchu w dół w warstwie łącza danych zachodzi enkapsulacja pakietów z warstwy sieciowej tak, aby uzyskać ramki zgodne ze standardem. Czasami są one oznaczane jako LPDU (ang. data Link Protocol Data Unit).

### Warstwa fizyczna

(wysyła/odbiera ramki bit po bicie korzystając z nośnika transmisji)

Warstwa fizyczna to konkretny układ elektroniczny tworzący kanał komunikacyjny poprzez medium fizyczne (kabel miedziany, światłowód, fale radiowe, itd.) pozwalający na wymianę informacji pomiędzy urządzeniami sieciowymi. Odbiera ramki od warstwy łącza danych i wysyła je - bit po bicie - do nośnika (i odwrotnie), którego łącze stanowi jej granicę. Warstwa fizyczna posiada tylko informacje o właściwościach fizycznych / optycznych przesyłanych bitów. Musi być tak skonstruowana, aby większość przesyłanych nią danych bez zniekształceń trafiła do odbiorców. Warstwa ta często posiada własny system identyfikacji poszczególnych uczestników komunikacji, całkowicie przezroczysty dla warstw wyższych. W niektórych zastosowaniach dodatkowym celem warstwy fizycznej jest ochrona informacji przed zmianą lub podsłuchem przez niepowołane osoby. Zwykle zabezpieczenia te mają charakter fizyczny, a nie algorytmiczny.

## Praktyczne znaczenie Modelu OSI

W praktyce Model OSI został częściowo zmodyfikowany. Najczęstszą zmianą było połączenie warstwy fizycznej oraz łącza danych w jedną. Wynikało to z praktycznych cech tych warstw, które powodowały, że nie dało się odseparować ich pracy od siebie. Nie należy mylić Modelu OSI-RM z Modelem DoD. Mimo pewnego podobieństwa, oba te modele nie są w pełni zgodne.

# Model DoD (Departament of Defense)

Podstawowym założeniem modelu DoD jest podział całego zagadnienia komunikacji sieciowej na szereg współpracujących ze sobą warstw (ang. layers). Każda z nich może być tworzona przez programistów zupełnie niezależnie, jeżeli narzucimy pewne protokoły według których wymieniają się one informacjami. Założenia modelu DoD są pod względem organizacji warstw zbliżone do modelu OSI. Jednak ilość warstw jest mniejsza i bardziej odzwierciedla prawdziwą strukturę Internetu. Model DoD składa się z czterech warstw.

## Organizacja warstwowa

### Warstwa aplikacji

Warstwa procesowa czy warstwa aplikacji (ang. process layer) to najwyższy poziom, w którym pracują użyteczne dla człowieka aplikacje takie jak, np. serwer WWW czy przeglądarka internetowa. Obejmuje ona zestaw gotowych protokołów, które aplikacje wykorzystują do przesyłania różnego typu informacji w sieci.

### Warstwa transportowa

Warstwa transportowa (ang. host-to-host layer) zapewnia pewność przesyłania danych oraz kieruje właściwe informacje do odpowiednich aplikacji. Opiera się to na wykorzystaniu portów określonych dla każdego połączenia. W jednym komputerze może istnieć wiele aplikacji wymieniających dane z tym samym komputerem w sieci i nie nastąpi wymieszanie się przesyłanych przez nie danych. To właśnie ta warstwa nawiązuje i zrywa połączenia między komputerami oraz zapewnia pewność transmisji.

### Warstwa sieciowa

Warstwa sieciowa lub warstwa protokołu internetowego (ang. internet protocol layer) to sedno działania Internetu. W tej warstwie przetwarzane są datagramy posiadające adresy IP. Ustalana jest odpowiednia droga do docelowego komputera w sieci. Niektóre urządzenia sieciowe posiadają tą warstwę jako najwyższą. Są to routery, które zajmują się kierowaniem ruchu w Internecie, bo znają topologię sieci. Proces odnajdywania przez routery właściwej drogi określa się jako routing.

### Warstwa dostępu do sieci

Warstwa dostępu do sieci lub warstwa fizyczna (ang. network access layer) jest najniższą warstwą i to ona zajmuje się przekazywaniem danych przez fizyczne połączenia między urządzeniami sieciowymi. Najczęściej są to karty sieciowe lub modemy. Dodatkowo warstwa ta jest czasami wyposażona w protokoły do dynamicznego określania adresów IP.

## Model DoD a Internet

Każdy protokół sieciowy można przyporządkować do określonej warstwy modelu DoD. Pewną szczególną cechą rodziny protokołów TCP/IP używanej w internecie jest podział protokołów z warstwy aplikacyjnej i połączeniowej. Niektóre protokoły z warstwy aplikacji wykorzystują tylko pewne protokoły z warstwy transportowej.

# Model TCP/IP

Protokół TCP/IP został zaprojektowany na podstawie czterowarstwowego modelu odniesienia. Wszystkie protokoły należące do pakietu TCP/IP znajdują się w trzech górnych warstwach tego modelu. Jak pokazano na poniższym rysunku, każda warstwa modelu protokołu TCP/IP odpowiada jednej lub kilku warstwom siedmiowarstwowego modelu OSI (Open Systems Interconnection) zaproponowanego przez organizację ISO (International Standards Organization).

Warstwa | Opis | Protokoły
--- | --- | ---
Aplikacja | Służy do definiowania protokołów aplikacji TCP/IP i sposobów pośredniczenia między programami hosta i usługami warstwy transportowej w celu korzystania z sieci. | HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, X Windows, inne protokoły aplikacji
Transport | Służy do zarządzania sesjami komunikacyjnymi między komputerami hostów. Służy do definiowania poziomu obsługi i stanu połączenia używanego do transportu danych. | TCP, UDP, RTP
Internet | Służy do dzielenia danych na datagramy IP zawierające informacje o adresach źródłowych i docelowych używane do przesyłania datagramów między hostami i sieciami. Służy do przekierowania datagramów IP. | IP, ICMP, ARP, RARP
Interfejs sieciowy | Określa szczegółowe informacje dotyczące sposobu przesyłania danych w sieci, w tym sposób realizacji elektrycznego sygnalizowania bitów przez sprzęt podłączony bezpośrednio do nośnika sieci, takiego jak kabel koncentryczny, światłowód lub skrętka dwużyłowa. | Ethernet, Token Ring, FDDI, X.25, Frame Relay, RS-232, v.35

# Linki

- James Bond a model OSI: http://www.lewistech.com/rlewis/Resources/james.aspx
- Ciekawa analogia modelu do komunikacji w korporacji: http://en.wikipedia.org/wiki/OSI_model
- Model OSI: http://www.man.rzeszow.pl/docs/ip/osi.htm