Trames
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
| ||||||||||||||||||||
30, 31,32, 33 | C0A80101 | Cette série de 4bytes constitue l'adresse IP de destination
| ||||||||||||||||||||
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