User Datagram Protocol


User Datagram Protocol (UDP) és un protocol del nivell de transport del model OSI, basat en l'intercanvi de datagrames. UDP permet l'enviament de datagrames a través d'una xarxa sense que s'hagi establert prèviament una connexió, ja que el mateix datagrama incorpora suficient informació d'adreçament a la seva capçalera. Tampoc té control ni confirmació del flux, per tant els paquets es poden avançar els uns als altres. Tampoc no se sap si els paquets han arribat correctament, ja que no té cap confirmació d'entrega o recepció. El fet que no s'hagin de reconèixer tots els paquets rebuts (mitjançant ACK, és a dir, justificant de recepció), suposa un estalvi de dades (menys overhead) que el fa més àgil que altres protocols del mateix nivell de transport orientats a connexió, com és el cas de TCP. És per això que s'acostuma a fer servir quan és més important la rapidesa que la fiabilitat. Per exemple, per transmetre veu o vídeo, aplicacions on resulta més important transmetre amb velocitat que garantir el fet que arribin absolutament tots els bytes. És també útil per a servidors que responen petites consultes d'un gran nombre de clients. A diferència de TCP, és compatible amb la difusió de paquets. S'acostuma a fer servir per protocol DNS, DHCP, SNMP, NTP, BOOTP, TFTP i més, fins i tot per a alguns jocs amb connexió en línia.

Estructura d'un datagrama UDP
+ Bits 0 - 15 16 - 31
0 Port Origen Port Destí
32 Llargada Checksum
64  
Dades
 

La capçalera UDP consta de 4 camps. L'ús de dos d'ells és opcional en IPv4 (fons de color rosa en el quadre). En IPv6 només el port d'origen és opcional (vegeu més endavant).

  • Port d'origen: Aquest camp identifica el port d'enviament quan significativa i s'ha d'assumir que el port de respondre a si és necessari. Si no s'utilitza, aleshores hauria de ser zero. Si el host d'origen és el client, el número de port és probable que sigui un número de port efímer. Si el host d'origen és el servidor, el número de port és probable que ja el coneguem.
  • Port de destinació: Aquest camp identifica el port de destinació i és necessari. Amb aquest port passa el mateix que amb el port d'origen, si el client és el host de destí, probablement el port serà un número de port efímer i si el host de destí és el servidor, llavors el número de port probablement ja el coneguem.
  • Longitud: Un camp de 16 bits que especifica la longitud en bytes del datagrama complet: capçalera i les dades. La longitud mínima és de 8 bytes, ja que és la longitud de la capçalera. La mida del camp estableix un límit teòric de 65.535 bytes (capçalera de 8 bytes + 65527 bytes de dades) d'un datagrama UDP. El límit pràctic per a la longitud de dades que ve imposada pel protocol IPv4 subjacent és 65.507 bytes.
  • Checksum: El camp de control de 16 bits s'utilitza per a la comprovació d'errors de la capçalera i les dades. L'algorisme per calcular la suma de comprovació és diferent per al transport i la cita sobre IPv4 IPv6. Si la suma de comprovació s'ha omès en IPv4, el camp utilitza el valor de tots els zeros. Aquest camp no és opcional per a IPv6.

Alguns protocols d'aplicació habituals basats als datagrames UDP són:

  • Protocol de configuració dinàmica de host (DHCP)
  • Servei de noms de domini (DNS)
  • Protocol d'hora de xarxa (NTP)
  • Protocol trivial de transferència de fitxers (TFTP)

Descripció tècnica

User Datagram Protocol (UDP) és un protocol mínim de nivell de transport orientat a missatges documentat en el RFC 768 de la IETF.

En la família de protocols d'Internet, UDP proporciona una senzilla interfície entre la capa de xarxa i la capa d'aplicació. UDP no atorga garanties per a l'entrega dels seus missatges i l'origen UDP no reté estats dels missatges UDP que han estat enviats a la xarxa. UDP només afegeix multiplexat d'aplicació i suma de verificació de la capçalera i la càrrega útil. Qualsevol tipus de garanties per la transmissió de la informació han de ser implementades en capes superiors.

Ports

UDP utilitza ports per permetre la comunicació entre aplicacions. El camp de port té una longitud de 16 bits, de manera que el rang de valors vàlids va de 0 a 65.535. El port 0 està reservat, però és un valor permès com a port origen si el procés emissor no espera rebre missatges com a resposta.

