222 votes

Ce qui est la plus grande taille de paquet UDP sans danger sur Internet

J'ai lu un certain nombre d'articles sur des paquets UDP tailles, mais ont été incapables d'en venir à une conclusion sur ce qui est correct.

Un certain nombre de services de restreindre le plus grand paquet UDP à 512 octets (comme dns)

Compte tenu de la MTU minimum sur l'internet est de 576 , et la taille de l'en-tête IPv4 est de 20 octets, et l'UDP-tête de 8 octets. Cela laisse 548 octets pour les données de l'utilisateur

Serais-je capable d'utiliser les paquets jusqu'à la taille de 548 sans la fragmentation des paquets? Ou est-il quelque chose que les créateurs de DNS connaissaient, et que pourquoi ils l'ont limité à 512 octets.

Je pourrais même aller plus que 548 octets en toute sécurité?

143voto

mark4o Points 20472

Il est vrai qu'un typique en-tête IPv4 est de 20 octets, et l'entête UDP est de 8 octets. Toutefois, il est possible d'inclure des options de propriété intellectuelle, qui peuvent augmenter la taille de l'en-tête IP 60 octets. En outre, il est parfois nécessaire pour les nœuds intermédiaires pour encapsuler les datagrammes à l'intérieur d'un autre protocole IPsec (utilisé pour les Vpn et autres) afin d'acheminer le paquet à sa destination. Donc, si vous ne connaissez pas le MTU sur votre chemin d'accès réseau, il est préférable de laisser une marge raisonnable pour d'autres informations d'en-tête que vous ne les attendiez pas. Une de 512 octets UDP charge utile est généralement considéré comme le faire, mais qui ne laisse pas assez d'espace pour un maximum la taille de l'en-tête IP.

62voto

Reed Copsey Points 315315

La limite théorique (sur Windows) pour la taille maximale d'un paquet UDP est 65507 octets. C'est documenté ici:

Le bon UDP maximale taille du message est 65507, tel que déterminé par la formule suivante: 0xffff - (sizeof(en-Tête IP) + sizeof(en-Tête UDP)) = 65535-(20+8) = 65507

Cela étant dit, la plupart des protocoles limite à une taille beaucoup plus petite - généralement soit 512 ou à l'occasion 8192. Vous pouvez souvent aller de plus que 548 en toute sécurité si vous êtes sur un réseau fiable - mais si vous êtes à la radiodiffusion à travers l'internet au sens large, plus vous allez, plus vous aurez de chance d'être à courir dans la transmission des paquets de problèmes et la perte.

47voto

user607811 Points 171

576 est la taille de tampon minimale remontage maximal, c'est-à-dire chaque application doit être capable de remonter les paquets d’au moins cette taille. Pour plus d’informations, consultez RFC 1122.

12voto

Nikolai N Fetissov Points 52093

IPv4 taille de mémoire tampon maximale de remontage est 576, IPv6 a à 1500. Soustraire des tailles de l’en-tête d’ici. Voir UNIX Network programmation par w. Richard Stevens :)

7voto

Astara Points 121

Étant donné que le protocole IPV6 a une taille de 1500, je dirais que les transporteurs ne serait pas de fournir des chemins séparés pour IPV4 et IPV6 (ils sont tous les deux IP avec différents types), les forçant à l'équipement pour ipv4 qui serait vieux, redondant, plus coûteux à entretenir et moins fiable. Il n'aurait pas de sens. En outre, cela pourrait facilement être considéré comme accordant un traitement de faveur pour une partie du trafic -- un pas en vertu des règles qu'ils ne se préoccupent pas beaucoup (sauf s'ils sont pris).

Donc 1472 doivent être sans danger pour l'usage externe (mais cela ne veut pas dire qu'une application comme DNS qui ne savent pas à propos de EDNS l'accepte), et si vous parlez interne filets, vous pouvez plus susceptibles de connaître votre disposition du réseau auquel cas jumbo tailles de paquets de demander pour les non-paquets fragmentés afin de 4096 - 4068 octets, et pour intel cartes avec 9014 octet tampons, une taille de paquet de ... attendez...8086 octets, serait le max...coïncidence? ricaner

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X