{"id":344,"date":"2017-04-25T11:28:42","date_gmt":"2017-04-25T09:28:42","guid":{"rendered":"http:\/\/www.gatoux.com\/?page_id=344"},"modified":"2017-04-25T17:43:54","modified_gmt":"2017-04-25T15:43:54","slug":"le-datagramme-ip","status":"publish","type":"page","link":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/le-datagramme-ip\/","title":{"rendered":"Le datagramme IP"},"content":{"rendered":"<p>Commencer la description du protocole IP, par une pr\u00e9sentation du format du paquet (<strong>datagramme<\/strong>) peut sembler os\u00e9. Certains trouveront que l&rsquo;approche est trop complexe, mais il n&rsquo;en est rien. En effet, pour mettre en oeuvre des fonctions (priorisation, contr\u00f4le de flux, d\u00e9tection d&rsquo;erreurs, etc.) un protocole doit pr\u00e9voir dans son format de PDU, et notamment dans son PCI, les champs n\u00e9cessaires \u00e0 la mise en oeuvre de ces fonctions.<\/p>\n<p>Autrement dit, \u00e9tudier le format d&rsquo;une <strong>PDU<\/strong> d&rsquo;un protocole, renseigne immanquablement sur les fonctions qu&rsquo;il offre. Ce chapitre pr\u00e9sente donc le datagramme IP sans trop insister sur les diff\u00e9rents champs. Les chapitres suivants, traitant des plus importantes fonctions d&rsquo;IP, s&rsquo;appuieront sur le format des champs, plus en d\u00e9tails.<\/p>\n<h2>Format g\u00e9n\u00e9ral du paquet<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-397 alignleft\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S2P5I2.gif\" alt=\"\" width=\"283\" height=\"110\" \/>Vous l&rsquo;avez remarqu\u00e9, on dit tout aussi bien \u00ab\u00a0<strong>paquet<\/strong>\u00ab\u00a0, que \u00ab\u00a0<strong>datagramme<\/strong>\u00ab\u00a0. En th\u00e9orie, un datagramme v\u00e9hicule toutes les informations n\u00e9cessaires \u00e0 son routage (notamment les adresses sources et destinations), alors qu&rsquo;un paquet est beaucoup plus g\u00e9n\u00e9rique et pourrait fort bien ne pas comporter ces informations. Quoiqu&rsquo;il en soit, nous dirons que <strong>\u00ab\u00a0paquet\u00a0\u00bb et \u00ab\u00a0datagramme\u00a0\u00bb c&rsquo;est la m\u00eame chose<\/strong> !<\/p>\n<p>Un paquet IP moyen a une taille de 128 ou 256 octets. Avec l&rsquo;arriv\u00e9e des technologies ATM \u00e0 tr\u00e8s hauts d\u00e9bits, on commence \u00e0 vulgariser des tailles plus importantes aux alentours des 1500 octets.<\/p>\n<p>Le paquet IP est form\u00e9 de deux grandes parties :<\/p>\n<ul>\n<li><strong>l&rsquo;ent\u00eate du paquet<\/strong>, g\u00e9n\u00e9ralement d&rsquo;une taille de 20 octets, constitue le PCI du protocole. C&rsquo;est l\u00e0 que sont inscrites toutes les informations du protocole (adresse, segmentation, options, etc.).<\/li>\n<li><strong>la partie \u00ab\u00a0data\u00a0\u00bb, ou champ de donn\u00e9es<\/strong>, d&rsquo;une taille maximum de : (65536 octets) &#8211; (les octets d&rsquo;ent\u00eate et d&rsquo;options). Elle v\u00e9hicule la PDU de couche sup\u00e9rieure (g\u00e9n\u00e9ralement un segment TCP ou UDP).<\/li>\n<\/ul>\n<p><span style=\"color: #663300;\">L&rsquo;analyse du champ de donn\u00e9es ne nous apprendra rien, si ce n&rsquo;est le format de la PDU TCP ou UDP, mais ce n&rsquo;est pas le sujet de ce cours. Nous allons donc focaliser sur l&rsquo;ent\u00eate, qui vous le verrez est tr\u00e8s int\u00e9ressante !<\/span><\/p>\n<h2>Format g\u00e9n\u00e9ral de l&rsquo;ent\u00eate du paquet<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-398 alignright\" src=\"http:\/\/www.gatoux.com\/wp-content\/uploads\/2017\/04\/S2P5I3.gif\" alt=\"\" width=\"445\" height=\"222\" \/>L&rsquo;ent\u00eate IP, comme tout le paquet IP est structur\u00e9e en mots de 4 octets. C&rsquo;est une des raisons qui a conduit a refus\u00e9 la normalisation d&rsquo;IP dans le mod\u00e8le OSI, qui pr\u00e9conise une structure en mots de 1 octet.<\/p>\n<p><strong>Structure en mots de 4 octets<\/strong> veut dire que le nombre d&rsquo;octets d&rsquo;un paquet IP est toujours un multiple de 4 octets. Si on doit placer un nombre d&rsquo;octets non multiple de 4 dans le paquet (<em>65 par exemple<\/em>), on proc\u00e8de \u00e0 un compl\u00e9ment, encore appel\u00e9 \u00ab\u00a0<strong>bourrage<\/strong>\u00a0\u00bb pour les moins \u00e9l\u00e9gants, ou \u00ab\u00a0<strong>padding<\/strong>\u00a0\u00bb pour les cultiv\u00e9s ! Cette op\u00e9ration consiste \u00e0 ajouter un nombre d&rsquo;octets suppl\u00e9mentaires form\u00e9s de 0, qui vont compl\u00e9ter jusqu&rsquo;\u00e0 un multiple de 4. Pour notre exemple, on ajouterai 3 octets pour obtenir 68 octets (68\/4 = 17 mots de 4 octets).<\/p>\n<p>L&rsquo;ent\u00eate IP standard n&rsquo;utilise pas le champ \u00ab\u00a0Option\u00a0\u00bb, elle a donc une longueur de 20 octets (5 mots de 4 octets) dans 99% des cas.<\/p>\n<p>Le champ d&rsquo;option peut avoir une longueur tr\u00e8s variable. Nous le pr\u00e9sentons succinctement, plus loin.<\/p>\n<h2>R\u00f4les des champs de l&rsquo;ent\u00eate<\/h2>\n<p><strong><span style=\"color: #ff0000;\">Version<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\"><p>Ce champ code sur 4 bits, la version du protocole. La version actuelle est la version 4 (0100). Une version 6 est annonc\u00e9e depuis bient\u00f4t 6 ans ! On commence \u00e0 en voir certaines impl\u00e9mentations, mais le chemin est encore long. Elle introduit un nouveau format d&rsquo;adressage permettant d&rsquo;affecter une adresse IP \u00e0 n&rsquo;importe quoi sur terre, avec plusieurs milliards d&rsquo;adresses possibles &#8230; Peut-\u00eatre un jour en parlerons-nous &#8230; Mais il faudra que je me documente sur la chose &#8230;<\/p><\/blockquote>\n<p><strong><span style=\"color: #ff0000;\">Internet Header Length (IHL)<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\"><p>Longueur de l&rsquo;en-t\u00eate Internet, exprim\u00e9e en mots de 4 octets. Cette longueur \u00e9tant cod\u00e9e sur 4 bits, elle peut avoir comme valeur maximum binaire 1111 soit 15. Comme elle indique un nombre de mots de 4 octets, on en d\u00e9duit que la taille maximum de l&rsquo;ent\u00eate IP est de 15*4 = 60 octets.<\/p><\/blockquote>\n<p><strong><span style=\"color: #ff0000;\">Type Of Service (TOS)<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\"><p>Ce champ donne des indications aux \u00e9quipements qu&rsquo;il traverse sur son niveau de priorit\u00e9 et sa classe de service. D\u00e9fini sur 8 eb (1 octet), il est divis\u00e9 en 5 parties :<\/p>\n<ul>\n<li>Les bits 0 \u00e0 2 indiquent la \u00ab\u00a0<strong>pr\u00e9c\u00e9dence<\/strong>\u00ab\u00a0. Autrement dit la priorit\u00e9 d&rsquo;acheminement par rapport aux autres paquets. Cette partie du champ permet de d\u00e9finir 8 niveaux de priorit\u00e9 d&rsquo;acheminement.<\/li>\n<li>Le bit 3 indique si le paquet peut supporter une attente de traitement normale ou faible.<\/li>\n<li>Le bit 4 indique si le paquet doit \u00eatre achemin\u00e9 en <strong>priorit\u00e9<\/strong> sur des liens \u00e0 hauts d\u00e9bits ou non<\/li>\n<li>Le bit 5 indique si le paquet doit \u00eatre achemin\u00e9 sur des liens tr\u00e8s fiables (faible taux d&rsquo;indisponibilit\u00e9 et d&rsquo;erreurs) ou normaux<\/li>\n<li>Les bits 6 et 7 sont r\u00e9serv\u00e9s et donc inutilis\u00e9s.<\/li>\n<\/ul>\n<p>Quoiqu&rsquo;il en soit, ce champ est rarement utilis\u00e9. Avec l&rsquo;arriv\u00e9e de nouvelles technologies comme le MPLS (Multi Protocol Label Switching) on commence \u00e0 utiliser le champ TOS bits 0 \u00e0 2 pour d\u00e9finir des classes de services qui sont exploit\u00e9es par MPLS. Certaines applications utilisaient d\u00e9j\u00e0 ce champ TOS pour d\u00e9finir des priorit\u00e9s d&rsquo;acheminement de leurs paquets dans le r\u00e9seau, mais cela restait rare !<\/p><\/blockquote>\n<h6 dir=\"ltr\" align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif;\">Tableau des valeurs du champ pour un paquet IP\/DoD<\/span><\/h6>\n<table class=\"TAB_GENE\" border=\"1\" width=\"85%\" cellspacing=\"2\" cellpadding=\"4\" align=\"center\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"29%\" height=\"150\">&nbsp;<\/p>\n<p><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Bits 0-2<\/span> <\/b><\/td>\n<td valign=\"top\" width=\"71%\" height=\"150\">\n<ul>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">111: contr\u00f4le de r\u00e9seau<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">110: contr\u00f4le de r\u00e9seau Arpanet<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">101: Critic\/ECP<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">100: flash override<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">011: flash<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">010: imm\u00e9diat<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">001: priorit\u00e9<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">000: routine<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"29%\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Bit 3<\/span> <\/b><\/td>\n<td valign=\"top\" width=\"71%\">\n<ul>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">0: attente normale<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">1: attente faible<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"29%\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Bit 4<\/span> <\/b><\/td>\n<td valign=\"top\" width=\"71%\">\n<ul>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">0: d\u00e9bit normal<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">1: d\u00e9bit \u00e9lev\u00e9<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"29%\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Bit 5<\/span> <\/b><\/td>\n<td valign=\"top\" width=\"71%\">\n<ul>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">0: fiabilit\u00e9 normale<\/span><\/li>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">1: fiabilit\u00e9 \u00e9lev\u00e9e<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"29%\" height=\"29\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Bits 6-7<\/span> <\/b><\/td>\n<td valign=\"top\" width=\"71%\" height=\"29\">\n<ul>\n<li><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">00: r\u00e9serv\u00e9s<\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Total Length<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Longueur totale du datagramme, exprim\u00e9e en octets, en-t\u00eate et donn\u00e9es comprises. Ce champ \u00e9tant cod\u00e9 sur 2 octets, la longueur maximale d&rsquo;un paquet IP est donc de 65 536 octets (0 \u00e0 65535).<\/p>\n<\/blockquote>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Identification, Flags et Fragment Offset<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Ces trois champs servent \u00e0 g\u00e9rer le m\u00e9canisme de fragmentation (ou segmentation si vous pr\u00e9f\u00e9rez) du paquet IP. En effet, il est possible qu&rsquo;un paquet IP n&rsquo;entre pas enti\u00e8rement dans une trame de niveau 2 parce que sa taille est trop importante. Il sera n\u00e9cessaire de fragmenter le paquet pour le v\u00e9hiculer dans plusieurs trames.<\/p>\n<p dir=\"ltr\">Cependant en raison de la nature non connect\u00e9 du protocole, la fragmentation est assez complexe \u00e0 g\u00e9rer. Nous \u00e9tudierons cet aspect plus compl\u00e9tement dans un chapitre suivant.<\/p>\n<p dir=\"ltr\">Pour le moment retenez qu&rsquo;un mot complet de 4 octets est r\u00e9serv\u00e9 \u00e0 la gestion de la fragmentation.<\/p>\n<\/blockquote>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Time To Live<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Toujours en raison du fait que le protocole IP fonctionne en mode non connect\u00e9, que de plus im est capable d&rsquo;impl\u00e9menter des techniques de routage dynamique susceptible de lui permettre de changer de route pour acheminer ses paquets, il est possible qu&rsquo;un paquet se perde dans le r\u00e9seau. Pour \u00e9viter qu&rsquo;il tourne ind\u00e9finiment, on lui affecte une dur\u00e9e de vie. Dur\u00e9e de vie du datagramme. Cette valeur est d\u00e9cr\u00e9ment\u00e9e toutes les secondes ou \u00e0 chaque passage dans une passerelle. Si cette valeur est \u00e0 0, le datagramme est mis au rebut.<\/p>\n<\/blockquote>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Protocol<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Ce champ cod\u00e9 sur un octet, identifie le protocole de niveau sup\u00e9rieur transport\u00e9 dans le champ de donn\u00e9es du paquet IP. Il permet au destinataire, en analysant ce champ, de savoir \u00e0 quel protocole de niveau sup\u00e9rieur (niveau 4 en g\u00e9n\u00e9ral : TCP ou UDP) il doit transmettre le contenu du datagramme.<\/p>\n<\/blockquote>\n<h6 dir=\"ltr\" align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif;\">Tableau des valeurs du champ protocole<\/span><\/h6>\n<table class=\"TAB_GENE\" border=\"1\" width=\"85%\" cellspacing=\"2\" cellpadding=\"4\" align=\"center\">\n<tbody>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\"><b>Hexad\u00e9cimal <\/b><\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\"><b>D\u00e9cimal <\/b><\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\"><b>Protocole <\/b><\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\"><b>Nom <\/b><\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">01<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">1<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">ICMP<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Internet Control Message Protocol<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">06<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">6<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">TCP<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Transmission Control Protocol<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">08<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">8<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">EGP<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Exterior Gateway Protocol<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">09<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">9<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">IGP<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Interior Gateway Protocol<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">11<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">17<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">UDP<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">User Datagram Protocol<\/span><\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" valign=\"top\" width=\"18%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">1D<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"17%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">29<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"19%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">ISO-TP4<\/span><\/p>\n<\/td>\n<td class=\"moyentexte\" valign=\"top\" width=\"46%\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Transport Iso Classe 4<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Checksum<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Le checksum est le champ de contr\u00f4le d&rsquo;erreur. Il est calcul\u00e9 uniquement sur l&rsquo;en-t\u00eate. Le principe consiste \u00e0 faire la somme des valeurs des octets de l&rsquo;ent\u00eate et \u00e0 inscrire le r\u00e9sultats dans l&rsquo;octet de checksum. Le r\u00e9cepteur effectue la m\u00eame op\u00e9ration, si la valeur trouv\u00e9e est identique, il n&rsquo;y a pas d&rsquo;erreur. Dans le cas contraire, le paquet est rejet\u00e9.<\/p>\n<p dir=\"ltr\"><strong>ATTENTION<\/strong> : IP poss\u00e8de un m\u00e9canisme de d\u00e9tection d&rsquo;erreurs, mais pas de correction d&rsquo;erreurs. Autrement dit, il jette le paquet, mais n&rsquo;informe personne et ne cherche pas \u00e0 g\u00e9n\u00e9rer une r\u00e9p\u00e9tition du paquet (r\u00e9\u00e9mission par l&rsquo;\u00e9metteur). Les couches sup\u00e9rieures devront g\u00e9rer elles-m\u00eames cette perte de paquet est s&rsquo;occuper des demandes de r\u00e9\u00e9missions \u00e9ventuelles.<\/p>\n<p dir=\"ltr\">Comme certains champs de l&rsquo;ent\u00eate peuvent varier dans le temps, le checksum est recalcul\u00e9 par chaque \u00e9quipement travers\u00e9 par le paquet.<\/p>\n<\/blockquote>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Adresses destination et source<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Les champs d&rsquo;adresses sont chacun cod\u00e9s sur 4 octets. Il existe donc, en th\u00e9orie, 2 puissance 32 adresses possibles (4 294 967 296 adresses). Dans le chapitre consacr\u00e9 \u00e0 l&rsquo;adressage, nous \u00e9tudierons pr\u00e9cis\u00e9ment ce format.<\/p>\n<p dir=\"ltr\">Le champ adresse Source indique l&rsquo;adresse IP de la machine qui \u00e9met les donn\u00e9es, le champ adresse Destination indique l&rsquo;adresse IP de la machine \u00e0 qui sont envoy\u00e9es les donn\u00e9es.<\/p>\n<\/blockquote>\n<p dir=\"ltr\"><strong><span style=\"color: #ff0000;\">Options<\/span><\/strong><\/p>\n<blockquote dir=\"ltr\">\n<p dir=\"ltr\">Je vous l&rsquo;ai d\u00e9j\u00e0 indiqu\u00e9, ce champ est assez peu utilis\u00e9. Il permet de mettre en \u0153uvre des m\u00e9canismes \u00e9volu\u00e9s comme le routage par la source (l&rsquo;\u00e9metteur indique par o\u00f9 doit passer le paquet) ou l&rsquo;enregistrement de routes (le paquet enregistre par o\u00f9 il est pass\u00e9 pour arriver \u00e0 destination).<\/p>\n<p dir=\"ltr\">La longueur totale de la partie options doit \u00eatre un multiple de quatre octets. Il y a donc une possibilit\u00e9 de \u00ab\u00a0padding\u00a0\u00bb (bourrage) \u00e0 la fin de la section options.<\/p>\n<\/blockquote>\n<h6 dir=\"ltr\" align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif;\">Tableau des principales options<\/span><\/h6>\n<table class=\"TAB_GENE\" border=\"1\" width=\"639\" cellspacing=\"2\" cellpadding=\"4\" align=\"center\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Hexa.<\/span> <\/b><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">D\u00e9c.<\/span> <\/b><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Type<\/span> <\/b><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><b><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Fonction<\/span> <\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">00<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">0<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Fin d&rsquo;option<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Termine la partie options<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">01<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">1<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Pas d&rsquo;op\u00e9ration<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Permet de commencer sur un multiple de quatre octets (<span class=\"onomatope\">bourrage ou padding<\/span>).<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">07<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">7<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Enregistrement de route<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Chaque relais doit ins\u00e9rer son adresse IP associ\u00e9e au r\u00e9seau<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">44<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">68<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Enregistrement d&rsquo;instant<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Possibilit\u00e9 d&rsquo;ins\u00e9rer l&rsquo;instant de r\u00e9ception, l&rsquo;adresse IP<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">82<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">130<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">S\u00e9curit\u00e9<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Sp\u00e9cifique DOD<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">83<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">131<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Routage approximatif<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Si adresse source reconnue, remplacement par adresse r\u00e9seau<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">88<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">136<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Identificateur de stream<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Sp\u00e9cifique STATNET<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"16%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">89<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"9%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">137<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"30%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Routage imp\u00e9ratif<\/span><\/p>\n<\/td>\n<td valign=\"top\" width=\"45%\">\n<p align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small;\">Routage \u00e0 travers les passerelles sp\u00e9cifi\u00e9es<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 dir=\"ltr\">\u00a0Conclusion du chapitre<\/h2>\n<p>Par la connaissance du format de l&rsquo;ent\u00eate IP, et du paquet en g\u00e9n\u00e9ral, vous avez maintenant une id\u00e9e plus pr\u00e9cise des fonctions offertes par le protocole. Dans les chapitres suivants, nous allons d\u00e9tailler certaines fonctions.<\/p>\n<h5 dir=\"ltr\" align=\"center\"><a href=\"http:\/\/www.gatoux.com\/index.php\/presentation-generale-dip\/\">Page Pr\u00e9c\u00e9dente <\/a>| <a href=\"http:\/\/www.gatoux.com\/index.php\/concepts-dadressage\/\">Page Suivante<\/a><\/h5>\n","protected":false},"excerpt":{"rendered":"<p>Commencer la description du protocole IP, par une pr\u00e9sentation du format du paquet (datagramme) peut sembler os\u00e9. Certains trouveront que l&rsquo;approche est trop complexe, mais il n&rsquo;en est rien. En effet, pour mettre en oeuvre des fonctions (priorisation, contr\u00f4le de flux, d\u00e9tection d&rsquo;erreurs, etc.) un protocole doit pr\u00e9voir dans son format de PDU, et notamment\u2026 <span class=\"read-more\"><a href=\"https:\/\/racine.gatoux.com\/lmdr\/index.php\/le-datagramme-ip\/\">Lire la suite &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":20,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-344","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":6,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/344\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/344\/revisions\/420"}],"wp:attachment":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/media?parent=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}