DATAGRAMME IP
Résolu
Stoicien
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
Stoicien Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Stoicien Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis un peu confus concernant la manière de détermination de la longueur totale dans un datagramme IP.
Un datagramme IP contenant 3028 octets de données est émis sur un réseau A de MTU=500. En passant par un routeur R1, il atteint le réseau B de MTU=1024 octets. La structure du datagramme dans le réseau A est présentée cidessous :
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : ????????
Identification : 1234
Drapeau : 010
Décalage fragment : 0
Durée de vie : 32
La théorie, c'est quand on sait tout mais que rien ne marche.
La pratique, c'est quand tout marche, mais qu'on sait pas pourquoi..." Albert Einstein
Un datagramme IP contenant 3028 octets de données est émis sur un réseau A de MTU=500. En passant par un routeur R1, il atteint le réseau B de MTU=1024 octets. La structure du datagramme dans le réseau A est présentée cidessous :
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : ????????
Identification : 1234
Drapeau : 010
Décalage fragment : 0
Durée de vie : 32
La théorie, c'est quand on sait tout mais que rien ne marche.
La pratique, c'est quand tout marche, mais qu'on sait pas pourquoi..." Albert Einstein
A voir également:
- DATAGRAMME IP
- Ethernet n'a pas de configuration ip valide - Guide
- Télévision ip - Guide
- Comment connaître son adresse ip - Guide
- IPTV illégal : après les pirates, la justice condamne maintenant les clients… jusqu'à la prison ! - Guide
- Ip local - Guide
1 réponse
Voici comment je l'ai résolu :
a- Le routeur calcule le nombre de paquets nécessaires pour fragmenter le paquet original :
nombre de paquets = ENT(3028/ 480)+1 = 7 paquets
b- Le routeur réserve ses buffers :
Paquet 1= 480 B data + 20 B header
Paquet 2= 480 B data + 20 B header
Paquet 3= 480 B data + 20 B header
Paquet 4= 480 B data + 20 B header
Paquet 5= 480 B data + 20 B header
Paquet 6= 480 B data + 20 B header
Paquet 7= 148 B data + 20 B header
On retrouve bien les 3028 B de data IP du paquet original en utilisant au maximum l'IP MTU de l'input interface.
c- Le routeur construit ensuite les headers des 3 paquets. Voyons comment sont renseignés les champs.
* longueur totale
Paquet 1= 480 B data + 20 B header
Paquet 2= 480 B data + 20 B header
Paquet 3= 480 B data + 20 B header
Paquet 4= 480 B data + 20 B header
Paquet 5= 480 B data + 20 B header
Paquet 6= 480 B data + 20 B header
Paquet 7= 148 B data + 20 B header
* drapeau (3 bits)
- le 1er bit n'est pas utilisé et toujours égal à 0
- le DF bit est toujours mis à 0 dans le cadre d'une IP Frag
- le MF (More Fragment) bit est mis à 1 sur tous les fragments hormis le dernier.
Donc :
MF(Paquet 1) = MF(Paquet 2) = MF(Paquet 3)= MF(Paquet 4) = MF(Paquet 5) = 1 ;
MF(Paquet 6) = 1 et MF(Paquet 7) = 0.
D'où :
drapeau(Paquet 1) = drapeau(Paquet 2) = drapeau(Paquet 3) = drapeau(Paquet 4) =001 ;
drapeau(Paquet 5) = drapeau(Paquet 6) = 001 et drapeau(Paquet 7) = 000.
drapeau_pkt3 = 000
* offset/décalage
L'offset permet à la machine destinataire de reconstituer le datagramme original. Exprimé en multiple de 8B, c'est un pointeur qui indique la position du fragment dans le datagramme original. Voici le détail des offsets :
offset_pkt1 = 0 (octets 1 à 1004 du datagramme original)
offset_pkt2 = 1004/8 = 123 (octets 1005 à 2008 du datagramme original)
offset_pkt3 = 2008/8 = 246 (octets 2009 à 2048 du datagramme original)
offset(Paquet 1) = 0 (1 octet à 480 octets du datagramme original)
offset(Paquet 2)= 480/8=60 (octets 481 à 960 du datagramme original)
offset(Paquet 3)= 960/8=120 (octets 961 à 1440 du datagramme original)
offset(Paquet 4)= 1440/8 =180 (octets 1441 à 1920 du datagramme original)
offset(Paquet 5)=1920/8=240 (octets 1921 à 2400 du datagramme original)
offset(Paquet 6)=2400/8=300 (octets 2401 à 2880 du datagramme original)
offset(Paquet 7)=2880/8=360 (octets 2881 à 3028 du datagramme original)
* identification
Tous les fragments construits possèdent l'identifiant du paquet original.
En conclusion,
Paquet 1
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 0
Paquet 2
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 60
Paquet 3
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 120
Paquet 4
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 180
Paquet 5
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 240
Paquet 6
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 300
Paquet 7
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 000
Décalage fragment : 360
a- Le routeur calcule le nombre de paquets nécessaires pour fragmenter le paquet original :
nombre de paquets = ENT(3028/ 480)+1 = 7 paquets
b- Le routeur réserve ses buffers :
Paquet 1= 480 B data + 20 B header
Paquet 2= 480 B data + 20 B header
Paquet 3= 480 B data + 20 B header
Paquet 4= 480 B data + 20 B header
Paquet 5= 480 B data + 20 B header
Paquet 6= 480 B data + 20 B header
Paquet 7= 148 B data + 20 B header
On retrouve bien les 3028 B de data IP du paquet original en utilisant au maximum l'IP MTU de l'input interface.
c- Le routeur construit ensuite les headers des 3 paquets. Voyons comment sont renseignés les champs.
* longueur totale
Paquet 1= 480 B data + 20 B header
Paquet 2= 480 B data + 20 B header
Paquet 3= 480 B data + 20 B header
Paquet 4= 480 B data + 20 B header
Paquet 5= 480 B data + 20 B header
Paquet 6= 480 B data + 20 B header
Paquet 7= 148 B data + 20 B header
* drapeau (3 bits)
- le 1er bit n'est pas utilisé et toujours égal à 0
- le DF bit est toujours mis à 0 dans le cadre d'une IP Frag
- le MF (More Fragment) bit est mis à 1 sur tous les fragments hormis le dernier.
Donc :
MF(Paquet 1) = MF(Paquet 2) = MF(Paquet 3)= MF(Paquet 4) = MF(Paquet 5) = 1 ;
MF(Paquet 6) = 1 et MF(Paquet 7) = 0.
D'où :
drapeau(Paquet 1) = drapeau(Paquet 2) = drapeau(Paquet 3) = drapeau(Paquet 4) =001 ;
drapeau(Paquet 5) = drapeau(Paquet 6) = 001 et drapeau(Paquet 7) = 000.
drapeau_pkt3 = 000
* offset/décalage
L'offset permet à la machine destinataire de reconstituer le datagramme original. Exprimé en multiple de 8B, c'est un pointeur qui indique la position du fragment dans le datagramme original. Voici le détail des offsets :
offset_pkt1 = 0 (octets 1 à 1004 du datagramme original)
offset_pkt2 = 1004/8 = 123 (octets 1005 à 2008 du datagramme original)
offset_pkt3 = 2008/8 = 246 (octets 2009 à 2048 du datagramme original)
offset(Paquet 1) = 0 (1 octet à 480 octets du datagramme original)
offset(Paquet 2)= 480/8=60 (octets 481 à 960 du datagramme original)
offset(Paquet 3)= 960/8=120 (octets 961 à 1440 du datagramme original)
offset(Paquet 4)= 1440/8 =180 (octets 1441 à 1920 du datagramme original)
offset(Paquet 5)=1920/8=240 (octets 1921 à 2400 du datagramme original)
offset(Paquet 6)=2400/8=300 (octets 2401 à 2880 du datagramme original)
offset(Paquet 7)=2880/8=360 (octets 2881 à 3028 du datagramme original)
* identification
Tous les fragments construits possèdent l'identifiant du paquet original.
En conclusion,
Paquet 1
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 0
Paquet 2
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 60
Paquet 3
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 120
Paquet 4
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 180
Paquet 5
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 240
Paquet 6
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 001
Décalage fragment : 300
Paquet 7
Version : 4
Longueur d'en-tête : 5
Type de service : 0
Longueur totale : 500
Identification : 1234
Drapeau : 000
Décalage fragment : 360