Warstwa transportowa zapewnia:
- przesyłanie danych z hosta źródłowego do hosta docelowego;
- nawiązanie połączenia logicznego pomiędzy punktami końcowymi sieci;
- protokoły warstwy transportowej dzielą na segmenty i ponownie składają dane wysyłane przez aplikacje wyższej warstwy;
- strumień danych warstwy transportowej obsługuje transport typu end-to-end, czyli transport między punktami końcowymi;
- ustalanie sesji połączeniowej;
- niezawodność przez nuery sekwencyjne i potwierdzenia.
TCP/IP składa się z 2 protokołów:
- Protokół IP działa w warstwie 3 i jest protokołem bezpołączeniowym odpowiadającym za dostarczanie danych poprzez sieć.
- Protokół TCP działa w warstwie 4 i jest usługą zorientowaną połączeniowo, wymaga on ustawienia połączenia (ISN) przed wysłaniemdanych, odpowiedzialną za kontrolę przepływu i niezawodność.
Przeciążenie podczas transferu danych może wystąpić z dwóch powodów:
- szybki komputer może być w stanie generować ruch szybciej, niż sieć może go przekazywać;
- wiele komputerów równocześnie wysyła datagramy do tego samego adresata, może on zostać przeciążony;
Synchronizacja protokołu TCP wygląda następująco:
- Wysyłający host (A) inicjuje połączenie przez wysłanie pakietu SYN do odbiorcy (hosta B) ze swoim numerem początkowym ISN = X:
A —> B SYN, seq A = X - B otrzymuje pakiet, zapamiętuje, że numer sekwencyjny seq hosta A = X, odpowiada pakietem z ustawionym bitem ACK i numerem potwierdzenia X + 1, a także określa swój numer początkowy ISN = Y. Potwierdzenie ACK z numerem X + 1 oznacza, że host B otrzymał wszystkie oktety do oktetu X włącznie i będzie oczekiwał na oktet o numerze X + 1:
B —> A ACK, seq A = X, SYN seq B = Y, ACK = X + 1 - A otrzymuje pakiet od B, wie, że numer sekwencyjny seq hosta B = Y, i odpowiada pakietem z ustawionym bitem ACK i numerem potwierdzenia Y + 1, co kończy proces ustanawiania połączenia:
A —> B ACK, seq B = Y, ACK = Y + 1
Wymiana ta jest zwana uzgadnianiem trójetapowym.
Przesyłanie danych za pomocą danego protokołu nie powiedzie się, jeśli pakiet zostanie:
- utracony,
- uszkodzony,
- powielony,
- odebrany w innej kolejności.
Okienkowanie to mechanizm kontroli przepływu. Wymaga ono, żeby urządzenie źródłowe otrzymywało od adresata potwierdzenie po wysłaniu określonej ilości danych. Odbierający proces TCP zgłasza „okno” do wysyłającego procesu TCP. Okno to określa numery i liczbę pakietów odebranych.
Przy rozmiarze okna równym np. 3 urządzenie źródłowe może wysłać do adresata trzy bajty i poczekać na potwierdzenie odbioru przez ponownym wysłaniem. Protokoły, które wykorzystują protokół TCP:
- protokół FTP (ang. File Transfer Protocol),
- protokół HTTP (ang. Hypertext Transfer Protocol),
- protokół SMTP (ang. Simple Mail Transfer Protocol),
- protokół Telnet.
Poniżej podano definicje pól segmentu TCP:
- port źródłowy: numer portu nadającego,
- port odbiorcy: numer wywoływanego portu,
- numery sekwencyjne: numery używane do zapewnienia prawidłowej kolejności nadchodzących danych,
- numer potwierdzenia: następny oczekiwany oktet TCP,
- HLEN: liczba 32-bitowych słów w nagłówku,
- zarezerwowane: pole ustawione na wartość zero,
- bity kodowe: funkcje sterujące (na przykład nawiązywanie i kończenie sesji),
- okno: liczba oktetów, którą zaakceptuje nadawca,
- suma kontrolna: suma kontrolna obliczona na podstawie pól nagłówka i danych,
- wskaźnik pilności: (ang. Urgent Pointer) określa koniec pilnych danych,
- opcja: jedna obecnie definiowana opcja — maksymalny rozmiar segmentu TCP,
- dane: dane protokołu wyższej warstwy.
Protokół UDP jest bezpołączeniowym protokołem transportowym należącym do stosu protokołów TCP/IP. Protokół UDP to prosty protokół wymiany datagramów bez potwierdzania i gwarancji ich dostarczenia.
Protokoły, które wykorzystują protokół UDP:
- protokół TFTP (ang. Trivial File Transfer Protocol),
- protokół SNMP (ang. Simple Network Management Protocol),
- protokół DHCP (ang. Dynamic Host Control Protocol),
- protokół DNS (ang. Domain Name System).
Poniżej podano definicje pól segmentu UDP:
- port źródłowy: numer portu nadającego,
- port odbiorcy: numer wywoływanego portu,
- długość: liczba bajtów nagłówka i danych,
- suma kontrolna: suma kontrolna obliczona na podstawie pól nagłówka i danych,
- dane: dane protokołu wyższej warstwy.
W protokołach TCP i UDP numery portów są wykorzystywane do przekazywania informacji do wyższych warstw, tzn. do wyboru właściwej aplikacji.
System nazw domen (DNS) został zaprojektowany po to, by skojarzyć treść witryny z jej adresem. DNS służy do tłumaczenia nazw domen na adresy IP.
Protokół FTP jest niezawodną usługą zorientowaną połączeniowo, która wykorzystuje protokół TCP do przesyłania plików pomiędzy systemami obsługującymi protokół FTP. Protokół TFTP jest usługą bezpołączeniową wykorzystującą protokół UDP. Protokół ten jest używany przez router do przesyłania plików konfiguracyjnych oraz obrazów systemu Cisco IOS, a także do przesyłania plików pomiędzy systemami korzystającymi z TFTP.
Protokół HTTP działa w sieci WWW, która jest najszybciej rozwijającą się i najczęściej używaną częścią Internetu.
Serwery poczty elektronicznej w celu wysyłania i odbioru poczty komunikują się ze sobą za pomocą protokołu SMTP. Protokół SMTP przesyła wiadomości e-mail w formacie ASCII, wykorzystując do tego protokół TCP.
Protokół SNMP jest protokołem warstwy aplikacji ułatwiającym wymianę pomiędzy urządzeniami sieciowymi informacji związanych z zarządzaniem. Protokół ten umożliwia administratorom sieci zarządzanie wydajnością sieci, odnajdywanie i rozwiązywanie problemów sieciowych oraz planowanie rozwoju sieci. Protokołem warstwy transportowej w ramach SNMP jest protokół UDP. Sieć zarządzana za pomocą protokołu SNMP składa się z trzech następujących elementów kluczowych:
- System zarządzania siecią (NMS),
- Urządzenia zarządzane,
- Agenci.
Oprogramowanie klienckie Telnet zapewnia możliwość zalogowania się do zdalnych hostów internetowych z uruchomionym serwerem Telnet, a następnie wykonywanie poleceń przy użyciu wiersza poleceń.