Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)
Protokół komunikacyjny zapewniający niezawodność przesyłania danych w sieci IP Gwarantuje: Przyporządkowanie danych do konkretnego połączenia Dotarcie danych w tej samej kolejności w której były wysyłane Retransmisję zgubionych danych Wykrywanie duplikacji danych Wykrywanie przekłamań danych
Gwarantuje: Sterowanie tempem przepływu danych w zależności od możliwości nadawcy i odbiorcy (flow control) Sterowanie tempem przepływu danych w zależności od możliwości sieci (congestion control) TCP nie zapewnia: Zabezpieczenia danych przez podsłuchem przez osoby trzecie
TCP i IP praktycznie zawsze stosowane są razem Do tego stopnia że często określane są wspólną nazwą TCP/IP TCP musi być dostosowany do wersji IP, której używa Dlatego istnieją TCPv4 i TCPv6 Pakiety TCP podobnie jak pakiety IP są zwane datagramami ale nie należy ich ze sobą mylić!
TCP organizuje dane w połączenia Przed jakąkolwiek wymianą danych konieczne jest nawiązanie połączenia pomiędzy nadawcą i odbiorcą Każdy datagram TCP musi należeć do dokładnie jednego połączenia: Nie może być datagramów nie należących do żadnego połączenia Nie może być datagramów należących do więcej niż jednego połączenia
TCP w gruncie rzeczy tworzy pozorną sieć z komutacją połączeń na leżącej poniżej sieci IP z komutacją pakietów
Odpowiednikiem adresu TCP jest port Każde połączenie TCP łączy dokładnie dwa porty Połączenia i porty TCP są zawsze dwukierunkowe Czyli rozróżnienie pomiędzy nadawcą i odbiorcą jest umowne Dlatego rozróżnia się Maszynę, która inicjuje połączenie, zwaną klientem Maszynę, która odpowiada na połączenie, zwaną serwerem
Odpowiednikiem adresu TCP jest port Każde połączenie TCP łączy dokładnie dwa porty Połączenia i porty TCP są zawsze dwukierunkowe Czyli rozróżnienie pomiędzy nadawcą i odbiorcą jest umowne Dlatego rozróżnia się Maszynę, która inicjuje połączenie, zwaną klientem Maszynę, która odpowiada na połączenie, zwaną serwerem
Port TCP jest liczbą całkowitą z zakresu od 0 do 65535 Port podaje się po dwukropku po adresie IP lub nazwie DNS, np. www.amu.edu.pl:80 150.254.65.187:443
Niektóre porty mają przypisane usługi standardowe aczkolwiek nic nie zabrania zmiany tego przypisania przez administratora sieci/serwera Oficjalnego przypisania usługi do portu dokonuje IANA Port można (najczęściej) podać poprzez nazwę przypisanej do niego usługi standardowej www.amu.edu.pl:http 150.254.65.187:https
Standardowe numery portów najczęściej używanych usług: 20 i 21 FTP (File Transfer Protocol) 22 SSH (Secure Shell) 23 Telnet 25 SMTP (Simple Mail Transfer Protocol) wysyłanie poczty elektronicznej 80 HTTP (Hypertext Transfer Protocol) strony WWW
Standardowe numery portów najczęściej używanych usług: 110 POP3 (Post Office Protocol version 3) odbieranie poczty elektronicznej 143 IMAP (Internet Message Access Protocol) jw. 443 HTTPS (Hypertext Trasfer Protocol over SSL/TLS) szyfrowane strony WWW 993 IMAPS (Internet Message Access Protocol) - odbieranie poczty elektronicznej poprzez połączenie szyfrowane 995 POP3S (Post Office Protocol version 3 over SSL/TLS) jw.
Standardowe numery portów są stosowane wyłącznie po stronie serwera Po stronie klienta najczęściej stosowane są numery portów od 20000 w górę Port musi zostać otwarty przez konkretny program, a nie przez system operacyjny
Port musi zostać otwarty przez konkretny program, a nie przez system operacyjny Port nie może być równocześnie nie używany przez więcej niż jeden program Może natomiast zostać zamknięty i ponownie otwarty przez inny program Zakończenie działania programu zamyka wszystkie otwarte przez niego porty Czyli para adres:port jednoznacznie identyfikuje program wykorzystujący komunikację poprzez sieć komputerową
UDP User Datagram Protocol Protokół wymiany danych poprzez leżącą poniżej sieć IP Bezpołączeniowy nie wymaga nawiązywania połączenia Nie gwarantuje niczego ponadto co gwarantuje używany protokół IP W gruncie rzeczy jest prostą nakładką umożliwiającą bezpośrednie wykorzystanie IP przez aplikacje
UDP User Datagram Protocol Protokół wymiany danych poprzez leżącą poniżej sieć IP Bezpołączeniowy nie wymaga nawiązywania połączenia Nie gwarantuje niczego ponadto co gwarantuje używany protokół IP Używa portów analogicznie jak TCP ale porty UDP są innym portami niż porty TCP tzn. na jednym komputerze mogą być równocześnie otwarte porty 80/tcp i 80/udp
UDP User Datagram Protocol Kiedyś bardzo często używany ze względu na znacząco większą wydajności w stosunku do TCP W chwili obecnej używany sporadycznie głównie dla usług dla których konieczna jest kontrola czasu podróży pakietu, np. VOIP (Voice Over Internet Protocol) - telefonia internetowa RTP (Real-time Transport Protocol) streaming video