2010-04-16 18 views
0

Salutation,déterminer les paquets HTTP

comment est-il possible de déterminer à partir de paquets capturés en utilisant sharppcap si le paquet est un paquet http ou non?

et pouvons-nous déterminer les paquets TCP frpm si le paquet est HTTP ou non?

Répondre

3

Selon rfc2616 - Hypertext Transfer Protocol -- HTTP/1.1:

La version d'un message HTTP est indiqué par un champ HTTP-Version dans la première ligne du message

Ainsi, vous pourriez inspecter les paquets et rechercher les le texte de la version HTTP dans les en-têtes de message, et/ou d'autres champs connus du protocole HTTP. Bien que cette méthode puisse ne pas être précise à 100% si un message est divisé en plusieurs paquets, il serait probablement suffisant, au moins en tant que première coupure.

+0

Merci Justin pour votre réponse. ce que je comprends dans le cas où j'ai capturé le paquet TCP puis-je déterminer à partir du champ de données s'il y a un message HTTP? – Eyla

+0

@Eyla Oui, Filtrer la capture pour les paquets TCP sur le port 80 puis vérifier la première ligne de l'en-tête. Les en-têtes HTTP n'ont pas besoin d'être analysés de façon binaire comme la plupart des protocoles de mise en réseau car les données sont reçues au format ASCII. Stocker simplement les données sous la forme d'une chaîne et l'analyser en utilisant les méthodes d'analyse de chaîne habituelles. –

1

Il semble que vous examiniez un seul fragment TCP. Si cela vient du début d'un message, il aura une version HTTP dans la première ligne, mais si vous sortez simplement des paquets aléatoires du réseau et espérez pouvoir dire qu'ils sont HTTP, vous n'avez pas de chance - il n'y a rien dans les fragments TCP qui indique ce qu'il y a dedans. La seule façon de savoir serait de regarder toute la conversation.

2

Je suis l'auteur ou le responsable de sharppcap/packet.net.

J'ai quelques classes qui effectuent tcp réassemblage et http analyse qui sont utilisés dans une application de surveillance réseau complexe pour identifier et suivre http sessions. Ceux-ci sont entièrement testés et bien commentés.

Ils sont disponibles pour l'octroi de licences au niveau binaire ou source.

Modifier: Pourquoi voter? Il a fallu des centaines d'heures pour développer le code et les tests, et c'est une solution qui a été réutilisée. Il vaut certainement la peine d'envisager avant de ré-implémenter la même fonctionnalité.