Protokół kontroli transmisji (TCP)

Protokół kontroli transmisji (TCP) jest najpopularniejszym protokołem stosowanym w Internecie. Jest to połączenie zorientowane na połączenie, co oznacza, że dane mogą być przesyłane dwukierunkowo po nawiązaniu połączenia.[1] Protokół kontroli transmisji jest częściej stosowany niż protokół UDP (User Datagram Protocol). W przeciwieństwie do UDP, zawiera on automatyczny system sprawdzania błędów, aby zapewnić, że każdy pakiet jest dostarczany zgodnie z wymaganiami. Z drugiej strony, Protokół Datagramu Użytkownika, z drugiej strony, nie zapewnia takiego systemu, który wymaga potwierdzenia, że transmisja pakietów zakończyła się sukcesem. To wbudowane sprawdzanie błędów, choć bardziej wydajne, sprawia, że jest wolniejsze niż UDP, ponieważ nadaje ono priorytet dokładnemu dostarczaniu danych pomiędzy systemami.

TCP jest zatem preferowany przy przesyłaniu większości typów danych, takich jak pliki i strony internetowe, w systemach sieciowych. Z drugiej strony, UDP jest bardziej idealna dla mediów online i streamingu, ponieważ nie wymaga, aby wszystkie dostarczane pakiety były funkcjonalne.[2]

Funkcjonalność

Protokół kontroli transmisji działa, gdy użytkownicy ładują stronę internetową do przeglądarki internetowej, co oznacza wysyłanie pakietów TCP z komputera na adres hosta strony internetowej. Pakiety te wysyłają prośbę o pobranie zawartości strony z serwera hosta, do którego użytkownik ma dostęp. Strumień pakietów TCP jest wysyłany do użytkownika lub urządzenia końcowego jako odpowiedź serwera WWW. Następnie przeglądarka internetowa jest odpowiedzialna za zszywanie tych pakietów, aby odczytać dane, które mają być wyświetlane, aby użytkownik mógł je zobaczyć. Gdy użytkownicy logują się na konkretnej stronie internetowej lub zamieszczają komentarze online, polegają na TCP. System polega nie tylko na wysyłaniu pakietów, ale także potwierdzaniu, że pakiety te są również odbierane. Gwarantuje to system numeracji.

Poprzez system otrzymanie nieprawidłowej odpowiedzi spowoduje ponowne wysłanie pakietów, aby upewnić się, że żądający odbiorcy otrzymają prawidłowe dane, o które proszą. Pakiety wysyłane w ramach TCP sprawiają, że połączenie jest bardziej niezawodne, ponieważ dane te są śledzone - co oznacza, że żadne dane nie są uszkodzone lub utracone podczas transportu. To jest powód, dla którego użytkownicy nadal mogą otrzymać kompletny i nieprzerwany plik nawet w czasach, gdy sieć doświadcza czkawki lub zakłóceń. W niektórych przypadkach, gdy odbiornik jest w trybie offline, komputer wyśle komunikat o błędzie, który stwierdza, że nie był w stanie komunikować się ze zdalnym hostem.[3]

Skutki

Protokół kontroli transmisji, jako jeden z najpowszechniej stosowanych protokołów w Internecie, nadal ma swoje zalety i wady, jak każdy inny stosowany protokół. Wciąż posiada potencjał optymalizacji i doskonalenia. Poniżej przedstawiamy kilka wad i zalet TCP zaobserwowanych podczas jego stosowania w Internecie.

Zalety

Jest niezawodny, ponieważ odbiór i potwierdzanie paczek jest zapewnione. Jest on również zorientowany na połączenie, co oznacza, że wymaga ustanowienia bezpiecznego kanału przed wysłaniem wiadomości.[4] Żadne paczki nie zostaną uszkodzone lub utracone podczas transportu, co oznacza, że otrzymasz to, o co poprosiłeś, tak jak o to poprosiłeś.

Wady

Wiadomo, że wydajność sieci bezprzewodowych jest niska. Wynika to przede wszystkim z faktu, że łącza bezprzewodowe mają tendencję do porzucania pakietów podczas tranzytu z powodu "szumu" na kanale radiowym, a zatłoczenie sieci jest wskaźnikiem utraty pakietów.[5] Ponieważ do dostarczenia wiadomości wymagany jest kompletny zestaw pakietów, może to spowodować krótkie opóźnienie w transmisji, gdy pakiety zostaną utracone w drodze, co skutkuje dłuższym czasem oczekiwania na załadunek i szybszym czasem zwłoki.

Porty i protokoły

