Trames

From aldeid
Jump to navigation Jump to search
You might also see: Protocole:IP

Interprétation des trames réseau

Les trames réseau présentées ici ont été capturées avec Wireshark. Les paquets sont forgés avec Scapy.

Avec Scapy, forgeons un paquet IP avec des données (une chaîne de 'a' sur dix caractères) :

>>> a=IP(dst="192.168.1.1")/("a"*10)
>>> a.show()
###[ IP ]###
version= 4
ihl= 0
tos= 0x0
len= 0
id= 1
flags=
frag= 0
ttl= 64
proto= ip
chksum= 0x0
src= 192.168.1.10
dst= 192.168.1.1
options= 
###[ Raw ]###
load= 'aaaaaaaaaa'

Si nous envoyons ce paquet à la couche 3 (réseau) avec la commande send() de Scapy, les trames interceptées avec Wireshark fournissent les résultats suivants :

0000 00 50 8b bb f3 2e 00 1c bf 8c 7a a3 08 00 45 00 .P...... ..z...E.
0010 00 1e 00 01 00 00 40 00 f7 83 c0 a8 01 0a c0 a8 ......@. ........
0020 01 01 61 61 61 61 61 61 61 61 61 61 ..aaaaaa aaaa

Le tableau qui suit reprend les données hexadécimales capturées. Chaque cellule correspond à un byte. Ceux-ci sont décrits dans le second tableau.

00 50 8B BB F3 2E 00 1C BF 8C 7A A3 08 00 45 00
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
00 1E 00 01 00 00 40 00 F7 83 C0 A8 01 0A C0 A8
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
01 01 61 61 61 61 61 61 61 61 61 61
32 33 34 35 36 37 38 39 40 41 42 43


Références Valeurs Description
Ethernet
0, 1, 2, 3, 4, 5 00508BBBF32E Adresse MAC dedestination00:50:8B:BB:F3:2E
6, 7, 8, 9, 10, 11 001CBF8C7AA3 Correspond àl'adresse MAC source00:1C:BF:8C:7A:A3
12, 13 0800 Ces deux bytescorrespondent au type de protocole.0x0800 correspond à IPv4
TrameIP
14 45 45 correspond à unbyte :Le premier chiffre(4) correspond aux quatre premiers bits du byte et correspondentà la version du protocole (voir détail de l'en-tête), soit 4(décimal), ce qui correspond à une valeur décimale de 4. Ils'agit du protocole IP en version 4.Le deuxième chiffre (5) correspond aux quatrederniers bits du byte et correspondent à la taille de l'en-tête,exprimée en blocs de 32 bits. Cette taille équivaut donc à 20bytes (5*32/8).
15 00 La référence 2 forme un byte et correspondau champ TOS (Type Of Service)
16, 17 001E Les références 2et 3 forment 2 bytes et correspondent à la taille totale.La valeurhexadécimale de 001E correspond à 30 en décimal. Cette tailleest exprimée en bytes et vaut donc 30 bytes.Pour obtenir la taille des données, ilconvient d'y soustraire la taille de l'en-tête, soit 20 bytes.La taille des données vaut donc 10 bytes.
18, 19 0001 Ces deux bytesreprésentent le champ identifiant (id)L'identifiant vaut 1.
20 (4 premiers bits) 0 Flags
20 (4 derniers bits), 21 000 frag
22 40 Ce byte corrspondau champ TTL (Time To Live)Sa valeur en héxédécimal (40) correspond àun TTL de 64 (valeur décimale)
23 00 proto
24, 25 F783 Ces deux bytes correspondent au champ somme decontrôle (Chksum)
26, 27, 28, 29 C0A8010A Cette série de 4bytes constitue l'adresse IP source

27 28 29 30
Hexadécimal C0 A8 01 0A
Binaire 11000000 10101000 00000001 00001010
Décimal 192 168 1 10


L'adresse IP sourcevaut donc 192.168.1.10.

30, 31,32, 33 C0A80101 Cette série de 4bytes constitue l'adresse IP de destination

31 32 33 34
Hexadécimal C0 A8 01 01
Binaire 11000000 10101000 00000001 00000001
Décimal 192 168 1 1


L'adresse IP sourcevaut donc 192.168.1.1.

Données
33 à 43 61616161616161616161 Données97 en décimal(voir annexes tableau de conversion)

Envoyons maintenant le même paquet à la couche 2 (liaison) avec la commande sendp() de Scapy. Les trames sont les suivantes :

0000 45 00 00 1e 00 01 00 00 40 00 f7 83 c0 a8 01 0a E....... @.......
0010 c0 a8 01 01 61 61 61 61 61 61 61 61 61 61 ....aaaa aaaaaa