Korisnički protokol datagrama nalik je “Ružnom patku” Hansa Christiana Andersena. Nakon desetljeća zanemarivanja i ismijavanja, ovaj jednostavan protokol iznenada je privukao obožavatelje kao prometni protokol za nove, glamurozne multimedijske aplikacije koje su omogućile širokopojasne brzine. Danas svaka aplikacija koja mora dostaviti podatke brzo odabire UDP u odnosu na prethodno dominantni TCP (Protokol kontrole prijenosa).
Povijest UDP-a
UDP postoji skoro toliko dugo kao i Internet. Internet je nastao u svibnju 1974. kada je Institut inženjera elektrotehnike i elektronike objavio „Program za međusobno komuniciranje paketnih mreža” Vint Cerf i Bob Khan. Koncept je trebalo razviti i Khan i Cerf nastavili su dorađivati svoje ideje radeći za američku vladu Agencija za napredne obrambene istraživačke projekte, koja je poznata i pod nazivom DARPA. John Postel uključio se i predložio dijeljenje jedinstvene strukture predložene u izvornoj ideji Cerfa i Khana. Time je stvoren slojevit koncept. Izvorni program kontrole prijenosa sadržan u obrascu iz 1974. podijeljen je na Protokol kontrole prijenosa na višem sloju i internetski protokol na nižem sloju (otuda TCP / IP).
Postelov modularni pristup imao je smisla kada je tim počeo razmišljati o primjeni teorije. Došlo je do jasne podjele rada između onoga što je postalo poznato kao Transportni sloj, koja je lokacija Protokola kontrole prijenosa, i Internetski sloj, gdje se nalazi internetski protokol. Međutim, Cerf i Khan su predvidjeli potrebu za brzom stazom. Nacrtali su dijagram kako će se podaci pripremiti za prijenos prijenosom s jednog sloja na drugi. Zadaci obrade predstavljeni su kao ravna okomita linija, silazeći kroz novi dijagram snopa koji pokazuje napredak od primjena na TCP i na IP.
Kad je dolazilo do crtanja u brzom zapisu, nisu htjeli crtati zakrivljenu liniju zaobilaska koja je izbjegavala prolazak kroz TCP. Umjesto toga, nacrtali su duguljasti oblik koji je predstavljao Internet sloj malo šire od bloka koji je predstavljao Transportni sloj. Pomoću ove vizualne prilagodbe, i uobičajena ruta i brza staza mogu se spustiti kroz niz kao paralelne linije. Međutim, ovaj trik ostavio je jaz koji je Postel smatrao potrebnim da ispuni. Zbog toga je izmišljen Protokol korisničkog datagrama. Upravo je tu dijagram snopa protokola izgledao uravnoteženo.
Prednosti TCP-a
Protokol kontrole prijenosa pruža ključne usluge podacima u tranzitu. Osigurava da svi paketi u streamu doista stignu i provjerava da li dolaze u redu. Ovi postupci kontrole koji osiguravaju uredan prijenos nisu mogući bez mjere koordinacije između dviju strana. Dakle, TCP prvo uspostavlja ugovor između dva uređaja koji namjeravaju razmjenjivati podatke. Ovaj sporazum se zove sjednica. To je i sama definicija “veza.„UDP nema procedure za uspostavu sjednice pa je on nazvan„bez spajanja.”
Sjednica daje obema stranama veze referentni broj koji mogu označiti na svojim administrativnim razmjenama. Sjednica također omogućuje uvođenje koncepta luka. ID sesije je zapravo kombinacija identifikatora koji se nalaze u TCP zaglavlju. Pomoću ovog ID-a dizajneri TCP postupaka uspjeli su doći do ideje “utičnica.”Brojevi porta dodijeljeni su i UDP-u, međutim taj protokol može koristiti samo odredišni IP i brojeve priključaka kao jedinstveni identifikator. Identifikator izveden iz te kombinacije blokirao bi sve ostale procese koji pokušavaju pristupiti istom portu, iako se izvode na različitim računalima, UDP je načinjen samo za isporuku, bez postupaka za omogućavanje dvosmjernog dijaloga.
Koncepti TCP veze razvijeni su u vrlo sofisticiranu univerzalnu metodu kako bi se osiguralo da se podaci koji prolaze između računala nisu pomiješani ili uništeni. Socket je omogućio istovremeno otvaranje više veza između ista dva računala. Ta ideja stvorila je mogućnost postojanja više kanala za prosljeđivanje podataka. Ovo je često korišteni postupak od kojeg su koristile mnoge rane mrežne aplikacije. Protokol za prijenos datoteka, na primjer, koristi dva kanala: jedan za prosljeđivanje podataka i zasebni kanal za administrativnu komunikaciju. Različiti brojevi priključaka za podatkovne i upravljačke kanale stvaraju dvije različite utičnice.
Jedinstveni ID za svaku sesiju značio je da TCP dodaje vrijednost komunikaciji između dva računala. U kasnim 70-ima i ranim 80-ima samo su velike organizacije i akademske institucije imale računala i mreže. Dakle, velika je vjerojatnost da su dvije organizacije trebale svoje velike glavne okvire da se istovremeno povezu u različite svrhe. Dok je profesor slao dosje kolegi na drugom sveučilištu, istraživač bi također mogao otvoriti Telnet sesiju za računalo na istom udaljenom sveučilištu. Zahvaljujući TCP-u, dva računala mogu održavati nekoliko veza istovremeno i svaka od tih sesija može istovremeno raditi nekoliko kanala. Te istovremene veze ne bi bile moguće ako komunikacijom upravlja samo internetski protokol, dodjeljujući jednu IP adresu na računalo. UDP, bez ikakvog mehanizma sesije, nije bio u stanju upravljati aplikacijama za koje je potrebno kontaktirano računalo da pošalje odgovor.
Sigurnost podataka
Sjajni konstrukti TCP-a omogućili su veze između mreža i internet se počeo širiti izvan Akademije u poslovni svijet. Stvaranje World Wide Web, koja je postala javna 1991. bila je moguća samo zbog lakoće s kojom je web stranica koja nosi protokol za prijenos hiperteksta (HTTP) mogla sjediti na vrhu TCP-a.
Znanstvenici i tehničari koji su zajedno postavili Internet i zatim razvili javno dostupan svjetski Internet plavi nebo mislioci. Oduševila ih je tehnologija i njezine mogućnosti da ubrza istraživanje i poboljša interakciju među ljudima širom svijeta. Nisu uspjeli objasniti činjenicu da je njihov čudesni izum bio poklon lopovima, prevarantima i urbanim teroristima. Ni internet ni svjetska mreža uopće nisu imali sigurnost.
Trebalo je voditi potrošače Netscape Corporation uočiti ovaj problem. Netscape stvorio je vodeći svjetski web preglednik i dao ga besplatno kako bi potaknuo korištenje interneta u široj javnosti. Plan je djelovao, a razmjena informacija i kontaktni kanali su se raširili, potičući veći broj javnosti da se prijave za internetske usluge. Međutim nedostatak sigurnosti stvorio je prepreku komercijalizaciji weba. Bez mogućnosti privlačenja ljudi da plaćaju internetske usluge, nije bilo poticaja za tvrtke da ulažu u razvoj novih aplikacija, web stranica ili mrežnih usluga.
Glavna prepreka pri prikupljanju plaćanja putem weba bio je njegov nedostatak sigurnosti. Nekoliko naslova o krađi podataka o internetskim prijenosima isključilo je mogućnost da Internet postane komercijalno održiv. Međutim, Netscape je smislio HTTPS – sigurna verzija HTTP-a koja je štitila prijenos. Idealno mjesto u TCP / IP skupu za ove sigurnosne postupke bilo je za vrijeme sesije uspostavljanja TCP-a. Tako, TCP je postao još važniji za rad na internetu a činilo se još vjerojatnijim da se UDP nikada neće koristiti.
UDP kreće
Unatoč postojanju od 1980, UDP je bio potpuno zanemaren sve dok širokopojasne internetske usluge nisu postale dostupne početkom ovog stoljeća. Korisnički datagram protokol uglavnom je zanemaren dok su se web i druge internetske aplikacije proširile na funkcionalnost TCP-a.
Međutim, mogućnost za glasovne razgovore i videokonferencije putem interneta oduvijek je privlačila tvrtkama. Te su aplikacije postojale prije širokopojasne mreže, ali samo za upotrebu na bržim privatnim mrežama. Uspostavljena tehnologija prijenosa zvuka i videa preko mreža, brže širokopojasne brzine donijele su mogućnost dostupnosti tih aplikacija široj javnosti postala izvediva ideja. Međutim, brzine dostupne putem interneta nisu bile dovoljno dobre.
Neposredno rješenje istiskivanja tek toliko dodatne brzine van interneta bilo je izbacivanje svih administrativnih postupaka TCP-a i skrenite na gotovo zaboravljeni UDP.
Problemi s TCP-om
Interaktivne aplikacije radije bi rješavale neke probleme koji se javljaju tijekom samog prijenosa. Jedna od glavnih značajki TCP-a koju te aplikacije zaista ne žele je poliranje.
TCP osigurava da paketi stižu redoslijedom. Ako paket nema u streamu, primjena TCP primitka će poslati zahtjev TCP programu koji šalje slati taj određeni paket. U međuvremenu bi taj paket mogao stići kasno. TCP koristi klizni okvirni sustav za obradu dolaznih paketa i ako segment kasni ili se izgubi, taj se slajd zaglavljuje. Privremeno spremanje određenog broja okvira u memoriji naziva se puferiranjem. TCP čeka dok ne može ispuniti prazan utor s paketom koji ima nedostajući redni broj. U slučaju internetske telefonije, takva bi radnja uzrokovala da se linija povuče. U streamingu videa čekanje paketa koji nedostaje natjeraće da se video player zamrzne.
Interaktivne aplikacije nemaju procedure koje bi mogle voditi oko TCP međusobnog punjenja. Glavni iza slojeva snopa je da viši slojevi zatraže uslugu i ostave je donjem sloju da je pruže. Nema signala “nastavite s tim” koji aplikacija može poslati u transportni sloj.
Ako se paket izgubi u digitalnom telefonskom razgovoru, pozivatelji će doživjeti kratku tišinu, ali aplikacija će se s obje strane nastaviti i dalje slati i primati sljedeće pakete. Do trenutka vraćanja nestalog paketa interaktivni bi se razgovor već nastavio tako da nema smisla pokušavati ga vratiti u stream; samo je bolje otpisati gubitak i nastaviti. Slično tome, izgubljeni paket jednostavno bi značio kratki preskakanje u video streamu uživo, a gledatelji bi radije da se video dalje kreće naprijed, nego što drži zaplet za jednu milisekundu okvira.
Vjerojatno ste vidjeli da se video player zaustavlja i prekriva poruku “poliranje“Iznad slike. Obično postoji i brojač koji pokazuje postotak puferiranja koji je završen. Do punjenja dolazi ako je brzina prijenosa veze slabija od brzine kadra u reprodukciji videozapisa. Ključna stvar oko te poruke je da ona pokazuje da puferiranjem upravlja igrač, a ne transportni protokol..
Protokoli partnerstva
Iako interaktivna aplikacija nije željela odgode uzrokovane TCP-om, oni su htjeli neke funkcije tog protokola. Željeli su više nego što UDP može pružiti. Tako su izmišljeni drugi protokoli koji su ispunili dijelove TCP-ovih mogućnosti.
Protokol za pokretanje sjednice
Session Initiation Protocol (Session Initiation Protocol) izmišljen je za aplikacije Voice over IP (VoIP). Internetska telefonija nije željela punjenje TCP-a, ali su trebali oponašati tradicionalne postupke uspostavljanja poziva telefona – birajte, zvonite, zauzeti, preuzeti i završiti poziv. Međutim, SIP ne upravlja cijelom sesijom, on se samo brine za stvaranje veze i izvršavanje funkcija TCP-a. Svaki poziv koji prolazi putem interneta zapošljava SIP. Toliko da je „SIP“ gotovo postao zamjenjivi pojam sa „VoIP.”
Govorni promet putem velikih brzih digitalnih veza poznat je pod nazivom “SIP kanal.”Prebacivanje poziva s interneta na uobičajeni fiksni telefon naziva se”SIP raskid.„Industrija digitalne telefonije koristi SIP za prepoznavanje svoje tehnologije, ali temelj svih njihovih aktivnosti je UDP.
Protokol prijevoza u stvarnom vremenu
Unatoč odluci da je TCP prevelik zalogaj za interaktivni promet i trebao bi ga odustati, inženjeri komunikacije neprestano su se vraćali objektima koje pruža TCP i poželjeli su da ih mogu imati s UDP-om. Protokol prijevoza u stvarnom vremenu (RTP) nadoknađuje velik nedostatak funkcionalnosti koji se javlja pri korištenju UDP-a.
Ključna značajka ovih dodataka za protokole koji čine UDP relevantnim za strujanje medija jest da omogućuju da se neki procesi na koje tradicionalno upravlja TCP prebace na aplikaciju. RTP upravlja s nekim od funkcija upravljanja prometom TCP-a, ali ne od svih.
RTP je sposoban preurediti redoslijed paketa i primijetiti izgubljene pakete. Međutim, funkciju sekvenciranja ne treba provoditi i nemoguće je implementirati bez puferiranja na transportnom sloju.
RTP upravljački protokol
RTP je uvijek partner s RTCP-om, koji je RTP protokol kontrole. RTPC oponaša neke funkcije upravljanja sesijom TCP-a, osim što je vodeći princip protokola ne upadati u tok i ne usporavati prijenos medija; pa su njezine aktivnosti rijetke. Protokol će prikupljati podatke o performansama, uključujući gubitak paketa, i brzinu prijenosa podataka. Igrač koji prima prima može upotrebljavati te informacije za odlučivanje prelaze li na videozapise niže rezolucije ili neki drugi standard za kodiranje videozapisa.
Ako koristite video i audio aplikaciju, gotovo je sigurno da su uključeni i RTP i RTCP. Postoji “umetanje“U definiciji RTSP (vidi dolje) koja bi RTP prijenose prebacila na TCP. Međutim, ovo je neobičan prijedlog koji nikada nije proveden izvan laboratorija. Bez te specifikacije, sve RTP i RTCP aktivnosti provodi UDP.
Streaming protokol u stvarnom vremenu
Streaming protokol u stvarnom vremenu (RTSP) gotovo je uvijek uključen u aplikacije za reprodukciju video i audio zapisa ili za snimanje. Ovaj protokol pruža upravljačke tipke na uređaju za reprodukciju i rekorder. To su pauziranje, snimanje / reprodukcija, brzo premotavanje unaprijed i unatrag. Zanimljivo je da iako RTSP može pokrenuti preko UDP-a, obično se prevozi preko TCP-a, iako je partner video ili audio streamu koji podržava UDP..
Aplikacije samo za UDP
Mnogo lagane mreže koje podržavaju aplikacije koriste UDP bez ikakvih drugih protokola koji čine simulaciju TCP funkcija. Ove su funkcije gotovo isključivo namijenjene samo privatnim mrežama jer ne uključuju nikakve postupke autentifikacije ili šifriranje prijenosa.
Ako upravljate mrežom, upoznat ćete se s Mrežni protokol vremena (NTP), Sustav naziva domena (DNS), Protokol dinamičke konfiguracije hosta (DHCP), i the Trivialni protokol za prijenos datoteka (TFTP). Sve ove administrativne usluge vode preko UDP-a. Iza ovih privatnih mrežnih aplikacija, vrlo je teško pronaći bilo koju aplikaciju koja radi samo preko UDP-a.
UDP vs TCP
Usporedba strukture zaglavlja UDP i strukture zaglavlja TCP pokazuje ograničenja UDP-a.
UDP zaglavlje ima samo četiri polja. Od te četvero Izvor luke polje nije obavezno i može biti prazno. U IPv4, the Kontrolna polje je također neobavezno, iako je obvezno za IPv6 implementacije. To znači da u slučaju IPv4 prijenosa, UDP zaglavlje treba imati samo dva podatka.
TCP zaglavlje može nositi puno više informacija.
Kao što možete vidjeti na ilustraciji, zaglavlje TCP paketa ima niz od devet zastava koje prilagođavaju značenje zaglavlja. Događaj ima “hitno” polje. To TCP sustavu daje mnogo veću fleksibilnost od UDP-a, a pokazuje da je u postupke za TCP i strukturu njegovog zaglavlja paketa uloženo mnogo više vremena nego što je utrošeno na razvoj UDP-a.
Činjenica da TCP zaglavlje mora sadržavati izvorni port omogućuje stvaranje jedinstvenije utičnice, kreiranje ID sesije s IP adrese izvora i odredišta te brojeva izvora i odredišta. S UDP-om, jer nema postupaka za stvaranje sesije, svaka se poruka tretira kao dovršen zadatak, a protokol ne pokušava zajedno povezati pakete. Stoga aplikacije koje koriste USP moraju same upravljati tim kontinuitetom.
Sigurnost za UDP
Metode TCP orijentirane na povezivanje znatno olakšavaju implementaciju tog protokola u UDP. Međutim, za UDP postoje dostupni standardi šifriranja. Glavna opcija koja izravno cilja na sigurnosni UDP je sigurnosni protokol transportnog sloja Datagrama ili DTLS.
srećom, DTLS je dostupan u brojnim besplatnim knjižnicama otvorenog koda, tako da vam nije potrebno češljati kroz definiciju protokola i pisati svoj otvoreni program da biste ga implementirali. OpenSSL, koja je knjižnica otvorenog koda, najčešći je izvor za implementaciju sigurnosti transportnog sloja, a to je najšire implementirani sigurnosni sustav za TCP. I ova knjižnica uključuje implementaciju DTLS, tako da biste trebali moći naići na sigurne UDP opcije u istim aplikacijama koje nude sigurne TCP veze.
Druga je mogućnost za korisnike UDP-a da se oslanjaju na sigurnosni sustav dizajniran za rad na internetskom sloju. Ovo je IPSec, ili sigurnost internetskog protokola. Kako IPSec djeluje ispod transportnog sloja, on nije u mogućnosti raditi s priključcima, pa činjenica da UDP ne može održavati sesiju nije bitna kada je IPSec angažiran – Protokoli IP sloja ni ne mogu stvoriti sesije. Kao sustav nižeg sloja, IPSec može podržati bilo koji protokol transportnog sloja, uključujući UDP.
IPSec uključuje metode provjere autentičnosti, a također šifrira pakete kako bi ih zaštitio od prisluškivanja. IT nudi jednako toliko sigurnosti kao i popularni TLS, ali manje se primjenjuje. IPSec koristi sustav Internet Exchange Exchange (IKEv2) za postavljanje autentičnosti, pa se vrlo često IPSec naplaćuje kao IKEv2. Metodologija IKEv2 koristi Diffie-Hellmanovi postupci razmjene ključeva, što je potpuno isti sustav koji TLS koristi za HTTPS metodologiju sesija sigurnih web stranica.
Kerberos i Kerberized Internet pregovori o ključevima (KINK) dva su elementa sigurnosnog sustava koji se obično naziva Kerberos. Postupci uspostavljanja sjednice u Kerberosu koriste sustav „ulaznica“ sličan TLS metodi korištenja „potvrda“. Na dnu snopa Kerberos podupire IPSec. Istoimeni Kerberos sloj sjedi na vrhu UDP-a i koristi UDP utičnice za olakšavanje komunikacije. Dakle, ovo je sigurnosni sustav pogodan za UDP. Uzbudljivo sredstvo Kerberosa je da vam omogućuje opciju korištenja AES enkripcije kako biste zaštitili svoje UDP prijenose. AES je vjerojatno najsigurnija šifra u zajedničkoj uporabi danas i to je preporučena sigurnosna metoda za najbolje svjetske sustave zaštite privatnosti VPN..
Unatoč očitim poteškoćama u pregovaranju s ključevima za enkripciju u okruženju koje ne pruža nikakvo upravljanje vezama, UDP nudi sigurnosne mogućnosti. Dakle, kada implementirate UDP-ovu aplikaciju, ne odustajte od zadatka da osiguravate svoje prijenose.
Budućnost UDP-a
Čiste aplikacije temeljene na UDP-u koji ne uključuju bočne protokole da oponašaju TCP rijetki su i vjerojatno će postati još rjeđi. Lagane mrežne usluge koje koriste UDP napreduju u sigurnim lokalnim mrežama. No, kako se sigurnosne prijetnje od novih napada bez ikakvih dana povećavaju svaki tjedan, čini se da koncept postojanja nesigurnih protokola za upravljanje ključnim uslugama upravljanja konfiguracijom i adresiranjem izgleda glupo..
Kako mreže prelaze svoju uslugu u oblak, usluge UF-zasnovanih TFTP i DHCP-a počet će se zamijeniti sigurnijim alternativama. Jednostavno rješenje aplikacija za surfanje preko HTTPS-a kako bi im se pružila sigurnost bez dodatnih programskih napora skreće budućnost prema TCP-u, koji HTTPS nosi i uklanja mogućnosti sa UDP liste kompetencija.
Vjerojatno će potrajati NDP-ova niša za podršku prijenosa medija. Već su predloženi brojni rivalski transportni sustavi za podršku interaktivnim aplikacijama, ali nijedan od njih nije oborio UDP sa svog položaja kao prvog izbora za VoIP i streaming videa. Ovaj popis rivala uključuje:
Pouzdan protokol korisničkog datagrama (RUDP), koja ima Cisco i Microsoft implementacije.
Protokol prijenosa kontrole protoka (SCTP), koji je neuspješno predložen kao zamjena za kombinaciju UDP / RTP / RTCP, ali nikada se nije sišao s tla.
Otkriveno je da ovo ružno pače pod nazivom UDP labudo, zahvaljujući magičnim transformativnim moćima širokopojasne i interaktivne aplikacije. Ova će revitalizirana zvijezda i dalje bez napora kliziti vodama Interneta.
Koje metode prijenosa koristite? Vidite li UDP ružno pače kao labuda? O svojim iskustvima napišite u odjeljku Komentari u nastavku.
Povezano:
Vrhunski vodič za TCP / IP
Što je TCPdump?
Pregled SolarWinds TFTP poslužitelja
TFTPD32 Pregled TFTP poslužitelja
slike:
Voditelj UDP-a od strane Devarshija u engleskim Wikibooksima licenciran pod CC BY-SA 2.5
Izgled paketa TCP s bitnom skalom od Quliyevferman preko Wikimedia Commons. Licencirano pod CC BY-SA 4.0
alnu mrežnu infrastrukturu koja je omogućila pouzdanu i sigurnu razmjenu podataka na Internetu. Međutim, s razvojem novih multimedijskih aplikacija koje zahtijevaju brzu dostavu podataka, UDP je postao popularan izbor zbog svoje jednostavnosti i brzine. Iako UDP nema postupak uspostave sjednice i ne pruža istu razinu kontrole kao TCP, on je idealan za aplikacije koje zahtijevaju brzu dostavu podataka, poput streaminga u stvarnom vremenu. Budućnost UDP-a je svijetla, jer se očekuje da će se sve više aplikacija prebaciti na ovaj protokol zbog njegove brzine i jednostavnosti.