RUDP: razlika između inačica
mNema sažetka uređivanja Oznaka: disambiguator-link-added |
|||
Nije prikazana jedna međuinačica | |||
Redak 1: | Redak 1: | ||
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.<ref>https://www.geeksforgeeks.org/reliable-user-datagram-protocol-rudp/</ref><ref> https://stackoverflow.com/questions/4179567/tcp-vs-reliable-udp</ref> | {{IP Model}} | ||
'''RUDP''' (engl. Reliable User Datagram Protocol) je protokol [[transportni slog|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.<ref>https://www.geeksforgeeks.org/reliable-user-datagram-protocol-rudp/</ref><ref> https://stackoverflow.com/questions/4179567/tcp-vs-reliable-udp</ref> | |||
== Povijest == | == 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. | 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. | |||
{| class=“wikitablica” | {| class=“wikitablica” | ||
Redak 18: | Redak 26: | ||
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. | 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. | 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. | ||
Redak 45: | Redak 53: | ||
| Teret || Varijabilno || Sadrži korisne podatke | | 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: | 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: | ||
Redak 59: | Redak 69: | ||
*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 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 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. | *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 == | == Primjena == |
Posljednja izmjena od 15. lipanj 2023. u 13:26
Sloj | Protokol |
---|---|
Aplikacijski | DNS, DHCP, TLS/SSL, TFTP, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, RTP, rlogin, … |
Transportni | TCP, UDP, DCCP, SCTP, IL, RUDP, |
Mrežni | IP (IPv4, IPv6), ICMP, IGMP, ARP, RARP, … |
Podatkovni | Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, DTM, Frame Relay, SMDS, … |
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[uredi]
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[uredi]
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.
- 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[uredi]
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.