r06 05 (23)


Rozdział 6.
Warstwa transportowa

W tym rozdziale:

Warstwa transportowa, która mieści się pomiędzy warstwą aplikacji i internetową, jest sercem warstwowej architektury sieci. Warstwa ta dzieli na segmenty dane nadchodzące z warstwy aplikacji i przesyła je razem z adresem docelowym do następnej warstwy w celu transmisji. Warstwa transportowa zapewnia również komunikację logiczną pomiędzy procesami aplikacji uruchomionych w różnych hostach. W tym typie komunikacji procesy aplikacji w komputerach źródłowym i docelowym wprawdzie nie są połączone fizycznie, lecz komunikują się ze sobą, jakby były połączone.

Niniejszy rozdział omawia różne typy przesyłu danych, obsługiwane przez warstwę transportową: bezpołączeniowy protokół przesyłu danych (protokół datagramów użytkownika UDP — User Datagram Protocol) oraz połączeniowy protokół przesyłu danych (protokół sterowania transmisją TCP — Transmission Control Protocol).

Typy przesyłu danych

Podstawowym zadaniem, które wykonuje warstwa transportowa, jest przekazywanie strumienia danych z warstwy aplikacji do warstwy transportowej w postaci segmentów. Po stronie nadawcy warstwa transportowa przekształca komunikaty odebrane od nadającego procesu aplikacji na segmenty. Segmenty te zawierają dane przeznaczone do przesłania oraz nagłówek, który zawiera określone informacje, takie jak adresy źródłowy i docelowy. Po stronie odbiorcy warstwa transportowa odbiera segmenty z warstwy internetowej, składa ponownie komunikaty i przekazuje je do procesu aplikacji odbierającej dane. Procesy aplikacji wykorzystują udostępnianą przez warstwę transportową łączność logiczną do wysyłania komunikatów do siebie nawzajem, bez wchodzenia w szczegóły infrastruktury fizycznej, która służy do przesyłania komunikatów. Rysunek 6.1 przedstawia tę komunikację logiczną.

Rysunek 6.1.

Komunikacja
logiczna
za pomocą
warstwy transportowej

0x01 graphic

Logiczna komunikacja udostępniana przez warstwę transportową może być połączeniowa (connection-oriented) lub bezpołączeniowa (connectionless). Do połączeniowego przesyłu danych musi zostać utworzone połączenie pomiędzy procesami aplikacji w hostach źródłowym i docelowym, zanim będzie można wysłać faktyczne dane. W bezpołączeniowym przesyle danych nie trzeba uprzednio nawiązywać formalnych połączeń.

Przesył danych można też podzielić na wiarygodny lub nie, stanowy lub bezstanowy. Wiarygodny przesył danych to taki, w którym segmenty są dostarczone do miejsca przeznaczenia w kolejności, w jakiej zostały wysłane. Z drugiej strony, przesył niewiarygodny w pełni opiera się na niższej warstwie, wobec czego nie zapewnia dostarczenia segmentów do miejsca przeznaczenia.

Stanowy (stateful) przesył danych oznacza, że informacje zawarte w jednym żądaniu wysłanym od nadawcy do adresata mogą posłużyć do modyfikacji kolejnych żądań. W przesyle bezstanowym informacje w konkretnym żądaniu nie mogą być wiązane z innymi, więc nie można ich dalej wykorzystywać.

Istnieje kilka podstawowych problemów sieciowych, z którymi trzeba uporać się w warstwie transportowej, aby dane były przesyłane z powodzeniem i wydajnie. Do zagadnień tych należą: