salut,
j'envisage de gerer un protocole de communication entre deux applications en sa basant sur UDP en unicast et je voulais savoir si la taille d'un message a envoyer est limitée par une taille donnée?
merci
salut,
j'envisage de gerer un protocole de communication entre deux applications en sa basant sur UDP en unicast et je voulais savoir si la taille d'un message a envoyer est limitée par une taille donnée?
merci
Oui, c'est limité par la couche du dessous, a savoir IP, puis par la taille max des datagrammes.
Au maximum un datagramme peut faire 65535 octets.
Au maximum un packet IP peut contenir 65535 - 20 (header ip) = 65515 octets
Au maximum un packet UDP peut contenir 65515 - 8 (header udp) = 65507 octets
Il faut faire attention que ce sont les tailles maximum theorique.
En pratique, windows limite la taille des datagrammes a 8192.
Donc sous windows un packet UDP peut contenir 8192 - 20 - 8 = 8164 octets
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Ok je vois , mais pourquoi on distingue un packet d'un datagramme?
quelle est la difference? c'est trés important de moi de savoir sachant que tout ce u eje veux c'est envoyer de données selon un format qui m'a été exigé à une application distante sur le même LAN et en unicast( j'aimerai aussi savoir la difference entre unicast et multicast)![]()
merci infiniment
Bof. Datagramme/Paquet, c'est un peu equivalent. Generalement on dit datagramme lorsqu'on parle de la "trame" complete = tous les octets bout a bout.
Le packet c'est une suite d'octets, generalement composé d'un header et de données. Donc dans un datagramme, tu as un packet (header+données). Dans les données de ce packet, tu as un autre packet , et ainsi de suite. C'est ce qu'on appelle l'encapsulation.
Pour faire simple, l'unicast c'est l'envoie d'un datagramme par un emeteur a un destinataire. Le multicast c'est l'envoie d'un datagramme par un emeteur a plusieurs destinataires (et meme a tous les destinataires possibles)
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Ok super je vois clair maintenant et un exemple m'a permis de mieux cerner les principes aussi :
http://sardes.inrialpes.fr/~jean/ens...reseau/PDF.pdf
cependant je suis face a une petite contrainte technique, étant donné que UDP est en mode non connecté et qu'il s'agit d'une connexion inicast ( exigée) comment mettre en ouvre un mecanisme d'acquittement de reception des datagrammes? on m'a demandé de le mettre en ouvre en respectant plusieurs timeout selon des cas bien défini(type de datagramme) ...donc comment est ce possible d'implementer cela?
merci
Si tu as suivi ce que j'ai dit avant, tu peux encapsuler a l'infini (ou presque) des paquets... a toi de creer ton propre "protocole" encapsulé dans UDP pour gerer tes acquitements et timeout:
Tu peux t'inspirer de protocoles existants comme RTP (Real-time Transport Protocol).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 |----------------------------------------------| = Trame (8192 octets) |--20--|----------------8172-------------------| = IP (20+8172 octets) |-8-|--------------8164-----------------| = UDP (8+8164 octets) |--X--|------------Y----------------| = TonProtocole (X+Y=8164 octets)
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Partager