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). Dla Internetu sformułowano uproszczony Model DoD, który ma tylko 4 warstwy.
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
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
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
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
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
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). 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
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
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.