User Datagram Protocol: Засвар хоорондын ялгаа

Content deleted Content added
Хуудас үүсгэв: "{{IPstack}} '''User Datagram Protocol''' буюу '''UDP''' нь компьютерийн сүлжээний OSI загвар|тээвэрлэлтийн түв..."
 
Uurchlulut
Мөр 1:
== UDP - user datagram протоколын тухай ==
{{IPstack}}
[[Файл:Udp1.jpg|left|thumb|Зураг]]
'''User Datagram Protocol''' буюу '''UDP''' нь [[компьютерийн сүлжээ]]ний [[OSI загвар|тээвэрлэлтийн түвшний]] найдваргүй, холболтгүй нөхцөлд хэрэглэгддэг протокол юм. [[Интернэт протокол|IP протоколын]] үйлчилгээг өргөжүүлж процессоос процесс руух холболт, бага зэргийн алдаа шалгалтыг гүйцэтгэдэг. UDP нь маш энгийн протокол бөгөөд процессууд хоорондоо найдваргүйгээр зурвас явуулахыг хүсвэл UDP протоколыг ихэвчлэн ашигладаг. Найдвартай байдал, байнгын холболт шаардлагатай үед TCP гэх мэт протоколыг ашигладаг.
'''User Datagram Protocol''' буюу '''UDP''' нь [[компьютерийн сүлжээ]]ний [[OSI загвар|тээвэрлэлтийн түвшний]] найдваргүй, холболтгүй нөхцөлд хэрэглэгддэг протокол юм. [[Интернэт протокол|IP протоколын]] үйлчилгээг өргөжүүлж процессоос процесс руух холболт, бага зэргийн алдаа шалгалтыг гүйцэтгэдэг. UDP нь маш энгийн протокол бөгөөд процессууд хоорондоо найдваргүйгээр зурвас явуулахыг хүсвэл UDP протоколыг ихэвчлэн ашигладаг. Найдвартай байдал, байнгын холболт шаардлагатай үед TCP гэх мэт протоколыг ашигладаг.UDP IP давхарга заасан нь хоёроос үйлчилгээг үзүүлж байна. Энэ нэмэлт нь шалгалтын чадавхи мэдээллийн бүрэн бүтэн ирсэн гэдгийг нотлохын тулд өөр өөр хэрэглэгчийн хүсэлтийг ялгаж болон туслах портын дугаарыг олгодог. Харин UDP л пакетуудыг, энэ нь их бага зурвасын өргөн нэмэлт зардал болон хоцрогдол байна гэсэн үг илгээдэг. Харин пакетууд нь алдсан, хувь пакетууд нь илгээгч болон хүлээн авагчийн хооронд дундуур өөр өөр замыг улмаас, үр дүнд тулд гарч хүлээн авч болно. UDP нь хожимдол нь ийм тоглоомын, дуу, видео харилцаа холбоо, сөрөг ойлголт чанарт нөлөөлж байгаа ч зарим өгөгдлийн алдагдлаас зовох болно гэж чухал юм үзэж сүлжээний програмууд нь хамгийн тохиромжтой протокол юм. Зарим тохиолдолд, форвард алдаа залруулах арга нь зарим алдсан хэдий ч, аудио, видео чанарыг сайжруулахын тулд ашигладаг.
Найдвартай байдал, байнгын холболт шаардлагатай үед TCP протоколыг ашигладаг.TCP нь  бие даасан багц руу их хэмжээний өгөгдлийг багц зөрчсөн шалгаж ба алдагдсан пакетуудыг resending зөв дараалалд оруулах пакетуудыг жагсаах зэрэг үйлдлүүдийг үйлчилгээний улмаас интернэт холболт ихэнх нь ашиглаж зонхилох протокол болоод байна. Гэхдээ эдгээр нэмэлт үйлчилгээ нэмэлт өгөгдөл нэмэлт ачааллын хувьд нь зардлаар ирж, саатал хоцрогдол гэж нэрлэдэг
[[Файл:85 pbx phone system voip udp vs voip tcp p398 f1 en.png|centre|thumb|500x500px|Зураг 1.]]
 
