2008-09-17 10 views
0

J'ai eu une discussion avec un développeur plus tôt aujourd'hui pour identifier les 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 qui a 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 façon dont les paquets TCP sont construits au niveau du système. Je savais que cela pouvait être le cas en raison des paramètres MTU du système (généralement 1500 octets), etc., mais quel genre de statistiques de probabilités suis-je vraiment en train de regarder? Existe-t-il des protocoles spécifiques qui facilitent l'identification des charges utiles correspondantes?Probabilité de trouver des paquets TCP avec la même charge utile?

Répondre

1

EDIT: Désolé, mon idée originale était ridicule.

Vous m'avez intéressé donc j'ai recherché un peu de google et trouvé this. Si vous vouliez écrire votre propre outil, vous auriez probablement besoin d'inspecter chaque charge utile, le plus simple serait probablement une sorte de hachage/somme de contrôle pour vérifier les charges utiles identiques. Assurez-vous juste que vous vérifiez la charge utile, pas le paquet entier. En ce qui concerne les statistiques, je devrai m'en remettre à quelqu'un qui connaît mieux le fonctionnement de TCP.

2

C'est le protocole qui s'exécute sur tcp qui définit l'unicité de la charge utile, et non le protocole tcp lui-même. Par exemple, vous pourriez penser naïvement que les requêtes HTTP seraient toutes identiques lors de la demande de la page d'accueil d'un serveur, mais les chaînes du référent et de l'agent utilisateur rendent les charges utiles différentes.

De même, si la réponse est généré dynamiquement, il peut avoir une tête de date:

Date: 12 Sep 2008 10:44:27 GMT

Donc, ça va rendre les réponses des charges utiles différentes. Cependant, les charges utiles suivantes peuvent être identiques si le contenu est statique. Gardez à l'esprit que les paquets réels seront différents en raison des différents numéros de séquence, qui sont censés être incrémentés et pseudo-aléatoires.

2

Chris a raison. Plus précisément, deux ou trois éléments d'information dans l'en-tête de paquet doivent être différentes:

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

L'envoi de la même CHARGE UTILE est probablement assez courant (en particulier si vous exécutez une sorte de service réseau). Si vous voulez dire envoyer le même segment tcp (en-tête et tout) ou le paquet réseau entier (ip et up), alors la probabilité est considérablement réduite.

Questions connexes