Protokół komunikacyjny

Użytkownicy i urządzenia w sieci komputerowej komunikują się ze sobą i wymieniają informacje. Wymiana informacji musi przebiegać w ściśle określony sposób, umożliwiający przesyłanie danych. Każde z komunikacyjnych urządzeń musi przestrzegać pewnych zasad i reguł postępowania. Zbiór tych zasad nazywamy protokołem komunikacyjnym.

Tryb połączeniowy

Polega na ustanowieniu logicznego połączenia pomiędzy dwoma komunikującymi się ze sobą urządzeniami. Aby rozpocząć komunikację, należy najpierw nawiązać połączenie. Z trybu połączeniowego korzysta się wtedy, gdy powstaje potrzeba przesyłania wielu komunikatów w obu kierunkach.

Tryb bezpołączeniowy

W tym trybie komunikaty są przekazywane niezależnie, np. przy przekazywaniu wiadomości za pomocą poczty elektronicznej. W komunikacji biorą udział przynajmniej dwa urządzenia.

Unicast

Jeżeli jedno urządzenie wysyła dane do dokładnie jednego urządzenia, to taki tryb nazywamy transmisją jednostkową (Unicast). W sieciach rozwiązane to jest w ten sposób, że każde urządzenie posiada swój własny unikatowy adres.

Broadcast

Urządzenie nadawcze może wysyłać informację do wszystkich dostępnych urządzeń. W taki przypadku adresem docelowym jest specjalny adres, nazywany rozgłoszeniowym (broadcast). Urządzenia traktują transmisję na adres rozgłoszeniowy tak, jakby były adresowane na ich adres jednostkowy.

Multicast

W rozgłaszaniu grupowym (multicast) dane przeznaczone są tylko dla wybranej grupy urządzeń. Adres docelowy jest specjalnym adresem, określającym wybrane urządzenia z danej sieci. W transmisji grupowej unika się wielokrotnego wysyłania tego samego komunikatu do wielu nadawców, po każdym łączu sieciowym informacja jest przekazywana jednokrotnie.

SimpleX (transmisja jednokierunkowa)

W tej transmisji odbiornik nie może przesłać odpowiedzi ani innych danych. Przykładem transmisji tego typu jest emisja audycji radiowych, gdzie słuchacz przy odbiorniku radiowym może tylko odbierać informacje pochodzące z nadajnika. Tego typu transmisje nie są stosowane w sieciach komputerowych.

Half-duplex (pół-dupleks)

Transmisja dwukierunkowa, naprzemienna. W danym momencie jest ustalony tylko jeden kierunek transmisji, a urządzenie może albo nadawać albo odbierać informacje. Do odwrócenia kierunku transmisji potrzebny jest system sygnalizacji, wskazujący, że urządzenie ukończyło nadawanie i może odbierać informacje.

Full Duplex (dupleks)

Transmisja jednoczesna i dwukierunkowa. Wymaga zazwyczaj dwóch par przewodów dla sieci cyfrowych. Dla połączeń analogowych dla jednej pary przewodów szerokość pasma jest dzielona na dwie części.

Warunki działania usług i aplikacji sieciowych

  • niezawodność przesyłanych danych
  • przepustowość łączy
  • czas odpowiedzi

Protokoły internetowe

Podzbiór protokołów komunikacyjnych stosowanych w sieciach Internet. Komputery w Internecie komunikują się za pomocą protokołu IP działającego w warstwie sieciowej oraz TCP (Transmission Control Protocol) lub UDP (User Datagram Protocol), działających w warstwie transportowej. Inne protokoły, tj. HTTP, są wykorzystywane w warstwie aplikacji.

Model ISO/OSI (International Standard Organization/Open System Interconnection)

Warstwa sprzętowa/fizyczna (physical layer)

Zapewnia transmisję danych pomiędzy węzłami sieci. Definiuje interfejsy sieciowe i medium transmisji. Określa między innymi sposób połączenia mechanicznego (wtyki, złącza), elektrycznego oraz standard fizycznej transmisji danych. W skład jej obiektów wchodzą między innymi karty sieciowe, modemy, regeneratory, koncentratory.

