Направо към съдържанието

User Datagram Protocol

от Уикипедия, свободната енциклопедия
(пренасочване от UDP)

User Datagram Protocol (UDP) е минимален транспортен пакетен протокол, документиран в IETF RFC 768.

В семейството от TCP/IP протоколи UDP предоставя прост интерфейс между мрежовия протокол под него и приложните протоколи над него. UDP не гарантира доставката на данните: не се пази информация за изпратено съобщение, заради което UDP понякога се превежда и като Unreliable Datagram Protocol. UDP добавя към IP пакета единствено мултиплексиране на приложения (чрез номерата на портовете) и проверка на целостта на данните (чрез контролна сума).[1] В случай че е необходима надеждност на предаването, тя трябва да се реализира в потребителското приложение.

Строеж на UDP пакета в IP4

[редактиране | редактиране на кода]
+ Битове от 0 – 15 Битове 16 – 31
0 Изходен порт Порт на дестинацията
32 Дължина Контролна сума
64
Данни

Този строеж на пакета касае версия 4 на интернет протокола (IP v4). Заглавната част на UDP пакета се състои от 4 полета, от които две не са задължителни. Изходящият (source) и входящият (destination) порт са 16-битови полета, идентифициращи изпращащия и получаващия процеси. Тъй като UDP не пази междинно състояние и няма повторно изпращане на UDP пакети, изходящият порт не е задължителен; в такъв случай следва да е нула. След портовете се намира задължително 16-битово поле за дължина в байтове на UDP пакета (заглавие и данни). Така минималната дължина става 8 байта (големината на заглавието). Последното поле е 16-битова контролна сума върху заглавието и данните. Контролната сума също не е задължителна, но се използва почти винаги.

Приложенията, използващи UDP, трябва да толерират загуба на пакети, дублиране и дори размяна в последователността на пристигането им. Някои приложения като Trivial File Transfer Protocol може да добавят базови механизми за надеждно доставяне на данните в приложния слой, но най-често UDP се използва от приложения, които не изискват надеждна доставка, или такива, при които това пречи. Примери за приложения, които обикновено използват UDP, са Streaming media, мрежови игри в реално време и глас през IP (VoIP). Когато е необходима по-висока степен на надеждност, може да се използва TCP.

UDP няма механизми за избягване на задръствания, заради което общи механизми в самата мрежа се грижат да намалят ефекта на неконтролиран UDP трафик. С други думи, изпращащите UDP пакети не могат да установят дали не претоварват мрежата с трафика си. Когато това стане, мрежовото оборудване (рутерите) започват да редят пакетите в опашки до освобождаване на канал, по който да ги изпратят. Ако това не стане достатъчно бързо, част от пакетите се изхвърлят. Частично решение на този проблем е Datagram Congestion Control Protocol (DCCP), в който към UDP поток се добавя контролна информация, подпомагаща избягване на задръствания.

Въпреки че UDP трафикът в една обикновена мрежа често е само няколко процента, много ключови приложения използват UDP. Такива са например Domain Name System (DNS), Simple Network Management Protocol (SNMP), Dynamic host configuration protocol (DHCP) Routing Information Protocol (RIP).

  1. ↑ ((en)) Clark, M.P. (2003). Data Networks IP and the Internet, 1st ed. West Sussex, England: John Wiley & Sons Ltd.