DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PROTOKOŁY TCP I UDP WSTĘP DO SIECI INTERNET Kraków, dn. 12 grudnia 2016 r.
PLAN TCP: cechy protokołu schemat nagłówka znane numery portów UDP: cechy protokołu typy komunikatów Porównanie protokołów TCP i UDP
PROTOKÓŁ TCP
PROTOKÓŁ TCP - CECHY podstawowy protokół warstwy transportowej odpowiada za: nawiązanie i zakończenie połączenia transportowego zapewnienie niezawodności przekazu danych potwierdzenia retransmisje sprawdzanie sum kontrolnych odtwarzanie kolejności danych kasowanie duplikatów sterowanie przepływem (ang. flow control) TCP doczekało sie wielu wersji przez lata, które głównie poprawiały jego wydajność
NAGŁÓWEK PROTOKOŁU TCP dane nagłówek 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe)
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Porty źródłowy i docelowy 16-bitowe numery identyfikujące porty (aplikacje) na urządzeniach wraz z adresami IP jednoznacznie identyfikują połączenie
NUMERY PORTÓW IP: A port:3545 IP: A port:80 IP: B serwer WWW IP: B port: 80 Port TCP nr 80 to standardowy port usługi www
ZNANE NUMERY PORTÓW Numer portu Aplikacja 20 FTP -- Data 21 FTP -- Control 22 SSH Remote Login Protocol 23 Telnet 25 Simple Mail Transfer Protocol (SMTP) 53 Domain Name System (DNS) 69 Trivial File Transfer Protocol (TFTP) 80 HTTP Zakres od 0 do 1023 to tzw. well-known ports
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Numer sekwencyjny - identyfikuje bajt w strumieniu danych, który jest pierwszym bajtem w przesyłanym segmencie numer ten po osiągnięciu wartości 2 32 1 rozpoczyna sie znowu od zera
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Numer potwierdzenia zawiera kolejny numer sekwencyjny, którego nadejścia spodziewa sie wysyłający potwierdzenie wykorzystywane są potwierdzenia piggybacked
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Długość nagłówka długość nagłówka oznaczająca liczbę 32 bitowych wierszy typowy rozmiar bez opcji to 5 (20 bajtów)
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Zarezerwowane do późniejszego użycia (3 bity)
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Flagi 9-bitowa informacja/polecenie dotyczące bieżącego segmentu
FLAGI Poszczególne flagi oznaczają: NS, CWR, ECE flagi związane z informowaniem o przeciążeniach w sieci URG informuje o istotności pola Wskaźnik Priorytetu ACK informuje o istotności pola Numer potwierdzenia PSH wymusza przesłanie pakietu RST resetuje połączenie (wymagane ponowne uzgodnienie sekwencji) SYN synchronizuje kolejne numery sekwencyjne FIN oznacza zakończenie przekazu danych
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Szerokość okna - informacja o tym, ile jeszcze danych może aktualnie przyjąć odbiorca
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Suma kontrolna liczona dla danych jak i nagłówka weryfikowana po stronie odbiorczej
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Wskaźnik priorytetu wskazuje na ostatni bajt w przesyłanym segmencie, który ma status urgent pole jest istotne tylko gdy flaga URG jest ustawiona
NAGŁÓWEK PROTOKOŁU TCP 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) Opcje - może określać np. maksymalną długość segmentu, często określa również współczynnik rozmiaru okna oraz znaczniki czasu wykorzystywane przy pomiarze czasu dostarczania pakietu
PRZYKŁADY ZASTOSOWANIA TCP transfer plików HTTP (www) FTP e-mail
PROTOKÓŁ UDP
PROTOKÓŁ UDP - CECHY protokół warstwy transportowej jest protokołem zawodnym, tzn. nie chroni przed: zmianą kolejności pakietów gubieniem pakietów duplikacją pakietów siła tego protokołu jest jego prostota znajduje sie nad protokołem IP, dlatego sam nie musi wiele robić
NAGŁÓWEK PROTOKOŁU UDP 0 15 16 31 Port źródłowy Port docelowy Długość Suma kontrolna Porty źródłowy i docelowy 16-bitowe numery identyfikujące porty (aplikacje) na urządzeniach wraz z adresami IP jednoznacznie identyfikują połączenie
NAGŁÓWEK PROTOKOŁU UDP 0 15 16 31 Port źródłowy Port docelowy Długość Suma kontrolna Długość długość nagłówka i danych wyrażona w bajtach
NAGŁÓWEK PROTOKOŁU UDP 0 15 16 31 Port źródłowy Port docelowy Długość Suma kontrolna Suma kontrolna liczona dla danych jak i nagłówka weryfikowana po stronie odbiorczej jest opcjonalna dla IPv4 (ustawiona na zero) i obowiązkowa dla IPv6
PRZYKŁADY ZASTOSOWANIA UDP transmisja dźwięku transmisja video gry on-line DHCP TFTP DNS
PORÓWNANIE TCP I UDP #1 Sposób nawiązania połączenia TCP połączeniowy UDP bezpołączeniowy Niezawodność TCP niezawodny Kolejność segmentów TCP zachowana Nagłówek TCP 20+ bajtów UDP zawodny UDP może ulec zmianie UDP 8 bajtów
PORÓWNANIE TCP I UDP #2 Potwierdzenia TCP przesyłane UDP brak Sterowanie transmisją (prędkość) TCP TAK Stracone dane TCP retransmisje Sposób traktowania danych TCP strumieniowy UDP brak UDP brak UDP segmentowy
PODSUMOWANIE Struktura nagłówków protokołów TCP i UDP Numery portów Przykłady zastosowań protokołów TCP i UDP Podobieństwa i różnice pomiędzy TCP i UDP
Dziękuję za uwagę Kontakt: robert.wojcik@kt.agh.edu.pl