DATAGRAMME IP
Résolu/Fermé
Stoicien
Messages postés
78
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
14 mars 2014
-
Modifié par Stoicien le 1/12/2012 à 05:13
Stoicien Messages postés 78 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 mars 2014 - 1 déc. 2012 à 05:14
Stoicien Messages postés 78 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 mars 2014 - 1 déc. 2012 à 05:14
A voir également:
- DATAGRAMME IP
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Ip local - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
- Localiser adresse ip gratuit - Guide
1 réponse
Stoicien
Messages postés
78
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
14 mars 2014
7
1 déc. 2012 à 05:14
1 déc. 2012 à 05:14
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