Warstwa transportowa TCP/IP
Przegląd operacji ustanawiania, obsługi i zakończenia sesji

W modelu odniesienia OSI wiele aplikacji może współdzielić to samo połączenie transportowe. Funkcje transportu danych są realizowane na zasadzie wysyłania segmentu za segmentem. Innymi słowy, różne aplikacje mogą wysyłać segmenty danych w oparciu o zasadę „pierwszy przychodzi, pierwszy obsłużony”. Pierwszy odebrany segment będzie obsłużony jako pierwszy. Segmenty te mogą podlegać routingowi do tego samego lub różnych adresatów. Jest to nazywane zwielokrotnianiem (multipleksowaniem) konwersacji warstwy wyższej. Wiele równoczesnych konwersacji jednostek warstwy wyższej może być multipleksowanych na pojedynczym połączeniu.

Jedną z funkcji warstwy transportowej jest ustanowienie sesji zorientowanej połączeniowo pomiędzy podobnymi urządzeniami pracującymi w warstwie aplikacji. Aby rozpocząć transfer danych, obie aplikacje, zarówno wysyłająca jak i odbierająca, przekazują informację do swoich systemów operacyjnych, że zostanie zainicjowane połączenie. Połączenie zainicjowane przez jeden węzeł musi zostać zaakceptowane przez drugi węzeł. Moduły oprogramowania protokołu w dwóch systemach operacyjnych komunikują się ze sobą za pośrednictwem wysyłanych przez sieć wiadomości w celu zweryfikowania, czy transfer jest autoryzowany i czy obie strony są gotowe.

Zostaje ustanowione połączenie, a po zakończeniu wszystkich czynności synchronizacyjnych rozpoczyna się transfer danych. W czasie przesyłania oba urządzenia nadal się komunikują za pomocą oprogramowania protokołu w celu weryfikacji poprawności odbieranych danych.

Na rysunku zaprezentowane zostało typowe połączenie pomiędzy systemem wysyłającym i odbierającym. Pierwsze uzgodnienie jest żądaniem synchronizacji. Drugie i trzecie uzgodnienie potwierdzają początkowe żądanie synchronizacji, równocześnie synchronizując parametry połączenia w przeciwnym kierunku. Końcowy segment uzgodnienia jest potwierdzeniem służącym do poinformowania adresata, że obie strony są zgodne, iż zostało ustanowione połączenie. Po ustanowieniu połączenia rozpoczyna się transfer danych.

Przeciążenie podczas transferu danych może wystąpić z dwóch powodów:

  • Po pierwsze, szybki komputer może być w stanie generować ruch szybciej, niż sieć może go przekazywać.
  • Po drugie, jeśli wiele komputerów równocześnie wysyła datagramy do tego samego adresata, może on zostać przeciążony, mimo że problemu nie spowodował żaden pojedynczy komputer.

Gdy datagramy są odbierane przez bramę lub hosta szybciej niż mogą zostać przetworzone, są one tymczasowo przechowywane w pamięci. Jeśli ruch trwa dalej, w końcu zostaje wyczerpana pamięć hosta lub bramy, co powoduje odrzucanie kolejnych datagramów.

Zamiast dopuszczenia do utraty danych, proces TCP na odbierającym hoście może wysłać do nadawcy powiadomienie „nie gotowy”. Wskaźnik ten, działający jak znak stopu, sygnalizuje wysyłającemu, żeby przerwał wysyłanie danych. Gdy odbierający może obsłużyć dalsze dane, wysyła wskaźnik transportowy „gotowy”. Po odebraniu tego wskaźnika wysyłający może wznowić transmisję segmentów.

Na końcu transferu danych host nadający wysyła sygnał wskazujący koniec transmisji. Na końcu sekwencji danych host odbierający potwierdza koniec transmisji i połączenie jest zamykane.


Łącza WWW