Funcțiile și principiile protocolului UDP
Imaginați-vă că trebuie să dezvoltați cele mai simple, fără funcții inutile, protocolul nivelului de transport. Cum ați rezolva această problemă? Cea mai simplă cale este de a crea un protocol care nu face nimic cu datele. Pe partea de emisie, mesajele de aplicație sunt transmise neschimbate stratului de rețea, iar partea receptoare transmite mesajele de la stratul de rețea către stratul de aplicație. În mod clar, un astfel de protocol nu este viabil: din secțiunea anterioară rezultă că cel puțin protocolul trebuie să efectueze operații de multiplexare și demultiplexare care asigură schimbul corect de date între stratul de rețea și procesele de aplicație.
Protocolul UDP descris în RFC 768 efectuează un minim de acțiuni necesare pentru protocolul stratului de transport. De fapt, funcțiile UDP sunt reduse la operațiile de multiplexare și demultiplexare, precum și o simplă verificare a prezenței erorilor în date. Astfel, atunci când se utilizează U DP, aplicația aproape interacționează direct cu protocolul stratului de rețea IP.
UDP primește mesaje de la stratul de aplicație, adaugă câmpurile numărului portului de expeditor și al receptorului la acesta pentru demultiplexare de către partea receptoare, precum și alte două câmpuri speciale și transferă segmentul rezultat în stratul de rețea. Stratul de rețea acoperă segmentul într-o datagramă și "dacă este posibil" o transferă către gazda destinație. Dacă acesta din urmă primește cu succes segmentul, protocolul UDP utilizează câmpul numărului portului receptorului pentru a trimite datele segmentului procesului dorit. Rețineți că protocolul UDP nu oferă o procedură de strângere de mână înainte de transferul segmentelor. Prin urmare, se spune că UDP efectuează transferul de date fără a stabili o conexiune.
După argumentele de mai sus, întrebarea devine destul de pertinentă: are protocolul UDP astfel de avantaje față de TCP care pot determina dezvoltatorul să-și creeze aplicația folosind suport UDP, mai degrabă decât TCP? Nu este surprinzător faptul că răspunsul la această întrebare este pozitiv, iar mai jos sunt enumerate cele patru avantaje principale ale protocolului UDP.
□ Nu există informații despre starea conexiunii. Protocolul TCP acceptă informații despre starea conexiunii TCP, ceea ce determină necesitatea unor tampoane pentru stocarea intermediară a informațiilor privind recepția și transmisia, parametrii de control al congestiei, numerele de secvențe și numerele de primire. După cum vom vedea în secțiunea "Protocolul de transfer bazat pe conexiunea TCP", sunt necesare informații privind starea conexiunii pentru ca protocolul TCP să efectueze un transfer de date fiabil și un control al congestiei. UDP nu acceptă informații privind starea conexiunii și, prin urmare, nu necesită includerea parametrilor enumerați. Acest lucru permite serverului UDP să servească simultan mult mai mulți clienți decât serverul TCP.
□ Dimensiunea antetului mic. Antetul UDP are o lungime de numai 8 octeți, în timp ce lungimea antetului TCP este de 20 octeți.
Înainte de a începe studiul structurii segmentului UDP, observăm că transferul fiabil al datelor de aplicație este posibil chiar și atunci când se utilizează UDP. Acest lucru se realizează prin includerea unor mecanisme care să asigure transmisia fiabilă (de exemplu, recunoașterea și retransmisia, pe care o vom lua în considerare ulterior) aplicației înseși. În practică, această sarcină se dovedește adesea foarte netrivială și poate dura mult timp pentru a crea o aplicație care funcționează corect. Cu toate acestea, asigurarea unui transfer de date fiabil prin aplicație permite "uciderea a două păsări cu o singură piatră", satisfăcând cerința de întreținere a procesului și oferind posibilitatea de a depăși dezavantajele protocolului TCP (de exemplu, o rată de transmisie mai mică). În mod similar, majoritatea aplicațiilor de streaming actuale sunt construite.
Răspunderea, pentru toate modificările aduse sistemului la sfatul acestui articol, vă asumați.