Sieci komputerowe Protokoły TCP i UDP Adresowanie komunikatów
Transkrypt
Sieci komputerowe Protokoły TCP i UDP Adresowanie komunikatów
Sieci komputerowe wykłady 10 - 11 Protokoły TCP i UDP rok ak. 2004/2005 Agata Półrola Katedra Informatyki Stosowanej UŁ [email protected] http://www.math.uni.lodz.pl/~polrola Adresowanie komunikatów Adresowanie komunikatów – c.d. 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 Porty protokołów 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 – 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 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. 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) Porty protokołów – c.d. dynamiczny numery portów przyznawane s aplikacjom lokalnie na danym komputerze 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 : Protokół UDP UDP – User Datagram Protocol TCP – Transmission Control Protocol Umo liwiaj one przesyłanie danych mi dzy portami Protokół UDP Protokół UDP – c.d. Wła ciwo ci UDP: Komunikat UDP jest przesyłany sieci w cz ci datagramu IP przeznaczonej na dane Protokół bezpoł czeniowy Nie gwarantuje dostarczenia danych komunikat UDP 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 Oprogramowanie UDP dokonuje przenoszenia danych mi dzy warstwami: nagłówek ramki dane w datagramie IP dane w ramce sieci fizycznej Format komunikatów UDP Protokół UDP – c.d. nagłówek datagramu ródłowy port UDP długo komunikatu UDP dane ....................... „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 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 nagłówek suma kontrolna – opcjonalna; obliczana na podstawie datagramu UDP i jego pseudonagłówka Pseudonagłówek UDP zero adres IP nadawcy adres IP odbiorcy protokół (17) długo datagramu UDP 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 Protokół TCP Protokół TCP – c.d. TCP (Transmission Control Protocol) jest kolejnym protokołem umo liwiaj cym przesyłanie danych mi dzy portami Porty TCP: Protokół TCP – c.d. Komunikat TCP jest przesyłany sieci w cz ci datagramu IP przeznaczonej na dane komunikat TCP Protokół TCP – c.d. Wła ciwo ci TCP: nagłówek datagramu nagłówek ramki dane w datagramie IP protokół zorientowany poł czeniowo niezawodno przesyłania danych interfejs strumieniowy komunikacja w pełni dwukierunkowa transfer buforowany dane w ramce sieci fizycznej Protokół TCP – c.d. Poł czenie TCP jest zdefiniowane przez par swoich punktów ko cowych, b d cych parami (host, port) Protokół TCP – c.d. Sposób zapewnienia niezawodno ci – mechanizm tzw. pozytywnego potwierdzania z retransmisj (positive acknowledgement with retransmission) Protokół TCP – c.d. Strumieniowe przesyłanie danych i potwierdze jest efektywne dzi ki mechanizmowi przesuwaj cych si okien (sliding windows) 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 mechanizm ten pozwala lepiej wykorzysta przepustowo sieci (mo na wysła wiele pakietów przed otrzymaniem potwierdzenia) 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 Protokół TCP – c.d. 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ł dane 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 dane Protokół TCP: zamykanie poł czenia Nawi zanie poł czenia wymaga przesłania trzech komunikatów (three-way handshake) wysłanie SYN x odebranie segmentu SYN wysłanie SYN y, ACK x+1 odebranie segmentu SYN+ACK odebranie segmentu z ACK wysłanie ACK y+1 Format segmentu TCP Zamykanie poł czenia równie jest wielostopniowe wysłanie FIN x odebranie segmentu FIN wysłanie ACK x+1 odebranie segmentu z ACK Protokół TCP: otwieranie poł czenia program u ytkownika zamyka poł czenie wysłanie FIN y, ACK x+1 odebranie FIN+ACK wysłanie ACK y+1 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 dane ...................................... odebranie segmentu z ACK 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. Format segmentu TCP – c.d. : bity kodu & & & & & & do stopnia zapełnienia jego buforów Format segmentu TCP – c.d. Chocia TCP jest protokołem strumieniowym, wa ne jest, aby mo na było przesyła dane poza głównym strumieniem transmisji, nie czekaj c a program na drugim ko cu poł czenia przyjmie wszystkie dane znajduj ce si w strumieniu TCP umo liwia okre lenie, e dane 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 dane 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. 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 Pseudonagłówek TCP Potwierdzanie i retransmisja Suma kontrolna TCP obliczana jest na podstawie segmentu i tzw. pseudonagłówka: adres IP nadawcy adres IP odbiorcy protokół (6) długo segmentu TCP zero Poniewa TCP wysyła dane 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 umo liwia sprawdzenie, czy segment dotarł bez uszkodze( i do wła ciwego odbiorcy Potwierdzanie i retransmisja – c.d. Potwierdzenie TCP okre la numer oktetu, który spodziewa si otrzyma ) odbiorca Potwierdzanie i retransmisja – c.d. (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 Potwierdzanie i retransmisja – c.d. 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 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 Oprogramowanie TCP przesyłaj c dane ka dorazowo ustawia zegar. Je eli ustalony czas zostanie przekroczony zanim przyb dzie potwierdzenie, to dane 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) Potwierdzanie i retransmisja – c.d. * 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 – 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)