11 votes

Quelle est la taille minimale d'un paquet TCP

Un post ici :

http://blogs.adobe.com/dreamweaver/2011/02/optimal-css-tiled-background-image-size.html

affirme que "Le téléchargement le plus petit que les navigateurs peuvent effectuer est de 1 Ko."

Est-ce dû à la taille minimale d'un paquet à travers le réseau ? Sinon, quelle est la raison de cela (si c'est effectivement vrai) ?

21voto

DMA57361 Points 18266

Packet est un terme ambigu ici car il est parfois mal utilisé pour désigner différents éléments de votre transmission. Voyons dans quoi vos données sont enveloppées et vous verrez ce que je veux dire, et espérons que vous obtiendrez la réponse que vous vouliez :


Supposons que vous envoyez 1 octet de données1 sur Internet, sur le modèle TCP/IP.

Les données commencent au niveau de l'application et doivent être enveloppées dans des en-têtes pour les niveaux inférieurs afin qu'elles puissent être transmises.

Tout d'abord, ces données sont enveloppées dans un Segment TCP, qui ajoute un en-tête de 20 octets (taille minimale maintenant de 21 octets).
Cela nous place au niveau du transport.

Ceci est ensuite enveloppé dans un Packet IP, qui ajoute un autre en-tête de 20 octets (taille minimale maintenant de 41 octets).
Maintenant nous sommes au niveau internet.
Notez que cet enveloppement est modifié chaque fois qu'un nouveau routeur transmet vos données à un nouveau sous-réseau.

Cela est enveloppé dans une trame de lien de certains types - dont la taille de l'en-tête et du pied varie en fonction du type de trame utilisé, qui dépend du type de lien utilisé.
Cela se situe au niveau du lien.
Cet enveloppement est modifié chaque fois que l'unité est transmise entre deux entités.

Enfin, il y a la transmission physique (par exemple, signaux électriques dans un câble, ondes radio, etc).

Voici quelques images informatives disponibles sur la page Wikipedia du modèle TCP/IP qui aident à expliquer visuellement ce qui se passe :


Encapsulation des données en utilisant UDP/IP


Connexion via les couches dans le modèle TCP/IP


1. Je suppose que vous pourriez envoyer 0 octet... mais je n'ai pas vérifié cela. En fait, je n'ai pas vérifié non plus si 1 octet était autorisé, mais bon.

4voto

shapr Points 203

C'est incorrect, il n'y a pas de taille minimale pour un téléchargement. Vous pouvez le vérifier en créant un petit fichier sur votre serveur web et en utilisant Wireshark pour surveiller le trafic réseau lorsque vous téléchargez ce fichier.

La taille minimale d'un paquet Ethernet standard est de 64 octets.

3voto

sadmicrowave Points 1058

À première vue, le blog que vous citez est incorrect. Il n'y a pas de "taille de téléchargement minimale" pour HTTP. (Et votre théorie sur les tailles minimales de paquets est également incorrecte.)

Cependant, il y a un fond de vérité à cela. Et c'est que si la taille du fichier que vous téléchargez est suffisamment petite, le message de réponse HTTP (composé du fichier et des en-têtes de réponse HTTP) rentrera dans un seul paquet réseau. Si cela se produit, le navigateur est susceptible de recevoir le fichier plus rapidement que s'il fallait deux paquets ou plus pour envoyer la réponse.

(Avec un seul paquet dans la réponse, il y a moins de chances qu'un paquet soit perdu et doive être renvoyé, et plus de chances que la fenêtre de contrôle de flux TCP/IP n'ajoute pas de retards supplémentaires pour l'acquittement des paquets.)

La taille maximale typique d'un paquet envoyé/reçu (le MTU) est de 1500 octets pour l'éthernet. Lorsque vous prenez en compte les surdébits IP et TCP, ainsi que la taille d'un en-tête de réponse HTTP typique, cela pourrait bien vous laisser ~1K restant pour les données de fichier dans le premier paquet d'une réponse. D'où le fond de vérité dans le commentaire du blogueur.

3voto

Niki Points 11

C'est pire que vous ne le pensez.

Le chargement lent de la page est dû au fait que le navigateur a du mal à rendre le pixel 1x1 800000 fois (par exemple, pour une fenêtre de navigateur définie sur 1000x800). Il y a de nombreuses années, peut-être en 1999, j'ai lu un article quelque part qui prescrivait 16x16 comme étant le 'plus rapide' x plus petit pour le carrelage. Bien sûr, le rendu peut être différent maintenant.

Si vous avez lu le billet de blog, la plainte concerne en fait le chargement lent de la page. Pas le téléchargement lent. Cela n'a rien à voir avec les paquets même si la discussion a été intéressante.

Donc peut-être que la question devrait être reformulée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X