Els ports de l'1 al 1023 s'anomenen ports "ben coneguts" i en sistemes operatius tipus Unix enllaçar amb un d'aquests ports requereix accés com a root.

Els ports del 1024 al 49151 són ports registrats.

Els ports del 49.152 al 65.535 són ports efímers i són utilitzats com a ports temporals, sobretot pels clients en comunicar-se amb els servidors.

Fiabilitat i solucions al control de congestions

Les aplicacions UDP generalment han d'acceptar pèrdua, errors o duplicació de paquets. Algunes aplicacions com TFTP poden afegir mecanismes rudimentaris de fiabilitat a la capa d'aplicació si cal. Més comunament, les aplicacions UDP no fan servir mecanismes de fiabilitat i fins i tot els poden fer nosa. Aplicacions de Streaming, jocs amb multi-jugadors en temps real i VoIP (veu sobre IP) són exemples d'aplicacions que sovint usen UDP. En aquestes aplicacions en particular la pèrdua de paquets generalment no és un problema fatal. Si una aplicació requereix un alt grau de fiabilitat, un protocol com el TCP s'hauria de fer servir en comptes de UDP.

Al contrari que TCP, les aplicacions basades en UDP no tenen necessàriament bons mecanismes de control ni per evitar congestions de xarxa. Aplicacions UDP que consumeixen una gran part de l'amplada de banda disponible podrien fer perillar l'estabilitat de la 'Internet, ja que freqüentment provoquen una càrrega que és inelàstica. Mecanismes basats en xarxa han estat proposats per minimitzar els efectes potencials del col·lapse per grans càrregues UDP incontrolades. Elements de xarxa com encaminadors que fan servir encuament de paquets i tècniques per descartar són sovint l'única eina disponible per reduir el tràfic excessiu UDP.

Comparativa entre protocol UDP i TCP

UDP: Proporciona un nivell de transport no fiable de datagrames, ja que afegeix poca informació necessària per a la comunicació extrem a extrem del paquet que envia al nivell inferior. s'utilitzen aplicacions com NFS (Network File System) i RCP (comandes per copiar fitxers entre ordinadors remots), però sobretot s'utilitza en tasques de control i en la transmissió d'àudio i vídeo a través d'una xarxa. No introdueix retards per establir una connexió, no manté l'estat de connexió algun i no realitza seguiment d'aquests paràmetres. Així, un servidor dedicat a una aplicació particular pot suportar més clients actius quan l'aplicació corre sobre UDP en lloc de sobre TCP.

TCP: És el protocol que proporciona un transport més fiable de flux de bits entre aplicacions. Està pensat per poder enviar grans quantitats d'informació de manera fiable, alliberant el programador de la dificultat de gestionar la fiabilitat de la connexió (retransmissions, pèrdues de paquets, duplicació de paquets)que gestiona el mateix protocol. Però la complexitat de la gestió de la fiabilitat té un cost en eficiència, ja que per portar les gestions anteriors cal afegir gran quantitat d'informació als paquets que envia. A causa del fet que els paquets per enviar tenen una mida màxima, com més informació afegeix el protocol per la seva gestió, menys informació provindrà de l'aplicació. El segment TCP té una sobrecàrrega de 20 bytes en cada segment, mentre que UDP només hi afegeix 8 bytes. Per això, quan és més important la velocitat que la fiabilitat, s'utilitza UDP. En canvi, TCP assegura la recepció en destí de la informació per transmetre.

Aplicacions

Mentre que la quantitat total de trànsit UDP trobat en una xarxa típica sol ser de l'ordre de només un petit percentatge, nombroses aplicacions clau d'Internet utilitzen UDP, incloent-hi: el Domain Name System (DNS), on les consultes ha de ser ràpides i només consisteix en una petició única seguida d'un paquet de resposta única, el Simple Network Management Protocol (SNMP), el Dynamic Host Configuration Protocol (DHCP) i el Routing Information Protocol (RIP).

Trànsit de veu i de vídeo es transmeten generalment usant UDP. El vídeo en temps real i els protocols de streaming d'àudio estan dissenyats per manejar ocasionals paquets perduts, en lloc de grans paquets de retards en cas de pèrdua de paquets retransmesos. Com que tots dos TCP i UDP s'executen en la mateixa xarxa, moltes empreses estan descobrint un recent augment en el tràfic UDP d'aquestes aplicacions en temps real està obstaculitzant el desenvolupament de les aplicacions que utilitzen TCP, com a punt de venda, comptabilitat i sistemes de base de dades.

