User Datagram Protocol

Чөлөөт нэвтэрхий толь — Википедиагаас
Харайх: Удирдах, Хайлт

UDP - user datagram протоколын тухай[засварлах | edit source]

Зураг

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

Зураг 1.

TCP-ын холболт тогтолт[засварлах | edit source]

Сүлжээний тогтвортой найдвартай дамжууллын үйлчилгээг хэрэглэхийн тулд TCP хостууд нэг нь нөгөөтэйгээ холболттой ээлж дараалсан (connection oriented) холболтыг тогтоох ёстой. Үүний тулд “Гурван замын удирдлага” механизмын хэрэглэнэ.Энэ механизм нь:Хоёр төгсгөлийн холболтын синхрончлолыг хангаж  хоёуланг эхний дарааллын дугаартай болгодог.

1.      Хоёр тал өгөгдөл дамжуулахад бэлэн эсэхийг бататгах, хүлээн авах тал нэвтрүүлэх хэсгийн өгөгдөл дамжуулахад бэлэн болсныг мэдэж байх.

2.      Багцууд дамжихгүй, дахин дамжуулж байгаа, холболтын дараа дамжуулалт зогссоныг тодорхойлж өгөх үүрэгтэй.Хост бүхэн байтуудыг урсгал болгон дамжуулж харин хүлээн авах дарааллын дугаарыг санамсаргүйгээр сонгож авдаг.Энэ үед “Гурван замын удирдлага ” зарчим дараах зарчмаар өрнөнө.Мэдээллийн сүлжээний холболт тогтолт TCP холболтын үед SYN -ын плаг холбогдоход сегмент холболтын хүсэлт (RFC-богино битийн цуваа) үүснэ.Холболт тогтолт эхлэхэд Х үүсгүүр станц RFC X хүсэлтийн багцыг илгээж Y хүлээн авуур RFC Yхариу багцыг илгээж Х станцын TCP-ын удирдлагын хэсгийн SYN,ACK плагуудаар ACK X хүлээн авагдана.  X-эхний дарааллын дугаартай.Хоёр талд RFC битүүд TCP-ын форматуудад бүртгэгдсэнээр өгөгдөл дамжуулалт эхлэнэ. Холболт нь хугацааны тухайн агшинд  Х ба Y станцын фреймийн форматын зөвхөн хоёр портоор тогтоно. Хэрэв өгөгдсөн порт олон холболтыг дэмжсэн үед өөр өөр хос портоор холбогдоно.Эхний A хост холболтыг эхлэх дарааллын дугаар (X)-тэй багцыг дамжуулж багцын доторх SYN байт нь холболт  шаардсанаар тэмдэглэгдэнэ.Хоёр дахь хост эхний багцыг хүлээж аваад багцын фреймын дарааллын дугаарыг илэрхийлэх (SEQ=Y)  талбарыг тоолно. Мөн багцын ACK талбарыг шалгана.Жишээлбэл нь ACK=100 гэж хүлээж авбал 1-99 хүртэлх байтуудыг хүлээн авсан харин 100-р байтыг хүлээж байна гэж ойлгоно.Энэ аргачлалыг шууд урсгалын бататгал (forward flow acknowledgement)  протокол гэнэ.Эерэг бататгал багц ба дахин дамжуулалт.

UDP холболт

(Positive acknowledgement and retransmission (PAR))