Ponieważ jest zorientowany na połączenie, wymaga portów do łatwego transferu i transmisji danych i innych plików. Poniżej znajdują się niektóre z najbardziej popularnych protokołów i odpowiadających im portów używanych w TCP. Niektóre z nich są często wykorzystywane w lokalnych biurach, zapewniając dostępność bezpiecznego transferu danych i plików w sieciach korporacyjnych.

Protokół przesyłania plików (FTP RFC 959: Porty 20/21)

Jest to jeden z najczęściej stosowanych protokołów w Internecie, a nawet w sieciach prywatnych. Każdy, kto ma niewielką wiedzę na temat sieci może skonfigurować serwer FTP. Pozwoli to na łatwe przenoszenie plików z jednego systemu do drugiego. Jest to kontrolowane przez port TCP 21, podczas gdy portem transmisji danych jest port TCP 20.

Protokół transferu hipertekstu (RFC 2616: Port 80)

HTTP jest jednym z najbardziej powszechnie stosowanych protokołów w większości sieci i w Internecie. Jest to główny protokół używany przez przeglądarki internetowe i najczęściej wykorzystywany przez klientów na całym świecie.

Protokół transferu hipertekstu przez SSL/TLS (HTTPS RFC 2818: Port 443)

W połączeniu z HTTP, główną rolą HTTPS jest dostarczanie tych samych usług poprzez bezpieczne połączenie, które jest albo z Secure Sockets Layer albo Transport Layer Security.

Bezpieczna obudowa (RFC 4250-4256: Port 22)

Secure Shell (SSH) jest protokołem poziomu poleceń, który przede wszystkim zarządza używanymi urządzeniami sieciowymi. Jest to powszechnie stosowane jako alternatywa dla Telnetu, który nie zapewnia bezpiecznych połączeń.

Telnet (RFC 854 - Port 23)

W przeciwieństwie do Secure Shell, Telnet nie zapewnia bezpiecznego połączenia. W zasadzie zapewnia on niezabezpieczony. Ponieważ jest niezabezpieczony, większość urządzeń sieciowych niższego poziomu używa go zamiast SSH, który wymaga dodatkowego przetwarzania. Uczciwe ostrzeżenie, korzystanie z Telnetu w sieciach publicznych może pokazać Twoje dane uwierzytelniające do logowania na otwartej przestrzeni.

Protokół przesyłania poczty uproszczonej (SMTP - Port 25)

SMTP jest używany głównie dla dwóch funkcji. Korzystając z portu TCP 25, jest to głównie do przesyłania poczty (e-mail) ze źródła do miejsca przeznaczenia pomiędzy serwerami pocztowymi, jak również do użytkowników końcowych do wysyłania poczty elektronicznej do systemu mailingowego.[6]

Historia

Początkowo opracowywane jako część sieci badawczej przez United States Defense Advanced Research Projects lub DARPA, Protokoły Kontroli Przesyłu lub wcześniej znany jako Transmission Control Program został zaprojektowany i uruchomiony w 1974 roku przez naukowców Vinton Gray "Vint" Cerf i Robert Elliot Kahn. Później nazwano ich "Ojcami Internetu".[7] ARPAnet został następnie opracowany jako dojrzały system protokołów międzysieciowych z TCP jako głównym protokołem. Napisana w 1973 roku jest pierwszą wersją poprzednika nowoczesnego TCP. Został on zrewidowany i formalnie udokumentowany we Wniosku o uwagi 675 zatytułowanym Specyfikacja Programu Kontroli Transmisji Internetowej w grudniu 1974 roku.[8] Protokół kontroli transmisji jest jednym z najczęściej stosowanych protokołów wraz z protokołem internetowym. Od momentu powstania w 1974 r., wiele zmian, poprawek i innowacji za pośrednictwem Prośby o komentarze (RFC) przeszło do tego, co czyni je dzisiaj.


  1. https://www.diffen.com/difference/TCP_vs_UDP ↩︎

  2. https://techterms.com/definition/tcp ↩︎

  3. https://support.holmsecurity.com/hc/en-us/articles/212963869-What-is-the-difference-between-TCP-and-UDP- ↩︎

  4. https://www.itprotoday.com/strategy/tcp-vs-udp-ports ↩︎

  5. https://web.archive.org/web/20110503193100/http://academic.research.microsoft.com/Paper/3352358.aspx ↩︎

  6. http://www.pearsonitcertification.com/articles/article.aspx?p=1868080 ↩︎

  7. http://history-computer.com/Internet/Maturing/TCPIP.html ↩︎

  8. http://www.tcpipguide.com/free/t_TCPIPOverviewandHistory.htm ↩︎