Protokół UDP,TCP


Protokół UDP

Jest protokołem bezpołączeniowym(nie nawiązuje połączenia w trakcie przesyłania danych ). Host wysyłający segment UDP nie uzyskuje informacji zwrotnej o tym, czy dane dotarły do adresata. Szybkość przesyłania segmentów UDP wynika z niewielkiego narzutu (brak mechanizmów kontroli przepływu , retransmisji )Stosuje się do aplikacji dopuszczających utratę pewnej ilości danych np. aplikacje komunikacji multimedialnej ,wszelkie programy wykorzystujące wideokonferencje, przesyłanie strumieniowe dźwięku (VOIP), DNS oraz TFTP. Do wysyłania większej ilości danych wymagana jest segmentacja(podział danych na mniejsze porcje ).Segmenty te zwane są data gramami . Datagramy docierają do odbiorcy różnymi drogami w różnej kolejności .Jeśli kolejność jest istotna to aplikacja sama musi rozpoznać data gramy i ustawić je w odpowiedniej kolejności.

Protokół UDP wykorzystuje bardzo prosty format nagłówka który zawiera: port UDP nadawcy port UDP odbiorcy długość komunikatu UDP suma kontrolna UDP - pole to jest opcjonalne .

Protokół TCP

Jest protokołem połączeniowym z dodatkowym narzutem związanym z funkcją kontroli przepływu , niezawodności dostarczenia , dostarczenia w odpowiedniej kolejności . Aplikacje które korzystają

z tego protokołu to : przeglądarki internetowe , poczta , FTP itp.

Protokół TCP dzieli dane pochodzące z wyższych warstw na porcje zwane segmentami

Segmenty mogą dotrzeć do adresata w różnej kolejności. Mechanizm porządkowania segmentów umożliwia nadawanie im numerów sekwencyjnych, które następnie ułatwiają ponowne złożenie danych .Przy okazji dzielenia pakietów i przesyłania ich do niższej warstwy wyznaczana jest maksymalna wielkość segmentu - MSS

Cechy-Niezawodność - zanim host wyśle dane inicjowany jest proces utworzenia połączenia hostem docelowym .Po ustanowieniu połączenia host docelowy wysyła do hosta źródłowego potwierdzenie odebrania segmentu .Po potwierdzeniu źródło wie że dane dotarły , jeśli nie to po określonym czasie wysyłane są ponownie niepotwierdzone segmenty .Po zakończeniu komunikacji następuje zamkniecie sesji połączenia .

Retransmisja -Potwierdzane są dane dla ciągłej sekwencji bajtów .Jeśli brakuje jednego lub kilku segmentów to są potwierdzane segmenty stanowiące ciąg danych np. odebrano segmenty 1500 do 3000 oraz 3400 do 3500 numerem potwierdzenia byłby segment 3001 ponieważ segmenty o numerach od 3001 do 3399 nie zostały odebrane .

Jeśli źródło nie otrzyma potwierdzenia w określonym czasie to cofa się do ostatniego odebranego numeru potwierdzenia i ponownie wysyła dane .

Kontrola przepływu- Dzięki temu w sytuacji, gdy host docelowy lub łącze pozwala na szybszą transmisję następuje przesyłanie kilku segmentów w jednym pakiecie. W sytuacji odwrotnej, tzn. przy przeciążonym adresacie lub ograniczonej przepustowości łącza następuje zwolnienie transmisji poprzez przesyłanie mniejszej liczby segmentów lub pojedynczych segmentów.W nagłówku jest pole określające wielkość okna które to określa jaka ilość danych źródło może wysłać. Początkowo wielkość okna jest ustalana podczas uruchomienia sesji np. okno ustalone jest na 3000 gdy nadawca wyśle 3000 bajtów będzie czekał na potwierdzenie gdy je otrzyma wysyła następne 3000 .Gdy zasoby sieciowe są ograniczone protokół TCP zmniejsza okno tak aby następowały częstrze potwierdzenia odebranych segmentów .Jeśli host odbierający musi spowolnić szybkość transmisji wskutek ograniczenia pamięci bufora to w ramach potwierdzenia musi wysłaćDo hosta źródłowego mniejszą wartość wielkości okna .Nagłówek zawiera: Numer portu źródłowego, numer portu docelowego , numer sekwencyjny pakietu , numer sekwencyjny potwierdzenia - numer bajtu , który odbiorca spodziewa się otrzymać w następnej kolejności , długość nagłówka, flagi np URG - flaga oznaczająca, że dane zostały określone jako „pilne , rozmiar okna - informacja, którą wysyła odbiorca o ilości danych, które może przyjąć od nadawcy, suma kontrolna - liczba umożliwiająca sprawdzenie, czy nie została naruszona integralność danych , opcje , dane warstwy aplikacji.

Mechanizm uzgadniania trójstopniowego

Uzgadnianie trojfazowe

Ustanawianie połączenia TCP przebiega według poniższego scenariusza .Serwer musi być przygotowany na przyjęcie nadchodzącego połączenia. W tym celu zazwyczaj wywołuje funkcje: socket, bind i l i s t e n . Nazywa się to otwarciem biernym (ang. passive open) połączenia. Klient rozpoczyna otwarcie aktywne (ang. active open) połączenia, wywołując funkcję connect. To powoduje, ze oprogramowanie TCP klienta wysyła segment danych SYN zawierający początkowy numer kolejny danych, które ten klient będzie przesyłął przez to połączenie .Zazwyczaj w tym segmencie SYN nie przesyła się danych; zawiera on tylko nagłówek IP, nagłówek TCP i ewentualne opcje TCP Serwer musi potwierdzić przyjęcie segmentu SYN od klienta i wysłać własny segment