=== '''TCP-ын холболт тогтолт''' ===
Сүлжээний тогтвортой найдвартай дамжууллын үйлчилгээг хэрэглэхийн тулд 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 Connections.jpg|centre|thumb|527x527px|UDP холболт]]
(Positive acknowledgement and retransmission (PAR))
 
Өгөгдлийн сүлжээний дамжууллын протоколын багцын дамжууллын найдваржилтад эх үүсвэр тал нэг багц дамжуулж хугацаа тогтоогчоо ажиллуулж эхлэн хүлээн авах талаас уг явуулсан багцын зөв эсвэл алдаатай хүлээн авсныг илтгэх бататгал богино багц мэдээг ирэх хугацаа тогтоогчийн хугацаанд дараагийн багцын дамжуулалтыг хийхгүй хүлээлтийн горимд  байна.Хугацаа тогтоогчийн хугацаа дуусахаас өмнө бататгал богино багц мэдээ ирэхгүй бол эх үүсвэр багцыг дахин дамжуулна.Энэ процессыг PAR процесс гэж нэрлэнэ. Урсгалын хяналтын протоколоор (III бүлэг) тодорхой авч үзсэн.Багц бүрд дарааллын дугаар олгосноор PAR протокол нь сүлжээ тасалдсана, дамжуулалт хийх үед үүсэж болох  хостод алга болсон ,эсвэл давхардсан багцуудыг хянах боломжийг өгдөг.Дарааллын дугааруудыг буцааж бататгал богино багцад тэмдэглэж дамжуулснаар тодорхойлогдоно.Эерэг бататгал буюу дахин дамжуулалт PAR протокол нь сувгийн өгөгдсөн зурвасын өргөнийг үр ашигүй ашигладаг дутагдалтай. . Яагаад гэвэл хост дараагийн багцаа дамжуулахаасаа өмнө хүлээлтийн горимд орж хугацааны хэт агшинд ганцхан багц дамжуулна.Сүлжээний хурд ихсэхэд уг протоколын гүйцэтгэл төгс болдог.
 
=== '''TCP багцын толгойн хэсгийн битүүд''' ===
Үүсгүүр  ба хүлээн авах хэсгийн порт (32бит)- Сүлжээний хоёр төгсгөлийн хэрэглэгчийн хооронд холбогдсон бодит сувгийн төгсгөлийн портыг тодорхойлно. Эх үүсгүүр ба хүлээн авуурын TCP протоколын үйлчилгээнүүдийг   хүлээн авах цэг. Нэгж портын дугаар 16 кодоос тогтоно.Дарааллын дугаар (32бит)- Тухайн мэдээн дэх өгөгдлийн эхний байтын дугаарыг 32 бит үсгээр заадаг. Холболт тогтож байх үед дарааллын дугаарын битүүдийн талбарыг 2<sup>32</sup> тооны битээр багцын фрейм дамжууллын анхны дарааллын дугаарыг тодорхойлно.Энд өгөгдлийн их багаас хамааруулж хэдэн фреймд хуваах боломж, хүлээн авах хэсэгт сэргээх үеийн жижиг багцуудын дугаарыг тодорхойлно.
 
Бататгал багцын дугаар (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- протоколын шилжих цонхтой протоколын дамжуулал''' ===
Ерөнхий зарчим бүлэг 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-гийн шинж чанар нь дараах хэрэглээнд зохимжтой байдаг:
Line 10 ⟶ 51:
*''Хоёр талт дамжуулалд'' өндөр гүйцэтгэлтэй ажилладаг, иймээс broadcast time, Routing Information Protocol гэх мэт service discovery, мэдээлэл солилцох протоколд тохиромжтой
 
===Пакетийн бүтэц===
UDP пакетийн толгойн хэсэг нь 8 байт урттай.
 
Line 34 ⟶ 75:
| colspan="16"| Length|| colspan="16" style="background:#fdd;"| Checksum
|}
 
=== '''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]] нь хэрэглэгчийн пакетийн (толгой хэсэг болон өгөгдлийн хэсэг хоёулангийн) алдааг илрүүлдэг.
 
Line 75 ⟶ 120:
* RFC 4113 – Management Information Base for the UDP
* RFC 5405 – Unicast UDP Usage Guidelines for Application Designers
Э.Хандармаа J.IN12D047
 
[[Ангилал:Компьютерийн сүлжээ]]