Quan detecta la pèrdua de paquets TCP, és portat cap enrere el seu "data rate usage". El desenvolupament de la qualitat per a les solucions del servei és crucial atès que les aplicacions de negoci són importants per a les empreses.

Transmissió de vídeo i veu

UDP és generalment el protocol usat en la transmissió de vídeo i veu a través d'una xarxa. Això és perquè no hi ha temps per enviar de nou paquets perduts quan s'està escoltant algú o veient un vídeo en temps real (un petit sacrifici per tal de no repercutir en la sensació de 'temps real' de cara a l'usuari).

Ja que tant TCP com UDP circulen per la mateixa xarxa, en molts casos passa que l'augment del trànsit UDP danya el correcte funcionament de les aplicacions TCP. Per defecte, TCP passa a un segon lloc per deixar les dades en temps real utilitzar la major part de l'amplada de banda. El problema és que tots dos són importants per a la major part de les aplicacions, de manera que trobar l'equilibri entre ambdós és crucial (aquí és on es veu l'eficiència d'un programa o aplicació).

Codi d'exemple (Python 3.x)

El següent codi d'exemple mostra com utilitzar el protocol UDP per una comunicació client/servidor:

Servidor:

import socketserver
print("Servidor iniciant...")
class MyUDPHandler(socketserver.BaseRequestHandler):
 def handle(self):
 data = self.request[0].strip()
 socket = self.request[1]
 print("%s Ha escrit:" % self.client_address[0])
 print(data)
 socket.sendto(data.upper(), self.client_address)
if __name__ == "__main__":
 HOST, PORT = "localhost", 9999
 server = socketserver.UDPServer((HOST, PORT), MyUDPHandler)
 server.serve_forever()

Client (Canvia "localhost" per l'adreça IP del servidor):

import socket
import sys
print("Client iniciant...")
HOST, PORT = "localhost", 9999
data = " ".join(sys.argv[1:])

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

sock.sendto(bytes(data + "\n","utf8"), (HOST, PORT))
received = sock.recv(1024)

print("Enviat: %s" % data)
print("Rebut: %s" % received)

Codi d'exemple (C++)

El següent codi mostra com es pot utilitzar el protocol UDP per una comunicació client/servidor:

Servidor:

#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")

const int BufLen = 1024;

int main()
{
 	WSADATA wsaData;
 	SOCKET RecvSocket;
 	sockaddr_in RecvAddr;
 	int Puerto = 2345;
 	char RecvBuf[BufLen];
 	sockaddr_in SenderAddr;
 	int SenderAddrSize = sizeof(SenderAddr);
 	WSAStartup(MAKEWORD(2,2), &wsaData);
 	RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 	RecvAddr.sin_family = AF_INET;
 	RecvAddr.sin_port = htons(Puerto);
 	RecvAddr.sin_addr.s_addr = INADDR_ANY;
 	bind(RecvSocket, (SOCKADDR *) &RecvAddr, sizeof(RecvAddr));
 	recvfrom(RecvSocket,RecvBuf, BufLen,0,(SOCKADDR *)&SenderAddr,&SenderAddrSize);
	printf("%s\n",RecvBuf);
 	closesocket(RecvSocket);
 	WSACleanup();
}

Client (Canvia "127.0.0.1" per l'adreça IP del servidor):

#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")

int main()
{
	WSADATA wsaData;
 	SOCKET SendSocket;
 	sockaddr_in RecvAddr;
	int Puerto = 2345;
 	char ip[] = "127.0.0.1";
 	char SendBuf[] = "Hola!!!!";
 	WSAStartup(MAKEWORD(2,2), &wsaData);
 	SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
 	RecvAddr.sin_family = AF_INET;
 	RecvAddr.sin_port = htons(Puerto);
 	RecvAddr.sin_addr.s_addr = inet_addr(ip);
 	sendto(SendSocket,SendBuf,strlen(SendBuf)+1,0,(SOCKADDR *) &RecvAddr,sizeof(RecvAddr));
 	WSACleanup();
}

Vegeu també

Read other articles:

Il ponte sul fiume KwaiLocandina del filmTitolo originaleThe Bridge on the River Kwai Paese di produzioneRegno Unito, Stati Uniti d'America Anno1957 Durata161 min Genereavventura, drammatico, guerra RegiaDavid Lean SoggettoPierre Boulle SceneggiaturaCarl Foreman e Michael Wilson ProduttoreSam Spiegel FotografiaJack Hildyard MontaggioPeter Taylor MusicheKenneth Alford, Malcolm Arnold e Nat Ayer ScenografiaDonald M. Ashton CostumiJohn Wilson-Apperson TruccoStuart Freeborn e George P...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada April 2017. Arley de Queroz SandimInformasi pribadiTanggal lahir 25 Mei 1986 (umur 37)Tempat lahir BrasilPosisi bermain PenyerangKarier senior*Tahun Tim Tampil (Gol)2005 Sagan Tosu * Penampilan dan gol di klub senior hanya dihitung dari liga domestik Arley de Q...

 

Bronze statue of George Clinton by Henry Kirke Brown George ClintonThe sculpture in the National Statuary Hall CollectionArtistHenry Kirke BrownMediumBronze sculptureSubjectGeorge ClintonLocationWashington, D.C., United States George Clinton is an 1873 bronze sculpture depicting the American soldier and statesman of the same name by Henry Kirke Brown, installed in the United States Capitol, in Washington D.C., as part of the National Statuary Hall Collection. It is one of two statues donated ...

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

 

2007 Indian filmKaruppusamy KuththagaithaararDVD coverDirected byA. GovindamoorthyWritten byA. GovindamoorthyProduced bySethuD.GopinathDheeraj KherR.BalasubramaniamVineet GogiyaStarringKaranMeenakshiVadiveluCinematographyJ. SridharEdited byS. ShathishMusic byDhinaRelease date 14 May 2007 (2007-05-14) Running time150 minutesCountryIndiaLanguageTamil Karuppusamy Kuththagaithaarar is a 2007 Indian Tamil-language masala film written and directed by A. Govindamoorthy. the song lyri...

 

  هذه المقالة عن عين ست الروم في فلسطين. لآثار ست الروم في سوريا، طالع ست الروم (سوريا). لهنا، طالع عين ست الروم (توضيح). عين ست الروم (فلسطين)معلومات عامةنوع المبنى ينبوع المنطقة الإدارية محافظة الخليل — دورا البلد  دولة فلسطين ارتفاع المبنىالارتفاع عن سطح البحر 830 مت�...

SMA Karya Pembangunan 2 Ciparaysma karya pembangunan 2 ciparayInformasiDidirikan2004AkreditasiAKepala SekolahMirwan Fauzi, S.Pd.I (2017-sekarang)Jumlah kelas5 Kelas X, 5 Kelas XI, 4 Kelas XIIJurusan atau peminatanIPA, IPSRentang kelasX MIPA, X IPS, XI IPA, XI IPS, XII IPA, dan XII IPSKurikulumKurikulum 2013 dan Kurikulum MerdekaJumlah siswa468 Siswa (136 siswa kelas XII, 165 siswa kelas XI dan 167 untuk kelas X)AlamatLokasiJl. Ciparay-Rancakole KM 6.0, Desa Mekarlaksana, Kec.Ci...

 

Национальное аэрокосмическое агентство Азербайджана Штаб-квартира Баку, ул. С. Ахундова, AZ 1115 Локация  Азербайджан Тип организации Космическое агентство Руководители Директор: Натиг Джавадов Первый заместитель генерального директора Тофик Сулейманов Основание Осн�...

 

American baseball player (born 1985) Baseball player Cole KimballKimball (left) with the Washington NationalsPitcherBorn: (1985-08-01) August 1, 1985 (age 38)Brooklyn, New York, U.S.Batted: RightThrew: RightMLB debutMay 14, 2011, for the Washington NationalsLast MLB appearanceJune 9, 2011, for the Washington NationalsMLB statisticsWon-Loss record1-0Earned run average1.93Strikeouts11 Teams Washington Nationals (2011) Cole A. Kimball (born August 1, 1985) is a...

Department of Public SafetyDepartment overviewHeadquarters1900 E Woodrow Wilson AveJackson, MississippiEmployeesApprox. 1 400 (2021)[1]Annual budgetApprox. $147 000 000[2]Department executiveSean Tindell[3], CommissionerWebsitewww.dps.ms.gov The Mississippi Department of Public Safety is an administrative department of the Government of Mississippi, headquartered in Jackson. It is responsible for the state Highway Patrol and commercial vehicle enforcement; specialized ...

 

Technique to quantify and describe physically the human color perception This article is about measurement of color. For use in chemistry, see Colorimetry (chemical method). Not to be confused with Calorimetry. Colorimetry is the science and technology used to quantify and describe physically the human color perception.[1] It is similar to spectrophotometry, but is distinguished by its interest in reducing spectra to the physical correlates of color perception, most often the CIE 1931...

 

Peta lokasi Mandaluyong. Mandaluyong adalah kota yang terletak di Metro Manila, Filipina. Kota ini memiliki populasi sebesar 305.576 jiwa. Kota ini memiliki 27 barangay. Pranala luar Philippine Standard Geographic Code Diarsipkan 2012-04-13 di Wayback Machine. 2000 Philippine Census Information lbsKota dan Munisipalitas Metro ManilaKotaCaloocan · Las Piñas · Makati · Malabon · Mandaluyong · Manila · Marikina · Munti...

County in Kansas, United States Not to be confused with Ottawa, Kansas. County in KansasOttawa CountyCountyDowntown Minneapolis (2009)Location within the U.S. state of KansasKansas's location within the U.S.Coordinates: 39°08′00″N 97°40′00″W / 39.1333°N 97.6667°W / 39.1333; -97.6667Country United StatesState KansasFoundedFebruary 27, 1860Named forOdawa tribeSeatMinneapolisLargest cityMinneapolisArea • Total721 sq mi (1,870...

 

Donnie FreemanPersonal informationBorn (1944-07-18) July 18, 1944 (age 79)Madison, Illinois, U.S.NationalityAmericanListed height6 ft 3 in (1.91 m)Listed weight185 lb (84 kg)Career informationHigh schoolMadison (Madison, Illinois)CollegeIllinois (1963–1966)NBA draft1966: 3rd round, 29th overall pickSelected by the Philadelphia 76ersPlaying career1967–1976PositionShooting guard / point guardNumber20, 13Career history1967–1970Minnesota Muskies / Miami Floridi...

 

هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها. يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (فبراير 2016) الطري�...

Village in Nabatieh Governorate, LebanonMarjayoun مرجعيونVillageChurch in Marjayoun, 1977MarjayounLocation in LebanonCoordinates: 33°21′43″N 35°35′23″E / 33.36194°N 35.58972°E / 33.36194; 35.58972Grid position135/158 LCountry LebanonGovernorateNabatieh GovernorateDistrictMaryajounElevation860 m (2,822 ft)Population (2022) • Total7,000−10,000 • ReligionsGreek Orthodoxy Melkite Greek Catholic Archeparc...

 

У Вікіпедії є статті про інші значення цього терміна: Цюрих (значення). Цюрих нім. Zürich Герб Прапор Країна  Швейцарія[1] Кантон Цюрих Межує з: сусідні адмінодиниці Адлісвіль, Дюбендорф, Маур, Опфікон, Реґенсдорф, Шлірен, Шталлікон, Урдорф, Валлізелл...

 

Railway station in Worcestershire, England HoneybourneFGW 43164 leads a Paddington to Hereford service through Platform 1 in July 2013.General informationLocationHoneybourne, WychavonEnglandCoordinates52°06′04″N 1°50′06″W / 52.101°N 1.835°W / 52.101; -1.835Grid referenceSP114448Managed byGreat Western RailwayPlatforms2Other informationStation codeHYBClassificationDfT category F2HistoryOriginal companyOxford, Worcester and Wolverhampton RailwayPre-groupingGr...

Leonardo RingoLahir5 Agustus 1977 (umur 47)LampungNama lainMugeni SpacekidPekerjaanmusisi, penyanyi, penyiar radio, penulis laguKarier musikGenrejazz, blues, rock, balladTahun aktif1995 - sekarangLabelDemajorsAnggotaLeonardo and the Impeccable SixMantan anggotaVesselZeke and the Popo Leonardo Ringo (lahir 5 Agustus 1977) adalah seorang penyanyi, penulis lagu, penyiar radio dan sutradara video klip berkebangsaan Indonesia. Ia telah berkarier di dunia penyiaran selama lebih dari dua ...

 

Pour les articles homonymes, voir Jason Lee (homonymie) et Lee. Cet article est une ébauche concernant un acteur, un producteur et le skateboard américain. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les conventions filmographiques. Jason Lee Jason Lee en janvier 2015, à Westwood, Californie. Données clés Nom de naissance Jason Michael Lee Naissance 25 avril 1970 (54 ans)Orange, Californie(États-Unis) Nationalité Américaine Profession ActeurP...