Le protocole IPv4

Patrice Laurençot


Le rôle d'une couche Réseau est d'acheminer un bloc d'octets de couche MAC en couche MAC depuis le système dans lequel un utilisateur expéditeur a fait la demande de transmission jusqu'au système dans lequel se trouve l'utilisateur destinataire, selon une route pré-calculée (ATM) ou calculée au fur et à mesure de l'acheminement (IP).
acheminement

1 - La désignation des entités-IP : adresses-IP

Adresses-IP spéciales

adressecommentaire
tous les bits à 0 (0.0.0.0) Cette adresse est utilisée par une machine qui ne connait pas son adresse, lorsqu'elle interroge un serveur d'adresses pour la connaître.
les bits de id.hôte à 1 Cette adresse désigne toutes les entités-IP du réseau considéré, c'est l'adresse de broadcast
tous les bits à 1 (255.255.255.255) Bien que désignant toutes les entités de tous les réseaux d'un internet, une PDU-IP contenant cette adresse destination ne sortira pas du sous-réseau dans lequel elle est émise.
Ainsi, elle désigne les mêmes entités-IP que ci-dessus.
1er octet = 01111111 (127.x.x.x) Ces adresses désignent l'entité-IP elle-même (destinataire=expéditeur).
La PDU-IP contenant cette adresse destination n'est pas soumise à la couche MAC.
adresses de classe D 1110xx..xx Ces adresses sont des identificateurs de groupe. (commence en général par 224.0...)
Elle désigne un groupe d'entités-IP qui se sont "inscrites" au groupe.
liste des identificateurs de groupe

2 - Les PDU-IP

Format

031
version [v] lg.entête [hl] service [qos] longueur totale [lg]
identificateur de la PDU-IP [id] flags [off] position du fragment [off]
durée de vie [ttl] protocole encapsulé [p] somme de contrôle [ck]
adresse source [Src]
adresse destination[Dst]
données (PDU de couche supérieure)

Chaque ligne représente 4 octets; par exemple version est sur 4 bits, et durée de vie sur 1 octet.

Les valeurs du champ service sont une combinaison des paramètres de qualité :

bitssignificationvaleurs
xxx..... niveau de priorité (precedance) 000=normale à 111=maximale
...x.... délai d'acheminement (delay) 0=normal 1=court
....x... débit de transmission (throughput) 0=normal 1=élevé
.....x.. confidentialité (reliability) 0=normale 1=élevée

Les valeurs du champ flags sont :

bitssignificationvaleurs
.x...... autorisation de fragmentation 1 = la PDU peut être fragmentée
..x..... dernier fragment ? 1 = ce n'est pas le fragment
...xxxxx position du fragment dans la PDU originelle  

La valeur du champ p (protocole encapsulé) indique à quel protocole appartient la PDU transportée dans le champ donnée:
Extrait :

DecimalKeywordProtocolReference
0HOPOPTIPv6 Hop-by-Hop Option[RFC2460]
1ICMPInternet Control Message[RFC792
2IGMP Internet Group Management[RFC1112]
3GGPGateway-to-Gateway[RFC823]
4IPv4IPv4 encapsulation[RFC2003]
5STStream[RFC1190][RFC1819]
6TCPTransmission Control[RFC793]
7CBTCBT[Tony_Ballardie]
8EGPExterior Gateway Protocol[RFC888][David_Mills]
9IGPany private interior gateway[Internet_Assigned_Numbers_Authority]
10BBN-RCC-MONBBN RCC Monitoring[Steve_Chipman]
11NVP-IINetwork Voice Protocol[RFC741][Steve_Casner]
12PUPPUPArchitecture", XEROX Palo Alto Research Center
13ARGUSARGUS[Robert_W_Scheifler]
14EMCONEMCON[]
15XNETCross Net Debugger[Haverty, J., "XNET Formats for Internet Protocol Version 4"]
16CHAOSChaos[J_Noel_Chiappa]
17UDPUser Datagram[RFC768][Jon_Postel]
18MUXMultiplexing[Cohen, D. and J. Postel, "Multiplexing Protocol"]
19DCN-MEASDCN Measurement Subsystems[David_Mills]
20 HMPHost Monitoring[RFC869][Bob_Hinden]

(liste complète des codes protocole).

Exemple

45 00 00 28 47 16 40 00 80 06 cb 08 c1 36 33 43 c1 36 33 01 04 0c 00 17 00 9e 39 8f 73 41 b2 61 50 10 1e 54 44 dc 00 00

champvaleur 
version4 
lg.entête54*5 = 20 octets
service00service normal
longueur totale002840 octets
identificateur de la PDU4716 
flags et position du fragment4000fragmentation autorisée, premier et dernier fragment
durée de vie80128
protocole encapsulé06TCP
somme de contrôlecb08 
adresse sourcec1363343193.54.51.67
adresse destinationc1363301193.54.51.1
données040c ...une PDU TCP

ou sous une autre forme :
IP  Src=193.54.51.67  Dst=193.54.51.1  v=4  hl=5  qos=0  lg=40  id=18198  off=16384  ttl=128  ck=CB08  p=6 (TCP)
Exercice 2-1 : décoder la trame suivante
-- 5 -------- 13:14:21.268400 -------------------------------- Lg.PDU=1514
00 00 a7 14 94 3e 08 00 2b 91 b0 d0 08 00 45 00 05 dc 95 c9 20 00 1e 11 f8
a9 c1 36 33 01 c1 36 33 30 08 01 02 8e 06 98 34 ed 0c 50 6f df 00 00 00 01
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00 81 24 00 00 00 01 00 00 00 03 00 00 00 04 00 00 26 2a 00 00 20 00 ...