Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
3Activity
0 of .
Results for:
No results containing your search query
P. 1
Entête UDP

Entête UDP

Ratings: (0)|Views: 42|Likes:
Published by SANGARE SOULEYMANE

More info:

Published by: SANGARE SOULEYMANE on Sep 14, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

06/24/2010

pdf

text

original

 
Entête UDPpar _SebF
1 - Définition du protocole
Le protocole UDP est baséen couche 4. Il n'ouvre pas de session et n'effectue pas de controld'erreur. Il est alors appelé "mode non connecté". Il est donc peut fiable, cependant, il permetaux applications d'accéder directement à un service de transmission de Datagrammes rapide.UDP est utilisé pour transmettre de faibles quantités de données où le coût de la création deconnexions et du maintient de transmissions fiables s'avèrent supérieur aux données à émettre.UDP peut également être utilisé pour les applications satisfaisant à un modèle de type"interrogation réponse". La réponse étant utilisée comme un accusé de réception àl'interrogation. On y trouve classiquement Snmp etDns. UDP est aussi utilisé dans un secondcas, tel que la voix sur IP. L'envoi en temps réel est primordiale, donc si une trame n'arrivait pas, la retransmission serait inutileVous trouverez tous les détails du protocole UDP dans laRfc 768.
2 - Structure de l'entête
Voici la structure de l'entête UDP basé sur 8 octets.
 
3 - Définition des différents champs
3.1 - Port source
Le champ Port source est codé sur 16 bits et correspond au port relatif à l'application en courssur la machine source.
3.2 - Port destination
Le champ Port destination est codé sur 16 bits et il correspond au port relatif à l'application encours sur la machine de destination.Vous trouverezla liste des ports TCPofficialisées par l'IANA, organisation gérant mondialement les adressage IP.
3.3 - Longueur 
Le champ Longueur est codé sur 16 bits et il représente la taille de l'entête et des données.Sont unité est l'octet et sa valeur maximale est 64 Koctets (2
16
).
3.4 - Checksum
Le champ Checksum est codé sur 16 bits et représente la validité du paquet de la couche 4UDP.Le Checksum est constitué en calculant le complément à 1 sur 16 bits de la somme descompléments à 1 des octets de l'en-tête et des données pris deux par deux (mots de 16 bits). Sile message entier contient un nombre impair d'octets, un 0 est ajouté à la fin du message pour terminer le calcul du Checksum. Cet octet supplémentaire n'est pas transmis. Lors du calculdu Checksum, les positions des bits attribués à celui-ci sont marquées à 0.Le Checksum couvre de plus, une pseudo en-tête de 96 bits préfixée à l'en-tête UDP. Cette pseudo en-tête comporte les adresses Internet source et destinataires, letype de protocole et la longueur du message UDP. Ceci protège UDP contre les erreurs de routage.La longueur UDP compte le nombre d'octets de l'en-tête UDP et des données du message, enexcluant les 12 octets de la pseudo en-tête.
 
Voici un exemple de fonction permettant le calcul du checksum UDP. Elle est identique àcelle deTCP.struct pseudo_entete{unsigned long ip_source; // Adresse ip sourceunsigned long ip_destination; // Adresse ip destinationchar mbz; // Champs à 0char type; // Type de protocole (6->TCP et 17->UDP)unsigned short length; // htons( Taille de l'entete Pseudo + Entete TCP ou UDP + Data )};unsigned short calcul_du_checksum(bool liberation, unsigned short *data, int taille){unsigned long checksum=0;// ********************************************************// Complément à 1 de la somme des complément à 1 sur 16 bits// ********************************************************while(taille>1){if (liberation==TRUE)liberation_du_jeton(); // Rend la main à la fenêtre principalechecksum=checksum+*data++;taille=taille-sizeof(unsigned short);}if(taille)checksum=checksum+*(unsigned char*)data;checksum=(checksum>>16)+(checksum&0xffff);checksum=checksum+(checksum>>16);return (unsigned short)(~checksum);}unsigned short calcul_du_checksum_udp(bool liberation, unsigned long ip_source_tampon,unsigned long ip_destination_tampon, struct udp udp_tampon, char data_tampon[65535]){struct pseudo_entete pseudo_udp;char tampon[65535];unsigned short checksum;// ********************************************************// Initialisation du checksum// ********************************************************udp_tampon.checksum=0; // Doit être à 0 pour le calcul// ********************************************************// Le calcul du Checksum UDP (Idem à TCP)// ********************************************************// Le calcul passe par une pseudo entete UDP + l'entete UDP + les Datapseudo_udp.ip_source=ip_source_tampon;pseudo_udp.ip_destination=ip_destination_tampon;

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->