RUDP

Izvor: Hrvatska internetska enciklopedija
Inačica 519935 od 15. lipanj 2023. u 13:23 koju je unio WikiSysop (razgovor | doprinosi) (→‎Funkcioniranje)
Prijeđi na navigaciju Prijeđi na pretraživanje

RUDP (engl. Reliable User Datagram Protocol) je protokol transportnog sloja koji je dizajniran u Bell Labs za operacijski sustav Plan 9. Cilj mu je pružiti rješenje gdje je UDP previše primitivan jer je poželjna isporuka paketa s jamstvom redoslijeda, ali TCP dodaje previše složenosti/overheada.[1][2]

Povijest

RUDP je nastao kao dio TCP/IP skupa protokola koji omogućuju komunikaciju između računala na mreži. TCP/IP se sastoji od četiri sloja: mrežnog sloja, internetskog sloja, transportnog sloja i aplikacijskog sloja. Mrežni sloj se bavi fizičkim prijenosom podataka između računala, internetski sloj se bavi adresiranjem i usmjeravanjem paketa, transportni sloj se bavi pouzdanošću i redoslijedom paketa, a aplikacijski sloj se bavi specifičnim protokolima za različite vrste komunikacije.

Sloj Naziv Primjeri protokola
Mrežni Fizički i veznik Ethernet, Wi-Fi, PPP
Internetski IP IPv4, IPv6
Transportni TCP i UDP TCP, UDP, RUDP
Aplikacijski HTTP, FTP, SMTP HTTP, FTP, SMTP, DNS


Transportni sloj nudi dva osnovna protokola: TCP i UDP. TCP je pouzdan i orijentiran na vezu protokol koji jamči da će svi paketi doći do odredišta u ispravnom redoslijedu i bez grešaka. TCP koristi mehanizme kao što su potvrde (engl. acknowledgments), ponovna slanja (engl. retransmissions), kontrola zagušenja (engl. congestion control) i klizni prozor (engl. sliding window) kako bi postigao pouzdanost. Međutim, TCP ima i neke nedostatke kao što su visoki overhead, velika latencija (engl. delay) i osjetljivost na gubitak veze.

UDP je nepouzdan i neorijentiran na vezu protokol koji ne jamči ništa o isporuci paketa. UDP samo dodaje izvor i odredište portove na podatke koje šalje na internetski sloj. UDP nema mehanizme za potvrde, ponovna slanja, kontrolu zagušenja ili klizni prozor. Prednosti UDP-a su niski overhead, mala latencija i neovisnost o stanju veze.

RUDP je protokol koji pokušava pronaći sredinu između TCP-a i UDP-a. RUDP koristi UDP kao osnovu, ali dodaje neke značajke koje poboljšavaju pouzdanost i redoslijed paketa. RUDP koristi klizni prozor za kontrolu protoka podataka, potvrde za potvrdu primitka paketa i ponovna slanja za oporavak od gubitka paketa. RUDP također podržava višestruke veze (engl. multiplexing) između istih portova i opcionalne checksume za provjeru integriteta podataka.

Funkcioniranje

RUDP se sastoji od tri glavne komponente: segmenta, veze i sesije. Segment je jedinica podataka koju RUDP šalje ili prima preko UDP-a. Segment se sastoji od zaglavlja i tereta (engl. payload). Zaglavlje sadrži sljedeće polja:

Polje Veličina (bajtovi) Opis
Verzija 1 Označava verziju RUDP protokola
Zastavice 1 Označavaju različite opcije kao što su checksum, potvrda, reset i završetak
Prozor 2 Označava veličinu kliznog prozora u broju segmenata
Sekvenca 4 Označava redni broj segmenta
Potvrda 4 Označava redni broj sljedećeg očekivanog segmenta
Checksum 2 (opcionalno) Sadrži kontrolnu sumu za provjeru grešaka
Teret Varijabilno Sadrži korisne podatke


Veza je logička veza između dva RUDP krajnjaka (engl. endpoints). Veza se uspostavlja slanjem segmenta s zastavicom potvrde i reset. Veza se završava slanjem segmenta s zastavicom završetka. Veza ima stanje koje se sastoji od sljedećih varijabli:Veza je logička veza između dva RUDP krajnjaka (engl. endpoints). Veza se uspostavlja slanjem segmenta s zastavicom potvrde i reset. Veza se završava slanjem segmenta s zastavicom završetka. Veza ima stanje koje se sastoji od sljedećih varijabli:

Prijenos:
  • Ako je sljedeći za slanje manji ili jednak od posljednjeg poslanog plus lokalni prozor, pošalji segment s rednim brojem sljedeći za slanje i povećaj ga za jedan.
  • Ako je primljena potvrda s rednim brojem većim od posljednjeg poslanog, ažuriraj udaljeni prozor i ponovi korak 1.
  • Ako je isteklo vrijeme čekanja (engl. timeout) za segment s rednim brojem manjim ili jednakim od posljednjeg poslanog, ponovno pošalji taj segment i ponovi korak 2.
Primanje:
  • Ako je primljen segment s rednim brojem jednakim sljedećem za primanje, isporuči teret aplikaciji, pošalji potvrdu s rednim brojem sljedećeg za primanje plus jedan i povećaj ga za jedan.
  • Ako je primljen segment s rednim brojem manjim od sljedećeg za primanje, pošalji potvrdu s rednim brojem sljedećeg za *primanje.
  • Ako je primljen segment s rednim brojem većim od sljedećeg za primanje, spremi ga u međuspremnik (engl. buffer), pošalji potvrdu s rednim brojem sljedećeg za primanje i ponovi korak 1.

Primjena

RUDP se može koristiti za aplikacije koje zahtijevaju pouzdanost i redoslijed paketa, ali ne mogu tolerirati visoku latenciju ili overhead TCP-a. Takve aplikacije su npr. glasovna ili video komunikacija, prijenos datoteka, igre u stvarnom vremenu.

Izvori