Junior
Czym jest protokół TCP?
sobes.tech AI
Odpowiedź od AI
TCP (Transmission Control Protocol) jest protokołem warstwy transportowej w stosie protokołów TCP/IP, zapewniającym niezawodną, połączeniową dostawę strumienia bajtów między aplikacjami.
Główne cechy TCP:
- Niezawodność: Gwarantuje dostarczenie wszystkich segmentów danych w odpowiedniej kolejności, ponownie wysyłając utracone lub uszkodzone segmenty. Używa potwierdzeń (ACK) i timeoutów.
- Połączeniowość: Przed przesłaniem danych ustanawia się logiczne połączenie między nadawcą a odbiorcą (trójfazowe uzgadnianie). Połączenie jest utrzymywane przez całą sesję.
- Kontrola przepływu: Reguluje szybkość przesyłania danych, aby nadawca nie przeciążał bufora odbiorcy. Używa okna odbiorczego.
- Kontrola przeciążenia: Zapobiega przeciążeniu sieci, dynamicznie dostosowując szybkość przesyłania danych w zależności od warunków sieciowych. Używa algorytmów takich jak Slow Start i Congestion Avoidance.
- Strumieniowa transmisja: TCP traktuje dane jako ciągły strumień bajtów, a nie jako oddzielne pakiety. Gwarantuje, że dane będą dostarczone w tej samej kolejności, w jakiej zostały wysłane.
- Dwukierunkowa komunikacja: Pozwala na jednoczesne przesyłanie danych w obu kierunkach po ustanowieniu połączenia.
Zastosowania TCP:
- HTTP/HTTPS (ruch sieciowy)
- FTP (transfer plików)
- SMTP (poczta elektroniczna)
- SSH (zdalne zarządzanie)
Porównanie z UDP:
| Cecha | TCP | UDP |
|---|---|---|
| Niezawodność | Wysoka (gwarancja dostarczenia) | Niska (bez gwarancji) |
| Połączeniowość | Tak (ustanowienie i utrzymanie) | Nie (transmisja bez ustanowienia) |
| Kolejność danych | Tak (dostawa w kolejności wysłania) | Nie (może dotrzeć w nieuporządkowanej kolejności) |
| Kontrola przepływu | Tak | Nie |
| Kontrola przeciążenia | Tak | Nie |
| Prędkość transmisji | Niższa (z powodu narzutu) | Wyższa |
| Przykłady | HTTP, FTP, SSH, SMTP | DNS, DHCP, VoIP, gry online |