Zadania warstwy transportowej
Damian Stelmach
Warstwa transportowa czy też warstwa transportu (można stosować te nazwy naprzemiennie) to bardzo ważny element w procesie komunikacji. Do najważniejszych zadań tej warstwy zaliczyć należy:
- nawiązanie i obsługa połączeń (sesji) pomiędzy hostami,
- śledzenie połączeń pomiędzy hostami,
- podział danych na mniejsze fragmenty,
- identyfikowanie poszczególnych aplikacji,
- kontrola przepływu danych,
- retransmisja w przypadku utraty danych.
Śledzenie połączeń, czyli konwersacji pomiędzy hostami daje możliwość przesyłania i odbierania danych przez wiele aplikacji jednocześnie. Na jednym komputerze możemy przeglądać pocztę, korzystać z bankowości elektronicznej czy komunikować się ze znajomymi. Obecnie jest to dla nas naturalne, właściwie to trudno sobie wyobrazić sytuację, w której nie mielibyśmy takiej możliwości, ale warto przy tym pamiętać, że możliwe między innymi dzięki warstwie transportowej.
Na możliwość ciągłego korzystania z wielu usług jednocześnie składa się również segmentacja danych, czyli dzielenie ich na mniejsze fragmenty. Umożliwia to sprawniejszą komunikacje, gdyż nie przesyła się jednocześnie dużej ilości danych. Gdyby nie segmentacja, to dane mogłaby odbierać jednocześnie tylko jedna aplikacja, pozostałe, z których korzystamy, musiałby czekać na swoją kolej. Widać to na grafice poniżej, segmenty przesyłane są na przemian, segment dla strony WWW, segment dla wiadomości e-mail, segment dla komunikatora i tak na przemian. Cały ten proces przesyłania segmentów wielu aplikacji na przemian nazywany jest multipleksingiem.

Kolejnym istotnym zadaniem czy funkcją warstwy transportu jest dostarczanie danych do właściwych aplikacji. Każda aplikacja posiada swój identyfikator, jednoznacznie ją określający. Identyfikatorem tym jest numer portu aplikacji.

Przypisywany jest on do segmentu lub datagramu w procesie enkapsulacji właśnie na poziomie warstwy transportu i gwarantuje on dostarczenie danych do konkretnej aplikacji.

Podobnie jak w przypadku adresów IP, przydzielaniem numerów portów zajmuje się organizacja IANA (ang. Internet Assigned Numbers Authority), która to podzieliła numery portów na 3 grupy:
Nazwa grupy portów | Zakres numerów | Zastosowanie |
---|---|---|
Dobrze znane porty (ang. well knows) | 0 - 1023 | usługi i aplikacje serwera |
Zarejestrowane porty (ang. registered) | 1024 - 49151 | usługi i aplikacje użytkownika |
Dynamiczne porty (ang. dynamic) | 49152 - 65535 | losowo wybierane dla aplikacji klienta |
Dobrze znane porty, czyli te od 0 do 1023 są zarejestrowane dla usług i konkretnych aplikacji serwerowych, przykładowo serwer WWW będzie domyślnie pracował na porcie 80, a serwer POP3 na 110. Zbiór aplikacji o dobrze znanych portach z uwzględnieniem protokołów warstwy transportowej przedstawiony jest poniżej.
Protokół warstwy aplikacji | Numer portu | Protokół warstwy transportowej |
---|---|---|
HTTP | 80 | TCP |
HTTPS | 443 | TCP |
POP3 | 110 (szyfrowany 995) | TCP |
IMAP | 143 (szyfrowany 993) | TCP |
SMTP | 25 (szyfrowany 465 lub 587) | TCP |
FTP | 21 (polecenia) i 20 (pliki) | TCP |
FTPS | 990 | TCP |
TELNET | 23 | TCP |
SSH | 22 | TCP |
DNS | 53 | TCP lub UDP |
DHCP | 67 i 68 (dla IPv6 546 i 547) | UDP |
LDAP | 389 (szyfrowany 639) | TCP lub UDP |
SNMP | 161 | UDP |
Druga grupa, czyli zarejestrowane porty wykorzystywane są przez aplikację zainstalowane na komputerze użytkownika. Jeśli przykładowo zainstalujemy na swoim komputerze aplikację będącą systemem zarządzania bazami danych MySQL, to będzie ona pracować na porcie 3306. Trzecia, ostatnia grupa czyli dynamiczne numery portów, z kolei są przydzielane losowo do aplikacji klienckich, np. kiedy klient wysyła żądanie udostępnienia strony WWW do serwera, to serwer przyjmuje to żądanie domyślnie na porcie 80, ale już odpowiedź, którą od serwera klient otrzymuje nie jest przesyłana na port 80, bo ten zarezerwowany jest dla procesów serwera WWW, ale na przydzielonym losowo numerze portów z puli portów dynamicznych.
Działanie kilku aplikacji na tym samym numerze portu nie jest możliwe. Kiedy dana aplikacja pracuje na porcie np. 53 (DNS), to inna aplikacja już na tym porcie działać nie może, nie jest to możliwe.
Jeśli wiemy już czym są porty aplikacji to wprowadźmy sobie kolejne pojęcie. Będzie nim gniazdo (ang. Socket). Z pojęciem Socketu spotkaliście się już przy okazji omawiania płyt główny i procesorów na zajęciach z urządzeń techniki komputerowej, w sieciach komputerowych również ono występuje. Gniazdo to kombinacja adresu IP i numeru portu:

Gniazdo jednoznacznie identyfikuje dany proces działający na urządzeniu i tak przykładowo, kiedy nasza przeglądarka będzie odwoływała się do serwera WWW o udostępnienie jakiejś strony internetowej, to zapytania do serwera zostanie przesłane do jego gniazda czyli procesu (aplikacji serwera WWW).

Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać w komentarzach! Dziękujemy Wam za poświęcony na to czas!