2009-12-04 3 views
26

Quelle est la taille d'un datagramme UDP vide? Et celui d'un paquet TCP vide?Taille du paquet UDP et TCP vide?

Je ne peux trouver que des informations sur le MTU, mais je veux savoir quelle est la taille "de base" de ceux-ci, afin d'estimer la consommation de bande passante pour les protocoles sur eux.

Merci d'avance pour les infos.

+6

Wikipedia vous dit tout ce que vous devez savoir dans ce cas ... – Artelius

+1

Quelle couche de serveur? UDP sur IP peut rouler sur ** plusieurs ** couches de serveur, dont l'Ethernet mais il y a aussi MPLS, PBT, Frame Relay, ATM, POS etc. – jldupont

Répondre

64

Taille du cadre Ethernet - 24 Octets
Taille de tête IPv4 (sans option) - 20 octets
Taille d'en-tête TCP (sans option) - 20 octets
donc la taille totale de datagrammes vide TCP - 24 + 20 + 20 = 64 octets

taille de tête UDP - 8 octets
taille Alors total de datagrammes UDP vide - 24 + 20 + 8 = 52 octets

+2

cela (erreurs modulo possibles :) était en effet le résultat global que je cherchais en effet! – puccio

+5

Je pense que la trame Ethernet minimale est de 64 octets (la capacité utile doit être complétée à au moins 46 octets). – Useless

+1

Cependant, tous les protocoles TCP et UDP ne sont pas transportés par Ethernet, en fait, le même paquet peut très bien être transporté sur plusieurs couches physiques différentes au cours de son transit sur différents réseaux. – caf

8

Voir User Datagram Protocol. L'en-tête UDP est long de 8 octets (64 bits).

La taille minimale de l'en-tête TCP nu est de 5 mots (mot 32 bits), tandis que la taille maximale d'un en-tête TCP est de 15 mots.

Meilleurs voeux, Fabian

1

Artelius et Halfdan sont corrects, mais vous manque quelque chose: UDP et TCP tournent tous deux au-dessus de certains transport physique. Par exemple, si vous utilisez UDP sur Ethernet, vous devez également inclure la taille de la ethernet frame

+0

Eh bien .. et bien sûr le cadre IP si vous le voulez être routé. – halfdan

+0

Il n'y a pas de "trame IP": vous voulez probablement faire référence à un "paquet IP". – jldupont

13

Himanshus réponse est parfaitement correcte. Ce qui pourrait être trompeur lorsqu'on regarde la structure d'une trame Ethernet [voir plus loin], c'est que sans charge utile, la taille minimale d'une trame Ethernet serait de 18 octets: Dst Mac (6) + Src Mac (6) + Longueur (2) + Fcs (4), en ajoutant la taille minimum de IPv4 (20) et TCP (20) nous donne un total de 58 octets.

Ce qui n'a pas encore été mentionné, c'est que la charge utile minimale d'une trame ethernet est de 46 octets, donc les 20 + 20 octets de l'IPv4 et du TCP ne suffisent pas! Cela signifie que 6 octets doivent être complétés, c'est de là que vient le total de 64 octets.

18 (min. Ethernet "en-tête" champs) + 6 (rembourrage) + 20 (IPv4) + 20 (TCP) = 64 octets

Hope this efface les choses un peu.

Lectures complémentaires:

+2

est-ce que cela signifie également ce qui suit? 18 (minuscules champs "en-tête" Ethernet) + 18 (remplissage) + 20 (IPv4) + 8 (UDP) = 64 octets? Au total 18 + 20 + 8 = 46 octets pour la charge utile IP + UDP. – Ali

+3

Oui! Là encore 20 + 8 (= 28) ne suffit pas pour la charge utile Ethernet minimale, donc 18 octets de remplissage sont nécessaires (20 + 8 + 18 = 46). – Felix

+0

Si vous vous demandez comment distinguer un paquet TCP vide d'un paquet avec 1 à 6 octets de données utiles sur un ethernet, utilisez le champ "longueur totale" dans l'en-tête IP. –

0

Si vous avez l'intention de calculer la consommation de bande passante et de les rapporter au taux maximum de votre réseau (comme 1Gb/s ou 10Gb/s), il est nécessaire, comme indiqué par Useless, d'ajouter le Ethernet framing overhead at layer 1 aux nombres calculés par Felix et autres, à savoir

  • 7 octets de préambule
  • 1 octet de début de trame délimiteur
  • 12 octets d'espacement interpaquet

-à-dire un total de 20 octets plus consommé par paquet.

Questions connexes