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