Ce este un protocol orientat către tranzacții, fără conexiune?
UDP(Protocolul Datagramelor Utilizator) constituie modul de comunicație fără conexiune.
Este similar cu sistemul poștal, în sensul că pachetele de informații (corespondența) sunt trimise în general fără confirmare de primire, în speranța că ele vor ajunge, fără a exista o legătură efectivă între expeditor și destinatar. Ce tipuri de aplicații beneficiază în general de utilizarea protocolului UDP? UDP are o serie de avantaje pentru diferite tipuri de aplicații, inclusiv: Fără întârzieri de retransmisie - UDP este potrivit pentru aplicațiile sensibile la timp care nu își pot permite întârzieri de retransmisie pentru pachetele abandonate. Exemple includ Voice over IP (VoIP), jocuri online și streaming media. Viteză - viteza UDP îl face util pentru protocoalele de răspuns la interogare, cum ar fi DNS, în care pachetele de date sunt mici și tranzacționale. Potrivit pentru emisiuni - Lipsa de comunicare end-to-end a UDP o face potrivită pentru emisiuni, în care pachetele de date transmise sunt adresate ca primite de toate dispozitivele de pe internet. Emisiile UDP pot fi primite de un număr mare de clienți, fără a depăși serverul. De ce protocolul UDP nu garantează că datele vor fi transmise cu succes? UDP face parte din categoria protocoalelor de transport nesigure. În acest caz nu este garantată ajungerea unor date corecte la destinatie pentru că nu este obligatorie folosirea unor sume de control (la acest nivel de protocol). Utilizarea protocoalelor nesigure se face deoarece costul este mai mic decât în cazul protocoalelor sigure. Practic vorbind, un protocol nesigur este mult mai simplu de proiectat, de implementat si apoi de folosit. Costul, în termeni de complexitate (verificarea erorilor, calculul sumelor de control etc.) si lărgime de bandă (bandwidth), sunt în mod simtitor mai mici cu un protocol nesigur. Diferența dintre blocking si non-blocking sockets Blocking este atunci când nu putem servi mai mult de o conexiune într-un singur thread. În mod implicit, soclurile TCP funcționează în modul de blocare. Non-blocking atunci când orice operație este executată imediat. I / O care nu blochează înseamnă că cererea este pusă în coadă imediat și că funcția este returnată. În protocolul TCP există Three Way Handshake, de ce în UDP nu există? Deoarece în protocolul TCP Three Way Handshake (numit și strângere de mână TCP; strângere de mână cu treimesaje) este metoda folosită pentru a stabili o conexiune TCP/IP printr-o rețea bazată pe protocolul Internet, însă pentru protocolul UDP nu are nevoie de a stabili conexiunea dată. Numiti cele 2 apeluri de sistem necesare pentru a crea un server UDP socket(int domain, int type, int protocol) - creează un socket nelimitat în domeniul specificat. bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) - asignează adresa socket-ului Care este rolul metodei bind()? Metoda bind () definește o relație între socket-ul pe care l-ați creat și adresele disponibile pe gazda dvs. Care este rolul metodelor sendto() și recvfrom()? O dată creat un socket, procesul poate trimite datagrame de pe acel socket, prin apelul funcției sendto(). Datagramele trimise vor avea ca adresă sursă adresa socket-ului ¸si ca adresă destinația ¸si conținut util valorile date ca parametri funcției sendto(). Destinatarul poate citi o datagramă apelând funcția recvfrom(). Această funcție ia următoarea datagramă adresată socket-ului dat ca parametru la recvfrom() ¸si o transferă din buffer-ele sistemului local ân memoria procesului apelant. Care este dimensiunea antetului unui pachet UDP în octeți? Antetul UDP este alcătuit din 4 câmpuri fiecare având lungimea de 2 octeți. Într-o conexiune UDP, clientul sau serverul trimite mai întâi datele? Într-o conexiune UDP serverul nu are nevoie de conexiune cu clientul, astfel el mereu asteaptă Datagramele trimise de clienți. Deci, mai întâi date va transmite clientul către server și anume datele finale, fără a se conecta la protocol. Care este adresa de loopback IPv6 și care este rolul ei? Loopback este un canal de comunicare cu un singur sfarsit. Pe majoritatea calculatoarelor, „localhost” se rezolvă în adresa ip 127.0.0.1, către adresa loopback IPv6 De unde știe un sistem de operare ce aplicație este responsabilă pentru un pachet primit din rețea? Un sistem de operare știe ce aplicație este responsabilă de pachetul primit din rețea datorită informației care îl conține, astfel el în dependență de portul înscris în pachet el transmite către aplicația respectivă care suportă astfel de port. Datele primite prin recvfrom() au întotdeauna aceeași dimensiune cu datele trimise cu sendto()? După ce datele sunt primite prin recvfrom() sistemul nu garantează livrarea tuturor datagramelor (este posibilă pierderea unor datagrame) și nici nu oferă vreun mecanism de informare a expeditorului în cazul unei pierderi. Mai mult, există posibilitatea ca o datagamă să fie duplicată. Din acest motiv nu întotdeauna datele tprimite au aceeași dimensiune cu datele trimise. Este acceptabil să închei execuția programului dacă este detectată o eroare de rețea? Da, deoarece clientul poate sa incerce din nou sa se conecteze la rețea nu este o problemă deoarece încheierea executiei programului nu ar costa mai multe resurse si timp decat incercarea de a se conecta din nou la retea, pentru că UDP nu are nevoie de a face legătura cu serverul. De ce nu este folosit algoritmul Nagle în protocolul UDP? Algoritmul Nagle intarzie trimiterea de pachete mici pe retea bazanduse pe teoria ca vor mai aparea viitoare pachete curand. Dacă am transmite un pachet UDP care 2 octeți algoritmul Nagle le va contra-ataca acesta ducând la întârzierea trimiterii pachetului. Ce instrumente listează socket-urile UDP deschise în sistemele de operare Windows și Linux? Pentru Windows putem folosi Command Prompt și comanda: netstat -an | find "UDP" | more Pentru Linux putem folosi același terminal și următoarele comenzi: /proc/net/tcp -a ss -s Același program poate folosi UDP și TCP? Da, se poate, folosind sockete diferite. Însă sincronizarea între aceste căi de comunicare este dificilă. Diferența dintre aplicații UDP Unicast, Broadcast, și Multicast Unicast - transmiterea unui mesaj de la o singură sursă se poate realiza către o singur destinatar. Brodcast- transmiterea unui mesaj de la o singură sursă se poate realiza către toţi membrii unei subreţele Multicast - reprezintă o tehnică de transmitere a unui mesaj sau a unei informaţii către un grup destinatar, simultan către toţi membrii acestuia, într-o singură transmisie. Ce face mai ușor multiplexarea cu UDP decît cu TCP? Multiplexarea cu UDP este mai ușor decât cu TCP deoarece TCP este un protocol complex, furnizâd un serviciu orientat pe coexiuni, controlul fluxului, porturi multiple, transmiterea datelor în ordine pe când multiplexarea este trimiterea simultan a mai multor pachete. În protocolul UDP este un antet „Total length”, cum se calculează și care este rolul lui? În antetul UDP este partea cu Total Length și ea este egală cu dimensiunea în bytes a segmentului UDP plus dimensiunea headerului (de obicei 8 bytes). Ea este prezentă deoarece UDP transmite mesaje datagram cu o lungime (lungime udp) are poate fi trimis pe mai multe pachete fragmentate IP și se mai folosește la calcularea Checksum-ului.