Өгөгдлийн сүлжээний дамжууллын протоколын багцын дамжууллын найдваржилтад эх үүсвэр тал нэг багц дамжуулж хугацаа тогтоогчоо ажиллуулж эхлэн хүлээн авах талаас уг явуулсан багцын зөв эсвэл алдаатай хүлээн авсныг илтгэх бататгал богино багц мэдээг ирэх хугацаа тогтоогчийн хугацаанд дараагийн багцын дамжуулалтыг хийхгүй хүлээлтийн горимд  байна.Хугацаа тогтоогчийн хугацаа дуусахаас өмнө бататгал богино багц мэдээ ирэхгүй бол эх үүсвэр багцыг дахин дамжуулна.Энэ процессыг PAR процесс гэж нэрлэнэ. Урсгалын хяналтын протоколоор (III бүлэг) тодорхой авч үзсэн.Багц бүрд дарааллын дугаар олгосноор PAR протокол нь сүлжээ тасалдсана, дамжуулалт хийх үед үүсэж болох  хостод алга болсон ,эсвэл давхардсан багцуудыг хянах боломжийг өгдөг.Дарааллын дугааруудыг буцааж бататгал богино багцад тэмдэглэж дамжуулснаар тодорхойлогдоно.Эерэг бататгал буюу дахин дамжуулалт PAR протокол нь сувгийн өгөгдсөн зурвасын өргөнийг үр ашигүй ашигладаг дутагдалтай. . Яагаад гэвэл хост дараагийн багцаа дамжуулахаасаа өмнө хүлээлтийн горимд орж хугацааны хэт агшинд ганцхан багц дамжуулна.Сүлжээний хурд ихсэхэд уг протоколын гүйцэтгэл төгс болдог.

TCP багцын толгойн хэсгийн битүүд[засварлах | edit source]

Үүсгүүр  ба хүлээн авах хэсгийн порт (32бит)- Сүлжээний хоёр төгсгөлийн хэрэглэгчийн хооронд холбогдсон бодит сувгийн төгсгөлийн портыг тодорхойлно. Эх үүсгүүр ба хүлээн авуурын TCP протоколын үйлчилгээнүүдийг   хүлээн авах цэг. Нэгж портын дугаар 16 кодоос тогтоно.Дарааллын дугаар (32бит)- Тухайн мэдээн дэх өгөгдлийн эхний байтын дугаарыг 32 бит үсгээр заадаг. Холболт тогтож байх үед дарааллын дугаарын битүүдийн талбарыг 232 тооны битээр багцын фрейм дамжууллын анхны дарааллын дугаарыг тодорхойлно.Энд өгөгдлийн их багаас хамааруулж хэдэн фреймд хуваах боломж, хүлээн авах хэсэгт сэргээх үеийн жижиг багцуудын дугаарыг тодорхойлно.

Бататгал багцын дугаар (32 бит)-  Дараагийн хүлээн авах багцын байтын дугаар

Толгой битүүд (4 бит)- TCP толгой битүүд  32 битийн үсгийн тоогоор өгөгдлийн эхлэлийг заана.

Нөөц битүүд (6 бит)- Өгөгдлийн дамжуулалтад ашиглагдаагүй сул битүүд

Плагын битүүд (6 бит)- Холболт тогтоох,холболт таслах,синхрончлол ,бататгал гэх мэт үүрэгтэй удирдлагын битүүд. 6 битээр тодорхойлогдох ба плагын эдгээр битүүд 1 төлөвт байвал URG,ACK,PSH,RST,SYN,FIN бүгд идэвхтэй төлөвтэй Ж нь:Интернет сүлжээний    дамжууллын фреймийн форматын TCP протоколын плагийн бит FIN 1 битийн төлөвт бол нэвтрүүлэх станцаас өгөгдлийн дамжуулал хийгдэхгүй гэж хүлээн авах станцад ойлгогдоно.

Цонхны хэмжээ тодорхойлогч битүүд- Шилжих цонхтой урсгалын хяналтын протоколд  хүлээн авах цонхны хэмжээг тодорхойлно. Өөрөөр хэлбэл хүлээн авах хэсэг үүсгүүрээс  хэдэн багцыг дараалуулан хүлээж аваад  нэг бататгал дохиог хариу илгээх вэ гэдгийг тодорхойлно. Дарааллын дугаарын битүүд  гэж нэрлэгддэг.Алдаа хяналтын битүүд- Толгой битүүдэд алдаа гарсан эсэхийг тогтооно. Зарчим нь алдааны хяналтын протоколын зарчмаар алдааг илрүүлнэ. 

Байрлал тодорхойлогч битүүд- Багцын эхний байтуудыг заана.