Zapewnia niezawodność łącza danych. Definiuje mechanizmy kontroli błędów w przesyłanych ramkach lub pakietach - CRC (Cyclic Redundancy Check). Jest ona ściśle powiązana z warstwą fizyczną, która narzuca topologię. Warstwa ta często zajmuje się również kompresją danych. W skład jej obiektów wchodzą sterowniki urządzeń sieciowych np. sterowniki (driver) kart sieciowych oraz mosty (bridge) i przełączniki (switch).

Warstwa sieciowa (network layer)

Zapewnia metody ustanawiania, utrzymywania i rozłączania połączenia sieciowego. Obsługuje błędy komunikacji. Ponadto jest odpowiedzialna za trasowanie (routing) pakietów w sieci, czyli wyznaczanie optymalnej trasy dla połączenia. W niektórych warunkach dopuszczalne jest gubienie pakietów przez tę warstwę. W skład jej obiektów wchodzą między innymi routery.

Warstwa transportowa (transport layer)

Zapewnia przezroczysty transfer danych typu punkt-do-punktu (point-to-point). Dba o kolejność pakietów otrzymywanych przez odbiorcę. Sprawdza poprawność (CRC) przesyłanych pakietów i w przypadku ich uszkodzenia lub zaginięcia zapewnia retransmisję. Powyżej tej warstwy dane mogą być traktowane jako strumień.

Warstwa sesji (session layer)

Zapewnia aplikacjom na odległych komputerach realizację wymiany danych pomiędzy nimi. Kontroluje nawiązywanie i zrywanie połączenia przez aplikację. Jest odpowiedzialna za poprawną realizację zapytania o daną usługę.

Warstwa prezentacji (presentation layer)

Zapewnia tłumaczenie danych, definiowanie ich formatu oraz odpowiednią składnię. Umożliwia przekształcenie danych na postać standardową, niezależną od aplikacji. Rozwiązuje takie problemy jak niezgodność reprezentacji liczb, znaków końca wiersza liter narodowych itp. Odpowiada także za kompresje i szyfrowanie.

Warstwa aplikacji (Application layer)

Zapewnia aplikacjom metody dostępu do środowiska OSI. Warstwa ta świadczy usługi końcowe dla aplikacji, między innymi udostępnianie zasobów (plików, drukarek). Na tym poziomie rezydują procesy sieciowe dostępne bezpośrednio dla użytkownika.

Przepływ danych między warstwami

Aplikacje użytkownika działają w warstwie aplikacji, generując strumień danych, który jest przesyłany do niższych warstw modelu OSI. W warstwie transportowej zostaje on podzielony na segmenty, każdy z segmentów posiada nagłówek warstwy czwartej (transportowej), który zostaje nadany przez tę właśnie warstwę. W nagłówku jest umieszczany między innymi numer sekwencyjny, potrzebny do ustalenia kolejności przesyłania danych. Warstwa sieciowa odpowiedzialna jest za podzielenie danych na pakiety i opatrzenie każdego pakietu nagłówkiem. W nagłówku jest umieszczany między innymi adres IP nadawcy i odbiorcy. Adres IP odbiorcy jest wykorzystywany przez router do ustalenia optymalnej trasy, po której pakiet będzie przesyłany. Pakiet przesyłany jest do warstwy łącza danych i dzielony na ramki. Każda z ramek posiada nagłówek zawierający między innymi adresy MAC nadawcy i odbiorcy oraz stopkę zawierającą pole kontroli parzystości CRC. Warstwa fizyczna zmienia ciąg bitów i przesyła je za pośrednictwem medium transmisyjnego. Proces podziału strumienia danych na jednostki danych i opatrywanie ich nagłówkami nazywamy enkapsulacją. Proces odwrotny, realizowany podczas odbierania informacji nazywamy dekapsulacją.

Zalety modelu OSI

  • Pozwala podzielić zadania sieciowe na łatwiejsze do analizy części
  • Umożliwia łatwiejsze zastępowanie jednego rozwiązania innym, bez konieczności wprowadzania zmian w innych warstwach
  • Wprowadza niezależność poszczególnych rodzajów nośników danych wykorzystywanych w sieciach - jedne zastępują (bądź uzupełniają) drugie

Stos protokołów TCP/IP

