Technologie Internetowe Część II Dr Karol Grudziński Uniwersytet Kazimierza Wielkiego i Wyższa Szkoła Gospodarki Protokoły stosowane w sieci WWW
Protokoły a języki mowy ludzkiej:
Ludzie mówią różnymi językami, w celu bezpośredniego porozumiewania się z nimi trzeba by nauczyć się wszystkich języków świata.
Komputery też są różne (różne wersje hardware i systemów operacyjnych) ale prawie wszystkie się między sobą komunikują i można podłączyć je do internetu (sieci).
Protokoły spełniają rolę uniwersalnych popularnych języków mowy ludzkiej (angielski, hiszpański). 2
Aby człowiek mówiący np. po angielsku mógł być zrozumiany musi przestrzegać reguł gramatyki tego języka (a więc trzymać się pewnych ogólnie przyjętych zasad).
Podobnie jest z komputerami: komunikacja między nimi jest możliwa, jeżeli dane przesyłane są zgodnie z pewnymi ustalonymi wcześniej zasadami. Zestawy takich zasad to protokoły.
W tym wykładzie: 1) protokoły umożliwiają wymianę danych w sieci lokalnej i internecie 2) Internet zbudowany zgodnie z 7- warstwowym modelem sieci ISO/OSI. 3
Protokół komunikacyjny.
Wiele typów komputerów i systemów operacyjnych. W celu zniwelowania tych różnic i umożliwienia komunikacji między nimi używa się protokołów.
Protokół: zbiór reguł normujących transmisję danych oraz formaty przesyłania komunikatów. W sieci dane przesyłane są w postaci komunikatów zdefiniowanych przez protokół. Protokół opisuje również sposoby postępowania z komunikatami w wypadku wystąpienia błędu jak i wtedy gdy transmisja przebiega bez zarzutu. Wszystkie programy korzystające z internetu współpracują z odpowiednimi protokołami. 4
Protokoły są standardami, dzięki którym można realizować usługi wspomagające komunikację między komputerami.
Podstawowym celem protokołów jest umożliwienie wymiany informacji niezależnie od rodzaju sieci i dołączonego do niej sprzętu.
Najważniejszym zadaniem protokołu jest stworzenie warunków do komunikacji między komputerami różnych typów.
Dzięki protokołom odbywa się przesyłanie danych sieciowych w internecie. Zanim przejdziemy do protokołów pomówimy trochę o budowie sieci. 5
Składniki sieci.
Wiemy, że komunikacja w sieci odbywa się za pośrednictwem internetu.
Internet możemy nazwać kręgosłupem sieci WWW.
W sieci możemy wyróżnić dwie podstawowe części: aplikacje sieciowe i podsystem komunikacyjny.
Podsystem komunikacyjny dostarcza danych dla aplikacji sieciowych.
Podstawowym zadaniem podsystemu komunikacyjnego jest transport komunikatów (danych) pomiędzy komputerami i aplikacjami. 6
Podsystemy komunikacyjne.
Podsystemy komunikacyjne przełączają połączenia między komputerami oraz sieciami. Dzięki temu jest możliwe współużytkowanie fizycznych łączy.
Dwa podstawowe typy podsystemów to systemy z przełączaniem obwodów oraz systemy z przełączaniem pakietów.
W systemie z przełączaniem obwodów tworzy się ciągłe pojedyncze połączenie między komunikującymi się urządzeniami. Po zakończeniu wymiany informacji linia jest zwalniana, tak aby była dostępna dla innych. Dzięki przełączaniu obwodów możliwe jest współużytkowanie fizycznych linii jednak każde z urządzeń musi czekać na dostęp do linii. 7
Rozwiązanie z przełączaniem obwodów nie nadaje się do zastosowania w internecie, gdyż nie umożliwia jednoczesnej realizacji kilku połączeń z tym samym komputerem. Zatem nie możliwe jest np. stworzenie serwera.
Przykładem sieci z przełączaniem obwodów są sieci telefoniczne.
W prawie wszystkich sieciach telekomunikacyjnych stosowany jest system z przełączaniem pakietów.
Sieci z przełączaniem pakietów są zbudowane z dwu głównych elementów: elementów przełączających i linii transmisyjnych. W liniach transmisyjnych sieci z przełączaniem pakietów przesyła się wiele komunikatów na raz. Jest do dokonywane dzięki multipleksowaniu. 8
Każdy komunikat może być przesyłany przez inną linię transmisyjną. Dobór linii jest dokonywany przez urządzenia przełączające. Wybierają one te linie, które zapewniają najsprawniejszą komunikację danych.
Funkcję elementu przełączającego może spełniać komputer główny lub inne urządzenie, np. most lub ruter. Most służy do łączenia dwóch sieci takiego samego typu i przekierowuje pakiety z danymi do odpowiedniej sieci. Ruter natomiast łączy dwie sieci nawet różnych typów. Dzięki niemu można połączyć sieci połączone w takich samych lub różnych technologiach.
Zazwyczaj przez pojęcie elementu przełączającego rozumie się każde urządzenie, które pomaga pakietom odnalezć odbiorcę. 9
Fizyczne elementy łączące przełączniki pakietów nazywamy liniami transmisyjnymi lub obwodami/kanałami komunikacyjnymi.
Przepływ danych w sieci odbywający się poprzez linię transmisyjną to strumień danych.
Siedmiowarstwowy model sieci opracowany przez ISO/OSI.
Referencyjny model sieci opracowany przez organizacje ISO/OSI (International Standards Organization/Open System Interconnect) jest wzorcem, z którego czerpać mogą projektanci sieci. Model ten nie zawiera szczegółowych wskazówek dt. ich tworzenia, mimo to jednak intensywnie się z niego korzysta. 10
Komunikacja w internecie odbywa się zgodnie z protokołem TCP/IP (Transport Control Protocol/Internet Protocol).
Protokół TCP/IP odbiega od wskazówek ISO/OSI. Umożliwiło to zredukowanie liczby warstw niezbędnych do jego implementacji.
Definicje Warstw.
W modelu ISO/OSI sieć jest podzielona na leżące jedna na drugiej warstwy. W ten sposób zostały wyróżnione dobrze zdefiniowane moduły funkcjonalne sieci.
W zależności od potrzeb danej sieci szczegóły jej konstrukcji liczba warstw, ich nazwy oraz funkcje mogą odbiegać od podstawowego modelu. 11
W sieci o budowie warstwowej każda warstwa odpowiada za część zadań związanych z wysyłaniem i odbieraniem danych.
Z tego powodu każda warstwa komunikuje się z warstwami do niej przylegającymi. Zarazem pełni ona rolę interfejsu pomiędzy nimi oddziela warstwę leżącą wyżej od szczegółów implementacji niższego poziomu.
Każdą warstwę modelu ISO/OSI można traktować jako czarną skrzynkę (chodzi o ukrywanie szczegółów analogia do programowania obiektowego). Sieci projektuje się tak aby każda warstwa dostarczała warstwie wyższej usługi komunikacyjne. Twórcy warstwy wyższej znają tylko interfejs warstwy niższej, nie zajmują się szczegółami. 12
Suma kontrolna jest to wartość, którą się otrzymuje w wyniku zsumowania danych binarnych znajdujących się w bloku danych programu. Sumę kontrolną oblicza sam program. Jest ona dołączana do danych wysyłanych do komputera głównego. Po odebraniu danych następuje ponowne obliczenie sumy kontrolnej i porównanie z wartością przesłaną. Jeżeli obie wartości się zgadzają, zakłada się, że podczas transmisji nie nastąpiły zakłócenia.
Porządkowanie pakietów danych: pakiety mogą dotrzeć do celu (komputera) w przypadkowej kolejności. Stosuje się specjalne mechanizmy porządkowania w protokole lub aplikacji odbierającej dane. 13
Kontrola poprawności.
Komunikaty przesyłane w sieci mogą zaginąć lub ulec uszkodzeniu. Przyczyną mogą być szumy elektroniczne przewodów lub tłumienie sygnału.
Podczas transmisji może ulec zmianie wartość przesyłanego bitu z 0 na 1 lub odwrotnie.
Zdarza się też, że giną całe pakiety danych.
Dzięki kontroli poprawności dane docierają do celu bez żadnych przekłamań.
Jednak, podobnie jak w wypadku wielu rozwiązań sieciowych, uszkodzone dane mogą dotrzeć do miejsca przeznaczenia, mimo mechanizmów kontroli poprawności.
W wypadku wykrycia przekłamań usługa realizująca kontrolę poprawności automatycznie wysyła do nadawcy żądanie ponownego przesłania danych. 14
Dzięki temu docelowy program nie otrzymuje uszkodzonych danych.
Proces kontroli poprawności jest na ogół realizowany przez mechanizmy na poziomie jednej warstwy.
Mechanizmy kontroli poprawności muszą wykrywać i usuwać błędy transmisji dwóch rodzajów: uszkodzenia danych oraz ich utraty.
Ogólnie mówiąc protokoły wykrywają błędy dzięki sprawdzaniu sum kontrolnych oraz cyklicznej kontroli nadmiarowości CRC (cyclic redundancy check). Błędy są wykrywane na podstawie wartości obliczonych przez program z wartościami odebranymi wraz z danymi.
CRC jest podobne do sumy kontrolnej ale rzadziej stosowane ze względu na trudniejszą implementację. 15
W celu wykrywania błędów powstających w kanałach komunikacyjnych stosuje się również transmisję z potwierdzeniem (handshake).
W sieciach, w których zaimplementowano powyższe rozwiązanie, zarówno nadawca jak i odbiorca wysyłają komunikaty potwerdzające odebranie nie uszkodzonych danych. Rys: Transmisja z potwierdzeniem 16
Kontrola po przesłaniu danych a kontrola w węzłach.
W zależności od protokołu kontrola może się odbywać dopiero po odebraniu komunikatu przez komputer docelowy albo podczas wędrówki komunikatu po sieci.
Dane w internecie, zanim dotrą do celu są przesyłane między kolejnymi przełącznikami pakietów.
Pakiet danych podczas wędrówki po sieci może napotkać na swojej drodze kilka ruterów, czyli urządzeń umożliwiających przesyłanie danych między sieciami (nawet wykonanymi w różnych technologiach). Przełączniki pakietów oraz inne urządzenia leżące na trasie pakietu nazywamy węzłami (nodes). 17
W protokołach realizujących kontrolę w węzłach, każdy z węzłów sprawdza dane.
W protokołach z kontrolą po przesłaniu informacji, węzły leżące pomiędzy nadawcą a odbiorcą nie sprawdzają danych.
Siedmiowarstwowy model sieci.
W celu zapobieżenia nakładaniu się zadań wykonywanych przez różne protokoły podzielono sieć na warstwy i każdej z nich przyporządkowano jeden lub kilka protokołów.
Organizacja ISO opracowała warstwowy model sieci, często nazywany modelem ISO. Model ten składa się z 7 warstw. 18
Protokoły zaimplementowane w każdej z nich obsługują przekazywanie danych do warstw bezpośrednio przylegających.
Dane pobierane z sieci najpierw przechodzą przez warstwę fizyczną, następnie są przekazywane przez kolejne warstwy i docierają do warstwy aplikacji.
Podobnie dane wysyłane przez programy do sieci najpierw przechodzą przez warstwę aplikacji i docierają do warstwy fizycznej, która przekazuje dane do kanału komunikacyjnego. 19 Rys: 7-warstwowy model sieci ISO 20