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)

Podobne dokumenty