Хувилбар тодорхойлогч битүүд- TCP протоколын янз бүрийн хувилбарыг заана. Зурагт  TCP/IP протоколын бүлгийн дэд протоколуудыг үзүүлсэн.

Мэдээллийн битүүд- Дээд түвшнөөс дамжигдаж буй өгөгдлийн битүүд хамаарагдана.

Нэг толгойн хэсгийн октетууд хамгийн багадаа 20 октет.Нэг октет 8 битээс тогтоно.TCP форматын  удирдлагын хэсгийн сүүлийн  хэсгийн урт янз бүр.Жишээ нь: Сегмент дарааллын дугаар 1000 бит, өгөгдлийн 600 октеттой бол дарааллын дугаар өгөгдлийн хэсгийн эхний октетод хамаарна. Логик дарааллын дараагийн сегмент 1600 бит дарааллын дугаартай болно.

TCP- протоколын шилжих цонхтой протоколын дамжуулал [засварлах | edit source]

Ерөнхий зарчим бүлэг 3-т үзсэн урсгалын хяналтын шилжих цонхтой протоколтой адилхан.Сүлжээний зурвасын өргөнийг үр ашигтай ашиглах үүднээс эх үүсгүүр хүлээн авуураас бататгал багцыг хүлээн авахаас өмнө хэд хэдэн багцуудыг дамжуулдаг зарчимтай.TCP-д хүлээн авах тал байтын урсгалаар илэрхийлэгдэх багц болгонд цонхны хэмжээг байтаар  тогтооно. Энэ нь тодорхой цонхны хэмжээтэй өгөгдлийн багцуудыг ямар ч бататгал хүлээн авахгүйгээр дамжуулна гэсэн үг.Бататгал багцыг бид үүсгүүр хэсгээс хүлээн авах хэсэг рүү дамжигдаж ирсэн багц мэдээллийг зөв хүлээн авсан эсэхийг тогтоогоод эргэж мэдэгдэх богино багцын мэдээлэл гэж ойлгоно. ACK богино багц бататгал багцтай үүрэг адилхан учир нэг ойлголтоор авч үзэж болно.Цонхны хэмжээ анх холболт тогтоох үед мэдэгдэх ба өгөгдөл дамжуулах чадвараас болж өөрчлөгдөх боломжтой. Цонхны хэмжээ 0 бол дамжуулах өгөгдөл байхгүй гэсэн үг.Жишээлбэл 1-100 хүртэл дараалсан байтуудыг дамжуулах шаардлагатай ба хүлээн авуур нь 10 байтын цонхтой гэж үзээд уг протоколын зарчмыг тайлбаръя.

