Question

J'ai discuté avec un développeur un peu plus tôt au sujet de l'identification des paquets TCP sortant sur une interface particulière avec la même charge utile. Il m'a dit que la probabilité de trouver un paquet TCP ayant une charge utile égale (même si les mêmes données sont envoyées plusieurs fois) est très faible en raison de la manière dont les paquets TCP sont construits au niveau du système. Je savais que c'était peut-être le cas en raison des paramètres de MTU du système (généralement 1500 octets), etc., mais quel type de statistiques de probabilité est-ce que je regarde vraiment? Existe-t-il des protocoles spécifiques facilitant l'identification des charges utiles correspondantes?

Était-ce utile?

La solution

EDIT: Désolé, mon idée de départ était ridicule.

Vous m'avez intéressé, alors j'ai cherché un peu dans Google et trouvé ceci . Si vous vouliez écrire votre propre outil, vous devriez probablement inspecter chaque charge utile, le moyen le plus simple consisterait probablement en une sorte de hachage / somme de contrôle permettant de vérifier si la charge utile est identique. Assurez-vous simplement que vous vérifiez la charge utile, pas le paquet entier.

En ce qui concerne les statistiques, je devrai m'en remettre à une personne mieux informée sur le fonctionnement du protocole TCP.

Autres conseils

C’est le protocole fonctionnant sur TCP qui définit le caractère unique de la charge utile, pas le protocole TCP lui-même.

Par exemple, vous pourriez penser naïvement que les demandes HTTP seraient toutes identiques lorsque vous demandez la page d'accueil d'un serveur, mais les chaînes de référence et d'agent utilisateur rendent les charges utiles différentes.

De même, si la réponse est générée dynamiquement, elle peut avoir un en-tête de date:

Date: vendredi 12 septembre 2008 à 10:44:27 GMT

Cela rendra donc les charges utiles de la réponse différentes. Cependant, les charges utiles suivantes peuvent être identiques si le contenu est statique.

N'oubliez pas que les paquets réels seront différents en raison des numéros de séquence différents, supposés être incrémentés et pseudo-aléatoires.

Chris a raison. Plus spécifiquement, deux ou trois informations dans l'en-tête du paquet doivent être différentes:

  • le numéro de séquence (qui est destiné à être imprévisible) qui augmente avec le nombre de octets transmis et reçus.
  • l'horodatage, un champ contenant deux horodatage (bien que ce champ soit facultatif).
  • la somme de contrôle, car les données utiles et l'en-tête sont toutes deux contrôlées, y compris le numéro de séquence en cours de modification.

Il est probablement courant d’envoyer le même PAYLOAD (en particulier si vous utilisez un type de service réseau). Si vous entendez envoyer le même segment tcp (en-tête et tous) ou le paquet entier du réseau (ip et plus), la probabilité est considérablement réduite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top