TCP
Z Wikipedii
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.
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.
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.
[edytuj] Opis nagłówka TCP
|
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- RFC 793: Transmission Control Protocol
- Opis protokołu TCP w języku angielskim
Warstwa aplikacji
ADSP • APPC • AppleTalk • AFP • DAP • DLC • DNS(53) • ed2k • FTAM • FTP(20,21) • HTTP(80) • HTTPS(443) • IMAP(143) • IRC(194,529) • Named Pipes • NCP(524) • NetBIOS(137,138,139) •
NWLink • NBT • NNTP(119) • NTP(123) • PAP • POP3(110) • RPC • SNMP(161,162) • SMTP(25) • SMB • SSL/TLS • SSH(22) • TDI • Telnet(23) • X.400 • X.500 • XDR • ZIP
(Cyfry w nawiasach oznaczają numery portu)
Warstwa transportowa
AEP • ATP • NBP • NetBEUI • RTMP • RTP • SPX • TCP • UDP
Warstwa sieciowa
ARP • IP • ICMP • IPsec • NAT • NWLink • NetBEUI • DDP
Warstwa dostępu do sieci
10BASE-T • 802.11 WiFi • ADSL • Ethernet • EtherTalk • Fibre Channel • ISDN • LocalTalk • NDIS • ODI • PPP • RS-232 •
SLIP • Token Ring • TokenTalk • V.90