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

User Datagram Protocol

от Уикипедия, свободната енциклопедия

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.