UDP (3)


8.3.1 User Datagram Protocol - UDP. Do spisu tresci tematu 8 8.3.1 Protokol komunikacyjny UDP Spis tresci Wprowadzenie. Budowa naglowka protokolu UDP. Opis niektorych funkcji. Zrodla. Bibliografia. Wprowadzenie Protokol datagramow uzytkownika (User Datagram Protocol - UDP) jest protokolem bezpolaczeniowym procesow uzytkownika ( w odroznieniu od protokolu TCP). Zostal on wymyslony w celu szybkiego przesylania pakietow danych, z wykozystaniem minimalnego mechanizmu ich opakowywania i kontroli.Jest on stosowany przez protokol TFTP, ze wzgledu na jego prostote i maly rozmiar. Jest to protokol warstwy transportowej (w modelu OSI).W nizszej warstwie kozysta on z protokolu IP, dlatego jest czesto opisywany lacznie z nim pod nazwa rodziny protokolow UDP/IP. Przed przekazaniem obslugi pakietu na nizszy poziom (IP),dane sa opakowywane, tzn. zostaja poprzedzone 8-mio bajtowym naglowkiem UDP. Naglowek ten pozwala na jednoznaczne okreslenie nadawcy i adresata na podstawie unikalnych numerow portow. Jest to protokol zawodny.Nie zapewnia: Sekwencyjnosci transmisji. Miedzy systemami komunikaty przesylane sa niezaleznie od siebie, moga wiec dochodzic do adresata w dowolnej kolejnosci. Sterowania przeplywem. Jezeli odbiorca nie nadaza z odbiorem komunikatow to zostaja one utracone. Potwierdzenia odioru.Czasu oczekiwania i ponowienia transmisji. Wykrywania duplikatow. Liczona jest jedynie suma kontrolna dla naglowka i danych ( ale nie zawsze ). Budowa naglowka protokolu UDP Naglowek UDP:  struct udphdr { unsigned short source; ( Source Port ) unsigned short dest; ( Destination Port ) unsigned short len; ( Lenght ) unsigned short check; ( Checksum ) }; Naglowek UDP ma rozmiar 8-mio bajtowy. Source Port - numer portu zrodlowego ( 16 bitow ). Destination Port - numer portu docelowego ( 16 bitow ). Lenght - dlugosc datagramu zawierajacego naglowek UDP i dane, ma wiec minimalna wartosc 8 ( 16 bitow ). Checksum - suma kontrolna naglowka i danych ( 16 bitow ). Naglowek zdefiniowany jest w pliku /include/linux/udp.h . Opis niektorych funkcji Ponizsze funkcje zdefiniowane sa w pliku /net/ipv4/udp.c . Funkcja udp_check(): Oblicza 16-to bitowa sume kontrolna dla naglowka udp i danych. Wywoluje funkcje sum_tcpudp_magic(). Jest to ta sama funkcja ktora wywoluje protokol TCP. Funkcja udp_getfrag(): Wywoluje funkcje udp_check(). Kopiuje pakiet wraz z naglowkiem do bufora, przygotowujac go do przeslania w warstwie sieciowej. Funkcja udp_getfrag_nosum(): Dzialanie jak wyzej, ale bez wywolania funkcji udp_check(). Funkcja udp_send(): Wypelnia strukture ufh ( typu udpfakehdr ) zawierajaca naglowek UDP. Wywoluje funkcje ip_bulid_xmit() ( /net/ipv4/ip_output.c ), przekazujac obsluge pakietu, opatrzonego naglowkiem UDP, na nizszy poziom (IP).Jednym z parametrow wywolania jest wskaznik na funkcje udp_getfrag() lub udp_getfrag_nosum(), zalezy od pola no_check stryktury sock ( struktura opisujaca gniazdo ). Funkcja udp_quene_rcv_skb(): Laduje odpakowany pakiet do gniazda. Jezeli nie ma nan miejsca, to go porzuca. Funkcja udp_deliver(): Praktycznie wywoluje udp_quene_rcv_skb(). Funkcja udp_rcv(): Wyodrebnia naglowek UDP z otrzymanego pakietu. Jezeli suma kontrolna byla liczona ( >0 ), to ja sprawdza. Zatwierdza pakiet, tzn. sprawdza np. czy jego dlugosc jest odpowiednia. Wywoluje udp_deliver(). Nie zwraca komunikatu o niepowodzeniu transmisji. Odnotowuje to jedynie w statystykach. Zrodla /net/ipv4/udp.c /include/linux/udp.h /include/net/udp.h Bibliografia W. Richard Stevens: Programowanie zastosowan sieciowych w systemie UNIX. WNT 1995. Postel J.:(red.) User Datagram Protocol. RFC 768. Autor :Maciej Skorulski

Wyszukiwarka

Podobne podstrony:
udp c (2)
UDP ICMP Headers
clnt udp c
7 2 3 5 Lab Using Wireshark to Examine a UDP DNS Capture ILM
Udp Htm
udp h
UDP vs TCP opis
udp c
udp h (2)
clnt udp c (2)
PDI UDP
Using LabVIEW with TCP IP and UDP
Modyfikacje Win Xp Jak Wykryć, Który Program Korzysta Z Danego Portu Tcp Udp

więcej podobnych podstron