Эх үүсгүүр буюу дамжуулагч эхний  10 байтын цонх бэлдэж явуулаад бататгалыг хүлээх горимд орно.Хүлээн авагч ACK=11 гэж хариу өгөх ба энэ нь 1-ээс 10-хүртэлх байтуудыг хүлээн авсан 11 -дахь байтыг хүлээж байгааг илэрхийлнэ.Мөн энэ багцандаа цонхны хэмжээ 10 гэдгийг заана.Үүсгүүр цонхоо 10 байтаар шилжүүлж 11-аас 21 хүртэлх багцуудыг дамжуулна. Хүлээн авуур ACK=21-ээр хариулна. Дараа нь үүсгүүр 21-31 хүртэлх байтуудыг дамжуулна. ACK=31 -аар хариулна. Хэрэв 21-31 байтуудын цуваанд алдаа гарсан бол NACK=31 (дахин дамжуулалт) богино багцыг дамжуулна. Энэ тохиолдолд үүсгүүр системийн хэрэглэж буй ARQ (бүлэг 3-д ) протоколын төрлөөс хамаараад 21-31 байтуудыг дахин дамжуулах  эсвэл алдаатай байт , битийг дахин дамжуулна.Энэ мэтчилэн цонхны хэмжээгээр дарааллын дугаарыг тодорхойлно. Шилжих цонхтой протоколын зарчим нь цонхны хэмжээ багцуудын тоогоор шилжсэнээр тодорхойлогдоно.Мөн хүлээн авуурын дотоод буфер дүүрсэн тохиолдолд ACK богино багцандаа 0 гэж өгч болох  энэ үед үүсгүүр ямар ч байтыг дамжуулж чадахгүй. Хүлээн авуур цонхны хэмжээ 0-ээс их утгатай багцын дамжуулалтыг хүлээнэ.UDP нь холболтгүй үйлчилгээ бүхий дамжууллын түвшний протокол.Интернет протоколын бүлэгт хамаарагдана.UDP протоколын үүрэг нь  IP ба дээд түвшний процессуудын хооронд интерфейс болно.UDP протоколын портууд нь төхөөрөмж дээр өрнөсөн хэрэглээний программуудыг хооронд нь ялгаж өгдөг.UDP протоколоор багц дамжуулах процессыг өгөгдлийн  найдваржилт чухал бус үед өөрөөр хэлбэл дээд түвшний протокол нь алдааны ба урсгалын хяналтыг хангаж байгаа үед маш тохиромжтой гэж үзнэ.UDP-г дараах зарим хэрэглээний түвшний протоколуудад дамжууллын протокол болгон ашигладаг.TCP шиг UDP  найдвартай,багцуудын урсгалын удирдлага юмуу алдааг засах функцуудыг IP-д хангаж өгдөггүй. Учир нь UDP маш энгийн, толгой битууд цөөхөн,TCP шиг сүлжээнд нэмэлт ачаалал үүсгэдэггүй  сайн талтай.NFC-Network File System, SNMP-Simple Network Management Protocol, DNS-Domain Name System, TFTP-Trival File Transfer Protocol зэрэг протоколуудын хэрэгжилт нь UDP протоколоор зохицуулагддаг.UDP протколын багцын формат  4 талбараас тогтдог.UDP протокол нь IP протоколын дамжуулалд портын хаяглалыг нэмж өгдөг.

UDP-гийн шинж чанар нь дараах хэрэглээнд зохимжтой байдаг:

  • Transaction oriented буюу Шилжүүлэг хандлагат учраас Domain Name System, Network Time Protocol гэх мэт асуулт-хариултын чанартай протоколууд хэрэглэхэд тохиромжтой
  • Datagram ашигладаг тул IP tunneling, Remote Procedure Call, Network File System гэх мэт бусад протоколын загварыг гаргахад тохиромжтой
  • Энгийн учраас протоколын бүрэн стэк байхгүй DHCP, Trivial File Transfer Protocol гэх мэт протоколд тохиромжтой
  • Stateless буюу холболтын мэдээллээ хадгалдаггүй учраас клиентийн тоо өндөртэй мультмедиа урсгалын үйлчилгээ үзүүлэгч IPTV гэх мэт протоколд тохиромжтой
  • Дахин дамжуулалт хийдэггүй учраас Voice over IP, онлайн тоглоом, Real Time Streaming Protocol ашиглаж хийсэн протоколд тохиромжтой
  • Хоёр талт дамжуулалд өндөр гүйцэтгэлтэй ажилладаг, иймээс broadcast time, Routing Information Protocol гэх мэт service discovery, мэдээлэл солилцох протоколд тохиромжтой

Пакетийн бүтэц[засварлах | edit source]

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

UDP Header буюу толгой хэсэг
Offsets Октет 0 1 2 3
Октет Бит  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Source port Destination port
4 32 Length Checksum

Source port number[засварлах | edit source]

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

Destination port number[засварлах | edit source]

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

Length[засварлах | edit source]

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

Checksum[засварлах | edit source]

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

UDP-гийн ажиллагаа[засварлах | edit source]

Холболт үүсгэдэггүй шинж[засварлах | edit source]

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

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

Урсгал, алдааны удирдлага[засварлах | edit source]

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

Encapsulation ба Decapsulation[засварлах | edit source]

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

Queuing[засварлах | edit source]

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

Хэрэглээ[засварлах | edit source]

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

Мөн үзэх[засварлах | edit source]

Гадны холбоос[засварлах | edit source]

  • 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