Tytuł referatu: Porównanie działania protokołów internetowych TCP i

Transkrypt

Tytuł referatu: Porównanie działania protokołów internetowych TCP i
Tytuł referatu: Porównanie działania protokołów internetowych TCP i UDP
Autor: Mateusz Alfut
Data opracowania: 27.02.2012
1. Protokół TCP
Jest to tak zwany protokół gwarantowanego przekazu danych, użytkownik ma pewność że pobierane
dane z serwera dotrą do niego bez błędów. Wszystkie dane przesyłane za pomocą TCP są wysyłane w
postaci segmentów.
Każdy segment posiada sumę kontrolną, używaną przez odbierającego do sprawdzenia, czy dane nie
zostały przekłamane. Jeśli dane są poprawne, odbierający wysyła do nadawcy pozytywne
potwierdzenie. Gdy odebrane dane są niepoprawne, zostają zignorowane.
Do segmentu jest dodawany pseudo nagłówek, odpowiednia liczba zerowych bitów na końcu, aby
segment stanowił wielokrotność 16 bitów i dla tak uzyskanego wyniku jest obliczana 16-bitowa suma
kontrolna. TCP nie wlicza do długości segmentu ani tego pseudo nagłówka, ani uzupełnienia długości
segmentu; nie są one też przesyłane. Przy obliczaniu sumy kontrolnej dodatkowo zakłada się, że
samo jej pole jest zerowe. Podobnie jak w przypadku innych sum kontrolnych TCP używa arytmetyki
16-bitowej i wykorzystuje uzupełnienie do jedności sumy obliczanej przy uzupełnianiu do jednego. U
odbiorcy odbywają się te same obliczenia, aby sprawdzić, czy segment przybył bez uszkodzeń. Dzięki
temu, że w segmencie są adresy zarówno nadawcy jak i odbiorcy, potwierdzenia są generowana
automatycznie i natychmiast odsyłane. W przypadku nie odebrania potwierdzenia w określonym
czasie serwer automatycznie wysyła go kolejny raz i tak aż do skutku.
Dzięki algorytmowi retransmisji ( ponownego wysyłania danych ) z adaptacją, TCP dostosowuje się do
zmiennych czasów oczekiwania na potwierdzenia. TCP zapisuje czas wysłania pakietu i czas odbioru
potwierdzenia, na ich podstawie ma próbkę czasu potrzebnego na wysłanie pakietu i odbiór
potwierdzenia, przy kolejnych próbach średnia ta jest korygowana na bieżąco. W ten sposób TCP
dostosowuje się do zmian w wydolności połączeń.
Zapychanie sieci pojawia się gdy powstaną zbyt duże opóźnienia między jakimkolwiek z odbiorców a
serwerem. Gdy już powstanie przeciążenie, powstają coraz większe opóźnienia, np. na routerze,
który musi kolejkować pakiety, które chce wysłać aż do momentu w którym będzie mógł wyznaczyć
ich trasy. W najgorszym przypadku liczba pakietów tak wzrośnie, że na routerze zabraknie miejsca i
pakiety będą tracone.
W celu uniknięcia przeciążenia standard TCP zaleca obecnie używanie dwóch metod: metody
powolnego startu i metody wielokrotnego zmniejszania. W celu kontrolowania przeciążenia TCP
utrzymuje kolejne ograniczenie zwane ograniczeniem na okno przeciążeniowe lub oknem
przeciążeniowym.
W stanie ustabilizowanym okno przeciążeniowe jest tej samej wielkości, co okno odbiorcy.
Zmniejszanie okna przeciążeniowego zmniejsza ruch, ruch który TCP wprowadza do połączenia. W
celu określenia rozmiaru okna przeciążeniowego TCP zakłada, że większość danych, które są gubione,
ginie w związku z przeciążeniem. TCP redukuje okno przeciążeniowe o połowę przy każdej utracie
danych, przy powtarzających się stratach okno zmniejsza się wykładniczo. Jeżeli pojawia się
podejrzenie, że powstało przeciążenie, TCP redukuje wykładniczo natężenie ruchu i częstość
retransmisji. Jeżeli tracenie danych trwa, to TCP ogranicza transmisję do jednego segmentu danych i
w dalszym ciągu podwaja czas opóźnienia przed retransmisją.
Do zwiększenia transmisji TCP wykorzystuje metodę zwaną powolnym startem. TCP ustala okno
przeciążeniowe na 1, wysyła początkowy segment i czeka. Gdy nadchodzi potwierdzenie, zwiększa
wielkość okna na 2, wysyła 2 segmenty i czeka. Gdy przychodzą potwierdzenia dla tych 2 segmentów,
każde z nich powoduje zwiększenie okna przeciążeniowego o 1, TCP może więc wysłać 4 segmenty.
Potwierdzenia tych segmentów spowoduje zwiększenie okna przeciążeniowego do 8. Po czterech
podróżach w obie strony TCP może wysłać 16 segmentów.
W celu uniknięcia zbyt szybkiego wzrostu rozmiaru okna i wywołania dodatkowego przeciążenia TCP
dodaje jeszcze jedno ograniczenie. Kiedy okno przeciążeniowe osiąga połowę swojego pierwotnego
rozmiaru sprzed przeciążenia, TCP wchodzi w stan unikania przeciążenia i zmniejsza szybkość
zwiększenia okna. W stanie unikania przeciążenia okno zwiększane jest o 1 tylko wtedy, gdy wszystkie
segmenty w oknie zostały potwierdzone.
Stosowanie TCP ma sens tylko w przypadku przesyłania danych które pod żadnym pozorem nie mogą
zostać zniekształcone i zależy nam bardziej na jakości tych danych niż na czasie w jakim mamy je
pobrać.
2. Budowa TCP
Model TCP jest podzielony na cztery warstwy współpracujące ze sobą:
Warstwa fizyczna ( dostępu do sieci )
Pierwszą warstwą jest warstwa fizyczna, jak można się sugerować nazwą jest ona związana z
„fizyczną częścią internetu” a mianowicie odpowiada ona za komunikację między internetem a
naszym komputerem. Nie jest to nic innego jak karta sieciowa lub modem i odpowiednie
oprogramowanie w naszym systemie operacyjnym które umożliwia tą komunikację.
Warstwa internet
Jest to można powiedzieć szkielet internetu, najważniejsza ale prosta warstwa. Zajmuje się
przerzucaniem danych z jednego komputera do drugiego. W tej warstwie jeszcze nie są te dane
kontrolowane co do jakości mimo iż jest to część TCP. W skład tej warstwy wchodzą trzy mniejsze
protokoły: IP ( internet Protocol ) odpowiedzialny za transport danych, ICMP ( internet control
massage protocol ) i IGMP ( internet group management protocol ) odpowiedzialne za ustalanie
„trasy” między serwerem a klientem.
Warstwa transportowa
W tej warstwie kontrolowane są przesyłane pakiety, każdy fragment danych jest umieszczany w
pakiecie który zawiera parametry o nadawcy, adresacie, rodzaju przesyłanych danych. Ta warstwa
jest odpowiedzialna za to aby przesyłane dane dotarły do odbiorcy bez żadnych zniekształceń,
dokładniej jest za to odpowiedzialny mechanizm potwierdzeń który wymusza od odbiorcy wysłanie
potwierdzenia ze odebrał dane w idealnym stanie, jeśli go nie otrzyma wysyła dane kolejny raz aż do
skutku.
Warstwa aplikacji
Jest to interfejs pozwalający użytkownikowi korzystanie z usług sieciowych. Ta warstwa jest
bezpośrednio wykorzystywana przez przeglądarki www, programy pocztowe, chaty.
3. UDP
UDP ( user datagram protocol ) jest to protokół który obejmuje warstwę transportową. W
przeciwieństwie do TCP w przypadku UDP nie mamy żadnej kontroli nad tym w jakim stanie dotrą do
nas dane pobierane z serwera, co więcej nie mamy nawet pewności że w ogóle do nas dotrą. Przy
dużym ruchu w sieci pakiety danych mogą po prostu zaginąć po drodze do odbiorcy co w żaden
sposób nie przeszkadza w wysyłanie kolejnych pakietów. Jest on głównie wykorzystywany do
serwerów multimedialnych w których zgubienie niewielkiej ilości pakietów jest praktycznie
niezauważalne dla zwykłego użytkownika, a już na pewno nieszkodliwe. Może co najwyżej objawiać
się to chwilowymi zakłóceniami takimi jak w radiu czy telewizji. Serwery takie jednak są dodatkowo
wyposażane w kanał sterujący który sprawdza jakość połączenia i dzięki niemu można ograniczyć
ilość przesyłanych pakietów przez np. zmniejszenie FPS ( klatek na sekundę ).

Podobne dokumenty