User Datagram Protocol

## UDP - user datagram протоколын тухай 
**User Datagram Protocol** буюу **UDP** нь компьютерийн сүлжээний тээвэрлэлтийн түвшний найдваргүй, холболтгүй нөхцөлд хэрэглэгддэг протокол юм. IP протоколын үйлчилгээг өргөжүүлж процессоос процесс руух холболт, бага зэргийн алдаа шалгалтыг гүйцэтгэдэг. UDP нь маш энгийн протокол бөгөөд процессууд хоорондоо найдваргүйгээр зурвас явуулахыг хүсвэл UDP протоколыг ихэвчлэн ашигладаг. Найдвартай байдал, байнгын холболт шаардлагатай үед TCP гэх мэт протоколыг ашигладаг.UDP IP давхарга заасан нь хоёроос үйлчилгээг үзүүлж байна. Энэ нэмэлт нь шалгалтын чадавхи мэдээллийн бүрэн бүтэн ирсэн гэдгийг нотлохын тулд өөр өөр хэрэглэгчийн хүсэлтийг ялгаж болон туслах портын дугаарыг олгодог. Харин UDP л пакетуудыг, энэ нь их бага зурвасын өргөн нэмэлт зардал болон хоцрогдол байна гэсэн үг илгээдэг. Харин пакетууд нь алдсан, хувь пакетууд нь илгээгч болон хүлээн авагчийн хооронд дундуур өөр өөр замыг улмаас, үр дүнд тулд гарч хүлээн авч болно. UDP нь хожимдол нь ийм тоглоомын, дуу, видео харилцаа холбоо, сөрөг ойлголт чанарт нөлөөлж байгаа ч зарим өгөгдлийн алдагдлаас зовох болно гэж чухал юм үзэж сүлжээний програмууд нь хамгийн тохиромжтой протокол юм. Зарим тохиолдолд, форвард алдаа залруулах арга нь зарим алдсан хэдий ч, аудио, видео чанарыг сайжруулахын тулд ашигладаг.
Найдвартай байдал, байнгын холболт шаардлагатай үед TCP протоколыг ашигладаг.TCP нь  бие даасан багц руу их хэмжээний өгөгдлийг багц зөрчсөн шалгаж ба алдагдсан пакетуудыг resending зөв дараалалд оруулах пакетуудыг жагсаах зэрэг үйлдлүүдийг үйлчилгээний улмаас интернэт холболт ихэнх нь ашиглаж зонхилох протокол болоод байна. Гэхдээ эдгээр нэмэлт үйлчилгээ нэмэлт өгөгдөл нэмэлт ачааллын хувьд нь зардлаар ирж, саатал хоцрогдол гэж нэрлэдэг

### Пакетийн бүтэц
UDP пакетын толгойн хэсэг нь 8 байт урттай.

### **Source port number** 
:Илгээгч дээр ажиллаж буй процессын портын хаяг. Урт нь 16 бит ба авах утгын хязгаар нь 0-65535 байна. Хэрвээ илгээгч нь клиент бол (клиент хүсэлт явуулахад) портын дугаар нь ихэнх тохиолдолд ephemeral port number байна. Илгээгч дээр ачаалж байгаа UDP нь энэ дугаарыг сонгосон байдаг. Хэрвээ илгээгч нь сервер бол портын дугаар нь ихэнх тохиолдолд well-known port number байна. 

### **Destination port number** 
:Хүлээн авагч дээр ачаалж байгаа процесын портын дугаар. Мөн 16 бит урттай. Хэрвээ хүлээн авагч нь сервер бол well-known port  number, клиент бол ephemeral port number байна. 

#### **Length** 
:Хэрэглэгчийн пакетын толгой хэсэг, өгөгдлийн хэсгийн нийлбэр. Хамгийн багадаа 8 байт (өгөгдөл байхгүй, зөвхөн толгой хэсэг).

#### **Checksum** 
:Checksum нь хэрэглэгчийн пакетийн (толгой хэсэг болон өгөгдлийн хэсэг хоёулангийн) алдааг илрүүлдэг.

## UDP-гийн ажиллагаа
### Холболт үүсгэдэггүй шинж
UDP протоколын connectionless буюу холболт үүсгэдэггүй үйлчилгээний гол санаа нь UDP-гээр илгээгдсэн пакет бүр нь бусад пакетуудаасаа үл хамаарна. Ингэхдээ илгээж буй, хүлээн авч буй талууд нь ижилхэн байсан ч хоорондоо хамааралгүй байдаг. Хэрэглэгчийн datagram-уудыг дугаарладаггүй.

Түүнчлэн холболт үүсгэх, салгах процесс байдаггүй бөгөөд пакет бүр ялгаатай замуудаар дамжиж болно. Холболт үүсгэхгүй байхын тэг сул тал нь холболтын үед дамжуулж байгаа мэдээллийг урсгал байдлаар дамжуулж болохгүй бөгөөд пакет бүрд таарах байдлаар жижиг хэсгүүдэд задлан дамжуулах ёстой.

### Урсгал, алдааны удирдлага
UDP-д урсгалыг зохицуулах механизм байдаггүй ба хүлээн авагч нь ирж байгаа бүх зурвасыг хүлээн авч чадалгүй overflow үүсэх боломж байдаг. Checksum ашиглахаас өөр алдааны удирдлагын механизм байдаггүй. Өөрөөр хэлбэл зурвас нь дамжуулах дунд алдагдсан, эсвэл дахин дамжуулалт хийгдсэнийг илгээгч мэдэх боломжгүй. Хүлээн авагч нь checksum-г шалгаж алдаатай гэж үзвэл илгээгчид мэдэгдэхгүйгээр шууд хаядаг.

### Encapsulation ба Decapsulation
Процесс хооронд мессеж дамжуулахын тулд IP протоколын пакет руу зурвасуудыг багцалж, задалдаг.

### Queuing 
UDP ашиглан сүлжээгээр мэдээлэл дамжуулахын тулд процесс нь UDP порттой байх ба энэхүү порттой холбогдсон орох, гарах дараалал буюу queue байдаг. UDP нь queue-г ашиглан IP протоколтой харилцаж, зурвасыг авч, хийдэг.

## Хэрэглээ
*Урсгал, алдааны удирдлага хэрэггүй процесст хэрэглэгдэнэ. FTP зэрэг их хэмжээний өгөгдөл дамжуулдаг протоколд хэрэглэгддэгүй.
*Өөртөө урсгал, улдааны удирдлагатай процесст тохиромжтой. Жишээ нь TFTP-н дотоод ажиллагаанд энэ 2 удирдалаг байдаг тул UDP тохиромжтой
*Multicasting-д тохиромжтой. UDP-д multicasting байдаг ч TCP-д байхгүй
*SNMP зэрэг менежмэнтийн процесст хэрэглэгдэнэ.
*RIP зэрэг протоколд хэрэглэнэ.

## Мөн үзэх 
*TCP, UDP порт дугаарын жагсаалт

## Persian.      F⅔334 ir
* RFC 768 – User Datagram Protocol
* RFC 2460 – Internet Protocol, Version 6 (IPv6) Specification
* RFC 2675 – IPv6 Jumbograms
* RFC 4113 – Management Information Base for the UDP
* RFC 5405 – Unicast UDP Usage Guidelines for Application Designers