Model OSI (notatki z zajęć)
Model OSI (ang. Open System Interconnection) jest standardem stworzonym przez ISO (ang. Internacional Organization for Standarization). Definiuje on sposób przesyłania danych pomiędzy aplikacjami uruchomionymi na różnych komputerach w sieci. W modelu wyróżnia się siedem warstw.
W ramach każdej z nich określono część zadań związanych z przesyłaniem danych. Komunikacja sieciowa sprowadza się do przesyłania danych pomiędzy poszczególnymi warstwami.
Model referencyjny OSI
Nazwa warstwy modelu OSI |
Numer warstwy |
Aplikacji |
7 |
Prezentacji |
6 |
Sesji |
5 |
Transportu |
4 |
Sieci |
3 |
Łącza danych |
2 |
Fizyczna |
1 |
Warstwa 1: warstwa fizyczna
Warstwa najniższa nazywana jest warstwą fizyczną. Jest ona odpowiedzialna za przesyłanie strumieni bitów. Odbiera ramki danych z warstwy 2, czyli warstwy łącza danych, i przesyła szeregowo, bit po bicie, całą ich strukturę oraz zawartość.
Jest również odpowiedzialna za odbiór kolejnych bitów przychodzących strumieni danych. Strumienie te są następnie przesyłane do warstwy łącza danych w celu ich ponownego ukształtowania.
Warstwa fizyczna w istocie widzi tylko jedynki i zera. Jest zajęta wyłącznie fizycznymi właściwościami elektrycznych i/lub optycznych technik sygnalizowania. Dotyczy to napięcia prądu elektrycznego używanego do przenoszenia sygnałów, rodzaju nośnika i właściwości impedancji. a nawet fizycznego kształtu złącza terminującego nośnik.
Warstwa l, czyli warstwa fizyczna, obejmuje więc jedynie procesy i mechanizmy dotyczące przenoszenia sygnałów na nośnik i odbierania z niego sygnałów. Jej dolną granicę stanowi fizyczne złącze nośnika. Warstwa l nie obejmuje medium transmisyjnego (czyli nośnika)!
W związku z tym media transmisyjne pozostają poza obszarem zainteresowania warstwy fizycznej i czasem określane są mianem warstwy O (zerowej).
Warstwa 2: warstwa łącza danych
Druga warstwa modelu OSI nazywana jest warstwą łącza danych. Jak każda z warstw, również i ta pełni dwie zasadnicze funkcje: odbierania i nadawania. Jest ona odpowiedzialna za końcową zgodność przesyłanych danych.
W zakresie zadań związanych z przesyłaniem, warstwa łącza danych jest odpowiedzialna za upakowywanie instrukcji, danych itp. w tzw. ramki.
Warstwa łącza danych jest również odpowiedzialna za ponowne składanie otrzymanych z warstwy fizycznej strumieni binarnych i umieszczanie ich w ramkach. Ze względu na fakt przesyłania zarówno struktury, jak i zawartości ramki, warstwa łącza danych nie tworzy ramek od nowa. Buforuje raczej przychodzące bity dopóki nie uzbiera w ten sposób całej ramki.
Warstwy l i 2 są niezbędne do komunikacji każdego rodzaju, niezależnie od tego czy sieć, w której się ona odbywa jest siecią lokalną (LAN), czy też rozległą (WAN).
Warstwa 3: warstwa sieci
Warstwa sieci jest odpowiedzialna za określanie trasy transmisji między komputerem-nadawcą, a komputerem-odbiorcą. Warstwa ta nie ma żadnych wbudowanych mechanizmów kontroli korekcji błędów i w związku z tym musi polegać na wiarygodnej transmisji końcowej warstwy łącza danych.
Warstwa sieci używana jest do komunikowania się z komputerami znajdującymi się poza lokalnym segmentem sieci LAN. Umożliwia im to własna architektura trasowania, niezależna od adresowania fizycznego warstwy 2.
Protokołami trasowanymi są:
IP,
IPX,
AppleTalk,
Korzystanie z warstwy sieci nie jest obowiązkowe. Wymagane jest jedynie wtedy, gdy komputery komunikujące się znajdują się w różnych segmentach sieci przedzielonych routerem.
Warstwa 4: warstwa transportu
Warstwa transportu pełni funkcję podobną do funkcji warstwy łącza w tym sensie, że jest odpowiedzialna za końcową integralność transmisji. Jednak w odróżnieniu od warstwy łączy danych - warstwa transportu umożliwia tę usługę również poza lokalnymi segmentami sieci LAN. Potrafi bowiem wykrywać pakiety, które zostały przez routery odrzucone i automatycznie generować żądanie ich ponownej transmisji.
Inną ważną funkcją warstwy transportu jest resekwencjonowanie pakietów, które mogły zostać przysłane w nieodpowiedniej kolejności. Warstwa transportu identyfikuje więc oryginalną sekwencję pakietów i ustawia je w oryginalnej kolejności przed wysłaniem ich zawartości do warstwy sesji.
Warstwa 5: warstwa sesji
Piątą warstwą modelu OSI jest warstwa sesji. Jest ona rzadko używana, wiele protokołów funkcje tej warstwy dołącza do swoich warstw transportowych.
Zadaniem warstwy sesji modelu OSI jest zarządzanie przebiegiem komunikacji podczas połączenia między dwoma komputerami. Ów przepływ komunikacji nazywany jest również sesją. Warstwa 5 określa, czy komunikacja może zachodzić w jednym, czy w obu kierunkach. Gwarantuje również zakończenie wykonywania bieżącego żądania przed przyjęciem kolejnego.
Warstwa 6: warstwa prezentacji
Warstwa prezentacji jest odpowiedzialna za zarządzanie sposobem kodowania wszelkich danych. Nie każdy komputer korzysta z tych samych schematów kodowania danych, więc warstwa prezentacji odpowiedzialna jest za translację między niezgodnymi schematami kodowania danych, takimi jak na przykład American Standard Code for Information Interchange (ASCII) a Extended Binary Coded Decimal Interchange Code (EBCDIC).
Warstwa 7: warstwa aplikacji
Najwyższą warstwą modelu OSI jest warstwa aplikacji. Pomimo sugestywnej nazwy warstwa ta nie obejmuje aplikacji użytkownika, pełniąc raczej rolę interfejsu pomiędzy tą aplikacją a usługami sieci.
Logiczny i faktyczny przebieg komunikacji warstwowej
Mimo że model składa się z siedmiu warstw, to określona sesja Komunikacyjna nie musi wykorzystywać wszystkich siedmiu, lecz tylko niektóre z nich. Na przykład, komunikacja w ramach jednego segmentu LAN może być przeprowadzana wyłącznie w warstwach l i 2 modelu OSI, bez potrzeby korzystania z dwóch pozostałych (3 i 4} warstw komunikacyjnych.
Logiczne rozgraniczenie warstw możliwe jest dzięki temu, że do każdej warstwy stosu protokołów komputera nadającego dodawany jest nagłówek. Nagłówek ten może być rozpoznany i użyty jedynie przez daną warstwę lub jej odpowiedniki w innych komputerach. Stos protokołów komputera odbierającego usuwa kolejne nagłówki, warstwa po warstwie, w miarę jak dane przesyłane są do jego warstwy aplikacji.
Zastosowanie nagłówków warstwowych w celu obsługi rozgraniczania logicznego
Na przykład, segmenty danych upakowane przez warstwę 4 komputera nadającego przesyłane są do jego warstwy 3. Warstwa 3 łączy segmenty danych otrzymane z warstwy 4 w pakiety (czyli pakietuje segmenty), adresuje je i wysyła do protokołu warstwy 3 komputera docelowego za pośrednictwem własnej warstwy 2. Warstwa 2 oprawia dane w ramki, opatrując je adresem rozpoznawanym przez sieć LAN. Ramki te są wysyłane do warstwy l w celu zamiany ich na strumień cyfr binarnych (bitów), które następnie są przesyłane do warstwy l komputera docelowego. Komputer docelowy odwraca opisany przebieg przekazów, przy czym każda warstwa pobiera i zatrzymuje nagłówki dodane przez jej odpowiednik z komputera nadającego. Zanim przesyłane dane dotrą do warstwy 4 komputera docelowego, przyjmą one na powrót formę nadaną im przez warstwę 4 komputera nadającego. W ten sposób protokoły dwóch warstw 4 wydają się fizycznie graniczyć ze sobą i komunikować bezpośrednio.
Model OSI jest uniwersalnym standardem. Wynika z tego, że każdy program, który ma zdolność wymiany danych poprzez sieć, napisano, uwzględniając go.
PAKIETY I RAMKI
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.
Ramka jest strukturą rodzimą — czyli właściwą dla — warstwy łącza danych, która zawiera ilość informacji wystarczającą do pomyślnego przesłania danych przez sieć lokalną do ich miejsca docelowego.
Pomyślna transmisja danych zachodzi wtedy, gdy dane osiągają miejsce docelowe w postaci niezmienionej w stosunku do postaci, w której zostały wysłane.
W wielu sytuacjach wysyłane ramki mogą nie osiągnąć miejsca docelowego lub ulec uszkodzeniu podczas transmisji. Warstwa łącza danych jest odpowiedzialna za rozpoznawanie i naprawę każdego takiego błędu.
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ść.
Tworzenie Transmisja i odtwarzanie pakietów.
Podstawowa ramka Ethernetu IEEE 802.3
Ramka Ethernet 802.3 ma następującą strukturę:
7- oktetowa Preambuła, sygnalizująca początek ramki,
1- oktetowy Ogranicznik początku ramki, wskazujący że zaczyna się właściwa zawartość ramki,
6-oktrtowy adres MAC odbiorcy,
6-oktrtowy adres MAC nadawcy,
2-oktetowe pole Długości określające całkowitą długość pola danych,
Pole danych zawierające od 48 do 1500 oktetów danych,
4-oktetowe pole Sekwencja kontrolna ramki, używane do sprawdzenia integralności ramki.
Typy transmisji danych
Natężenie ruchu w sieci różni się w zależności od przyjętego typu transmisji, takiego jak: unicast, broadcast oraz multicast.
Transmisja typu unicast
W przypadku transmisji typu unicast, oddzielna kopia danych przesyłana jest ze źródła do każdego komputera, będącego klientem, który ich zażąda. Żaden inny Komputer w sieci nie musi zajmować się przetwarzaniem transmisji danych. Transmisja typu unicast nie jest jednak zbyt efektywna, jeśli wiele komputerów zażąda tych samych danych, ponieważ źródło musi wtedy nadać wiele jednakowych kopii informacji. Transmisja typu unicast funkcjonuje najbardziej wydajnie, kiedy tylko niewielka liczba komputerów, będących klientami, zażąda określonych danych. Transmisja typu unicast jest także nazywana transmisją skierowaną. Obecnie większość ruchu w sieci wywoływana jest przez transmisję typu unicast,
Transmisja typu broadcast (rozgłoszenie)
W trakcie transmisji danych typu broadcast, pojedyncza kopia danych jest przesyłana do wszystkich klientów, znajdujących się w tym samym segmencie sieci, co komputer wysyłający. Transmisja typu broadcast nie jest jednak zbyt efektywna, jeśli dane mają zostać wysłane tylko do części komputerów w segmencie, ponieważ przy tym typie transmisji dane są wysyłane do całego segmentu. Powoduje niepotrzebne obniżenie wydajności sieci, ponieważ każdy klient musi przetwarzać przesyłane w ten sposób dane.
Transmisja typu multicast (multisesja)
W przypadku transmisji typu multicast, pojedyncza kopia danych jest wysyłana tylko do klientów, którzy ich zażądali. Przez sieć nie muszą więc być wysyłane liczne kopie tych samych danych. Ogranicza to ruch w sieci i umożliwia wprowadzenie aplikacji multimedialnych, bez niepotrzebnego przeciążenia sieci. Wiele usług internetowych wykorzystuje transmisję typu multicast do komunikacji z komputerami klienckimi.
Protokoły i przesyłanie danych
Protokół sieciowy to zbiór reguł, którym podlegają komunikujące się ze sobą komputery. Określają sposób adresowania informacji, dzielenia na pakiety oraz kontrolowania poprawności transmisji danych.
W dużych sieciach trudno jest efektywnie zarządzać procesem komunikacji z powodu zbyt dużego natężenia ruchu w sieci. Administratorzy sieci mogą rozwiązać ten problem, dzieląc dużą sieć na kilka segmentów sieci. Segmenty to mniejsze sieci, które po połączeniu tworzą dużą sieć.
Dane w sieci mogą być przesyłane z jednego segmentu sieci do drugiego wzdłuż dowolnej z istniejących ścieżek. Przesyłanie danych pomiędzy segmentami sieci nosi nazwę routingu. Jednak nie każdy protokół obsługuje routing. Protokoły można podzielić na dwie kategorie, w zależności od tego, czy są w stanie obsługiwać routing czy też nie.
Protokoły routowalne
Protokoły routowalne umożliwiają komunikację pomiędzy sieciami LAN lub segmentami sieci, które mogą być rozproszone w obrębie jednego budynku, niewielkiego obszaru geograficznego, takiego jak sieć uniwersytecka lub całego świata, tak jak to jest w przypadku sieci Internet. Protokoły routowalne są w stanie zapewnić transmisję danych z jednego segmentu sieci do innego, wzdłuż dowolnej ścieżki, łączącej dwa segmenty sieci. Przykładowymi routowalnymi protokołami s ą protokoły TCP/IP oraz IPX/SPX.
Protokoły nieroutowalne
Protokoły nieroutowalne, w przeciwieństwie do protokółów routowalnych, nie zapewniają transmisji danych z jednego segmentu sieci do innego. Komputery korzystające z protokołów nieroutowalnych mogą komunikować się tylko z komputerami znajdującymi się w tym samym segmencie sieci. Protokoły NetBEUI oraz DLC (Data Link Control) są przykładami protokołów nieroutowalnych.
Podstawowe protokoły(stosy protokołów):
Stos protokotów TCP/IP;
Stos protokołów IPX/SPX;
Protokół NetBEUI;
Stos protokołów AppleTalk.
Protokół TCP/IP (Transmission Control Protocol/lnternet Protocol)
Stos protokołów (podzielony na warstwy zestaw protokołów) TCP/IP jest zbudowany w oparciu o standardy przemysłowe i umożliwia komunikacją w różnych środowiskach sieciowych. Dzięki temu, że stos protokołów TCP/IP może pracować na różnych typach komputerów, obsługuje go większość typów sieci.
Stos protokołów TCP/IP obsługuje routing i pozwala komunikować się komputerom leżącym w różnych segmentach sieci. Dzięki tej funkcji, stos protokołów TCP/IP jest standardowym protokołem komunikacji w sieci Internet. Duża niezawodność w zakresie przesyłania danych oraz szeroki zakres zastosowania spowodował, że stos protokołów TCP/IP stał się niezbędnym elementem, pozwalającym uzyskiwać dostęp do ogólnoświatowych sieci informacyjnych, takich jak Internet. Stos protokołów TCP/IP musi jednak zostać skonfigurowany na każdym komputerze, na którym ma być wykorzystywany jako protokół komunikacyjny.
Zalety stosu protokołów TCP/IP:
Stos protokołów TCP/IP jest standardem przemysłowym. Jako standard przemysłowy należy on do grupy protokołów otwartych, w związku z czym nie jest kontrolowany przez żadną pojedynczą organizację.
Stos protokołów TCP/IP zawiera zestaw narzędzi, pozwalający łączyć różne systemy operacyjne. Możliwość uzyskania połączenia pomiędzy dwoma komputerami nie zależy od sieciowego systemu operacyjnego, zainstalowanego na każdym z komputerów.
Stos protokołów TCP/IP zbudowany jest w oparciu o skalowalną, niezależną od platformy, architekturę klient-serwer. Struktura stosu protokołów TCP/IP może zostać rozszerzona lub zawężona tak, aby sprostać przyszłym wymaganiom sieci.
Umieszczenie pakietu IP w ramce Ethernet
Protokół IPX/SPX (Internet Packet Exchange/Sequenced Packet Exchange)
Stos protokołów IPX/SPX został stworzony specjalnie dla architektury NetWare. Na stos protokołów IPX/SPX składa się protokół IPX oraz protokół SPX. Protokół IPX określa schemat adresowania, wykorzystany w sieci NetWare, natomiast protokół SPX zapewnia bezpieczeństwo i niezawodność pracy protokołu IPX. Protokół IPX jest protokołem obsługującym warstwę sieci i pełni tą samą funkcję, co protokół IP w stosie protokołów TCP/IP. Protokół SPX zapewnia niezawodność usług, realizowanych w warstwie transportu.
Właściwości stosu protokołów IPX/SPX:
Protokół IPX/SPX jest zwykle wykorzystywany w sieciach, w których pracują serwery NetWare.
Protokół IPX/SPX jest routowalny. Pozwala on komputerom, pracującym w środowisku sieciowym zawierającym router, wymieniać informacje pomiędzy segmentami.
Struktura ramki 802.3 zawierającej nagłówki IPX/SPX
Protokół NetBEUI (NetBIOS Enhanced User Interface)
Protokół NetBEUI był jednym z pierwszych protokołów przeznaczonych dla sieci składających się z komputerów osobistych. Protokół ten został zaprojektowany w oparciu o interfejs NetBIOS (Network Basic Input/Output System), dzięki czemu jest niewielkim, efektywnym protokołem, nadającym się do pracy w sieciach LAN, obejmujących od 20 do 200 komputerów, które nie muszą przesyłać danych do innych podsieci.
Obecnie protokół NetBEUI jest wykorzystywany wyłącznie w niewielkich, mewymagających routingu sieciach, zawierających komputery pracujące w różnych systemach operacyjnych.
Zalety protokołu NetBEUI:
Niewielki rozmiar stosu.
Brak konieczności przeprowadzania konfiguracji.
Duża prędkość przesyłania danych w sieci.
Kompatybilność ze wszystkimi systemami operacyjnymi firmy Microsoft.
Główną wadą protokołu NetBEUI jest brak obsługi routingu. W związku z tym, komputery wykorzystujące protokół NetBEUI mogą komunikować się tylko z innymi komputerami, znajdującymi się w tym samym segmencie sieci.
Protokół AppleTalk
Stos protokołów AppleTalk jest własnością firmy Apple Computer i został zaprojektowany, aby zapewniać komputerom Apple Macintosh możliwość współdzielenia plików i drukarek w środowisku sieciowym.
Niektóre z właściwości stosu protokołów AppleTalk:
Stos protokołów AppleTalk pozwala komputerom klienckim firmy Macintosh uzyskiwać dostęp
do serwera pracującego w systemie Windows 2000.
Stos protokołów AppleTalk obsługuje routing. Korzystające z niego komputery mogą
komunikować się pomiędzy segmentami w środowisku sieciowym zawierającym router.