Partage
  • Partager sur Facebook
  • Partager sur Twitter

Y a t il toujours des pertes en UDP ?

    23 avril 2016 à 19:03:51

    Comme l'indique le titre je souhaiterais savoir si le protocole UDP amène forcément des pertes et si oui alors comment faire pour les calculer.

    Je suis en train de refaire un contrôle et l'une des questions est : "On envoie 15000 octets en UDP, combien de données seront envoyées si tout se passe sans erreur ? Combien de données sont dans les trames ?".

    Comment puis-je faire pour la résoudre ?

    -
    Edité par Thatchantique 23 avril 2016 à 19:06:59

    • Partager sur Facebook
    • Partager sur Twitter
      24 avril 2016 à 1:14:40

      Non, il n'y a pas toujours des pertes, mais l'UDP est conçu de manière à ne jamais le vérifier (contrairement au TCP, où il y a un acquittement pour dire qu'on a bien reçu, sinon on renvoie), donc sans implémenter de mécanismes de vérification supplémentaires (checksum lorsque toutes les données ont été transmises par exemple), l'UDP ne permet pas de vérifier si des paquets ont été perdus.

      UDP utilise un en-tête (header) pour annoncer différentes informations à propos du paquet transmis (expéditeur, destinataire, taille du paquet, checksum du paquet, plus de détails ici), donc la taille d'une trame est supérieure au volume réelle de données transmises.

      La taille des données transmises dans une trame est exprimée sur 16 bits, donc ton paquet peut faire au maximum 2^16 bits (environ 65.000), et tu veux transmettre (15.000 octets * 8) 120.000 bits, tu devras donc utiliser au minimum deux trames avec leurs en-têtes (contenant chacune 60.000 bits, ou avec la première remplie au maximum et la seconde avec le reste).

      Tu enverras donc 120.000 bits plus la taille de 2 en-tête (qui mesurent chacun 16, 24 ou 32 bits, la transmission de l'expéditeur et de la checksum étant optionnels).

      • Partager sur Facebook
      • Partager sur Twitter
      What's it called? Monorail... Once again! MONORAIL!
        24 avril 2016 à 17:38:33

        D'accord je comprends mieux. Merci :)

        Et imaginons que je souhaite envoyer 10 trames en UDP ou en TCP combien d'en-tête UDP/TCP (ou même IP) me faudra t il ?

        • Partager sur Facebook
        • Partager sur Twitter
          25 avril 2016 à 1:04:29

          Tu envoies un en-tête pour chaque trame, puisque l'en-tête définit la taille du paquet (contenu dans la trame, et cette info est nécessaire pour valider qu'on a bien reçu la trame en entier) et la destination de la trame (nécessaire pour savoir à qui la transmettre), en éventuellement le destinataire et la checksum si nécessaire.

          En gros : trame = en-tête + paquet (la taille du paquet étant limité 65.535 bits)

          • Partager sur Facebook
          • Partager sur Twitter
          What's it called? Monorail... Once again! MONORAIL!

          Y a t il toujours des pertes en UDP ?

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown