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