SYN, zawierający początkowy numer kolejny danych, które serwer będzie wysyłał przez to połączenie. Serwer wysyła w jednym segmencie SYN również potwierdzenie ACK (ang. acknowledgment). Klient musi potwierdzić przyjęcie segmentu SYN od serwera.

Ta wymiana komunikatów wymaga wysłania co najmniej trzech pakietów danych

i dlatego nazywa się je uzgadnianiem trójfazowym (ang. three-way handshake).

W protokole TCP podobnie jak w trakcie rozmowy telefonicznej następuje na początku proces uzgadniania. Protokół TCP w odróżnieniu od wcześniej przedstawianych stosuje w tym celu mechanizm synchronizacji zwany uzgadnianiem trójetapowym (ang. three way handshake). W skład tego procesu wchodzą następujące fazy:

1) Klient inicjuje połączenie poprzez wysłanie segmentu z ustawioną flagą w SYN (=1). Jednocześnie wysyłany jest w tym samym segmencie numer sekwencyjny pakietu o wartości `x' oraz rozmiar okna, który jest informacją dla serwera jakiej wielkości bufor został zarezerwowany (po stronie klienta) na segmenty przesyłane z serwera

0x01 graphic

2)Serwer odbiera pakiet. Po analizie flagi rozpoznaje, że jest to próba nawiązania połączenia. Serwer rejestruje zatem numer sekwencyjny `x', przydziela dla tego połączenia bufory . Odpowiedź będzie zawierała oprócz ustawionego bitu flagi SYN również ustawiony bit flagi ACK. Ustawione bity flag sygnalizują, że numer potwierdzenia jest brany pod uwagę. Serwer wysyła swój własny numer `y' w polu numer sekwencyjny oraz w polu numer sekwencyjny potwierdzenia wysyła wartość `x+1'. Wartość wpisana w to ostatnie pole informuje klienta, którą następną porcję bajtów oczekuje serwer. Dodatkowo serwer wysyła rozmiar okna. Wielkość ta informuje klienta o rozmiarze bufora, który został zarezerwowany po stronie serwera na segmenty, które będą przesyłane od klienta.

0x01 graphic

3)Klient odbiera segment inicjalizuje po swojej stronie bufor na segmenty pochodzące od serwera i na zmienne stanu tego połączenia. W ramach potwierdzenia odebrania segmentu od serwera wysyła pakiet z ustawioną wartością flagi ACK, wyzerowaną wartością pola SYN oraz w polu następny numer sekwencyjny wpisywana jest wartość `y+1'. Oznacza to, że połączenie zostało nawiązane i teraz klient oczekuje od serwera porcji bajtów od numeru `y+1'.

Po nawiązania we wszystkich przesyłanych segmentach jest ustawiona flaga ACK, która potwierdza fakt otrzymania porcji danych określonej w polu numer sekwencyjny.

Okno przesuwne

       Technika przesuwającego się okna lepiej wykorzystuje przepustowość sieci, gdyż umożliwia wysyłanie wielu pakietów przed otrzymaniem potwierdzenia. Przy pojedynczym wysyłaniu segmentów otrzymanie każdego z nich musi zostać potwierdzone przez adresata. Do tego czasu nadawca czeka z wysłaniem kolejnych segmentów.

0x01 graphic

host wysyła tyle segmentów ile wynosi rozmiar okna przesłany przez odległy komputer. . 0x01 graphic
Rozmiar okna wynosi w tym przypadku osiem segmentów. Oznacza to, że nadawca może wysłać osiem segmentów przed otrzymaniem potwierdzenia. Okno pozostaje „nieruchome” do momentu uzyskania potwierdzenia o otrzymaniu segmentów przez odbiorcę. Istotny jest przy tym fakt, że okno zostanie przesunięte dopiero, gdy zostanie otrzymane potwierdzenie o dotarciu segmentu o najniższym numerze w danej serii. I tak jak dotrze do nadawcy potwierdzenie o dotarciu pierwszego segmentu do adresata, to okno zostanie przesunięte o jedną pozycję w prawo. Po przesunięciu okna w prawo o jedną pozycję wysyłany jest kolejny segment, w tym przypadku 9. Podobnie będzie się realizowała procedura dla pozostałych segmentów. Gdyby się okazało, że nadeszły potwierdzenia otrzymania segmentów 2, 4,5,6,7,8,9, a nie nadeszło potwierdzenie otrzymania segmentu 3, to okno zostanie przesunięte tylko do początku segmentu 3. Wbudowane mechanizmy kontroli przesyłu zadbają o retransmisję zagubionego okna po upływie określonego czasu. Dla każdego niepotwierdzonego segmentu utrzymywany jest osobny zegar. Po upływie określonego czasu ponawiana jest transmisja zagubionego segmentu.



Wyszukiwarka

Podobne podstrony:
protokoły udp, tcp i ip LYFWNMBQCLZZAZFLMSCUM7PZGB5LLAGY42WZ7WY
78 Pakiety protokołów komunikacyjnych TCP IP i UDP IP Scharakteryzuj je
Protokoły końcowe UDP TCP RPC
protokół UDP
Protokół TCP IP, R03 5
Protokol TCP IP R08 5 id 834124 Nieznany
Protokół TCP IP, R12 5
Protokół TCP IP, R11 5
Bezpieczeństwo protokołów TCP IP oraz IPSec
Protokół TCP IP, R13 5
7 3 1 2 Packet Tracer Simulation Exploration of TCP and UDP Instructions
TCP i UDP
Protokół TCP IP, R09 5
PROTOKOŁY TCP 2
Protokół TCP IP nagłówki
PROTOKOŁY TCP
W12 Protokół TCP

więcej podobnych podstron