[ Pobierz całość w formacie PDF ]
.8.3.1 User Datagram Protocol - UDP.Do spisu tresci tematu 88.3.1 Protokol komunikacyjny UDPSpis tresciWprowadzenie.Budowa naglowka protokolu UDP.Opis niektorych funkcji.Zrodla.Bibliografia.WprowadzenieProtokol datagramow uzytkownika (User Datagram Protocol - UDP)jest protokolem bezpolaczeniowym procesow uzytkownika ( w odroznieniuod protokolu TCP).Zostal on wymyslony w celu szybkiego przesylania pakietow danych, z wykozystaniemminimalnego mechanizmu ich opakowywania i kontroli.Jest on stosowany przezprotokol TFTP, ze wzgledu na jego prostote i maly rozmiar.Jest to protokol warstwy transportowej (w modelu OSI).W nizszejwarstwie kozysta on z protokolu IP, dlatego jest czesto opisywany laczniez 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 pozwalana jednoznaczne okreslenie nadawcy i adresata na podstawie unikalnych numerowportow.Jest to protokol zawodny.Nie zapewnia:Sekwencyjnosci transmisji.Miedzy systemami komunikaty przesylanesa niezaleznie od siebie, moga wiec dochodzic do adresata w dowolnej kolejnosci.Sterowania przeplywem.Jezeli odbiorca nie nadaza z odbioremkomunikatow 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 UDPNaglowek 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 funkcjiPonizsze 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 ktorawywoluje protokol TCP.Funkcja udp_getfrag():Wywoluje funkcje udp_check().Kopiuje pakiet wraz z naglowkiem do bufora, przygotowujac go do przeslaniaw 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 ), przekazujacobsluge pakietu, opatrzonego naglowkiem UDP, na nizszy poziom (IP).Jednymz parametrow wywolania jest wskaznik na funkcje udp_getfrag() lubudp_getfrag_nosum(), zalezy od pola no_check strykturysock ( struktura opisujaca gniazdo ).Funkcja udp_quene_rcv_skb():Laduje odpakowany pakiet do gniazda.Jezeli nie ma nan miejsca, to goporzuca.Funkcja udp_deliver():Praktycznie wywoluje udp_quene_rcv_skb().Funkcja udp_rcv():Wyodrebnia naglowek UDP z otrzymanego pakietu.Jezeli suma kontrolnabyla liczona ( >0 ), to ja sprawdza.Zatwierdza pakiet, tzn.sprawdzanp.czy jego dlugosc jest odpowiednia.Wywoluje udp_deliver().Nie zwraca komunikatu o niepowodzeniutransmisji.Odnotowuje to jedynie w statystykach.Zrodla/net/ipv4/udp.c/include/linux/udp.h/include/net/udp.hBibliografiaW.Richard Stevens: Programowanie zastosowan sieciowych w systemieUNIX.WNT 1995.Postel J.:(red.) User Datagram Protocol.RFC 768.Autor :Maciej Skorulski
[ Pobierz całość w formacie PDF ]