Quelle est la plus Sûre de la Taille des Paquets UDP 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)
Donné le minimum MTU sur 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é?
- En double, voir stackoverflow.com/questions/900697/...
- Ses un slighlty autre question. Je me demande quel est le plus gros paquet, je peux envoyer via internet (sans aucune connaissance des autres réseaux, ou de sondage) qui ne va pas avoir la fragmentation. Essentiellement le maximum de sécurité taille, qui va travailler sur evereything sans avoir à vous soucier de détection de la connexion.
- ne devrait-ce pas être sur ServerFault?
- Vous ne pouvez pas éliminer la possibilité de fragmentation, mais cela ne rend pas les choses moins sûr. Si un fragment est tombé, c'est le même que si l'ensemble du paquet a été abandonné, ce qui arrive avec UDP de toute façon. Dangereux serait si un paquet a dépassé la taille minimale que les routeurs ont été requis à l'appui, et n'était donc pas la garantie d'être livrable (par rapport à la garantie d'être livré). C'est là que le 512 octets chiffre est en.
Vous devez vous connecter pour publier un commentaire.
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 comme 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.
La limite théorique (sur Windows) pour la taille maximale d'un paquet UDP est 65507 octets. C'est documenté ici:
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.
Le maximum de sécurité UDP charge utile est de 508 octets. C'est une taille de paquet de 576, moins le maximum 60 octets d'en-tête IP et le 8 octets en-tête UDP. Tout UDP charge de cette taille ou plus petits est assuré d'être livrable sur IP (mais pas la garantie d'être livré). Plus rien n'est autorisé à être carrément abandonné par n'importe quel routeur pour une raison quelconque. Sauf sur un IPv6 route, où la charge utile maximale est de 1,212 octets. Comme d'autres l'ont mentionné, les en-têtes de protocole additionnel pourrait être ajouté dans certaines circonstances. Un plus conservatrice de la valeur de l'ordre de 300 à 400 octets peut être préféré à la place.
Aucun paquet UDP peut être fragmenté. Mais ce n'est pas trop important, parce que la perte d'un fragment a le même effet que la perte d'un paquet non fragmenté: l'ensemble du paquet est supprimé. Avec UDP, c'est ce qui arrivera de toute façon.
Fait intéressant, le montant maximum théorique de la taille de paquet est d'environ 30 MO (de 1500 MTU ethernet - 60 IP en-tête x 65 536 nombre maximum de fragments), bien que la probabilité de passer à travers, serait infinitésimale.
Sources: RFC 791, RFC 2460
576 est la minimum maximum remontage taille de la mémoire tampon, c'est à dire la mise en œuvre doit être capable de réassembler les paquets de au moins de cette taille. Voir IETF RFC 1122 pour plus de détails.
Cet article décrit l'unité de transmission maximale (MTU) http://en.wikipedia.org/wiki/Maximum_transmission_unit. Il affirme que les hôtes IP doit être en mesure de traiter 576 octets pour un paquet IP. Toutefois, il note que le minimum est de 68. RFC 791: "Chaque module internet doit être en mesure de transmettre un datagramme de 68 octets sans fragmentation. C'est parce qu'un en-tête internet peut être jusqu'à 60 octets, et le minimum fragment est de 8 octets."
Ainsi, coffre-fort de la taille des paquets de 508 = 576 - 60 (en-tête IP) - 8 (entête udp) est raisonnable.
Comme mentionné par user607811, la fragmentation par les autres couches du réseau doit être remonté.
https://tools.ietf.org/html/rfc1122#page-56
3.3.2 le Remontage
La couche IP DOIT mettre en œuvre le réassemblage des datagrammes IP.
On désigne le plus grand taille du datagramme qui peut être remonté
par EMTU_R ("Efficace MTU à recevoir"); c'est parfois
appelé le "remontage taille de la mémoire tampon". EMTU_R DOIT être plus grande
égale ou supérieure à 576
IPv4 minimum remontage taille de la mémoire tampon est de 576, l'IPv6 est à 1500. Soustraire de l'en-tête de tailles à partir d'ici. Voir UNIX Réseau de Programmation par W. Richard Stevens 🙂
512 est votre meilleur pari. Il est utilisé ailleurs et un nombre encore plus agréable (la moitié de 1024).
É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 si ils se font prendre).
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
****Mise à JOUR****
Diverses réponses donner des valeurs maximales autorisées par 1 SW vendeur ou différentes réponses en supposant que l'encapsulation. L'utilisateur n'a pas demandé la valeur la plus faible possible (comme le "0" pour un coffre-fort UDP taille), mais le plus grand coffre-fort de la taille des paquets.
Encapsulation des valeurs pour les différentes couches peuvent être inclus plusieurs fois. Car une fois que vous avez encapsulé un cours d'eau -- rien n'interdit, par exemple, une VPN de couche en dessous et un duplicata de l'encapsulation des couches au-dessus.
Puisque la question était sur le maximum des valeurs sûres, je suppose qu'ils parlent le maximum de valeur sûre pour un paquet UDP, qui peut être reçu. Depuis pas de paquet UDP est garanti, si vous recevez un paquet UDP, le plus grand coffre-fort de la taille serait 1 paquet sur IPv4 ou 1472 octets.
Remarque: si vous utilisez IPv6, la taille maximale serait 1452 octets, que l'IPv6 de la taille d'en-tête est de 40 octets vs IPv4 est de 20 octets taille (et de toute façon, il faut toujours prévoir de 8 octets pour l'en-tête UDP).
J'ai lu quelques bonnes réponses ici; cependant, il y a quelques erreurs mineures. Certains ont répondu que le Message de Longueur de champ dans l'en-tête UDP est un max de 65535 (0xFFFF); c'est techniquement vrai. Certains ont répondu que le maximum est (65535 - IPHL - UDPHL = 65507). L'erreur, c'est que le Message de Longueur de champ dans l'en-Tête UDP comprend tous les de la charge utile (Couches 5 à 7), plus la longueur de l'Entête UDP (8 Octets). Ce que cela signifie, c'est que si le message champ longueur est de 200 Octets (0x00C8), la charge utile est en fait 192 Octets (0x00C0).
Ce qui est dur et rapide, c'est que la taille maximale d'un datagramme IP est de 65535 Octets. Ce numéro est arrivé à la somme totale de la L3 et L4 en-têtes, de plus, les Couches 5 à 7 de la charge utile. L'en-Tête IP + Entête UDP + Couches 5 À 7 = 65535 (Max).
Le plus de la réponse correcte, ce qui est la taille maximale d'un UDP datagam est 65515 Octets (0xFFEB), comme un datagramme UDP inclut l'en-tête UDP. Le plus de la réponse correcte, ce qui est la taille maximale d'un UDP charge utile est 65507 Octets, comme UDP Charge utile de ne pas inclure l'en-tête UDP.