Sieci komputerowe wykłady 10-11 Protokoły TCP i UDP rok ak. 2004/2005 Agata Półrola Katedra Informatyki Stosowanej UŁ polrola@math.uni.lodz.pl http://www.math.uni.lodz.pl/~polrola Adresowanie komunikatów Adresatem datagramów IP był konkretny komputer, identyfikowany poprzez adres IP Protokoły wy szej warstwy umo liwiaj rozró nienie mi dzy ró nymi programami czy u ytkownikami na danym komputerze Adresowanie komunikatów c.d. Systemy operacyjne s zazwyczaj wieloprogramowe wiele procesów jest wykonywanych równocze nie Zazwyczaj adresatem komunikatów nie jest proces, ale port Porty protokołów ka da maszyna posiada zbiór abstrakcyjnych punktów docelowych, zwanych portami protokołów porty protokołów identyfikowane s przez liczby całkowite dodatnie porty zazwyczaj s buforowane procesy korzystaj z portów Porty protokołów c.d. System operacyjny zawiera mechanizmy okre lania portów i dost pu do nich Ka da aplikacja negocjuje z systemem operacyjnym port którego u ywa do przesyłania komunikatów Porty protokołów c.d. Sposoby przypisywania numerów portów: centralny tzw. well-known ports numery portów s przyznawane centralnie, (najcz ciej przeznaczone dla serwerów konkretnych usług) dynamiczny numery portów przyznawane s aplikacjom lokalnie na danym komputerze Porty protokołów c.d. W celu skomunikowania si z aplikacj na odległym komputerze nale y zna : adres IP komputera numer portu docelowego Ka dy komunikat powinien przenosi numery portu ródłowego i docelowego (source & destination port) numer portu ródłowego jest wykorzystywany przy przesyłaniu odpowiedzi
Protokoły warstwy transportu U ywanymi w sieciach TCP/IP protokołami warstwy transportu s : UDP User Datagram Protocol TCP Transmission Control Protocol Umo liwiaj one przesyłanie danych mi dzy portami Protokół UDP Protokół UDP Wła ciwo ci UDP: Protokół bezpoł czeniowy Nie gwarantuje dostarczenia danych Porty UDP: cz numerów portów jest przyznawana centralnie (well-known ports), cz przypisywana dynamicznie komunikat UDP (zwany datagramem u ytkownika) zawiera numer portu ródłowego i docelowego Protokół UDP c.d. ramki Komunikat UDP jest przesyłany sieci w cz ci datagramu IP przeznaczonej na datagramu komunikat UDP w datagramie IP w ramce sieci fizycznej Protokół UDP c.d. Oprogramowanie UDP dokonuje przenoszenia danych mi dzy warstwami: zbiera datagramy UDP z ró nych aplikacji i przekazuje je IP do przesłania odbiera otrzymane datagramy od IP i przekazuje je odpowiednim aplikacjom (multiplexing / demultiplexing UDP) Rozró nianie mi dzy aplikacjami bazuje na mechanizmie portów protokołów Format komunikatów UDP ródłowy port UDP długo komunikatu UDP... docelowy port UDP suma kontrolna UDP numery portów 16-bitowe długo liczba oktetów datagramu UDP, razem z nagłówkiem i danymi. Minimalna warto 8, tzn. sam suma kontrolna opcjonalna; obliczana na podstawie datagramu UDP i jego pseudonagłówka Pseudo UDP zero adres IP nadawcy adres IP odbiorcy protokół (17) długo datagramu UDP Protokół TCP długo datagramu IP długo bez pseudonagłówka Suma kontrolna UDP pozwala sprawdzi, czy datagram UDP dotarł do wła ciwego adresata. Odbiorca datagramu wykorzystuje do obliczenia sumy kontrolnej adresy IP nadawcy i odbiorcy, które otrzymał w datagramie IP
Protokół TCP TCP (Transmission Control Protocol) jest kolejnym protokołem umo liwiaj cym przesyłanie danych mi dzy portami Porty TCP: cz numerów portów jest przyznawana centralnie (well-known ports), cz przypisywana dynamicznie komunikat TCP (zwany segmentem) zawiera numer portu ródłowego i docelowego Komunikat TCP jest przesyłany sieci w cz ci datagramu IP przeznaczonej na datagramu komunikat TCP w datagramie IP Wła ciwo ci TCP: protokół zorientowany poł czeniowo niezawodno przesyłania danych interfejs strumieniowy komunikacja w pełni dwukierunkowa transfer buforowany ramki w ramce sieci fizycznej Poł czenie TCP jest zdefiniowane przez par swoich punktów ko cowych, b d cych parami (host, port) Sposób zapewnienia niezawodno ci mechanizm tzw. pozytywnego potwierdzania z retransmisj (positive acknowledgement with retransmission) wymaga od odbiorcy skomunikowania si z nadawc przez odesłanie potwierdzenia nadawca przechowuje kopi wysłanego pakietu; je li w odpowiednim czasie nie otrzyma potwierdzenia, to retransmituje pakiet Strumieniowe przesyłanie danych i potwierdze jest efektywne dzi ki mechanizmowi przesuwaj cych si okien (sliding windows) mechanizm ten pozwala lepiej wykorzysta przepustowo sieci (mo na wysła wiele pakietów przed otrzymaniem potwierdzenia) Protokół TCP definiuje m.in: sposób nawi zywania i zamykania poł czenia format komunikatów TCP i potwierdze mechanizmy obsługi bł dów (jak zduplikowane czy zgubione pakiety)
Protokół TCP: poł czenie Poł czenie definiuje para ko ców (host, port) dany port TCP mo e by dzielony mi dzy kilka poł cze Oba ko ce poł czenia uzgadniaj, e chc rozmawia : z jednej strony wykonywane jest tzw. positive open program komunikuje si ze swoim systemem operacyjnym, informuje e b dzie przyjmował i dostaje numer portu TCP z drugiej strony active open request program komunikuje si ze swoim systemem operacyjnym informuj c, e chce nawi za połaczenie Moduły IP na obu ko cach komunikuj si z sob w celu ustanowienia poł czenia, którym b dzie mo na przesyła Protokół TCP: otwieranie poł czenia Nawi zanie poł czenia wymaga przesłania trzech komunikatów (three-way handshake) wysłanie SYN x odebranie segmentu SYN+ACK wysłanie ACK y+1 odebranie segmentu SYN wysłanie SYN y, ACK x+1 odebranie segmentu z ACK Protokół TCP: zamykanie poł czenia Zamykanie poł czenia równie jest wielostopniowe wysłanie FIN x odebranie segmentu z ACK odebranie FIN+ACK wysłanie ACK y+1 odebranie segmentu FIN wysłanie ACK x+1 program u ytkownika zamyka poł czenie wysłanie FIN y, ACK x+1 odebranie segmentu z ACK Format segmentu TCP port nadawcy port odbiorcy numer porz dkowy numer potwierdzenia dł. nagł. zarezerwow. bity kodu okno suma kontrolna wska nik. pilnych danych ew. opcje wypełnienie... Format segmentu TCP c.d. nr porz dkowy pozycja danych segmentu w strumieniu oktetów nadawcy nr potwierdzenia nr oktetu który nadawca spodziewa si! dosta w nast! pnej kolejno ci bity kodu okre laj zawarto i przeznaczenie segmentu okno rozmiar okna sugerowany odbiorcy komunikatu przez jego nadawc! " pozwala to dostosowa# rozmiar okna (a zatem liczb$ transmitowanych segmentów) do mo liwo% ci odbiorcy, np. do stopnia zapełnienia jego buforów Format segmentu TCP c.d. : bity kodu & URG zawarto pola wska' nik pilnych danych jest istotna & ACK pole nr potwierdzeniajest istotne & PSH segment z daniem wypchni! cia (wysłania segmentu TCP mimo e bufor jeszcze nie jest pełny) & RST resetowanie poł czenia & SYN synchronizacja numerów porz dkowych & FIN nadawca doszedł do ko( ca strumienia danych do wysłania Format segmentu TCP c.d. Chocia TCP jest protokołem strumieniowym, wa ne jest, aby mo na było przesyła poza głównym strumieniem transmisji, nie czekaj c a program na drugim ko cu poł czenia przyjmie wszystkie znajduj ce si w strumieniu TCP umo liwia okre lenie, e s pilne: przy transmisji pilno danych zaznacza si! bitem kodu URG; wska' nik pilnych danych okre la koniec takich danych w segmencie program odbiorcy powinien przej do trybu pilno ci i obsłu y otrzymane pilne Format segmentu TCP c.d. opcje umo liwiaj m.in. wynegocjowanie maksymalnego rozmiaru segmentów TCP przesyłanych w danym poł czeniu & nie wszystkie segmenty wysyłane podczas poł czenia musz mie ten sam rozmiar & zarówno zbyt małe, jak i zbyt du e segmenty prowadz do nieefektywno ci
Pseudo TCP Suma kontrolna TCP obliczana jest na podstawie segmentu i tzw. pseudonagłówka: zero adres IP nadawcy adres IP odbiorcy protokół (6) długo segmentu TCP umo liwia sprawdzenie, czy segment dotarł bez uszkodze( i do wła ciwego odbiorcy i retransmisja Poniewa TCP wysyła w segmentach o zmiennej długo ci i poniewa retransmitowane segmenty mog zawiera) wi cej danych ni segmenty pierwotne, wi c potwierdzenia nie mog odnosi) si do segmentów, tylko do oktetów Odbiorca musi by) w stanie zrekonstruowa) strumie oktetów nadawcy Potwierdzenie TCP okre la numer oktetu, który spodziewa si otrzyma) odbiorca (numer pierwszej dziury w rekonstruowanym strumieniu) (schemat skumulowanego potwierdzania) potwierdzanie łatwe i jednoznaczne zgubienie potwierdzenia nie musi powodowa retransmisji wada nadawca nie ma informacji o wszystkich poprawnie przesłanych danych Oprogramowanie TCP przesyłaj c ka dorazowo ustawia zegar. Je eli ustalony czas zostanie przekroczony zanim przyb dzie potwierdzenie, to s retransmitowane Potrzebna jest przy tym obsługa ró nych, zmieniaj cych si opó nie (oprogramowanie TCP obsługuje komunikacj w ró nych sieciach, ró nymi ł czami i na ró ne odległo ci) Zamiast stałego czasu oczekiwania na potwierdzenie stosuje si retransmisj z adaptacj : TCP ledzi aktualne opó nienia wyst puj ce w danym poł czeniu i dostosowuje do tego czas po jakim nast puje retransmisja jest to wykonywane niezale nie dla ka dego poł czenia * ledzenie poł czenia polega na szacowaniu tzw. RTT (round-trip time) czasu upływaj cego od wysłania danych do uzyskania potwierdzenia Na podstawie RTT kolejnych transmitowanych segmentów oblicza si rednie opó + nienie, a na jego podstawie czas po jakim nast puje retransmisja Obsługa przeci, e- sieci Przeci enia (congestions) maj zazwyczaj miejsce na routerach (gdy nie nad j one z obsług nadchodz cych pakietów) Routery likwiduj wówczas pakiety Je li reakcj na przeci enia byłaby retransmisja, to przeci enie by si zwi kszało TCP musi wi c reagowa na przeci enia zmniejszeniem intensywno ci transmisji Obsługa przeci, e- sieci c.d. Dwie metody reagowania na przeci enia: metoda powolnego startu metoda wielokrotnego zmniejszania
Metoda wielokrotnego zmniejszania dla ka dego poł czenia TCP pami ta rozmiar okna odbiorcy (rozmiar bufora proponowanego w potwierdzeniach) w celu kontroli przeci e( utrzymywane jest okno przeci eniowe okno przeci eniowe jest w normalnej sytuacji równe oknu odbiorcy; zgubienie segmentu powoduje zmniejszenie go o połow (a do osi gni cia minimalnego rozmiaru jednego segmentu) rozmiar bie cego okna nadawcy jest równy mniejszemu z powy szych dla segmentów pozostałych w oknie zwi! ksza si! wykładniczo czas po którym ma nast pi retransmisja Metoda powolnego startu Po wyj ciu ze stanu przeci enia (a tak e przy rozpoczynaniu ruchu w ramach nowego poł czenia) stosowana jest metoda powolnego startu: na pocz tku okno przeci eniowe ma rozmiar jednego segmentu rozmiar ten jest zwi! kszany o jeden segment po otrzymaniu potwierdzenia w przypadku gdy rozmiar okna przeci eniowego osi ga połow swojej warto. ci sprzed przeci enia, okno zwi kszane jest tylko wtedy, gdy wszystkie segmenty w oknie zostały potwierdzone (stan unikania przeci enia)