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 Headersclnt udp c7 2 3 5 Lab Using Wireshark to Examine a UDP DNS Capture ILMUdp Htmudp hUDP vs TCP opisudp cudp h (2)clnt udp c (2)PDI UDPUsing LabVIEW with TCP IP and UDPModyfikacje Win Xp Jak Wykryć, Który Program Korzysta Z Danego Portu Tcp Udpwięcej podobnych podstron