User Datagram Protocol
OSI модел | |
---|---|
7. Приложен слой | |
NNTP • SIP • SSI • DNS • FTP • Gopher • HTTP • NFS • NTP • SMPP • SMTP • DHCP • SNMP • SSH • Telnet • Netconf • други... | |
6. Представителен слой | |
MIME • XDR • TLS • SSL | |
5. Сесиен слой | |
Named Pipes • NetBIOS • SAP • L2TP • PPTP | |
4. Транспортен слой | |
TCP • UDP • SCTP • DCCP • SPX | |
3. Мрежов слой | |
IP (IPv4, IPv6) • ICMP • IPsec • IGMP • IPX • AppleTalk • IS-IS • OSPF • RIP • BGP • IGRP • EIGRP | |
2. Канален слой | |
MAC адрес • ATM • SDLC • HDLC • ARP • CSLIP • SLIP • PLIP • IEEE 802.3 • Frame Relay • ITU-T G.hn DLL • PPP • X.25 • Суич | |
1. Физически слой | |
EIA/TIA-232 • EIA/TIA-449 • ITU-T V-Series • I.430 • I.431 • POTS • PDH • SONET/SDH • PON • OTN • DSL • IEEE 802.3 • IEEE 802.11 • IEEE 802.15 • IEEE 802.16 • IEEE 1394 • ITU-T G.hn PHY • USB • Bluetooth • Хъб | |
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.