RDP протокол

**Reliable Data Protocol** (RDP) үр ашигтай хост хяналт-шинжилгээ, хяналтын програм, ачих / демпингийн, алсын дибаг хийх гэх мэт ихэнх нь өгөгдлийн дамжуулал дэмжих зорилготой найдвартай тээврийн протокол юм. 

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

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

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

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

# Багцууд дамжихгүй, дахин дамжуулж байгаа, холболтын дараа дамжуулалт зогссоныг тодорхойлж өгөх үүрэгтэй.Хост бүхэн байтуудыг урсгал болгон дамжуулж харин хүлээн авах дарааллын дугаарыг санамсаргүйгээр сонгож авдаг. Энэ үед “Гурван замын удирдлага” зарчим дараах зарчмаар өрнөнө. 

Мэдээллийн сүлжээний холболт тогтолт 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)  протокол гэнэ. Эерэг бататгал багц ба дахин дамжуулалт

### TCP-ын толгой хэсгийн битүүд
Үүсгүүр  ба хүлээн авах хэсгийн порт (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- протоколын шилжих цонхтой протоколын дамжуулал
Ерөнхий зарчим бүлэг 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-ээс их утгатай багцын дамжуулалтыг хүлээнэ.RUDP нь холболтгүй үйлчилгээ бүхий дамжууллын түвшний протокол.Интернет протоколын бүлэгт хамаарагдана.RUDP протоколын үүрэг нь  IP ба дээд түвшний процессуудын хооронд интерфейс болно.RUDP протоколын портууд нь төхөөрөмж дээр өрнөсөн хэрэглээний программуудыг хооронд нь ялгаж өгдөг.RUDP протоколоор багц дамжуулах процессыг өгөгдлийн  найдваржилт чухал бус үед өөрөөр хэлбэл дээд түвшний протокол нь алдааны ба урсгалын хяналтыг хангаж байгаа үед маш тохиромжтой гэж үзнэ.RUDP-г дараах зарим хэрэглээний түвшний протоколуудад дамжууллын протокол болгон ашигладаг.TCP шиг RUDP  найдвартай,багцуудын урсгалын удирдлага юмуу алдааг засах функцуудыг IP-д хангаж өгдөггүй. Учир нь RUDP маш энгийн, толгой битууд цөөхөн,TCP шиг сүлжээнд нэмэлт ачаалал үүсгэдэггүй  сайн талтай.NFC-Network File System, SNMP-Simple Network Management Protocol, DNS-Domain Name System, TFTP-Trival File Transfer Protocol зэрэг протоколуудын хэрэгжилт нь RUDP протоколоор зохицуулагддаг.RUDP протколын багцын формат  4 талбараас тогтдог.RUDP протокол нь IP протоколын дамжуулалд портын хаяглалыг нэмж өгдөг.

RDP-гийн шинж чанар нь дараах хэрэглээнд зохимжтой байдаг:
**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, мэдээлэл солилцох протоколд тохиромжтой

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

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

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

## Цахим холбоос 
* https://tools.ietf.org/html/rfc908
* https://www.techopedia.com/definition/21803/reliable-data-protocol-rdp
* http://encyclopedia2.thefreedictionary.com/Reliable+Data+Protocol
* RFC 908 – Reliable data protocol
* RFC 2460 – Internet Protocol, Version 6 (IPv6) Specification
* RFC 2675 – IPv6 Jumbograms
* RFC 4113 – Management Information Base for the RUDP
* RFC 5405 – Unicast RUDP Usage Guidelines for Application Designers

Ангилал:Компьютерын сүлжээ
Ангилал:Сүлжээний протокол