Jest powszechnie stosowany, między innymi w sieci Internet. Podobnie jak w modelu OSI, możemy w nim wyróżnić warstwy, jednak funkcje są różne, mimo że niektóre z nich posiadają takie same nazwy jak w modelu OSI.

Warstwa aplikacji

Obejmuje funkcje trzech najwyższych warstw modelu OSI - aplikacji, prezentacji i sesji. Użytkownicy uruchamiają programy, które uzyskują dostęp do usługi za pośrednictwem protokołu na poziomie warstwy transportu i wysyłają lub odbierają te dane w postaci pojedynczych komunikatów lub strumienia bajtów. Programy użytkowe przekazują do warstwy transportowej dane w wymaganym formacie, aby mogły one zostać dostarczone w odpowiednie miejsce. W warstwie tej działa wiele protokołów aplikacji, między innymi: HTTP, FTP, Telnet, SSH, SMTP, POP3.

Warstwa transportowa

Podstawowym jej zadaniem jest zapewnienie komunikacji między programami użytkownika. Warstwa ta może zarządzać przepływem informacji oraz zapewniać niezawodność przesyłania przez porządkowanie segmentów danych i retransmisję uszkodzonych lub zagubionych segmentów. W komputerze może działać wiele aplikacji wymieniających dane w sieci przy wykorzystaniu portów określonych dla każdego połączenia i nie nastąpi wymieszanie się przesyłanych przez nie danych. Warstwa transportowa dzieli strumień danych na segmenty, a w nagłówku umieszcza numer portu identyfikujący aplikację wysyłającą lub odbierającą dane. W warstwie tej działa protokół połączeniowy TCP oraz bezpołączeniowy UDP.

Warstwa internetowa

Przyjmuje segmenty z warstwy transportowej razem z informacjami identyfikującymi odbiorcę. Zadaniem jej jest wysyłanie pakietów i dostarczenie ich do miejsca przeznaczenia niezależnie od trasy, po której będą przesyłane. Protokołem zarządzającym tą warstwą jest protokół IP. Warstwa ta dzieli dane na pakiety, dodając nagłówek zawierający między innymi adres IP nadawcy i odbiorcy. Na podstawie adresu IP miejsca docelowego jest podejmowana decyzja, czy wysyłać pakiety wprost do odbiorcy w sieci lokalnej, czy też do routera, który przekaże go do odpowiedniego interfejsu sieciowego. Routery pracujące w warstwie internetu wyznaczają najlepsze trasy do miejsca przeznaczenia pakietu.

Warstwa dostępu do sieci

Odbiera pakiety IP i przesyła je przez daną sieć. Zapewnia interfejs z siecią fizyczną i zajmuje się przekazywaniem danych przez fizyczne połączenia między urządzeniami sieciowymi. Najczęściej są to karty sieciowe lub modemy. Formatuje dane do transmisji poprzez nośnik oraz adresuje dane do podsieci, opierając się na adresach fizycznych. Zapewnia sprawdzanie błędów przesyłu danych za pomocą sumy kontrolnej ramki.

ARP (Address Resolution Protocol)

Protokół, który działa między warstwą internetową i warstwą dostępu. Pozwala na ustalenie adresu sprzętowego MAC hosta, gdy dany jest adres warstwy sieciowej IP. Z protokołu tego korzystamy podczas wysyłania danych. Podczas komunikacji urządzeń w sieci, dane muszą przejść przez wszystkie etapy enkapsulacji. W nagłówku pakietu urządzenie nadawcze umieszcza adres IP nadawcy oraz odbiorcy. Adres nadawcy jest przydzielony każdemu urządzeniu, adres odbiorcy jest wprowadzany przez użytkownika w postaci adresu IP lub nazwy domenowej komputera. Adresy te są więc znane i urządzenie może utworzyć pakiet. W nagłówku ramki jest potrzebny adres MAC nadawcy i odbiorcy. Każda karta sieciowa posiada unikatowy adres MAC, więc zna swój adres, brakuje jeszcze adresu MAC urządzenia odbiorcy. Do ustalenia tego właśnie adresu jest wykorzystywany protokół ARP. Gdy komputer chce skorzystać z protokołu ARP, przygotowuje specjalny pakiet zapytania ARP, który jest wysyłany na adres rozgłoszeniowy, dzięki czemu dociera do wszystkich urządzeń w sieci lokalnej.