4. Systemy rozproszone

4.4. Typowe protokoły komunikacyjne i obiekty sieciowe

Protokoły komunikacyjne to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia komunikacyjne w celu nawiązania łączności i wymiany danych. Dzięki temu, że połączenia z użyciem protokołów odbywają się całkowicie automatycznie, typowy użytkownik zwykle nie zdaje sobie sprawy z ich istnienia i nie musi o nich nic wiedzieć.

Klasyczne protokoły, których pierwowzorem był protokół teleksu składają się z trzech części:

  • procedury powitalnej (tzw. "handshake"), która polega na przesłaniu wzajemnej podstawowej informacji o łączących się urządzeniach, ich adresu (np. nr telefonu), szybkości i rodzaju transmisji itp.,
  • właściwego przekazu danych,
  • procedury analizy poprawności przekazu (np. sprawdzania sum kontrolnych) połączonej z procedurą pożegnania, żądaniem powtórzenia transmisji lub powrotem do procedury powitalnej.

Przesyłana informacja może być porcjowana - protokół musi „umieć” odtworzyć informację w postaci pierwotnej. Protokołami tego rodzaju posługują się: teleksy, faksy, modemy, programy komputerowe, wiele innych urządzeń, włącznie z pilotami do telewizorów. Protokoły służące programom komputerowym do porozumiewania się między sobą poprzez Internet są określone przez IETF (Internet Engineering Task Force) w dokumentach zwanych RFC (Request For Comments).

Osobną klasą protokołów komunikacyjnych są protokoły do komunikacji grupowej (multicast), używane m.in. do transmisji telewizyjnych przez Internet, telekonferencji itp. Przykładami takich protokołów są RMTP (Reliable Multicast Transport Protocol), TOTEM, XTP, Muse i inne.

Przesyłanie danych komputerowych to niezwykle trudny proces, dlatego rozdzielono go na kilka "etapów" - warstw. Warstwy oznaczają w istocie poszczególne funkcje spełniane przez sieć.

Poszczególne warstwy, z których składa się sieć komputerowa, zwykło się opisywać zgodnie z koncepcją siedmiowarstwowego modelu połączeń systemów otwartych OSI (Open Systems Interconnection) zatwierdzonego przez ISO (International Organization for Standarization). W skład modelu OSI wchodzą następujące warstwy: fizyczna, kanałowa, sieciowa, transportowa, sesji, prezentacji, zastosowań. Protokoły Internetu opisywane są za pomocą zredukowanej, czterowarstwowej struktury: fizyczna/kanałowa, sieciowa, transportowa, zastosowań [8]. Poniżej, podano wykaz typowych sieciowych protokołów komunikacyjnych:

IP - (ang. Internet Protocol). Protokół IP jest podstawą architektury Internetowej. Na protokół ten składają się operacje: kierowania pakietu do właściwej sieci i obiektu typu host (routing), tłumaczenia adresów obiektów host na adresy fizyczne związane z daną siecią (protokół arp), segmentacja i składanie pakietów danych.

UDP - (ang. User Datagram Protocol) jest to prosty protokół korzystający (w sposób mało wyszukany) z warstwy IP. Jest zawodny – nie daje żadnej pewności, że datagram dotrze do adresata i że kolejność odbierania datagramów będzie taka jak nadawania. Jego zaleta to szybkość – systemy czasu rzeczywistego.

TCP - (Transmission Control Protocol) realizuje transmisje w trybie połączeniowym. Oznacza to, że między komunikującymi się obiektami typu host tworzone jest wirtualne połączenie. Protokół TCP utrzymuje je i zapewnia niezawodny transfer danych między komputerami. Realizowane jest to poprzez operacje potwierdzania odbioru pakietów i retransmitowania pakietów zagubionych. W rezultacie powstaje pewność dostarczenia danych do odległego komputera.

NTP - (ang. Network Time Protocol), protokół czasu sieciowego – określa architekturę usług czasu oraz protokół rozpowszechniania informacji o czasie w obrębie różnorodnych, połączonych sieci. Przyjęty jako standard synchronizowania zegarów w sieci Internet. Usługi NTP są dostarczane przez sieć serwerów. Serwery podstawowe są bezpośrednio podłączone do źródeł czasu w rodzaju zegarów radiowych odbierających sygnały czasu uniwersalnego UCT (francuski: Universelle Tempes Coordinate)[1].

RTP – (Real Time Protocol), protokół transmisji sygnału w czasie rzeczywistym. Protokół ten, różny od TCP, został stworzony do przesyłania w sieci Internet danych czasu rzeczywistego: strumieni multimedialnych (dźwięku i obrazu). Chodziło o to, aby możliwe było odtwarzanie dźwięku czy obrazu bez wcześniejszego „ściągania” całego pliku z sieci. Został on szeroko wykorzystany do realizacji wideokonferencji lub nadawania audycji radiowych w sieci Internet.

Model TCP/IP (Transmission Control Protocol / Internet Protocol) – teoretyczny model warstwowej struktury protokołów komunikacyjnych. Model TCP/IP został stworzony w latach 70. XX wieku w DARPA (Defense Advanced Research Projects Agency), aby pomóc w tworzeniu odpornych na atak sieci komputerowych. Potem stał się on podstawą struktury Internetu.

Podstawowym założeniem modelu TCP/IP 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 TCP/IP są pod względem organizacji warstw zbliżone do modelu OSI. Jednak ilość warstw jest mniejsza i bardziej odzwierciedla prawdziwą strukturę Internetu. Model TCP/IP składa się z czterech warstw.

Warstwa aplikacji czy warstwa procesowa czy (ang. process layer) to najwyższy poziom, w którym pracują użyteczne dla użytkownika 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 (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 Internetu 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ę mianem: trasowanie.

Warstwa fizyczna lub warstwa dostępu do sieci lub (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.

W warstwie transportowej może istnieć wiele protokołów, które współegzystują w jednej sieci. Ich algorytmy powinny być optymalizowane, aby zapewnić:

  • niezawodny transfer danych,
  • dużą przepustowość,
  • mały czas reakcji.

Niezawodny transfer danych oznacza zapewnienie, że jeżeli tylko istnieje taka możliwość, każdy komunikat dotrze do odbiorcy. Duża przepustowość określa ilość informacji jaką można przesłać w zadanych czasie. Czas reakcji (ping) musi być jak najmniejszy, co jest niezbędne, aby ograniczyć opóźnienie w komunikacji.

W praktyce nie da się pogodzić wszystkich trzech wymogów względem warstwy transportowej. Zwykle, poprawa jednego z nich dokonuje się kosztem pozostałych. Aby rozwiązać ten problem w sieciach komputerowych zaprojektowano szereg protokołów warstw transportowych. Projektant tworzący aplikację musi w takiej sytuacji wybrać, który protokół najlepiej sprawdzi się w jego oprogramowaniu oraz sieci.

 

 

[1] Powstała już nieformalna nazwa anglojęzyczna – CUT: Coordinated Universal Time