2009-11-25 19 views
0

En excluant le champ d'options dans l'en-tête IPv4, après 20 octets d'en-tête, les données suivent. Ces données peuvent être un paquet TCP, ou UDP etc.Recherche du type de données dans le paquet IPv4

Maintenant donné un paquet IPv4 (avec en-tête et données), Comment trouver quel type de paquet de couche de transport (TCP/UDP/etc.) Est présent dans les données? En fait, je suis en train d'analyser un paquet IPv4 donc j'ai besoin de le comprendre.

Répondre

0

Inspection approfondie des paquets? Ipoque libérer du code source libre pour cette tâche: opendpi.

+0

En fait, je viens de découvrir, que dans la h Lecteur de IPv4, il existe un champ appelé protocole. Dans ce cas, le protocole est spécifié. De toute façon, j'ai appris à connaître une nouvelle bibliothèque. – avd

3

Le champ de protocole de l'en-tête IPv4 (voir RFC791) vous dira:

0     1     2     3 
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |Version| IHL |Type of Service|   Total Length   | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |   Identification  |Flags|  Fragment Offset | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    | Time to Live | Protocol |   Header Checksum  | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |      Source Address       | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |     Destination Address      | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    |     Options     | Padding | 
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 

Les numéros de protocole sont attribués par l'IANA et sont répertoriés ici:

http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

Quelques exemples protocole les numéros sont:

1 ICMP 
6 TCP 
17 UDP