User Datagram Protocol
OSI модел |
---|
1. Физически слой |
2. Канален слой |
3. Мрежов слой |
4. Транспортен слой |
5. Сесиен слой |
6. Представителен слой |
7. Приложен слой |
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).
Източници
[редактиране | редактиране на кода]- ↑ ((en)) Clark, M.P. (2003). Data Networks IP and the Internet, 1st ed. West Sussex, England: John Wiley & Sons Ltd.