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.