Moduł 6 - TCP.doc

(29 KB) Pobierz

Moduł 6

TCP

TCP (ang. Transmission Control Protocol - protokół kontroli transmisji) – strumieniowy protokół komunikacji między dwoma komputerami. Został stworzony przez Vintona Cerfa i Roberta Kahna.

 

Jest on częścią większej całości określanej jako stos TCP/IP. W modelu OSI TCP odpowiada warstwie Transportowej.

 

Charakterystyka protokołu

 

W przeciwieństwie do UDP, TCP zapewnia wiarygodne połączenie dla wyższych warstw komunikacyjnych przy pomocy sum kontrolnych i numerów sekwencyjnych pakietów, w celu weryfikacji wysyłki i odbioru. Brakujące pakiety są obsługiwane przez żądania retransmisji. Host odbierający pakiety TCP porządkuje je według numerów sekwencyjnych tak, by przekazać wyższym warstwom modelu OSI pełen, złożony segment.

 

Chociaż protokół definiuje pakiet TCP, to z punktu widzenia wyższej warstwy oprogramowania, dane płynące połączeniem TCP należy traktować jako ciąg oktetów. W szczególności – jednemu wywołaniu funkcji API (np. send()) nie musi odpowiadać wysłanie jednego pakietu. Dane z jednego wywołania mogą zostać podzielone na kilka pakietów lub odwrotnie – dane z kilku wywołań mogą zostać połączone i wysłane jako jeden pakiet (dzięki użyciu algorytmu Nagle'a). Również funkcje odbierające dane (recv()) w praktyce odbierają nie konkretne pakiety, ale zawartość bufora stosu TCP/IP, wypełnianego sukcesywnie danymi z przychodzących pakietów.

 

Charakterystyczny dla TCP jest moment nawiązania połączenia, nazywany ang. three-way handshake. Host inicjujący połączenie wysyła pakiet zawierający segment TCP z ustawioną flagą SYN (synchronize). Host odbierający połączenie, jeśli zechce je obsłużyć, odsyła pakiet z ustawionymi flagami SYN i ACK (acknowledge – potwierdzenie). Inicjujący host powinien teraz wysłać pierwszą porcję danych, ustawiając już tylko flagę ACK (gasząc SYN). Jeśli host odbierający połączenie nie chce lub nie może odebrać połączenia, powinien odpowiedzieć pakietem z ustawioną flagą RST (Reset). Prawidłowe zakończenie połączenia polega na wysłaniu flagi FIN.

 

Zastosowania

 

Aplikacje, w których zalety TCP przeważają nad wadami (większy koszt związany z utrzymaniem sesji TCP przez stos sieciowy) to m.in. HTTP, SSH, FTP czy SMTP/POP3 i IMAP4.

 

...
Zgłoś jeśli naruszono regulamin