
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://livre.g6.asso.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jprioual</id>
		<title>Livre IPv6 - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://livre.g6.asso.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jprioual"/>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php/Special:Contributions/Jprioual"/>
		<updated>2026-05-26T00:35:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20142</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20142"/>
				<updated>2022-02-23T17:23:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Jumbogrammes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important.&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
Il a été proposé à l'IETF de changer le statut du RFC 2675 &lt;br /&gt;
&amp;lt;ref&amp;gt;Jones, T. (2019), May. IETF. [https://datatracker.ietf.org/doc/html/draft-jones-6man-historic-rfc2675-00.html  Change Status of RFC 2675 to Historic].&amp;lt;/ref&amp;gt; à &amp;quot;historique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En effet, depuis plusieurs années, les jumbograms IPv6 n'ont pas été largement déployés, car dans les couches de transport communément utilisées, les champs longueur sont codés sur 16 bits, soit 65535 octets maximum.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [https://ipj.dreamhosters.com/wp-content/uploads/2019/03/ipj211.pdf IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html IPv6 Fragmentation Loss]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20141</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20141"/>
				<updated>2022-02-23T17:22:20Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Jumbogrammes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important.&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
Il a été proposé à l'IETF de changer le statut du RFC 2675 à &amp;quot;historique&amp;quot;.&lt;br /&gt;
&amp;lt;ref&amp;gt;Jones, T. (2019), May. IETF. [https://datatracker.ietf.org/doc/html/draft-jones-6man-historic-rfc2675-00.html  Change Status of RFC 2675 to Historic].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En effet, depuis plusieurs années, les jumbograms IPv6 n'ont pas été largement déployés, car dans les couches de transport communément utilisées, les champs longueur sont codés sur 16 bits, soit 65535 octets maximum.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [https://ipj.dreamhosters.com/wp-content/uploads/2019/03/ipj211.pdf IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html IPv6 Fragmentation Loss]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20140</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20140"/>
				<updated>2022-02-23T17:19:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Jumbogrammes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important.&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
Il a été proposé à l'IETF de changer le statut du RFC 2675 à &amp;quot;historique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
https://datatracker.ietf.org/doc/html/draft-jones-6man-historic-rfc2675-00.html&lt;br /&gt;
&lt;br /&gt;
En effet, depuis plusieurs années, les jumbograms IPv6 n'ont pas été largement déployés, car dans les couches de transport communément utilisées, les champs longueur sont codés sur 16 bits, soit 65535 octets maximum.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [https://ipj.dreamhosters.com/wp-content/uploads/2019/03/ipj211.pdf IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html IPv6 Fragmentation Loss]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20092</id>
		<title>MOOC:Taches Session 7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20092"/>
				<updated>2022-02-18T17:50:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Tâches terminées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; [[MOOC:Accueil|MOOC]]&amp;gt;[[MOOC:Gestion_de_projet|Gestion de projet]] &amp;gt; Taches Session 7&lt;br /&gt;
&lt;br /&gt;
= Tâches en cours =&lt;br /&gt;
&lt;br /&gt;
== Doc Compagnon ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| G01&lt;br /&gt;
| Guide&lt;br /&gt;
| Mettre à jour le guide de rédaction pour une rédaction homogène &lt;br /&gt;
| P1&lt;br /&gt;
| Tous&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G02&lt;br /&gt;
| Pilotage&lt;br /&gt;
| lisibilité du texte : identifier les passages qui gagnerait à être réécrits &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| G03&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Cadrage d'une activité type &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G04&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Identifier les questions (et les réponses) du forum à intégrer  dans le doc compagnon&lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| C01&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Nouvelle intro Seq4 dans [[MOOC:Compagnon Act40-s7|Act40]] &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C02&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act41-s7|Act41]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C03&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act42-s7|Act42]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C04&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act43-s7|Act43]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] ) &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C06&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir la [[MOOC:Compagnon Act47|conclusion Seq4]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C07&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Rédiger [[MOOC:Compagnon Act03|Act03]] et [[MOOC:Compagnon Act04|Act04]] à partir de [[MOOC:Compagnon Act41|Act41]] session6&lt;br /&gt;
| P1&lt;br /&gt;
| VV&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C08&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act30-s7|A30]] (gestion des erreurs reportée en A23 ?!)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C09&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act31-s7|A31]] : NDP (Multicast sollicité, Redirect?)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C10&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act32-s7|A32]] : Reprendre DHCPv6 de [[MOOC:Compagnon Act34-s6|A34-s6]] &lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C13&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Intégrer une partie de [[MOOC:Compagnon Act15-s6|A15-s6 Multicast]] dans [[MOOC:Compagnon Act13-s7|A13-s7]], et le reste en annexe.&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C14&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act14-s7|A14-s7]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C15&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act20-s7|A20-s7]] : plan de la séquence. Rappel sur l'encapsulation de [[MOOC:Compagnon Act24-s6|A24-s6]].&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C16&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act21-s7|A21-s7]] : Ajout des extensions d'en-tête de [[MOOC:Compagnon_Act25-s6|A25-s6]] en annexe. &lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C17&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act23-s7|A23-s7]] à partir de [[MOOC:Compagnon Act31-s7|A31]] et de [[MOOC:Annexe_Compagnon_Act31|Annexe A31]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C18&lt;br /&gt;
| Cours&lt;br /&gt;
| produire le verbatim des vidéos &lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portail FUN ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| F01&lt;br /&gt;
| Scenario&lt;br /&gt;
| MAJ de la [https://docs.google.com/spreadsheets/d/13jM-tsn6OcrlpkRgmq5h2EHfhwDV4Zu-Sc9HurclK2A/edit#gid=480308602 méta-scénarisation] pour la session 7 &lt;br /&gt;
| P1&lt;br /&gt;
| BS (PA fait Seq4)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F02&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Identifier les questions à reprendre dans [[MOOC:Table_des_corrections7|Table des corrections]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F03&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Standardiser les termes de la barre de navigation des activités&lt;br /&gt;
| P2&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Février&lt;br /&gt;
|-&lt;br /&gt;
| F04&lt;br /&gt;
| Cours&lt;br /&gt;
| Béta tester le cours&lt;br /&gt;
| P1&lt;br /&gt;
| ???&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F05&lt;br /&gt;
| TP&lt;br /&gt;
| MaJ GN3 + Tests&lt;br /&gt;
| P2&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F06&lt;br /&gt;
| Cours&lt;br /&gt;
| [[MOOC:Table des corrections7|Traiter les questions avec un taux &amp;gt;10% ]]&lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F07&lt;br /&gt;
| Cours&lt;br /&gt;
| Vérifier le nombre de tentatives par Quiz.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F08&lt;br /&gt;
| Cours&lt;br /&gt;
| Mettre les liens des vidéos dans les Ax0.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F09&lt;br /&gt;
| Cours&lt;br /&gt;
| Rédiger les objectifs de chaque vidéo.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tâches terminées =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|-&lt;br /&gt;
| T05&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer exA45 en [[MOOC:Compagnon Act44-s7|Act44]]. &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T11&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act34-s7|A34-s7]] : Sécurité IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Juin&lt;br /&gt;
|- &lt;br /&gt;
| T12&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer les activités de la séquence 1 en s7&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T18&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A11 [[MOOC:Verb11]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T19&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A12 [[MOOC:Verb12]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T20&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A13 [[MOOC:Verb13]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T21&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A14 [[MOOC:Verb14]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T22&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A21 [[MOOC:Verb21]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T23&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A22 [[MOOC:Verb22]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T24&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A23 [[MOOC:Verb23]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T25&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A24 [[MOOC:Verb24]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T26&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A31 [[MOOC:Verb31]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T27&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A32 [[MOOC:Verb32]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T28&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A33 [[MOOC:Verb33]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T29&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A34 [[MOOC:Verb34]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T30&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A40 [[MOOC:Verb40]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T31&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A41 [[MOOC:Verb41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:#77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T32&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A42 [[MOOC:Verb42]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T33&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A43 [[MOOC:Verb43]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T34&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A44 [[MOOC:Verb44]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20091</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20091"/>
				<updated>2022-02-18T17:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important.&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [https://ipj.dreamhosters.com/wp-content/uploads/2019/03/ipj211.pdf IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html IPv6 Fragmentation Loss]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20090</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20090"/>
				<updated>2022-02-18T17:39:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Fragmentation IPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important.&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [http://ipj.dreamhosters.com/wp-content/uploads/2018/04/ipj21-1.pdf  IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html IPv6 Fragmentation Loss]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20089</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20089"/>
				<updated>2022-02-18T17:38:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important. &lt;br /&gt;
&lt;br /&gt;
{{TODO | Limites et problèmes de la fragmentation https://www.potaroo.net/ispcol/2021-04/v6frag.html}}&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [http://ipj.dreamhosters.com/wp-content/uploads/2018/04/ipj21-1.pdf  IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html IPv6 Fragmentation Loss]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20088</id>
		<title>MOOC:Compagnon Act24-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act24-s7&amp;diff=20088"/>
				<updated>2022-02-18T17:38:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
= Activité 24 : La taille des paquets IPv6=&lt;br /&gt;
&amp;lt;!-- = Activité 24 : Gestion de la taille des paquets IPv6= --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
==Introduction ==&lt;br /&gt;
&lt;br /&gt;
La notion de datagramme, sur laquelle repose le protocole IP, implique un découpage des données provenant de la couche transport afin que ces données puissent être transportées. En effet, un paquet est une unité de transfert de taille variable et limitée. Les paquets ainsi constitués sont ensuite encapsulés dans des trames avant d’être transmis sur le support physique. Aussi, les datagrammes sont transmis dans des systèmes de transmissions mettant en œuvre des supports physiques qui peuvent être de natures différentes. Ces systèmes ont une taille de trame de valeur maximale variable. La gestion de la taille du paquet sur le chemin est donc nécessaire pour permettre le transfert des données de manière indépendante du support d'un bout à l'autre de l'Internet. Ce problème de la taille du paquet à transférer existe tout aussi bien en IPv4 qu'en IPv6. La solution pour régler le problème est différente entre IPv4 et IPv6 &amp;lt;ref&amp;gt;Huston, G. (2016), January. Blog of APNIC. [http://blog.apnic.net/2016/01/28/evaluating-ipv4-and-ipv6-packet-frangmentation/ Evaluating IPv4 and IPv6 packet fragmentation].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dans cette activité vous étudierez les éléments qui vont définir la taille du paquet IPv6 pour un transfert de données. Vous allez  commencer par définir  les notions de MTU et PMTU qui posent  les contraintes de la taille maximale du paquet. Vous verrez comment, en IPv6, découvrir la taille maximale du paquet pour un transfert. Le protocole IPv6 gère aussi la fragmentation. Vous aurez les explications du &amp;quot;quand&amp;quot; et du &amp;quot;comment&amp;quot; la fragmentation est mise en œuvre. Enfin, la notion de paquet IPv6 jumbogramme sera présentée.&lt;br /&gt;
&lt;br /&gt;
== MTU et PMTU ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La couche de réseau doit placer les messages provenant de la couche de transport dans des paquets. Un message de transport se définit  comme un bloc de données provenant de l'application complété par un en-tête de transport. Les paquets ainsi constitués sont ensuite encapsulés dans des trames  adaptées au support physique utilisé.  Cette combinaison de format de trame et de support physique constitue ce que l'on pourra qualifier de système de transmission. Chaque système de transmission définit une taille maximale du champ de données de la trame. &lt;br /&gt;
Cette taille du champ de données de la trame limite la taille maximale du paquet et par conséquent des données que peut contenir un paquet.  &lt;br /&gt;
La taille maximale du champ de données de la trame est appelée '''MTU''' (''Maximum Transmission Unit''). &lt;br /&gt;
Comme exemple, on peut citer les systèmes de transmission  Ethernet avec une MTU de 1500 octets, ou Wifi avec une MTU de 2304 octets. &lt;br /&gt;
La figure 1 illustre les encapsulations successives qui se produisent pour la transmission de données sur Ethernet. Ce qu'il faut retenir de la notion de MTU, c'est qu'elle donne la taille maximale du paquet IP pouvant être transmis par un hôte sur le lien sur lequel il est raccordé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2021_10_14PMTU_2_v01.jpg|400px|thumb|center|Figure 1 : Les encapsulations.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut être amené à transiter par des systèmes de transmission de natures différentes, chacun imposant une MTU différente. Pour pouvoir parcourir son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille autorisée par l'ensemble des liens traversés (cf. figure 2). Cette taille est appelée '''PMTU''' (''Path Maximum Transmission Unit'') ou taille de la MTU sur la route entre deux hôtes. Littéralement, la PMTU c'est l'unité de transmission maximum sur le chemin. Elle indique la taille maximale du  paquet pour arriver à l'hôte de destination sans jamais excéder la MTU de chaque lien traversé. Ainsi, un paquet émis à la taille PMTU de sa route n'aura pas de problème d'acheminement lié à une impossibilité d'encapsuler ce paquet dans une trame quelque part sur sa route.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_v01.jpg|500px|thumb|center|Figure 2 : Path MTU.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour des considérations d'efficacité, il est généralement préférable que les informations échangées entre nœuds soient contenues dans des datagrammes de taille maximale. Les paquets de petite taille ont pour effet d'augmenter le coût des en-têtes par rapport aux données transportées, et d'augmenter le nombre de paquets à traiter dans les routeurs. &lt;br /&gt;
&lt;br /&gt;
Toujours dans un souci d'efficacité, IPv6 impose une valeur minimale pour la MTU de 1280 octets (et donc pour la PMTU aussi). Cette valeur a pour objectif d'éviter qu'un lien imposant une MTU plus faible n'implique la transmission de petits paquets qui serait imposée à tous les chemins empruntant ce lien. Si un support de transmission utilise des trames de taille inférieure à 1280 octets, il est nécessaire de mettre en place une couche d'adaptation dans ce système afin que la MTU atteigne la valeur demandée. C'est le cas par exemple pour les réseaux personnels sans fil de type LR WPAN (''Low Rate Wireless Personal Area Network'') comme IEEE 802.15.4 qui véhicule des trames avec des blocs d'au maximum 81 octets. Dans ce cas, une couche d'adaptation a du être spécifiée au moyen du RFC 4944 afin de rendre cette technologie utilisable dans le contexte  IPv6 (6LowPAN). L'imposition d'une taille mimimale de MTU et de sa non fragmentation par IPv6 est une nouveauté en IPv6.&lt;br /&gt;
&lt;br /&gt;
== Découverte de la PMTU ==&lt;br /&gt;
&lt;br /&gt;
La valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. L'émetteur du paquet fait alors la supposition que la taille maximale vers cette destination est égale à celle du support physique sur lequel il est connecté, c'est-à-dire la MTU du réseau d’accès. &lt;br /&gt;
&lt;br /&gt;
L'acheminement du paquet IPv6 s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet à transmettre et la taille maximale autorisée sur le système de transmission à utiliser en sortie ; autrement dit lorsque le paquet à transmettre est plus grand que la taille de la MTU offerte par le système de transmission. Comme le routeur en IPv6 n'est pas habilité à faire la fragmentation, le routeur est alors dans l'incapacité de traiter correctement le paquet. Le routeur supprime le paquet et en informe l'émetteur du paquet par un message de signalisation. Ce message repose sur le protocole ICMPv6 et sera décrit dans la séquence 3. L'objectif du message est d'informer du problème d'acheminement mais aussi d'indiquer la taille maximale à retenir pour que les paquets soient acheminés correctement. Cette procédure de découverte de la PMTU est spécifié dans le RFC 8201.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_14_PMTU_3_v01.jpg|600px|thumb|center|Figure 3 : Négociation pour la Path MTU Discovery.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La couche réseau de l'émetteur, à la réception de ce message, enregistre la valeur recommandée de la taille de paquet (cf. Figure 3). Cette valeur est la PMTU pour tous les prochains paquets vers cette même destination. Pour ce qui concerne les données perdues avec le paquet trop grand supprimé par le routeur, il est du ressort de la couche de transport comme TCP de gérer la fiabilité de la communication en retransmettant si nécessaire, ou de l'application de s'adapter à la perte.&lt;br /&gt;
&lt;br /&gt;
Plusieurs itérations peuvent être nécessaires avant d'obtenir la PMTU, notamment si d'autres systèmes de transmission imposent des MTU encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. En tout état de cause, le protocole IPv6 garantit que la MTU de tout lien ne peut descendre en dessous de 1 280 octets, valeur qui constitue ainsi une borne inférieure pour la PMTU. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Segmentation ou Fragmentation|Dans le cas de TCP, le terme approprié est segmentation car l'unité de protocole de TCP se nomme segment. Ainsi, la fragmentation forme des fragments et, donc, la segmentation des segments !}}&lt;br /&gt;
L'exploitation de l'information de PMTU se fait de plusieurs façons suivant la couche en charge de la fragmentation des données. Si un protocole de type TCP est utilisé, celui-ci assurera la segmentation des données de façon transparente pour les applications, en fonction des informations de PMTU que pourra lui communiquer la couche IPv6. &lt;br /&gt;
Si un protocole de type UDP est utilisé, alors cette fragmentation devra être assurée par une couche supérieure, éventuellement par l'application elle-même. Si l'application n'est pas en mesure d'assurer cette fragmentation, alors il revient à la couche IPv6 de faire cette fragmentation. C'est ce que nous allons voir dans la section suivante.&lt;br /&gt;
&lt;br /&gt;
'''''NOTA : Attention au filtrage d'ICMPv6 !''''' ''Contrairement à une pratique couramment répandue en IPv4,'' '''''il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;).''''' ''Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau.''&lt;br /&gt;
&lt;br /&gt;
== Fragmentation IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Il existe des cas où les données passées à la couche de réseau ne sont pas adaptées à la PMTU. C'est le cas par exemple des messages transportés sur UDP pour le système de fichiers NFS. Ces messages peuvent avoir une taille supérieure à celle autorisée sur le système de transmission. Comme on ne veut pas modifier ces applications, la couche réseau d'IPv6 doit aussi être capable de gérer la fragmentation. &lt;br /&gt;
&lt;br /&gt;
La couche de réseau de l'hôte va alors adapter la taille du paquet pour son transfert. Elle va procéder à une fragmentation du paquet. Le principe de la fragmentation est de découper le paquet IPv6 en fragments pour constituer des paquets respectant la taille maximale autorisée. Ces paquets (ou fragments) sont émis et acheminés vers la destination comme n'importe quel autre paquet IP. La figure 4 illustre ce principe. Le paquet IPv6 original est découpé en fragment.  Le premier fragment avec l'en-tête IPv6 est complété par l'extension de fragmentation. Les fragments suivants reprennent l'en-tête du paquet original et sont complétés avec l'extension de fragmentation. L'hôte destinataire se charge alors de rassembler les fragments et de reconstituer le paquet IP original pour le traiter comme s'il avait été transféré sans fragmentation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_4_v02.jpg|thumb|center|400px|Figure 4 : Principe de la fragmentation en IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a une fragmentation, se pose alors les problèmes de l'identification d'un fragment et de la position relative du fragment.   L'identification du fragment vise à répondre à la question que peut se poser la destination : à quel paquet appartient-il ? Ce sont ce genre d'informations qui seront mises dans l'extension de fragmentation de l'en-tête IPv6. Cette extension est identifiée par le code d'en-tête 44. Le format de l'extension de fragmentation est présenté par la figure 5. Elle comporte trois champs de contrôle :&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;Fragment offset&amp;lt;/tt&amp;gt; indique, lors du réassemblage, où placer le fragment dans le datagramme initial. Ce champ est sur 13 bits. L'unité de comptage est 8 octets. Aussi, la taille de tous les fragments, sauf le dernier, doit être multiple de 8 octets.&lt;br /&gt;
*le bit &amp;lt;tt&amp;gt;M&amp;lt;/tt&amp;gt; (''More Fragments'') vaut 1 lorsqu'il indique qu'il y aura d'autres fragments. Seul le dernier fragment aura ce bit à zéro.&lt;br /&gt;
*le champ &amp;lt;tt&amp;gt;identification&amp;lt;/tt&amp;gt; est utilisé pour identifier tous les fragments d'un même paquet initial. La valeur est différente pour chaque paquet et elle est recopiée dans chacun des fragments d'un paquet.&lt;br /&gt;
Cette extension est codée sur un seul mot de 64 bits et le premier mot n'est pas compté dans le calcul de longueur des extensions. Aussi, il est nécessaire d'avoir un champ longueur de l'extension.&lt;br /&gt;
&lt;br /&gt;
Note : la fragmentation est permise en IPv4 au niveau des routeurs intermédiaires, leur donnant ainsi la possibilité de transmettre un paquet, même s'il est de taille supérieure à la MTU du lien suivant. Mais, dans ce cas, le mécanisme est jugé inefficace car il augmente la tâche des routeurs. En IPv6, avec la découverte de la PMTU, les routeurs intermédiaires n'ont plus besoin de fragmenter les paquets. Si la fragmentation est toujours nécessaire, elle est réservée aux hôtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_PMTU_5_v02.jpg|thumb|center|400px|Figure 5 : Format de l'extension de fragmentation.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
D'un point de vue opérationnel, la fragmentation en IPv6, et plus généralement l'ajout d'une extension d'en-tête, fragilise le transfert du paquet dans l'Internet. Le risque qu'il n'arrive pas à destination est augmenté. C'est ce que rapporte en substance le RFC 7872. Ce dernier essaie de quantifier l'ampleur exacte du problème. Trop de nœuds intermédiaires ne respectent pas le principe de &amp;quot;bout en bout&amp;quot; et les paquets ''inhabituels'' sont supprimés en cours de route. Devant un tel paquet, ces nœuds se permettent de supprimer le paquet. Cela peut être le résultat d'une politique délibérée (pare-feu appliquant le principe « dans le doute, on jette ») ou bien, souvent, de mises en œuvre incomplète de spécifications décrites dans les RFC.&lt;br /&gt;
&lt;br /&gt;
La procédure de découverte de la PMTU et la fragmentation IPv6 ont des effets de bord indésirables. Le RFC 6946 présente les risques associés au fragment atomique. Le fragment atomique est un paquet IPv6 avec un en-tête de fragmentation sans être fragmenté du tout. Il n'a aucun intérêt pratique mais est engendré par certains systèmes lorsqu'ils reçoivent un message ICMP Packet too big indiquant une MTU inférieure à 1280 octets (la taille minimale pour une MTU IPv6). Le problème est que les fragments atomiques sont ensuite traités par bien des systèmes comme de vrais fragments, permettant ainsi certaines attaques subtiles. Le RFC 8021 estime qu'ils ne servent à rien et sont dangereux. Ce RFC demande d'abandonner la génération et le traitement des fragments atomiques. Pour cela, les hôtes doivent désormais ignorer les messages ''ICMP Packet Too Big'' lorsqu'ils indiquent une MTU inférieure à 1 280 octets.&lt;br /&gt;
&lt;br /&gt;
Dans l'article&amp;lt;ref&amp;gt;Huston, G (2021). Blog of APNIC. [https://blog.apnic.net/2021/04/23/ipv6-fragmentation-loss-in-2021/ IPv6 fragmentation loss in 2021]&amp;lt;/ref&amp;gt;, l'auteur indique que le traitement de l'en-tête de fragmentation est une cause de problèmes dans le déploiement opérationnel d'IPv6. Les paquets avec cet en-tête sont traités avec du retard dans les routeurs et peuvent subir un taux de perte plus important. &lt;br /&gt;
&lt;br /&gt;
{{TODO | Limites et problèmes de la fragmentation https://www.potaroo.net/ispcol/2021-04/v6frag.html}}&lt;br /&gt;
&lt;br /&gt;
== Jumbogrammes ==&lt;br /&gt;
&lt;br /&gt;
Pour être complet sur la taille des paquets, il faut rappeler que  IPv6 offre la notion de  &amp;quot;jumbogramme&amp;quot; pour des paquets ayant une charge utile jusqu'à 4 Gio. Ceci est possible avec un champ &amp;lt;tt&amp;gt;Payload Length&amp;lt;/tt&amp;gt; codé sur 32 bits comme nous l'avons déjà indiqué dans l'activité &amp;quot;Le format de l’en-tête IPv6&amp;quot;. Le jumbogramme est essentiellement prévu pour le transfert à haut débit entre deux nœuds.&lt;br /&gt;
&lt;br /&gt;
La mise en œuvre d'un  jumbogramme demande des modifications dans la mise en œuvre de la couche de transport. Par exemple, le protocole UDP utilise un champ de longueur 16 bits pour le codage de la longueur totale du message UDP. On voit bien qu'il va falloir faire des adaptations car la longueur maximum d'un message UDP n'est pas du même ordre de grandeur que celle du jumbogrammme. Ces adaptations sont détaillées dans le RFC 2675. Si les &amp;quot;jumbogrammes&amp;quot; sont intéressants sur des liens qui disposent d'une MTU supérieure à 65583 octets (plus de 65535 octets de charge utile, plus 40 octets pour la taille fixe de l'en-tête, plus 8 octets pour l'en-tête d'extension ''Hop-by-Hop''), il n'y a pas à ce jour de système de transmission utilisant des trames aussi importantes.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité vous a présenté les différents éléments qui vont servir à définir la taille du paquet IPv6 à utiliser.&lt;br /&gt;
Tout d'abord, IPv6 impose que tous les systèmes de transmission utilisés transfère un paquet jusqu'à 1280 octets sans qu'il soit besoin de le fragmenter au niveau d'IP. C'est la taille maximum d'un paquet pour être transféré sans fragmentation et sans problème lié à la taille. Au-delà de cette taille, il y a des risques de problème. Dans ce cas, la taille du paquet à transférer est conditionnée à la taille indiquée par la PMTU. Si la taille du paquet à envoyer est inférieure à cette taille, le paquet pourra être transmis vers sa destination sans problème. Si, par contre, la taille du paquet est plus grande que la valeur de PMTU, soit un ajustement de la taille du segment de données est nécessaire au niveau de la couche transport, soit la fragmentation par l'hôte est obligatoire. &lt;br /&gt;
Dans l'article en ligne&amp;lt;ref&amp;gt;Bortzmeyer, S. (2010) [http://www.bortzmeyer.org/fragmentation-ip-1280.html Fragmentation IPv6 : se résigner à couper à 1280 octets ?]&amp;lt;/ref&amp;gt;, l'auteur rapporte une autre idée : ne pas envoyer de paquets de plus de 1280 octets en dehors du réseau local. Ainsi, en transmettant des paquets à la taille minimale de la PMTU, il n'y a plus de besoin de fragmenter et donc d'utiliser la découverte de la PMTU. C'est une solution un peu extrême pour contourner la non mise en œuvre de la fragmentation et, lorsqu'elle est mise en œuvre, la fragmentation IPv6 peut avoir des effets néfastes&amp;lt;ref&amp;gt;Huston, G. (2018) The Internet Protocol Journal. Vol 21. N° 1. [http://ipj.dreamhosters.com/wp-content/uploads/2018/04/ipj21-1.pdf  IPv6 and Packet Fragmentation]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref&amp;gt;Huston, Geoff - Damas Joao (2021) The ISP Column. [https://www.potaroo.net/ispcol/2021-04/v6frag.html]&amp;lt;/ref&amp;gt;du fait que certains nœuds jettent les fragments de paquet IPv6. Nous reviendrons sur le problème de la taille de la PMTU lors de la séquence suivante.&lt;br /&gt;
&lt;br /&gt;
Pour conclure, retenez que la bonne taille du paquet IPv6 dépend du protocole de transport. Pour TCP, la valeur de 1280 octets montre de bons résultats&amp;lt;ref&amp;gt;Huston, G. (2016), May. [http://blog.apnic.net/2016/05/19/fragmenting-ipv6/ Fragmenting IPv6].&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les liens suivants :&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 4821 : Packetization Layer Path MTU Discovery ([http://www.bortzmeyer.org/4821.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 6946 : Processing of IPv6 &amp;quot;atomic&amp;quot; fragments ([http://www.bortzmeyer.org/6946.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World ([http://www.bortzmeyer.org/7872.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8200 : IP version 6, [https://tools.ietf.org/html/rfc8200#section-4.5 Section 4.5] Fragment header ([http://www.bortzmeyer.org/8200.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8021: Generation of IPv6 Atomic Fragments Considered Harmful  ([http://www.bortzmeyer.org/8021.html Analyse par S.Bortzmeyer])&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 ([http://www.bortzmeyer.org/8201.html Analyse par S.Bortzmeyer])&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20087</id>
		<title>MOOC:Taches Session 7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20087"/>
				<updated>2022-02-18T17:26:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Portail FUN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; [[MOOC:Accueil|MOOC]]&amp;gt;[[MOOC:Gestion_de_projet|Gestion de projet]] &amp;gt; Taches Session 7&lt;br /&gt;
&lt;br /&gt;
= Tâches en cours =&lt;br /&gt;
&lt;br /&gt;
== Doc Compagnon ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| G01&lt;br /&gt;
| Guide&lt;br /&gt;
| Mettre à jour le guide de rédaction pour une rédaction homogène &lt;br /&gt;
| P1&lt;br /&gt;
| Tous&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G02&lt;br /&gt;
| Pilotage&lt;br /&gt;
| lisibilité du texte : identifier les passages qui gagnerait à être réécrits &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| G03&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Cadrage d'une activité type &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G04&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Identifier les questions (et les réponses) du forum à intégrer  dans le doc compagnon&lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| C01&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Nouvelle intro Seq4 dans [[MOOC:Compagnon Act40-s7|Act40]] &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C02&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act41-s7|Act41]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C03&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act42-s7|Act42]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C04&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act43-s7|Act43]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] ) &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C06&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir la [[MOOC:Compagnon Act47|conclusion Seq4]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C07&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Rédiger [[MOOC:Compagnon Act03|Act03]] et [[MOOC:Compagnon Act04|Act04]] à partir de [[MOOC:Compagnon Act41|Act41]] session6&lt;br /&gt;
| P1&lt;br /&gt;
| VV&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C08&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act30-s7|A30]] (gestion des erreurs reportée en A23 ?!)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C09&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act31-s7|A31]] : NDP (Multicast sollicité, Redirect?)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C10&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act32-s7|A32]] : Reprendre DHCPv6 de [[MOOC:Compagnon Act34-s6|A34-s6]] &lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C13&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Intégrer une partie de [[MOOC:Compagnon Act15-s6|A15-s6 Multicast]] dans [[MOOC:Compagnon Act13-s7|A13-s7]], et le reste en annexe.&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C14&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act14-s7|A14-s7]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C15&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act20-s7|A20-s7]] : plan de la séquence. Rappel sur l'encapsulation de [[MOOC:Compagnon Act24-s6|A24-s6]].&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C16&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act21-s7|A21-s7]] : Ajout des extensions d'en-tête de [[MOOC:Compagnon_Act25-s6|A25-s6]] en annexe. &lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C17&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act23-s7|A23-s7]] à partir de [[MOOC:Compagnon Act31-s7|A31]] et de [[MOOC:Annexe_Compagnon_Act31|Annexe A31]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C18&lt;br /&gt;
| Cours&lt;br /&gt;
| produire le verbatim des vidéos &lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portail FUN ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| F01&lt;br /&gt;
| Scenario&lt;br /&gt;
| MAJ de la [https://docs.google.com/spreadsheets/d/13jM-tsn6OcrlpkRgmq5h2EHfhwDV4Zu-Sc9HurclK2A/edit#gid=480308602 méta-scénarisation] pour la session 7 &lt;br /&gt;
| P1&lt;br /&gt;
| BS (PA fait Seq4)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F02&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Identifier les questions à reprendre dans [[MOOC:Table_des_corrections7|Table des corrections]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F03&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Standardiser les termes de la barre de navigation des activités&lt;br /&gt;
| P2&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Février&lt;br /&gt;
|-&lt;br /&gt;
| F04&lt;br /&gt;
| Cours&lt;br /&gt;
| Béta tester le cours&lt;br /&gt;
| P1&lt;br /&gt;
| ???&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F05&lt;br /&gt;
| TP&lt;br /&gt;
| MaJ GN3 + Tests&lt;br /&gt;
| P2&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F06&lt;br /&gt;
| Cours&lt;br /&gt;
| [[MOOC:Table des corrections7|Traiter les questions avec un taux &amp;gt;10% ]]&lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F07&lt;br /&gt;
| Cours&lt;br /&gt;
| Vérifier le nombre de tentatives par Quiz.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F08&lt;br /&gt;
| Cours&lt;br /&gt;
| Mettre les liens des vidéos dans les Ax0.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F09&lt;br /&gt;
| Cours&lt;br /&gt;
| Rédiger les objectifs de chaque vidéo.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tâches terminées =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|-&lt;br /&gt;
| T05&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer exA45 en [[MOOC:Compagnon Act44-s7|Act44]]. &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T11&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act34-s7|A34-s7]] : Sécurité IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Juin&lt;br /&gt;
|- &lt;br /&gt;
| T12&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer les activités de la séquence 1 en s7&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T18&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A11 [[MOOC:Verb11]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T19&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A12 [[MOOC:Verb12]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T20&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A13 [[MOOC:Verb13]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T21&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A14 [[MOOC:Verb14]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T22&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A21 [[MOOC:Verb21]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T23&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A22 [[MOOC:Verb22]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T24&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A23 [[MOOC:Verb23]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T25&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A24 [[MOOC:Verb24]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T26&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A31 [[MOOC:Verb31]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T27&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A32 [[MOOC:Verb32]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T28&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A33 [[MOOC:Verb33]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T29&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A34 [[MOOC:Verb34]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T30&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A40 [[MOOC:Verb40]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T31&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A41 [[MOOC:Verb41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:#77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T32&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A42 [[MOOC:Verb42]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T33&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A43 [[MOOC:Verb43]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T34&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A44 [[MOOC:Verb44]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20086</id>
		<title>MOOC:Taches Session 7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20086"/>
				<updated>2022-02-18T17:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Doc Compagnon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; [[MOOC:Accueil|MOOC]]&amp;gt;[[MOOC:Gestion_de_projet|Gestion de projet]] &amp;gt; Taches Session 7&lt;br /&gt;
&lt;br /&gt;
= Tâches en cours =&lt;br /&gt;
&lt;br /&gt;
== Doc Compagnon ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| G01&lt;br /&gt;
| Guide&lt;br /&gt;
| Mettre à jour le guide de rédaction pour une rédaction homogène &lt;br /&gt;
| P1&lt;br /&gt;
| Tous&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G02&lt;br /&gt;
| Pilotage&lt;br /&gt;
| lisibilité du texte : identifier les passages qui gagnerait à être réécrits &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| G03&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Cadrage d'une activité type &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G04&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Identifier les questions (et les réponses) du forum à intégrer  dans le doc compagnon&lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| C01&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Nouvelle intro Seq4 dans [[MOOC:Compagnon Act40-s7|Act40]] &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C02&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act41-s7|Act41]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C03&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act42-s7|Act42]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C04&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act43-s7|Act43]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] ) &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C06&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir la [[MOOC:Compagnon Act47|conclusion Seq4]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C07&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Rédiger [[MOOC:Compagnon Act03|Act03]] et [[MOOC:Compagnon Act04|Act04]] à partir de [[MOOC:Compagnon Act41|Act41]] session6&lt;br /&gt;
| P1&lt;br /&gt;
| VV&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C08&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act30-s7|A30]] (gestion des erreurs reportée en A23 ?!)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C09&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act31-s7|A31]] : NDP (Multicast sollicité, Redirect?)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C10&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act32-s7|A32]] : Reprendre DHCPv6 de [[MOOC:Compagnon Act34-s6|A34-s6]] &lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C13&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Intégrer une partie de [[MOOC:Compagnon Act15-s6|A15-s6 Multicast]] dans [[MOOC:Compagnon Act13-s7|A13-s7]], et le reste en annexe.&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C14&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act14-s7|A14-s7]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C15&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act20-s7|A20-s7]] : plan de la séquence. Rappel sur l'encapsulation de [[MOOC:Compagnon Act24-s6|A24-s6]].&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C16&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act21-s7|A21-s7]] : Ajout des extensions d'en-tête de [[MOOC:Compagnon_Act25-s6|A25-s6]] en annexe. &lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C17&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act23-s7|A23-s7]] à partir de [[MOOC:Compagnon Act31-s7|A31]] et de [[MOOC:Annexe_Compagnon_Act31|Annexe A31]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C18&lt;br /&gt;
| Cours&lt;br /&gt;
| produire le verbatim des vidéos &lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portail FUN ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| F01&lt;br /&gt;
| Scenario&lt;br /&gt;
| MAJ de la [https://docs.google.com/spreadsheets/d/13jM-tsn6OcrlpkRgmq5h2EHfhwDV4Zu-Sc9HurclK2A/edit#gid=480308602 méta-scénarisation] pour la session 7 &lt;br /&gt;
| P1&lt;br /&gt;
| BS (PA fait Seq4)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F02&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Identifier les questions à reprendre dans [[MOOC:Table_des_corrections7|Table des corrections]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F03&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Standardiser les termes de la barre de navigation des activités&lt;br /&gt;
| P2&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Février&lt;br /&gt;
|-&lt;br /&gt;
| F04&lt;br /&gt;
| Cours&lt;br /&gt;
| Béta tester le cours&lt;br /&gt;
| P1&lt;br /&gt;
| ???&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F05&lt;br /&gt;
| TP&lt;br /&gt;
| MaJ GN3 + Tests&lt;br /&gt;
| P2&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F06&lt;br /&gt;
| Cours&lt;br /&gt;
| [[MOOC:Table des corrections7|Traiter les questions avec un taux &amp;gt;10% ]]&lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F07&lt;br /&gt;
| Cours&lt;br /&gt;
| Vérifier le nombre de tentatives par Quiz.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F08&lt;br /&gt;
| Cours&lt;br /&gt;
| Mettre les liens des vidéos dans les Ax0.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F09&lt;br /&gt;
| Cours&lt;br /&gt;
| Rédiger les objectifs de chaque vidéo.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tâches terminées =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|-&lt;br /&gt;
| T05&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer exA45 en [[MOOC:Compagnon Act44-s7|Act44]]. &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T11&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act34-s7|A34-s7]] : Sécurité IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Juin&lt;br /&gt;
|- &lt;br /&gt;
| T12&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer les activités de la séquence 1 en s7&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T18&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A11 [[MOOC:Verb11]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T19&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A12 [[MOOC:Verb12]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T20&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A13 [[MOOC:Verb13]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T21&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A14 [[MOOC:Verb14]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T22&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A21 [[MOOC:Verb21]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T23&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A22 [[MOOC:Verb22]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T24&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A23 [[MOOC:Verb23]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T25&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A24 [[MOOC:Verb24]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T26&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A31 [[MOOC:Verb31]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T27&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A32 [[MOOC:Verb32]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T28&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A33 [[MOOC:Verb33]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T29&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A34 [[MOOC:Verb34]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T30&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A40 [[MOOC:Verb40]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T31&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A41 [[MOOC:Verb41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:#77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T32&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A42 [[MOOC:Verb42]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T33&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A43 [[MOOC:Verb43]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T34&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A44 [[MOOC:Verb44]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20085</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20085"/>
				<updated>2022-02-18T17:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Fonctions autres et expérimentales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
* RFC 1191 Path MTU Discovery&lt;br /&gt;
* RFC 2464 Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6&lt;br /&gt;
* RFC 4443 Internet Control Message Protocol (ICMPv6)  for the Internet Protocol Version 6 (IPv6) Specification [http://www.bortzmeyer.org/4443.html Analyse]&lt;br /&gt;
* RFC 4620 IPv6 Node Information Queries&lt;br /&gt;
* RFC 4890 Recommendations for Filtering ICMPv6 Messages in Firewalls&lt;br /&gt;
* RFC 8201 Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;br /&gt;
* RFC 8883 ICMPv6 Errors for Discarding packets Due to Processing Limits [http://www.bortzmeyer.org/8883.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annexe 1 : Autres fonctions d'ICMPv6==&lt;br /&gt;
Le contenu de cette annexe complète l'activité 23 en :&lt;br /&gt;
* introduisant MLD, le protocole de gestion des inscriptions aux groupes de ''multicast'' et les messages ICMPv6 associés ;&lt;br /&gt;
* introduisant des fonctions expérimentales ;&lt;br /&gt;
&lt;br /&gt;
==Gestion de groupes multicast sur le lien local ==&lt;br /&gt;
&lt;br /&gt;
Pour offrir un service de distribution multicast, deux composants sont nécessaires : un protocole de gestion de groupes multicast et un protocole de routage multicast&amp;lt;ref&amp;gt;Sébastien LOYE. (2005). Techniques de l'ingénieur. ref TE7527. Le multicast IP : principes et protocoles &amp;lt;/ref&amp;gt;. Le protocole de gestion de groupes multicast réalise la signalisation entre l'hôte et son routeur local. Le protocole de routage multicast vise à échanger les informations entre les routeurs afin qu'un arbre de distribution multicast soit construit. &lt;br /&gt;
&lt;br /&gt;
En IPv6, MLD (''Multicast Listener Discovery'') sert, pour un hôte, à indiquer les groupes auxquels il souhaite souscrire. MLD est donc un  protocole de gestion de groupes. Ainsi, un routeur de bordure IPv6 va pouvoir découvrir la présence de récepteurs multicast (qualifiés de ''listeners'') sur ses liens directement attachés, ainsi que les adresses multicast concernées.&lt;br /&gt;
MLD est un protocole asymétrique qui spécifie un comportement différent pour les hôtes (les ''listeners'') et les routeurs.  Toutefois, pour les adresses multicast sur lesquelles un routeur lui-même est récepteur, il doit exécuter les deux parties du protocole. Ceci implique notamment de répondre à ses propres messages de demande.&lt;br /&gt;
En effet, les routeurs doivent constituer une liste des adresses multicast pour lesquelles il a un ou plusieurs récepteurs sur leur lien local. Aussi, un des récepteurs sur un lien envoie un message de rapport d'abonnement aux groupes auxquels il souhaite recevoir les messages. L'objectif est, par des communications multicast sur le lien, que le routeur local arrive à faire la liste complète des groupes multicast pour lesquels il doit relayer le trafic localement.&lt;br /&gt;
&lt;br /&gt;
MLD est une  fonction d'ICMPv6 ; aussi, les messages MLD sont des messages ICMPv6. Les messages pour MLD sont envoyés avec :&lt;br /&gt;
* une adresse source IPv6 lien-local ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; fixé à 1 ;&lt;br /&gt;
* l'option &amp;lt;tt&amp;gt;IPv6 Router Alert&amp;lt;/tt&amp;gt; activée en ajoutant l'extension d'en-tête ''Hop-by-Hop'' correspondante.&lt;br /&gt;
&lt;br /&gt;
Cette dernière option est nécessaire afin de contraindre les routeurs à examiner les messages MLD envoyés à des adresses multicast par lesquelles les routeurs ne sont pas intéressés. &lt;br /&gt;
La version d'origine du protocole MLD [RFC 2710] (que nous appellerons également MLDv1) présente les mêmes fonctionnalités que le protocole IGMPv2 en IPv4. MLDv2 a été proposé par le RFC 3810 dans lequel, en plus du groupe, le récepteur peut indiquer la source. MLDV2 est une adaptation de IGMPv3 d'IPv4 à IPv6.&lt;br /&gt;
&lt;br /&gt;
=== Format des messages pour MLD ===&lt;br /&gt;
Le format générique d'un message MLD est donné par la figure 7. Les différents types de messages ICMPv6 pour MLD sont indiqués par le tableau 2. On distingue trois types de messages pour MLD.&amp;lt;br&amp;gt;&lt;br /&gt;
# Le premier type (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 130) concerne le recensement des récepteurs multicast selon plusieurs méthodes : (i) recensement général émis à l'adresse de diffusion générale sur le lien (&amp;lt;tt&amp;gt;FF02::1&amp;lt;/tt&amp;gt;), (ii) recensement spécifique pour une adresse multicast ; l'adresse de destination est l'adresse multicast du groupe en question. Le message de requête d'abonnement (''Multicast Listener Query'') est émis par le routeur.&lt;br /&gt;
# Le second type de message (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 131) vise à obtenir un rapport d'abonnement multicast (''Multicast Listener Report''). Ce message est émis par le récepteur multicast. L'adresse de destination est l'adresse multicast du groupe en question. Avec MLDv2, le rapport d'abonnement à un groupe multicast a été complété par la possibilité de limiter la réception au trafic émis par certaines sources. Le trafic des sources non indiquées est alors non reçu. Cette restriction sur la source s'effectue par un message spécifique (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 143).&lt;br /&gt;
# Enfin, le troisième type de message (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 132) va servir à un récepteur pour annoncer une résiliation d'abonnement (''Multicast Listener Done'') à un groupe. Ce message est émis à l'adresse du groupe multicast &amp;quot;tous les routeurs du lien local&amp;quot; (&amp;lt;tt&amp;gt;FF02::2&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les champs des messages pour MLD ont la signification suivante :&lt;br /&gt;
* &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : prend la valeur 130, 131 ou 132 ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; : mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; : celui du protocole ICMPv6 standard, couvrant tout le message MLD auquel s'ajoutent les champs du pseudo-en-tête IPv6 ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Délai maximal de réponse&amp;lt;/tt&amp;gt; :&lt;br /&gt;
** utilisé seulement dans les messages de recensement, il exprime le retard maximal autorisé (en millisecondes) pour l'arrivée des rapports d'abonnement,&lt;br /&gt;
** dans les messages de rapport ou de résiliation d'abonnement, ce champ est mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;réservé&amp;lt;/tt&amp;gt; : champ non utilisé et mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Adresse multicast&amp;lt;/tt&amp;gt; :&lt;br /&gt;
** pour un message de recensement général, ce champ est mis à zéro,&lt;br /&gt;
** pour un message de recensement spécifique, il contient l'adresse multicast en question,&lt;br /&gt;
** pour les messages de rapport et de résiliation d'abonnement, le champ contient l'adresse multicast sur laquelle l'hôte souhaite écouter ou cesser d'écouter.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig7.png|400px|center|thumb|Figure 7 : Format générique d'un message ICMPv6 pour MLD.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 |Gestion des groupes multicast &lt;br /&gt;
|-&lt;br /&gt;
|130 || || Requête d'abonnement &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|131 || || Rapport d'abonnement &lt;br /&gt;
|-&lt;br /&gt;
|132 || || Fin d'abonnement &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|143 || || Rapport d'abonnement MLDv2 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Tableau 2 : Messages ICMPv6 pour MLD&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Principe de MLD ===&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie régulièrement des messages de recensement général à l'adresse de multicast &amp;lt;tt&amp;gt;FF02::1&amp;lt;/tt&amp;gt;. Cette adresse équivaut à l'adresse de diffusion sur un lien. Pour éviter que le routeur reçoive plusieurs réponses pour un même groupe, les récepteurs ne répondent pas immédiatement. Pour cela, les récepteurs arment un temporisateur pour chaque adresse multicast qui les concerne. Si le récepteur entend une réponse équivalente à la sienne, Il désarme le temporisateur. Sinon, à l'expiration du temporisateur, le récepteur envoie un rapport d'abonnement à l'adresse multicast du groupe. Avec ce système de temporisateurs, les récepteurs peuvent surveiller les rapports des autres récepteurs sur le lien et ainsi minimiser le trafic MLD.&lt;br /&gt;
&lt;br /&gt;
Les changements d'état des récepteurs sont notifiés par des messages non sollicités. Un message non sollicité est un message émis à l'initiative d'un récepteur d'un groupe multicast ; contrairement au recensement, où c'est le routeur local qui prend l'initiative de l'échange. Les récepteurs peuvent envoyer des messages non sollicités pour les cas suivants :&lt;br /&gt;
* pour souscrire à une adresse multicast spécifique ;&lt;br /&gt;
* pour une résiliation rapide : le récepteur envoie un message de résiliation d'abonnement à l'adresse multicast de &amp;quot;tous les routeurs du lien local&amp;quot; (&amp;lt;tt&amp;gt;FF02::2&amp;lt;/tt&amp;gt;). Le routeur répond avec un message de recensement spécifique à l'adresse en question. S'il n'y a plus de récepteur pour répondre à ce recensement, le routeur efface l'adresse multicast de sa table de routage.&lt;br /&gt;
&lt;br /&gt;
Pour cesser d'écouter sur une adresse multicast, le récepteur peut simplement ne plus répondre aux messages de recensement du routeur. S'il est le seul récepteur de cette adresse multicast sur le lien, après un certain temps, l'état du routeur concernant cette adresse expire. Le routeur arrêtera de faire suivre les paquets multicast envoyés à l'adresse en question, s'il s'avère que le récepteur était le dernier concerné par l'adresse multicast sur le lien.&lt;br /&gt;
&lt;br /&gt;
À noter qu'il est possible d'avoir plusieurs routeurs multicast sur le même lien local. Dans ce cas, un mécanisme d'élection est utilisé pour choisir le routeur recenseur. Celui-ci sera le seul responsable pour l'envoi des messages de recensement.&lt;br /&gt;
&lt;br /&gt;
== Fonctions autres et expérimentales ==&lt;br /&gt;
Pour être complet, nous pouvons signaler que les messages ICMPv6 servent aussi pour des fonctions expérimentales.  Le tableau 4 indique les types de messages associés à ces fonctions. Nous ne détaillerons pas ici ces fonctions, limitées à des usages très spécifiques. Le lecteur curieux est invité à consulter les RFC associés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 | Renumérotation des routeurs (expérimental, RFC 2894)&lt;br /&gt;
|-&lt;br /&gt;
|138 || || Renumérotation des routeurs :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || 0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Commande&lt;br /&gt;
|-&lt;br /&gt;
| || 1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Résultat&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || 255 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Remise à zéro du numéro de séquence&lt;br /&gt;
|-&lt;br /&gt;
| ||  || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 | Recherche d'information sur un nœud (expérimental, RFC 4620)&lt;br /&gt;
|-&lt;br /&gt;
|139 || || Demande d'information&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|140 || || Réponse&lt;br /&gt;
|-&lt;br /&gt;
|    || || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
!colspan=3 | Mobilité (RFC 6275)&lt;br /&gt;
|-&lt;br /&gt;
|144 || || Découverte d'agent mère (requête)&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|145 || ||Découverte d'agent mère (réponse)&lt;br /&gt;
|- &lt;br /&gt;
|146 || ||Sollicitation de préfixe mobile&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|147 || || Annonce de préfixe mobile&lt;br /&gt;
|-&lt;br /&gt;
|    || || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
! colspan=3 | Mobilité (expérimental, RFC 4065)&lt;br /&gt;
|- &lt;br /&gt;
|150 || || Protocoles de mobilité expérimentaux, tels que Seamoby&lt;br /&gt;
|}&lt;br /&gt;
Tableau 4 : Fonctions expérimentales s'appuyant sur ICMPv6&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;physique&amp;quot;&amp;gt;Adresse physique de la source/cible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
[[Image:31-Afig1.png|400px|right|thumb|Figure : Format de l'option adresse physique source/cible.]]&lt;br /&gt;
&lt;br /&gt;
La figure &amp;quot;Format de l'option adresse physique source/cible&amp;quot; donne le format de ces options. Le type 1 est réservé à l'adresse physique de la source et le type 2 à l'adresse de la cible.&lt;br /&gt;
&lt;br /&gt;
Le champ «longueur» est la taille en mots de 64 bits de l'option. Dans le cas d'une adresse MAC, d'une longueur de 6 octets, il contient donc la valeur 1.&lt;br /&gt;
&lt;br /&gt;
Le RFC 2464 définit le format pour les adresses MAC-48 utilisés dans les réseaux Ethernet et Wi-Fi. Le RFC 4944 définit le format pour les MAC-16 et MAC-64 utilisés dans les réseaux de capteurs reposant sur la norme IEEE 802.15.4.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;information&amp;quot;&amp;gt;Information sur le préfixe&amp;lt;/div&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
[[Image:31-Afig2.png|400px|right|thumb|Figure : Format de l'option information sur le préfixe.]]&lt;br /&gt;
&lt;br /&gt;
Cette option contient les informations sur le préfixe pour permettre une configuration automatique des équipements. Cette option sera présentée en détail dans l'activité d'autoconfiguration.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;redirigee&amp;quot;&amp;gt;En-tête redirigée&amp;lt;/div&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
[[Image:31-Afig3.png|400px|right|thumb|Figure : Format de l'option en-tête redirigée.]]&lt;br /&gt;
&lt;br /&gt;
Cette option est utilisée par le message d'indication de redirection. Elle permet d'encapsuler les premiers octets du paquet IPv6 qui a provoqué l'émission de ce message comme dans le cas des messages ICMPv6 d'erreur.&lt;br /&gt;
&lt;br /&gt;
Le type vaut 4 et la taille de cette option ne doit pas conduire à un paquet IPv6 dépassant 1280 octets (cf. figure Format de l'option en-tête redirigée). Par contre le paquet doit contenir le maximum d'information possible.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;MTU&amp;quot;&amp;gt;MTU&amp;lt;/div&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
[[Image:31-Afig4.png|400px|right|thumb|Figure : Format de l'option MTU.]]&lt;br /&gt;
&lt;br /&gt;
Cette option permet d'informer les équipements sur la taille maximale des données pouvant être émises sur le lien. La figure &amp;quot;Format de l'option MTU&amp;quot; donne le format de cette option. Il n'est pas nécessaire de diffuser cette information si l'équipement utilise toujours la taille maximale permise. Par exemple, sur les réseaux Ethernet, les équipements utiliseront la valeur 1 500. Par contre pour les réseaux anneau à jeton ou FDDI, il est souvent nécessaire de préciser si les équipements doivent utiliser la valeur maximale permise ou une valeur inférieure pour autoriser l'utilisation de ponts.&lt;br /&gt;
&lt;br /&gt;
Le champ type vaut 5 et le champ longueur 1.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer &lt;br /&gt;
* RFC 2710 Multicast Listener Discovery (MLD) for IPv6&lt;br /&gt;
* RFC 2894 Router Renumbering for IPv6&lt;br /&gt;
* RFC 3122  Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification&lt;br /&gt;
* RFC 3971 SEcure Neighbor Discovery (SEND) [http://www.bortzmeyer.org/3971.html Analyse]&lt;br /&gt;
* RFC 3810  Multicast Listener Discovery Version 2 (MLDv2) for IPv6&lt;br /&gt;
* RFC 4065 Instructions for Seamoby and Experimental Mobility Protocol IANA Allocations&lt;br /&gt;
* RFC 6275 Mobility Support in IPv6&lt;br /&gt;
&lt;br /&gt;
== Référence bibliographique ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20084</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20084"/>
				<updated>2022-02-18T17:21:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Annexe 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
* RFC 1191 Path MTU Discovery&lt;br /&gt;
* RFC 2464 Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6&lt;br /&gt;
* RFC 4443 Internet Control Message Protocol (ICMPv6)  for the Internet Protocol Version 6 (IPv6) Specification [http://www.bortzmeyer.org/4443.html Analyse]&lt;br /&gt;
* RFC 4620 IPv6 Node Information Queries&lt;br /&gt;
* RFC 4890 Recommendations for Filtering ICMPv6 Messages in Firewalls&lt;br /&gt;
* RFC 8201 Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;br /&gt;
* RFC 8883 ICMPv6 Errors for Discarding packets Due to Processing Limits [http://www.bortzmeyer.org/8883.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annexe 1 : Autres fonctions d'ICMPv6==&lt;br /&gt;
Le contenu de cette annexe complète l'activité 23 en :&lt;br /&gt;
* introduisant MLD, le protocole de gestion des inscriptions aux groupes de ''multicast'' et les messages ICMPv6 associés ;&lt;br /&gt;
* introduisant des fonctions expérimentales ;&lt;br /&gt;
&lt;br /&gt;
==Gestion de groupes multicast sur le lien local ==&lt;br /&gt;
&lt;br /&gt;
Pour offrir un service de distribution multicast, deux composants sont nécessaires : un protocole de gestion de groupes multicast et un protocole de routage multicast&amp;lt;ref&amp;gt;Sébastien LOYE. (2005). Techniques de l'ingénieur. ref TE7527. Le multicast IP : principes et protocoles &amp;lt;/ref&amp;gt;. Le protocole de gestion de groupes multicast réalise la signalisation entre l'hôte et son routeur local. Le protocole de routage multicast vise à échanger les informations entre les routeurs afin qu'un arbre de distribution multicast soit construit. &lt;br /&gt;
&lt;br /&gt;
En IPv6, MLD (''Multicast Listener Discovery'') sert, pour un hôte, à indiquer les groupes auxquels il souhaite souscrire. MLD est donc un  protocole de gestion de groupes. Ainsi, un routeur de bordure IPv6 va pouvoir découvrir la présence de récepteurs multicast (qualifiés de ''listeners'') sur ses liens directement attachés, ainsi que les adresses multicast concernées.&lt;br /&gt;
MLD est un protocole asymétrique qui spécifie un comportement différent pour les hôtes (les ''listeners'') et les routeurs.  Toutefois, pour les adresses multicast sur lesquelles un routeur lui-même est récepteur, il doit exécuter les deux parties du protocole. Ceci implique notamment de répondre à ses propres messages de demande.&lt;br /&gt;
En effet, les routeurs doivent constituer une liste des adresses multicast pour lesquelles il a un ou plusieurs récepteurs sur leur lien local. Aussi, un des récepteurs sur un lien envoie un message de rapport d'abonnement aux groupes auxquels il souhaite recevoir les messages. L'objectif est, par des communications multicast sur le lien, que le routeur local arrive à faire la liste complète des groupes multicast pour lesquels il doit relayer le trafic localement.&lt;br /&gt;
&lt;br /&gt;
MLD est une  fonction d'ICMPv6 ; aussi, les messages MLD sont des messages ICMPv6. Les messages pour MLD sont envoyés avec :&lt;br /&gt;
* une adresse source IPv6 lien-local ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; fixé à 1 ;&lt;br /&gt;
* l'option &amp;lt;tt&amp;gt;IPv6 Router Alert&amp;lt;/tt&amp;gt; activée en ajoutant l'extension d'en-tête ''Hop-by-Hop'' correspondante.&lt;br /&gt;
&lt;br /&gt;
Cette dernière option est nécessaire afin de contraindre les routeurs à examiner les messages MLD envoyés à des adresses multicast par lesquelles les routeurs ne sont pas intéressés. &lt;br /&gt;
La version d'origine du protocole MLD [RFC 2710] (que nous appellerons également MLDv1) présente les mêmes fonctionnalités que le protocole IGMPv2 en IPv4. MLDv2 a été proposé par le RFC 3810 dans lequel, en plus du groupe, le récepteur peut indiquer la source. MLDV2 est une adaptation de IGMPv3 d'IPv4 à IPv6.&lt;br /&gt;
&lt;br /&gt;
=== Format des messages pour MLD ===&lt;br /&gt;
Le format générique d'un message MLD est donné par la figure 7. Les différents types de messages ICMPv6 pour MLD sont indiqués par le tableau 2. On distingue trois types de messages pour MLD.&amp;lt;br&amp;gt;&lt;br /&gt;
# Le premier type (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 130) concerne le recensement des récepteurs multicast selon plusieurs méthodes : (i) recensement général émis à l'adresse de diffusion générale sur le lien (&amp;lt;tt&amp;gt;FF02::1&amp;lt;/tt&amp;gt;), (ii) recensement spécifique pour une adresse multicast ; l'adresse de destination est l'adresse multicast du groupe en question. Le message de requête d'abonnement (''Multicast Listener Query'') est émis par le routeur.&lt;br /&gt;
# Le second type de message (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 131) vise à obtenir un rapport d'abonnement multicast (''Multicast Listener Report''). Ce message est émis par le récepteur multicast. L'adresse de destination est l'adresse multicast du groupe en question. Avec MLDv2, le rapport d'abonnement à un groupe multicast a été complété par la possibilité de limiter la réception au trafic émis par certaines sources. Le trafic des sources non indiquées est alors non reçu. Cette restriction sur la source s'effectue par un message spécifique (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 143).&lt;br /&gt;
# Enfin, le troisième type de message (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 132) va servir à un récepteur pour annoncer une résiliation d'abonnement (''Multicast Listener Done'') à un groupe. Ce message est émis à l'adresse du groupe multicast &amp;quot;tous les routeurs du lien local&amp;quot; (&amp;lt;tt&amp;gt;FF02::2&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les champs des messages pour MLD ont la signification suivante :&lt;br /&gt;
* &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : prend la valeur 130, 131 ou 132 ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; : mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; : celui du protocole ICMPv6 standard, couvrant tout le message MLD auquel s'ajoutent les champs du pseudo-en-tête IPv6 ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Délai maximal de réponse&amp;lt;/tt&amp;gt; :&lt;br /&gt;
** utilisé seulement dans les messages de recensement, il exprime le retard maximal autorisé (en millisecondes) pour l'arrivée des rapports d'abonnement,&lt;br /&gt;
** dans les messages de rapport ou de résiliation d'abonnement, ce champ est mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;réservé&amp;lt;/tt&amp;gt; : champ non utilisé et mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Adresse multicast&amp;lt;/tt&amp;gt; :&lt;br /&gt;
** pour un message de recensement général, ce champ est mis à zéro,&lt;br /&gt;
** pour un message de recensement spécifique, il contient l'adresse multicast en question,&lt;br /&gt;
** pour les messages de rapport et de résiliation d'abonnement, le champ contient l'adresse multicast sur laquelle l'hôte souhaite écouter ou cesser d'écouter.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig7.png|400px|center|thumb|Figure 7 : Format générique d'un message ICMPv6 pour MLD.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 |Gestion des groupes multicast &lt;br /&gt;
|-&lt;br /&gt;
|130 || || Requête d'abonnement &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|131 || || Rapport d'abonnement &lt;br /&gt;
|-&lt;br /&gt;
|132 || || Fin d'abonnement &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|143 || || Rapport d'abonnement MLDv2 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Tableau 2 : Messages ICMPv6 pour MLD&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Principe de MLD ===&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie régulièrement des messages de recensement général à l'adresse de multicast &amp;lt;tt&amp;gt;FF02::1&amp;lt;/tt&amp;gt;. Cette adresse équivaut à l'adresse de diffusion sur un lien. Pour éviter que le routeur reçoive plusieurs réponses pour un même groupe, les récepteurs ne répondent pas immédiatement. Pour cela, les récepteurs arment un temporisateur pour chaque adresse multicast qui les concerne. Si le récepteur entend une réponse équivalente à la sienne, Il désarme le temporisateur. Sinon, à l'expiration du temporisateur, le récepteur envoie un rapport d'abonnement à l'adresse multicast du groupe. Avec ce système de temporisateurs, les récepteurs peuvent surveiller les rapports des autres récepteurs sur le lien et ainsi minimiser le trafic MLD.&lt;br /&gt;
&lt;br /&gt;
Les changements d'état des récepteurs sont notifiés par des messages non sollicités. Un message non sollicité est un message émis à l'initiative d'un récepteur d'un groupe multicast ; contrairement au recensement, où c'est le routeur local qui prend l'initiative de l'échange. Les récepteurs peuvent envoyer des messages non sollicités pour les cas suivants :&lt;br /&gt;
* pour souscrire à une adresse multicast spécifique ;&lt;br /&gt;
* pour une résiliation rapide : le récepteur envoie un message de résiliation d'abonnement à l'adresse multicast de &amp;quot;tous les routeurs du lien local&amp;quot; (&amp;lt;tt&amp;gt;FF02::2&amp;lt;/tt&amp;gt;). Le routeur répond avec un message de recensement spécifique à l'adresse en question. S'il n'y a plus de récepteur pour répondre à ce recensement, le routeur efface l'adresse multicast de sa table de routage.&lt;br /&gt;
&lt;br /&gt;
Pour cesser d'écouter sur une adresse multicast, le récepteur peut simplement ne plus répondre aux messages de recensement du routeur. S'il est le seul récepteur de cette adresse multicast sur le lien, après un certain temps, l'état du routeur concernant cette adresse expire. Le routeur arrêtera de faire suivre les paquets multicast envoyés à l'adresse en question, s'il s'avère que le récepteur était le dernier concerné par l'adresse multicast sur le lien.&lt;br /&gt;
&lt;br /&gt;
À noter qu'il est possible d'avoir plusieurs routeurs multicast sur le même lien local. Dans ce cas, un mécanisme d'élection est utilisé pour choisir le routeur recenseur. Celui-ci sera le seul responsable pour l'envoi des messages de recensement.&lt;br /&gt;
&lt;br /&gt;
== Fonctions autres et expérimentales ==&lt;br /&gt;
Pour être complet, nous pouvons signaler que les messages ICMPv6 servent aussi pour des fonctions expérimentales.  Le tableau 4 indique les types de messages associés à ces fonctions. Nous ne détaillerons pas ici ces fonctions, limitées à des usages très spécifiques. Le lecteur curieux est invité à consulter les RFC associés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 | Renumérotation des routeurs (expérimental, RFC 2894)&lt;br /&gt;
|-&lt;br /&gt;
|138 || || Renumérotation des routeurs :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || 0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Commande&lt;br /&gt;
|-&lt;br /&gt;
| || 1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Résultat&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || 255 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Remise à zéro du numéro de séquence&lt;br /&gt;
|-&lt;br /&gt;
| ||  || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 | Recherche d'information sur un nœud (expérimental, RFC 4620)&lt;br /&gt;
|-&lt;br /&gt;
|139 || || Demande d'information&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|140 || || Réponse&lt;br /&gt;
|-&lt;br /&gt;
|    || || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
!colspan=3 | Mobilité (RFC 6275)&lt;br /&gt;
|-&lt;br /&gt;
|144 || || Découverte d'agent mère (requête)&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|145 || ||Découverte d'agent mère (réponse)&lt;br /&gt;
|- &lt;br /&gt;
|146 || ||Sollicitation de préfixe mobile&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|147 || || Annonce de préfixe mobile&lt;br /&gt;
|-&lt;br /&gt;
|    || || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
! colspan=3 | Mobilité (expérimental, RFC 4065)&lt;br /&gt;
|- &lt;br /&gt;
|150 || || Protocoles de mobilité expérimentaux, tels que Seamoby&lt;br /&gt;
|}&lt;br /&gt;
Tableau 4 : Fonctions expérimentales s'appuyant sur ICMPv6&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer &lt;br /&gt;
* RFC 2710 Multicast Listener Discovery (MLD) for IPv6&lt;br /&gt;
* RFC 2894 Router Renumbering for IPv6&lt;br /&gt;
* RFC 3122  Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification&lt;br /&gt;
* RFC 3971 SEcure Neighbor Discovery (SEND) [http://www.bortzmeyer.org/3971.html Analyse]&lt;br /&gt;
* RFC 3810  Multicast Listener Discovery Version 2 (MLDv2) for IPv6&lt;br /&gt;
* RFC 4065 Instructions for Seamoby and Experimental Mobility Protocol IANA Allocations&lt;br /&gt;
* RFC 6275 Mobility Support in IPv6&lt;br /&gt;
&lt;br /&gt;
== Référence bibliographique ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20083</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20083"/>
				<updated>2022-02-18T17:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Pour aller plus loin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
* RFC 1191 Path MTU Discovery&lt;br /&gt;
* RFC 2464 Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6&lt;br /&gt;
* RFC 4443 Internet Control Message Protocol (ICMPv6)  for the Internet Protocol Version 6 (IPv6) Specification [http://www.bortzmeyer.org/4443.html Analyse]&lt;br /&gt;
* RFC 4620 IPv6 Node Information Queries&lt;br /&gt;
* RFC 4890 Recommendations for Filtering ICMPv6 Messages in Firewalls&lt;br /&gt;
* RFC 8201 Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;br /&gt;
* RFC 8883 ICMPv6 Errors for Discarding packets Due to Processing Limits [http://www.bortzmeyer.org/8883.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annexe 1 ==&lt;br /&gt;
Le contenu de cette annexe complète l'activité 23 en :&lt;br /&gt;
* introduisant MLD, le protocole de gestion des inscriptions aux groupes de ''multicast'' et les messages ICMPv6 associés ;&lt;br /&gt;
* introduisant des fonctions expérimentales ;&lt;br /&gt;
&lt;br /&gt;
==Gestion de groupes multicast sur le lien local ==&lt;br /&gt;
&lt;br /&gt;
Pour offrir un service de distribution multicast, deux composants sont nécessaires : un protocole de gestion de groupes multicast et un protocole de routage multicast&amp;lt;ref&amp;gt;Sébastien LOYE. (2005). Techniques de l'ingénieur. ref TE7527. Le multicast IP : principes et protocoles &amp;lt;/ref&amp;gt;. Le protocole de gestion de groupes multicast réalise la signalisation entre l'hôte et son routeur local. Le protocole de routage multicast vise à échanger les informations entre les routeurs afin qu'un arbre de distribution multicast soit construit. &lt;br /&gt;
&lt;br /&gt;
En IPv6, MLD (''Multicast Listener Discovery'') sert, pour un hôte, à indiquer les groupes auxquels il souhaite souscrire. MLD est donc un  protocole de gestion de groupes. Ainsi, un routeur de bordure IPv6 va pouvoir découvrir la présence de récepteurs multicast (qualifiés de ''listeners'') sur ses liens directement attachés, ainsi que les adresses multicast concernées.&lt;br /&gt;
MLD est un protocole asymétrique qui spécifie un comportement différent pour les hôtes (les ''listeners'') et les routeurs.  Toutefois, pour les adresses multicast sur lesquelles un routeur lui-même est récepteur, il doit exécuter les deux parties du protocole. Ceci implique notamment de répondre à ses propres messages de demande.&lt;br /&gt;
En effet, les routeurs doivent constituer une liste des adresses multicast pour lesquelles il a un ou plusieurs récepteurs sur leur lien local. Aussi, un des récepteurs sur un lien envoie un message de rapport d'abonnement aux groupes auxquels il souhaite recevoir les messages. L'objectif est, par des communications multicast sur le lien, que le routeur local arrive à faire la liste complète des groupes multicast pour lesquels il doit relayer le trafic localement.&lt;br /&gt;
&lt;br /&gt;
MLD est une  fonction d'ICMPv6 ; aussi, les messages MLD sont des messages ICMPv6. Les messages pour MLD sont envoyés avec :&lt;br /&gt;
* une adresse source IPv6 lien-local ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; fixé à 1 ;&lt;br /&gt;
* l'option &amp;lt;tt&amp;gt;IPv6 Router Alert&amp;lt;/tt&amp;gt; activée en ajoutant l'extension d'en-tête ''Hop-by-Hop'' correspondante.&lt;br /&gt;
&lt;br /&gt;
Cette dernière option est nécessaire afin de contraindre les routeurs à examiner les messages MLD envoyés à des adresses multicast par lesquelles les routeurs ne sont pas intéressés. &lt;br /&gt;
La version d'origine du protocole MLD [RFC 2710] (que nous appellerons également MLDv1) présente les mêmes fonctionnalités que le protocole IGMPv2 en IPv4. MLDv2 a été proposé par le RFC 3810 dans lequel, en plus du groupe, le récepteur peut indiquer la source. MLDV2 est une adaptation de IGMPv3 d'IPv4 à IPv6.&lt;br /&gt;
&lt;br /&gt;
=== Format des messages pour MLD ===&lt;br /&gt;
Le format générique d'un message MLD est donné par la figure 7. Les différents types de messages ICMPv6 pour MLD sont indiqués par le tableau 2. On distingue trois types de messages pour MLD.&amp;lt;br&amp;gt;&lt;br /&gt;
# Le premier type (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 130) concerne le recensement des récepteurs multicast selon plusieurs méthodes : (i) recensement général émis à l'adresse de diffusion générale sur le lien (&amp;lt;tt&amp;gt;FF02::1&amp;lt;/tt&amp;gt;), (ii) recensement spécifique pour une adresse multicast ; l'adresse de destination est l'adresse multicast du groupe en question. Le message de requête d'abonnement (''Multicast Listener Query'') est émis par le routeur.&lt;br /&gt;
# Le second type de message (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 131) vise à obtenir un rapport d'abonnement multicast (''Multicast Listener Report''). Ce message est émis par le récepteur multicast. L'adresse de destination est l'adresse multicast du groupe en question. Avec MLDv2, le rapport d'abonnement à un groupe multicast a été complété par la possibilité de limiter la réception au trafic émis par certaines sources. Le trafic des sources non indiquées est alors non reçu. Cette restriction sur la source s'effectue par un message spécifique (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 143).&lt;br /&gt;
# Enfin, le troisième type de message (&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; = 132) va servir à un récepteur pour annoncer une résiliation d'abonnement (''Multicast Listener Done'') à un groupe. Ce message est émis à l'adresse du groupe multicast &amp;quot;tous les routeurs du lien local&amp;quot; (&amp;lt;tt&amp;gt;FF02::2&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les champs des messages pour MLD ont la signification suivante :&lt;br /&gt;
* &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : prend la valeur 130, 131 ou 132 ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; : mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; : celui du protocole ICMPv6 standard, couvrant tout le message MLD auquel s'ajoutent les champs du pseudo-en-tête IPv6 ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Délai maximal de réponse&amp;lt;/tt&amp;gt; :&lt;br /&gt;
** utilisé seulement dans les messages de recensement, il exprime le retard maximal autorisé (en millisecondes) pour l'arrivée des rapports d'abonnement,&lt;br /&gt;
** dans les messages de rapport ou de résiliation d'abonnement, ce champ est mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;réservé&amp;lt;/tt&amp;gt; : champ non utilisé et mis à zéro par l'émetteur et ignoré par les récepteurs ;&lt;br /&gt;
* &amp;lt;tt&amp;gt;Adresse multicast&amp;lt;/tt&amp;gt; :&lt;br /&gt;
** pour un message de recensement général, ce champ est mis à zéro,&lt;br /&gt;
** pour un message de recensement spécifique, il contient l'adresse multicast en question,&lt;br /&gt;
** pour les messages de rapport et de résiliation d'abonnement, le champ contient l'adresse multicast sur laquelle l'hôte souhaite écouter ou cesser d'écouter.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig7.png|400px|center|thumb|Figure 7 : Format générique d'un message ICMPv6 pour MLD.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 |Gestion des groupes multicast &lt;br /&gt;
|-&lt;br /&gt;
|130 || || Requête d'abonnement &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|131 || || Rapport d'abonnement &lt;br /&gt;
|-&lt;br /&gt;
|132 || || Fin d'abonnement &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|143 || || Rapport d'abonnement MLDv2 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Tableau 2 : Messages ICMPv6 pour MLD&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Principe de MLD ===&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie régulièrement des messages de recensement général à l'adresse de multicast &amp;lt;tt&amp;gt;FF02::1&amp;lt;/tt&amp;gt;. Cette adresse équivaut à l'adresse de diffusion sur un lien. Pour éviter que le routeur reçoive plusieurs réponses pour un même groupe, les récepteurs ne répondent pas immédiatement. Pour cela, les récepteurs arment un temporisateur pour chaque adresse multicast qui les concerne. Si le récepteur entend une réponse équivalente à la sienne, Il désarme le temporisateur. Sinon, à l'expiration du temporisateur, le récepteur envoie un rapport d'abonnement à l'adresse multicast du groupe. Avec ce système de temporisateurs, les récepteurs peuvent surveiller les rapports des autres récepteurs sur le lien et ainsi minimiser le trafic MLD.&lt;br /&gt;
&lt;br /&gt;
Les changements d'état des récepteurs sont notifiés par des messages non sollicités. Un message non sollicité est un message émis à l'initiative d'un récepteur d'un groupe multicast ; contrairement au recensement, où c'est le routeur local qui prend l'initiative de l'échange. Les récepteurs peuvent envoyer des messages non sollicités pour les cas suivants :&lt;br /&gt;
* pour souscrire à une adresse multicast spécifique ;&lt;br /&gt;
* pour une résiliation rapide : le récepteur envoie un message de résiliation d'abonnement à l'adresse multicast de &amp;quot;tous les routeurs du lien local&amp;quot; (&amp;lt;tt&amp;gt;FF02::2&amp;lt;/tt&amp;gt;). Le routeur répond avec un message de recensement spécifique à l'adresse en question. S'il n'y a plus de récepteur pour répondre à ce recensement, le routeur efface l'adresse multicast de sa table de routage.&lt;br /&gt;
&lt;br /&gt;
Pour cesser d'écouter sur une adresse multicast, le récepteur peut simplement ne plus répondre aux messages de recensement du routeur. S'il est le seul récepteur de cette adresse multicast sur le lien, après un certain temps, l'état du routeur concernant cette adresse expire. Le routeur arrêtera de faire suivre les paquets multicast envoyés à l'adresse en question, s'il s'avère que le récepteur était le dernier concerné par l'adresse multicast sur le lien.&lt;br /&gt;
&lt;br /&gt;
À noter qu'il est possible d'avoir plusieurs routeurs multicast sur le même lien local. Dans ce cas, un mécanisme d'élection est utilisé pour choisir le routeur recenseur. Celui-ci sera le seul responsable pour l'envoi des messages de recensement.&lt;br /&gt;
&lt;br /&gt;
== Fonctions autres et expérimentales ==&lt;br /&gt;
Pour être complet, nous pouvons signaler que les messages ICMPv6 servent aussi pour des fonctions expérimentales.  Le tableau 4 indique les types de messages associés à ces fonctions. Nous ne détaillerons pas ici ces fonctions, limitées à des usages très spécifiques. Le lecteur curieux est invité à consulter les RFC associés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 | Renumérotation des routeurs (expérimental, RFC 2894)&lt;br /&gt;
|-&lt;br /&gt;
|138 || || Renumérotation des routeurs :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || 0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Commande&lt;br /&gt;
|-&lt;br /&gt;
| || 1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Résultat&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || 255 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Remise à zéro du numéro de séquence&lt;br /&gt;
|-&lt;br /&gt;
| ||  || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3 | Recherche d'information sur un nœud (expérimental, RFC 4620)&lt;br /&gt;
|-&lt;br /&gt;
|139 || || Demande d'information&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|140 || || Réponse&lt;br /&gt;
|-&lt;br /&gt;
|    || || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
!colspan=3 | Mobilité (RFC 6275)&lt;br /&gt;
|-&lt;br /&gt;
|144 || || Découverte d'agent mère (requête)&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|145 || ||Découverte d'agent mère (réponse)&lt;br /&gt;
|- &lt;br /&gt;
|146 || ||Sollicitation de préfixe mobile&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|147 || || Annonce de préfixe mobile&lt;br /&gt;
|-&lt;br /&gt;
|    || || &lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
! colspan=3 | Mobilité (expérimental, RFC 4065)&lt;br /&gt;
|- &lt;br /&gt;
|150 || || Protocoles de mobilité expérimentaux, tels que Seamoby&lt;br /&gt;
|}&lt;br /&gt;
Tableau 4 : Fonctions expérimentales s'appuyant sur ICMPv6&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer &lt;br /&gt;
* RFC 2710 Multicast Listener Discovery (MLD) for IPv6&lt;br /&gt;
* RFC 2894 Router Renumbering for IPv6&lt;br /&gt;
* RFC 3122  Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification&lt;br /&gt;
* RFC 3971 SEcure Neighbor Discovery (SEND) [http://www.bortzmeyer.org/3971.html Analyse]&lt;br /&gt;
* RFC 3810  Multicast Listener Discovery Version 2 (MLDv2) for IPv6&lt;br /&gt;
* RFC 4065 Instructions for Seamoby and Experimental Mobility Protocol IANA Allocations&lt;br /&gt;
* RFC 6275 Mobility Support in IPv6&lt;br /&gt;
&lt;br /&gt;
== Référence bibliographique ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20082</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20082"/>
				<updated>2022-02-18T17:13:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Attention au filtrage d'ICMPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
* RFC 1191 Path MTU Discovery&lt;br /&gt;
* RFC 2464 Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6&lt;br /&gt;
* RFC 4443 Internet Control Message Protocol (ICMPv6)  for the Internet Protocol Version 6 (IPv6) Specification [http://www.bortzmeyer.org/4443.html Analyse]&lt;br /&gt;
* RFC 4620 IPv6 Node Information Queries&lt;br /&gt;
* RFC 4890 Recommendations for Filtering ICMPv6 Messages in Firewalls&lt;br /&gt;
* RFC 8201 Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;br /&gt;
* RFC 8883 ICMPv6 Errors for Discarding packets Due to Processing Limits [http://www.bortzmeyer.org/8883.html Analyse]&lt;br /&gt;
&lt;br /&gt;
== Référence bibliographique ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20081</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20081"/>
				<updated>2022-02-18T17:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Pour aller plus loin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20080</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20080"/>
				<updated>2022-02-18T17:10:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Pour aller plus loin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
* RFC 1191 Path MTU Discovery&lt;br /&gt;
* RFC 2464 Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6&lt;br /&gt;
* RFC 4443 Internet Control Message Protocol (ICMPv6)  for the Internet Protocol Version 6 (IPv6) Specification [http://www.bortzmeyer.org/4443.html Analyse]&lt;br /&gt;
* RFC 4620 IPv6 Node Information Queries&lt;br /&gt;
* RFC 4890 Recommendations for Filtering ICMPv6 Messages in Firewalls&lt;br /&gt;
* RFC 8201 Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;br /&gt;
* RFC 8883 ICMPv6 Errors for Discarding packets Due to Processing Limits [http://www.bortzmeyer.org/8883.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20079</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20079"/>
				<updated>2022-02-18T17:09:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Attention au filtrage d'ICMPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
{{TODO|Restreindre cette liste car elle va plus loin que NDP}}&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
* RFC 1191 Path MTU Discovery&lt;br /&gt;
* RFC 2464 Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6&lt;br /&gt;
* RFC 4443 Internet Control Message Protocol (ICMPv6)  for the Internet Protocol Version 6 (IPv6) Specification [http://www.bortzmeyer.org/4443.html Analyse]&lt;br /&gt;
* RFC 4620 IPv6 Node Information Queries&lt;br /&gt;
* RFC 4890 Recommendations for Filtering ICMPv6 Messages in Firewalls&lt;br /&gt;
* RFC 8201 Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;br /&gt;
* RFC 8883 ICMPv6 Errors for Discarding packets Due to Processing Limits [http://www.bortzmeyer.org/8883.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20078</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20078"/>
				<updated>2022-02-18T17:05:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'Internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20077</id>
		<title>MOOC:Compagnon Act23-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act23-s7&amp;diff=20077"/>
				<updated>2022-02-18T17:04:43Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Activité 23 : Le contrôle par ICMPv6 de l'acheminement des paquets IPv6  =&lt;br /&gt;
&amp;lt;!-- = Activité 23 : Contrôler le fonctionnement du réseau par ICMPv6  = --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les réseaux physiques constituant Internet sont susceptibles d'être défaillants de manière plus ou moins fréquentes. Il peut s'agir d'une panne d'un équipement intermédiaire (routeur, commutateur) ou d'un lien (rupture d'un câble souterrain par une pelleteuse par exemple). L'internet est normalement prévu pour exploiter des chemins alternatifs pour continuer à assurer l'acheminement des paquets, mais la détection et la gestion de ces incidents nécessitent des mécanismes de contrôle. Le réseau peut aussi détecter des problèmes d'acheminement liés à la nature de certains paquets : taille des données trop importante, en-tête comportant une adresse invalide ou ne correspondant à aucun équipement, etc. &lt;br /&gt;
&lt;br /&gt;
Le protocole IPv6 prévoit donc un mécanisme permettant de signaler ces problèmes d'acheminement. Les messages correspondant à cette signalisation sont spécifiés dans le protocole ICMPv6 (RFC 4443). Il permet au réseau d'informer la source d'un paquet que celui ne peut pas être acheminé et en signifie la raison. C'est un mécanisme similaire au retour à l'expéditeur dans le réseau postal.&lt;br /&gt;
&lt;br /&gt;
== Format général d'un message ICMPv6 ==&lt;br /&gt;
Les messages ICMPv6 sont encapsulés directement dans un paquet IPv6. Le protocole se voit attribuer le numéro 58 pour être représenté dans l'en-tête IPv6 comme prochain en-tête (champ ''Next Header''). Le format général des messages ICMPv6 est donné par la figure 1. L'en-tête des messages ICMPv6 comporte 3 champs :&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; : il indique la nature du message ICMPv6 et donc, le format spécifique du message. Les messages ICMPv6 forment 2 groupes : un groupe pour les messages d'informations et un autre pour les messages d'erreurs. Les groupes sont identifiés par le bit de poids fort de ce champ. Les messages d'erreurs ont ce bit à zéro et donc, le champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; prendra, pour ces messages, une valeur comprise entre 0 et 127. Les messages d'informations sont identifiés par un champ &amp;lt;tt&amp;gt;Type&amp;lt;/tt&amp;gt; dont la valeur est comprise entre 128 et 255.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Code&amp;lt;/tt&amp;gt; s'interprète dans le contexte du type de message. Il est utilisé pour ajouter une granularité plus fine au type.&lt;br /&gt;
# Le champ &amp;lt;tt&amp;gt;Checksum&amp;lt;/tt&amp;gt; sert à vérifier l'intégrité du message ICMP. Il porte aussi bien sur l'en-tête du message que sur sa charge utile.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig1b.png|400px|center|thumb|Figure 1 : Format d'un message ICMPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La charge utile du message ICMPv6 (''message body'') est relative au contexte fonctionnel :&lt;br /&gt;
* dans le cas des messages de compte rendu d'erreurs, elle contient le paquet IPv6 ayant provoqué l'erreur. Pour éviter d'avoir à fragmenter, la longueur du message ICMPv6 est limitée à 1 280 octets. Par conséquent, le contenu du paquet IPv6 renvoyé peut être tronqué ;&lt;br /&gt;
* pour les messages de découverte du voisinage, la charge utile est composée de différentes options selon qu'il s'agisse d'une sollicitation de voisin ou d'une annonce de voisin ;&lt;br /&gt;
* les messages de test d'accessibilité embarquent des données de taille et de contenu quelconque.&lt;br /&gt;
&lt;br /&gt;
Les messages sont spécifiés dans différents RFC. Cependant, la liste complète des types de messages et les différents paramètres associés sont regroupés par l'IANA (''Internet Assigned Number Authority'')&amp;lt;ref&amp;gt;IANA. [http://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml ''Internet Control Message Protocol'' version 6 (ICMPv6) Parameters]&amp;lt;/ref&amp;gt;.  Le tableau 1 présente les valeurs et les codes définis dans le RFC 4443. Ce qu'il faut noter, c'est que les valeurs de type inférieures à 128 sont pour les messages d'erreurs et qu'à partir de 128, ce sont des messages d'informations.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-style=&amp;quot;background-color:#f0f0f0&amp;quot; &lt;br /&gt;
!Type !! Code  !! Signification&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
!colspan=3|Message de compte rendu d'erreur&lt;br /&gt;
|-&lt;br /&gt;
|1 || || Destination inaccessible :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Aucune route vers la destination.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;La communication avec la destination est administrativement interdite.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Hors portée de l'adresse source.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|3 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse est inaccessible.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|4 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Le numéro de port est inaccessible.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|5 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse source est filtrée par un ''firewall''.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|6 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;L'adresse destination est rejetée.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || || &amp;lt;div id=&amp;quot;2&amp;quot;&amp;gt;Paquet trop grand.&amp;lt;/div&amp;gt;&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|3 || || Délai expiré :&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Limite du nombre de sauts atteinte.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Temps de réassemblage dépassé.&lt;br /&gt;
|-&lt;br /&gt;
|4 || || Erreur de paramètre :&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|0 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête erroné.&lt;br /&gt;
|-&lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|1 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Champ d'en-tête suivant non reconnu.&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
| || style=&amp;quot;text-align: center;&amp;quot;|2 ||&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Option non reconnue.&lt;br /&gt;
|-&lt;br /&gt;
| ||   ||&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
! colspan=3|Message d'information&lt;br /&gt;
|-&lt;br /&gt;
|128 || || Demande d'écho&lt;br /&gt;
|-style=&amp;quot;background:silver&amp;quot; &lt;br /&gt;
|129 || ||Réponse d'écho&lt;br /&gt;
|}&lt;br /&gt;
Tableau 1 : Messages ICMPv6 décrit dans le RFC 4443.&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité d'un nœud ==&lt;br /&gt;
Les test d'accessibilité vise à vérifier qu'un nœud est joignable par l'adresse IPv6 de son interface. Autrement dit, depuis un nœud, on vérifie qu'il existe une connectivité entre deux nœuds de l'Internet. Ce test est couramment utilisé, notamment à l'aide de l'outil nommé &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt;.Le principe de fonctionnement est le même que pour IPv4. Un message de demande d'écho (''echo request''), message ICMPv6 type 128 est envoyé vers le nœud dont on veut tester la connectivité. Ce dernier répond par le message &amp;quot;réponse d'écho&amp;quot; (''echo reply''), message ICMPv6 de type 129. Le format de ces deux messages est présenté par la figure 2.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig2.png|400px|center|thumb|Figure 2 : Format du message d'écho.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Les réponses sont identifiées par le champ &amp;lt;tt&amp;gt;identifiant&amp;lt;/tt&amp;gt;. Ainsi, la réponse est rapprochée de la requête. Ceci est particulièrement utile quand plusieurs commandes &amp;lt;tt&amp;gt;ping&amp;lt;/tt&amp;gt; sont exécutées simultanément sur la machine. Le champ &amp;lt;tt&amp;gt;numéro de séquence&amp;lt;/tt&amp;gt; complète le mécanisme de rapprochement de la réponse à la requête et va servir à mesurer la durée d'aller et retour dans le cas où les demandes sont émises en continu et que le délai de propagation est élevé. La réponse doit toujours contenir les mêmes valeurs que la requête pour ces deux champs. Le champ &amp;lt;tt&amp;gt;données&amp;lt;/tt&amp;gt; permet d'augmenter la taille du message (et donc la durée de transmission) pour les mesures.&lt;br /&gt;
&lt;br /&gt;
Pour illustrer le test d'accessibilité, observons l'échange suivant : &lt;br /&gt;
Le nœud nommé &amp;quot;Uma&amp;quot; teste la connectivité du nœud &amp;quot;Ganesha&amp;quot; via la commande &amp;lt;tt&amp;gt;ping6&amp;lt;/tt&amp;gt;.  La commande entrée sur Uma est la suivante :&lt;br /&gt;
 uma# '''ping6 ganesha'''&lt;br /&gt;
 trying to get source for ganesha&lt;br /&gt;
 source should be 2001:db8:12:3:a00:20ff:fe0a:aa6d&lt;br /&gt;
 PING ganesha (2001:db8:12:3::3): 56 data bytes&lt;br /&gt;
 64 bytes from 2001:db8:12:3::3: icmp6_seq=0 ttl=255 time=5.121 ms&lt;br /&gt;
&lt;br /&gt;
Les messages ICMPv6 obtenus sont les suivants.&lt;br /&gt;
* Le nœud &amp;quot;Uma&amp;quot;, qui est l'initiateur, envoie un message ''ICMPv6 Demande d'écho''. La trace 1 montre un paquet IPv6 contenant un message ''ICMPv6 Demande d'écho'' (en bleu dans la trace).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma) &lt;br /&gt;
 Desti. : 2001:db8:12:3::3 (Ganesha) &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 128 (0x80, Demande d'écho)	Code : 0 Checksum : 0xcfe8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0a00 20ff fe0a aa6d 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0000 0000 0000 0003|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;80|00|cfe8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 1 : Message ICMPv6 Demande d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
* Le destinataire du message &amp;quot;Demande d'écho&amp;quot;, qui est Ganesha sur la figure 10, acquitte ce message en retournant un message ''ICMPv6 Réponse d'écho'' (voir la trace 2).&lt;br /&gt;
&lt;br /&gt;
 Version : 6	Classe : 0x00	Label : 000000 Longueur : 64 octets (0x0040)&lt;br /&gt;
 Protocole : 58 (0x3a, ICMPv6)&lt;br /&gt;
 Nombre de sauts : 64 (0x40)&lt;br /&gt;
 Source : 2001:db8:12:3::3 (Ganesha)&lt;br /&gt;
 Desti. : 2001:db8:12:3:a00:20ff:fe0a:aa6d (Uma)  &lt;br /&gt;
 ICMPv6  &lt;br /&gt;
 Type : 129 (0x81, Réponse d'écho)	Code : 0 Checksum : 0xcee8&lt;br /&gt;
 Identificateur : 0x0e02	Numéro de séquence : 0x0001 &lt;br /&gt;
 Données : b6e0 f056 ...&lt;br /&gt;
 &lt;br /&gt;
 0000:  ''6000 0000 0040 3a40 2001 0db8 0012 0003''&lt;br /&gt;
 0010:  ''0000 0000 0000 0003 2001 0db8 0012 0003''&lt;br /&gt;
 0020:  ''0a00 20ff fe0a aa6d|&amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;81|00|cee8|0e02|0001|''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0030:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''b6e0 f056 d947 0700 0809 0a0b 0c0d 0e0f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0040:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''1011 1213 1415 1617 1819 1a1b 1c1d 1e1f''&amp;lt;/font&amp;gt;&lt;br /&gt;
 0050:  &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;''2021''&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Trace 2 : Message ICMPv6 Réponse d'écho.'''&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Messages ICMPv6 de rapport d'erreur ==&lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler, à l'émetteur d'un paquet, un problème dans son acheminement ou dans sa réception, par des messages de rapport d'erreur. Lorsqu'une machine émet un paquet, si une erreur est détectée par le destinataire ou par tout routeur intermédiaire le long du chemin vers le destinataire, alors l'élément qui détecte l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6. Le type du message et son code définissent précisément l'erreur détectée. L'extrait, jusqu'à concurrence de 1280 octets du paquet en défaut, est incluse pour permettre l'analyse de l'erreur. &lt;br /&gt;
L'exemple ci-dessous illustre un message ICMP ''Paquet trop grand'', généré par un routeur intermédiaire dès qu'un datagramme ne peut être retransmis en raison de la limitation de la MTU sur son interface de sortie. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Différentes erreurs peuvent être signalées par ICMPv6. Les cas les plus courants sont : &lt;br /&gt;
* destination inaccessible (type 1), la raison est précisée par le champ Code ;&lt;br /&gt;
* paquet trop grand (type 2) ;&lt;br /&gt;
* délai expiré (type 3) ;&lt;br /&gt;
* erreur de paramètre (type 4).&lt;br /&gt;
&lt;br /&gt;
Chaque cas d'erreur est défini par un message ICMP. Nous allons voir les cas d'erreurs rapportées par ICMPv6.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;div id=&amp;quot;inaccessible&amp;quot;&amp;gt;Destination inaccessible&amp;lt;/div&amp;gt; ===&lt;br /&gt;
Un message ICMP ''Destination Unreachable'' est généré dès qu'un datagramme ne peut être traité. Le format de ce message est présenté par la figure 3.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig3.png|400px|center|thumb|Figure 3 :  Format du message de Destination inaccessible.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message est émis par un routeur quand le paquet ne peut pas être transmis pour l'une des raisons suivantes :&lt;br /&gt;
&lt;br /&gt;
* le routeur ne trouve pas dans ses tables la route vers la destination (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le franchissement d'un pare-feu (''Firewall'') est interdit (&amp;quot;raison administrative&amp;quot;, &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* l'adresse destination ne peut être atteinte avec l'adresse source fournie. Par exemple, si le message est adressé à un destinataire hors du lien, l'adresse source ne doit pas être une adresse &amp;quot;lien-local&amp;quot; (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2) ;&lt;br /&gt;
* toute autre raison comme, par exemple, la tentative de routage d'une adresse locale au lien (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 3) ;&lt;br /&gt;
* le destinataire peut aussi émettre un message ICMPv6 de ce type quand le port destination contenu dans le paquet n'est pas affecté à une application (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 4) ;&lt;br /&gt;
* le paquet a été rejeté à cause de son adresse source (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 5) ;&lt;br /&gt;
* la route vers la destination conduit à un rejet du paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 6).&lt;br /&gt;
&lt;br /&gt;
Le champ de données contient tout ou partie du datagramme IP qui a occasionné ce message d'erreur.&lt;br /&gt;
&lt;br /&gt;
=== Paquet trop grand ===&lt;br /&gt;
Si un routeur ne peut pas relayer le datagramme IP parce que celui-ci a une taille supérieure à la MTU (''Maximum Transmission Unit'') du lien de sortie, il émet le message d'erreur ''Packet Too Big''. Les routeurs en IPv6 ne sont plus habilités à effectuer la fragmentation. Le format du message est représenté par la figure 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig4.png|400px|center|thumb|Figure 4 : Format du message ICMPv6 Paquet trop grand.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce message ICMPv6 est utilisé par le protocole de découverte de la MTU pour trouver la taille optimale des paquets IPv6 afin qu'ils puissent traverser les routeurs. Ce mécanisme, spécifié par le RFC 8201, est décrit dans la séquence 2. Ce message contient la taille du MTU acceptée par le routeur pour que la source puisse efficacement adapter la taille des données. Ce champ manquait cruellement dans les spécifications initiales de IPv4, ce qui compliquait la découverte de la taille maximale des paquets utilisables sur l'ensemble du chemin. Pour IPv4, le RFC 1191 proposait déjà une modification du comportement des routeurs pour y inclure cette information.&lt;br /&gt;
À noter que le RFC 4443 indique que ce message n'est pas produit dans le cas d'une communication multicast.&lt;br /&gt;
&lt;br /&gt;
=== Délai expiré ===&lt;br /&gt;
Quand un routeur relaie un datagramme, il décrémente la valeur du &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt;(''Hop Limit'') de 1. Ce champ, dans l'en-tête IPv6, limite la durée de vie d'un paquet dans le réseau. La durée de vie est exprimée en nombre de routeurs traversés (ou  sauts).&lt;br /&gt;
Si un routeur reçoit un datagramme avec un &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; de 1, la décrémentation amène la valeur de ce champ à zéro. Le routeur supprime le datagramme et en avertit la source à l'aide du message Délai expiré (''Time Exceeded'') (voir la figure 5). Le signalement de cette erreur peut  indiquer une boucle dans le réseau au niveau du routage ou que l'émetteur a positionné une valeur de &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; trop faible. Le dernier cas peut provenir d'un paquet émis  par la commande &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt;. Cette commande vise à  déterminer le chemin pris par les datagrammes &amp;lt;ref&amp;gt;Wikipédia [https://fr.wikipedia.org/wiki/Traceroute Principe de l'utilitaire traceroute]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig5.png|400px|center|thumb|Figure 5 : Format du message de délai expiré.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message ICMPv6 Délai expiré indique que le paquet a été rejeté :&lt;br /&gt;
* soit par un routeur intermédiaire parce que le champ &amp;lt;tt&amp;gt;nombre de sauts&amp;lt;/tt&amp;gt; a atteint 0 (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* soit par la destination parce qu'un fragment s'est perdu et le temps alloué au réassemblage a été dépassé (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1).&lt;br /&gt;
&lt;br /&gt;
=== Erreur de paramètre ===&lt;br /&gt;
&lt;br /&gt;
Le message ''Parameter problem'' est émis quand un paquet IPv6 ne peut être traité par un nœud du fait d'un problème dans l'en-tête du paquet ou dans ses extensions d'en-tête. Le paquet IPv6 est supprimé mais le nœud envoie à la source le message ICMPv6 dont le format est présenté par la figure 6. &lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[File:MOOC_Act31_Fig6.png|400px|center|thumb|Figure 6 : Format du message Erreur de paramètre.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; prend la valeur 4. Le champ &amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; révèle la cause de l'erreur :&lt;br /&gt;
&lt;br /&gt;
* la syntaxe de l'en-tête n'est pas correcte (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 0) ;&lt;br /&gt;
* le numéro en-tête suivant n'est pas reconnu (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 1) ;&lt;br /&gt;
* une option de l'extension (par exemple &amp;quot;proche en proche&amp;quot; ou &amp;quot;destination&amp;quot;) n'est pas reconnue et le codage des deux bits de poids fort oblige à rejeter le paquet (&amp;lt;tt&amp;gt;code&amp;lt;/tt&amp;gt; = 2).&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;pointeur&amp;lt;/tt&amp;gt; indique l'octet où l'erreur est survenue dans le paquet retourné. Le message contient tout ou partie du paquet IPv6 qui a occasionné le message lui-même.&lt;br /&gt;
&lt;br /&gt;
== Attention au filtrage d'ICMPv6 ==&lt;br /&gt;
Contrairement à une pratique couramment répandue en IPv4, il ne faut jamais filtrer l'ensemble des messages ICMPv6 en entrée d'un réseau (en particulier le message &amp;quot;Paquet trop grand&amp;quot;). Le filtrage peut introduire des effets néfastes sur le fonctionnement du réseau&amp;lt;ref&amp;gt;Kline, E. and Townsley, M.; Google IPv6 Center. [https://sites.google.com/site/ipv6center/icmpv6-is-non-optional  ICMPv6 is Non-Optional]&amp;lt;/ref&amp;gt;. Supposons que la MTU entre un client et un serveur soit limitée à 1480 octets à cause d'un tunnel IPv6 dans IPv4 et qu'un serveur filtre les messages ICMPv6 (en particulier &amp;quot;Paquet trop grand&amp;quot;). &lt;br /&gt;
Le client et le serveur vont échanger des petits paquets pour ouvrir la connexion TCP (SYN, SYN ACK, ACK), puis le client va envoyer une requête HTTP qui est elle-même de petite taille. Le serveur va répondre en envoyant une page complète. Si le paquet a une longueur de 1500 octets, il va être détecté trop grand par le routeur à l'entrée du tunnel. Ce dernier va rejeter le paquet et envoyer au serveur un message ICMPv6 indiquant que le paquet est trop grand. Si le pare-feu du serveur le filtre, le serveur ne connaitra jamais la taille de la MTU adaptée au chemin qui mène à ce client. Il ne pourra pas adapter la taille de ses paquets. Tous les paquets de 1500 octets seront inexorablement supprimés. Le client devient alors quasiment injoignable et c'est le service de connectivité de la couche &amp;quot;réseau&amp;quot; qui est cassé. Dans cette situation, on se trouve dans une situation où certains paquets passent (ouvertures de connexion, ping, sessions SSH...) et d'autres sont bloqués. Diagnostiquer ce type d'erreur est particulièrement délicat. &lt;br /&gt;
&lt;br /&gt;
Comme ICMPv6 est essentiel au fonctionnement d'IPv6, le RFC 4890 donne les bonnes pratiques pour filtrer correctement les messages ICMPv6. L'idée est de laisser passer les messages ICMPv6 qui sont indispensables au fonctionnement du réseau et de jeter ceux qui introduisent un risque d'insécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20076</id>
		<title>MOOC:Taches Session 7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20076"/>
				<updated>2022-02-18T16:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Doc Compagnon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; [[MOOC:Accueil|MOOC]]&amp;gt;[[MOOC:Gestion_de_projet|Gestion de projet]] &amp;gt; Taches Session 7&lt;br /&gt;
&lt;br /&gt;
= Tâches en cours =&lt;br /&gt;
&lt;br /&gt;
== Doc Compagnon ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| G01&lt;br /&gt;
| Guide&lt;br /&gt;
| Mettre à jour le guide de rédaction pour une rédaction homogène &lt;br /&gt;
| P1&lt;br /&gt;
| Tous&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G02&lt;br /&gt;
| Pilotage&lt;br /&gt;
| lisibilité du texte : identifier les passages qui gagnerait à être réécrits &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| G03&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Cadrage d'une activité type &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G04&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Identifier les questions (et les réponses) du forum à intégrer  dans le doc compagnon&lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| C01&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Nouvelle intro Seq4 dans [[MOOC:Compagnon Act40-s7|Act40]] &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C02&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act41-s7|Act41]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C03&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act42-s7|Act42]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C04&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act43-s7|Act43]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] ) &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C06&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir la [[MOOC:Compagnon Act47|conclusion Seq4]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C07&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Rédiger [[MOOC:Compagnon Act03|Act03]] et [[MOOC:Compagnon Act04|Act04]] à partir de [[MOOC:Compagnon Act41|Act41]] session6&lt;br /&gt;
| P1&lt;br /&gt;
| VV&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C08&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act30-s7|A30]] (gestion des erreurs reportée en A23 ?!)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C09&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act31-s7|A31]] : NDP (Multicast sollicité, Redirect?)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C10&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act32-s7|A32]] : Reprendre DHCPv6 de [[MOOC:Compagnon Act34-s6|A34-s6]] &lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C13&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Intégrer une partie de [[MOOC:Compagnon Act15-s6|A15-s6 Multicast]] dans [[MOOC:Compagnon Act13-s7|A13-s7]], et le reste en annexe.&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C14&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act14-s7|A14-s7]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C15&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act20-s7|A20-s7]] : plan de la séquence. Rappel sur l'encapsulation de [[MOOC:Compagnon Act24-s6|A24-s6]].&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C16&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act21-s7|A21-s7]] : Ajout des extensions d'en-tête de [[MOOC:Compagnon_Act25-s6|A25-s6]] en annexe. &lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C17&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act23-s7|A23-s7]] à partir de [[MOOC:Compagnon Act31-s7|A31]] et de [[MOOC:Annexe_Compagnon_Act31|Annexe A31]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C18&lt;br /&gt;
| Cours&lt;br /&gt;
| produire le verbatim des vidéos &lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portail FUN ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| F01&lt;br /&gt;
| Scenario&lt;br /&gt;
| MAJ de la [https://docs.google.com/spreadsheets/d/13jM-tsn6OcrlpkRgmq5h2EHfhwDV4Zu-Sc9HurclK2A/edit#gid=480308602 méta-scénarisation] pour la session 7 &lt;br /&gt;
| P1&lt;br /&gt;
| BS (PA fait Seq4)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F02&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Identifier les questions à reprendre dans [[MOOC:Table_des_corrections7|Table des corrections]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F03&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Standardiser les termes de la barre de navigation des activités&lt;br /&gt;
| P2&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Février&lt;br /&gt;
|-&lt;br /&gt;
| F04&lt;br /&gt;
| Cours&lt;br /&gt;
| Béta tester le cours&lt;br /&gt;
| P1&lt;br /&gt;
| ???&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F05&lt;br /&gt;
| TP&lt;br /&gt;
| MaJ GN3 + Tests&lt;br /&gt;
| P2&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F06&lt;br /&gt;
| Cours&lt;br /&gt;
| [[MOOC:Table des corrections7|Traiter les questions avec un taux &amp;gt;10% ]]&lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F07&lt;br /&gt;
| Cours&lt;br /&gt;
| Vérifier le nombre de tentatives par Quiz.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F08&lt;br /&gt;
| Cours&lt;br /&gt;
| Mettre les liens des vidéos dans les Ax0.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F09&lt;br /&gt;
| Cours&lt;br /&gt;
| Rédiger les objectifs de chaque vidéo.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tâches terminées =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|-&lt;br /&gt;
| T05&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer exA45 en [[MOOC:Compagnon Act44-s7|Act44]]. &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T11&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act34-s7|A34-s7]] : Sécurité IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Juin&lt;br /&gt;
|- &lt;br /&gt;
| T12&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer les activités de la séquence 1 en s7&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T18&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A11 [[MOOC:Verb11]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T19&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A12 [[MOOC:Verb12]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T20&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A13 [[MOOC:Verb13]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T21&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A14 [[MOOC:Verb14]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T22&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A21 [[MOOC:Verb21]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T23&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A22 [[MOOC:Verb22]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T24&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A23 [[MOOC:Verb23]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T25&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A24 [[MOOC:Verb24]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T26&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A31 [[MOOC:Verb31]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T27&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A32 [[MOOC:Verb32]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T28&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A33 [[MOOC:Verb33]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T29&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A34 [[MOOC:Verb34]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T30&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A40 [[MOOC:Verb40]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T31&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A41 [[MOOC:Verb41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:#77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T32&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A42 [[MOOC:Verb42]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T33&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A43 [[MOOC:Verb43]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T34&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A44 [[MOOC:Verb44]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20075</id>
		<title>MOOC:Compagnon Act21-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20075"/>
				<updated>2022-02-18T16:45:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Activité 21: L’en-tête IPv6 =&lt;br /&gt;
&amp;lt;!-- = Activité 21: Le format de l’en-tête IPv6 = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Comme rappelé en introduction de la séquence, la fonction principale du protocole IP est d'acheminer un paquet d'un point à un autre de l'Internet. Un paquet se définit comme une unité de transfert dans un réseau. Il est  composé d'un bloc de données de taille variable mais limitée et identifié par un en-tête. Le mode d'acheminement par datagramme, utilisé dans l'Internet, impose que chaque paquet soit traité indépendamment, sans avoir besoin d'informations issues d'autres paquets déjà transmis. L'en-tête IP doit donc comporter toutes les informations pour réaliser cet acheminement. C'est la raison pour laquelle chaque paquet doit contenir l'adresse globale du nœud source ainsi que celle du nœud de destination du paquet. Pour marquer cette spécificité, ces paquets auto-descriptifs sont appelés des datagrammes.&lt;br /&gt;
&lt;br /&gt;
L'adresse du destinataire est fondamentale pour le routage du paquet effectué par les nœuds intermédiaires. C'est en effet à partir de cette adresse que le nœud décide vers quelle interface le paquet doit sortir. La lecture de l'adresse du destinataire dans l'en-tête IP est donc une étape cruciale pour la performance globale de l'acheminement du paquet. Afin d'accélérer cette étape, deux principes ont été appliqués dans la spécification de l'en-tête IP : &lt;br /&gt;
* une adresse IP est de taille fixe, permettant ainsi d'être récupérée dans l'en-tête directement en lisant un nombre de bits prédéterminé, sans avoir à lire ni interpréter au préalable un champ de longueur d'adresse ;&lt;br /&gt;
* l'adresse IP destination est à un emplacement fixe dans l'en-tête, emplacement aligné en mémoire, facilitant ainsi son extraction de l'en-tête par un simple décalage en mémoire, qui est une opération simple au niveau matériel.&lt;br /&gt;
&lt;br /&gt;
== Format de l'en-tête du datagramme IPv6 ==&lt;br /&gt;
Le format d'en-tête du datagramme IPv6 est spécifié par le RFC 8200 (page 5). Cet en-tête, avec les champs le composant, est représenté par la figure 1. L'en-tête IPv6 est de taille fixe et se compose de 5 mots de 64 bits (contre 5 mots de 32 bits pour IPv4). La taille de l'en-tête IPv6 est donc de 40 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig1.png|400px|thumb|center|Figure 1 : Format de l'en-tête d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signification des champs de l'en-tête ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; est au même emplacement et de même longueur, quelle que soit la version du protocole IP (IPv4 ou IPv6). Cette similarité permet de vérifier que le paquet reçu est au format attendu.  Dans le cas d'IPv6, sa valeur est de 6 ; elle est de 4 pour IPv4. Le numéro de version 5 avait déjà été attribué au protocole Stream qui finalement n'a pas eu le succès attendu [RFC 1190, RFC 1819].&lt;br /&gt;
&lt;br /&gt;
=== Classe de trafic (''Traffic Class'') ===&lt;br /&gt;
Dans la version du document de spécification du protocole IPv6 [RFC 8200], le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt;, sur 8 bits reprend la spécification pour le codage de la différenciation de services [http://tools.ietf.org/html/rfc2474#page6 RFC 2474].&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt; est défini de façon similaire au champ &amp;lt;tt&amp;gt;Differentiated Services&amp;lt;/tt&amp;gt; (DS, ou ''DiffServ'') de l'en-tête IPv4, qui a lui-même pris la place de l'octet &amp;lt;tt&amp;gt;Type of Service&amp;lt;/tt&amp;gt; de la spécification initiale d'IPv4. Ce champ est découpé en deux parties (cf. figure 2). Le sous-champ DSCP (''Differentiated Services Code Point'') contient les valeurs identifiant les différents traitements demandés aux routeurs. La valeur par défaut 000000 correspond au service classique dit ''au mieux'' (ou ''best effort''). Les deux derniers bits du champ, notés ECN (''Explicit congestion Notification''), servent aux routeurs à rapporter un risque de congestion [RFC 8311].&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_10_TrafficClass.jpg|200px|thumb|center|Figure 2 : Format de l'octet &amp;lt;tt&amp;gt;classe de trafic&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour le lecteur qui veut en savoir plus, l'[[#Annexe_1:_la_gestion_de_la_qualit.C3.A9_de_service|annexe 1]] décrit l'utilisation du champ classe de trafic dans l'objectif de fournir des services de transfert à qualité différente.&lt;br /&gt;
&lt;br /&gt;
=== Identificateur de flux (''Flow Label'') ===&lt;br /&gt;
Ce champ, contient un numéro unique, choisi par la source, pour identifier le flux de données d'une application comme par exemple l'ensemble des paquets d'une application de voix sur IP. L'unicité de l'identificateur de flux se comprend dans le contexte de l'adresse source. L'utilisation de ce champ est  spécifiée  par le RFC 6437.&lt;br /&gt;
&lt;br /&gt;
Ce champ vise à faciliter la classification des flux par les routeurs afin de différencier le traitement des  paquets et donc notamment la mise en œuvre des fonctions de qualité de service.  Les datagrammes d'un même flux ayant un même identifiant, le routeur peut alors les reconnaitre et leur appliquer un traitement particulier comme le choix d'une route ou une priorité à l'accès à la transmission. &lt;br /&gt;
&lt;br /&gt;
Habituellement, les routeurs se basent sur les valeurs de cinq champs pour identifier le même flux de paquets : adresses de la source et de la destination, numéros de port de la source et de la destination, et protocole. Cette identification  implique l'analyse d'en-têtes de niveau 3 pour les adresses et de niveau 4 pour les autres informations. &lt;br /&gt;
&lt;br /&gt;
Avec IPv6, l'identification du flux n'implique plus que le niveau 3. Ainsi, l'identification est faite indépendamment du protocole de niveau 4. Le champ &amp;lt;tt&amp;gt;Identificateur de flux&amp;lt;/tt&amp;gt; peut être rempli avec une valeur aléatoire mais qui doit être unique. La source gardera cette valeur pour tous les paquets qu'elle émettra pour cette application et cette destination. Le traitement est simplifié puisque le routeur n'a plus à consulter cinq champs pour déterminer l'appartenance d'un paquet à un flux, mais un seul. De plus, la confidentialité peut être préservée, les informations concernant les numéros de port peuvent être masquées aux routeurs intermédiaires. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Passage à l'échelle|Le passage à l'échelle désigne la capacité d'un produit ou d'un mécanisme à s'adapter à un changement d'ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande&amp;lt;ref&amp;gt;Wikipedia.[https://fr.wikipedia.org/wiki/Scalability Définition de la scalabilité]&amp;lt;/ref&amp;gt;. Il faut donc comprendre qu'une difficulté à passer à l'échelle signifie que la propriété d'extensibilité n'est pas acquise.}}&lt;br /&gt;
&lt;br /&gt;
À la date de rédaction de ce document, l'utilisation de l'identificateur de flux reste encore floue. Les micro-flux, c'est-à-dire les flux applicatifs, ne sont pas analysés dans le cœur du réseau pour des raisons de passage à l'échelle. De plus, l'idée d'utiliser une étiquette pour acheminer des paquets est déjà utilisée par la technologie MPLS&amp;lt;ref&amp;gt; MultiProtocol Label Switching https://fr.wikipedia.org/wiki/Multiprotocol_Label_Switching &amp;lt;/ref&amp;gt; de l'Internet, ce qui retire tout sens à utiliser ce champ du paquet IPv6 pour cette fonction. Pour l'instant, ce champ peut être vu comme réservé. Son utilisation devra être détaillée dans le futur.&lt;br /&gt;
&lt;br /&gt;
=== Longueur de la charge du paquet (''Payload Length'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la quantité d'octets qui suit l'en-tête du datagramme (en-tête exclu donc), c'est-à-dire la charge du paquet, autrement dit les données. Les éventuelles extensions à l'en-tête IPv6 sont incluses dans ces données. Ce champ, sur 16 bits, peut donc indiquer la taille des données utiles, allant jusqu'à 64 kibioctets (64 * 1024 octets). Pour des paquets dont la taille serait supérieure, ce champ vaut 0 et l'émetteur ajoute une extension d'en-tête de &amp;quot;proche en proche&amp;quot; avec l'option ''jumbogramme'' définie par le RFC 2675. Avec l'option jumbogramme, la quantité de données transportée est codée sur 32 bits. La taille maximale des données utiles du paquet monte alors jusqu'à 4 gibioctets (4* 2^30 octets). Nous reviendrons sur le jumbogramme dans l'activité &amp;quot;Taille des paquets IPv6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== En-tête suivant (''Next Header'')===&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole se trouvant à la suite de l'en-tête IPv6. Il peut s'agir d'un protocole de niveau supérieur (ICMP, UDP, TCP...) ou de la désignation d'une extension (cf. tableau ''Valeurs du champ en-tête suivant pour IPv6'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nombre maximal de sauts (''Hop Limit'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ représente le nombre maximal de routeurs que le paquet peut traverser. Il est initialisé par le nœud source du paquet et, ensuite, décrémenté à chaque routeur traversé. Si la valeur, après décrémentation, atteint 0, le datagramme est supprimé et un message d'erreur ICMPv6 est émis pour la source de ce paquet. Ce champ vise à limiter le nombre de relayages (ou traversées de routeurs) que peut subir un paquet suite à des problèmes dans le réseau comme des boucles de routage. Ainsi, un paquet ne peut pas circuler indéfiniment dans l'Internet.&lt;br /&gt;
Ce champ est à la base de l'outil &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt; pour identifier la suite des routeurs traversés jusqu'à une destination.&lt;br /&gt;
&lt;br /&gt;
La valeur initiale de ce champ, à l'émission du paquet, devrait être donnée dans un document annexe de l'IANA (http://www.iana.org/) ; ce qui permettrait de la modifier en fonction de l'évolution de la topologie du réseau. La valeur n'est pas encore officiellement attribuée mais certaines implantations prennent actuellement la valeur conseillée pour IPv4 : 64. &lt;br /&gt;
&lt;br /&gt;
La valeur par défaut peut être dynamiquement attribuée aux hôtes émetteurs par les annonces des routeurs en configuration automatique. Une modification de ce paramètre sera donc relativement simple quand la limite actuelle sera atteinte. On peut noter une limitation puisque ce champ, codé sur 8 bits, n'autorise la traversée que de 255 routeurs. En réalité, dans l'Internet actuel, le nombre maximal de routeurs traversés est d'une quarantaine, ce qui laisse une bonne marge pour l'évolution du réseau.&lt;br /&gt;
&lt;br /&gt;
=== Adresses source et destination ===&lt;br /&gt;
Ces adresses sont renseignées par le nœud source du paquet pour désigner l'émetteur et le destinataire du paquet. Pour renseigner l'adresse source, l'émetteur choisit de préférence une adresse IPv6 parmi celles configurées sur l'interface utilisée pour transmettre le paquet sur le réseau. Cette adresse est choisie pour avoir une portée compatible avec l'adresse de destination et, ainsi, permettre au destinataire de répondre. Par exemple, il serait problématique d'essayer de joindre un nœud de l'Internet en donnant comme adresse source une adresse ''lien-local''. Le choix de l'adresse source est spécifié dans le RFC 6724.&lt;br /&gt;
&lt;br /&gt;
L'adresse destination, elle aussi, peut être choisie dans la liste des adresses valables pour le destinataire ; liste pouvant provenir de la résolution d'un nom en adresses par le DNS. L'adresse choisie doit être compatible avec la portée des adresses disponibles au niveau de l'émetteur. Par exemple, si l'émetteur ne possède que des adresses de type ULA, et que le destinataire est connu avec des adresses globales et ULA, ces dernières adresses seront à préférer. Le RFC 6724 précise l'algorithme du choix de l'adresse destination.&lt;br /&gt;
&lt;br /&gt;
=== Extensions à l'en-tête IPv6 ===&lt;br /&gt;
L'ajout de nouvelles fonctionnalités est problématique quand l'en-tête est de taille fixe comme c'est le cas d'IPv6. La solution proposée consiste à ajouter des en-têtes spécifiques pour chaque fonctionnalité. &lt;br /&gt;
Les extensions sont ajoutées par le nœud source du paquet pour demander un traitement spécifique à réaliser, soit par les routeurs intermédiaires, soit par le destinataire du paquet.&lt;br /&gt;
Par exemple, si un paquet doit être fragmenté, une extension de fragmentation sera ajoutée par le nœud source afin que le destinataire puisse rassembler les morceaux correctement.&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs types d'extensions selon le traitement demandé. Elles se placent après l'en-tête IPv6 et avant la charge utile du paquet (voir la figure 3). La présence d'une extension est signalée par le champ &amp;lt;tt&amp;gt;En-tête suivant&amp;lt;/tt&amp;gt; (''Next Header'') de l'en-tête IPv6 qui possède alors la valeur correspondant à cette extension. Ainsi, elle est traitée par les routeurs intermédiaires comme un protocole de niveau supérieur à IP. L'utilisation des différents types d'extensions d'en-tête IPv6 sera abordé dans une activité ultérieure de ce cours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig2.jpg|400px|center|thumb|Figure 3: Format d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Evolution de l'en-tête depuis IPv4 ==&lt;br /&gt;
&lt;br /&gt;
Hormis la modification de la taille des adresses, ce qui conduit à une taille d'en-tête de 40 octets (le double d'un en-tête IPv4 sans options), le protocole IP a subi un toilettage&amp;lt;ref&amp;gt;Lee, D.C.; Lough, D.L.; Midkiff, S.F.et al. (1998). IEEE Network, Vol. 12, No. 1, January. The next generation of the Internet: aspects of the Internet protocol version 6.&amp;lt;/ref&amp;gt;, reprenant l'expérience acquise au fil d’une trentaine d’années avec IPv4, défini en 1981 (!) par le RFC 791. Le format des en-têtes IPv6 est ainsi simplifié et permet aux routeurs de meilleures performances dans leurs traitements. L'idée est de retirer du cœur de réseau les traitements compliqués. Les routeurs ne font que retransmettre les paquets vers la destination, les autres traitements sont faits par l'émetteur et le destinataire du paquet.&lt;br /&gt;
&lt;br /&gt;
L'en-tête ne contient plus de contrôle d'erreur (''checksum''), qui devait être ajusté, pour IPv4, par chaque routeur en raison, entre autres, de la décrémentation du champ &amp;lt;tt&amp;gt;durée de vie&amp;lt;/tt&amp;gt;. Par contre, pour éviter qu'un paquet, dont le contenu est erroné -- en particulier sur l'adresse de destination --, ne se glisse dans une autre communication, tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de contrôle d'erreur de bout en bout, incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le contrôle d'erreur d'UDP, facultatif pour IPv4, devient ainsi obligatoire. Pour ICMPv6, le contrôle d'erreur intègre le pseudo-en-tête alors que, pour ICMPv4, il ne portait que sur le message ICMP. &lt;br /&gt;
 &lt;br /&gt;
La fonction de fragmentation a aussi été retirée des routeurs. Les champs de l'en-tête IPv4 qui s'y reportent (&amp;lt;tt&amp;gt;Identification, Drapeau, Place du fragment&amp;lt;/tt&amp;gt;) ont été supprimés. Normalement, les algorithmes de découverte du PMTU (''Path MTU'') évitent d'avoir recours à la fragmentation. Si celle-ci s'avère nécessaire, une extension est prévue et le découpage en fragments est réalisé uniquement au niveau de l'émetteur.&lt;br /&gt;
&lt;br /&gt;
Une autre évolution majeure depuis l'en-tête IPv4 est la spécification des extensions d'en-tête pour remplacer les options. En effet, dans le cas d'IPv4, les options sont incluses dans l'en-tête. Celui-ci est donc de taille variable (taille indiquée dans le champ &amp;lt;tt&amp;gt;Internet Header Length&amp;lt;/tt&amp;gt;), ce qui peut compliquer le traitement dans les routeurs intermédiaires. Les extensions à l'en-tête IPv6 simplifient la mise en œuvre de ces fonctionnalités et permettent de garder la taille de l'en-tête IPv6 fixe à 40 octets.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a présenté l'en-tête IPv6, définissant une nouvelle version du protocole IP. Cette version reprend les caractéristiques communes du protocole IPv4 : des adresses de taille fixe, un en-tête définissant une position fixe pour l'adresse de destination, position de plus alignée en mémoire. L'objectif est d'avoir un traitement simple et donc rapide de l'en-tête dans les routeurs. IPv6 garde donc ces principes et va même plus loin que son prédécesseur IPv4 en reconsidérant des mécanismes jugés coûteux, comme la fragmentation, le ''checksum'' ou les options. Certains de ces mécanismes ont été éliminés dans la nouvelle version du protocole, d'autres remplacés par des mécanismes plus performants. Enfin, nous pouvons signaler ce formulaire qui présente l'essentiel du paquet IPv6 en une seule page&amp;lt;ref&amp;gt;Stretch, J. (2009) packetlife.net. Aide-mémoire tout en une page. [http://packetlife.net/media/library/8/IPv6.pdf IPv6]&amp;lt;/ref&amp;gt;. Ceci peut vous être utile pour la suite.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 791 Internet protocol (IPv4)&lt;br /&gt;
* RFC 1190 Experimental Internet Stream Protocol, Version 2 (ST-II)&lt;br /&gt;
* RFC 1819 Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+&lt;br /&gt;
* RFC 2205 Resource ReSerVation Protocol (RSVP)&lt;br /&gt;
* RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers [http://www.bortzmeyer.org/2474.html Analyse]&lt;br /&gt;
* RFC 2675 IPv6 Jumbograms&lt;br /&gt;
* RFC 6040 Tunnelling of Explicit Congestion Notification&lt;br /&gt;
* RFC 6437 IPv6 Flow Label Specification&lt;br /&gt;
* RFC 6724 Default Address Selection for Internet Protocol version 6 (IPv6) [http://www.bortzmeyer.org/6724.html Analyse]&lt;br /&gt;
* RFC 7098: Using the IPv6 Flow Label for Load Balancing in Server Farms [http://www.bortzmeyer.org/7098.html Analyse]&lt;br /&gt;
* RFC 8200 Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 9098 Operational Implications of IPv6 Packets with Extension Headers [https://www.bortzmeyer.org/9098.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents suivants :&lt;br /&gt;
*RFC 1190 : Experimental Internet Stream Protocol Version 2 (ST-II)&lt;br /&gt;
*RFC 2492 : IPv6 over ATM Networks  (cf page 2)&lt;br /&gt;
*RFC 2597 : An Expedited Forwarding PHB&lt;br /&gt;
*RFC 2598 : Assured Forwarding PHB Group&lt;br /&gt;
*RFC 4594 : Configuration Guidelines for DiffServ Service Classes  &lt;br /&gt;
*RFC 5865 : A Differentiated Services Code Point (DSCP)  for Capacity-Admitted Traffic&lt;br /&gt;
*RFC 6438 : Flow Label for Tunnel ECMP/LAG  (cf page-4)&lt;br /&gt;
*RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
*RFC 6282 : Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks&lt;br /&gt;
*RFC 6775 : Neighbor Discovery Optimization for IPv6 over Low-Power Wireless  Personal Area Networks (6LoWPANs)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Annexe 1: la gestion de la qualité de service ==&lt;br /&gt;
&lt;br /&gt;
L'Internet différencié permet aux fournisseurs d'accès de gérer différemment les congestions qui surviennent dans le réseau. Sans différenciation, les paquets ont la même probabilité de rejet. Avec la différenciation, plusieurs classes de trafic sont définies. Les paquets appartenant aux classes les plus élevées ont une probabilité de rejet plus faible. Bien entendu, pour que l'introduction de telles classes de trafic soit efficace, il faut introduire une gestion des ressources différente pour chacune des classes, et des mécanismes de contrôle pour vérifier que les flux des utilisateurs n'utilisent pas que les classes les plus élevées ou qu'ils ne dépassent pas leur contrat. Par exemple, un client peut établir un contrat de niveau de services appelé SLA (''Service Level Agreement'') avec son fournisseur d’accès. &lt;br /&gt;
&lt;br /&gt;
L'intérêt principal de la différenciation de services est qu'elle ne casse pas le modèle initial de l'Internet (version 4 ou version 6). Les flux sont toujours traités en ''Best Effort'' même si certains sont plus ''Best'' que d'autres. Il n'y a aucune garantie qu'un trafic d'une classe haute arrive à destination, mais la probabilité est plus importante. L'autre intérêt des classes de trafic vient de la possibilité d'agrégation des flux. La classe d'appartenance est indiquée dans l'en-tête du paquet. Les applications peuvent marquer les paquets en fonction de paramètres locaux (flux multimédia, flux interactif, trafic priorisé...). Le fournisseur d'accès qui récupère le trafic n'a plus à se préoccuper des applicatifs. Il vérifie que le trafic d'une classe ne dépasse pas le contrat préalablement établi. &lt;br /&gt;
&lt;br /&gt;
Dans le cœur du réseau, les routeurs prennent en compte les différentes classes. Le fournisseur d'accès devra également passer des accords avec les autres opérateurs pour pouvoir faire transiter les flux avec un traitement approprié. Cet aspect de dimensionnement de réseau et de négociation d'accords d'échange est au coeur du métier d'opérateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour signifier l'appartenance d'un paquet à une certaine classe de trafic, une valeur est renseignée au niveau de l'en-tête IP dans l'octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt; afin qu'elle puisse être analysée par tous les routeurs mettant en œuvre le traitement différencié. Le format de ce champ est rappelé en figure 2.&lt;br /&gt;
&lt;br /&gt;
Le tableau 1 présente les différentes valeurs définies pour le champ DSCP (''Differential Service Code Point''). Les valeurs sont présentées en format binaire avec les 6 bits les plus significatifs de l’octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt;, puis leur conversion en décimal, leur nommage, la probabilité d’écartement, et l’équivalence avec les anciennes valeurs du champ TOS de l’IPv4 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_07_dscp_ipv6_v01.jpg|600px|thumb|center|Tableau 1 : Format du champ DSCP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, deux types de comportement sont standardisés :&lt;br /&gt;
&lt;br /&gt;
* Assured Forwarding [[https://tools.ietf.org/html/rfc2597#page-6 RFC 2597]] : ce comportement définit quatre classes de trafic et trois priorités, suivant que l'utilisateur respecte son contrat, le dépasse légèrement, ou est largement en dehors. Les classes sont donc choisies par l'utilisateur et restent les mêmes tout au long du trajet dans le réseau. La priorité, par contre, peut être modifiée dans le réseau par les opérateurs en fonction du respect ou non des contrats. Par exemple, pour la classe AF n°2, on dispose des 3 priorités suivantes : AF21, AF22 et AF23. Plus le chiffre est élevé, plus la priorité est faible. C'est-à-dire qu'en cas de saturation de cette classe de trafic, les paquets AF23 seront écartés avant AF22, puis AF21.&lt;br /&gt;
* Expedited Forwarding [[https://tools.ietf.org/html/rfc2598#page-1 RFC 2598]] : ce comportement est comparable à un circuit à débit constant réservé dans le réseau. Le trafic est mis en forme à l'entrée du réseau, en retardant l'émission des paquets qui sont hors contrat. En plus de ces comportements, l'octet DS a gardé, pour des raisons de compatibilité avec les équipements existants, les valeurs du bit ToS qui étaient le plus fréquemment utilisées.  La valeur est 0xB8 (1011 1000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 46 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Voice Admit : cette autre valeur a été par la suite proposée dans le [https://tools.ietf.org/html/rfc5865#page-10 RFC 5865] pour affiner le traitement de flux ''temps réel'' de différentes natures : voix, vidéo, signalisation ''temps réel''… (La valeur est 0xB0 soit 1011 0100 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 44 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Network Control : autre particularité : la valeur 0xE0 (1110 0000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 56 en décimal) correspond à CS7, la classe de contrôle du réseau (''Network Control''). Elle est utilisée dans des mises en œuvre d'IPv6 pour l'émission de certains paquets ICMPv6. Cette valeur est dépréciée. Il est conseillé d'utiliser la valeur CS6 comme spécifié dans le [https://tools.ietf.org/html/rfc4594#section-3 RFC 4594].&lt;br /&gt;
&lt;br /&gt;
=== Références bibliographiques ===&lt;br /&gt;
* RFC 2597 Assured Forwarding PHB Group&lt;br /&gt;
* RFC 2598  An Expedited Forwarding PHB&lt;br /&gt;
* RFC 4594 Configuration Guidelines for DiffServ Service Classes&lt;br /&gt;
* RFC 5865 A Differentiated Services Code Point (DSCP) for Capacity-Admitted Traffic&lt;br /&gt;
&lt;br /&gt;
== Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Les extensions de l'en-tête IPv6 visent à ajouter des fonctionnalités supplémentaires à l'acheminement d'un paquet dans l'Internet. Ces extensions vont impliquer le traitement de ces fonctionnalités au niveau réseau, soit par le destinataire du paquet IPv6, soit par les routeurs intermédiaires en charge de l’acheminement du paquet IPv6.&lt;br /&gt;
&lt;br /&gt;
De nombreuses extensions ont été définies, afin d'assurer des fonctions comme  le routage par la source, la gestion de la fragmentation, la confidentialité des communications (mécanisme ''ipsec''), etc. &lt;br /&gt;
&lt;br /&gt;
Le mécanisme d'extension de l'en-tête IPv6 est assez souple pour pouvoir inclure d'autres fonctionnalités futures. Dans cette activité, nous allons nous intéresser au principe du traitement des extensions au moyen d'exemples simples et démonstratifs de ce mécanisme.&lt;br /&gt;
&lt;br /&gt;
Cette annexe décrit les différents mécanismes qui enrichissent les fonctions disponibles au niveau de la couche réseau : routage, fragmentation, sécurité, etc. Ces mécanismes tirent parti de la possibilité d'ajouter des champs supplémentaires à l'en-tête IPv6 grâce aux extensions d'en-tête. Ces extensions sont ajoutées par les extrémités de la communication et sont transparentes pour les routeurs (exception faite des extensions de type ''Hop-by-Hop''). De plus, le mécanisme de chainage par le champ ''Next Header'' permet d'ajouter des extensions de manière souple.&lt;br /&gt;
&lt;br /&gt;
L'usage des extensions est encore assez limité sur l'Internet. Certaines fonctionnalités ont été dépréciées (comme l'extension de routage RH0) et d'autres peinent à se développer (comme la mobilité IPv6). La présence potentielle de ces extensions doit être cependant prise en compte dans le traitement des paquets, notamment le filtrage sur les valeurs du champ ''Next Header'' de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Principe des extensions IPv6==&lt;br /&gt;
&lt;br /&gt;
Les extensions peuvent être vues comme un protocole 3.5, entre les couches 3 (réseau) et 4 (transport) du modèle OSI. En effet, à part l'extension de proche-en-proche, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (i.e. celui spécifié dans le champ adresse de destination du paquet IPv6).&lt;br /&gt;
Une extension a une longueur multiple de 8 octets (64 bits). Elle commence par un champ &amp;lt;tt&amp;gt;Next header&amp;lt;/tt&amp;gt; qui définit, sur un octet, le type d'extension ou de protocole qui suit. Pour les extensions de longueur variable, l'octet suivant contient la longueur de l'extension en mots de 8 octets, le premier mot n'étant pas compté. Par exemple, une extension de 16 octets aura une longueur de 1.&lt;br /&gt;
&lt;br /&gt;
Si, d'un point de vue théorique, les extensions sont supérieures aux options d'IPv4, dans la réalité très peu sont utilisées à grande échelle et restent du domaine de la recherche.&lt;br /&gt;
&lt;br /&gt;
'''''Nota :''''' ''dans la pratique, l'extension la plus couramment rencontrée est probablement l'option de fragmentation à la source. En effet, certains protocoles applicatifs sur UDP, tel que NFS, supposant que la fragmentation existe au niveau réseau, produisent des messages de taille quelconque sans se soucier du MTU. Comme il n'est pas envisageable de modifier ces applications largement déployées, la couche réseau IPv6 doit être capable de gérer la fragmentation. IPv6 impose simplement que cette dernière se fasse à la source.''&lt;br /&gt;
&lt;br /&gt;
Une présentation illustrée des extensions IPv6 peut être consultée sur le site de Cisco&amp;lt;ref&amp;gt;Cisco (2006) White paper.[http://www.cisco.com/en/US/technologies/tk648/tk872/technologies_white_paper0900aecd8054d37d.html IPv6 Extension Headers Review and Considerations]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Le champ ''Next Header'' ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_ipv6_header_next-header_v02.jpg|thumb|right|300px|Figure 1 : Localisation du champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; dans l'en-tête IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; de l'en-tête IPv6, comme illustré sur la figure 1, identifie généralement le protocole de niveau supérieur comme, par exemple, le transport TCP/UDP. Mais, dans le cas des extensions, plusieurs mécanismes particuliers sont également disponibles parmi la liste suivante :&lt;br /&gt;
&amp;lt;center&amp;gt;{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intégration des extensions d’en-tête dans le paquet IPv6==&lt;br /&gt;
Quand il y a plusieurs extensions dans un même datagramme, les extensions sont placées selon un ordre qui dépend de leur portée : &lt;br /&gt;
* extensions impliquant tous les routeurs intermédiaires : ''Hop-by-Hop'' ;&lt;br /&gt;
* extensions impliquant seulement certains routeurs désignés : ''Routing'' ;&lt;br /&gt;
* extension impliquant le destinataire : ''Authentication'', ''Encapsulating Security Payload'', Fragmentation, Destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La figure 2 montre la souplesse avec laquelle plusieurs extensions peuvent être chaînées. Chaque extension contient dans son en-tête un champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; et un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;. Le premier paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur ICMPv6. Le second paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur TCP. Le troisième paquet contient une extension de protection qui pointe ensuite sur UDP. Dans le dernier paquet, une extension de routage, qui pointe sur une extension de fragmentation, pointe finalement sur ICMPv6. &lt;br /&gt;
* L'enchaînement des extensions se fait dans un ordre bien déterminé. Par exemple, une extension concernant tous les routeurs sur le chemin (''Hop-by-Hop'') devra forcément se trouver en première position. Si elle se trouvait à la suite d'une extension ''Destination'', elle ne pourrait être lue, l'extension ''Destination'' n'étant interprétée que par le destinataire du paquet.&lt;br /&gt;
* Si cet enchaînement d'extension offre beaucoup plus de souplesse que les options d'IPv4, il rend difficile la lecture des numéros de port. Il faut en effet lire tout l'enchaînement d'extension pour arriver au protocole de niveau 4. Ceci a servi de justification à l'identificateur de flux qui permettait de refléter au niveau 3 un flux particulier et évitait de dérouler l'enchaînement. Bien entendu, les pare-feux devront vérifier les numéros de ports. &lt;br /&gt;
* Les extensions peuvent être vues comme un protocole 3.5 (entre la couche 3 et la couche 4). En effet, à part l'extension de &amp;quot;proche en proche&amp;quot;, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (''i.e.'' celui spécifié dans le champ &amp;lt;tt&amp;gt;adresse de destination&amp;lt;/tt&amp;gt; du paquet IPv6). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_10_extensions_IPv6_v01.jpg|thumb|center|600px|Figure 2 : Enchaînement d'extensions.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques exemples ==&lt;br /&gt;
&lt;br /&gt;
=== Fragmentation ===&lt;br /&gt;
&lt;br /&gt;
Nous avons vu la fragmentation en détail lors de l'activité consacrée à la taille des paquets IPv6. Les points essentiels à rappeler sont que la fragmentation en IPv6 est une fonction d'hôtes exclusivement, et que par souci d'efficacité, l'adaptation de la taille de l'unité de données applicatives en unité de transfert est du ressort de la couche de transport. Cependant, lorsque ce n'est pas possible, en dernier ressort, la fragmentation est faite par IPv6.  Les informations pour la fragmentation sont placées dans une extension d'en-tête IPv6 identifiée par la valeur 44.&lt;br /&gt;
D'un point de vue du codage, l'en-tête et les extensions qui concernent les routeurs intermédiaires (pour l'instant &amp;quot;proche en proche&amp;quot; et &amp;quot;routage par la source&amp;quot;) sont recopiées dans chaque fragment, tandis que les autres extensions et l'en-tête de niveau 4 ne seront présents que dans le premier fragment.&lt;br /&gt;
&lt;br /&gt;
La fragmentation en IPv4 n'est pas très performante. Quand un routeur ne peut pas transmettre un paquet à cause de sa trop grande taille, il doit le transmettre en fragments. Comme l'Internet n'est pas fiable, un fragment peut se perdre. Le destinataire ne peut rassembler les fragments. Cela revient à perdre tous les fragments. Il est donc plus efficace de faire les fragments avant la couche IP. Ainsi le fragment devient un paquet IP à la bonne taille. Maintenant, en cas de perte, seul le paquet perdu sera retransmis, évitant ainsi la retransmission de gros blocs de données.&lt;br /&gt;
&lt;br /&gt;
Il est plus intéressant d'adapter la taille des paquets à l'émission. Ceci est fait en utilisant les techniques de découverte du MTU (voir RFC 8201 : Mécanisme de découverte du PMTU). En pratique, une taille de paquets de MTU 1280 octets est une bonne garantie d'acheminement du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Extensions d'authentification (AH) et de confidentialité (ESP) ===&lt;br /&gt;
&lt;br /&gt;
L'extension d'authentification (AH : Authentication Header) décrite dans le RFC 4302 permet de s'assurer que l'émetteur du message est bien celui qu'il prétend être. Elle sert aussi au contrôle d'intégrité pour garantir au récepteur que personne n'a modifié le contenu d'un message lors de son transfert sur le réseau. Elle peut optionnellement être utilisée pour détecter les rejeux.&lt;br /&gt;
&lt;br /&gt;
Le principe de l'authentification est relativement simple. L'émetteur calcule un authentificateur sur un datagramme et l'émet avec le datagramme sur lequel il porte. Le récepteur récupère cette valeur et vérifie qu'elle est correcte. Si un code d'authentification de message &amp;lt;ref&amp;gt;Code d'authentification de message, [https://fr.wikipedia.org/wiki/Code_d%27authentification_de_message Article Wikipedia]&amp;lt;/ref&amp;gt; est utilisé, il suffit au récepteur de calculer de son côté le code sur le même datagramme à l'aide de la clé symétrique partagée et de le comparer avec le code reçu. Si le mécanisme de signature numérique est employé, le récepteur doit alors récupérer la signature, la déchiffrer avec la clé publique de l'émetteur et comparer le condensat ainsi obtenu avec celui calculé de son côté sur le datagramme reçu. Si les deux codes, ou les deux condensats diffèrent, soit l'émetteur ne possède pas la bonne clé, soit le message a subi des modifications en chemin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'extension ESP ''Encapsulating Security Payload'' décrite dans le RFC 4303 permet de chiffrer l'ensemble des paquets ou leur partie transport et de garantir l'authentification et l'intégrité de ces paquets. Cette extension permet optionnellement de détecter les rejeux (à condition que le service d'authentification soit assuré) et garantit de façon limitée la confidentialité du flux.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir ces services de sécurité, il est nécessaire, avant d'émettre un paquet IP sur le réseau, de chiffrer les données à protéger, de calculer un authentificateur, et d'encapsuler ces informations dans l'en-tête de confidentialité ESP. Cela nécessite bien entendu l'existence d'une association de sécurité précisant, entre autres, le ou les algorithmes de chiffrement, la ou les clés, et un indice de paramètres de sécurité. Pour en savoir plus sur les extensions de sécurité, nous renvoyons le lecteur vers le livre&amp;lt;ref&amp;gt;G. Cizault. livre &amp;quot;IPv6, Théorie et Pratique&amp;quot;. [http://livre.g6.asso.fr/index.php/S%C3%A9curit%C3%A9 Chapitre sur la Sécurité]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Segment Routing Header (SRH) ===&lt;br /&gt;
&lt;br /&gt;
Cette extension est une des briques qui permet la mise en œuvre de l'ingénierie de trafic et de la qualité de service dans les réseaux IPv6. Certaines applications ont besoin que le délai, le taux de perte des paquets et le débit ne dépassent pas un certain seuil. Par exemple, une session de vidéo-conférence peut nécessiter que le délai de bout en bout reste inférieur à 100 ms, que le débit disponible soit au minimum de 2 Mbit/s et que le taux de perte reste inférieur à 1 %. La solution habituellement mise en œuvre pour le respect de ces métriques de qualité de service est RSVP-TE&amp;lt;ref&amp;gt;Packet Pushers, novembre 2016.[http://packetpushers.net/rsvp-te-protocol-deep-dive/ Deep dive in the RSVP-TE protocol]&amp;lt;/ref&amp;gt;. RSVP est un protocole de réservation de ressources sur les routeurs du chemin entre une source et une destination. La composante d'ingénierie de trafic permet notamment de choisir explicitement le chemin qui sera suivi par le paquet. Lorsqu'une application a besoin de réserver des ressources, un circuit MPLS est établi et le protocole RSVP réserve les ressources sur l'ensemble des routeurs qui composent le chemin. La figure 4 résume ce comportement : le nœud A est la source du flot de vidéo-conférence destiné à B. Elle demande l'installation d'un chemin via MPLS. Le contrôleur détermine que le chemin le plus adapté est celui transitant par G,H,I,K,N source de vidéo-conférence. Elle effectue ensuite une réservation de ressource via RSVP. Chacun des routeurs G,H,I,K,N doit accepter la requête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp2.png|thumb|center|600px|Figure 4 : Exemple d'utilisation de RSVP-TE pour assurer la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'inconvénient de cette méthode est qu'avec RSVP, les réservations doivent être fréquemment renouvelées et les routeurs doivent garder des états relatifs à chacun des flots. À chaque fois qu'un routeur reçoit un paquet, il doit chercher dans la liste des flots le comportement à y associer. Cela limite le passage à l'échelle (le nombre de flots supportés). De plus, l'établissement des circuits MPLS est coûteux en temps, en états, et en communication. Pour finir, si un des nœuds ou des liens qui compose le chemin n'est plus disponible, le temps requis pour établir un nouveau chemin peut être trop important face aux besoins des flots &amp;lt;ref&amp;gt;Cisco, [http://www.segment-routing.net/tutorials/2017-03-06-segment-routing-traffic-engineering-srte/ SR Traffic Engineering]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le concept de ''segment routing'' a été proposé pour palier ces désavantages. Il permet de réduire l'intelligence des nœuds du réseau. Un contrôleur choisit le chemin qui respecte les besoins de qualité de service du nœud. Le chemin à suivre ainsi que le traitement à associer aux paquets sont ensuite explicitement listés dans leurs en-têtes. Ces traitements à appliquer au paquet sont appelées segments. Un segment peut être l'adresse d'un routeur par lequel le paquet devra transiter, un lien à emprunter ou encore un service fourni par le routeur sur lequel transite le paquet. La séquence de segments que doit suivre le paquet peut être implémentée via une liste de labels MPLS ou, dans le cas d'un réseau IPv6, via l'option ''Segment Routing'' de l'en-tête &amp;lt;ref&amp;gt; Previdi &amp;amp; al. [https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-06 IPv6 Segment Routing Header (SRH) (Draft)]&amp;lt;/ref&amp;gt;. Contrairement à MPLS, le ''segment routing'' avec IPv6 ne requière pas que tous les nœuds traversés par le paquet soient compatibles avec cette option. Cela permet un déploiement progressif et la traversée de plusieurs types de réseaux. Notons qu'il n'est pas nécessaire d'inscrire l'intégralité du chemin dans la liste. Les règles de routage classique de l'IGP s'appliquent jusqu'au prochain nœud explicitement listé dans l'en-tête. Dans le cas de la figure 5, pour suivre le chemin G,H,I,K,N, il est seulement nécessaire d'ajouter I et B dans la liste. Lorsque le paquet est généré par A, l'adresse de destination est celle de I. Lorsque le paquet atteint I, l'adresse de destination est remplacée par la prochaine dans la liste ; c'est-à-dire B. Le paquet suit le plus court chemin entre I et B ; en l’occurrence I,K,N. Le surcoût induit par la taille de l'extension de l'en-tête est donc limité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp.png|thumb|center|600px|Figure 5 : Exemple d'utilisation du ''Segment Routing'' pour l'ingénierie de trafic et la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le projet de RFC prévoit qu'un segment soit représenté sur 128 bits ; c'est-à-dire autant qu'une adresse IPv6. Le nombre de segments inclus dans l'option SRH peut être déduit du champ &amp;lt;tt&amp;gt;Hdr Ext Len&amp;lt;/tt&amp;gt; qui indique le nombre d'octets de l'option moins un. Le prochain segment à appliquer est indiqué par le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; qui indique le nombre de segments restant à appliquer au paquet. Le segment courant est inscrit dans le champ adresse de destination de l'en-tête IPv6. Lorsque le traitement associé à un segment est achevé, le prochain segment à traiter est copié dans le champ adresse de destination et le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; est décrementé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_IPv6_extension_routage_v02.jpg|thumb|center|400px|Figure 6 : Extension de routage par la source.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'extension SRH est très proche de l'en-tête de routage défini dans le RFC 8200 de IPv6. L'en-tête de routage devait notamment permettre le routage à la source (voir la figure 6) qui consiste à lister les routeurs que devaient traverser le paquet au cours de son acheminement. Cette pratique a été dépréciée en 2007 par le RFC 5095 pour des raisons de sécurité. En effet cela permettait de générer de la congestion sur certains chemins, des attaques de déni de service, des contournements des règles de filtrages de certains pare-feux ou encore d'utiliser des machines publiques accessibles (en DMZ) pour accéder à des machines privées. &amp;lt;ref&amp;gt;P.  Biondi et A. Ebalard, CanSecWest,  2017 .[http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf IPv6 Routing Header Security]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour être acceptée, l'extension SRH doit donc garantir qu'elle ne serait pas vulnérable à ces attaques. Plusieurs cas d'utilisation sont décrits. Lorsque l'extension SRH est générée au sein du réseau de l'opérateur (i.e. routeur de bordure), les attaques listées dans le RFC 5095 sont inopérantes. Les routeurs de bordures doivent simplement filtrer les paquets provenant de l'extérieur pour éviter que des hôtes s'attribuent des privilèges ou provoquent de la congestion sur certains liens. Lorsque les SRH sont générées en dehors du réseau de l'opérateur, le projet de RFC prévoit l'utilisation d'un mécanisme d'authentification de l'en-tête défini par le RFC 2104 (option HMAC). La clé de chiffrement de l'en-tête HMAC est distribuée au sein des nœuds autorisés à générer ou manipuler des extensions d'en-têtes SRH.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents de ce paragraphe.&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
&lt;br /&gt;
* RFC 4302 : IP Authentication Header&lt;br /&gt;
* RFC 4303 : IP Encapsulating Security Payload (ESP)&lt;br /&gt;
* RFC 5095 : Deprecation of Type 0 Routing Headers in IPv6 Specification [http://www.bortzmeyer.org/5095.html Analyse]&lt;br /&gt;
* RFC 7045 : Transmission and Processing of IPv6 Extension Headers [http://www.bortzmeyer.org/7045.html Analyse]&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World [http://www.bortzmeyer.org/7872.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20074</id>
		<title>MOOC:Compagnon Act21-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20074"/>
				<updated>2022-02-18T16:44:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Activité 21: L’en-tête IPv6 =&lt;br /&gt;
&amp;lt;!-- = Activité 21: Le format de l’en-tête IPv6 = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Comme rappelé en introduction de la séquence, la fonction principale du protocole IP est d'acheminer un paquet d'un point à un autre de l'Internet. Un paquet se définit comme une unité de transfert dans un réseau. Il est  composé d'un bloc de données de taille variable mais limitée et identifié par un en-tête. Le mode d'acheminement par datagramme, utilisé dans l'Internet, impose que chaque paquet soit traité indépendamment, sans avoir besoin d'informations issues d'autres paquets déjà transmis. L'en-tête IP doit donc comporter toutes les informations pour réaliser cet acheminement. C'est la raison pour laquelle chaque paquet doit contenir l'adresse globale du nœud source ainsi que celle du nœud de destination du paquet. Pour marquer cette spécificité, ces paquets auto-descriptifs sont appelés des datagrammes.&lt;br /&gt;
&lt;br /&gt;
L'adresse du destinataire est fondamentale pour le routage du paquet effectué par les nœuds intermédiaires. C'est en effet à partir de cette adresse que le nœud décide vers quelle interface le paquet doit sortir. La lecture de l'adresse du destinataire dans l'en-tête IP est donc une étape cruciale pour la performance globale de l'acheminement du paquet. Afin d'accélérer cette étape, deux principes ont été appliqués dans la spécification de l'en-tête IP : &lt;br /&gt;
* une adresse IP est de taille fixe, permettant ainsi d'être récupérée dans l'en-tête directement en lisant un nombre de bits prédéterminé, sans avoir à lire ni interpréter au préalable un champ de longueur d'adresse ;&lt;br /&gt;
* l'adresse IP destination est à un emplacement fixe dans l'en-tête, emplacement aligné en mémoire, facilitant ainsi son extraction de l'en-tête par un simple décalage en mémoire, qui est une opération simple au niveau matériel.&lt;br /&gt;
&lt;br /&gt;
== Format de l'en-tête du datagramme IPv6 ==&lt;br /&gt;
Le format d'en-tête du datagramme IPv6 est spécifié par le RFC 8200 (page 5). Cet en-tête, avec les champs le composant, est représenté par la figure 1. L'en-tête IPv6 est de taille fixe et se compose de 5 mots de 64 bits (contre 5 mots de 32 bits pour IPv4). La taille de l'en-tête IPv6 est donc de 40 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig1.png|400px|thumb|center|Figure 1 : Format de l'en-tête d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signification des champs de l'en-tête ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; est au même emplacement et de même longueur, quelle que soit la version du protocole IP (IPv4 ou IPv6). Cette similarité permet de vérifier que le paquet reçu est au format attendu.  Dans le cas d'IPv6, sa valeur est de 6 ; elle est de 4 pour IPv4. Le numéro de version 5 avait déjà été attribué au protocole Stream qui finalement n'a pas eu le succès attendu [RFC 1190, RFC 1819].&lt;br /&gt;
&lt;br /&gt;
=== Classe de trafic (''Traffic Class'') ===&lt;br /&gt;
Dans la version du document de spécification du protocole IPv6 [RFC 8200], le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt;, sur 8 bits reprend la spécification pour le codage de la différenciation de services [http://tools.ietf.org/html/rfc2474#page6 RFC 2474].&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt; est défini de façon similaire au champ &amp;lt;tt&amp;gt;Differentiated Services&amp;lt;/tt&amp;gt; (DS, ou ''DiffServ'') de l'en-tête IPv4, qui a lui-même pris la place de l'octet &amp;lt;tt&amp;gt;Type of Service&amp;lt;/tt&amp;gt; de la spécification initiale d'IPv4. Ce champ est découpé en deux parties (cf. figure 2). Le sous-champ DSCP (''Differentiated Services Code Point'') contient les valeurs identifiant les différents traitements demandés aux routeurs. La valeur par défaut 000000 correspond au service classique dit ''au mieux'' (ou ''best effort''). Les deux derniers bits du champ, notés ECN (''Explicit congestion Notification''), servent aux routeurs à rapporter un risque de congestion [RFC 8311].&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_10_TrafficClass.jpg|200px|thumb|center|Figure 2 : Format de l'octet &amp;lt;tt&amp;gt;classe de trafic&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour le lecteur qui veut en savoir plus, l'[[#Annexe_1:_la_gestion_de_la_qualit.C3.A9_de_service|annexe 1]] décrit l'utilisation du champ classe de trafic dans l'objectif de fournir des services de transfert à qualité différente.&lt;br /&gt;
&lt;br /&gt;
=== Identificateur de flux (''Flow Label'') ===&lt;br /&gt;
Ce champ, contient un numéro unique, choisi par la source, pour identifier le flux de données d'une application comme par exemple l'ensemble des paquets d'une application de voix sur IP. L'unicité de l'identificateur de flux se comprend dans le contexte de l'adresse source. L'utilisation de ce champ est  spécifiée  par le RFC 6437.&lt;br /&gt;
&lt;br /&gt;
Ce champ vise à faciliter la classification des flux par les routeurs afin de différencier le traitement des  paquets et donc notamment la mise en œuvre des fonctions de qualité de service.  Les datagrammes d'un même flux ayant un même identifiant, le routeur peut alors les reconnaitre et leur appliquer un traitement particulier comme le choix d'une route ou une priorité à l'accès à la transmission. &lt;br /&gt;
&lt;br /&gt;
Habituellement, les routeurs se basent sur les valeurs de cinq champs pour identifier le même flux de paquets : adresses de la source et de la destination, numéros de port de la source et de la destination, et protocole. Cette identification  implique l'analyse d'en-têtes de niveau 3 pour les adresses et de niveau 4 pour les autres informations. &lt;br /&gt;
&lt;br /&gt;
Avec IPv6, l'identification du flux n'implique plus que le niveau 3. Ainsi, l'identification est faite indépendamment du protocole de niveau 4. Le champ &amp;lt;tt&amp;gt;Identificateur de flux&amp;lt;/tt&amp;gt; peut être rempli avec une valeur aléatoire mais qui doit être unique. La source gardera cette valeur pour tous les paquets qu'elle émettra pour cette application et cette destination. Le traitement est simplifié puisque le routeur n'a plus à consulter cinq champs pour déterminer l'appartenance d'un paquet à un flux, mais un seul. De plus, la confidentialité peut être préservée, les informations concernant les numéros de port peuvent être masquées aux routeurs intermédiaires. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Passage à l'échelle|Le passage à l'échelle désigne la capacité d'un produit ou d'un mécanisme à s'adapter à un changement d'ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande&amp;lt;ref&amp;gt;Wikipedia.[https://fr.wikipedia.org/wiki/Scalability Définition de la scalabilité]&amp;lt;/ref&amp;gt;. Il faut donc comprendre qu'une difficulté à passer à l'échelle signifie que la propriété d'extensibilité n'est pas acquise.}}&lt;br /&gt;
&lt;br /&gt;
À la date de rédaction de ce document, l'utilisation de l'identificateur de flux reste encore floue. Les micro-flux, c'est-à-dire les flux applicatifs, ne sont pas analysés dans le cœur du réseau pour des raisons de passage à l'échelle. De plus, l'idée d'utiliser une étiquette pour acheminer des paquets est déjà utilisée par la technologie MPLS&amp;lt;ref&amp;gt; MultiProtocol Label Switching https://fr.wikipedia.org/wiki/Multiprotocol_Label_Switching &amp;lt;/ref&amp;gt; de l'Internet, ce qui retire tout sens à utiliser ce champ du paquet IPv6 pour cette fonction. Pour l'instant, ce champ peut être vu comme réservé. Son utilisation devra être détaillée dans le futur.&lt;br /&gt;
&lt;br /&gt;
=== Longueur de la charge du paquet (''Payload Length'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la quantité d'octets qui suit l'en-tête du datagramme (en-tête exclu donc), c'est-à-dire la charge du paquet, autrement dit les données. Les éventuelles extensions à l'en-tête IPv6 sont incluses dans ces données. Ce champ, sur 16 bits, peut donc indiquer la taille des données utiles, allant jusqu'à 64 kibioctets (64 * 1024 octets). Pour des paquets dont la taille serait supérieure, ce champ vaut 0 et l'émetteur ajoute une extension d'en-tête de &amp;quot;proche en proche&amp;quot; avec l'option ''jumbogramme'' définie par le RFC 2675. Avec l'option jumbogramme, la quantité de données transportée est codée sur 32 bits. La taille maximale des données utiles du paquet monte alors jusqu'à 4 gibioctets (4* 2^30 octets). Nous reviendrons sur le jumbogramme dans l'activité &amp;quot;Taille des paquets IPv6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== En-tête suivant (''Next Header'')===&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole se trouvant à la suite de l'en-tête IPv6. Il peut s'agir d'un protocole de niveau supérieur (ICMP, UDP, TCP...) ou de la désignation d'une extension (cf. tableau ''Valeurs du champ en-tête suivant pour IPv6'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nombre maximal de sauts (''Hop Limit'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ représente le nombre maximal de routeurs que le paquet peut traverser. Il est initialisé par le nœud source du paquet et, ensuite, décrémenté à chaque routeur traversé. Si la valeur, après décrémentation, atteint 0, le datagramme est supprimé et un message d'erreur ICMPv6 est émis pour la source de ce paquet. Ce champ vise à limiter le nombre de relayages (ou traversées de routeurs) que peut subir un paquet suite à des problèmes dans le réseau comme des boucles de routage. Ainsi, un paquet ne peut pas circuler indéfiniment dans l'Internet.&lt;br /&gt;
Ce champ est à la base de l'outil &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt; pour identifier la suite des routeurs traversés jusqu'à une destination.&lt;br /&gt;
&lt;br /&gt;
La valeur initiale de ce champ, à l'émission du paquet, devrait être donnée dans un document annexe de l'IANA (http://www.iana.org/) ; ce qui permettrait de la modifier en fonction de l'évolution de la topologie du réseau. La valeur n'est pas encore officiellement attribuée mais certaines implantations prennent actuellement la valeur conseillée pour IPv4 : 64. &lt;br /&gt;
&lt;br /&gt;
La valeur par défaut peut être dynamiquement attribuée aux hôtes émetteurs par les annonces des routeurs en configuration automatique. Une modification de ce paramètre sera donc relativement simple quand la limite actuelle sera atteinte. On peut noter une limitation puisque ce champ, codé sur 8 bits, n'autorise la traversée que de 255 routeurs. En réalité, dans l'Internet actuel, le nombre maximal de routeurs traversés est d'une quarantaine, ce qui laisse une bonne marge pour l'évolution du réseau.&lt;br /&gt;
&lt;br /&gt;
=== Adresses source et destination ===&lt;br /&gt;
Ces adresses sont renseignées par le nœud source du paquet pour désigner l'émetteur et le destinataire du paquet. Pour renseigner l'adresse source, l'émetteur choisit de préférence une adresse IPv6 parmi celles configurées sur l'interface utilisée pour transmettre le paquet sur le réseau. Cette adresse est choisie pour avoir une portée compatible avec l'adresse de destination et, ainsi, permettre au destinataire de répondre. Par exemple, il serait problématique d'essayer de joindre un nœud de l'Internet en donnant comme adresse source une adresse ''lien-local''. Le choix de l'adresse source est spécifié dans le RFC 6724.&lt;br /&gt;
&lt;br /&gt;
L'adresse destination, elle aussi, peut être choisie dans la liste des adresses valables pour le destinataire ; liste pouvant provenir de la résolution d'un nom en adresses par le DNS. L'adresse choisie doit être compatible avec la portée des adresses disponibles au niveau de l'émetteur. Par exemple, si l'émetteur ne possède que des adresses de type ULA, et que le destinataire est connu avec des adresses globales et ULA, ces dernières adresses seront à préférer. Le RFC 6724 précise l'algorithme du choix de l'adresse destination.&lt;br /&gt;
&lt;br /&gt;
=== Extensions à l'en-tête IPv6 ===&lt;br /&gt;
L'ajout de nouvelles fonctionnalités est problématique quand l'en-tête est de taille fixe comme c'est le cas d'IPv6. La solution proposée consiste à ajouter des en-têtes spécifiques pour chaque fonctionnalité. &lt;br /&gt;
Les extensions sont ajoutées par le nœud source du paquet pour demander un traitement spécifique à réaliser, soit par les routeurs intermédiaires, soit par le destinataire du paquet.&lt;br /&gt;
Par exemple, si un paquet doit être fragmenté, une extension de fragmentation sera ajoutée par le nœud source afin que le destinataire puisse rassembler les morceaux correctement.&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs types d'extensions selon le traitement demandé. Elles se placent après l'en-tête IPv6 et avant la charge utile du paquet (voir la figure 3). La présence d'une extension est signalée par le champ &amp;lt;tt&amp;gt;En-tête suivant&amp;lt;/tt&amp;gt; (''Next Header'') de l'en-tête IPv6 qui possède alors la valeur correspondant à cette extension. Ainsi, elle est traitée par les routeurs intermédiaires comme un protocole de niveau supérieur à IP. L'utilisation des différents types d'extensions d'en-tête IPv6 sera abordé dans une activité ultérieure de ce cours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig2.jpg|400px|center|thumb|Figure 3: Format d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Evolution de l'en-tête depuis IPv4 ==&lt;br /&gt;
&lt;br /&gt;
Hormis la modification de la taille des adresses, ce qui conduit à une taille d'en-tête de 40 octets (le double d'un en-tête IPv4 sans options), le protocole IP a subi un toilettage&amp;lt;ref&amp;gt;Lee, D.C.; Lough, D.L.; Midkiff, S.F.et al. (1998). IEEE Network, Vol. 12, No. 1, January. The next generation of the Internet: aspects of the Internet protocol version 6.&amp;lt;/ref&amp;gt;, reprenant l'expérience acquise au fil d’une trentaine d’années avec IPv4, défini en 1981 (!) par le RFC 791. Le format des en-têtes IPv6 est ainsi simplifié et permet aux routeurs de meilleures performances dans leurs traitements. L'idée est de retirer du cœur de réseau les traitements compliqués. Les routeurs ne font que retransmettre les paquets vers la destination, les autres traitements sont faits par l'émetteur et le destinataire du paquet.&lt;br /&gt;
&lt;br /&gt;
L'en-tête ne contient plus de contrôle d'erreur (''checksum''), qui devait être ajusté, pour IPv4, par chaque routeur en raison, entre autres, de la décrémentation du champ &amp;lt;tt&amp;gt;durée de vie&amp;lt;/tt&amp;gt;. Par contre, pour éviter qu'un paquet, dont le contenu est erroné -- en particulier sur l'adresse de destination --, ne se glisse dans une autre communication, tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de contrôle d'erreur de bout en bout, incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le contrôle d'erreur d'UDP, facultatif pour IPv4, devient ainsi obligatoire. Pour ICMPv6, le contrôle d'erreur intègre le pseudo-en-tête alors que, pour ICMPv4, il ne portait que sur le message ICMP. &lt;br /&gt;
 &lt;br /&gt;
La fonction de fragmentation a aussi été retirée des routeurs. Les champs de l'en-tête IPv4 qui s'y reportent (&amp;lt;tt&amp;gt;Identification, Drapeau, Place du fragment&amp;lt;/tt&amp;gt;) ont été supprimés. Normalement, les algorithmes de découverte du PMTU (''Path MTU'') évitent d'avoir recours à la fragmentation. Si celle-ci s'avère nécessaire, une extension est prévue et le découpage en fragments est réalisé uniquement au niveau de l'émetteur.&lt;br /&gt;
&lt;br /&gt;
Une autre évolution majeure depuis l'en-tête IPv4 est la spécification des extensions d'en-tête pour remplacer les options. En effet, dans le cas d'IPv4, les options sont incluses dans l'en-tête. Celui-ci est donc de taille variable (taille indiquée dans le champ &amp;lt;tt&amp;gt;Internet Header Length&amp;lt;/tt&amp;gt;), ce qui peut compliquer le traitement dans les routeurs intermédiaires. Les extensions à l'en-tête IPv6 simplifient la mise en œuvre de ces fonctionnalités et permettent de garder la taille de l'en-tête IPv6 fixe à 40 octets.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a présenté l'en-tête IPv6, définissant une nouvelle version du protocole IP. Cette version reprend les caractéristiques communes du protocole IPv4 : des adresses de taille fixe, un en-tête définissant une position fixe pour l'adresse de destination, position de plus alignée en mémoire. L'objectif est d'avoir un traitement simple et donc rapide de l'en-tête dans les routeurs. IPv6 garde donc ces principes et va même plus loin que son prédécesseur IPv4 en reconsidérant des mécanismes jugés coûteux, comme la fragmentation, le ''checksum'' ou les options. Certains de ces mécanismes ont été éliminés dans la nouvelle version du protocole, d'autres remplacés par des mécanismes plus performants. Enfin, nous pouvons signaler ce formulaire qui présente l'essentiel du paquet IPv6 en une seule page&amp;lt;ref&amp;gt;Stretch, J. (2009) packetlife.net. Aide-mémoire tout en une page. [http://packetlife.net/media/library/8/IPv6.pdf IPv6]&amp;lt;/ref&amp;gt;. Ceci peut vous être utile pour la suite.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 791 Internet protocol (IPv4)&lt;br /&gt;
* RFC 1190 Experimental Internet Stream Protocol, Version 2 (ST-II)&lt;br /&gt;
* RFC 1819 Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+&lt;br /&gt;
* RFC 2205 Resource ReSerVation Protocol (RSVP)&lt;br /&gt;
* RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers [http://www.bortzmeyer.org/2474.html Analyse]&lt;br /&gt;
* RFC 2675 IPv6 Jumbograms&lt;br /&gt;
* RFC 6040 Tunnelling of Explicit Congestion Notification&lt;br /&gt;
* RFC 6437 IPv6 Flow Label Specification&lt;br /&gt;
* RFC 6724 Default Address Selection for Internet Protocol version 6 (IPv6) [http://www.bortzmeyer.org/6724.html Analyse]&lt;br /&gt;
* RFC 7098: Using the IPv6 Flow Label for Load Balancing in Server Farms [http://www.bortzmeyer.org/7098.html Analyse]&lt;br /&gt;
* RFC 8200 Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 9098 Operational Implications of IPv6 Packets with Extension Headers [https://www.bortzmeyer.org/9098.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents suivants :&lt;br /&gt;
*RFC 1190 : Experimental Internet Stream Protocol Version 2 (ST-II)&lt;br /&gt;
*RFC 2492 : IPv6 over ATM Networks  (cf page 2)&lt;br /&gt;
*RFC 2597 : An Expedited Forwarding PHB&lt;br /&gt;
*RFC 2598 : Assured Forwarding PHB Group&lt;br /&gt;
*RFC 4594 : Configuration Guidelines for DiffServ Service Classes  &lt;br /&gt;
*RFC 5865 : A Differentiated Services Code Point (DSCP)  for Capacity-Admitted Traffic&lt;br /&gt;
*RFC 6438 : Flow Label for Tunnel ECMP/LAG  (cf page-4)&lt;br /&gt;
*RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
*RFC 6282 : Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks&lt;br /&gt;
*RFC 6775 : Neighbor Discovery Optimization for IPv6 over Low-Power Wireless  Personal Area Networks (6LoWPANs)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Annexe 1: la gestion de la qualité de service ==&lt;br /&gt;
&lt;br /&gt;
L'Internet différencié permet aux fournisseurs d'accès de gérer différemment les congestions qui surviennent dans le réseau. Sans différenciation, les paquets ont la même probabilité de rejet. Avec la différenciation, plusieurs classes de trafic sont définies. Les paquets appartenant aux classes les plus élevées ont une probabilité de rejet plus faible. Bien entendu, pour que l'introduction de telles classes de trafic soit efficace, il faut introduire une gestion des ressources différente pour chacune des classes, et des mécanismes de contrôle pour vérifier que les flux des utilisateurs n'utilisent pas que les classes les plus élevées ou qu'ils ne dépassent pas leur contrat. Par exemple, un client peut établir un contrat de niveau de services appelé SLA (''Service Level Agreement'') avec son fournisseur d’accès. &lt;br /&gt;
&lt;br /&gt;
L'intérêt principal de la différenciation de services est qu'elle ne casse pas le modèle initial de l'Internet (version 4 ou version 6). Les flux sont toujours traités en ''Best Effort'' même si certains sont plus ''Best'' que d'autres. Il n'y a aucune garantie qu'un trafic d'une classe haute arrive à destination, mais la probabilité est plus importante. L'autre intérêt des classes de trafic vient de la possibilité d'agrégation des flux. La classe d'appartenance est indiquée dans l'en-tête du paquet. Les applications peuvent marquer les paquets en fonction de paramètres locaux (flux multimédia, flux interactif, trafic priorisé...). Le fournisseur d'accès qui récupère le trafic n'a plus à se préoccuper des applicatifs. Il vérifie que le trafic d'une classe ne dépasse pas le contrat préalablement établi. &lt;br /&gt;
&lt;br /&gt;
Dans le cœur du réseau, les routeurs prennent en compte les différentes classes. Le fournisseur d'accès devra également passer des accords avec les autres opérateurs pour pouvoir faire transiter les flux avec un traitement approprié. Cet aspect de dimensionnement de réseau et de négociation d'accords d'échange est au coeur du métier d'opérateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour signifier l'appartenance d'un paquet à une certaine classe de trafic, une valeur est renseignée au niveau de l'en-tête IP dans l'octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt; afin qu'elle puisse être analysée par tous les routeurs mettant en œuvre le traitement différencié. Le format de ce champ est rappelé en figure 2.&lt;br /&gt;
&lt;br /&gt;
Le tableau 1 présente les différentes valeurs définies pour le champ DSCP (''Differential Service Code Point''). Les valeurs sont présentées en format binaire avec les 6 bits les plus significatifs de l’octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt;, puis leur conversion en décimal, leur nommage, la probabilité d’écartement, et l’équivalence avec les anciennes valeurs du champ TOS de l’IPv4 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_07_dscp_ipv6_v01.jpg|600px|thumb|center|Tableau 1 : Format du champ DSCP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, deux types de comportement sont standardisés :&lt;br /&gt;
&lt;br /&gt;
* Assured Forwarding [[https://tools.ietf.org/html/rfc2597#page-6 RFC 2597]] : ce comportement définit quatre classes de trafic et trois priorités, suivant que l'utilisateur respecte son contrat, le dépasse légèrement, ou est largement en dehors. Les classes sont donc choisies par l'utilisateur et restent les mêmes tout au long du trajet dans le réseau. La priorité, par contre, peut être modifiée dans le réseau par les opérateurs en fonction du respect ou non des contrats. Par exemple, pour la classe AF n°2, on dispose des 3 priorités suivantes : AF21, AF22 et AF23. Plus le chiffre est élevé, plus la priorité est faible. C'est-à-dire qu'en cas de saturation de cette classe de trafic, les paquets AF23 seront écartés avant AF22, puis AF21.&lt;br /&gt;
* Expedited Forwarding [[https://tools.ietf.org/html/rfc2598#page-1 RFC 2598]] : ce comportement est comparable à un circuit à débit constant réservé dans le réseau. Le trafic est mis en forme à l'entrée du réseau, en retardant l'émission des paquets qui sont hors contrat. En plus de ces comportements, l'octet DS a gardé, pour des raisons de compatibilité avec les équipements existants, les valeurs du bit ToS qui étaient le plus fréquemment utilisées.  La valeur est 0xB8 (1011 1000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 46 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Voice Admit : cette autre valeur a été par la suite proposée dans le [https://tools.ietf.org/html/rfc5865#page-10 RFC 5865] pour affiner le traitement de flux ''temps réel'' de différentes natures : voix, vidéo, signalisation ''temps réel''… (La valeur est 0xB0 soit 1011 0100 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 44 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Network Control : autre particularité : la valeur 0xE0 (1110 0000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 56 en décimal) correspond à CS7, la classe de contrôle du réseau (''Network Control''). Elle est utilisée dans des mises en œuvre d'IPv6 pour l'émission de certains paquets ICMPv6. Cette valeur est dépréciée. Il est conseillé d'utiliser la valeur CS6 comme spécifié dans le [https://tools.ietf.org/html/rfc4594#section-3 RFC 4594].&lt;br /&gt;
&lt;br /&gt;
=== Références bibliographiques ===&lt;br /&gt;
* RFC 2597 Assured Forwarding PHB Group&lt;br /&gt;
* RFC 2598  An Expedited Forwarding PHB&lt;br /&gt;
* RFC 4594 Configuration Guidelines for DiffServ Service Classes&lt;br /&gt;
* RFC 5865 A Differentiated Services Code Point (DSCP) for Capacity-Admitted Traffic&lt;br /&gt;
&lt;br /&gt;
== Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Les extensions de l'en-tête IPv6 visent à ajouter des fonctionnalités supplémentaires à l'acheminement d'un paquet dans l'Internet. Ces extensions vont impliquer le traitement de ces fonctionnalités au niveau réseau, soit par le destinataire du paquet IPv6, soit par les routeurs intermédiaires en charge de l’acheminement du paquet IPv6.&lt;br /&gt;
&lt;br /&gt;
De nombreuses extensions ont été définies, afin d'assurer des fonctions comme  le routage par la source, la gestion de la fragmentation, la confidentialité des communications (mécanisme ''ipsec''), etc. &lt;br /&gt;
&lt;br /&gt;
Le mécanisme d'extension de l'en-tête IPv6 est assez souple pour pouvoir inclure d'autres fonctionnalités futures. Dans cette activité, nous allons nous intéresser au principe du traitement des extensions au moyen d'exemples simples et démonstratifs de ce mécanisme.&lt;br /&gt;
&lt;br /&gt;
== Principe des extensions IPv6==&lt;br /&gt;
&lt;br /&gt;
Les extensions peuvent être vues comme un protocole 3.5, entre les couches 3 (réseau) et 4 (transport) du modèle OSI. En effet, à part l'extension de proche-en-proche, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (i.e. celui spécifié dans le champ adresse de destination du paquet IPv6).&lt;br /&gt;
Une extension a une longueur multiple de 8 octets (64 bits). Elle commence par un champ &amp;lt;tt&amp;gt;Next header&amp;lt;/tt&amp;gt; qui définit, sur un octet, le type d'extension ou de protocole qui suit. Pour les extensions de longueur variable, l'octet suivant contient la longueur de l'extension en mots de 8 octets, le premier mot n'étant pas compté. Par exemple, une extension de 16 octets aura une longueur de 1.&lt;br /&gt;
&lt;br /&gt;
Si, d'un point de vue théorique, les extensions sont supérieures aux options d'IPv4, dans la réalité très peu sont utilisées à grande échelle et restent du domaine de la recherche.&lt;br /&gt;
&lt;br /&gt;
'''''Nota :''''' ''dans la pratique, l'extension la plus couramment rencontrée est probablement l'option de fragmentation à la source. En effet, certains protocoles applicatifs sur UDP, tel que NFS, supposant que la fragmentation existe au niveau réseau, produisent des messages de taille quelconque sans se soucier du MTU. Comme il n'est pas envisageable de modifier ces applications largement déployées, la couche réseau IPv6 doit être capable de gérer la fragmentation. IPv6 impose simplement que cette dernière se fasse à la source.''&lt;br /&gt;
&lt;br /&gt;
Une présentation illustrée des extensions IPv6 peut être consultée sur le site de Cisco&amp;lt;ref&amp;gt;Cisco (2006) White paper.[http://www.cisco.com/en/US/technologies/tk648/tk872/technologies_white_paper0900aecd8054d37d.html IPv6 Extension Headers Review and Considerations]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Le champ ''Next Header'' ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_ipv6_header_next-header_v02.jpg|thumb|right|300px|Figure 1 : Localisation du champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; dans l'en-tête IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; de l'en-tête IPv6, comme illustré sur la figure 1, identifie généralement le protocole de niveau supérieur comme, par exemple, le transport TCP/UDP. Mais, dans le cas des extensions, plusieurs mécanismes particuliers sont également disponibles parmi la liste suivante :&lt;br /&gt;
&amp;lt;center&amp;gt;{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intégration des extensions d’en-tête dans le paquet IPv6==&lt;br /&gt;
Quand il y a plusieurs extensions dans un même datagramme, les extensions sont placées selon un ordre qui dépend de leur portée : &lt;br /&gt;
* extensions impliquant tous les routeurs intermédiaires : ''Hop-by-Hop'' ;&lt;br /&gt;
* extensions impliquant seulement certains routeurs désignés : ''Routing'' ;&lt;br /&gt;
* extension impliquant le destinataire : ''Authentication'', ''Encapsulating Security Payload'', Fragmentation, Destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La figure 2 montre la souplesse avec laquelle plusieurs extensions peuvent être chaînées. Chaque extension contient dans son en-tête un champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; et un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;. Le premier paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur ICMPv6. Le second paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur TCP. Le troisième paquet contient une extension de protection qui pointe ensuite sur UDP. Dans le dernier paquet, une extension de routage, qui pointe sur une extension de fragmentation, pointe finalement sur ICMPv6. &lt;br /&gt;
* L'enchaînement des extensions se fait dans un ordre bien déterminé. Par exemple, une extension concernant tous les routeurs sur le chemin (''Hop-by-Hop'') devra forcément se trouver en première position. Si elle se trouvait à la suite d'une extension ''Destination'', elle ne pourrait être lue, l'extension ''Destination'' n'étant interprétée que par le destinataire du paquet.&lt;br /&gt;
* Si cet enchaînement d'extension offre beaucoup plus de souplesse que les options d'IPv4, il rend difficile la lecture des numéros de port. Il faut en effet lire tout l'enchaînement d'extension pour arriver au protocole de niveau 4. Ceci a servi de justification à l'identificateur de flux qui permettait de refléter au niveau 3 un flux particulier et évitait de dérouler l'enchaînement. Bien entendu, les pare-feux devront vérifier les numéros de ports. &lt;br /&gt;
* Les extensions peuvent être vues comme un protocole 3.5 (entre la couche 3 et la couche 4). En effet, à part l'extension de &amp;quot;proche en proche&amp;quot;, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (''i.e.'' celui spécifié dans le champ &amp;lt;tt&amp;gt;adresse de destination&amp;lt;/tt&amp;gt; du paquet IPv6). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_10_extensions_IPv6_v01.jpg|thumb|center|600px|Figure 2 : Enchaînement d'extensions.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques exemples ==&lt;br /&gt;
&lt;br /&gt;
=== Fragmentation ===&lt;br /&gt;
&lt;br /&gt;
Nous avons vu la fragmentation en détail lors de l'activité consacrée à la taille des paquets IPv6. Les points essentiels à rappeler sont que la fragmentation en IPv6 est une fonction d'hôtes exclusivement, et que par souci d'efficacité, l'adaptation de la taille de l'unité de données applicatives en unité de transfert est du ressort de la couche de transport. Cependant, lorsque ce n'est pas possible, en dernier ressort, la fragmentation est faite par IPv6.  Les informations pour la fragmentation sont placées dans une extension d'en-tête IPv6 identifiée par la valeur 44.&lt;br /&gt;
D'un point de vue du codage, l'en-tête et les extensions qui concernent les routeurs intermédiaires (pour l'instant &amp;quot;proche en proche&amp;quot; et &amp;quot;routage par la source&amp;quot;) sont recopiées dans chaque fragment, tandis que les autres extensions et l'en-tête de niveau 4 ne seront présents que dans le premier fragment.&lt;br /&gt;
&lt;br /&gt;
La fragmentation en IPv4 n'est pas très performante. Quand un routeur ne peut pas transmettre un paquet à cause de sa trop grande taille, il doit le transmettre en fragments. Comme l'Internet n'est pas fiable, un fragment peut se perdre. Le destinataire ne peut rassembler les fragments. Cela revient à perdre tous les fragments. Il est donc plus efficace de faire les fragments avant la couche IP. Ainsi le fragment devient un paquet IP à la bonne taille. Maintenant, en cas de perte, seul le paquet perdu sera retransmis, évitant ainsi la retransmission de gros blocs de données.&lt;br /&gt;
&lt;br /&gt;
Il est plus intéressant d'adapter la taille des paquets à l'émission. Ceci est fait en utilisant les techniques de découverte du MTU (voir RFC 8201 : Mécanisme de découverte du PMTU). En pratique, une taille de paquets de MTU 1280 octets est une bonne garantie d'acheminement du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Extensions d'authentification (AH) et de confidentialité (ESP) ===&lt;br /&gt;
&lt;br /&gt;
L'extension d'authentification (AH : Authentication Header) décrite dans le RFC 4302 permet de s'assurer que l'émetteur du message est bien celui qu'il prétend être. Elle sert aussi au contrôle d'intégrité pour garantir au récepteur que personne n'a modifié le contenu d'un message lors de son transfert sur le réseau. Elle peut optionnellement être utilisée pour détecter les rejeux.&lt;br /&gt;
&lt;br /&gt;
Le principe de l'authentification est relativement simple. L'émetteur calcule un authentificateur sur un datagramme et l'émet avec le datagramme sur lequel il porte. Le récepteur récupère cette valeur et vérifie qu'elle est correcte. Si un code d'authentification de message &amp;lt;ref&amp;gt;Code d'authentification de message, [https://fr.wikipedia.org/wiki/Code_d%27authentification_de_message Article Wikipedia]&amp;lt;/ref&amp;gt; est utilisé, il suffit au récepteur de calculer de son côté le code sur le même datagramme à l'aide de la clé symétrique partagée et de le comparer avec le code reçu. Si le mécanisme de signature numérique est employé, le récepteur doit alors récupérer la signature, la déchiffrer avec la clé publique de l'émetteur et comparer le condensat ainsi obtenu avec celui calculé de son côté sur le datagramme reçu. Si les deux codes, ou les deux condensats diffèrent, soit l'émetteur ne possède pas la bonne clé, soit le message a subi des modifications en chemin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'extension ESP ''Encapsulating Security Payload'' décrite dans le RFC 4303 permet de chiffrer l'ensemble des paquets ou leur partie transport et de garantir l'authentification et l'intégrité de ces paquets. Cette extension permet optionnellement de détecter les rejeux (à condition que le service d'authentification soit assuré) et garantit de façon limitée la confidentialité du flux.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir ces services de sécurité, il est nécessaire, avant d'émettre un paquet IP sur le réseau, de chiffrer les données à protéger, de calculer un authentificateur, et d'encapsuler ces informations dans l'en-tête de confidentialité ESP. Cela nécessite bien entendu l'existence d'une association de sécurité précisant, entre autres, le ou les algorithmes de chiffrement, la ou les clés, et un indice de paramètres de sécurité. Pour en savoir plus sur les extensions de sécurité, nous renvoyons le lecteur vers le livre&amp;lt;ref&amp;gt;G. Cizault. livre &amp;quot;IPv6, Théorie et Pratique&amp;quot;. [http://livre.g6.asso.fr/index.php/S%C3%A9curit%C3%A9 Chapitre sur la Sécurité]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Segment Routing Header (SRH) ===&lt;br /&gt;
&lt;br /&gt;
Cette extension est une des briques qui permet la mise en œuvre de l'ingénierie de trafic et de la qualité de service dans les réseaux IPv6. Certaines applications ont besoin que le délai, le taux de perte des paquets et le débit ne dépassent pas un certain seuil. Par exemple, une session de vidéo-conférence peut nécessiter que le délai de bout en bout reste inférieur à 100 ms, que le débit disponible soit au minimum de 2 Mbit/s et que le taux de perte reste inférieur à 1 %. La solution habituellement mise en œuvre pour le respect de ces métriques de qualité de service est RSVP-TE&amp;lt;ref&amp;gt;Packet Pushers, novembre 2016.[http://packetpushers.net/rsvp-te-protocol-deep-dive/ Deep dive in the RSVP-TE protocol]&amp;lt;/ref&amp;gt;. RSVP est un protocole de réservation de ressources sur les routeurs du chemin entre une source et une destination. La composante d'ingénierie de trafic permet notamment de choisir explicitement le chemin qui sera suivi par le paquet. Lorsqu'une application a besoin de réserver des ressources, un circuit MPLS est établi et le protocole RSVP réserve les ressources sur l'ensemble des routeurs qui composent le chemin. La figure 4 résume ce comportement : le nœud A est la source du flot de vidéo-conférence destiné à B. Elle demande l'installation d'un chemin via MPLS. Le contrôleur détermine que le chemin le plus adapté est celui transitant par G,H,I,K,N source de vidéo-conférence. Elle effectue ensuite une réservation de ressource via RSVP. Chacun des routeurs G,H,I,K,N doit accepter la requête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp2.png|thumb|center|600px|Figure 4 : Exemple d'utilisation de RSVP-TE pour assurer la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'inconvénient de cette méthode est qu'avec RSVP, les réservations doivent être fréquemment renouvelées et les routeurs doivent garder des états relatifs à chacun des flots. À chaque fois qu'un routeur reçoit un paquet, il doit chercher dans la liste des flots le comportement à y associer. Cela limite le passage à l'échelle (le nombre de flots supportés). De plus, l'établissement des circuits MPLS est coûteux en temps, en états, et en communication. Pour finir, si un des nœuds ou des liens qui compose le chemin n'est plus disponible, le temps requis pour établir un nouveau chemin peut être trop important face aux besoins des flots &amp;lt;ref&amp;gt;Cisco, [http://www.segment-routing.net/tutorials/2017-03-06-segment-routing-traffic-engineering-srte/ SR Traffic Engineering]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le concept de ''segment routing'' a été proposé pour palier ces désavantages. Il permet de réduire l'intelligence des nœuds du réseau. Un contrôleur choisit le chemin qui respecte les besoins de qualité de service du nœud. Le chemin à suivre ainsi que le traitement à associer aux paquets sont ensuite explicitement listés dans leurs en-têtes. Ces traitements à appliquer au paquet sont appelées segments. Un segment peut être l'adresse d'un routeur par lequel le paquet devra transiter, un lien à emprunter ou encore un service fourni par le routeur sur lequel transite le paquet. La séquence de segments que doit suivre le paquet peut être implémentée via une liste de labels MPLS ou, dans le cas d'un réseau IPv6, via l'option ''Segment Routing'' de l'en-tête &amp;lt;ref&amp;gt; Previdi &amp;amp; al. [https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-06 IPv6 Segment Routing Header (SRH) (Draft)]&amp;lt;/ref&amp;gt;. Contrairement à MPLS, le ''segment routing'' avec IPv6 ne requière pas que tous les nœuds traversés par le paquet soient compatibles avec cette option. Cela permet un déploiement progressif et la traversée de plusieurs types de réseaux. Notons qu'il n'est pas nécessaire d'inscrire l'intégralité du chemin dans la liste. Les règles de routage classique de l'IGP s'appliquent jusqu'au prochain nœud explicitement listé dans l'en-tête. Dans le cas de la figure 5, pour suivre le chemin G,H,I,K,N, il est seulement nécessaire d'ajouter I et B dans la liste. Lorsque le paquet est généré par A, l'adresse de destination est celle de I. Lorsque le paquet atteint I, l'adresse de destination est remplacée par la prochaine dans la liste ; c'est-à-dire B. Le paquet suit le plus court chemin entre I et B ; en l’occurrence I,K,N. Le surcoût induit par la taille de l'extension de l'en-tête est donc limité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp.png|thumb|center|600px|Figure 5 : Exemple d'utilisation du ''Segment Routing'' pour l'ingénierie de trafic et la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le projet de RFC prévoit qu'un segment soit représenté sur 128 bits ; c'est-à-dire autant qu'une adresse IPv6. Le nombre de segments inclus dans l'option SRH peut être déduit du champ &amp;lt;tt&amp;gt;Hdr Ext Len&amp;lt;/tt&amp;gt; qui indique le nombre d'octets de l'option moins un. Le prochain segment à appliquer est indiqué par le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; qui indique le nombre de segments restant à appliquer au paquet. Le segment courant est inscrit dans le champ adresse de destination de l'en-tête IPv6. Lorsque le traitement associé à un segment est achevé, le prochain segment à traiter est copié dans le champ adresse de destination et le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; est décrementé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_IPv6_extension_routage_v02.jpg|thumb|center|400px|Figure 6 : Extension de routage par la source.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'extension SRH est très proche de l'en-tête de routage défini dans le RFC 8200 de IPv6. L'en-tête de routage devait notamment permettre le routage à la source (voir la figure 6) qui consiste à lister les routeurs que devaient traverser le paquet au cours de son acheminement. Cette pratique a été dépréciée en 2007 par le RFC 5095 pour des raisons de sécurité. En effet cela permettait de générer de la congestion sur certains chemins, des attaques de déni de service, des contournements des règles de filtrages de certains pare-feux ou encore d'utiliser des machines publiques accessibles (en DMZ) pour accéder à des machines privées. &amp;lt;ref&amp;gt;P.  Biondi et A. Ebalard, CanSecWest,  2017 .[http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf IPv6 Routing Header Security]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour être acceptée, l'extension SRH doit donc garantir qu'elle ne serait pas vulnérable à ces attaques. Plusieurs cas d'utilisation sont décrits. Lorsque l'extension SRH est générée au sein du réseau de l'opérateur (i.e. routeur de bordure), les attaques listées dans le RFC 5095 sont inopérantes. Les routeurs de bordures doivent simplement filtrer les paquets provenant de l'extérieur pour éviter que des hôtes s'attribuent des privilèges ou provoquent de la congestion sur certains liens. Lorsque les SRH sont générées en dehors du réseau de l'opérateur, le projet de RFC prévoit l'utilisation d'un mécanisme d'authentification de l'en-tête défini par le RFC 2104 (option HMAC). La clé de chiffrement de l'en-tête HMAC est distribuée au sein des nœuds autorisés à générer ou manipuler des extensions d'en-têtes SRH.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents de ce paragraphe.&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
&lt;br /&gt;
* RFC 4302 : IP Authentication Header&lt;br /&gt;
* RFC 4303 : IP Encapsulating Security Payload (ESP)&lt;br /&gt;
* RFC 5095 : Deprecation of Type 0 Routing Headers in IPv6 Specification [http://www.bortzmeyer.org/5095.html Analyse]&lt;br /&gt;
* RFC 7045 : Transmission and Processing of IPv6 Extension Headers [http://www.bortzmeyer.org/7045.html Analyse]&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World [http://www.bortzmeyer.org/7872.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20073</id>
		<title>MOOC:Compagnon Act21-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20073"/>
				<updated>2022-02-18T16:41:49Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Activité 21: L’en-tête IPv6 =&lt;br /&gt;
&amp;lt;!-- = Activité 21: Le format de l’en-tête IPv6 = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Comme rappelé en introduction de la séquence, la fonction principale du protocole IP est d'acheminer un paquet d'un point à un autre de l'Internet. Un paquet se définit comme une unité de transfert dans un réseau. Il est  composé d'un bloc de données de taille variable mais limitée et identifié par un en-tête. Le mode d'acheminement par datagramme, utilisé dans l'Internet, impose que chaque paquet soit traité indépendamment, sans avoir besoin d'informations issues d'autres paquets déjà transmis. L'en-tête IP doit donc comporter toutes les informations pour réaliser cet acheminement. C'est la raison pour laquelle chaque paquet doit contenir l'adresse globale du nœud source ainsi que celle du nœud de destination du paquet. Pour marquer cette spécificité, ces paquets auto-descriptifs sont appelés des datagrammes.&lt;br /&gt;
&lt;br /&gt;
L'adresse du destinataire est fondamentale pour le routage du paquet effectué par les nœuds intermédiaires. C'est en effet à partir de cette adresse que le nœud décide vers quelle interface le paquet doit sortir. La lecture de l'adresse du destinataire dans l'en-tête IP est donc une étape cruciale pour la performance globale de l'acheminement du paquet. Afin d'accélérer cette étape, deux principes ont été appliqués dans la spécification de l'en-tête IP : &lt;br /&gt;
* une adresse IP est de taille fixe, permettant ainsi d'être récupérée dans l'en-tête directement en lisant un nombre de bits prédéterminé, sans avoir à lire ni interpréter au préalable un champ de longueur d'adresse ;&lt;br /&gt;
* l'adresse IP destination est à un emplacement fixe dans l'en-tête, emplacement aligné en mémoire, facilitant ainsi son extraction de l'en-tête par un simple décalage en mémoire, qui est une opération simple au niveau matériel.&lt;br /&gt;
&lt;br /&gt;
== Format de l'en-tête du datagramme IPv6 ==&lt;br /&gt;
Le format d'en-tête du datagramme IPv6 est spécifié par le RFC 8200 (page 5). Cet en-tête, avec les champs le composant, est représenté par la figure 1. L'en-tête IPv6 est de taille fixe et se compose de 5 mots de 64 bits (contre 5 mots de 32 bits pour IPv4). La taille de l'en-tête IPv6 est donc de 40 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig1.png|400px|thumb|center|Figure 1 : Format de l'en-tête d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signification des champs de l'en-tête ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; est au même emplacement et de même longueur, quelle que soit la version du protocole IP (IPv4 ou IPv6). Cette similarité permet de vérifier que le paquet reçu est au format attendu.  Dans le cas d'IPv6, sa valeur est de 6 ; elle est de 4 pour IPv4. Le numéro de version 5 avait déjà été attribué au protocole Stream qui finalement n'a pas eu le succès attendu [RFC 1190, RFC 1819].&lt;br /&gt;
&lt;br /&gt;
=== Classe de trafic (''Traffic Class'') ===&lt;br /&gt;
Dans la version du document de spécification du protocole IPv6 [RFC 8200], le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt;, sur 8 bits reprend la spécification pour le codage de la différenciation de services [http://tools.ietf.org/html/rfc2474#page6 RFC 2474].&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt; est défini de façon similaire au champ &amp;lt;tt&amp;gt;Differentiated Services&amp;lt;/tt&amp;gt; (DS, ou ''DiffServ'') de l'en-tête IPv4, qui a lui-même pris la place de l'octet &amp;lt;tt&amp;gt;Type of Service&amp;lt;/tt&amp;gt; de la spécification initiale d'IPv4. Ce champ est découpé en deux parties (cf. figure 2). Le sous-champ DSCP (''Differentiated Services Code Point'') contient les valeurs identifiant les différents traitements demandés aux routeurs. La valeur par défaut 000000 correspond au service classique dit ''au mieux'' (ou ''best effort''). Les deux derniers bits du champ, notés ECN (''Explicit congestion Notification''), servent aux routeurs à rapporter un risque de congestion [RFC 8311].&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_10_TrafficClass.jpg|200px|thumb|center|Figure 2 : Format de l'octet &amp;lt;tt&amp;gt;classe de trafic&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour le lecteur qui veut en savoir plus, l'[[#Annexe_1:_la_gestion_de_la_qualit.C3.A9_de_service|annexe 1]] décrit l'utilisation du champ classe de trafic dans l'objectif de fournir des services de transfert à qualité différente.&lt;br /&gt;
&lt;br /&gt;
=== Identificateur de flux (''Flow Label'') ===&lt;br /&gt;
Ce champ, contient un numéro unique, choisi par la source, pour identifier le flux de données d'une application comme par exemple l'ensemble des paquets d'une application de voix sur IP. L'unicité de l'identificateur de flux se comprend dans le contexte de l'adresse source. L'utilisation de ce champ est  spécifiée  par le RFC 6437.&lt;br /&gt;
&lt;br /&gt;
Ce champ vise à faciliter la classification des flux par les routeurs afin de différencier le traitement des  paquets et donc notamment la mise en œuvre des fonctions de qualité de service.  Les datagrammes d'un même flux ayant un même identifiant, le routeur peut alors les reconnaitre et leur appliquer un traitement particulier comme le choix d'une route ou une priorité à l'accès à la transmission. &lt;br /&gt;
&lt;br /&gt;
Habituellement, les routeurs se basent sur les valeurs de cinq champs pour identifier le même flux de paquets : adresses de la source et de la destination, numéros de port de la source et de la destination, et protocole. Cette identification  implique l'analyse d'en-têtes de niveau 3 pour les adresses et de niveau 4 pour les autres informations. &lt;br /&gt;
&lt;br /&gt;
Avec IPv6, l'identification du flux n'implique plus que le niveau 3. Ainsi, l'identification est faite indépendamment du protocole de niveau 4. Le champ &amp;lt;tt&amp;gt;Identificateur de flux&amp;lt;/tt&amp;gt; peut être rempli avec une valeur aléatoire mais qui doit être unique. La source gardera cette valeur pour tous les paquets qu'elle émettra pour cette application et cette destination. Le traitement est simplifié puisque le routeur n'a plus à consulter cinq champs pour déterminer l'appartenance d'un paquet à un flux, mais un seul. De plus, la confidentialité peut être préservée, les informations concernant les numéros de port peuvent être masquées aux routeurs intermédiaires. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Passage à l'échelle|Le passage à l'échelle désigne la capacité d'un produit ou d'un mécanisme à s'adapter à un changement d'ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande&amp;lt;ref&amp;gt;Wikipedia.[https://fr.wikipedia.org/wiki/Scalability Définition de la scalabilité]&amp;lt;/ref&amp;gt;. Il faut donc comprendre qu'une difficulté à passer à l'échelle signifie que la propriété d'extensibilité n'est pas acquise.}}&lt;br /&gt;
&lt;br /&gt;
À la date de rédaction de ce document, l'utilisation de l'identificateur de flux reste encore floue. Les micro-flux, c'est-à-dire les flux applicatifs, ne sont pas analysés dans le cœur du réseau pour des raisons de passage à l'échelle. De plus, l'idée d'utiliser une étiquette pour acheminer des paquets est déjà utilisée par la technologie MPLS&amp;lt;ref&amp;gt; MultiProtocol Label Switching https://fr.wikipedia.org/wiki/Multiprotocol_Label_Switching &amp;lt;/ref&amp;gt; de l'Internet, ce qui retire tout sens à utiliser ce champ du paquet IPv6 pour cette fonction. Pour l'instant, ce champ peut être vu comme réservé. Son utilisation devra être détaillée dans le futur.&lt;br /&gt;
&lt;br /&gt;
=== Longueur de la charge du paquet (''Payload Length'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la quantité d'octets qui suit l'en-tête du datagramme (en-tête exclu donc), c'est-à-dire la charge du paquet, autrement dit les données. Les éventuelles extensions à l'en-tête IPv6 sont incluses dans ces données. Ce champ, sur 16 bits, peut donc indiquer la taille des données utiles, allant jusqu'à 64 kibioctets (64 * 1024 octets). Pour des paquets dont la taille serait supérieure, ce champ vaut 0 et l'émetteur ajoute une extension d'en-tête de &amp;quot;proche en proche&amp;quot; avec l'option ''jumbogramme'' définie par le RFC 2675. Avec l'option jumbogramme, la quantité de données transportée est codée sur 32 bits. La taille maximale des données utiles du paquet monte alors jusqu'à 4 gibioctets (4* 2^30 octets). Nous reviendrons sur le jumbogramme dans l'activité &amp;quot;Taille des paquets IPv6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== En-tête suivant (''Next Header'')===&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole se trouvant à la suite de l'en-tête IPv6. Il peut s'agir d'un protocole de niveau supérieur (ICMP, UDP, TCP...) ou de la désignation d'une extension (cf. tableau ''Valeurs du champ en-tête suivant pour IPv6'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nombre maximal de sauts (''Hop Limit'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ représente le nombre maximal de routeurs que le paquet peut traverser. Il est initialisé par le nœud source du paquet et, ensuite, décrémenté à chaque routeur traversé. Si la valeur, après décrémentation, atteint 0, le datagramme est supprimé et un message d'erreur ICMPv6 est émis pour la source de ce paquet. Ce champ vise à limiter le nombre de relayages (ou traversées de routeurs) que peut subir un paquet suite à des problèmes dans le réseau comme des boucles de routage. Ainsi, un paquet ne peut pas circuler indéfiniment dans l'Internet.&lt;br /&gt;
Ce champ est à la base de l'outil &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt; pour identifier la suite des routeurs traversés jusqu'à une destination.&lt;br /&gt;
&lt;br /&gt;
La valeur initiale de ce champ, à l'émission du paquet, devrait être donnée dans un document annexe de l'IANA (http://www.iana.org/) ; ce qui permettrait de la modifier en fonction de l'évolution de la topologie du réseau. La valeur n'est pas encore officiellement attribuée mais certaines implantations prennent actuellement la valeur conseillée pour IPv4 : 64. &lt;br /&gt;
&lt;br /&gt;
La valeur par défaut peut être dynamiquement attribuée aux hôtes émetteurs par les annonces des routeurs en configuration automatique. Une modification de ce paramètre sera donc relativement simple quand la limite actuelle sera atteinte. On peut noter une limitation puisque ce champ, codé sur 8 bits, n'autorise la traversée que de 255 routeurs. En réalité, dans l'Internet actuel, le nombre maximal de routeurs traversés est d'une quarantaine, ce qui laisse une bonne marge pour l'évolution du réseau.&lt;br /&gt;
&lt;br /&gt;
=== Adresses source et destination ===&lt;br /&gt;
Ces adresses sont renseignées par le nœud source du paquet pour désigner l'émetteur et le destinataire du paquet. Pour renseigner l'adresse source, l'émetteur choisit de préférence une adresse IPv6 parmi celles configurées sur l'interface utilisée pour transmettre le paquet sur le réseau. Cette adresse est choisie pour avoir une portée compatible avec l'adresse de destination et, ainsi, permettre au destinataire de répondre. Par exemple, il serait problématique d'essayer de joindre un nœud de l'Internet en donnant comme adresse source une adresse ''lien-local''. Le choix de l'adresse source est spécifié dans le RFC 6724.&lt;br /&gt;
&lt;br /&gt;
L'adresse destination, elle aussi, peut être choisie dans la liste des adresses valables pour le destinataire ; liste pouvant provenir de la résolution d'un nom en adresses par le DNS. L'adresse choisie doit être compatible avec la portée des adresses disponibles au niveau de l'émetteur. Par exemple, si l'émetteur ne possède que des adresses de type ULA, et que le destinataire est connu avec des adresses globales et ULA, ces dernières adresses seront à préférer. Le RFC 6724 précise l'algorithme du choix de l'adresse destination.&lt;br /&gt;
&lt;br /&gt;
=== Extensions à l'en-tête IPv6 ===&lt;br /&gt;
L'ajout de nouvelles fonctionnalités est problématique quand l'en-tête est de taille fixe comme c'est le cas d'IPv6. La solution proposée consiste à ajouter des en-têtes spécifiques pour chaque fonctionnalité. &lt;br /&gt;
Les extensions sont ajoutées par le nœud source du paquet pour demander un traitement spécifique à réaliser, soit par les routeurs intermédiaires, soit par le destinataire du paquet.&lt;br /&gt;
Par exemple, si un paquet doit être fragmenté, une extension de fragmentation sera ajoutée par le nœud source afin que le destinataire puisse rassembler les morceaux correctement.&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs types d'extensions selon le traitement demandé. Elles se placent après l'en-tête IPv6 et avant la charge utile du paquet (voir la figure 3). La présence d'une extension est signalée par le champ &amp;lt;tt&amp;gt;En-tête suivant&amp;lt;/tt&amp;gt; (''Next Header'') de l'en-tête IPv6 qui possède alors la valeur correspondant à cette extension. Ainsi, elle est traitée par les routeurs intermédiaires comme un protocole de niveau supérieur à IP. L'utilisation des différents types d'extensions d'en-tête IPv6 sera abordé dans une activité ultérieure de ce cours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig2.jpg|400px|center|thumb|Figure 3: Format d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Evolution de l'en-tête depuis IPv4 ==&lt;br /&gt;
&lt;br /&gt;
Hormis la modification de la taille des adresses, ce qui conduit à une taille d'en-tête de 40 octets (le double d'un en-tête IPv4 sans options), le protocole IP a subi un toilettage&amp;lt;ref&amp;gt;Lee, D.C.; Lough, D.L.; Midkiff, S.F.et al. (1998). IEEE Network, Vol. 12, No. 1, January. The next generation of the Internet: aspects of the Internet protocol version 6.&amp;lt;/ref&amp;gt;, reprenant l'expérience acquise au fil d’une trentaine d’années avec IPv4, défini en 1981 (!) par le RFC 791. Le format des en-têtes IPv6 est ainsi simplifié et permet aux routeurs de meilleures performances dans leurs traitements. L'idée est de retirer du cœur de réseau les traitements compliqués. Les routeurs ne font que retransmettre les paquets vers la destination, les autres traitements sont faits par l'émetteur et le destinataire du paquet.&lt;br /&gt;
&lt;br /&gt;
L'en-tête ne contient plus de contrôle d'erreur (''checksum''), qui devait être ajusté, pour IPv4, par chaque routeur en raison, entre autres, de la décrémentation du champ &amp;lt;tt&amp;gt;durée de vie&amp;lt;/tt&amp;gt;. Par contre, pour éviter qu'un paquet, dont le contenu est erroné -- en particulier sur l'adresse de destination --, ne se glisse dans une autre communication, tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de contrôle d'erreur de bout en bout, incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le contrôle d'erreur d'UDP, facultatif pour IPv4, devient ainsi obligatoire. Pour ICMPv6, le contrôle d'erreur intègre le pseudo-en-tête alors que, pour ICMPv4, il ne portait que sur le message ICMP. &lt;br /&gt;
 &lt;br /&gt;
La fonction de fragmentation a aussi été retirée des routeurs. Les champs de l'en-tête IPv4 qui s'y reportent (&amp;lt;tt&amp;gt;Identification, Drapeau, Place du fragment&amp;lt;/tt&amp;gt;) ont été supprimés. Normalement, les algorithmes de découverte du PMTU (''Path MTU'') évitent d'avoir recours à la fragmentation. Si celle-ci s'avère nécessaire, une extension est prévue et le découpage en fragments est réalisé uniquement au niveau de l'émetteur.&lt;br /&gt;
&lt;br /&gt;
Une autre évolution majeure depuis l'en-tête IPv4 est la spécification des extensions d'en-tête pour remplacer les options. En effet, dans le cas d'IPv4, les options sont incluses dans l'en-tête. Celui-ci est donc de taille variable (taille indiquée dans le champ &amp;lt;tt&amp;gt;Internet Header Length&amp;lt;/tt&amp;gt;), ce qui peut compliquer le traitement dans les routeurs intermédiaires. Les extensions à l'en-tête IPv6 simplifient la mise en œuvre de ces fonctionnalités et permettent de garder la taille de l'en-tête IPv6 fixe à 40 octets.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a présenté l'en-tête IPv6, définissant une nouvelle version du protocole IP. Cette version reprend les caractéristiques communes du protocole IPv4 : des adresses de taille fixe, un en-tête définissant une position fixe pour l'adresse de destination, position de plus alignée en mémoire. L'objectif est d'avoir un traitement simple et donc rapide de l'en-tête dans les routeurs. IPv6 garde donc ces principes et va même plus loin que son prédécesseur IPv4 en reconsidérant des mécanismes jugés coûteux, comme la fragmentation, le ''checksum'' ou les options. Certains de ces mécanismes ont été éliminés dans la nouvelle version du protocole, d'autres remplacés par des mécanismes plus performants. Enfin, nous pouvons signaler ce formulaire qui présente l'essentiel du paquet IPv6 en une seule page&amp;lt;ref&amp;gt;Stretch, J. (2009) packetlife.net. Aide-mémoire tout en une page. [http://packetlife.net/media/library/8/IPv6.pdf IPv6]&amp;lt;/ref&amp;gt;. Ceci peut vous être utile pour la suite.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 791 Internet protocol (IPv4)&lt;br /&gt;
* RFC 1190 Experimental Internet Stream Protocol, Version 2 (ST-II)&lt;br /&gt;
* RFC 1819 Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+&lt;br /&gt;
* RFC 2205 Resource ReSerVation Protocol (RSVP)&lt;br /&gt;
* RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers [http://www.bortzmeyer.org/2474.html Analyse]&lt;br /&gt;
* RFC 2675 IPv6 Jumbograms&lt;br /&gt;
* RFC 6040 Tunnelling of Explicit Congestion Notification&lt;br /&gt;
* RFC 6437 IPv6 Flow Label Specification&lt;br /&gt;
* RFC 6724 Default Address Selection for Internet Protocol version 6 (IPv6) [http://www.bortzmeyer.org/6724.html Analyse]&lt;br /&gt;
* RFC 7098: Using the IPv6 Flow Label for Load Balancing in Server Farms [http://www.bortzmeyer.org/7098.html Analyse]&lt;br /&gt;
* RFC 8200 Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 9098 Operational Implications of IPv6 Packets with Extension Headers [https://www.bortzmeyer.org/9098.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents suivants :&lt;br /&gt;
*RFC 1190 : Experimental Internet Stream Protocol Version 2 (ST-II)&lt;br /&gt;
*RFC 2492 : IPv6 over ATM Networks  (cf page 2)&lt;br /&gt;
*RFC 2597 : An Expedited Forwarding PHB&lt;br /&gt;
*RFC 2598 : Assured Forwarding PHB Group&lt;br /&gt;
*RFC 4594 : Configuration Guidelines for DiffServ Service Classes  &lt;br /&gt;
*RFC 5865 : A Differentiated Services Code Point (DSCP)  for Capacity-Admitted Traffic&lt;br /&gt;
*RFC 6438 : Flow Label for Tunnel ECMP/LAG  (cf page-4)&lt;br /&gt;
*RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
*RFC 6282 : Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks&lt;br /&gt;
*RFC 6775 : Neighbor Discovery Optimization for IPv6 over Low-Power Wireless  Personal Area Networks (6LoWPANs)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Annexe 1: la gestion de la qualité de service ==&lt;br /&gt;
&lt;br /&gt;
L'Internet différencié permet aux fournisseurs d'accès de gérer différemment les congestions qui surviennent dans le réseau. Sans différenciation, les paquets ont la même probabilité de rejet. Avec la différenciation, plusieurs classes de trafic sont définies. Les paquets appartenant aux classes les plus élevées ont une probabilité de rejet plus faible. Bien entendu, pour que l'introduction de telles classes de trafic soit efficace, il faut introduire une gestion des ressources différente pour chacune des classes, et des mécanismes de contrôle pour vérifier que les flux des utilisateurs n'utilisent pas que les classes les plus élevées ou qu'ils ne dépassent pas leur contrat. Par exemple, un client peut établir un contrat de niveau de services appelé SLA (''Service Level Agreement'') avec son fournisseur d’accès. &lt;br /&gt;
&lt;br /&gt;
L'intérêt principal de la différenciation de services est qu'elle ne casse pas le modèle initial de l'Internet (version 4 ou version 6). Les flux sont toujours traités en ''Best Effort'' même si certains sont plus ''Best'' que d'autres. Il n'y a aucune garantie qu'un trafic d'une classe haute arrive à destination, mais la probabilité est plus importante. L'autre intérêt des classes de trafic vient de la possibilité d'agrégation des flux. La classe d'appartenance est indiquée dans l'en-tête du paquet. Les applications peuvent marquer les paquets en fonction de paramètres locaux (flux multimédia, flux interactif, trafic priorisé...). Le fournisseur d'accès qui récupère le trafic n'a plus à se préoccuper des applicatifs. Il vérifie que le trafic d'une classe ne dépasse pas le contrat préalablement établi. &lt;br /&gt;
&lt;br /&gt;
Dans le cœur du réseau, les routeurs prennent en compte les différentes classes. Le fournisseur d'accès devra également passer des accords avec les autres opérateurs pour pouvoir faire transiter les flux avec un traitement approprié. Cet aspect de dimensionnement de réseau et de négociation d'accords d'échange est au coeur du métier d'opérateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour signifier l'appartenance d'un paquet à une certaine classe de trafic, une valeur est renseignée au niveau de l'en-tête IP dans l'octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt; afin qu'elle puisse être analysée par tous les routeurs mettant en œuvre le traitement différencié. Le format de ce champ est rappelé en figure 2.&lt;br /&gt;
&lt;br /&gt;
Le tableau 1 présente les différentes valeurs définies pour le champ DSCP (''Differential Service Code Point''). Les valeurs sont présentées en format binaire avec les 6 bits les plus significatifs de l’octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt;, puis leur conversion en décimal, leur nommage, la probabilité d’écartement, et l’équivalence avec les anciennes valeurs du champ TOS de l’IPv4 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_07_dscp_ipv6_v01.jpg|600px|thumb|center|Tableau 1 : Format du champ DSCP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, deux types de comportement sont standardisés :&lt;br /&gt;
&lt;br /&gt;
* Assured Forwarding [[https://tools.ietf.org/html/rfc2597#page-6 RFC 2597]] : ce comportement définit quatre classes de trafic et trois priorités, suivant que l'utilisateur respecte son contrat, le dépasse légèrement, ou est largement en dehors. Les classes sont donc choisies par l'utilisateur et restent les mêmes tout au long du trajet dans le réseau. La priorité, par contre, peut être modifiée dans le réseau par les opérateurs en fonction du respect ou non des contrats. Par exemple, pour la classe AF n°2, on dispose des 3 priorités suivantes : AF21, AF22 et AF23. Plus le chiffre est élevé, plus la priorité est faible. C'est-à-dire qu'en cas de saturation de cette classe de trafic, les paquets AF23 seront écartés avant AF22, puis AF21.&lt;br /&gt;
* Expedited Forwarding [[https://tools.ietf.org/html/rfc2598#page-1 RFC 2598]] : ce comportement est comparable à un circuit à débit constant réservé dans le réseau. Le trafic est mis en forme à l'entrée du réseau, en retardant l'émission des paquets qui sont hors contrat. En plus de ces comportements, l'octet DS a gardé, pour des raisons de compatibilité avec les équipements existants, les valeurs du bit ToS qui étaient le plus fréquemment utilisées.  La valeur est 0xB8 (1011 1000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 46 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Voice Admit : cette autre valeur a été par la suite proposée dans le [https://tools.ietf.org/html/rfc5865#page-10 RFC 5865] pour affiner le traitement de flux ''temps réel'' de différentes natures : voix, vidéo, signalisation ''temps réel''… (La valeur est 0xB0 soit 1011 0100 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 44 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Network Control : autre particularité : la valeur 0xE0 (1110 0000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 56 en décimal) correspond à CS7, la classe de contrôle du réseau (''Network Control''). Elle est utilisée dans des mises en œuvre d'IPv6 pour l'émission de certains paquets ICMPv6. Cette valeur est dépréciée. Il est conseillé d'utiliser la valeur CS6 comme spécifié dans le [https://tools.ietf.org/html/rfc4594#section-3 RFC 4594].&lt;br /&gt;
&lt;br /&gt;
=== Références bibliographiques ===&lt;br /&gt;
* RFC 2597 Assured Forwarding PHB Group&lt;br /&gt;
* RFC 2598  An Expedited Forwarding PHB&lt;br /&gt;
* RFC 4594 Configuration Guidelines for DiffServ Service Classes&lt;br /&gt;
* RFC 5865 A Differentiated Services Code Point (DSCP) for Capacity-Admitted Traffic&lt;br /&gt;
&lt;br /&gt;
== Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Les extensions de l'en-tête IPv6 visent à ajouter des fonctionnalités supplémentaires à l'acheminement d'un paquet dans l'Internet. Ces extensions vont impliquer le traitement de ces fonctionnalités au niveau réseau, soit par le destinataire du paquet IPv6, soit par les routeurs intermédiaires en charge de l’acheminement du paquet IPv6.&lt;br /&gt;
&lt;br /&gt;
De nombreuses extensions ont été définies, afin d'assurer des fonctions comme  le routage par la source, la gestion de la fragmentation, la confidentialité des communications (mécanisme ''ipsec''), etc. &lt;br /&gt;
&lt;br /&gt;
Le mécanisme d'extension de l'en-tête IPv6 est assez souple pour pouvoir inclure d'autres fonctionnalités futures. Dans cette activité, nous allons nous intéresser au principe du traitement des extensions au moyen d'exemples simples et démonstratifs de ce mécanisme.&lt;br /&gt;
&lt;br /&gt;
== Principe des extensions IPv6==&lt;br /&gt;
&lt;br /&gt;
Les extensions peuvent être vues comme un protocole 3.5, entre les couches 3 (réseau) et 4 (transport) du modèle OSI. En effet, à part l'extension de proche-en-proche, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (i.e. celui spécifié dans le champ adresse de destination du paquet IPv6).&lt;br /&gt;
Une extension a une longueur multiple de 8 octets (64 bits). Elle commence par un champ &amp;lt;tt&amp;gt;Next header&amp;lt;/tt&amp;gt; qui définit, sur un octet, le type d'extension ou de protocole qui suit. Pour les extensions de longueur variable, l'octet suivant contient la longueur de l'extension en mots de 8 octets, le premier mot n'étant pas compté. Par exemple, une extension de 16 octets aura une longueur de 1.&lt;br /&gt;
&lt;br /&gt;
Si, d'un point de vue théorique, les extensions sont supérieures aux options d'IPv4, dans la réalité très peu sont utilisées à grande échelle et restent du domaine de la recherche.&lt;br /&gt;
&lt;br /&gt;
'''''Nota :''''' ''dans la pratique, l'extension la plus couramment rencontrée est probablement l'option de fragmentation à la source. En effet, certains protocoles applicatifs sur UDP, tel que NFS, supposant que la fragmentation existe au niveau réseau, produisent des messages de taille quelconque sans se soucier du MTU. Comme il n'est pas envisageable de modifier ces applications largement déployées, la couche réseau IPv6 doit être capable de gérer la fragmentation. IPv6 impose simplement que cette dernière se fasse à la source.''&lt;br /&gt;
&lt;br /&gt;
Une présentation illustrée des extensions IPv6 peut être consultée sur le site de Cisco&amp;lt;ref&amp;gt;Cisco (2006) White paper.[http://www.cisco.com/en/US/technologies/tk648/tk872/technologies_white_paper0900aecd8054d37d.html IPv6 Extension Headers Review and Considerations]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Le champ ''Next Header'' ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_ipv6_header_next-header_v02.jpg|thumb|right|300px|Figure 1 : Localisation du champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; dans l'en-tête IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; de l'en-tête IPv6, comme illustré sur la figure 1, identifie généralement le protocole de niveau supérieur comme, par exemple, le transport TCP/UDP. Mais, dans le cas des extensions, plusieurs mécanismes particuliers sont également disponibles parmi la liste suivante :&lt;br /&gt;
&amp;lt;center&amp;gt;{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intégration des extensions d’en-tête dans le paquet IPv6==&lt;br /&gt;
Quand il y a plusieurs extensions dans un même datagramme, les extensions sont placées selon un ordre qui dépend de leur portée : &lt;br /&gt;
* extensions impliquant tous les routeurs intermédiaires : ''Hop-by-Hop'' ;&lt;br /&gt;
* extensions impliquant seulement certains routeurs désignés : ''Routing'' ;&lt;br /&gt;
* extension impliquant le destinataire : ''Authentication'', ''Encapsulating Security Payload'', Fragmentation, Destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La figure 2 montre la souplesse avec laquelle plusieurs extensions peuvent être chaînées. Chaque extension contient dans son en-tête un champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; et un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;. Le premier paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur ICMPv6. Le second paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur TCP. Le troisième paquet contient une extension de protection qui pointe ensuite sur UDP. Dans le dernier paquet, une extension de routage, qui pointe sur une extension de fragmentation, pointe finalement sur ICMPv6. &lt;br /&gt;
* L'enchaînement des extensions se fait dans un ordre bien déterminé. Par exemple, une extension concernant tous les routeurs sur le chemin (''Hop-by-Hop'') devra forcément se trouver en première position. Si elle se trouvait à la suite d'une extension ''Destination'', elle ne pourrait être lue, l'extension ''Destination'' n'étant interprétée que par le destinataire du paquet.&lt;br /&gt;
* Si cet enchaînement d'extension offre beaucoup plus de souplesse que les options d'IPv4, il rend difficile la lecture des numéros de port. Il faut en effet lire tout l'enchaînement d'extension pour arriver au protocole de niveau 4. Ceci a servi de justification à l'identificateur de flux qui permettait de refléter au niveau 3 un flux particulier et évitait de dérouler l'enchaînement. Bien entendu, les pare-feux devront vérifier les numéros de ports. &lt;br /&gt;
* Les extensions peuvent être vues comme un protocole 3.5 (entre la couche 3 et la couche 4). En effet, à part l'extension de &amp;quot;proche en proche&amp;quot;, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (''i.e.'' celui spécifié dans le champ &amp;lt;tt&amp;gt;adresse de destination&amp;lt;/tt&amp;gt; du paquet IPv6). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_10_extensions_IPv6_v01.jpg|thumb|center|600px|Figure 2 : Enchaînement d'extensions.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques exemples ==&lt;br /&gt;
&lt;br /&gt;
=== Fragmentation ===&lt;br /&gt;
&lt;br /&gt;
Nous avons vu la fragmentation en détail lors de l'activité consacrée à la taille des paquets IPv6. Les points essentiels à rappeler sont que la fragmentation en IPv6 est une fonction d'hôtes exclusivement, et que par souci d'efficacité, l'adaptation de la taille de l'unité de données applicatives en unité de transfert est du ressort de la couche de transport. Cependant, lorsque ce n'est pas possible, en dernier ressort, la fragmentation est faite par IPv6.  Les informations pour la fragmentation sont placées dans une extension d'en-tête IPv6 identifiée par la valeur 44.&lt;br /&gt;
D'un point de vue du codage, l'en-tête et les extensions qui concernent les routeurs intermédiaires (pour l'instant &amp;quot;proche en proche&amp;quot; et &amp;quot;routage par la source&amp;quot;) sont recopiées dans chaque fragment, tandis que les autres extensions et l'en-tête de niveau 4 ne seront présents que dans le premier fragment.&lt;br /&gt;
&lt;br /&gt;
La fragmentation en IPv4 n'est pas très performante. Quand un routeur ne peut pas transmettre un paquet à cause de sa trop grande taille, il doit le transmettre en fragments. Comme l'Internet n'est pas fiable, un fragment peut se perdre. Le destinataire ne peut rassembler les fragments. Cela revient à perdre tous les fragments. Il est donc plus efficace de faire les fragments avant la couche IP. Ainsi le fragment devient un paquet IP à la bonne taille. Maintenant, en cas de perte, seul le paquet perdu sera retransmis, évitant ainsi la retransmission de gros blocs de données.&lt;br /&gt;
&lt;br /&gt;
Il est plus intéressant d'adapter la taille des paquets à l'émission. Ceci est fait en utilisant les techniques de découverte du MTU (voir RFC 8201 : Mécanisme de découverte du PMTU). En pratique, une taille de paquets de MTU 1280 octets est une bonne garantie d'acheminement du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Extensions d'authentification (AH) et de confidentialité (ESP) ===&lt;br /&gt;
&lt;br /&gt;
L'extension d'authentification (AH : Authentication Header) décrite dans le RFC 4302 permet de s'assurer que l'émetteur du message est bien celui qu'il prétend être. Elle sert aussi au contrôle d'intégrité pour garantir au récepteur que personne n'a modifié le contenu d'un message lors de son transfert sur le réseau. Elle peut optionnellement être utilisée pour détecter les rejeux.&lt;br /&gt;
&lt;br /&gt;
Le principe de l'authentification est relativement simple. L'émetteur calcule un authentificateur sur un datagramme et l'émet avec le datagramme sur lequel il porte. Le récepteur récupère cette valeur et vérifie qu'elle est correcte. Si un code d'authentification de message &amp;lt;ref&amp;gt;Code d'authentification de message, [https://fr.wikipedia.org/wiki/Code_d%27authentification_de_message Article Wikipedia]&amp;lt;/ref&amp;gt; est utilisé, il suffit au récepteur de calculer de son côté le code sur le même datagramme à l'aide de la clé symétrique partagée et de le comparer avec le code reçu. Si le mécanisme de signature numérique est employé, le récepteur doit alors récupérer la signature, la déchiffrer avec la clé publique de l'émetteur et comparer le condensat ainsi obtenu avec celui calculé de son côté sur le datagramme reçu. Si les deux codes, ou les deux condensats diffèrent, soit l'émetteur ne possède pas la bonne clé, soit le message a subi des modifications en chemin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'extension ESP ''Encapsulating Security Payload'' décrite dans le RFC 4303 permet de chiffrer l'ensemble des paquets ou leur partie transport et de garantir l'authentification et l'intégrité de ces paquets. Cette extension permet optionnellement de détecter les rejeux (à condition que le service d'authentification soit assuré) et garantit de façon limitée la confidentialité du flux.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir ces services de sécurité, il est nécessaire, avant d'émettre un paquet IP sur le réseau, de chiffrer les données à protéger, de calculer un authentificateur, et d'encapsuler ces informations dans l'en-tête de confidentialité ESP. Cela nécessite bien entendu l'existence d'une association de sécurité précisant, entre autres, le ou les algorithmes de chiffrement, la ou les clés, et un indice de paramètres de sécurité. Pour en savoir plus sur les extensions de sécurité, nous renvoyons le lecteur vers le livre&amp;lt;ref&amp;gt;G. Cizault. livre &amp;quot;IPv6, Théorie et Pratique&amp;quot;. [http://livre.g6.asso.fr/index.php/S%C3%A9curit%C3%A9 Chapitre sur la Sécurité]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Segment Routing Header (SRH) ===&lt;br /&gt;
&lt;br /&gt;
Cette extension est une des briques qui permet la mise en œuvre de l'ingénierie de trafic et de la qualité de service dans les réseaux IPv6. Certaines applications ont besoin que le délai, le taux de perte des paquets et le débit ne dépassent pas un certain seuil. Par exemple, une session de vidéo-conférence peut nécessiter que le délai de bout en bout reste inférieur à 100 ms, que le débit disponible soit au minimum de 2 Mbit/s et que le taux de perte reste inférieur à 1 %. La solution habituellement mise en œuvre pour le respect de ces métriques de qualité de service est RSVP-TE&amp;lt;ref&amp;gt;Packet Pushers, novembre 2016.[http://packetpushers.net/rsvp-te-protocol-deep-dive/ Deep dive in the RSVP-TE protocol]&amp;lt;/ref&amp;gt;. RSVP est un protocole de réservation de ressources sur les routeurs du chemin entre une source et une destination. La composante d'ingénierie de trafic permet notamment de choisir explicitement le chemin qui sera suivi par le paquet. Lorsqu'une application a besoin de réserver des ressources, un circuit MPLS est établi et le protocole RSVP réserve les ressources sur l'ensemble des routeurs qui composent le chemin. La figure 4 résume ce comportement : le nœud A est la source du flot de vidéo-conférence destiné à B. Elle demande l'installation d'un chemin via MPLS. Le contrôleur détermine que le chemin le plus adapté est celui transitant par G,H,I,K,N source de vidéo-conférence. Elle effectue ensuite une réservation de ressource via RSVP. Chacun des routeurs G,H,I,K,N doit accepter la requête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp2.png|thumb|center|600px|Figure 4 : Exemple d'utilisation de RSVP-TE pour assurer la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'inconvénient de cette méthode est qu'avec RSVP, les réservations doivent être fréquemment renouvelées et les routeurs doivent garder des états relatifs à chacun des flots. À chaque fois qu'un routeur reçoit un paquet, il doit chercher dans la liste des flots le comportement à y associer. Cela limite le passage à l'échelle (le nombre de flots supportés). De plus, l'établissement des circuits MPLS est coûteux en temps, en états, et en communication. Pour finir, si un des nœuds ou des liens qui compose le chemin n'est plus disponible, le temps requis pour établir un nouveau chemin peut être trop important face aux besoins des flots &amp;lt;ref&amp;gt;Cisco, [http://www.segment-routing.net/tutorials/2017-03-06-segment-routing-traffic-engineering-srte/ SR Traffic Engineering]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le concept de ''segment routing'' a été proposé pour palier ces désavantages. Il permet de réduire l'intelligence des nœuds du réseau. Un contrôleur choisit le chemin qui respecte les besoins de qualité de service du nœud. Le chemin à suivre ainsi que le traitement à associer aux paquets sont ensuite explicitement listés dans leurs en-têtes. Ces traitements à appliquer au paquet sont appelées segments. Un segment peut être l'adresse d'un routeur par lequel le paquet devra transiter, un lien à emprunter ou encore un service fourni par le routeur sur lequel transite le paquet. La séquence de segments que doit suivre le paquet peut être implémentée via une liste de labels MPLS ou, dans le cas d'un réseau IPv6, via l'option ''Segment Routing'' de l'en-tête &amp;lt;ref&amp;gt; Previdi &amp;amp; al. [https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-06 IPv6 Segment Routing Header (SRH) (Draft)]&amp;lt;/ref&amp;gt;. Contrairement à MPLS, le ''segment routing'' avec IPv6 ne requière pas que tous les nœuds traversés par le paquet soient compatibles avec cette option. Cela permet un déploiement progressif et la traversée de plusieurs types de réseaux. Notons qu'il n'est pas nécessaire d'inscrire l'intégralité du chemin dans la liste. Les règles de routage classique de l'IGP s'appliquent jusqu'au prochain nœud explicitement listé dans l'en-tête. Dans le cas de la figure 5, pour suivre le chemin G,H,I,K,N, il est seulement nécessaire d'ajouter I et B dans la liste. Lorsque le paquet est généré par A, l'adresse de destination est celle de I. Lorsque le paquet atteint I, l'adresse de destination est remplacée par la prochaine dans la liste ; c'est-à-dire B. Le paquet suit le plus court chemin entre I et B ; en l’occurrence I,K,N. Le surcoût induit par la taille de l'extension de l'en-tête est donc limité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp.png|thumb|center|600px|Figure 5 : Exemple d'utilisation du ''Segment Routing'' pour l'ingénierie de trafic et la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le projet de RFC prévoit qu'un segment soit représenté sur 128 bits ; c'est-à-dire autant qu'une adresse IPv6. Le nombre de segments inclus dans l'option SRH peut être déduit du champ &amp;lt;tt&amp;gt;Hdr Ext Len&amp;lt;/tt&amp;gt; qui indique le nombre d'octets de l'option moins un. Le prochain segment à appliquer est indiqué par le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; qui indique le nombre de segments restant à appliquer au paquet. Le segment courant est inscrit dans le champ adresse de destination de l'en-tête IPv6. Lorsque le traitement associé à un segment est achevé, le prochain segment à traiter est copié dans le champ adresse de destination et le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; est décrementé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_IPv6_extension_routage_v02.jpg|thumb|center|400px|Figure 6 : Extension de routage par la source.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'extension SRH est très proche de l'en-tête de routage défini dans le RFC 8200 de IPv6. L'en-tête de routage devait notamment permettre le routage à la source (voir la figure 6) qui consiste à lister les routeurs que devaient traverser le paquet au cours de son acheminement. Cette pratique a été dépréciée en 2007 par le RFC 5095 pour des raisons de sécurité. En effet cela permettait de générer de la congestion sur certains chemins, des attaques de déni de service, des contournements des règles de filtrages de certains pare-feux ou encore d'utiliser des machines publiques accessibles (en DMZ) pour accéder à des machines privées. &amp;lt;ref&amp;gt;P.  Biondi et A. Ebalard, CanSecWest,  2017 .[http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf IPv6 Routing Header Security]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour être acceptée, l'extension SRH doit donc garantir qu'elle ne serait pas vulnérable à ces attaques. Plusieurs cas d'utilisation sont décrits. Lorsque l'extension SRH est générée au sein du réseau de l'opérateur (i.e. routeur de bordure), les attaques listées dans le RFC 5095 sont inopérantes. Les routeurs de bordures doivent simplement filtrer les paquets provenant de l'extérieur pour éviter que des hôtes s'attribuent des privilèges ou provoquent de la congestion sur certains liens. Lorsque les SRH sont générées en dehors du réseau de l'opérateur, le projet de RFC prévoit l'utilisation d'un mécanisme d'authentification de l'en-tête défini par le RFC 2104 (option HMAC). La clé de chiffrement de l'en-tête HMAC est distribuée au sein des nœuds autorisés à générer ou manipuler des extensions d'en-têtes SRH.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Cette activité vous a décrit les différents mécanismes qui enrichissent les fonctions disponibles au niveau de la couche réseau : routage, fragmentation, sécurité, etc. Ces mécanismes tirent parti de la possibilité d'ajouter des champs supplémentaires à l'en-tête IPv6 grâce aux extensions d'en-tête. Ces extensions sont ajoutées par les extrémités de la communication et sont transparentes pour les routeurs (exception faite des extensions de type ''Hop-by-Hop''). De plus, le mécanisme de chainage par le champ ''Next Header'' permet d'ajouter des extensions de manière souple.&lt;br /&gt;
&lt;br /&gt;
L'usage des extensions est encore assez limité sur l'Internet. Certaines fonctionnalités ont été dépréciées (comme l'extension de routage RH0) et d'autres peinent à se développer (comme la mobilité IPv6). La présence potentielle de ces extensions doit être cependant prise en compte dans le traitement des paquets, notamment le filtrage sur les valeurs du champ ''Next Header'' de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents de ce paragraphe.&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
&lt;br /&gt;
* RFC 4302 : IP Authentication Header&lt;br /&gt;
* RFC 4303 : IP Encapsulating Security Payload (ESP)&lt;br /&gt;
* RFC 5095 : Deprecation of Type 0 Routing Headers in IPv6 Specification [http://www.bortzmeyer.org/5095.html Analyse]&lt;br /&gt;
* RFC 7045 : Transmission and Processing of IPv6 Extension Headers [http://www.bortzmeyer.org/7045.html Analyse]&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World [http://www.bortzmeyer.org/7872.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20072</id>
		<title>MOOC:Compagnon Act21-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20072"/>
				<updated>2022-02-18T16:41:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Activité 21: L’en-tête IPv6 =&lt;br /&gt;
&amp;lt;!-- = Activité 21: Le format de l’en-tête IPv6 = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Comme rappelé en introduction de la séquence, la fonction principale du protocole IP est d'acheminer un paquet d'un point à un autre de l'Internet. Un paquet se définit comme une unité de transfert dans un réseau. Il est  composé d'un bloc de données de taille variable mais limitée et identifié par un en-tête. Le mode d'acheminement par datagramme, utilisé dans l'Internet, impose que chaque paquet soit traité indépendamment, sans avoir besoin d'informations issues d'autres paquets déjà transmis. L'en-tête IP doit donc comporter toutes les informations pour réaliser cet acheminement. C'est la raison pour laquelle chaque paquet doit contenir l'adresse globale du nœud source ainsi que celle du nœud de destination du paquet. Pour marquer cette spécificité, ces paquets auto-descriptifs sont appelés des datagrammes.&lt;br /&gt;
&lt;br /&gt;
L'adresse du destinataire est fondamentale pour le routage du paquet effectué par les nœuds intermédiaires. C'est en effet à partir de cette adresse que le nœud décide vers quelle interface le paquet doit sortir. La lecture de l'adresse du destinataire dans l'en-tête IP est donc une étape cruciale pour la performance globale de l'acheminement du paquet. Afin d'accélérer cette étape, deux principes ont été appliqués dans la spécification de l'en-tête IP : &lt;br /&gt;
* une adresse IP est de taille fixe, permettant ainsi d'être récupérée dans l'en-tête directement en lisant un nombre de bits prédéterminé, sans avoir à lire ni interpréter au préalable un champ de longueur d'adresse ;&lt;br /&gt;
* l'adresse IP destination est à un emplacement fixe dans l'en-tête, emplacement aligné en mémoire, facilitant ainsi son extraction de l'en-tête par un simple décalage en mémoire, qui est une opération simple au niveau matériel.&lt;br /&gt;
&lt;br /&gt;
== Format de l'en-tête du datagramme IPv6 ==&lt;br /&gt;
Le format d'en-tête du datagramme IPv6 est spécifié par le RFC 8200 (page 5). Cet en-tête, avec les champs le composant, est représenté par la figure 1. L'en-tête IPv6 est de taille fixe et se compose de 5 mots de 64 bits (contre 5 mots de 32 bits pour IPv4). La taille de l'en-tête IPv6 est donc de 40 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig1.png|400px|thumb|center|Figure 1 : Format de l'en-tête d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signification des champs de l'en-tête ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; est au même emplacement et de même longueur, quelle que soit la version du protocole IP (IPv4 ou IPv6). Cette similarité permet de vérifier que le paquet reçu est au format attendu.  Dans le cas d'IPv6, sa valeur est de 6 ; elle est de 4 pour IPv4. Le numéro de version 5 avait déjà été attribué au protocole Stream qui finalement n'a pas eu le succès attendu [RFC 1190, RFC 1819].&lt;br /&gt;
&lt;br /&gt;
=== Classe de trafic (''Traffic Class'') ===&lt;br /&gt;
Dans la version du document de spécification du protocole IPv6 [RFC 8200], le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt;, sur 8 bits reprend la spécification pour le codage de la différenciation de services [http://tools.ietf.org/html/rfc2474#page6 RFC 2474].&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt; est défini de façon similaire au champ &amp;lt;tt&amp;gt;Differentiated Services&amp;lt;/tt&amp;gt; (DS, ou ''DiffServ'') de l'en-tête IPv4, qui a lui-même pris la place de l'octet &amp;lt;tt&amp;gt;Type of Service&amp;lt;/tt&amp;gt; de la spécification initiale d'IPv4. Ce champ est découpé en deux parties (cf. figure 2). Le sous-champ DSCP (''Differentiated Services Code Point'') contient les valeurs identifiant les différents traitements demandés aux routeurs. La valeur par défaut 000000 correspond au service classique dit ''au mieux'' (ou ''best effort''). Les deux derniers bits du champ, notés ECN (''Explicit congestion Notification''), servent aux routeurs à rapporter un risque de congestion [RFC 8311].&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_10_TrafficClass.jpg|200px|thumb|center|Figure 2 : Format de l'octet &amp;lt;tt&amp;gt;classe de trafic&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour le lecteur qui veut en savoir plus, l'[[#Annexe_1:_la_gestion_de_la_qualit.C3.A9_de_service|annexe 1]] décrit l'utilisation du champ classe de trafic dans l'objectif de fournir des services de transfert à qualité différente.&lt;br /&gt;
&lt;br /&gt;
=== Identificateur de flux (''Flow Label'') ===&lt;br /&gt;
Ce champ, contient un numéro unique, choisi par la source, pour identifier le flux de données d'une application comme par exemple l'ensemble des paquets d'une application de voix sur IP. L'unicité de l'identificateur de flux se comprend dans le contexte de l'adresse source. L'utilisation de ce champ est  spécifiée  par le RFC 6437.&lt;br /&gt;
&lt;br /&gt;
Ce champ vise à faciliter la classification des flux par les routeurs afin de différencier le traitement des  paquets et donc notamment la mise en œuvre des fonctions de qualité de service.  Les datagrammes d'un même flux ayant un même identifiant, le routeur peut alors les reconnaitre et leur appliquer un traitement particulier comme le choix d'une route ou une priorité à l'accès à la transmission. &lt;br /&gt;
&lt;br /&gt;
Habituellement, les routeurs se basent sur les valeurs de cinq champs pour identifier le même flux de paquets : adresses de la source et de la destination, numéros de port de la source et de la destination, et protocole. Cette identification  implique l'analyse d'en-têtes de niveau 3 pour les adresses et de niveau 4 pour les autres informations. &lt;br /&gt;
&lt;br /&gt;
Avec IPv6, l'identification du flux n'implique plus que le niveau 3. Ainsi, l'identification est faite indépendamment du protocole de niveau 4. Le champ &amp;lt;tt&amp;gt;Identificateur de flux&amp;lt;/tt&amp;gt; peut être rempli avec une valeur aléatoire mais qui doit être unique. La source gardera cette valeur pour tous les paquets qu'elle émettra pour cette application et cette destination. Le traitement est simplifié puisque le routeur n'a plus à consulter cinq champs pour déterminer l'appartenance d'un paquet à un flux, mais un seul. De plus, la confidentialité peut être préservée, les informations concernant les numéros de port peuvent être masquées aux routeurs intermédiaires. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Passage à l'échelle|Le passage à l'échelle désigne la capacité d'un produit ou d'un mécanisme à s'adapter à un changement d'ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande&amp;lt;ref&amp;gt;Wikipedia.[https://fr.wikipedia.org/wiki/Scalability Définition de la scalabilité]&amp;lt;/ref&amp;gt;. Il faut donc comprendre qu'une difficulté à passer à l'échelle signifie que la propriété d'extensibilité n'est pas acquise.}}&lt;br /&gt;
&lt;br /&gt;
À la date de rédaction de ce document, l'utilisation de l'identificateur de flux reste encore floue. Les micro-flux, c'est-à-dire les flux applicatifs, ne sont pas analysés dans le cœur du réseau pour des raisons de passage à l'échelle. De plus, l'idée d'utiliser une étiquette pour acheminer des paquets est déjà utilisée par la technologie MPLS&amp;lt;ref&amp;gt; MultiProtocol Label Switching https://fr.wikipedia.org/wiki/Multiprotocol_Label_Switching &amp;lt;/ref&amp;gt; de l'Internet, ce qui retire tout sens à utiliser ce champ du paquet IPv6 pour cette fonction. Pour l'instant, ce champ peut être vu comme réservé. Son utilisation devra être détaillée dans le futur.&lt;br /&gt;
&lt;br /&gt;
=== Longueur de la charge du paquet (''Payload Length'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la quantité d'octets qui suit l'en-tête du datagramme (en-tête exclu donc), c'est-à-dire la charge du paquet, autrement dit les données. Les éventuelles extensions à l'en-tête IPv6 sont incluses dans ces données. Ce champ, sur 16 bits, peut donc indiquer la taille des données utiles, allant jusqu'à 64 kibioctets (64 * 1024 octets). Pour des paquets dont la taille serait supérieure, ce champ vaut 0 et l'émetteur ajoute une extension d'en-tête de &amp;quot;proche en proche&amp;quot; avec l'option ''jumbogramme'' définie par le RFC 2675. Avec l'option jumbogramme, la quantité de données transportée est codée sur 32 bits. La taille maximale des données utiles du paquet monte alors jusqu'à 4 gibioctets (4* 2^30 octets). Nous reviendrons sur le jumbogramme dans l'activité &amp;quot;Taille des paquets IPv6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== En-tête suivant (''Next Header'')===&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole se trouvant à la suite de l'en-tête IPv6. Il peut s'agir d'un protocole de niveau supérieur (ICMP, UDP, TCP...) ou de la désignation d'une extension (cf. tableau ''Valeurs du champ en-tête suivant pour IPv6'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nombre maximal de sauts (''Hop Limit'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ représente le nombre maximal de routeurs que le paquet peut traverser. Il est initialisé par le nœud source du paquet et, ensuite, décrémenté à chaque routeur traversé. Si la valeur, après décrémentation, atteint 0, le datagramme est supprimé et un message d'erreur ICMPv6 est émis pour la source de ce paquet. Ce champ vise à limiter le nombre de relayages (ou traversées de routeurs) que peut subir un paquet suite à des problèmes dans le réseau comme des boucles de routage. Ainsi, un paquet ne peut pas circuler indéfiniment dans l'Internet.&lt;br /&gt;
Ce champ est à la base de l'outil &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt; pour identifier la suite des routeurs traversés jusqu'à une destination.&lt;br /&gt;
&lt;br /&gt;
La valeur initiale de ce champ, à l'émission du paquet, devrait être donnée dans un document annexe de l'IANA (http://www.iana.org/) ; ce qui permettrait de la modifier en fonction de l'évolution de la topologie du réseau. La valeur n'est pas encore officiellement attribuée mais certaines implantations prennent actuellement la valeur conseillée pour IPv4 : 64. &lt;br /&gt;
&lt;br /&gt;
La valeur par défaut peut être dynamiquement attribuée aux hôtes émetteurs par les annonces des routeurs en configuration automatique. Une modification de ce paramètre sera donc relativement simple quand la limite actuelle sera atteinte. On peut noter une limitation puisque ce champ, codé sur 8 bits, n'autorise la traversée que de 255 routeurs. En réalité, dans l'Internet actuel, le nombre maximal de routeurs traversés est d'une quarantaine, ce qui laisse une bonne marge pour l'évolution du réseau.&lt;br /&gt;
&lt;br /&gt;
=== Adresses source et destination ===&lt;br /&gt;
Ces adresses sont renseignées par le nœud source du paquet pour désigner l'émetteur et le destinataire du paquet. Pour renseigner l'adresse source, l'émetteur choisit de préférence une adresse IPv6 parmi celles configurées sur l'interface utilisée pour transmettre le paquet sur le réseau. Cette adresse est choisie pour avoir une portée compatible avec l'adresse de destination et, ainsi, permettre au destinataire de répondre. Par exemple, il serait problématique d'essayer de joindre un nœud de l'Internet en donnant comme adresse source une adresse ''lien-local''. Le choix de l'adresse source est spécifié dans le RFC 6724.&lt;br /&gt;
&lt;br /&gt;
L'adresse destination, elle aussi, peut être choisie dans la liste des adresses valables pour le destinataire ; liste pouvant provenir de la résolution d'un nom en adresses par le DNS. L'adresse choisie doit être compatible avec la portée des adresses disponibles au niveau de l'émetteur. Par exemple, si l'émetteur ne possède que des adresses de type ULA, et que le destinataire est connu avec des adresses globales et ULA, ces dernières adresses seront à préférer. Le RFC 6724 précise l'algorithme du choix de l'adresse destination.&lt;br /&gt;
&lt;br /&gt;
=== Extensions à l'en-tête IPv6 ===&lt;br /&gt;
L'ajout de nouvelles fonctionnalités est problématique quand l'en-tête est de taille fixe comme c'est le cas d'IPv6. La solution proposée consiste à ajouter des en-têtes spécifiques pour chaque fonctionnalité. &lt;br /&gt;
Les extensions sont ajoutées par le nœud source du paquet pour demander un traitement spécifique à réaliser, soit par les routeurs intermédiaires, soit par le destinataire du paquet.&lt;br /&gt;
Par exemple, si un paquet doit être fragmenté, une extension de fragmentation sera ajoutée par le nœud source afin que le destinataire puisse rassembler les morceaux correctement.&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs types d'extensions selon le traitement demandé. Elles se placent après l'en-tête IPv6 et avant la charge utile du paquet (voir la figure 3). La présence d'une extension est signalée par le champ &amp;lt;tt&amp;gt;En-tête suivant&amp;lt;/tt&amp;gt; (''Next Header'') de l'en-tête IPv6 qui possède alors la valeur correspondant à cette extension. Ainsi, elle est traitée par les routeurs intermédiaires comme un protocole de niveau supérieur à IP. L'utilisation des différents types d'extensions d'en-tête IPv6 sera abordé dans une activité ultérieure de ce cours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig2.jpg|400px|center|thumb|Figure 3: Format d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Evolution de l'en-tête depuis IPv4 ==&lt;br /&gt;
&lt;br /&gt;
Hormis la modification de la taille des adresses, ce qui conduit à une taille d'en-tête de 40 octets (le double d'un en-tête IPv4 sans options), le protocole IP a subi un toilettage&amp;lt;ref&amp;gt;Lee, D.C.; Lough, D.L.; Midkiff, S.F.et al. (1998). IEEE Network, Vol. 12, No. 1, January. The next generation of the Internet: aspects of the Internet protocol version 6.&amp;lt;/ref&amp;gt;, reprenant l'expérience acquise au fil d’une trentaine d’années avec IPv4, défini en 1981 (!) par le RFC 791. Le format des en-têtes IPv6 est ainsi simplifié et permet aux routeurs de meilleures performances dans leurs traitements. L'idée est de retirer du cœur de réseau les traitements compliqués. Les routeurs ne font que retransmettre les paquets vers la destination, les autres traitements sont faits par l'émetteur et le destinataire du paquet.&lt;br /&gt;
&lt;br /&gt;
L'en-tête ne contient plus de contrôle d'erreur (''checksum''), qui devait être ajusté, pour IPv4, par chaque routeur en raison, entre autres, de la décrémentation du champ &amp;lt;tt&amp;gt;durée de vie&amp;lt;/tt&amp;gt;. Par contre, pour éviter qu'un paquet, dont le contenu est erroné -- en particulier sur l'adresse de destination --, ne se glisse dans une autre communication, tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de contrôle d'erreur de bout en bout, incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le contrôle d'erreur d'UDP, facultatif pour IPv4, devient ainsi obligatoire. Pour ICMPv6, le contrôle d'erreur intègre le pseudo-en-tête alors que, pour ICMPv4, il ne portait que sur le message ICMP. &lt;br /&gt;
 &lt;br /&gt;
La fonction de fragmentation a aussi été retirée des routeurs. Les champs de l'en-tête IPv4 qui s'y reportent (&amp;lt;tt&amp;gt;Identification, Drapeau, Place du fragment&amp;lt;/tt&amp;gt;) ont été supprimés. Normalement, les algorithmes de découverte du PMTU (''Path MTU'') évitent d'avoir recours à la fragmentation. Si celle-ci s'avère nécessaire, une extension est prévue et le découpage en fragments est réalisé uniquement au niveau de l'émetteur.&lt;br /&gt;
&lt;br /&gt;
Une autre évolution majeure depuis l'en-tête IPv4 est la spécification des extensions d'en-tête pour remplacer les options. En effet, dans le cas d'IPv4, les options sont incluses dans l'en-tête. Celui-ci est donc de taille variable (taille indiquée dans le champ &amp;lt;tt&amp;gt;Internet Header Length&amp;lt;/tt&amp;gt;), ce qui peut compliquer le traitement dans les routeurs intermédiaires. Les extensions à l'en-tête IPv6 simplifient la mise en œuvre de ces fonctionnalités et permettent de garder la taille de l'en-tête IPv6 fixe à 40 octets.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a présenté l'en-tête IPv6, définissant une nouvelle version du protocole IP. Cette version reprend les caractéristiques communes du protocole IPv4 : des adresses de taille fixe, un en-tête définissant une position fixe pour l'adresse de destination, position de plus alignée en mémoire. L'objectif est d'avoir un traitement simple et donc rapide de l'en-tête dans les routeurs. IPv6 garde donc ces principes et va même plus loin que son prédécesseur IPv4 en reconsidérant des mécanismes jugés coûteux, comme la fragmentation, le ''checksum'' ou les options. Certains de ces mécanismes ont été éliminés dans la nouvelle version du protocole, d'autres remplacés par des mécanismes plus performants. Enfin, nous pouvons signaler ce formulaire qui présente l'essentiel du paquet IPv6 en une seule page&amp;lt;ref&amp;gt;Stretch, J. (2009) packetlife.net. Aide-mémoire tout en une page. [http://packetlife.net/media/library/8/IPv6.pdf IPv6]&amp;lt;/ref&amp;gt;. Ceci peut vous être utile pour la suite.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 791 Internet protocol (IPv4)&lt;br /&gt;
* RFC 1190 Experimental Internet Stream Protocol, Version 2 (ST-II)&lt;br /&gt;
* RFC 1819 Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+&lt;br /&gt;
* RFC 2205 Resource ReSerVation Protocol (RSVP)&lt;br /&gt;
* RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers [http://www.bortzmeyer.org/2474.html Analyse]&lt;br /&gt;
* RFC 2675 IPv6 Jumbograms&lt;br /&gt;
* RFC 6040 Tunnelling of Explicit Congestion Notification&lt;br /&gt;
* RFC 6437 IPv6 Flow Label Specification&lt;br /&gt;
* RFC 6724 Default Address Selection for Internet Protocol version 6 (IPv6) [http://www.bortzmeyer.org/6724.html Analyse]&lt;br /&gt;
* RFC 7098: Using the IPv6 Flow Label for Load Balancing in Server Farms [http://www.bortzmeyer.org/7098.html Analyse]&lt;br /&gt;
* RFC 8200 Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 9098 Operational Implications of IPv6 Packets with Extension Headers [https://www.bortzmeyer.org/9098.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents suivants :&lt;br /&gt;
*RFC 1190 : Experimental Internet Stream Protocol Version 2 (ST-II)&lt;br /&gt;
*RFC 2492 : IPv6 over ATM Networks  (cf page 2)&lt;br /&gt;
*RFC 2597 : An Expedited Forwarding PHB&lt;br /&gt;
*RFC 2598 : Assured Forwarding PHB Group&lt;br /&gt;
*RFC 4594 : Configuration Guidelines for DiffServ Service Classes  &lt;br /&gt;
*RFC 5865 : A Differentiated Services Code Point (DSCP)  for Capacity-Admitted Traffic&lt;br /&gt;
*RFC 6438 : Flow Label for Tunnel ECMP/LAG  (cf page-4)&lt;br /&gt;
*RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
*RFC 6282 : Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks&lt;br /&gt;
*RFC 6775 : Neighbor Discovery Optimization for IPv6 over Low-Power Wireless  Personal Area Networks (6LoWPANs)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Annexe 1: la gestion de la qualité de service ==&lt;br /&gt;
&lt;br /&gt;
L'Internet différencié permet aux fournisseurs d'accès de gérer différemment les congestions qui surviennent dans le réseau. Sans différenciation, les paquets ont la même probabilité de rejet. Avec la différenciation, plusieurs classes de trafic sont définies. Les paquets appartenant aux classes les plus élevées ont une probabilité de rejet plus faible. Bien entendu, pour que l'introduction de telles classes de trafic soit efficace, il faut introduire une gestion des ressources différente pour chacune des classes, et des mécanismes de contrôle pour vérifier que les flux des utilisateurs n'utilisent pas que les classes les plus élevées ou qu'ils ne dépassent pas leur contrat. Par exemple, un client peut établir un contrat de niveau de services appelé SLA (''Service Level Agreement'') avec son fournisseur d’accès. &lt;br /&gt;
&lt;br /&gt;
L'intérêt principal de la différenciation de services est qu'elle ne casse pas le modèle initial de l'Internet (version 4 ou version 6). Les flux sont toujours traités en ''Best Effort'' même si certains sont plus ''Best'' que d'autres. Il n'y a aucune garantie qu'un trafic d'une classe haute arrive à destination, mais la probabilité est plus importante. L'autre intérêt des classes de trafic vient de la possibilité d'agrégation des flux. La classe d'appartenance est indiquée dans l'en-tête du paquet. Les applications peuvent marquer les paquets en fonction de paramètres locaux (flux multimédia, flux interactif, trafic priorisé...). Le fournisseur d'accès qui récupère le trafic n'a plus à se préoccuper des applicatifs. Il vérifie que le trafic d'une classe ne dépasse pas le contrat préalablement établi. &lt;br /&gt;
&lt;br /&gt;
Dans le cœur du réseau, les routeurs prennent en compte les différentes classes. Le fournisseur d'accès devra également passer des accords avec les autres opérateurs pour pouvoir faire transiter les flux avec un traitement approprié. Cet aspect de dimensionnement de réseau et de négociation d'accords d'échange est au coeur du métier d'opérateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour signifier l'appartenance d'un paquet à une certaine classe de trafic, une valeur est renseignée au niveau de l'en-tête IP dans l'octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt; afin qu'elle puisse être analysée par tous les routeurs mettant en œuvre le traitement différencié. Le format de ce champ est rappelé en figure 2.&lt;br /&gt;
&lt;br /&gt;
Le tableau 1 présente les différentes valeurs définies pour le champ DSCP (''Differential Service Code Point''). Les valeurs sont présentées en format binaire avec les 6 bits les plus significatifs de l’octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt;, puis leur conversion en décimal, leur nommage, la probabilité d’écartement, et l’équivalence avec les anciennes valeurs du champ TOS de l’IPv4 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_07_dscp_ipv6_v01.jpg|600px|thumb|center|Tableau 1 : Format du champ DSCP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, deux types de comportement sont standardisés :&lt;br /&gt;
&lt;br /&gt;
* Assured Forwarding [[https://tools.ietf.org/html/rfc2597#page-6 RFC 2597]] : ce comportement définit quatre classes de trafic et trois priorités, suivant que l'utilisateur respecte son contrat, le dépasse légèrement, ou est largement en dehors. Les classes sont donc choisies par l'utilisateur et restent les mêmes tout au long du trajet dans le réseau. La priorité, par contre, peut être modifiée dans le réseau par les opérateurs en fonction du respect ou non des contrats. Par exemple, pour la classe AF n°2, on dispose des 3 priorités suivantes : AF21, AF22 et AF23. Plus le chiffre est élevé, plus la priorité est faible. C'est-à-dire qu'en cas de saturation de cette classe de trafic, les paquets AF23 seront écartés avant AF22, puis AF21.&lt;br /&gt;
* Expedited Forwarding [[https://tools.ietf.org/html/rfc2598#page-1 RFC 2598]] : ce comportement est comparable à un circuit à débit constant réservé dans le réseau. Le trafic est mis en forme à l'entrée du réseau, en retardant l'émission des paquets qui sont hors contrat. En plus de ces comportements, l'octet DS a gardé, pour des raisons de compatibilité avec les équipements existants, les valeurs du bit ToS qui étaient le plus fréquemment utilisées.  La valeur est 0xB8 (1011 1000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 46 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Voice Admit : cette autre valeur a été par la suite proposée dans le [https://tools.ietf.org/html/rfc5865#page-10 RFC 5865] pour affiner le traitement de flux ''temps réel'' de différentes natures : voix, vidéo, signalisation ''temps réel''… (La valeur est 0xB0 soit 1011 0100 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 44 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Network Control : autre particularité : la valeur 0xE0 (1110 0000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 56 en décimal) correspond à CS7, la classe de contrôle du réseau (''Network Control''). Elle est utilisée dans des mises en œuvre d'IPv6 pour l'émission de certains paquets ICMPv6. Cette valeur est dépréciée. Il est conseillé d'utiliser la valeur CS6 comme spécifié dans le [https://tools.ietf.org/html/rfc4594#section-3 RFC 4594].&lt;br /&gt;
&lt;br /&gt;
=== Références bibliographiques ===&lt;br /&gt;
* RFC 2597 Assured Forwarding PHB Group&lt;br /&gt;
* RFC 2598  An Expedited Forwarding PHB&lt;br /&gt;
* RFC 4594 Configuration Guidelines for DiffServ Service Classes&lt;br /&gt;
* RFC 5865 A Differentiated Services Code Point (DSCP) for Capacity-Admitted Traffic&lt;br /&gt;
&lt;br /&gt;
== Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 ==&lt;br /&gt;
&lt;br /&gt;
Les extensions de l'en-tête IPv6 visent à ajouter des fonctionnalités supplémentaires à l'acheminement d'un paquet dans l'Internet. Ces extensions vont impliquer le traitement de ces fonctionnalités au niveau réseau, soit par le destinataire du paquet IPv6, soit par les routeurs intermédiaires en charge de l’acheminement du paquet IPv6.&lt;br /&gt;
&lt;br /&gt;
De nombreuses extensions ont été définies, afin d'assurer des fonctions comme  le routage par la source, la gestion de la fragmentation, la confidentialité des communications (mécanisme ''ipsec''), etc. &lt;br /&gt;
&lt;br /&gt;
Le mécanisme d'extension de l'en-tête IPv6 est assez souple pour pouvoir inclure d'autres fonctionnalités futures. Dans cette activité, nous allons nous intéresser au principe du traitement des extensions au moyen d'exemples simples et démonstratifs de ce mécanisme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Principe des extensions IPv6==&lt;br /&gt;
&lt;br /&gt;
Les extensions peuvent être vues comme un protocole 3.5, entre les couches 3 (réseau) et 4 (transport) du modèle OSI. En effet, à part l'extension de proche-en-proche, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (i.e. celui spécifié dans le champ adresse de destination du paquet IPv6).&lt;br /&gt;
Une extension a une longueur multiple de 8 octets (64 bits). Elle commence par un champ &amp;lt;tt&amp;gt;Next header&amp;lt;/tt&amp;gt; qui définit, sur un octet, le type d'extension ou de protocole qui suit. Pour les extensions de longueur variable, l'octet suivant contient la longueur de l'extension en mots de 8 octets, le premier mot n'étant pas compté. Par exemple, une extension de 16 octets aura une longueur de 1.&lt;br /&gt;
&lt;br /&gt;
Si, d'un point de vue théorique, les extensions sont supérieures aux options d'IPv4, dans la réalité très peu sont utilisées à grande échelle et restent du domaine de la recherche.&lt;br /&gt;
&lt;br /&gt;
'''''Nota :''''' ''dans la pratique, l'extension la plus couramment rencontrée est probablement l'option de fragmentation à la source. En effet, certains protocoles applicatifs sur UDP, tel que NFS, supposant que la fragmentation existe au niveau réseau, produisent des messages de taille quelconque sans se soucier du MTU. Comme il n'est pas envisageable de modifier ces applications largement déployées, la couche réseau IPv6 doit être capable de gérer la fragmentation. IPv6 impose simplement que cette dernière se fasse à la source.''&lt;br /&gt;
&lt;br /&gt;
Une présentation illustrée des extensions IPv6 peut être consultée sur le site de Cisco&amp;lt;ref&amp;gt;Cisco (2006) White paper.[http://www.cisco.com/en/US/technologies/tk648/tk872/technologies_white_paper0900aecd8054d37d.html IPv6 Extension Headers Review and Considerations]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Le champ ''Next Header'' ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_ipv6_header_next-header_v02.jpg|thumb|right|300px|Figure 1 : Localisation du champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; dans l'en-tête IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Next Header&amp;lt;/tt&amp;gt; de l'en-tête IPv6, comme illustré sur la figure 1, identifie généralement le protocole de niveau supérieur comme, par exemple, le transport TCP/UDP. Mais, dans le cas des extensions, plusieurs mécanismes particuliers sont également disponibles parmi la liste suivante :&lt;br /&gt;
&amp;lt;center&amp;gt;{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intégration des extensions d’en-tête dans le paquet IPv6==&lt;br /&gt;
Quand il y a plusieurs extensions dans un même datagramme, les extensions sont placées selon un ordre qui dépend de leur portée : &lt;br /&gt;
* extensions impliquant tous les routeurs intermédiaires : ''Hop-by-Hop'' ;&lt;br /&gt;
* extensions impliquant seulement certains routeurs désignés : ''Routing'' ;&lt;br /&gt;
* extension impliquant le destinataire : ''Authentication'', ''Encapsulating Security Payload'', Fragmentation, Destination.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La figure 2 montre la souplesse avec laquelle plusieurs extensions peuvent être chaînées. Chaque extension contient dans son en-tête un champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; et un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;. Le premier paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur ICMPv6. Le second paquet ne contient pas d'extension ; le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; pointe sur TCP. Le troisième paquet contient une extension de protection qui pointe ensuite sur UDP. Dans le dernier paquet, une extension de routage, qui pointe sur une extension de fragmentation, pointe finalement sur ICMPv6. &lt;br /&gt;
* L'enchaînement des extensions se fait dans un ordre bien déterminé. Par exemple, une extension concernant tous les routeurs sur le chemin (''Hop-by-Hop'') devra forcément se trouver en première position. Si elle se trouvait à la suite d'une extension ''Destination'', elle ne pourrait être lue, l'extension ''Destination'' n'étant interprétée que par le destinataire du paquet.&lt;br /&gt;
* Si cet enchaînement d'extension offre beaucoup plus de souplesse que les options d'IPv4, il rend difficile la lecture des numéros de port. Il faut en effet lire tout l'enchaînement d'extension pour arriver au protocole de niveau 4. Ceci a servi de justification à l'identificateur de flux qui permettait de refléter au niveau 3 un flux particulier et évitait de dérouler l'enchaînement. Bien entendu, les pare-feux devront vérifier les numéros de ports. &lt;br /&gt;
* Les extensions peuvent être vues comme un protocole 3.5 (entre la couche 3 et la couche 4). En effet, à part l'extension de &amp;quot;proche en proche&amp;quot;, qui est traitée par tous les routeurs traversés, les autres extensions ne sont traitées que par le destinataire du paquet (''i.e.'' celui spécifié dans le champ &amp;lt;tt&amp;gt;adresse de destination&amp;lt;/tt&amp;gt; du paquet IPv6). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_10_extensions_IPv6_v01.jpg|thumb|center|600px|Figure 2 : Enchaînement d'extensions.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Quelques exemples ==&lt;br /&gt;
&lt;br /&gt;
=== Fragmentation ===&lt;br /&gt;
&lt;br /&gt;
Nous avons vu la fragmentation en détail lors de l'activité consacrée à la taille des paquets IPv6. Les points essentiels à rappeler sont que la fragmentation en IPv6 est une fonction d'hôtes exclusivement, et que par souci d'efficacité, l'adaptation de la taille de l'unité de données applicatives en unité de transfert est du ressort de la couche de transport. Cependant, lorsque ce n'est pas possible, en dernier ressort, la fragmentation est faite par IPv6.  Les informations pour la fragmentation sont placées dans une extension d'en-tête IPv6 identifiée par la valeur 44.&lt;br /&gt;
D'un point de vue du codage, l'en-tête et les extensions qui concernent les routeurs intermédiaires (pour l'instant &amp;quot;proche en proche&amp;quot; et &amp;quot;routage par la source&amp;quot;) sont recopiées dans chaque fragment, tandis que les autres extensions et l'en-tête de niveau 4 ne seront présents que dans le premier fragment.&lt;br /&gt;
&lt;br /&gt;
La fragmentation en IPv4 n'est pas très performante. Quand un routeur ne peut pas transmettre un paquet à cause de sa trop grande taille, il doit le transmettre en fragments. Comme l'Internet n'est pas fiable, un fragment peut se perdre. Le destinataire ne peut rassembler les fragments. Cela revient à perdre tous les fragments. Il est donc plus efficace de faire les fragments avant la couche IP. Ainsi le fragment devient un paquet IP à la bonne taille. Maintenant, en cas de perte, seul le paquet perdu sera retransmis, évitant ainsi la retransmission de gros blocs de données.&lt;br /&gt;
&lt;br /&gt;
Il est plus intéressant d'adapter la taille des paquets à l'émission. Ceci est fait en utilisant les techniques de découverte du MTU (voir RFC 8201 : Mécanisme de découverte du PMTU). En pratique, une taille de paquets de MTU 1280 octets est une bonne garantie d'acheminement du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Extensions d'authentification (AH) et de confidentialité (ESP) ===&lt;br /&gt;
&lt;br /&gt;
L'extension d'authentification (AH : Authentication Header) décrite dans le RFC 4302 permet de s'assurer que l'émetteur du message est bien celui qu'il prétend être. Elle sert aussi au contrôle d'intégrité pour garantir au récepteur que personne n'a modifié le contenu d'un message lors de son transfert sur le réseau. Elle peut optionnellement être utilisée pour détecter les rejeux.&lt;br /&gt;
&lt;br /&gt;
Le principe de l'authentification est relativement simple. L'émetteur calcule un authentificateur sur un datagramme et l'émet avec le datagramme sur lequel il porte. Le récepteur récupère cette valeur et vérifie qu'elle est correcte. Si un code d'authentification de message &amp;lt;ref&amp;gt;Code d'authentification de message, [https://fr.wikipedia.org/wiki/Code_d%27authentification_de_message Article Wikipedia]&amp;lt;/ref&amp;gt; est utilisé, il suffit au récepteur de calculer de son côté le code sur le même datagramme à l'aide de la clé symétrique partagée et de le comparer avec le code reçu. Si le mécanisme de signature numérique est employé, le récepteur doit alors récupérer la signature, la déchiffrer avec la clé publique de l'émetteur et comparer le condensat ainsi obtenu avec celui calculé de son côté sur le datagramme reçu. Si les deux codes, ou les deux condensats diffèrent, soit l'émetteur ne possède pas la bonne clé, soit le message a subi des modifications en chemin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'extension ESP ''Encapsulating Security Payload'' décrite dans le RFC 4303 permet de chiffrer l'ensemble des paquets ou leur partie transport et de garantir l'authentification et l'intégrité de ces paquets. Cette extension permet optionnellement de détecter les rejeux (à condition que le service d'authentification soit assuré) et garantit de façon limitée la confidentialité du flux.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir ces services de sécurité, il est nécessaire, avant d'émettre un paquet IP sur le réseau, de chiffrer les données à protéger, de calculer un authentificateur, et d'encapsuler ces informations dans l'en-tête de confidentialité ESP. Cela nécessite bien entendu l'existence d'une association de sécurité précisant, entre autres, le ou les algorithmes de chiffrement, la ou les clés, et un indice de paramètres de sécurité. Pour en savoir plus sur les extensions de sécurité, nous renvoyons le lecteur vers le livre&amp;lt;ref&amp;gt;G. Cizault. livre &amp;quot;IPv6, Théorie et Pratique&amp;quot;. [http://livre.g6.asso.fr/index.php/S%C3%A9curit%C3%A9 Chapitre sur la Sécurité]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Segment Routing Header (SRH) ===&lt;br /&gt;
&lt;br /&gt;
Cette extension est une des briques qui permet la mise en œuvre de l'ingénierie de trafic et de la qualité de service dans les réseaux IPv6. Certaines applications ont besoin que le délai, le taux de perte des paquets et le débit ne dépassent pas un certain seuil. Par exemple, une session de vidéo-conférence peut nécessiter que le délai de bout en bout reste inférieur à 100 ms, que le débit disponible soit au minimum de 2 Mbit/s et que le taux de perte reste inférieur à 1 %. La solution habituellement mise en œuvre pour le respect de ces métriques de qualité de service est RSVP-TE&amp;lt;ref&amp;gt;Packet Pushers, novembre 2016.[http://packetpushers.net/rsvp-te-protocol-deep-dive/ Deep dive in the RSVP-TE protocol]&amp;lt;/ref&amp;gt;. RSVP est un protocole de réservation de ressources sur les routeurs du chemin entre une source et une destination. La composante d'ingénierie de trafic permet notamment de choisir explicitement le chemin qui sera suivi par le paquet. Lorsqu'une application a besoin de réserver des ressources, un circuit MPLS est établi et le protocole RSVP réserve les ressources sur l'ensemble des routeurs qui composent le chemin. La figure 4 résume ce comportement : le nœud A est la source du flot de vidéo-conférence destiné à B. Elle demande l'installation d'un chemin via MPLS. Le contrôleur détermine que le chemin le plus adapté est celui transitant par G,H,I,K,N source de vidéo-conférence. Elle effectue ensuite une réservation de ressource via RSVP. Chacun des routeurs G,H,I,K,N doit accepter la requête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp2.png|thumb|center|600px|Figure 4 : Exemple d'utilisation de RSVP-TE pour assurer la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'inconvénient de cette méthode est qu'avec RSVP, les réservations doivent être fréquemment renouvelées et les routeurs doivent garder des états relatifs à chacun des flots. À chaque fois qu'un routeur reçoit un paquet, il doit chercher dans la liste des flots le comportement à y associer. Cela limite le passage à l'échelle (le nombre de flots supportés). De plus, l'établissement des circuits MPLS est coûteux en temps, en états, et en communication. Pour finir, si un des nœuds ou des liens qui compose le chemin n'est plus disponible, le temps requis pour établir un nouveau chemin peut être trop important face aux besoins des flots &amp;lt;ref&amp;gt;Cisco, [http://www.segment-routing.net/tutorials/2017-03-06-segment-routing-traffic-engineering-srte/ SR Traffic Engineering]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le concept de ''segment routing'' a été proposé pour palier ces désavantages. Il permet de réduire l'intelligence des nœuds du réseau. Un contrôleur choisit le chemin qui respecte les besoins de qualité de service du nœud. Le chemin à suivre ainsi que le traitement à associer aux paquets sont ensuite explicitement listés dans leurs en-têtes. Ces traitements à appliquer au paquet sont appelées segments. Un segment peut être l'adresse d'un routeur par lequel le paquet devra transiter, un lien à emprunter ou encore un service fourni par le routeur sur lequel transite le paquet. La séquence de segments que doit suivre le paquet peut être implémentée via une liste de labels MPLS ou, dans le cas d'un réseau IPv6, via l'option ''Segment Routing'' de l'en-tête &amp;lt;ref&amp;gt; Previdi &amp;amp; al. [https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-06 IPv6 Segment Routing Header (SRH) (Draft)]&amp;lt;/ref&amp;gt;. Contrairement à MPLS, le ''segment routing'' avec IPv6 ne requière pas que tous les nœuds traversés par le paquet soient compatibles avec cette option. Cela permet un déploiement progressif et la traversée de plusieurs types de réseaux. Notons qu'il n'est pas nécessaire d'inscrire l'intégralité du chemin dans la liste. Les règles de routage classique de l'IGP s'appliquent jusqu'au prochain nœud explicitement listé dans l'en-tête. Dans le cas de la figure 5, pour suivre le chemin G,H,I,K,N, il est seulement nécessaire d'ajouter I et B dans la liste. Lorsque le paquet est généré par A, l'adresse de destination est celle de I. Lorsque le paquet atteint I, l'adresse de destination est remplacée par la prochaine dans la liste ; c'est-à-dire B. Le paquet suit le plus court chemin entre I et B ; en l’occurrence I,K,N. Le surcoût induit par la taille de l'extension de l'en-tête est donc limité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Moocipv6-act24-SRH-rsvp.png|thumb|center|600px|Figure 5 : Exemple d'utilisation du ''Segment Routing'' pour l'ingénierie de trafic et la qualité de service.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le projet de RFC prévoit qu'un segment soit représenté sur 128 bits ; c'est-à-dire autant qu'une adresse IPv6. Le nombre de segments inclus dans l'option SRH peut être déduit du champ &amp;lt;tt&amp;gt;Hdr Ext Len&amp;lt;/tt&amp;gt; qui indique le nombre d'octets de l'option moins un. Le prochain segment à appliquer est indiqué par le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; qui indique le nombre de segments restant à appliquer au paquet. Le segment courant est inscrit dans le champ adresse de destination de l'en-tête IPv6. Lorsque le traitement associé à un segment est achevé, le prochain segment à traiter est copié dans le champ adresse de destination et le champ &amp;lt;tt&amp;gt;Segments Left&amp;lt;/tt&amp;gt; est décrementé.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_14_IPv6_extension_routage_v02.jpg|thumb|center|400px|Figure 6 : Extension de routage par la source.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'extension SRH est très proche de l'en-tête de routage défini dans le RFC 8200 de IPv6. L'en-tête de routage devait notamment permettre le routage à la source (voir la figure 6) qui consiste à lister les routeurs que devaient traverser le paquet au cours de son acheminement. Cette pratique a été dépréciée en 2007 par le RFC 5095 pour des raisons de sécurité. En effet cela permettait de générer de la congestion sur certains chemins, des attaques de déni de service, des contournements des règles de filtrages de certains pare-feux ou encore d'utiliser des machines publiques accessibles (en DMZ) pour accéder à des machines privées. &amp;lt;ref&amp;gt;P.  Biondi et A. Ebalard, CanSecWest,  2017 .[http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf IPv6 Routing Header Security]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour être acceptée, l'extension SRH doit donc garantir qu'elle ne serait pas vulnérable à ces attaques. Plusieurs cas d'utilisation sont décrits. Lorsque l'extension SRH est générée au sein du réseau de l'opérateur (i.e. routeur de bordure), les attaques listées dans le RFC 5095 sont inopérantes. Les routeurs de bordures doivent simplement filtrer les paquets provenant de l'extérieur pour éviter que des hôtes s'attribuent des privilèges ou provoquent de la congestion sur certains liens. Lorsque les SRH sont générées en dehors du réseau de l'opérateur, le projet de RFC prévoit l'utilisation d'un mécanisme d'authentification de l'en-tête défini par le RFC 2104 (option HMAC). La clé de chiffrement de l'en-tête HMAC est distribuée au sein des nœuds autorisés à générer ou manipuler des extensions d'en-têtes SRH.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Cette activité vous a décrit les différents mécanismes qui enrichissent les fonctions disponibles au niveau de la couche réseau : routage, fragmentation, sécurité, etc. Ces mécanismes tirent parti de la possibilité d'ajouter des champs supplémentaires à l'en-tête IPv6 grâce aux extensions d'en-tête. Ces extensions sont ajoutées par les extrémités de la communication et sont transparentes pour les routeurs (exception faite des extensions de type ''Hop-by-Hop''). De plus, le mécanisme de chainage par le champ ''Next Header'' permet d'ajouter des extensions de manière souple.&lt;br /&gt;
&lt;br /&gt;
L'usage des extensions est encore assez limité sur l'Internet. Certaines fonctionnalités ont été dépréciées (comme l'extension de routage RH0) et d'autres peinent à se développer (comme la mobilité IPv6). La présence potentielle de ces extensions doit être cependant prise en compte dans le traitement des paquets, notamment le filtrage sur les valeurs du champ ''Next Header'' de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents de ce paragraphe.&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer :&lt;br /&gt;
&lt;br /&gt;
* RFC 4302 : IP Authentication Header&lt;br /&gt;
* RFC 4303 : IP Encapsulating Security Payload (ESP)&lt;br /&gt;
* RFC 5095 : Deprecation of Type 0 Routing Headers in IPv6 Specification [http://www.bortzmeyer.org/5095.html Analyse]&lt;br /&gt;
* RFC 7045 : Transmission and Processing of IPv6 Extension Headers [http://www.bortzmeyer.org/7045.html Analyse]&lt;br /&gt;
* RFC 7872 : Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World [http://www.bortzmeyer.org/7872.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 8201 : Path MTU Discovery for IP version 6 [http://www.bortzmeyer.org/8201.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20071</id>
		<title>MOOC:Compagnon Act21-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act21-s7&amp;diff=20071"/>
				<updated>2022-02-18T16:39:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Annexe 1: la gestion de la qualité de service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Activité 21: L’en-tête IPv6 =&lt;br /&gt;
&amp;lt;!-- = Activité 21: Le format de l’en-tête IPv6 = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Comme rappelé en introduction de la séquence, la fonction principale du protocole IP est d'acheminer un paquet d'un point à un autre de l'Internet. Un paquet se définit comme une unité de transfert dans un réseau. Il est  composé d'un bloc de données de taille variable mais limitée et identifié par un en-tête. Le mode d'acheminement par datagramme, utilisé dans l'Internet, impose que chaque paquet soit traité indépendamment, sans avoir besoin d'informations issues d'autres paquets déjà transmis. L'en-tête IP doit donc comporter toutes les informations pour réaliser cet acheminement. C'est la raison pour laquelle chaque paquet doit contenir l'adresse globale du nœud source ainsi que celle du nœud de destination du paquet. Pour marquer cette spécificité, ces paquets auto-descriptifs sont appelés des datagrammes.&lt;br /&gt;
&lt;br /&gt;
L'adresse du destinataire est fondamentale pour le routage du paquet effectué par les nœuds intermédiaires. C'est en effet à partir de cette adresse que le nœud décide vers quelle interface le paquet doit sortir. La lecture de l'adresse du destinataire dans l'en-tête IP est donc une étape cruciale pour la performance globale de l'acheminement du paquet. Afin d'accélérer cette étape, deux principes ont été appliqués dans la spécification de l'en-tête IP : &lt;br /&gt;
* une adresse IP est de taille fixe, permettant ainsi d'être récupérée dans l'en-tête directement en lisant un nombre de bits prédéterminé, sans avoir à lire ni interpréter au préalable un champ de longueur d'adresse ;&lt;br /&gt;
* l'adresse IP destination est à un emplacement fixe dans l'en-tête, emplacement aligné en mémoire, facilitant ainsi son extraction de l'en-tête par un simple décalage en mémoire, qui est une opération simple au niveau matériel.&lt;br /&gt;
&lt;br /&gt;
== Format de l'en-tête du datagramme IPv6 ==&lt;br /&gt;
Le format d'en-tête du datagramme IPv6 est spécifié par le RFC 8200 (page 5). Cet en-tête, avec les champs le composant, est représenté par la figure 1. L'en-tête IPv6 est de taille fixe et se compose de 5 mots de 64 bits (contre 5 mots de 32 bits pour IPv4). La taille de l'en-tête IPv6 est donc de 40 octets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig1.png|400px|thumb|center|Figure 1 : Format de l'en-tête d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Signification des champs de l'en-tête ==&lt;br /&gt;
&lt;br /&gt;
=== Version ===&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; est au même emplacement et de même longueur, quelle que soit la version du protocole IP (IPv4 ou IPv6). Cette similarité permet de vérifier que le paquet reçu est au format attendu.  Dans le cas d'IPv6, sa valeur est de 6 ; elle est de 4 pour IPv4. Le numéro de version 5 avait déjà été attribué au protocole Stream qui finalement n'a pas eu le succès attendu [RFC 1190, RFC 1819].&lt;br /&gt;
&lt;br /&gt;
=== Classe de trafic (''Traffic Class'') ===&lt;br /&gt;
Dans la version du document de spécification du protocole IPv6 [RFC 8200], le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt;, sur 8 bits reprend la spécification pour le codage de la différenciation de services [http://tools.ietf.org/html/rfc2474#page6 RFC 2474].&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;lt;tt&amp;gt;Classe de trafic&amp;lt;/tt&amp;gt; est défini de façon similaire au champ &amp;lt;tt&amp;gt;Differentiated Services&amp;lt;/tt&amp;gt; (DS, ou ''DiffServ'') de l'en-tête IPv4, qui a lui-même pris la place de l'octet &amp;lt;tt&amp;gt;Type of Service&amp;lt;/tt&amp;gt; de la spécification initiale d'IPv4. Ce champ est découpé en deux parties (cf. figure 2). Le sous-champ DSCP (''Differentiated Services Code Point'') contient les valeurs identifiant les différents traitements demandés aux routeurs. La valeur par défaut 000000 correspond au service classique dit ''au mieux'' (ou ''best effort''). Les deux derniers bits du champ, notés ECN (''Explicit congestion Notification''), servent aux routeurs à rapporter un risque de congestion [RFC 8311].&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_10_TrafficClass.jpg|200px|thumb|center|Figure 2 : Format de l'octet &amp;lt;tt&amp;gt;classe de trafic&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour le lecteur qui veut en savoir plus, l'[[#Annexe_1:_la_gestion_de_la_qualit.C3.A9_de_service|annexe 1]] décrit l'utilisation du champ classe de trafic dans l'objectif de fournir des services de transfert à qualité différente.&lt;br /&gt;
&lt;br /&gt;
=== Identificateur de flux (''Flow Label'') ===&lt;br /&gt;
Ce champ, contient un numéro unique, choisi par la source, pour identifier le flux de données d'une application comme par exemple l'ensemble des paquets d'une application de voix sur IP. L'unicité de l'identificateur de flux se comprend dans le contexte de l'adresse source. L'utilisation de ce champ est  spécifiée  par le RFC 6437.&lt;br /&gt;
&lt;br /&gt;
Ce champ vise à faciliter la classification des flux par les routeurs afin de différencier le traitement des  paquets et donc notamment la mise en œuvre des fonctions de qualité de service.  Les datagrammes d'un même flux ayant un même identifiant, le routeur peut alors les reconnaitre et leur appliquer un traitement particulier comme le choix d'une route ou une priorité à l'accès à la transmission. &lt;br /&gt;
&lt;br /&gt;
Habituellement, les routeurs se basent sur les valeurs de cinq champs pour identifier le même flux de paquets : adresses de la source et de la destination, numéros de port de la source et de la destination, et protocole. Cette identification  implique l'analyse d'en-têtes de niveau 3 pour les adresses et de niveau 4 pour les autres informations. &lt;br /&gt;
&lt;br /&gt;
Avec IPv6, l'identification du flux n'implique plus que le niveau 3. Ainsi, l'identification est faite indépendamment du protocole de niveau 4. Le champ &amp;lt;tt&amp;gt;Identificateur de flux&amp;lt;/tt&amp;gt; peut être rempli avec une valeur aléatoire mais qui doit être unique. La source gardera cette valeur pour tous les paquets qu'elle émettra pour cette application et cette destination. Le traitement est simplifié puisque le routeur n'a plus à consulter cinq champs pour déterminer l'appartenance d'un paquet à un flux, mais un seul. De plus, la confidentialité peut être préservée, les informations concernant les numéros de port peuvent être masquées aux routeurs intermédiaires. &lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Passage à l'échelle|Le passage à l'échelle désigne la capacité d'un produit ou d'un mécanisme à s'adapter à un changement d'ordre de grandeur de la demande (montée en charge), en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande&amp;lt;ref&amp;gt;Wikipedia.[https://fr.wikipedia.org/wiki/Scalability Définition de la scalabilité]&amp;lt;/ref&amp;gt;. Il faut donc comprendre qu'une difficulté à passer à l'échelle signifie que la propriété d'extensibilité n'est pas acquise.}}&lt;br /&gt;
&lt;br /&gt;
À la date de rédaction de ce document, l'utilisation de l'identificateur de flux reste encore floue. Les micro-flux, c'est-à-dire les flux applicatifs, ne sont pas analysés dans le cœur du réseau pour des raisons de passage à l'échelle. De plus, l'idée d'utiliser une étiquette pour acheminer des paquets est déjà utilisée par la technologie MPLS&amp;lt;ref&amp;gt; MultiProtocol Label Switching https://fr.wikipedia.org/wiki/Multiprotocol_Label_Switching &amp;lt;/ref&amp;gt; de l'Internet, ce qui retire tout sens à utiliser ce champ du paquet IPv6 pour cette fonction. Pour l'instant, ce champ peut être vu comme réservé. Son utilisation devra être détaillée dans le futur.&lt;br /&gt;
&lt;br /&gt;
=== Longueur de la charge du paquet (''Payload Length'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la quantité d'octets qui suit l'en-tête du datagramme (en-tête exclu donc), c'est-à-dire la charge du paquet, autrement dit les données. Les éventuelles extensions à l'en-tête IPv6 sont incluses dans ces données. Ce champ, sur 16 bits, peut donc indiquer la taille des données utiles, allant jusqu'à 64 kibioctets (64 * 1024 octets). Pour des paquets dont la taille serait supérieure, ce champ vaut 0 et l'émetteur ajoute une extension d'en-tête de &amp;quot;proche en proche&amp;quot; avec l'option ''jumbogramme'' définie par le RFC 2675. Avec l'option jumbogramme, la quantité de données transportée est codée sur 32 bits. La taille maximale des données utiles du paquet monte alors jusqu'à 4 gibioctets (4* 2^30 octets). Nous reviendrons sur le jumbogramme dans l'activité &amp;quot;Taille des paquets IPv6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== En-tête suivant (''Next Header'')===&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole se trouvant à la suite de l'en-tête IPv6. Il peut s'agir d'un protocole de niveau supérieur (ICMP, UDP, TCP...) ou de la désignation d'une extension (cf. tableau ''Valeurs du champ en-tête suivant pour IPv6'').&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{MOOC_Valeurs_du_champ_en-tête_suivant}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nombre maximal de sauts (''Hop Limit'') ===&lt;br /&gt;
&lt;br /&gt;
Ce champ représente le nombre maximal de routeurs que le paquet peut traverser. Il est initialisé par le nœud source du paquet et, ensuite, décrémenté à chaque routeur traversé. Si la valeur, après décrémentation, atteint 0, le datagramme est supprimé et un message d'erreur ICMPv6 est émis pour la source de ce paquet. Ce champ vise à limiter le nombre de relayages (ou traversées de routeurs) que peut subir un paquet suite à des problèmes dans le réseau comme des boucles de routage. Ainsi, un paquet ne peut pas circuler indéfiniment dans l'Internet.&lt;br /&gt;
Ce champ est à la base de l'outil &amp;lt;tt&amp;gt;traceroute&amp;lt;/tt&amp;gt; pour identifier la suite des routeurs traversés jusqu'à une destination.&lt;br /&gt;
&lt;br /&gt;
La valeur initiale de ce champ, à l'émission du paquet, devrait être donnée dans un document annexe de l'IANA (http://www.iana.org/) ; ce qui permettrait de la modifier en fonction de l'évolution de la topologie du réseau. La valeur n'est pas encore officiellement attribuée mais certaines implantations prennent actuellement la valeur conseillée pour IPv4 : 64. &lt;br /&gt;
&lt;br /&gt;
La valeur par défaut peut être dynamiquement attribuée aux hôtes émetteurs par les annonces des routeurs en configuration automatique. Une modification de ce paramètre sera donc relativement simple quand la limite actuelle sera atteinte. On peut noter une limitation puisque ce champ, codé sur 8 bits, n'autorise la traversée que de 255 routeurs. En réalité, dans l'Internet actuel, le nombre maximal de routeurs traversés est d'une quarantaine, ce qui laisse une bonne marge pour l'évolution du réseau.&lt;br /&gt;
&lt;br /&gt;
=== Adresses source et destination ===&lt;br /&gt;
Ces adresses sont renseignées par le nœud source du paquet pour désigner l'émetteur et le destinataire du paquet. Pour renseigner l'adresse source, l'émetteur choisit de préférence une adresse IPv6 parmi celles configurées sur l'interface utilisée pour transmettre le paquet sur le réseau. Cette adresse est choisie pour avoir une portée compatible avec l'adresse de destination et, ainsi, permettre au destinataire de répondre. Par exemple, il serait problématique d'essayer de joindre un nœud de l'Internet en donnant comme adresse source une adresse ''lien-local''. Le choix de l'adresse source est spécifié dans le RFC 6724.&lt;br /&gt;
&lt;br /&gt;
L'adresse destination, elle aussi, peut être choisie dans la liste des adresses valables pour le destinataire ; liste pouvant provenir de la résolution d'un nom en adresses par le DNS. L'adresse choisie doit être compatible avec la portée des adresses disponibles au niveau de l'émetteur. Par exemple, si l'émetteur ne possède que des adresses de type ULA, et que le destinataire est connu avec des adresses globales et ULA, ces dernières adresses seront à préférer. Le RFC 6724 précise l'algorithme du choix de l'adresse destination.&lt;br /&gt;
&lt;br /&gt;
=== Extensions à l'en-tête IPv6 ===&lt;br /&gt;
L'ajout de nouvelles fonctionnalités est problématique quand l'en-tête est de taille fixe comme c'est le cas d'IPv6. La solution proposée consiste à ajouter des en-têtes spécifiques pour chaque fonctionnalité. &lt;br /&gt;
Les extensions sont ajoutées par le nœud source du paquet pour demander un traitement spécifique à réaliser, soit par les routeurs intermédiaires, soit par le destinataire du paquet.&lt;br /&gt;
Par exemple, si un paquet doit être fragmenté, une extension de fragmentation sera ajoutée par le nœud source afin que le destinataire puisse rassembler les morceaux correctement.&lt;br /&gt;
&lt;br /&gt;
Il existe plusieurs types d'extensions selon le traitement demandé. Elles se placent après l'en-tête IPv6 et avant la charge utile du paquet (voir la figure 3). La présence d'une extension est signalée par le champ &amp;lt;tt&amp;gt;En-tête suivant&amp;lt;/tt&amp;gt; (''Next Header'') de l'en-tête IPv6 qui possède alors la valeur correspondant à cette extension. Ainsi, elle est traitée par les routeurs intermédiaires comme un protocole de niveau supérieur à IP. L'utilisation des différents types d'extensions d'en-tête IPv6 sera abordé dans une activité ultérieure de ce cours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:21-fig2.jpg|400px|center|thumb|Figure 3: Format d'un paquet IPv6.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Evolution de l'en-tête depuis IPv4 ==&lt;br /&gt;
&lt;br /&gt;
Hormis la modification de la taille des adresses, ce qui conduit à une taille d'en-tête de 40 octets (le double d'un en-tête IPv4 sans options), le protocole IP a subi un toilettage&amp;lt;ref&amp;gt;Lee, D.C.; Lough, D.L.; Midkiff, S.F.et al. (1998). IEEE Network, Vol. 12, No. 1, January. The next generation of the Internet: aspects of the Internet protocol version 6.&amp;lt;/ref&amp;gt;, reprenant l'expérience acquise au fil d’une trentaine d’années avec IPv4, défini en 1981 (!) par le RFC 791. Le format des en-têtes IPv6 est ainsi simplifié et permet aux routeurs de meilleures performances dans leurs traitements. L'idée est de retirer du cœur de réseau les traitements compliqués. Les routeurs ne font que retransmettre les paquets vers la destination, les autres traitements sont faits par l'émetteur et le destinataire du paquet.&lt;br /&gt;
&lt;br /&gt;
L'en-tête ne contient plus de contrôle d'erreur (''checksum''), qui devait être ajusté, pour IPv4, par chaque routeur en raison, entre autres, de la décrémentation du champ &amp;lt;tt&amp;gt;durée de vie&amp;lt;/tt&amp;gt;. Par contre, pour éviter qu'un paquet, dont le contenu est erroné -- en particulier sur l'adresse de destination --, ne se glisse dans une autre communication, tous les protocoles de niveau supérieur doivent mettre en œuvre un mécanisme de contrôle d'erreur de bout en bout, incluant un pseudo-en-tête qui prend en compte les adresses source et destination. Le contrôle d'erreur d'UDP, facultatif pour IPv4, devient ainsi obligatoire. Pour ICMPv6, le contrôle d'erreur intègre le pseudo-en-tête alors que, pour ICMPv4, il ne portait que sur le message ICMP. &lt;br /&gt;
 &lt;br /&gt;
La fonction de fragmentation a aussi été retirée des routeurs. Les champs de l'en-tête IPv4 qui s'y reportent (&amp;lt;tt&amp;gt;Identification, Drapeau, Place du fragment&amp;lt;/tt&amp;gt;) ont été supprimés. Normalement, les algorithmes de découverte du PMTU (''Path MTU'') évitent d'avoir recours à la fragmentation. Si celle-ci s'avère nécessaire, une extension est prévue et le découpage en fragments est réalisé uniquement au niveau de l'émetteur.&lt;br /&gt;
&lt;br /&gt;
Une autre évolution majeure depuis l'en-tête IPv4 est la spécification des extensions d'en-tête pour remplacer les options. En effet, dans le cas d'IPv4, les options sont incluses dans l'en-tête. Celui-ci est donc de taille variable (taille indiquée dans le champ &amp;lt;tt&amp;gt;Internet Header Length&amp;lt;/tt&amp;gt;), ce qui peut compliquer le traitement dans les routeurs intermédiaires. Les extensions à l'en-tête IPv6 simplifient la mise en œuvre de ces fonctionnalités et permettent de garder la taille de l'en-tête IPv6 fixe à 40 octets.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a présenté l'en-tête IPv6, définissant une nouvelle version du protocole IP. Cette version reprend les caractéristiques communes du protocole IPv4 : des adresses de taille fixe, un en-tête définissant une position fixe pour l'adresse de destination, position de plus alignée en mémoire. L'objectif est d'avoir un traitement simple et donc rapide de l'en-tête dans les routeurs. IPv6 garde donc ces principes et va même plus loin que son prédécesseur IPv4 en reconsidérant des mécanismes jugés coûteux, comme la fragmentation, le ''checksum'' ou les options. Certains de ces mécanismes ont été éliminés dans la nouvelle version du protocole, d'autres remplacés par des mécanismes plus performants. Enfin, nous pouvons signaler ce formulaire qui présente l'essentiel du paquet IPv6 en une seule page&amp;lt;ref&amp;gt;Stretch, J. (2009) packetlife.net. Aide-mémoire tout en une page. [http://packetlife.net/media/library/8/IPv6.pdf IPv6]&amp;lt;/ref&amp;gt;. Ceci peut vous être utile pour la suite.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin ==&lt;br /&gt;
&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 791 Internet protocol (IPv4)&lt;br /&gt;
* RFC 1190 Experimental Internet Stream Protocol, Version 2 (ST-II)&lt;br /&gt;
* RFC 1819 Internet Stream Protocol Version 2 (ST2) Protocol Specification - Version ST2+&lt;br /&gt;
* RFC 2205 Resource ReSerVation Protocol (RSVP)&lt;br /&gt;
* RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers [http://www.bortzmeyer.org/2474.html Analyse]&lt;br /&gt;
* RFC 2675 IPv6 Jumbograms&lt;br /&gt;
* RFC 6040 Tunnelling of Explicit Congestion Notification&lt;br /&gt;
* RFC 6437 IPv6 Flow Label Specification&lt;br /&gt;
* RFC 6724 Default Address Selection for Internet Protocol version 6 (IPv6) [http://www.bortzmeyer.org/6724.html Analyse]&lt;br /&gt;
* RFC 7098: Using the IPv6 Flow Label for Load Balancing in Server Farms [http://www.bortzmeyer.org/7098.html Analyse]&lt;br /&gt;
* RFC 8200 Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
* RFC 9098 Operational Implications of IPv6 Packets with Extension Headers [https://www.bortzmeyer.org/9098.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Vous pouvez approfondir vos connaissances en consultant les documents suivants :&lt;br /&gt;
*RFC 1190 : Experimental Internet Stream Protocol Version 2 (ST-II)&lt;br /&gt;
*RFC 2492 : IPv6 over ATM Networks  (cf page 2)&lt;br /&gt;
*RFC 2597 : An Expedited Forwarding PHB&lt;br /&gt;
*RFC 2598 : Assured Forwarding PHB Group&lt;br /&gt;
*RFC 4594 : Configuration Guidelines for DiffServ Service Classes  &lt;br /&gt;
*RFC 5865 : A Differentiated Services Code Point (DSCP)  for Capacity-Admitted Traffic&lt;br /&gt;
*RFC 6438 : Flow Label for Tunnel ECMP/LAG  (cf page-4)&lt;br /&gt;
*RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
*RFC 6282 : Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks&lt;br /&gt;
*RFC 6775 : Neighbor Discovery Optimization for IPv6 over Low-Power Wireless  Personal Area Networks (6LoWPANs)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Annexe 1: la gestion de la qualité de service ==&lt;br /&gt;
&lt;br /&gt;
L'Internet différencié permet aux fournisseurs d'accès de gérer différemment les congestions qui surviennent dans le réseau. Sans différenciation, les paquets ont la même probabilité de rejet. Avec la différenciation, plusieurs classes de trafic sont définies. Les paquets appartenant aux classes les plus élevées ont une probabilité de rejet plus faible. Bien entendu, pour que l'introduction de telles classes de trafic soit efficace, il faut introduire une gestion des ressources différente pour chacune des classes, et des mécanismes de contrôle pour vérifier que les flux des utilisateurs n'utilisent pas que les classes les plus élevées ou qu'ils ne dépassent pas leur contrat. Par exemple, un client peut établir un contrat de niveau de services appelé SLA (''Service Level Agreement'') avec son fournisseur d’accès. &lt;br /&gt;
&lt;br /&gt;
L'intérêt principal de la différenciation de services est qu'elle ne casse pas le modèle initial de l'Internet (version 4 ou version 6). Les flux sont toujours traités en ''Best Effort'' même si certains sont plus ''Best'' que d'autres. Il n'y a aucune garantie qu'un trafic d'une classe haute arrive à destination, mais la probabilité est plus importante. L'autre intérêt des classes de trafic vient de la possibilité d'agrégation des flux. La classe d'appartenance est indiquée dans l'en-tête du paquet. Les applications peuvent marquer les paquets en fonction de paramètres locaux (flux multimédia, flux interactif, trafic priorisé...). Le fournisseur d'accès qui récupère le trafic n'a plus à se préoccuper des applicatifs. Il vérifie que le trafic d'une classe ne dépasse pas le contrat préalablement établi. &lt;br /&gt;
&lt;br /&gt;
Dans le cœur du réseau, les routeurs prennent en compte les différentes classes. Le fournisseur d'accès devra également passer des accords avec les autres opérateurs pour pouvoir faire transiter les flux avec un traitement approprié. Cet aspect de dimensionnement de réseau et de négociation d'accords d'échange est au coeur du métier d'opérateur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour signifier l'appartenance d'un paquet à une certaine classe de trafic, une valeur est renseignée au niveau de l'en-tête IP dans l'octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt; afin qu'elle puisse être analysée par tous les routeurs mettant en œuvre le traitement différencié. Le format de ce champ est rappelé en figure 2.&lt;br /&gt;
&lt;br /&gt;
Le tableau 1 présente les différentes valeurs définies pour le champ DSCP (''Differential Service Code Point''). Les valeurs sont présentées en format binaire avec les 6 bits les plus significatifs de l’octet &amp;lt;tt&amp;gt;Traffic Class&amp;lt;/tt&amp;gt;, puis leur conversion en décimal, leur nommage, la probabilité d’écartement, et l’équivalence avec les anciennes valeurs du champ TOS de l’IPv4 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:2015_10_07_dscp_ipv6_v01.jpg|600px|thumb|center|Tableau 1 : Format du champ DSCP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour l'instant, deux types de comportement sont standardisés :&lt;br /&gt;
&lt;br /&gt;
* Assured Forwarding [[https://tools.ietf.org/html/rfc2597#page-6 RFC 2597]] : ce comportement définit quatre classes de trafic et trois priorités, suivant que l'utilisateur respecte son contrat, le dépasse légèrement, ou est largement en dehors. Les classes sont donc choisies par l'utilisateur et restent les mêmes tout au long du trajet dans le réseau. La priorité, par contre, peut être modifiée dans le réseau par les opérateurs en fonction du respect ou non des contrats. Par exemple, pour la classe AF n°2, on dispose des 3 priorités suivantes : AF21, AF22 et AF23. Plus le chiffre est élevé, plus la priorité est faible. C'est-à-dire qu'en cas de saturation de cette classe de trafic, les paquets AF23 seront écartés avant AF22, puis AF21.&lt;br /&gt;
* Expedited Forwarding [[https://tools.ietf.org/html/rfc2598#page-1 RFC 2598]] : ce comportement est comparable à un circuit à débit constant réservé dans le réseau. Le trafic est mis en forme à l'entrée du réseau, en retardant l'émission des paquets qui sont hors contrat. En plus de ces comportements, l'octet DS a gardé, pour des raisons de compatibilité avec les équipements existants, les valeurs du bit ToS qui étaient le plus fréquemment utilisées.  La valeur est 0xB8 (1011 1000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 46 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Voice Admit : cette autre valeur a été par la suite proposée dans le [https://tools.ietf.org/html/rfc5865#page-10 RFC 5865] pour affiner le traitement de flux ''temps réel'' de différentes natures : voix, vidéo, signalisation ''temps réel''… (La valeur est 0xB0 soit 1011 0100 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 44 en décimal).&lt;br /&gt;
&lt;br /&gt;
* Network Control : autre particularité : la valeur 0xE0 (1110 0000 en binaire, et en tenant compte uniquement des 6 bits de poids forts : 56 en décimal) correspond à CS7, la classe de contrôle du réseau (''Network Control''). Elle est utilisée dans des mises en œuvre d'IPv6 pour l'émission de certains paquets ICMPv6. Cette valeur est dépréciée. Il est conseillé d'utiliser la valeur CS6 comme spécifié dans le [https://tools.ietf.org/html/rfc4594#section-3 RFC 4594].&lt;br /&gt;
&lt;br /&gt;
=== Références bibliographiques ===&lt;br /&gt;
* RFC 2597 Assured Forwarding PHB Group&lt;br /&gt;
* RFC 2598  An Expedited Forwarding PHB&lt;br /&gt;
* RFC 4594 Configuration Guidelines for DiffServ Service Classes&lt;br /&gt;
* RFC 5865 A Differentiated Services Code Point (DSCP) for Capacity-Admitted Traffic&lt;br /&gt;
&lt;br /&gt;
== Annexe 2: Le mécanisme d’extension de l'en-tête IPv6 ==&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20070</id>
		<title>MOOC:Taches Session 7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=20070"/>
				<updated>2022-02-18T16:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Doc Compagnon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; [[MOOC:Accueil|MOOC]]&amp;gt;[[MOOC:Gestion_de_projet|Gestion de projet]] &amp;gt; Taches Session 7&lt;br /&gt;
&lt;br /&gt;
= Tâches en cours =&lt;br /&gt;
&lt;br /&gt;
== Doc Compagnon ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| G01&lt;br /&gt;
| Guide&lt;br /&gt;
| Mettre à jour le guide de rédaction pour une rédaction homogène &lt;br /&gt;
| P1&lt;br /&gt;
| Tous&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G02&lt;br /&gt;
| Pilotage&lt;br /&gt;
| lisibilité du texte : identifier les passages qui gagnerait à être réécrits &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| G03&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Cadrage d'une activité type &lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
| G04&lt;br /&gt;
| Pilotage&lt;br /&gt;
| Identifier les questions (et les réponses) du forum à intégrer  dans le doc compagnon&lt;br /&gt;
| P1&lt;br /&gt;
| -&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
| C01&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Nouvelle intro Seq4 dans [[MOOC:Compagnon Act40-s7|Act40]] &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C02&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act41-s7|Act41]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C03&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act42-s7|Act42]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C04&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act43-s7|Act43]] (cf [[MOOC:Réunion_20210503|Atelier Seq4]] ) &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C06&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir la [[MOOC:Compagnon Act47|conclusion Seq4]]  (cf [[MOOC:Réunion_20210503|Atelier Seq4]] )&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C07&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Rédiger [[MOOC:Compagnon Act03|Act03]] et [[MOOC:Compagnon Act04|Act04]] à partir de [[MOOC:Compagnon Act41|Act41]] session6&lt;br /&gt;
| P1&lt;br /&gt;
| VV&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C08&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act30-s7|A30]] (gestion des erreurs reportée en A23 ?!)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C09&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act31-s7|A31]] : NDP (Multicast sollicité, Redirect?)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C10&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act32-s7|A32]] : Reprendre DHCPv6 de [[MOOC:Compagnon Act34-s6|A34-s6]] &lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C13&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Intégrer une partie de [[MOOC:Compagnon Act15-s6|A15-s6 Multicast]] dans [[MOOC:Compagnon Act13-s7|A13-s7]], et le reste en annexe.&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C14&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act14-s7|A14-s7]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
|style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C15&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act20-s7|A20-s7]] : plan de la séquence. Rappel sur l'encapsulation de [[MOOC:Compagnon Act24-s6|A24-s6]].&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C16&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act21-s7|A21-s7]] : Ajout des extensions d'en-tête de [[MOOC:Compagnon_Act25-s6|A25-s6]] en annexe. &lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C17&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act23-s7|A23-s7]] à partir de [[MOOC:Compagnon Act31-s7|A31]] et de [[MOOC:Annexe_Compagnon_Act31|Annexe A31]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| C18&lt;br /&gt;
| Cours&lt;br /&gt;
| produire le verbatim des vidéos &lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Portail FUN ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| F01&lt;br /&gt;
| Scenario&lt;br /&gt;
| MAJ de la [https://docs.google.com/spreadsheets/d/13jM-tsn6OcrlpkRgmq5h2EHfhwDV4Zu-Sc9HurclK2A/edit#gid=480308602 méta-scénarisation] pour la session 7 &lt;br /&gt;
| P1&lt;br /&gt;
| BS (PA fait Seq4)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F02&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Identifier les questions à reprendre dans [[MOOC:Table_des_corrections7|Table des corrections]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Janvier&lt;br /&gt;
|-&lt;br /&gt;
| F03&lt;br /&gt;
| Portail FUN&lt;br /&gt;
| Standardiser les termes de la barre de navigation des activités&lt;br /&gt;
| P2&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Février&lt;br /&gt;
|-&lt;br /&gt;
| F04&lt;br /&gt;
| Cours&lt;br /&gt;
| Béta tester le cours&lt;br /&gt;
| P1&lt;br /&gt;
| ???&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F05&lt;br /&gt;
| TP&lt;br /&gt;
| MaJ GN3 + Tests&lt;br /&gt;
| P2&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F06&lt;br /&gt;
| Cours&lt;br /&gt;
| [[MOOC:Table des corrections7|Traiter les questions avec un taux &amp;gt;10% ]]&lt;br /&gt;
| P1&lt;br /&gt;
| Tous (PA fait)&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Novembre&lt;br /&gt;
|-&lt;br /&gt;
| F07&lt;br /&gt;
| Cours&lt;br /&gt;
| Vérifier le nombre de tentatives par Quiz.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F08&lt;br /&gt;
| Cours&lt;br /&gt;
| Mettre les liens des vidéos dans les Ax0.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
| F09&lt;br /&gt;
| Cours&lt;br /&gt;
| Rédiger les objectifs de chaque vidéo.&lt;br /&gt;
| P1&lt;br /&gt;
| Tous &lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Mars&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Tâches terminées =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|-&lt;br /&gt;
| T05&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer exA45 en [[MOOC:Compagnon Act44-s7|Act44]]. &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T11&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act34-s7|A34-s7]] : Sécurité IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Juin&lt;br /&gt;
|- &lt;br /&gt;
| T12&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer les activités de la séquence 1 en s7&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T18&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A11 [[MOOC:Verb11]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T19&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A12 [[MOOC:Verb12]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T20&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A13 [[MOOC:Verb13]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T21&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A14 [[MOOC:Verb14]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T22&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A21 [[MOOC:Verb21]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T23&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A22 [[MOOC:Verb22]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T24&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A23 [[MOOC:Verb23]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T25&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A24 [[MOOC:Verb24]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T26&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A31 [[MOOC:Verb31]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T27&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A32 [[MOOC:Verb32]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T28&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A33 [[MOOC:Verb33]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T29&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A34 [[MOOC:Verb34]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T30&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A40 [[MOOC:Verb40]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T31&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A41 [[MOOC:Verb41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color:#77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T32&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A42 [[MOOC:Verb42]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T33&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A43 [[MOOC:Verb43]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T34&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A44 [[MOOC:Verb44]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20069</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20069"/>
				<updated>2022-02-18T16:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Les mécanismes d’encapsulation ==&lt;br /&gt;
La notion d'encapsulation de protocoles repose sur le principe de l’empilement des couches représentatives des traitements nécessaires à effectuer dans les différents composants d’un réseau. Ces traitements affecteront toutes les couches dans les nœuds d’extrémité, et certaines seulement pour les nœuds intermédiaires.&lt;br /&gt;
&lt;br /&gt;
L’organisation internationale de normalisation ISO a défini le modèle OSI (''Open System Interconnection'') par une décomposition de l'architecture du réseau en 7 couches représentées du niveau Physique jusqu’au niveau Application comme représentée par la figure 1. Le modèle TCP/IP (ou DOD ''Department of Defense'') a eu une approche plus pragmatique en décomposant l'architecture de réseau en 4 couches. Les couches session, présentation et application sont agrégées en une seule couche applicative propre à chaque protocole.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_12_Encapsulation_v01.jpg|thumb|center|500px|Figure 1 : Comparaison modèle OSI - modèle TCP/IP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour simplifier l’organisation, pour un nœud d'extrémité du réseau, nous pouvons considérer que la carte réseau réalise les fonctions de niveau Physique et Liaison, que le traitement des couches Réseau et Transport est réalisé par les couches intermédiaires installées dans le système d’exploitation, et que le reste du système, avec les programmes applicatifs, gère les couches Session, Présentation et Application.&lt;br /&gt;
&lt;br /&gt;
Cette activité vise à présenter l’intégration d’IPv6 dans la pile protocolaire. Aussi, nous aborderons l'encapsulation sous l'angle de deux points importants et impactés par le remplacement de IPv4 par IPv6 au sein de la couche de réseau à savoir: la longueur maximale des unités de transfert (''Maximum Transmission Unit'' (MTU)) et la détection des erreurs d'intégrité (ou erreurs binaires).  La question de la détection d'erreur binaire se pose dans la mesure où le calcul de redondance a disparu de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Traitement des couches basses==&lt;br /&gt;
&lt;br /&gt;
La méthode de transfert d'un datagramme IPv6 entre deux nœuds directement reliés entre eux par un lien physique est le même que pour IPv4. Le datagramme est tout d'abord transmis vers l'interface d'émission qui l'encapsule dans une trame. La trame est une PDU (''Protocol Data Unit'') de niveau 2 dans le modèle de référence OSI. Cette trame est transmise sur le lien avec l'adresse physique du nœud de destination. Cette adresse sur un lien sera appelée adresse MAC dans la suite. Le nœud de destination reçoit la trame sur son interface, désencapsule le datagramme et le traite.&lt;br /&gt;
&lt;br /&gt;
Les différences avec IPv4 sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* sur le support Ethernet, le RFC 2464 précise que le code protocole encapsulé de la trame est différent (champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; d'une trame Ethernet). Par exemple, pour les réseaux à diffusion, le code est &amp;lt;tt&amp;gt;0x86DD&amp;lt;/tt&amp;gt; alors que, pour IPv4, le code est &amp;lt;tt&amp;gt;0x0800&amp;lt;/tt&amp;gt;. À l'origine, il était prévu de garder le même code et d'assurer l'aiguillage entre IPv4 et IPv6 en utilisant le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; du paquet. Mais certains nœuds ne vérifient pas la valeur de ce champ et auraient eu un comportement incontrôlable en essayant de traiter un paquet IPv6 comme un paquet IPv4 ;&lt;br /&gt;
* la résolution de l'adresse MAC de destination à partir de l'adresse IP de destination du paquet change. Par exemple, sur un réseau à diffusion, cette résolution est faite en IPv4 par le protocole ARP alors qu'en IPv6 on utilise le protocole de découverte de voisins comme nous le verrons dans la séquence 3 ;&lt;br /&gt;
* la taille minimale d'une trame est passée à 1 280 octets ; ceci peut forcer certains protocoles à utiliser plusieurs trames par datagramme IPv6 ;&lt;br /&gt;
* enfin, certains protocoles ont des parties propres à IPv4. Ces parties doivent être modifiés. C'est le cas des protocoles de contrôle et de compression de PPP.&lt;br /&gt;
&lt;br /&gt;
=== Couche physique ===&lt;br /&gt;
Commençons par la couche ''physique'', qui est à la base de l’édifice de ce modèle. Les spécifications de cette couche dépendent du support lui-même. Nous devons gérer la transmission des informations binaires issues du codage des trames et des paquets sur un support cuivre, optique ou sans fil ; d’où la nécessité d’adaptation aux caractéristiques des composants (câbles, connecteurs ou antennes) et d’une méthode appropriée de codage des données (représentation physique des données binaires). &lt;br /&gt;
&lt;br /&gt;
La représentation binaire utilisée dépend du support. Sur du cuivre, on utilise des variations d’impulsions électriques ; sur une fibre optique, ce sont des variations lumineuses sur une ou plusieurs longueurs d’ondes ; en transmission sans fil, ce sont généralement des signaux radio, laser ou infrarouge. La couche ''physique'' coordonne le débit et la synchronisation de l'émetteur et du récepteur réseau, tout en tentant de garantir la transparence et l’intégrité d’un flux d’information binaire, sans notion d’interprétation du contenu.&lt;br /&gt;
&lt;br /&gt;
Hélas, cette couche est fréquemment soumise à différentes perturbations issues de l'environnement extérieur au canal de transmission : rayonnements électromagnétiques, micro-coupures ou altérations des signaux par différents facteurs. Les coupleurs intégrés dans les cartes réseau réalisent les fonctions nécessaires et utiles au niveau ''physique'', et on dispose d’un indicateur de qualité de la transmission avec le calcul du CRC (''Cyclic Redondancy Check'').&lt;br /&gt;
&lt;br /&gt;
=== Couche liaison ===&lt;br /&gt;
Le rôle de la couche ''liaison'' est, entre autres, de contrôler l'accès à la couche physique, en réalisant le multiplexage temporel sur le support de transmission, et de transformer la couche ''physique'' en une liaison à priori exempte d'erreurs de transmission pour la couche ''réseau''. La couche ''liaison'' doit être capable d’écarter le trafic nécessaire à la synchronisation sur le lien physique, et de reconnaître les débuts et fins de trames. Cette couche écarte les trames en cas de réception erronée, comme en cas de non respect du format, ou bien en cas de problème sur la ligne de transmission. La vérification du champ CRC aide à faire ce tri. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement d’un récepteur incapable de suivre un rythme imposé.&lt;br /&gt;
&lt;br /&gt;
L'unité de données de protocole de la couche ''liaison de données'' est la trame (''Link Protocol Data Unit'' (LPDU)), qui est composée de plusieurs champs permettant d’identifier l’origine des échanges, le rôle de la trame, le contenu de l’enveloppe et, en fin de trame, le champ CRC, le tout étant encadré par une séquence particulière de codage de début et de fin de trame.&lt;br /&gt;
&lt;br /&gt;
Si nous prenons l’exemple de la trame Ethernet originale (cf. Figure 2), un délai inter-trame minimum de 96 intervalles de temps est spécifié comme silence sur un support cuivre alors que, sur un support optique, tout silence est comblé par la transmission d’un ou plusieurs symboles particuliers « idle » ; une parfaite synchronisation est alors maintenue entre les extrémités du lien optique.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015 10 12 Ethernet v01.jpg|thumb|center|600px|Figure 2 : Format de la trame Ethernet.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Une fois que l’arrivée d’une trame Ethernet est détectée par le coupleur, les premiers champs immédiatement accessibles correspondent aux adresses MAC &amp;lt;tt&amp;gt;Destination&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;Source&amp;lt;/tt&amp;gt; puis, soit au champ &amp;lt;tt&amp;gt;Longueur&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation au standard 802.3, ou bien au champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation avec le standard Ethernet original. Ensuite, l’enveloppe de la trame transporte les données, qui correspondent aux paquets IPv6 dès lors que le champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; vaut &amp;lt;tt&amp;gt;0x86dd&amp;lt;/tt&amp;gt;. Vient ensuite le champ CRC codé sur 32 bits.&lt;br /&gt;
Dans le cas d’une encapsulation au standard 802.1Q, d’autres champs permettent la reconnaissance du numéro de VLAN (''Virtual Local Access Network'') et du niveau de priorité défini dans le standard 802.1p.&lt;br /&gt;
&lt;br /&gt;
Un des éléments particulièrement importants est la capacité de transport de la trame. Dans l’exemple ci-dessus, nous voyons que la trame Ethernet traditionnelle dispose d’une enveloppe qui autorise le transport de 1500 octets maximum : MTU = 1500.&lt;br /&gt;
&lt;br /&gt;
D’autres formats de trames permettent des échanges plus ou moins importants. Citons quelques MTU :&lt;br /&gt;
* PPPoE = 1492&lt;br /&gt;
* PPPoA = 1468&lt;br /&gt;
* MPLS = 1500 à 65535&lt;br /&gt;
* 802.15.4 (LowPAN) = 81&lt;br /&gt;
* Ethernet Jumboframe = 9000&lt;br /&gt;
&lt;br /&gt;
Rappelons que la spécification du protocole IPv6 impose une taille minimale du paquet de 1280 octets. Pour les couches liaison imposant des tailles inférieures, il est donc obligatoire de mettre en place une ''couche d'adaptation'' comme 6LowPAN (RFC 4944) pour les réseaux 802.15.4. Cette couche située entre la couche ''liaison'' et la couche ''réseau'' IPv6 prend en charge le découpage des paquets IPv6 en fragments pouvant être transportés dans les trames et leur ré-assemblage au niveau du premier routeur de sortie.&lt;br /&gt;
&lt;br /&gt;
== Couches intermédiaires ==&lt;br /&gt;
&lt;br /&gt;
=== Couche réseau ===&lt;br /&gt;
&lt;br /&gt;
Étant donné que la taille minimum de l’en-tête IPv6 est de 40 octets, le MTU résiduel d’une trame Ethernet classique est de 1500 - 40 = 1460 octets ; sachant que ces 1460 octets de données seront probablement encore amputées d’en-têtes de niveau transport, par exemple 20 octets minimum pour TCP et 8 octets pour UDP.&lt;br /&gt;
&lt;br /&gt;
Parmi les différences existant entre les datagrammes IPv4 et IPv6, il y a la disparition de la somme de contrôle d'erreur (''checksum'') dans les en-têtes IPv6. Cette somme de contrôle était utilisée pour vérifier l'absence d'erreur binaire de l'en-tête du paquet traité. Une erreur binaire est le changement de valeur d'un bit effectué lors de la transmission. En IPv4, il est nécessaire de la vérifier et de l'ajuster lors de chaque retransmission par un routeur, ce qui entraîne une augmentation du temps de traitement du paquet. &lt;br /&gt;
Cette somme ne vérifie que l'en-tête IPv4, pas le reste du paquet. Aujourd'hui, les supports physiques sont de meilleure qualité et savent détecter les erreurs (par exemple, Ethernet a toujours calculé sa propre somme de contrôle ; PPP, qui a presque partout remplacé SLIP, possède un CRC). L'intérêt de la somme de contrôle au niveau réseau a diminué et ce champ a été supprimé de l'en-tête IPv6. &lt;br /&gt;
&lt;br /&gt;
Le checksum sur l'en-tête IPv6 n'existant plus, il faut néanmoins se prémunir des erreurs de transmission. En particulier, une erreur sur l'adresse de destination va faire router un paquet dans une mauvaise direction. Le destinataire doit donc vérifier que les informations d'en-tête IP sont correctes avant d'accepter ces paquets. Dans les mises en œuvre des piles de protocoles Internet, les entités de niveau transport remplissent certains champs du niveau réseau. Il a donc été décidé que tous les protocoles au-dessus d'IPv6 devaient utiliser une somme de contrôle intégrant à la fois les données et les informations de l'en-tête IPv6. La notion de ''pseudo-en-tête'' dérive de cette conception. Pour un protocole comme TCP, qui possède une somme de contrôle, cela signifie qu'il faut modifier le calcul de cette somme. Pour un protocole comme UDP, qui possède une somme de contrôle facultative, cela signifie qu'il faut modifier le calcul de cette somme et le rendre obligatoire. &lt;br /&gt;
&lt;br /&gt;
IPv6 a unifié la méthode de calcul des différentes sommes de contrôle. Le RFC 8200 définit, dans sa section 8.1, un ''pseudo-en-tête'' (cf. Figure 3), résultat de la concaténation d'une partie de l'en-tête IPv6 et du PDU du protocole concerné. L'algorithme de calcul du checksum est celui utilisé en IPv4. Il est très simple à mettre en œuvre et ne demande pas d'opérations complexes. Il s'agit de faire la somme en complément à 1 des mots de 16 bits du ''pseudo-en-tête'', de l'en-tête du protocole de transport, et des données, puis de prendre le complément à 1 du résultat.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Fig4-10.png|thumb|center|500px|Figure 3 : Champs du &amp;lt;tt&amp;gt;pseudo-en-tête&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Il faut noter que les informations contenues dans le ''pseudo-en-tête'' ne seront pas émises telles quelles sur le réseau. Le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; du ''pseudo-en-tête'' ne reflète pas celui qui sera émis dans les paquets puisque les extensions ne sont pas prises en compte dans le calcul du checksum. Ainsi, si l'extension de routage est mise en œuvre, l'adresse de la destination est celle du dernier nœud. De même, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est codé sur 32 bits pour contenir la valeur de l'option ''jumbogramme'' si celle-ci est présente.&lt;br /&gt;
&lt;br /&gt;
=== Couches Transport ===&lt;br /&gt;
&lt;br /&gt;
==== UDP et TCP ====&lt;br /&gt;
&lt;br /&gt;
Les modifications apportées aux protocoles de niveau transport sont minimes. L'un des pré-requis à la mise en œuvre d'IPv6 était de laisser en l'état aussi bien TCP (''Transmission Control Protocol'') qu'UDP (''User Datagram Protocol''). Ces protocoles de transport sont utilisés par la très grande majorité des applications réseau et l'absence de modification facilitera grandement le passage de IPv4 à IPv6. &lt;br /&gt;
&lt;br /&gt;
La principale modification de ces protocoles concerne le calcul de la somme de contrôle (''checksum'') pour vérifier l'intégrité des données. Comme la couche ''réseau'' ne possède pas de champ de contrôle, c'est à la couche de transport que revient cette tâche. Le calcul de la somme de contrôle au niveau du transport a donc été adapté pour inclure des données de l'en-tête. De plus, la présence d'une somme de contrôle devient obligatoire pour tout protocole de niveau supérieur transporté au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
'''''Nota : ''''' ''les RFC 6935 et RFC 6936 ont introduit une dispense à cette obligation, dans les cas des techniques de tunnel au dessus d'UDP. La nouvelle philosophie est résumée ainsi par S. Bortzmeyer : &amp;quot;par défaut, la somme de contrôle doit être calculée et mise dans le paquet. Mais on peut s'en dispenser dans le cas de tunnels (et uniquement celui-ci), sur le paquet extérieur. Le protocole à l'intérieur du paquet (qui n'est pas forcément de l'UDP et même pas forcément de l'IPv6) doit rester protégé par sa propre somme de contrôle. Cela ne doit s'appliquer que pour une liste explicite de ports (ceux utilisés par le tunnel) et pas pour tout le trafic UDP du nœud. Et le tout doit se faire en lisant le RFC 6936 qui précise les conditions d'application de cette nouvelle règle.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Un autre changement au niveau des protocoles de niveau 4 concerne la prise en compte de l'option ''jumbogramme'' de l'extension ''proche-en-proche''. Le RFC 2675 définit le comportement d’UDP et de TCP quand les jumbogrammes sont utilisés. En effet, les en-têtes de ces messages contiennent eux aussi un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; codé sur 16 bits et, par conséquent, insuffisant pour coder la longueur du jumbogramme :&lt;br /&gt;
* pour le protocole UDP, si la longueur des données excède 65 535 octets, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est mis à 0. Le récepteur détermine la longueur des données par la connaissance de la taille dans l'option ''jumbogramme'' ;&lt;br /&gt;
* le protocole TCP pose plus de problèmes. En effet, bien que les messages TCP ne contiennent pas de champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;, plusieurs compteurs sont codés sur 16 bits ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de la fenêtre de réception ne pose pas de problème depuis que le RFC 1323 a défini l'option ''TCP window scale'' qui donne le facteur multiplicatif qui doit être appliqué à ce champ ;&lt;br /&gt;
* à l'ouverture de connexion, la taille maximale des segments (MSS) est négociée. Le RFC 2675 précise que, si cette taille doit être supérieure à 65 535, la valeur 65 535 est envoyée et le récepteur prend en compte la longueur déterminée par l'algorithme de découverte du MTU. &lt;br /&gt;
&lt;br /&gt;
Pour l'envoi de données urgentes avec TCP, on utilise un bit spécifique de l'en-tête TCP (bit &amp;lt;tt&amp;gt;URG&amp;lt;/tt&amp;gt;) ainsi que le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. Ce dernier sert à référencer la fin des données à traiter de manière particulière. Trois cas peuvent se présenter :&lt;br /&gt;
* le premier, qui est identique à IPv4, est celui où le pointeur indique une position de moins de 65 535 ;&lt;br /&gt;
* le second se produit lorsque le déplacement est supérieur à 65 535 et supérieur ou égal à la taille des données TCP envoyées. Cette fois-ci, on place la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt; et on continue le traitement normal des paquets TCP ;&lt;br /&gt;
* le dernier cas intervient quand le pointeur indique un déplacement de plus de 65 535 qui est inférieur à la taille des données TCP. Un premier paquet est alors envoyé, dans lequel on met la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. L'important est de choisir une taille de paquet de manière à ce que le déplacement dans le second paquet, pour indiquer la fin des données urgentes, soit inférieur à 65 535. &lt;br /&gt;
&lt;br /&gt;
Il existe d'autres propositions pour faire évoluer TCP. Il faut remarquer que le travail n'est pas de même ampleur que pour IP. En effet, TCP est un protocole de bout en bout. La transition vers une nouvelle génération du protocole peut se faire par négociation entre les deux extrémités. Pour IP, tous les routeurs intermédiaires doivent prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
==== UDP-lite ====&lt;br /&gt;
&lt;br /&gt;
UDP-lite permet de remonter aux couches supérieures des données erronées pendant leur transport. Si, dans un environnement informatique, une erreur peut avoir des conséquences relativement graves quant à l'intégrité des données, il est normal de rejeter ces paquets. Dans le domaine du multimédia, cette exigence peut être relâchée. En effet, la plupart des décodeurs de flux audio ou vidéo sont capables de supporter un certain nombre d'erreurs binaires dans un flux de données. Pour améliorer la qualité perçue par l'utilisateur, il est donc préférable d'accepter des paquets erronés plutôt que de rejeter un bloc complet d'informations qui se traduirait par une coupure perceptible du flux.&lt;br /&gt;
&lt;br /&gt;
En IPv4, l'utilisation du ''checksum UDP'' étant optionnelle (la valeur 0 indique que le checksum n'est pas calculé), UDP peut être utilisé pour transporter des flux multimédias. Avec IPv6, l'utilisation du checksum a été rendue obligatoire puisque le niveau 3 n'en possède pas. Pour éviter qu'un paquet comportant des erreurs ne puisse pas être remonté aux couches supérieures, le protocole UDP-lite a été défini par le RFC 3828. Les modifications sont minimes par rapport à UDP. Le format de la trame reste le même ; seule la sémantique du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est changée. Avec UDP, ce champ est inutile puisqu'il est facilement déduit du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de l'en-tête IP. UDP-lite le transforme en champ &amp;lt;tt&amp;gt;couverture du checksum&amp;lt;/tt&amp;gt;. Si la longueur est 0, UDP-lite considère que le checksum couvre tout le paquet. La valeur 8 indique que seul l'en-tête UDP est protégé par le checksum (ainsi qu'une partie de l'en-tête IP grâce au pseudo-header). Les valeurs comprises entre 1 et 7 sont interdites car le checksum UDP-lite doit toujours couvrir l'en-tête. Une valeur supérieure à 8 indique qu'une partie des données sont protégées. Si la couverture est égale à la longueur du message, on se retrouve dans un cas compatible avec UDP.&lt;br /&gt;
&lt;br /&gt;
==== SCTP ====&lt;br /&gt;
Le protocole SCTP (''Stream Control Transmission Protocol'') RFC 4960 est fortement lié au protocole IPv6. SCTP est un protocole de niveau 4 initialement conçu pour transporter des informations de signalisation&amp;lt;ref&amp;gt;Fu, S. et Atiquzzaman, M. (2004). IEEE Communications Magazine, Vol. 42, No. 4, April. &lt;br /&gt;
SCTP: State of the Art in Research, Products, and Technical Challenges.&amp;lt;/ref&amp;gt;. La fiabilité est donc un prérequis important et la gestion de la multi-domiciliation est prise en compte. L'idée est de permettre aux deux nœuds d'extrémité d'échanger, à l'initialisation de la connexion (appelée, dans le standard, ''association''), l'ensemble de leurs adresses IPv4 et IPv6. Chaque nœud choisit une adresse privilégiée pour émettre les données vers l'autre extrémité et surveille périodiquement l'accessibilité des autres adresses. Si le nœud n'est plus accessible par l'adresse principale, une adresse secondaire est choisie. &lt;br /&gt;
&lt;br /&gt;
SCTP permet une transition douce d'IPv4 vers IPv6 puisque l'application n'a plus à se préoccuper de la gestion des adresses. Si les deux entités possèdent une adresse IPv6, celle-ci sera privilégiée. De plus, SCTP peut servir de brique de base à la gestion de la multi-domiciliation IPv6. En effet, avec TCP, une connexion est identifiée par ses adresses. Si une adresse n'est plus accessible, le fait d'en changer peut conduire à la coupure de la connexion. Il faut avoir recours à des subterfuges, comme la mobilité IP, pour maintenir la connexion. SCTP brise ce lien entre la localisation du nœud et l'identification des associations.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a fait un rappel des différentes couches de la pile réseau d'un système. La couche réseau, ou niveau 3, est le langage commun de tous les nœuds connectés à l'Internet. L'introduction d'IPv6 a donc un impact sur les différentes couches, notamment la couche sous-jacente, couche liaison, et les couches supérieures, notamment la couche transport.&lt;br /&gt;
&lt;br /&gt;
Même si ces couches sont censées être indépendantes dans le modèle théorique OSI, force est de remarquer que dans la pratique, elles sont interdépendantes.&lt;br /&gt;
Pour preuve le champ de contrôle d'erreur n'a pas été retenu au niveau de la couche IP  car il y a déjà un contrôle fait au niveau ''liaison''. Et un autre contrôle d'erreur a été  placé dans les couches supérieures afin de vérifier l'intégrité des données transportées. Cette vérification se fait uniquement par le destinataire. Le contrôle d'erreur est un exemple qui illustre  l'interdépendance des couches.&lt;br /&gt;
&lt;br /&gt;
Nous venons d'apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 1323 : TCP Extensions for High Performance [http://www.bortzmeyer.org/1323.html Analyse]&lt;br /&gt;
* RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 3828 : The Lightweight User Datagram Protocol (UDP-Lite) [http://www.bortzmeyer.org/3828.html Analyse]&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 4960 Stream Control Transmission Protocol [http://www.bortzmeyer.org/4960.html Analyse]&lt;br /&gt;
* RFC 5692 : Transmission of IP over Ethernet over IEEE 802.16 networks [http://www.bortzmeyer.org/5692.html Analyse]&lt;br /&gt;
* RFC 6691 : TCP Options and MSS [http://www.bortzmeyer.org/6691.html Analyse]&lt;br /&gt;
* RFC 6935: IPv6 and UDP Checksums for Tunneled Packets [http://www.bortzmeyer.org/6935.html Analyse]&lt;br /&gt;
* RFC 6936: Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums[http://www.bortzmeyer.org/6936.html Analyse]&lt;br /&gt;
* RFC 6951 : UDP Encapsulation of SCTP Packets for End-Host to End-Host Communication [http://www.bortzmeyer.org/6951.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20068</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20068"/>
				<updated>2022-02-18T16:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Introduction de la séquence 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Les mécanismes d’encapsulation ==&lt;br /&gt;
La notion d'encapsulation de protocoles repose sur le principe de l’empilement des couches représentatives des traitements nécessaires à effectuer dans les différents composants d’un réseau. Ces traitements affecteront toutes les couches dans les nœuds d’extrémité, et certaines seulement pour les nœuds intermédiaires.&lt;br /&gt;
&lt;br /&gt;
L’organisation internationale de normalisation ISO a défini le modèle OSI (''Open System Interconnection'') par une décomposition de l'architecture du réseau en 7 couches représentées du niveau Physique jusqu’au niveau Application comme représentée par la figure 1. Le modèle TCP/IP (ou DOD ''Department of Defense'') a eu une approche plus pragmatique en décomposant l'architecture de réseau en 4 couches. Les couches session, présentation et application sont agrégées en une seule couche applicative propre à chaque protocole.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_12_Encapsulation_v01.jpg|thumb|center|500px|Figure 1 : Comparaison modèle OSI - modèle TCP/IP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour simplifier l’organisation, pour un nœud d'extrémité du réseau, nous pouvons considérer que la carte réseau réalise les fonctions de niveau Physique et Liaison, que le traitement des couches Réseau et Transport est réalisé par les couches intermédiaires installées dans le système d’exploitation, et que le reste du système, avec les programmes applicatifs, gère les couches Session, Présentation et Application.&lt;br /&gt;
&lt;br /&gt;
Cette activité vise à présenter l’intégration d’IPv6 dans la pile protocolaire. Aussi, nous aborderons l'encapsulation sous l'angle de deux points importants et impactés par le remplacement de IPv4 par IPv6 au sein de la couche de réseau à savoir: la longueur maximale des unités de transfert (''Maximum Transmission Unit'' (MTU)) et la détection des erreurs d'intégrité (ou erreurs binaires).  La question de la détection d'erreur binaire se pose dans la mesure où le calcul de redondance a disparu de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Traitement des couches basses==&lt;br /&gt;
&lt;br /&gt;
La méthode de transfert d'un datagramme IPv6 entre deux nœuds directement reliés entre eux par un lien physique est le même que pour IPv4. Le datagramme est tout d'abord transmis vers l'interface d'émission qui l'encapsule dans une trame. La trame est une PDU (''Protocol Data Unit'') de niveau 2 dans le modèle de référence OSI. Cette trame est transmise sur le lien avec l'adresse physique du nœud de destination. Cette adresse sur un lien sera appelée adresse MAC dans la suite. Le nœud de destination reçoit la trame sur son interface, désencapsule le datagramme et le traite.&lt;br /&gt;
&lt;br /&gt;
Les différences avec IPv4 sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* sur le support Ethernet, le RFC 2464 précise que le code protocole encapsulé de la trame est différent (champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; d'une trame Ethernet). Par exemple, pour les réseaux à diffusion, le code est &amp;lt;tt&amp;gt;0x86DD&amp;lt;/tt&amp;gt; alors que, pour IPv4, le code est &amp;lt;tt&amp;gt;0x0800&amp;lt;/tt&amp;gt;. À l'origine, il était prévu de garder le même code et d'assurer l'aiguillage entre IPv4 et IPv6 en utilisant le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; du paquet. Mais certains nœuds ne vérifient pas la valeur de ce champ et auraient eu un comportement incontrôlable en essayant de traiter un paquet IPv6 comme un paquet IPv4 ;&lt;br /&gt;
* la résolution de l'adresse MAC de destination à partir de l'adresse IP de destination du paquet change. Par exemple, sur un réseau à diffusion, cette résolution est faite en IPv4 par le protocole ARP alors qu'en IPv6 on utilise le protocole de découverte de voisins comme nous le verrons dans la séquence 3 ;&lt;br /&gt;
* la taille minimale d'une trame est passée à 1 280 octets ; ceci peut forcer certains protocoles à utiliser plusieurs trames par datagramme IPv6 ;&lt;br /&gt;
* enfin, certains protocoles ont des parties propres à IPv4. Ces parties doivent être modifiés. C'est le cas des protocoles de contrôle et de compression de PPP.&lt;br /&gt;
&lt;br /&gt;
=== Couche physique ===&lt;br /&gt;
Commençons par la couche ''physique'', qui est à la base de l’édifice de ce modèle. Les spécifications de cette couche dépendent du support lui-même. Nous devons gérer la transmission des informations binaires issues du codage des trames et des paquets sur un support cuivre, optique ou sans fil ; d’où la nécessité d’adaptation aux caractéristiques des composants (câbles, connecteurs ou antennes) et d’une méthode appropriée de codage des données (représentation physique des données binaires). &lt;br /&gt;
&lt;br /&gt;
La représentation binaire utilisée dépend du support. Sur du cuivre, on utilise des variations d’impulsions électriques ; sur une fibre optique, ce sont des variations lumineuses sur une ou plusieurs longueurs d’ondes ; en transmission sans fil, ce sont généralement des signaux radio, laser ou infrarouge. La couche ''physique'' coordonne le débit et la synchronisation de l'émetteur et du récepteur réseau, tout en tentant de garantir la transparence et l’intégrité d’un flux d’information binaire, sans notion d’interprétation du contenu.&lt;br /&gt;
&lt;br /&gt;
Hélas, cette couche est fréquemment soumise à différentes perturbations issues de l'environnement extérieur au canal de transmission : rayonnements électromagnétiques, micro-coupures ou altérations des signaux par différents facteurs. Les coupleurs intégrés dans les cartes réseau réalisent les fonctions nécessaires et utiles au niveau ''physique'', et on dispose d’un indicateur de qualité de la transmission avec le calcul du CRC (''Cyclic Redondancy Check'').&lt;br /&gt;
&lt;br /&gt;
=== Couche liaison ===&lt;br /&gt;
Le rôle de la couche ''liaison'' est, entre autres, de contrôler l'accès à la couche physique, en réalisant le multiplexage temporel sur le support de transmission, et de transformer la couche ''physique'' en une liaison à priori exempte d'erreurs de transmission pour la couche ''réseau''. La couche ''liaison'' doit être capable d’écarter le trafic nécessaire à la synchronisation sur le lien physique, et de reconnaître les débuts et fins de trames. Cette couche écarte les trames en cas de réception erronée, comme en cas de non respect du format, ou bien en cas de problème sur la ligne de transmission. La vérification du champ CRC aide à faire ce tri. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement d’un récepteur incapable de suivre un rythme imposé.&lt;br /&gt;
&lt;br /&gt;
L'unité de données de protocole de la couche ''liaison de données'' est la trame (''Link Protocol Data Unit'' (LPDU)), qui est composée de plusieurs champs permettant d’identifier l’origine des échanges, le rôle de la trame, le contenu de l’enveloppe et, en fin de trame, le champ CRC, le tout étant encadré par une séquence particulière de codage de début et de fin de trame.&lt;br /&gt;
&lt;br /&gt;
Si nous prenons l’exemple de la trame Ethernet originale (cf. Figure 2), un délai inter-trame minimum de 96 intervalles de temps est spécifié comme silence sur un support cuivre alors que, sur un support optique, tout silence est comblé par la transmission d’un ou plusieurs symboles particuliers « idle » ; une parfaite synchronisation est alors maintenue entre les extrémités du lien optique.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015 10 12 Ethernet v01.jpg|thumb|center|600px|Figure 2 : Format de la trame Ethernet.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Une fois que l’arrivée d’une trame Ethernet est détectée par le coupleur, les premiers champs immédiatement accessibles correspondent aux adresses MAC &amp;lt;tt&amp;gt;Destination&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;Source&amp;lt;/tt&amp;gt; puis, soit au champ &amp;lt;tt&amp;gt;Longueur&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation au standard 802.3, ou bien au champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation avec le standard Ethernet original. Ensuite, l’enveloppe de la trame transporte les données, qui correspondent aux paquets IPv6 dès lors que le champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; vaut &amp;lt;tt&amp;gt;0x86dd&amp;lt;/tt&amp;gt;. Vient ensuite le champ CRC codé sur 32 bits.&lt;br /&gt;
Dans le cas d’une encapsulation au standard 802.1Q, d’autres champs permettent la reconnaissance du numéro de VLAN (''Virtual Local Access Network'') et du niveau de priorité défini dans le standard 802.1p.&lt;br /&gt;
&lt;br /&gt;
Un des éléments particulièrement importants est la capacité de transport de la trame. Dans l’exemple ci-dessus, nous voyons que la trame Ethernet traditionnelle dispose d’une enveloppe qui autorise le transport de 1500 octets maximum : MTU = 1500.&lt;br /&gt;
&lt;br /&gt;
D’autres formats de trames permettent des échanges plus ou moins importants. Citons quelques MTU :&lt;br /&gt;
* PPPoE = 1492&lt;br /&gt;
* PPPoA = 1468&lt;br /&gt;
* MPLS = 1500 à 65535&lt;br /&gt;
* 802.15.4 (LowPAN) = 81&lt;br /&gt;
* Ethernet Jumboframe = 9000&lt;br /&gt;
&lt;br /&gt;
Rappelons que la spécification du protocole IPv6 impose une taille minimale du paquet de 1280 octets. Pour les couches liaison imposant des tailles inférieures, il est donc obligatoire de mettre en place une ''couche d'adaptation'' comme 6LowPAN (RFC 4944) pour les réseaux 802.15.4. Cette couche située entre la couche ''liaison'' et la couche ''réseau'' IPv6 prend en charge le découpage des paquets IPv6 en fragments pouvant être transportés dans les trames et leur ré-assemblage au niveau du premier routeur de sortie.&lt;br /&gt;
&lt;br /&gt;
== Couches intermédiaires ==&lt;br /&gt;
&lt;br /&gt;
=== Couche réseau ===&lt;br /&gt;
&lt;br /&gt;
Étant donné que la taille minimum de l’en-tête IPv6 est de 40 octets, le MTU résiduel d’une trame Ethernet classique est de 1500 - 40 = 1460 octets ; sachant que ces 1460 octets de données seront probablement encore amputées d’en-têtes de niveau transport, par exemple 20 octets minimum pour TCP et 8 octets pour UDP.&lt;br /&gt;
&lt;br /&gt;
Parmi les différences existant entre les datagrammes IPv4 et IPv6, il y a la disparition de la somme de contrôle d'erreur (''checksum'') dans les en-têtes IPv6. Cette somme de contrôle était utilisée pour vérifier l'absence d'erreur binaire de l'en-tête du paquet traité. Une erreur binaire est le changement de valeur d'un bit effectué lors de la transmission. En IPv4, il est nécessaire de la vérifier et de l'ajuster lors de chaque retransmission par un routeur, ce qui entraîne une augmentation du temps de traitement du paquet. &lt;br /&gt;
Cette somme ne vérifie que l'en-tête IPv4, pas le reste du paquet. Aujourd'hui, les supports physiques sont de meilleure qualité et savent détecter les erreurs (par exemple, Ethernet a toujours calculé sa propre somme de contrôle ; PPP, qui a presque partout remplacé SLIP, possède un CRC). L'intérêt de la somme de contrôle au niveau réseau a diminué et ce champ a été supprimé de l'en-tête IPv6. &lt;br /&gt;
&lt;br /&gt;
Le checksum sur l'en-tête IPv6 n'existant plus, il faut néanmoins se prémunir des erreurs de transmission. En particulier, une erreur sur l'adresse de destination va faire router un paquet dans une mauvaise direction. Le destinataire doit donc vérifier que les informations d'en-tête IP sont correctes avant d'accepter ces paquets. Dans les mises en œuvre des piles de protocoles Internet, les entités de niveau transport remplissent certains champs du niveau réseau. Il a donc été décidé que tous les protocoles au-dessus d'IPv6 devaient utiliser une somme de contrôle intégrant à la fois les données et les informations de l'en-tête IPv6. La notion de ''pseudo-en-tête'' dérive de cette conception. Pour un protocole comme TCP, qui possède une somme de contrôle, cela signifie qu'il faut modifier le calcul de cette somme. Pour un protocole comme UDP, qui possède une somme de contrôle facultative, cela signifie qu'il faut modifier le calcul de cette somme et le rendre obligatoire. &lt;br /&gt;
&lt;br /&gt;
IPv6 a unifié la méthode de calcul des différentes sommes de contrôle. Le RFC 8200 définit, dans sa section 8.1, un ''pseudo-en-tête'' (cf. Figure 3), résultat de la concaténation d'une partie de l'en-tête IPv6 et du PDU du protocole concerné. L'algorithme de calcul du checksum est celui utilisé en IPv4. Il est très simple à mettre en œuvre et ne demande pas d'opérations complexes. Il s'agit de faire la somme en complément à 1 des mots de 16 bits du ''pseudo-en-tête'', de l'en-tête du protocole de transport, et des données, puis de prendre le complément à 1 du résultat.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Fig4-10.png|thumb|center|500px|Figure 3 : Champs du &amp;lt;tt&amp;gt;pseudo-en-tête&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Il faut noter que les informations contenues dans le ''pseudo-en-tête'' ne seront pas émises telles quelles sur le réseau. Le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; du ''pseudo-en-tête'' ne reflète pas celui qui sera émis dans les paquets puisque les extensions ne sont pas prises en compte dans le calcul du checksum. Ainsi, si l'extension de routage est mise en œuvre, l'adresse de la destination est celle du dernier nœud. De même, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est codé sur 32 bits pour contenir la valeur de l'option ''jumbogramme'' si celle-ci est présente.&lt;br /&gt;
&lt;br /&gt;
=== Couches Transport ===&lt;br /&gt;
&lt;br /&gt;
==== UDP et TCP ====&lt;br /&gt;
&lt;br /&gt;
Les modifications apportées aux protocoles de niveau transport sont minimes. L'un des pré-requis à la mise en œuvre d'IPv6 était de laisser en l'état aussi bien TCP (''Transmission Control Protocol'') qu'UDP (''User Datagram Protocol''). Ces protocoles de transport sont utilisés par la très grande majorité des applications réseau et l'absence de modification facilitera grandement le passage de IPv4 à IPv6. &lt;br /&gt;
&lt;br /&gt;
La principale modification de ces protocoles concerne le calcul de la somme de contrôle (''checksum'') pour vérifier l'intégrité des données. Comme la couche ''réseau'' ne possède pas de champ de contrôle, c'est à la couche de transport que revient cette tâche. Le calcul de la somme de contrôle au niveau du transport a donc été adapté pour inclure des données de l'en-tête. De plus, la présence d'une somme de contrôle devient obligatoire pour tout protocole de niveau supérieur transporté au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
'''''Nota : ''''' ''les RFC 6935 et RFC 6936 ont introduit une dispense à cette obligation, dans les cas des techniques de tunnel au dessus d'UDP. La nouvelle philosophie est résumée ainsi par S. Bortzmeyer : &amp;quot;par défaut, la somme de contrôle doit être calculée et mise dans le paquet. Mais on peut s'en dispenser dans le cas de tunnels (et uniquement celui-ci), sur le paquet extérieur. Le protocole à l'intérieur du paquet (qui n'est pas forcément de l'UDP et même pas forcément de l'IPv6) doit rester protégé par sa propre somme de contrôle. Cela ne doit s'appliquer que pour une liste explicite de ports (ceux utilisés par le tunnel) et pas pour tout le trafic UDP du nœud. Et le tout doit se faire en lisant le RFC 6936 qui précise les conditions d'application de cette nouvelle règle.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Un autre changement au niveau des protocoles de niveau 4 concerne la prise en compte de l'option ''jumbogramme'' de l'extension ''proche-en-proche''. Le RFC 2675 définit le comportement d’UDP et de TCP quand les jumbogrammes sont utilisés. En effet, les en-têtes de ces messages contiennent eux aussi un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; codé sur 16 bits et, par conséquent, insuffisant pour coder la longueur du jumbogramme :&lt;br /&gt;
* pour le protocole UDP, si la longueur des données excède 65 535 octets, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est mis à 0. Le récepteur détermine la longueur des données par la connaissance de la taille dans l'option ''jumbogramme'' ;&lt;br /&gt;
* le protocole TCP pose plus de problèmes. En effet, bien que les messages TCP ne contiennent pas de champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;, plusieurs compteurs sont codés sur 16 bits ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de la fenêtre de réception ne pose pas de problème depuis que le RFC 1323 a défini l'option ''TCP window scale'' qui donne le facteur multiplicatif qui doit être appliqué à ce champ ;&lt;br /&gt;
* à l'ouverture de connexion, la taille maximale des segments (MSS) est négociée. Le RFC 2675 précise que, si cette taille doit être supérieure à 65 535, la valeur 65 535 est envoyée et le récepteur prend en compte la longueur déterminée par l'algorithme de découverte du MTU. &lt;br /&gt;
&lt;br /&gt;
Pour l'envoi de données urgentes avec TCP, on utilise un bit spécifique de l'en-tête TCP (bit &amp;lt;tt&amp;gt;URG&amp;lt;/tt&amp;gt;) ainsi que le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. Ce dernier sert à référencer la fin des données à traiter de manière particulière. Trois cas peuvent se présenter :&lt;br /&gt;
* le premier, qui est identique à IPv4, est celui où le pointeur indique une position de moins de 65 535 ;&lt;br /&gt;
* le second se produit lorsque le déplacement est supérieur à 65 535 et supérieur ou égal à la taille des données TCP envoyées. Cette fois-ci, on place la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt; et on continue le traitement normal des paquets TCP ;&lt;br /&gt;
* le dernier cas intervient quand le pointeur indique un déplacement de plus de 65 535 qui est inférieur à la taille des données TCP. Un premier paquet est alors envoyé, dans lequel on met la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. L'important est de choisir une taille de paquet de manière à ce que le déplacement dans le second paquet, pour indiquer la fin des données urgentes, soit inférieur à 65 535. &lt;br /&gt;
&lt;br /&gt;
Il existe d'autres propositions pour faire évoluer TCP. Il faut remarquer que le travail n'est pas de même ampleur que pour IP. En effet, TCP est un protocole de bout en bout. La transition vers une nouvelle génération du protocole peut se faire par négociation entre les deux extrémités. Pour IP, tous les routeurs intermédiaires doivent prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
==== UDP-lite ====&lt;br /&gt;
&lt;br /&gt;
UDP-lite permet de remonter aux couches supérieures des données erronées pendant leur transport. Si, dans un environnement informatique, une erreur peut avoir des conséquences relativement graves quant à l'intégrité des données, il est normal de rejeter ces paquets. Dans le domaine du multimédia, cette exigence peut être relâchée. En effet, la plupart des décodeurs de flux audio ou vidéo sont capables de supporter un certain nombre d'erreurs binaires dans un flux de données. Pour améliorer la qualité perçue par l'utilisateur, il est donc préférable d'accepter des paquets erronés plutôt que de rejeter un bloc complet d'informations qui se traduirait par une coupure perceptible du flux.&lt;br /&gt;
&lt;br /&gt;
En IPv4, l'utilisation du ''checksum UDP'' étant optionnelle (la valeur 0 indique que le checksum n'est pas calculé), UDP peut être utilisé pour transporter des flux multimédias. Avec IPv6, l'utilisation du checksum a été rendue obligatoire puisque le niveau 3 n'en possède pas. Pour éviter qu'un paquet comportant des erreurs ne puisse pas être remonté aux couches supérieures, le protocole UDP-lite a été défini par le RFC 3828. Les modifications sont minimes par rapport à UDP. Le format de la trame reste le même ; seule la sémantique du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est changée. Avec UDP, ce champ est inutile puisqu'il est facilement déduit du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de l'en-tête IP. UDP-lite le transforme en champ &amp;lt;tt&amp;gt;couverture du checksum&amp;lt;/tt&amp;gt;. Si la longueur est 0, UDP-lite considère que le checksum couvre tout le paquet. La valeur 8 indique que seul l'en-tête UDP est protégé par le checksum (ainsi qu'une partie de l'en-tête IP grâce au pseudo-header). Les valeurs comprises entre 1 et 7 sont interdites car le checksum UDP-lite doit toujours couvrir l'en-tête. Une valeur supérieure à 8 indique qu'une partie des données sont protégées. Si la couverture est égale à la longueur du message, on se retrouve dans un cas compatible avec UDP.&lt;br /&gt;
&lt;br /&gt;
==== SCTP ====&lt;br /&gt;
Le protocole SCTP (''Stream Control Transmission Protocol'') RFC 4960 est fortement lié au protocole IPv6. SCTP est un protocole de niveau 4 initialement conçu pour transporter des informations de signalisation&amp;lt;ref&amp;gt;Fu, S. et Atiquzzaman, M. (2004). IEEE Communications Magazine, Vol. 42, No. 4, April. &lt;br /&gt;
SCTP: State of the Art in Research, Products, and Technical Challenges.&amp;lt;/ref&amp;gt;. La fiabilité est donc un prérequis important et la gestion de la multi-domiciliation est prise en compte. L'idée est de permettre aux deux nœuds d'extrémité d'échanger, à l'initialisation de la connexion (appelée, dans le standard, ''association''), l'ensemble de leurs adresses IPv4 et IPv6. Chaque nœud choisit une adresse privilégiée pour émettre les données vers l'autre extrémité et surveille périodiquement l'accessibilité des autres adresses. Si le nœud n'est plus accessible par l'adresse principale, une adresse secondaire est choisie. &lt;br /&gt;
&lt;br /&gt;
SCTP permet une transition douce d'IPv4 vers IPv6 puisque l'application n'a plus à se préoccuper de la gestion des adresses. Si les deux entités possèdent une adresse IPv6, celle-ci sera privilégiée. De plus, SCTP peut servir de brique de base à la gestion de la multi-domiciliation IPv6. En effet, avec TCP, une connexion est identifiée par ses adresses. Si une adresse n'est plus accessible, le fait d'en changer peut conduire à la coupure de la connexion. Il faut avoir recours à des subterfuges, comme la mobilité IP, pour maintenir la connexion. SCTP brise ce lien entre la localisation du nœud et l'identification des associations.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a fait un rappel des différentes couches de la pile réseau d'un système. La couche réseau, ou niveau 3, est le langage commun de tous les nœuds connectés à l'Internet. L'introduction d'IPv6 a donc un impact sur les différentes couches, notamment la couche sous-jacente, couche liaison, et les couches supérieures, notamment la couche transport. Même si ces couches sont censées être indépendantes dans le modèle théorique OSI, force est de remarquer que dans la pratique, elles sont interdépendantes.&lt;br /&gt;
Pour preuve le champ de contrôle d'erreur n'a pas été retenu au niveau de la couche IP  car il y a déjà un contrôle fait au niveau ''liaison''. Et un autre contrôle d'erreur a été  placé dans les couches supérieures afin de vérifier l'intégrité des données transportées. Cette vérification se fait uniquement par le destinataire. Le contrôle d'erreur est un exemple qui illustre  l'interdépendance des couches.&lt;br /&gt;
&lt;br /&gt;
Nous venons d'apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 1323 : TCP Extensions for High Performance [http://www.bortzmeyer.org/1323.html Analyse]&lt;br /&gt;
* RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 3828 : The Lightweight User Datagram Protocol (UDP-Lite) [http://www.bortzmeyer.org/3828.html Analyse]&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 4960 Stream Control Transmission Protocol [http://www.bortzmeyer.org/4960.html Analyse]&lt;br /&gt;
* RFC 5692 : Transmission of IP over Ethernet over IEEE 802.16 networks [http://www.bortzmeyer.org/5692.html Analyse]&lt;br /&gt;
* RFC 6691 : TCP Options and MSS [http://www.bortzmeyer.org/6691.html Analyse]&lt;br /&gt;
* RFC 6935: IPv6 and UDP Checksums for Tunneled Packets [http://www.bortzmeyer.org/6935.html Analyse]&lt;br /&gt;
* RFC 6936: Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums[http://www.bortzmeyer.org/6936.html Analyse]&lt;br /&gt;
* RFC 6951 : UDP Encapsulation of SCTP Packets for End-Host to End-Host Communication [http://www.bortzmeyer.org/6951.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20067</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20067"/>
				<updated>2022-02-18T16:31:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Les mécanismes d’encapsulation ==&lt;br /&gt;
La notion d'encapsulation de protocoles repose sur le principe de l’empilement des couches représentatives des traitements nécessaires à effectuer dans les différents composants d’un réseau. Ces traitements affecteront toutes les couches dans les nœuds d’extrémité, et certaines seulement pour les nœuds intermédiaires.&lt;br /&gt;
&lt;br /&gt;
L’organisation internationale de normalisation ISO a défini le modèle OSI (''Open System Interconnection'') par une décomposition de l'architecture du réseau en 7 couches représentées du niveau Physique jusqu’au niveau Application comme représentée par la figure 1. Le modèle TCP/IP (ou DOD ''Department of Defense'') a eu une approche plus pragmatique en décomposant l'architecture de réseau en 4 couches. Les couches session, présentation et application sont agrégées en une seule couche applicative propre à chaque protocole.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_12_Encapsulation_v01.jpg|thumb|center|500px|Figure 1 : Comparaison modèle OSI - modèle TCP/IP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour simplifier l’organisation, pour un nœud d'extrémité du réseau, nous pouvons considérer que la carte réseau réalise les fonctions de niveau Physique et Liaison, que le traitement des couches Réseau et Transport est réalisé par les couches intermédiaires installées dans le système d’exploitation, et que le reste du système, avec les programmes applicatifs, gère les couches Session, Présentation et Application.&lt;br /&gt;
&lt;br /&gt;
Cette activité vise à présenter l’intégration d’IPv6 dans la pile protocolaire. Aussi, nous aborderons l'encapsulation sous l'angle de deux points importants et impactés par le remplacement de IPv4 par IPv6 au sein de la couche de réseau à savoir: la longueur maximale des unités de transfert (''Maximum Transmission Unit'' (MTU)) et la détection des erreurs d'intégrité (ou erreurs binaires).  La question de la détection d'erreur binaire se pose dans la mesure où le calcul de redondance a disparu de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Traitement des couches basses==&lt;br /&gt;
&lt;br /&gt;
La méthode de transfert d'un datagramme IPv6 entre deux nœuds directement reliés entre eux par un lien physique est le même que pour IPv4. Le datagramme est tout d'abord transmis vers l'interface d'émission qui l'encapsule dans une trame. La trame est une PDU (''Protocol Data Unit'') de niveau 2 dans le modèle de référence OSI. Cette trame est transmise sur le lien avec l'adresse physique du nœud de destination. Cette adresse sur un lien sera appelée adresse MAC dans la suite. Le nœud de destination reçoit la trame sur son interface, désencapsule le datagramme et le traite.&lt;br /&gt;
&lt;br /&gt;
Les différences avec IPv4 sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* sur le support Ethernet, le RFC 2464 précise que le code protocole encapsulé de la trame est différent (champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; d'une trame Ethernet). Par exemple, pour les réseaux à diffusion, le code est &amp;lt;tt&amp;gt;0x86DD&amp;lt;/tt&amp;gt; alors que, pour IPv4, le code est &amp;lt;tt&amp;gt;0x0800&amp;lt;/tt&amp;gt;. À l'origine, il était prévu de garder le même code et d'assurer l'aiguillage entre IPv4 et IPv6 en utilisant le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; du paquet. Mais certains nœuds ne vérifient pas la valeur de ce champ et auraient eu un comportement incontrôlable en essayant de traiter un paquet IPv6 comme un paquet IPv4 ;&lt;br /&gt;
* la résolution de l'adresse MAC de destination à partir de l'adresse IP de destination du paquet change. Par exemple, sur un réseau à diffusion, cette résolution est faite en IPv4 par le protocole ARP alors qu'en IPv6 on utilise le protocole de découverte de voisins comme nous le verrons dans la séquence 3 ;&lt;br /&gt;
* la taille minimale d'une trame est passée à 1 280 octets ; ceci peut forcer certains protocoles à utiliser plusieurs trames par datagramme IPv6 ;&lt;br /&gt;
* enfin, certains protocoles ont des parties propres à IPv4. Ces parties doivent être modifiés. C'est le cas des protocoles de contrôle et de compression de PPP.&lt;br /&gt;
&lt;br /&gt;
=== Couche physique ===&lt;br /&gt;
Commençons par la couche ''physique'', qui est à la base de l’édifice de ce modèle. Les spécifications de cette couche dépendent du support lui-même. Nous devons gérer la transmission des informations binaires issues du codage des trames et des paquets sur un support cuivre, optique ou sans fil ; d’où la nécessité d’adaptation aux caractéristiques des composants (câbles, connecteurs ou antennes) et d’une méthode appropriée de codage des données (représentation physique des données binaires). &lt;br /&gt;
&lt;br /&gt;
La représentation binaire utilisée dépend du support. Sur du cuivre, on utilise des variations d’impulsions électriques ; sur une fibre optique, ce sont des variations lumineuses sur une ou plusieurs longueurs d’ondes ; en transmission sans fil, ce sont généralement des signaux radio, laser ou infrarouge. La couche ''physique'' coordonne le débit et la synchronisation de l'émetteur et du récepteur réseau, tout en tentant de garantir la transparence et l’intégrité d’un flux d’information binaire, sans notion d’interprétation du contenu.&lt;br /&gt;
&lt;br /&gt;
Hélas, cette couche est fréquemment soumise à différentes perturbations issues de l'environnement extérieur au canal de transmission : rayonnements électromagnétiques, micro-coupures ou altérations des signaux par différents facteurs. Les coupleurs intégrés dans les cartes réseau réalisent les fonctions nécessaires et utiles au niveau ''physique'', et on dispose d’un indicateur de qualité de la transmission avec le calcul du CRC (''Cyclic Redondancy Check'').&lt;br /&gt;
&lt;br /&gt;
=== Couche liaison ===&lt;br /&gt;
Le rôle de la couche ''liaison'' est, entre autres, de contrôler l'accès à la couche physique, en réalisant le multiplexage temporel sur le support de transmission, et de transformer la couche ''physique'' en une liaison à priori exempte d'erreurs de transmission pour la couche ''réseau''. La couche ''liaison'' doit être capable d’écarter le trafic nécessaire à la synchronisation sur le lien physique, et de reconnaître les débuts et fins de trames. Cette couche écarte les trames en cas de réception erronée, comme en cas de non respect du format, ou bien en cas de problème sur la ligne de transmission. La vérification du champ CRC aide à faire ce tri. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement d’un récepteur incapable de suivre un rythme imposé.&lt;br /&gt;
&lt;br /&gt;
L'unité de données de protocole de la couche ''liaison de données'' est la trame (''Link Protocol Data Unit'' (LPDU)), qui est composée de plusieurs champs permettant d’identifier l’origine des échanges, le rôle de la trame, le contenu de l’enveloppe et, en fin de trame, le champ CRC, le tout étant encadré par une séquence particulière de codage de début et de fin de trame.&lt;br /&gt;
&lt;br /&gt;
Si nous prenons l’exemple de la trame Ethernet originale (cf. Figure 2), un délai inter-trame minimum de 96 intervalles de temps est spécifié comme silence sur un support cuivre alors que, sur un support optique, tout silence est comblé par la transmission d’un ou plusieurs symboles particuliers « idle » ; une parfaite synchronisation est alors maintenue entre les extrémités du lien optique.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015 10 12 Ethernet v01.jpg|thumb|center|600px|Figure 2 : Format de la trame Ethernet.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Une fois que l’arrivée d’une trame Ethernet est détectée par le coupleur, les premiers champs immédiatement accessibles correspondent aux adresses MAC &amp;lt;tt&amp;gt;Destination&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;Source&amp;lt;/tt&amp;gt; puis, soit au champ &amp;lt;tt&amp;gt;Longueur&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation au standard 802.3, ou bien au champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation avec le standard Ethernet original. Ensuite, l’enveloppe de la trame transporte les données, qui correspondent aux paquets IPv6 dès lors que le champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; vaut &amp;lt;tt&amp;gt;0x86dd&amp;lt;/tt&amp;gt;. Vient ensuite le champ CRC codé sur 32 bits.&lt;br /&gt;
Dans le cas d’une encapsulation au standard 802.1Q, d’autres champs permettent la reconnaissance du numéro de VLAN (''Virtual Local Access Network'') et du niveau de priorité défini dans le standard 802.1p.&lt;br /&gt;
&lt;br /&gt;
Un des éléments particulièrement importants est la capacité de transport de la trame. Dans l’exemple ci-dessus, nous voyons que la trame Ethernet traditionnelle dispose d’une enveloppe qui autorise le transport de 1500 octets maximum : MTU = 1500.&lt;br /&gt;
&lt;br /&gt;
D’autres formats de trames permettent des échanges plus ou moins importants. Citons quelques MTU :&lt;br /&gt;
* PPPoE = 1492&lt;br /&gt;
* PPPoA = 1468&lt;br /&gt;
* MPLS = 1500 à 65535&lt;br /&gt;
* 802.15.4 (LowPAN) = 81&lt;br /&gt;
* Ethernet Jumboframe = 9000&lt;br /&gt;
&lt;br /&gt;
Rappelons que la spécification du protocole IPv6 impose une taille minimale du paquet de 1280 octets. Pour les couches liaison imposant des tailles inférieures, il est donc obligatoire de mettre en place une ''couche d'adaptation'' comme 6LowPAN (RFC 4944) pour les réseaux 802.15.4. Cette couche située entre la couche ''liaison'' et la couche ''réseau'' IPv6 prend en charge le découpage des paquets IPv6 en fragments pouvant être transportés dans les trames et leur ré-assemblage au niveau du premier routeur de sortie.&lt;br /&gt;
&lt;br /&gt;
== Couches intermédiaires ==&lt;br /&gt;
&lt;br /&gt;
=== Couche réseau ===&lt;br /&gt;
&lt;br /&gt;
Étant donné que la taille minimum de l’en-tête IPv6 est de 40 octets, le MTU résiduel d’une trame Ethernet classique est de 1500 - 40 = 1460 octets ; sachant que ces 1460 octets de données seront probablement encore amputées d’en-têtes de niveau transport, par exemple 20 octets minimum pour TCP et 8 octets pour UDP.&lt;br /&gt;
&lt;br /&gt;
Parmi les différences existant entre les datagrammes IPv4 et IPv6, il y a la disparition de la somme de contrôle d'erreur (''checksum'') dans les en-têtes IPv6. Cette somme de contrôle était utilisée pour vérifier l'absence d'erreur binaire de l'en-tête du paquet traité. Une erreur binaire est le changement de valeur d'un bit effectué lors de la transmission. En IPv4, il est nécessaire de la vérifier et de l'ajuster lors de chaque retransmission par un routeur, ce qui entraîne une augmentation du temps de traitement du paquet. &lt;br /&gt;
Cette somme ne vérifie que l'en-tête IPv4, pas le reste du paquet. Aujourd'hui, les supports physiques sont de meilleure qualité et savent détecter les erreurs (par exemple, Ethernet a toujours calculé sa propre somme de contrôle ; PPP, qui a presque partout remplacé SLIP, possède un CRC). L'intérêt de la somme de contrôle au niveau réseau a diminué et ce champ a été supprimé de l'en-tête IPv6. &lt;br /&gt;
&lt;br /&gt;
Le checksum sur l'en-tête IPv6 n'existant plus, il faut néanmoins se prémunir des erreurs de transmission. En particulier, une erreur sur l'adresse de destination va faire router un paquet dans une mauvaise direction. Le destinataire doit donc vérifier que les informations d'en-tête IP sont correctes avant d'accepter ces paquets. Dans les mises en œuvre des piles de protocoles Internet, les entités de niveau transport remplissent certains champs du niveau réseau. Il a donc été décidé que tous les protocoles au-dessus d'IPv6 devaient utiliser une somme de contrôle intégrant à la fois les données et les informations de l'en-tête IPv6. La notion de ''pseudo-en-tête'' dérive de cette conception. Pour un protocole comme TCP, qui possède une somme de contrôle, cela signifie qu'il faut modifier le calcul de cette somme. Pour un protocole comme UDP, qui possède une somme de contrôle facultative, cela signifie qu'il faut modifier le calcul de cette somme et le rendre obligatoire. &lt;br /&gt;
&lt;br /&gt;
IPv6 a unifié la méthode de calcul des différentes sommes de contrôle. Le RFC 8200 définit, dans sa section 8.1, un ''pseudo-en-tête'' (cf. Figure 3), résultat de la concaténation d'une partie de l'en-tête IPv6 et du PDU du protocole concerné. L'algorithme de calcul du checksum est celui utilisé en IPv4. Il est très simple à mettre en œuvre et ne demande pas d'opérations complexes. Il s'agit de faire la somme en complément à 1 des mots de 16 bits du ''pseudo-en-tête'', de l'en-tête du protocole de transport, et des données, puis de prendre le complément à 1 du résultat.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Fig4-10.png|thumb|center|500px|Figure 3 : Champs du &amp;lt;tt&amp;gt;pseudo-en-tête&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Il faut noter que les informations contenues dans le ''pseudo-en-tête'' ne seront pas émises telles quelles sur le réseau. Le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; du ''pseudo-en-tête'' ne reflète pas celui qui sera émis dans les paquets puisque les extensions ne sont pas prises en compte dans le calcul du checksum. Ainsi, si l'extension de routage est mise en œuvre, l'adresse de la destination est celle du dernier nœud. De même, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est codé sur 32 bits pour contenir la valeur de l'option ''jumbogramme'' si celle-ci est présente.&lt;br /&gt;
&lt;br /&gt;
=== Couches Transport ===&lt;br /&gt;
&lt;br /&gt;
==== UDP et TCP ====&lt;br /&gt;
&lt;br /&gt;
Les modifications apportées aux protocoles de niveau transport sont minimes. L'un des pré-requis à la mise en œuvre d'IPv6 était de laisser en l'état aussi bien TCP (''Transmission Control Protocol'') qu'UDP (''User Datagram Protocol''). Ces protocoles de transport sont utilisés par la très grande majorité des applications réseau et l'absence de modification facilitera grandement le passage de IPv4 à IPv6. &lt;br /&gt;
&lt;br /&gt;
La principale modification de ces protocoles concerne le calcul de la somme de contrôle (''checksum'') pour vérifier l'intégrité des données. Comme la couche ''réseau'' ne possède pas de champ de contrôle, c'est à la couche de transport que revient cette tâche. Le calcul de la somme de contrôle au niveau du transport a donc été adapté pour inclure des données de l'en-tête. De plus, la présence d'une somme de contrôle devient obligatoire pour tout protocole de niveau supérieur transporté au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
'''''Nota : ''''' ''les RFC 6935 et RFC 6936 ont introduit une dispense à cette obligation, dans les cas des techniques de tunnel au dessus d'UDP. La nouvelle philosophie est résumée ainsi par S. Bortzmeyer : &amp;quot;par défaut, la somme de contrôle doit être calculée et mise dans le paquet. Mais on peut s'en dispenser dans le cas de tunnels (et uniquement celui-ci), sur le paquet extérieur. Le protocole à l'intérieur du paquet (qui n'est pas forcément de l'UDP et même pas forcément de l'IPv6) doit rester protégé par sa propre somme de contrôle. Cela ne doit s'appliquer que pour une liste explicite de ports (ceux utilisés par le tunnel) et pas pour tout le trafic UDP du nœud. Et le tout doit se faire en lisant le RFC 6936 qui précise les conditions d'application de cette nouvelle règle.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Un autre changement au niveau des protocoles de niveau 4 concerne la prise en compte de l'option ''jumbogramme'' de l'extension ''proche-en-proche''. Le RFC 2675 définit le comportement d’UDP et de TCP quand les jumbogrammes sont utilisés. En effet, les en-têtes de ces messages contiennent eux aussi un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; codé sur 16 bits et, par conséquent, insuffisant pour coder la longueur du jumbogramme :&lt;br /&gt;
* pour le protocole UDP, si la longueur des données excède 65 535 octets, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est mis à 0. Le récepteur détermine la longueur des données par la connaissance de la taille dans l'option ''jumbogramme'' ;&lt;br /&gt;
* le protocole TCP pose plus de problèmes. En effet, bien que les messages TCP ne contiennent pas de champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;, plusieurs compteurs sont codés sur 16 bits ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de la fenêtre de réception ne pose pas de problème depuis que le RFC 1323 a défini l'option ''TCP window scale'' qui donne le facteur multiplicatif qui doit être appliqué à ce champ ;&lt;br /&gt;
* à l'ouverture de connexion, la taille maximale des segments (MSS) est négociée. Le RFC 2675 précise que, si cette taille doit être supérieure à 65 535, la valeur 65 535 est envoyée et le récepteur prend en compte la longueur déterminée par l'algorithme de découverte du MTU. &lt;br /&gt;
&lt;br /&gt;
Pour l'envoi de données urgentes avec TCP, on utilise un bit spécifique de l'en-tête TCP (bit &amp;lt;tt&amp;gt;URG&amp;lt;/tt&amp;gt;) ainsi que le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. Ce dernier sert à référencer la fin des données à traiter de manière particulière. Trois cas peuvent se présenter :&lt;br /&gt;
* le premier, qui est identique à IPv4, est celui où le pointeur indique une position de moins de 65 535 ;&lt;br /&gt;
* le second se produit lorsque le déplacement est supérieur à 65 535 et supérieur ou égal à la taille des données TCP envoyées. Cette fois-ci, on place la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt; et on continue le traitement normal des paquets TCP ;&lt;br /&gt;
* le dernier cas intervient quand le pointeur indique un déplacement de plus de 65 535 qui est inférieur à la taille des données TCP. Un premier paquet est alors envoyé, dans lequel on met la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. L'important est de choisir une taille de paquet de manière à ce que le déplacement dans le second paquet, pour indiquer la fin des données urgentes, soit inférieur à 65 535. &lt;br /&gt;
&lt;br /&gt;
Il existe d'autres propositions pour faire évoluer TCP. Il faut remarquer que le travail n'est pas de même ampleur que pour IP. En effet, TCP est un protocole de bout en bout. La transition vers une nouvelle génération du protocole peut se faire par négociation entre les deux extrémités. Pour IP, tous les routeurs intermédiaires doivent prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
==== UDP-lite ====&lt;br /&gt;
&lt;br /&gt;
UDP-lite permet de remonter aux couches supérieures des données erronées pendant leur transport. Si, dans un environnement informatique, une erreur peut avoir des conséquences relativement graves quant à l'intégrité des données, il est normal de rejeter ces paquets. Dans le domaine du multimédia, cette exigence peut être relâchée. En effet, la plupart des décodeurs de flux audio ou vidéo sont capables de supporter un certain nombre d'erreurs binaires dans un flux de données. Pour améliorer la qualité perçue par l'utilisateur, il est donc préférable d'accepter des paquets erronés plutôt que de rejeter un bloc complet d'informations qui se traduirait par une coupure perceptible du flux.&lt;br /&gt;
&lt;br /&gt;
En IPv4, l'utilisation du ''checksum UDP'' étant optionnelle (la valeur 0 indique que le checksum n'est pas calculé), UDP peut être utilisé pour transporter des flux multimédias. Avec IPv6, l'utilisation du checksum a été rendue obligatoire puisque le niveau 3 n'en possède pas. Pour éviter qu'un paquet comportant des erreurs ne puisse pas être remonté aux couches supérieures, le protocole UDP-lite a été défini par le RFC 3828. Les modifications sont minimes par rapport à UDP. Le format de la trame reste le même ; seule la sémantique du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est changée. Avec UDP, ce champ est inutile puisqu'il est facilement déduit du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de l'en-tête IP. UDP-lite le transforme en champ &amp;lt;tt&amp;gt;couverture du checksum&amp;lt;/tt&amp;gt;. Si la longueur est 0, UDP-lite considère que le checksum couvre tout le paquet. La valeur 8 indique que seul l'en-tête UDP est protégé par le checksum (ainsi qu'une partie de l'en-tête IP grâce au pseudo-header). Les valeurs comprises entre 1 et 7 sont interdites car le checksum UDP-lite doit toujours couvrir l'en-tête. Une valeur supérieure à 8 indique qu'une partie des données sont protégées. Si la couverture est égale à la longueur du message, on se retrouve dans un cas compatible avec UDP.&lt;br /&gt;
&lt;br /&gt;
==== SCTP ====&lt;br /&gt;
Le protocole SCTP (''Stream Control Transmission Protocol'') RFC 4960 est fortement lié au protocole IPv6. SCTP est un protocole de niveau 4 initialement conçu pour transporter des informations de signalisation&amp;lt;ref&amp;gt;Fu, S. et Atiquzzaman, M. (2004). IEEE Communications Magazine, Vol. 42, No. 4, April. &lt;br /&gt;
SCTP: State of the Art in Research, Products, and Technical Challenges.&amp;lt;/ref&amp;gt;. La fiabilité est donc un prérequis important et la gestion de la multi-domiciliation est prise en compte. L'idée est de permettre aux deux nœuds d'extrémité d'échanger, à l'initialisation de la connexion (appelée, dans le standard, ''association''), l'ensemble de leurs adresses IPv4 et IPv6. Chaque nœud choisit une adresse privilégiée pour émettre les données vers l'autre extrémité et surveille périodiquement l'accessibilité des autres adresses. Si le nœud n'est plus accessible par l'adresse principale, une adresse secondaire est choisie. &lt;br /&gt;
&lt;br /&gt;
SCTP permet une transition douce d'IPv4 vers IPv6 puisque l'application n'a plus à se préoccuper de la gestion des adresses. Si les deux entités possèdent une adresse IPv6, celle-ci sera privilégiée. De plus, SCTP peut servir de brique de base à la gestion de la multi-domiciliation IPv6. En effet, avec TCP, une connexion est identifiée par ses adresses. Si une adresse n'est plus accessible, le fait d'en changer peut conduire à la coupure de la connexion. Il faut avoir recours à des subterfuges, comme la mobilité IP, pour maintenir la connexion. SCTP brise ce lien entre la localisation du nœud et l'identification des associations.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a fait un rappel des différentes couches de la pile réseau d'un système. La couche réseau, ou niveau 3, est le langage commun de tous les nœuds connectés à l'Internet. L'introduction d'IPv6 a donc un impact sur les différentes couches, notamment la couche sous-jacente, couche liaison, et les couches supérieures, notamment la couche transport. Même si ces couches sont censées être indépendantes dans le modèle théorique OSI, force est de remarquer que dans la pratique, elles sont interdépendantes.&lt;br /&gt;
Pour preuve le champ de contrôle d'erreur n'a pas été retenu au niveau de la couche IP  car il y a déjà un contrôle fait au niveau ''liaison''. Et un autre contrôle d'erreur a été  placé dans les couches supérieures afin de vérifier l'intégrité des données transportées. Cette vérification se fait uniquement par le destinataire. Le contrôle d'erreur est un exemple qui illustre  l'interdépendance des couches.&lt;br /&gt;
&lt;br /&gt;
Nous venons d'apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 1323 : TCP Extensions for High Performance [http://www.bortzmeyer.org/1323.html Analyse]&lt;br /&gt;
* RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 3828 : The Lightweight User Datagram Protocol (UDP-Lite) [http://www.bortzmeyer.org/3828.html Analyse]&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 4960 Stream Control Transmission Protocol [http://www.bortzmeyer.org/4960.html Analyse]&lt;br /&gt;
* RFC 5692 : Transmission of IP over Ethernet over IEEE 802.16 networks [http://www.bortzmeyer.org/5692.html Analyse]&lt;br /&gt;
* RFC 6691 : TCP Options and MSS [http://www.bortzmeyer.org/6691.html Analyse]&lt;br /&gt;
* RFC 6935: IPv6 and UDP Checksums for Tunneled Packets [http://www.bortzmeyer.org/6935.html Analyse]&lt;br /&gt;
* RFC 6936: Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums[http://www.bortzmeyer.org/6936.html Analyse]&lt;br /&gt;
* RFC 6951 : UDP Encapsulation of SCTP Packets for End-Host to End-Host Communication [http://www.bortzmeyer.org/6951.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20066</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20066"/>
				<updated>2022-02-18T16:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Les mécanismes d’encapsulation ==&lt;br /&gt;
La notion d'encapsulation de protocoles repose sur le principe de l’empilement des couches représentatives des traitements nécessaires à effectuer dans les différents composants d’un réseau. Ces traitements affecteront toutes les couches dans les nœuds d’extrémité, et certaines seulement pour les nœuds intermédiaires.&lt;br /&gt;
&lt;br /&gt;
L’organisation internationale de normalisation ISO a défini le modèle OSI (''Open System Interconnection'') par une décomposition de l'architecture du réseau en 7 couches représentées du niveau Physique jusqu’au niveau Application comme représentée par la figure 1. Le modèle TCP/IP (ou DOD ''Department of Defense'') a eu une approche plus pragmatique en décomposant l'architecture de réseau en 4 couches. Les couches session, présentation et application sont agrégées en une seule couche applicative propre à chaque protocole.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_12_Encapsulation_v01.jpg|thumb|center|500px|Figure 1 : Comparaison modèle OSI - modèle TCP/IP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour simplifier l’organisation, pour un nœud d'extrémité du réseau, nous pouvons considérer que la carte réseau réalise les fonctions de niveau Physique et Liaison, que le traitement des couches Réseau et Transport est réalisé par les couches intermédiaires installées dans le système d’exploitation, et que le reste du système, avec les programmes applicatifs, gère les couches Session, Présentation et Application.&lt;br /&gt;
&lt;br /&gt;
Cette activité vise à présenter l’intégration d’IPv6 dans la pile protocolaire. Aussi, nous aborderons l'encapsulation sous l'angle de deux points importants et impactés par le remplacement de IPv4 par IPv6 au sein de la couche de réseau à savoir: la longueur maximale des unités de transfert (''Maximum Transmission Unit'' (MTU)) et la détection des erreurs d'intégrité (ou erreurs binaires).  La question de la détection d'erreur binaire se pose dans la mesure où le calcul de redondance a disparu de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Traitement des couches basses==&lt;br /&gt;
&lt;br /&gt;
La méthode de transfert d'un datagramme IPv6 entre deux nœuds directement reliés entre eux par un lien physique est le même que pour IPv4. Le datagramme est tout d'abord transmis vers l'interface d'émission qui l'encapsule dans une trame. La trame est une PDU (''Protocol Data Unit'') de niveau 2 dans le modèle de référence OSI. Cette trame est transmise sur le lien avec l'adresse physique du nœud de destination. Cette adresse sur un lien sera appelée adresse MAC dans la suite. Le nœud de destination reçoit la trame sur son interface, désencapsule le datagramme et le traite.&lt;br /&gt;
&lt;br /&gt;
Les différences avec IPv4 sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* sur le support Ethernet, le RFC 2464 précise que le code protocole encapsulé de la trame est différent (champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; d'une trame Ethernet). Par exemple, pour les réseaux à diffusion, le code est &amp;lt;tt&amp;gt;0x86DD&amp;lt;/tt&amp;gt; alors que, pour IPv4, le code est &amp;lt;tt&amp;gt;0x0800&amp;lt;/tt&amp;gt;. À l'origine, il était prévu de garder le même code et d'assurer l'aiguillage entre IPv4 et IPv6 en utilisant le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; du paquet. Mais certains nœuds ne vérifient pas la valeur de ce champ et auraient eu un comportement incontrôlable en essayant de traiter un paquet IPv6 comme un paquet IPv4 ;&lt;br /&gt;
* la résolution de l'adresse MAC de destination à partir de l'adresse IP de destination du paquet change. Par exemple, sur un réseau à diffusion, cette résolution est faite en IPv4 par le protocole ARP alors qu'en IPv6 on utilise le protocole de découverte de voisins comme nous le verrons dans la séquence 3 ;&lt;br /&gt;
* la taille minimale d'une trame est passée à 1 280 octets ; ceci peut forcer certains protocoles à utiliser plusieurs trames par datagramme IPv6 ;&lt;br /&gt;
* enfin, certains protocoles ont des parties propres à IPv4. Ces parties doivent être modifiés. C'est le cas des protocoles de contrôle et de compression de PPP.&lt;br /&gt;
&lt;br /&gt;
=== Couche physique ===&lt;br /&gt;
Commençons par la couche ''physique'', qui est à la base de l’édifice de ce modèle. Les spécifications de cette couche dépendent du support lui-même. Nous devons gérer la transmission des informations binaires issues du codage des trames et des paquets sur un support cuivre, optique ou sans fil ; d’où la nécessité d’adaptation aux caractéristiques des composants (câbles, connecteurs ou antennes) et d’une méthode appropriée de codage des données (représentation physique des données binaires). &lt;br /&gt;
&lt;br /&gt;
La représentation binaire utilisée dépend du support. Sur du cuivre, on utilise des variations d’impulsions électriques ; sur une fibre optique, ce sont des variations lumineuses sur une ou plusieurs longueurs d’ondes ; en transmission sans fil, ce sont généralement des signaux radio, laser ou infrarouge. La couche ''physique'' coordonne le débit et la synchronisation de l'émetteur et du récepteur réseau, tout en tentant de garantir la transparence et l’intégrité d’un flux d’information binaire, sans notion d’interprétation du contenu.&lt;br /&gt;
&lt;br /&gt;
Hélas, cette couche est fréquemment soumise à différentes perturbations issues de l'environnement extérieur au canal de transmission : rayonnements électromagnétiques, micro-coupures ou altérations des signaux par différents facteurs. Les coupleurs intégrés dans les cartes réseau réalisent les fonctions nécessaires et utiles au niveau ''physique'', et on dispose d’un indicateur de qualité de la transmission avec le calcul du CRC (''Cyclic Redondancy Check'').&lt;br /&gt;
&lt;br /&gt;
=== Couche liaison ===&lt;br /&gt;
Le rôle de la couche ''liaison'' est, entre autres, de contrôler l'accès à la couche physique, en réalisant le multiplexage temporel sur le support de transmission, et de transformer la couche ''physique'' en une liaison à priori exempte d'erreurs de transmission pour la couche ''réseau''. La couche ''liaison'' doit être capable d’écarter le trafic nécessaire à la synchronisation sur le lien physique, et de reconnaître les débuts et fins de trames. Cette couche écarte les trames en cas de réception erronée, comme en cas de non respect du format, ou bien en cas de problème sur la ligne de transmission. La vérification du champ CRC aide à faire ce tri. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement d’un récepteur incapable de suivre un rythme imposé.&lt;br /&gt;
&lt;br /&gt;
L'unité de données de protocole de la couche ''liaison de données'' est la trame (''Link Protocol Data Unit'' (LPDU)), qui est composée de plusieurs champs permettant d’identifier l’origine des échanges, le rôle de la trame, le contenu de l’enveloppe et, en fin de trame, le champ CRC, le tout étant encadré par une séquence particulière de codage de début et de fin de trame.&lt;br /&gt;
&lt;br /&gt;
Si nous prenons l’exemple de la trame Ethernet originale (cf. Figure 2), un délai inter-trame minimum de 96 intervalles de temps est spécifié comme silence sur un support cuivre alors que, sur un support optique, tout silence est comblé par la transmission d’un ou plusieurs symboles particuliers « idle » ; une parfaite synchronisation est alors maintenue entre les extrémités du lien optique.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015 10 12 Ethernet v01.jpg|thumb|center|600px|Figure 2 : Format de la trame Ethernet.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Une fois que l’arrivée d’une trame Ethernet est détectée par le coupleur, les premiers champs immédiatement accessibles correspondent aux adresses MAC &amp;lt;tt&amp;gt;Destination&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;Source&amp;lt;/tt&amp;gt; puis, soit au champ &amp;lt;tt&amp;gt;Longueur&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation au standard 802.3, ou bien au champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation avec le standard Ethernet original. Ensuite, l’enveloppe de la trame transporte les données, qui correspondent aux paquets IPv6 dès lors que le champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; vaut &amp;lt;tt&amp;gt;0x86dd&amp;lt;/tt&amp;gt;. Vient ensuite le champ CRC codé sur 32 bits.&lt;br /&gt;
Dans le cas d’une encapsulation au standard 802.1Q, d’autres champs permettent la reconnaissance du numéro de VLAN (''Virtual Local Access Network'') et du niveau de priorité défini dans le standard 802.1p.&lt;br /&gt;
&lt;br /&gt;
Un des éléments particulièrement importants est la capacité de transport de la trame. Dans l’exemple ci-dessus, nous voyons que la trame Ethernet traditionnelle dispose d’une enveloppe qui autorise le transport de 1500 octets maximum : MTU = 1500.&lt;br /&gt;
&lt;br /&gt;
D’autres formats de trames permettent des échanges plus ou moins importants. Citons quelques MTU :&lt;br /&gt;
* PPPoE = 1492&lt;br /&gt;
* PPPoA = 1468&lt;br /&gt;
* MPLS = 1500 à 65535&lt;br /&gt;
* 802.15.4 (LowPAN) = 81&lt;br /&gt;
* Ethernet Jumboframe = 9000&lt;br /&gt;
&lt;br /&gt;
Rappelons que la spécification du protocole IPv6 impose une taille minimale du paquet de 1280 octets. Pour les couches liaison imposant des tailles inférieures, il est donc obligatoire de mettre en place une ''couche d'adaptation'' comme 6LowPAN (RFC 4944) pour les réseaux 802.15.4. Cette couche située entre la couche ''liaison'' et la couche ''réseau'' IPv6 prend en charge le découpage des paquets IPv6 en fragments pouvant être transportés dans les trames et leur ré-assemblage au niveau du premier routeur de sortie.&lt;br /&gt;
&lt;br /&gt;
== Couches intermédiaires ==&lt;br /&gt;
&lt;br /&gt;
=== Couche réseau ===&lt;br /&gt;
&lt;br /&gt;
Étant donné que la taille minimum de l’en-tête IPv6 est de 40 octets, le MTU résiduel d’une trame Ethernet classique est de 1500 - 40 = 1460 octets ; sachant que ces 1460 octets de données seront probablement encore amputées d’en-têtes de niveau transport, par exemple 20 octets minimum pour TCP et 8 octets pour UDP.&lt;br /&gt;
&lt;br /&gt;
Parmi les différences existant entre les datagrammes IPv4 et IPv6, il y a la disparition de la somme de contrôle d'erreur (''checksum'') dans les en-têtes IPv6. Cette somme de contrôle était utilisée pour vérifier l'absence d'erreur binaire de l'en-tête du paquet traité. Une erreur binaire est le changement de valeur d'un bit effectué lors de la transmission. En IPv4, il est nécessaire de la vérifier et de l'ajuster lors de chaque retransmission par un routeur, ce qui entraîne une augmentation du temps de traitement du paquet. &lt;br /&gt;
Cette somme ne vérifie que l'en-tête IPv4, pas le reste du paquet. Aujourd'hui, les supports physiques sont de meilleure qualité et savent détecter les erreurs (par exemple, Ethernet a toujours calculé sa propre somme de contrôle ; PPP, qui a presque partout remplacé SLIP, possède un CRC). L'intérêt de la somme de contrôle au niveau réseau a diminué et ce champ a été supprimé de l'en-tête IPv6. &lt;br /&gt;
&lt;br /&gt;
Le checksum sur l'en-tête IPv6 n'existant plus, il faut néanmoins se prémunir des erreurs de transmission. En particulier, une erreur sur l'adresse de destination va faire router un paquet dans une mauvaise direction. Le destinataire doit donc vérifier que les informations d'en-tête IP sont correctes avant d'accepter ces paquets. Dans les mises en œuvre des piles de protocoles Internet, les entités de niveau transport remplissent certains champs du niveau réseau. Il a donc été décidé que tous les protocoles au-dessus d'IPv6 devaient utiliser une somme de contrôle intégrant à la fois les données et les informations de l'en-tête IPv6. La notion de ''pseudo-en-tête'' dérive de cette conception. Pour un protocole comme TCP, qui possède une somme de contrôle, cela signifie qu'il faut modifier le calcul de cette somme. Pour un protocole comme UDP, qui possède une somme de contrôle facultative, cela signifie qu'il faut modifier le calcul de cette somme et le rendre obligatoire. &lt;br /&gt;
&lt;br /&gt;
IPv6 a unifié la méthode de calcul des différentes sommes de contrôle. Le RFC 8200 définit, dans sa section 8.1, un ''pseudo-en-tête'' (cf. Figure 3), résultat de la concaténation d'une partie de l'en-tête IPv6 et du PDU du protocole concerné. L'algorithme de calcul du checksum est celui utilisé en IPv4. Il est très simple à mettre en œuvre et ne demande pas d'opérations complexes. Il s'agit de faire la somme en complément à 1 des mots de 16 bits du ''pseudo-en-tête'', de l'en-tête du protocole de transport, et des données, puis de prendre le complément à 1 du résultat.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Fig4-10.png|thumb|center|500px|Figure 3 : Champs du &amp;lt;tt&amp;gt;pseudo-en-tête&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Il faut noter que les informations contenues dans le ''pseudo-en-tête'' ne seront pas émises telles quelles sur le réseau. Le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; du ''pseudo-en-tête'' ne reflète pas celui qui sera émis dans les paquets puisque les extensions ne sont pas prises en compte dans le calcul du checksum. Ainsi, si l'extension de routage est mise en œuvre, l'adresse de la destination est celle du dernier nœud. De même, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est codé sur 32 bits pour contenir la valeur de l'option ''jumbogramme'' si celle-ci est présente.&lt;br /&gt;
&lt;br /&gt;
=== Couches Transport ===&lt;br /&gt;
&lt;br /&gt;
==== UDP et TCP ====&lt;br /&gt;
&lt;br /&gt;
Les modifications apportées aux protocoles de niveau transport sont minimes. L'un des pré-requis à la mise en œuvre d'IPv6 était de laisser en l'état aussi bien TCP (''Transmission Control Protocol'') qu'UDP (''User Datagram Protocol''). Ces protocoles de transport sont utilisés par la très grande majorité des applications réseau et l'absence de modification facilitera grandement le passage de IPv4 à IPv6. &lt;br /&gt;
&lt;br /&gt;
La principale modification de ces protocoles concerne le calcul de la somme de contrôle (''checksum'') pour vérifier l'intégrité des données. Comme la couche ''réseau'' ne possède pas de champ de contrôle, c'est à la couche de transport que revient cette tâche. Le calcul de la somme de contrôle au niveau du transport a donc été adapté pour inclure des données de l'en-tête. De plus, la présence d'une somme de contrôle devient obligatoire pour tout protocole de niveau supérieur transporté au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
'''''Nota : ''''' ''les RFC 6935 et RFC 6936 ont introduit une dispense à cette obligation, dans les cas des techniques de tunnel au dessus d'UDP. La nouvelle philosophie est résumée ainsi par S. Bortzmeyer : &amp;quot;par défaut, la somme de contrôle doit être calculée et mise dans le paquet. Mais on peut s'en dispenser dans le cas de tunnels (et uniquement celui-ci), sur le paquet extérieur. Le protocole à l'intérieur du paquet (qui n'est pas forcément de l'UDP et même pas forcément de l'IPv6) doit rester protégé par sa propre somme de contrôle. Cela ne doit s'appliquer que pour une liste explicite de ports (ceux utilisés par le tunnel) et pas pour tout le trafic UDP du nœud. Et le tout doit se faire en lisant le RFC 6936 qui précise les conditions d'application de cette nouvelle règle.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Un autre changement au niveau des protocoles de niveau 4 concerne la prise en compte de l'option ''jumbogramme'' de l'extension ''proche-en-proche''. Le RFC 2675 définit le comportement d’UDP et de TCP quand les jumbogrammes sont utilisés. En effet, les en-têtes de ces messages contiennent eux aussi un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; codé sur 16 bits et, par conséquent, insuffisant pour coder la longueur du jumbogramme :&lt;br /&gt;
* pour le protocole UDP, si la longueur des données excède 65 535 octets, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est mis à 0. Le récepteur détermine la longueur des données par la connaissance de la taille dans l'option ''jumbogramme'' ;&lt;br /&gt;
* le protocole TCP pose plus de problèmes. En effet, bien que les messages TCP ne contiennent pas de champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;, plusieurs compteurs sont codés sur 16 bits ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de la fenêtre de réception ne pose pas de problème depuis que le RFC 1323 a défini l'option ''TCP window scale'' qui donne le facteur multiplicatif qui doit être appliqué à ce champ ;&lt;br /&gt;
* à l'ouverture de connexion, la taille maximale des segments (MSS) est négociée. Le RFC 2675 précise que, si cette taille doit être supérieure à 65 535, la valeur 65 535 est envoyée et le récepteur prend en compte la longueur déterminée par l'algorithme de découverte du MTU. &lt;br /&gt;
&lt;br /&gt;
Pour l'envoi de données urgentes avec TCP, on utilise un bit spécifique de l'en-tête TCP (bit &amp;lt;tt&amp;gt;URG&amp;lt;/tt&amp;gt;) ainsi que le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. Ce dernier sert à référencer la fin des données à traiter de manière particulière. Trois cas peuvent se présenter :&lt;br /&gt;
* le premier, qui est identique à IPv4, est celui où le pointeur indique une position de moins de 65 535 ;&lt;br /&gt;
* le second se produit lorsque le déplacement est supérieur à 65 535 et supérieur ou égal à la taille des données TCP envoyées. Cette fois-ci, on place la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt; et on continue le traitement normal des paquets TCP ;&lt;br /&gt;
* le dernier cas intervient quand le pointeur indique un déplacement de plus de 65 535 qui est inférieur à la taille des données TCP. Un premier paquet est alors envoyé, dans lequel on met la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. L'important est de choisir une taille de paquet de manière à ce que le déplacement dans le second paquet, pour indiquer la fin des données urgentes, soit inférieur à 65 535. &lt;br /&gt;
&lt;br /&gt;
Il existe d'autres propositions pour faire évoluer TCP. Il faut remarquer que le travail n'est pas de même ampleur que pour IP. En effet, TCP est un protocole de bout en bout. La transition vers une nouvelle génération du protocole peut se faire par négociation entre les deux extrémités. Pour IP, tous les routeurs intermédiaires doivent prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
==== UDP-lite ====&lt;br /&gt;
&lt;br /&gt;
UDP-lite permet de remonter aux couches supérieures des données erronées pendant leur transport. Si, dans un environnement informatique, une erreur peut avoir des conséquences relativement graves quant à l'intégrité des données, il est normal de rejeter ces paquets. Dans le domaine du multimédia, cette exigence peut être relâchée. En effet, la plupart des décodeurs de flux audio ou vidéo sont capables de supporter un certain nombre d'erreurs binaires dans un flux de données. Pour améliorer la qualité perçue par l'utilisateur, il est donc préférable d'accepter des paquets erronés plutôt que de rejeter un bloc complet d'informations qui se traduirait par une coupure perceptible du flux.&lt;br /&gt;
&lt;br /&gt;
En IPv4, l'utilisation du ''checksum UDP'' étant optionnelle (la valeur 0 indique que le checksum n'est pas calculé), UDP peut être utilisé pour transporter des flux multimédias. Avec IPv6, l'utilisation du checksum a été rendue obligatoire puisque le niveau 3 n'en possède pas. Pour éviter qu'un paquet comportant des erreurs ne puisse pas être remonté aux couches supérieures, le protocole UDP-lite a été défini par le RFC 3828. Les modifications sont minimes par rapport à UDP. Le format de la trame reste le même ; seule la sémantique du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est changée. Avec UDP, ce champ est inutile puisqu'il est facilement déduit du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de l'en-tête IP. UDP-lite le transforme en champ &amp;lt;tt&amp;gt;couverture du checksum&amp;lt;/tt&amp;gt;. Si la longueur est 0, UDP-lite considère que le checksum couvre tout le paquet. La valeur 8 indique que seul l'en-tête UDP est protégé par le checksum (ainsi qu'une partie de l'en-tête IP grâce au pseudo-header). Les valeurs comprises entre 1 et 7 sont interdites car le checksum UDP-lite doit toujours couvrir l'en-tête. Une valeur supérieure à 8 indique qu'une partie des données sont protégées. Si la couverture est égale à la longueur du message, on se retrouve dans un cas compatible avec UDP.&lt;br /&gt;
&lt;br /&gt;
==== SCTP ====&lt;br /&gt;
Le protocole SCTP (''Stream Control Transmission Protocol'') RFC 4960 est fortement lié au protocole IPv6. SCTP est un protocole de niveau 4 initialement conçu pour transporter des informations de signalisation&amp;lt;ref&amp;gt;Fu, S. et Atiquzzaman, M. (2004). IEEE Communications Magazine, Vol. 42, No. 4, April. &lt;br /&gt;
SCTP: State of the Art in Research, Products, and Technical Challenges.&amp;lt;/ref&amp;gt;. La fiabilité est donc un prérequis important et la gestion de la multi-domiciliation est prise en compte. L'idée est de permettre aux deux nœuds d'extrémité d'échanger, à l'initialisation de la connexion (appelée, dans le standard, ''association''), l'ensemble de leurs adresses IPv4 et IPv6. Chaque nœud choisit une adresse privilégiée pour émettre les données vers l'autre extrémité et surveille périodiquement l'accessibilité des autres adresses. Si le nœud n'est plus accessible par l'adresse principale, une adresse secondaire est choisie. &lt;br /&gt;
&lt;br /&gt;
SCTP permet une transition douce d'IPv4 vers IPv6 puisque l'application n'a plus à se préoccuper de la gestion des adresses. Si les deux entités possèdent une adresse IPv6, celle-ci sera privilégiée. De plus, SCTP peut servir de brique de base à la gestion de la multi-domiciliation IPv6. En effet, avec TCP, une connexion est identifiée par ses adresses. Si une adresse n'est plus accessible, le fait d'en changer peut conduire à la coupure de la connexion. Il faut avoir recours à des subterfuges, comme la mobilité IP, pour maintenir la connexion. SCTP brise ce lien entre la localisation du nœud et l'identification des associations.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a fait un rappel des différentes couches de la pile réseau d'un système. La couche réseau, ou niveau 3, est le langage commun de tous les nœuds connectés à l'Internet. L'introduction d'IPv6 a donc un impact sur les différentes couches, notamment la couche sous-jacente, couche liaison, et les couches supérieures, notamment la couche transport. Même si ces couches sont censées être indépendantes dans le modèle théorique OSI, force est de remarquer que dans la pratique, elles sont interdépendantes.&lt;br /&gt;
Pour preuve le champ de contrôle d'erreur n'a pas été retenu au niveau de la couche IP  car il y a déjà un contrôle fait au niveau ''liaison''. Et un autre contrôle d'erreur a été  placé dans les couches supérieures afin de vérifier l'intégrité des données transportées. Cette vérification se fait uniquement par le destinataire. Le contrôle d'erreur est un exemple qui illustre  l'interdépendance des couches.&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 1323 : TCP Extensions for High Performance [http://www.bortzmeyer.org/1323.html Analyse]&lt;br /&gt;
* RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 3828 : The Lightweight User Datagram Protocol (UDP-Lite) [http://www.bortzmeyer.org/3828.html Analyse]&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 4960 Stream Control Transmission Protocol [http://www.bortzmeyer.org/4960.html Analyse]&lt;br /&gt;
* RFC 5692 : Transmission of IP over Ethernet over IEEE 802.16 networks [http://www.bortzmeyer.org/5692.html Analyse]&lt;br /&gt;
* RFC 6691 : TCP Options and MSS [http://www.bortzmeyer.org/6691.html Analyse]&lt;br /&gt;
* RFC 6935: IPv6 and UDP Checksums for Tunneled Packets [http://www.bortzmeyer.org/6935.html Analyse]&lt;br /&gt;
* RFC 6936: Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums[http://www.bortzmeyer.org/6936.html Analyse]&lt;br /&gt;
* RFC 6951 : UDP Encapsulation of SCTP Packets for End-Host to End-Host Communication [http://www.bortzmeyer.org/6951.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20065</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20065"/>
				<updated>2022-02-18T16:23:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Couche liaison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Les mécanismes d’encapsulation ==&lt;br /&gt;
La notion d'encapsulation de protocoles repose sur le principe de l’empilement des couches représentatives des traitements nécessaires à effectuer dans les différents composants d’un réseau. Ces traitements affecteront toutes les couches dans les nœuds d’extrémité, et certaines seulement pour les nœuds intermédiaires.&lt;br /&gt;
&lt;br /&gt;
L’organisation internationale de normalisation ISO a défini le modèle OSI (''Open System Interconnection'') par une décomposition de l'architecture du réseau en 7 couches représentées du niveau Physique jusqu’au niveau Application comme représentée par la figure 1. Le modèle TCP/IP (ou DOD ''Department of Defense'') a eu une approche plus pragmatique en décomposant l'architecture de réseau en 4 couches. Les couches session, présentation et application sont agrégées en une seule couche applicative propre à chaque protocole.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_12_Encapsulation_v01.jpg|thumb|center|500px|Figure 1 : Comparaison modèle OSI - modèle TCP/IP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour simplifier l’organisation, pour un nœud d'extrémité du réseau, nous pouvons considérer que la carte réseau réalise les fonctions de niveau Physique et Liaison, que le traitement des couches Réseau et Transport est réalisé par les couches intermédiaires installées dans le système d’exploitation, et que le reste du système, avec les programmes applicatifs, gère les couches Session, Présentation et Application.&lt;br /&gt;
&lt;br /&gt;
Cette activité vise à présenter l’intégration d’IPv6 dans la pile protocolaire. Aussi, nous aborderons l'encapsulation sous l'angle de deux points importants et impactés par le remplacement de IPv4 par IPv6 au sein de la couche de réseau à savoir: la longueur maximale des unités de transfert (''Maximum Transmission Unit'' (MTU)) et la détection des erreurs d'intégrité (ou erreurs binaires).  La question de la détection d'erreur binaire se pose dans la mesure où le calcul de redondance a disparu de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Traitement des couches basses==&lt;br /&gt;
&lt;br /&gt;
La méthode de transfert d'un datagramme IPv6 entre deux nœuds directement reliés entre eux par un lien physique est le même que pour IPv4. Le datagramme est tout d'abord transmis vers l'interface d'émission qui l'encapsule dans une trame. La trame est une PDU (''Protocol Data Unit'') de niveau 2 dans le modèle de référence OSI. Cette trame est transmise sur le lien avec l'adresse physique du nœud de destination. Cette adresse sur un lien sera appelée adresse MAC dans la suite. Le nœud de destination reçoit la trame sur son interface, désencapsule le datagramme et le traite.&lt;br /&gt;
&lt;br /&gt;
Les différences avec IPv4 sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* sur le support Ethernet, le RFC 2464 précise que le code protocole encapsulé de la trame est différent (champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; d'une trame Ethernet). Par exemple, pour les réseaux à diffusion, le code est &amp;lt;tt&amp;gt;0x86DD&amp;lt;/tt&amp;gt; alors que, pour IPv4, le code est &amp;lt;tt&amp;gt;0x0800&amp;lt;/tt&amp;gt;. À l'origine, il était prévu de garder le même code et d'assurer l'aiguillage entre IPv4 et IPv6 en utilisant le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; du paquet. Mais certains nœuds ne vérifient pas la valeur de ce champ et auraient eu un comportement incontrôlable en essayant de traiter un paquet IPv6 comme un paquet IPv4 ;&lt;br /&gt;
* la résolution de l'adresse MAC de destination à partir de l'adresse IP de destination du paquet change. Par exemple, sur un réseau à diffusion, cette résolution est faite en IPv4 par le protocole ARP alors qu'en IPv6 on utilise le protocole de découverte de voisins comme nous le verrons dans la séquence 3 ;&lt;br /&gt;
* la taille minimale d'une trame est passée à 1 280 octets ; ceci peut forcer certains protocoles à utiliser plusieurs trames par datagramme IPv6 ;&lt;br /&gt;
* enfin, certains protocoles ont des parties propres à IPv4. Ces parties doivent être modifiés. C'est le cas des protocoles de contrôle et de compression de PPP.&lt;br /&gt;
&lt;br /&gt;
=== Couche physique ===&lt;br /&gt;
Commençons par la couche ''physique'', qui est à la base de l’édifice de ce modèle. Les spécifications de cette couche dépendent du support lui-même. Nous devons gérer la transmission des informations binaires issues du codage des trames et des paquets sur un support cuivre, optique ou sans fil ; d’où la nécessité d’adaptation aux caractéristiques des composants (câbles, connecteurs ou antennes) et d’une méthode appropriée de codage des données (représentation physique des données binaires). &lt;br /&gt;
&lt;br /&gt;
La représentation binaire utilisée dépend du support. Sur du cuivre, on utilise des variations d’impulsions électriques ; sur une fibre optique, ce sont des variations lumineuses sur une ou plusieurs longueurs d’ondes ; en transmission sans fil, ce sont généralement des signaux radio, laser ou infrarouge. La couche ''physique'' coordonne le débit et la synchronisation de l'émetteur et du récepteur réseau, tout en tentant de garantir la transparence et l’intégrité d’un flux d’information binaire, sans notion d’interprétation du contenu.&lt;br /&gt;
&lt;br /&gt;
Hélas, cette couche est fréquemment soumise à différentes perturbations issues de l'environnement extérieur au canal de transmission : rayonnements électromagnétiques, micro-coupures ou altérations des signaux par différents facteurs. Les coupleurs intégrés dans les cartes réseau réalisent les fonctions nécessaires et utiles au niveau ''physique'', et on dispose d’un indicateur de qualité de la transmission avec le calcul du CRC (''Cyclic Redondancy Check'').&lt;br /&gt;
&lt;br /&gt;
=== Couche liaison ===&lt;br /&gt;
Le rôle de la couche ''liaison'' est, entre autres, de contrôler l'accès à la couche physique, en réalisant le multiplexage temporel sur le support de transmission, et de transformer la couche ''physique'' en une liaison à priori exempte d'erreurs de transmission pour la couche ''réseau''. La couche ''liaison'' doit être capable d’écarter le trafic nécessaire à la synchronisation sur le lien physique, et de reconnaître les débuts et fins de trames. Cette couche écarte les trames en cas de réception erronée, comme en cas de non respect du format, ou bien en cas de problème sur la ligne de transmission. La vérification du champ CRC aide à faire ce tri. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement d’un récepteur incapable de suivre un rythme imposé.&lt;br /&gt;
&lt;br /&gt;
L'unité de données de protocole de la couche ''liaison de données'' est la trame (''Link Protocol Data Unit'' (LPDU)), qui est composée de plusieurs champs permettant d’identifier l’origine des échanges, le rôle de la trame, le contenu de l’enveloppe et, en fin de trame, le champ CRC, le tout étant encadré par une séquence particulière de codage de début et de fin de trame.&lt;br /&gt;
&lt;br /&gt;
Si nous prenons l’exemple de la trame Ethernet originale (cf. Figure 2), un délai inter-trame minimum de 96 intervalles de temps est spécifié comme silence sur un support cuivre alors que, sur un support optique, tout silence est comblé par la transmission d’un ou plusieurs symboles particuliers « idle » ; une parfaite synchronisation est alors maintenue entre les extrémités du lien optique.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015 10 12 Ethernet v01.jpg|thumb|center|600px|Figure 2 : Format de la trame Ethernet.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Une fois que l’arrivée d’une trame Ethernet est détectée par le coupleur, les premiers champs immédiatement accessibles correspondent aux adresses MAC &amp;lt;tt&amp;gt;Destination&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;Source&amp;lt;/tt&amp;gt; puis, soit au champ &amp;lt;tt&amp;gt;Longueur&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation au standard 802.3, ou bien au champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation avec le standard Ethernet original. Ensuite, l’enveloppe de la trame transporte les données, qui correspondent aux paquets IPv6 dès lors que le champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; vaut &amp;lt;tt&amp;gt;0x86dd&amp;lt;/tt&amp;gt;. Vient ensuite le champ CRC codé sur 32 bits.&lt;br /&gt;
Dans le cas d’une encapsulation au standard 802.1Q, d’autres champs permettent la reconnaissance du numéro de VLAN (''Virtual Local Access Network'') et du niveau de priorité défini dans le standard 802.1p.&lt;br /&gt;
&lt;br /&gt;
Un des éléments particulièrement importants est la capacité de transport de la trame. Dans l’exemple ci-dessus, nous voyons que la trame Ethernet traditionnelle dispose d’une enveloppe qui autorise le transport de 1500 octets maximum : MTU = 1500.&lt;br /&gt;
&lt;br /&gt;
D’autres formats de trames permettent des échanges plus ou moins importants. Citons quelques MTU :&lt;br /&gt;
* PPPoE = 1492&lt;br /&gt;
* PPPoA = 1468&lt;br /&gt;
* MPLS = 1500 à 65535&lt;br /&gt;
* 802.15.4 (LowPAN) = 81&lt;br /&gt;
* Ethernet Jumboframe = 9000&lt;br /&gt;
&lt;br /&gt;
Rappelons que la spécification du protocole IPv6 impose une taille minimale du paquet de 1280 octets. Pour les couches liaison imposant des tailles inférieures, il est donc obligatoire de mettre en place une ''couche d'adaptation'' comme 6LowPAN (RFC 4944) pour les réseaux 802.15.4. Cette couche située entre la couche ''liaison'' et la couche ''réseau'' IPv6 prend en charge le découpage des paquets IPv6 en fragments pouvant être transportés dans les trames et leur ré-assemblage au niveau du premier routeur de sortie.&lt;br /&gt;
&lt;br /&gt;
== Couches intermédiaires ==&lt;br /&gt;
&lt;br /&gt;
=== Couche réseau ===&lt;br /&gt;
&lt;br /&gt;
Étant donné que la taille minimum de l’en-tête IPv6 est de 40 octets, le MTU résiduel d’une trame Ethernet classique est de 1500 - 40 = 1460 octets ; sachant que ces 1460 octets de données seront probablement encore amputées d’en-têtes de niveau transport, par exemple 20 octets minimum pour TCP et 8 octets pour UDP.&lt;br /&gt;
&lt;br /&gt;
Parmi les différences existant entre les datagrammes IPv4 et IPv6, il y a la disparition de la somme de contrôle d'erreur (''checksum'') dans les en-têtes IPv6. Cette somme de contrôle était utilisée pour vérifier l'absence d'erreur binaire de l'en-tête du paquet traité. Une erreur binaire est le changement de valeur d'un bit effectué lors de la transmission. En IPv4, il est nécessaire de la vérifier et de l'ajuster lors de chaque retransmission par un routeur, ce qui entraîne une augmentation du temps de traitement du paquet. &lt;br /&gt;
Cette somme ne vérifie que l'en-tête IPv4, pas le reste du paquet. Aujourd'hui, les supports physiques sont de meilleure qualité et savent détecter les erreurs (par exemple, Ethernet a toujours calculé sa propre somme de contrôle ; PPP, qui a presque partout remplacé SLIP, possède un CRC). L'intérêt de la somme de contrôle au niveau réseau a diminué et ce champ a été supprimé de l'en-tête IPv6. &lt;br /&gt;
&lt;br /&gt;
Le checksum sur l'en-tête IPv6 n'existant plus, il faut néanmoins se prémunir des erreurs de transmission. En particulier, une erreur sur l'adresse de destination va faire router un paquet dans une mauvaise direction. Le destinataire doit donc vérifier que les informations d'en-tête IP sont correctes avant d'accepter ces paquets. Dans les mises en œuvre des piles de protocoles Internet, les entités de niveau transport remplissent certains champs du niveau réseau. Il a donc été décidé que tous les protocoles au-dessus d'IPv6 devaient utiliser une somme de contrôle intégrant à la fois les données et les informations de l'en-tête IPv6. La notion de ''pseudo-en-tête'' dérive de cette conception. Pour un protocole comme TCP, qui possède une somme de contrôle, cela signifie qu'il faut modifier le calcul de cette somme. Pour un protocole comme UDP, qui possède une somme de contrôle facultative, cela signifie qu'il faut modifier le calcul de cette somme et le rendre obligatoire. &lt;br /&gt;
&lt;br /&gt;
IPv6 a unifié la méthode de calcul des différentes sommes de contrôle. Le RFC 8200 définit, dans sa section 8.1, un ''pseudo-en-tête'' (cf. Figure 3), résultat de la concaténation d'une partie de l'en-tête IPv6 et du PDU du protocole concerné. L'algorithme de calcul du checksum est celui utilisé en IPv4. Il est très simple à mettre en œuvre et ne demande pas d'opérations complexes. Il s'agit de faire la somme en complément à 1 des mots de 16 bits du ''pseudo-en-tête'', de l'en-tête du protocole de transport, et des données, puis de prendre le complément à 1 du résultat.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Fig4-10.png|thumb|center|500px|Figure 3 : Champs du &amp;lt;tt&amp;gt;pseudo-en-tête&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Il faut noter que les informations contenues dans le ''pseudo-en-tête'' ne seront pas émises telles quelles sur le réseau. Le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; du ''pseudo-en-tête'' ne reflète pas celui qui sera émis dans les paquets puisque les extensions ne sont pas prises en compte dans le calcul du checksum. Ainsi, si l'extension de routage est mise en œuvre, l'adresse de la destination est celle du dernier nœud. De même, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est codé sur 32 bits pour contenir la valeur de l'option ''jumbogramme'' si celle-ci est présente.&lt;br /&gt;
&lt;br /&gt;
=== Couches Transport ===&lt;br /&gt;
&lt;br /&gt;
==== UDP et TCP ====&lt;br /&gt;
&lt;br /&gt;
Les modifications apportées aux protocoles de niveau transport sont minimes. L'un des pré-requis à la mise en œuvre d'IPv6 était de laisser en l'état aussi bien TCP (''Transmission Control Protocol'') qu'UDP (''User Datagram Protocol''). Ces protocoles de transport sont utilisés par la très grande majorité des applications réseau et l'absence de modification facilitera grandement le passage de IPv4 à IPv6. &lt;br /&gt;
&lt;br /&gt;
La principale modification de ces protocoles concerne le calcul de la somme de contrôle (''checksum'') pour vérifier l'intégrité des données. Comme la couche ''réseau'' ne possède pas de champ de contrôle, c'est à la couche de transport que revient cette tâche. Le calcul de la somme de contrôle au niveau du transport a donc été adapté pour inclure des données de l'en-tête. De plus, la présence d'une somme de contrôle devient obligatoire pour tout protocole de niveau supérieur transporté au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
'''''Nota : ''''' ''les RFC 6935 et RFC 6936 ont introduit une dispense à cette obligation, dans les cas des techniques de tunnel au dessus d'UDP. La nouvelle philosophie est résumée ainsi par S. Bortzmeyer : &amp;quot;par défaut, la somme de contrôle doit être calculée et mise dans le paquet. Mais on peut s'en dispenser dans le cas de tunnels (et uniquement celui-ci), sur le paquet extérieur. Le protocole à l'intérieur du paquet (qui n'est pas forcément de l'UDP et même pas forcément de l'IPv6) doit rester protégé par sa propre somme de contrôle. Cela ne doit s'appliquer que pour une liste explicite de ports (ceux utilisés par le tunnel) et pas pour tout le trafic UDP du nœud. Et le tout doit se faire en lisant le RFC 6936 qui précise les conditions d'application de cette nouvelle règle.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Un autre changement au niveau des protocoles de niveau 4 concerne la prise en compte de l'option ''jumbogramme'' de l'extension ''proche-en-proche''. Le RFC 2675 définit le comportement d’UDP et de TCP quand les jumbogrammes sont utilisés. En effet, les en-têtes de ces messages contiennent eux aussi un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; codé sur 16 bits et, par conséquent, insuffisant pour coder la longueur du jumbogramme :&lt;br /&gt;
* pour le protocole UDP, si la longueur des données excède 65 535 octets, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est mis à 0. Le récepteur détermine la longueur des données par la connaissance de la taille dans l'option ''jumbogramme'' ;&lt;br /&gt;
* le protocole TCP pose plus de problèmes. En effet, bien que les messages TCP ne contiennent pas de champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;, plusieurs compteurs sont codés sur 16 bits ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de la fenêtre de réception ne pose pas de problème depuis que le RFC 1323 a défini l'option ''TCP window scale'' qui donne le facteur multiplicatif qui doit être appliqué à ce champ ;&lt;br /&gt;
* à l'ouverture de connexion, la taille maximale des segments (MSS) est négociée. Le RFC 2675 précise que, si cette taille doit être supérieure à 65 535, la valeur 65 535 est envoyée et le récepteur prend en compte la longueur déterminée par l'algorithme de découverte du MTU. &lt;br /&gt;
&lt;br /&gt;
Pour l'envoi de données urgentes avec TCP, on utilise un bit spécifique de l'en-tête TCP (bit &amp;lt;tt&amp;gt;URG&amp;lt;/tt&amp;gt;) ainsi que le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. Ce dernier sert à référencer la fin des données à traiter de manière particulière. Trois cas peuvent se présenter :&lt;br /&gt;
* le premier, qui est identique à IPv4, est celui où le pointeur indique une position de moins de 65 535 ;&lt;br /&gt;
* le second se produit lorsque le déplacement est supérieur à 65 535 et supérieur ou égal à la taille des données TCP envoyées. Cette fois-ci, on place la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt; et on continue le traitement normal des paquets TCP ;&lt;br /&gt;
* le dernier cas intervient quand le pointeur indique un déplacement de plus de 65 535 qui est inférieur à la taille des données TCP. Un premier paquet est alors envoyé, dans lequel on met la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. L'important est de choisir une taille de paquet de manière à ce que le déplacement dans le second paquet, pour indiquer la fin des données urgentes, soit inférieur à 65 535. &lt;br /&gt;
&lt;br /&gt;
Il existe d'autres propositions pour faire évoluer TCP. Il faut remarquer que le travail n'est pas de même ampleur que pour IP. En effet, TCP est un protocole de bout en bout. La transition vers une nouvelle génération du protocole peut se faire par négociation entre les deux extrémités. Pour IP, tous les routeurs intermédiaires doivent prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
==== UDP-lite ====&lt;br /&gt;
&lt;br /&gt;
UDP-lite permet de remonter aux couches supérieures des données erronées pendant leur transport. Si, dans un environnement informatique, une erreur peut avoir des conséquences relativement graves quant à l'intégrité des données, il est normal de rejeter ces paquets. Dans le domaine du multimédia, cette exigence peut être relâchée. En effet, la plupart des décodeurs de flux audio ou vidéo sont capables de supporter un certain nombre d'erreurs binaires dans un flux de données. Pour améliorer la qualité perçue par l'utilisateur, il est donc préférable d'accepter des paquets erronés plutôt que de rejeter un bloc complet d'informations qui se traduirait par une coupure perceptible du flux.&lt;br /&gt;
&lt;br /&gt;
En IPv4, l'utilisation du ''checksum UDP'' étant optionnelle (la valeur 0 indique que le checksum n'est pas calculé), UDP peut être utilisé pour transporter des flux multimédias. Avec IPv6, l'utilisation du checksum a été rendue obligatoire puisque le niveau 3 n'en possède pas. Pour éviter qu'un paquet comportant des erreurs ne puisse pas être remonté aux couches supérieures, le protocole UDP-lite a été défini par le RFC 3828. Les modifications sont minimes par rapport à UDP. Le format de la trame reste le même ; seule la sémantique du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est changée. Avec UDP, ce champ est inutile puisqu'il est facilement déduit du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de l'en-tête IP. UDP-lite le transforme en champ &amp;lt;tt&amp;gt;couverture du checksum&amp;lt;/tt&amp;gt;. Si la longueur est 0, UDP-lite considère que le checksum couvre tout le paquet. La valeur 8 indique que seul l'en-tête UDP est protégé par le checksum (ainsi qu'une partie de l'en-tête IP grâce au pseudo-header). Les valeurs comprises entre 1 et 7 sont interdites car le checksum UDP-lite doit toujours couvrir l'en-tête. Une valeur supérieure à 8 indique qu'une partie des données sont protégées. Si la couverture est égale à la longueur du message, on se retrouve dans un cas compatible avec UDP.&lt;br /&gt;
&lt;br /&gt;
==== SCTP ====&lt;br /&gt;
Le protocole SCTP (''Stream Control Transmission Protocol'') RFC 4960 est fortement lié au protocole IPv6. SCTP est un protocole de niveau 4 initialement conçu pour transporter des informations de signalisation&amp;lt;ref&amp;gt;Fu, S. et Atiquzzaman, M. (2004). IEEE Communications Magazine, Vol. 42, No. 4, April. &lt;br /&gt;
SCTP: State of the Art in Research, Products, and Technical Challenges.&amp;lt;/ref&amp;gt;. La fiabilité est donc un prérequis important et la gestion de la multi-domiciliation est prise en compte. L'idée est de permettre aux deux nœuds d'extrémité d'échanger, à l'initialisation de la connexion (appelée, dans le standard, ''association''), l'ensemble de leurs adresses IPv4 et IPv6. Chaque nœud choisit une adresse privilégiée pour émettre les données vers l'autre extrémité et surveille périodiquement l'accessibilité des autres adresses. Si le nœud n'est plus accessible par l'adresse principale, une adresse secondaire est choisie. &lt;br /&gt;
&lt;br /&gt;
SCTP permet une transition douce d'IPv4 vers IPv6 puisque l'application n'a plus à se préoccuper de la gestion des adresses. Si les deux entités possèdent une adresse IPv6, celle-ci sera privilégiée. De plus, SCTP peut servir de brique de base à la gestion de la multi-domiciliation IPv6. En effet, avec TCP, une connexion est identifiée par ses adresses. Si une adresse n'est plus accessible, le fait d'en changer peut conduire à la coupure de la connexion. Il faut avoir recours à des subterfuges, comme la mobilité IP, pour maintenir la connexion. SCTP brise ce lien entre la localisation du nœud et l'identification des associations.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a fait un rappel des différentes couches de la pile réseau d'un système. La couche réseau, ou niveau 3, est le langage commun de tous les nœuds connectés à l'Internet. L'introduction d'IPv6 a donc un impact sur les différentes couches, notamment la couche sous-jacente, couche liaison, et les couches supérieures, notamment la couche transport. Même si ces couches sont censées être indépendantes dans le modèle théorique OSI, force est de remarquer que dans la pratique, elles sont interdépendantes.&lt;br /&gt;
Pour preuve le champ de contrôle d'erreur n'a pas été retenu au niveau de la couche IP  car il y a déjà un contrôle fait au niveau ''liaison''. Et un autre contrôle d'erreur a été  placé dans les couches supérieures afin de vérifier l'intégrité des données transportées. Cette vérification se fait uniquement par le destinataire. Le contrôle d'erreur est un exemple qui illustre  l'interdépendance des couches.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 1323 : TCP Extensions for High Performance [http://www.bortzmeyer.org/1323.html Analyse]&lt;br /&gt;
* RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 3828 : The Lightweight User Datagram Protocol (UDP-Lite) [http://www.bortzmeyer.org/3828.html Analyse]&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 4960 Stream Control Transmission Protocol [http://www.bortzmeyer.org/4960.html Analyse]&lt;br /&gt;
* RFC 5692 : Transmission of IP over Ethernet over IEEE 802.16 networks [http://www.bortzmeyer.org/5692.html Analyse]&lt;br /&gt;
* RFC 6691 : TCP Options and MSS [http://www.bortzmeyer.org/6691.html Analyse]&lt;br /&gt;
* RFC 6935: IPv6 and UDP Checksums for Tunneled Packets [http://www.bortzmeyer.org/6935.html Analyse]&lt;br /&gt;
* RFC 6936: Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums[http://www.bortzmeyer.org/6936.html Analyse]&lt;br /&gt;
* RFC 6951 : UDP Encapsulation of SCTP Packets for End-Host to End-Host Communication [http://www.bortzmeyer.org/6951.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20064</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20064"/>
				<updated>2022-02-18T16:20:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Activité 20  :  L'architecture des protocoles de l'Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Les mécanismes d’encapsulation ==&lt;br /&gt;
La notion d'encapsulation de protocoles repose sur le principe de l’empilement des couches représentatives des traitements nécessaires à effectuer dans les différents composants d’un réseau. Ces traitements affecteront toutes les couches dans les nœuds d’extrémité, et certaines seulement pour les nœuds intermédiaires.&lt;br /&gt;
&lt;br /&gt;
L’organisation internationale de normalisation ISO a défini le modèle OSI (''Open System Interconnection'') par une décomposition de l'architecture du réseau en 7 couches représentées du niveau Physique jusqu’au niveau Application comme représentée par la figure 1. Le modèle TCP/IP (ou DOD ''Department of Defense'') a eu une approche plus pragmatique en décomposant l'architecture de réseau en 4 couches. Les couches session, présentation et application sont agrégées en une seule couche applicative propre à chaque protocole.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015_10_12_Encapsulation_v01.jpg|thumb|center|500px|Figure 1 : Comparaison modèle OSI - modèle TCP/IP.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Pour simplifier l’organisation, pour un nœud d'extrémité du réseau, nous pouvons considérer que la carte réseau réalise les fonctions de niveau Physique et Liaison, que le traitement des couches Réseau et Transport est réalisé par les couches intermédiaires installées dans le système d’exploitation, et que le reste du système, avec les programmes applicatifs, gère les couches Session, Présentation et Application.&lt;br /&gt;
&lt;br /&gt;
Cette activité vise à présenter l’intégration d’IPv6 dans la pile protocolaire. Aussi, nous aborderons l'encapsulation sous l'angle de deux points importants et impactés par le remplacement de IPv4 par IPv6 au sein de la couche de réseau à savoir: la longueur maximale des unités de transfert (''Maximum Transmission Unit'' (MTU)) et la détection des erreurs d'intégrité (ou erreurs binaires).  La question de la détection d'erreur binaire se pose dans la mesure où le calcul de redondance a disparu de l'en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
== Traitement des couches basses==&lt;br /&gt;
&lt;br /&gt;
La méthode de transfert d'un datagramme IPv6 entre deux nœuds directement reliés entre eux par un lien physique est le même que pour IPv4. Le datagramme est tout d'abord transmis vers l'interface d'émission qui l'encapsule dans une trame. La trame est une PDU (''Protocol Data Unit'') de niveau 2 dans le modèle de référence OSI. Cette trame est transmise sur le lien avec l'adresse physique du nœud de destination. Cette adresse sur un lien sera appelée adresse MAC dans la suite. Le nœud de destination reçoit la trame sur son interface, désencapsule le datagramme et le traite.&lt;br /&gt;
&lt;br /&gt;
Les différences avec IPv4 sont les suivantes :&lt;br /&gt;
&lt;br /&gt;
* sur le support Ethernet, le RFC 2464 précise que le code protocole encapsulé de la trame est différent (champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; d'une trame Ethernet). Par exemple, pour les réseaux à diffusion, le code est &amp;lt;tt&amp;gt;0x86DD&amp;lt;/tt&amp;gt; alors que, pour IPv4, le code est &amp;lt;tt&amp;gt;0x0800&amp;lt;/tt&amp;gt;. À l'origine, il était prévu de garder le même code et d'assurer l'aiguillage entre IPv4 et IPv6 en utilisant le champ &amp;lt;tt&amp;gt;Version&amp;lt;/tt&amp;gt; du paquet. Mais certains nœuds ne vérifient pas la valeur de ce champ et auraient eu un comportement incontrôlable en essayant de traiter un paquet IPv6 comme un paquet IPv4 ;&lt;br /&gt;
* la résolution de l'adresse MAC de destination à partir de l'adresse IP de destination du paquet change. Par exemple, sur un réseau à diffusion, cette résolution est faite en IPv4 par le protocole ARP alors qu'en IPv6 on utilise le protocole de découverte de voisins comme nous le verrons dans la séquence 3 ;&lt;br /&gt;
* la taille minimale d'une trame est passée à 1 280 octets ; ceci peut forcer certains protocoles à utiliser plusieurs trames par datagramme IPv6 ;&lt;br /&gt;
* enfin, certains protocoles ont des parties propres à IPv4. Ces parties doivent être modifiés. C'est le cas des protocoles de contrôle et de compression de PPP.&lt;br /&gt;
&lt;br /&gt;
=== Couche physique ===&lt;br /&gt;
Commençons par la couche ''physique'', qui est à la base de l’édifice de ce modèle. Les spécifications de cette couche dépendent du support lui-même. Nous devons gérer la transmission des informations binaires issues du codage des trames et des paquets sur un support cuivre, optique ou sans fil ; d’où la nécessité d’adaptation aux caractéristiques des composants (câbles, connecteurs ou antennes) et d’une méthode appropriée de codage des données (représentation physique des données binaires). &lt;br /&gt;
&lt;br /&gt;
La représentation binaire utilisée dépend du support. Sur du cuivre, on utilise des variations d’impulsions électriques ; sur une fibre optique, ce sont des variations lumineuses sur une ou plusieurs longueurs d’ondes ; en transmission sans fil, ce sont généralement des signaux radio, laser ou infrarouge. La couche ''physique'' coordonne le débit et la synchronisation de l'émetteur et du récepteur réseau, tout en tentant de garantir la transparence et l’intégrité d’un flux d’information binaire, sans notion d’interprétation du contenu.&lt;br /&gt;
&lt;br /&gt;
Hélas, cette couche est fréquemment soumise à différentes perturbations issues de l'environnement extérieur au canal de transmission : rayonnements électromagnétiques, micro-coupures ou altérations des signaux par différents facteurs. Les coupleurs intégrés dans les cartes réseau réalisent les fonctions nécessaires et utiles au niveau ''physique'', et on dispose d’un indicateur de qualité de la transmission avec le calcul du CRC (''Cyclic Redondancy Check'').&lt;br /&gt;
&lt;br /&gt;
=== Couche liaison ===&lt;br /&gt;
Le rôle de la couche ''liaison'' est, entre autres, de contrôler l'accès à la couche physique, en réalisant le multiplexage temporel sur le support de transmission, et de transformer la couche ''physique'' en une liaison à priori exempte d'erreurs de transmission pour la couche ''réseau''. La couche ''liaison'' doit être capable d’écarter le trafic nécessaire à la synchronisation sur le lien physique, et de reconnaître les débuts et fins de trames. Cette couche écarte les trames en cas de réception erronée, comme en cas de non respect du format, ou bien en cas de problème sur la ligne de transmission. La vérification du champ CRC aide à faire ce tri. Cette couche intègre également une fonction de contrôle de flux pour éviter l'engorgement d’un récepteur incapable de suivre un rythme imposé.&lt;br /&gt;
&lt;br /&gt;
L'unité de données de protocole de la couche ''liaison de données'' est la trame (''Link Protocol Data Unit'' (LPDU)), qui est composée de plusieurs champs permettant d’identifier l’origine des échanges, le rôle de la trame, le contenu de l’enveloppe et, en fin de trame, le champ CRC, le tout étant encadré par une séquence particulière de codage de début et de fin de trame.&lt;br /&gt;
&lt;br /&gt;
Si nous prenons l’exemple de la trame Ethernet (cf. Figure 2), un délai inter-trame minimum de 96 intervalles de temps est spécifié comme silence sur un support cuivre alors que, sur un support optique, tout silence est comblé par la transmission d’un ou plusieurs symboles particuliers « idle » ; une parfaite synchronisation est alors maintenue entre les extrémités du lien optique.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:2015 10 12 Ethernet v01.jpg|thumb|center|600px|Figure 2 : Format de la trame Ethernet.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Une fois que l’arrivée d’une trame Ethernet est détectée par le coupleur, les premiers champs immédiatement accessibles correspondent aux adresses MAC &amp;lt;tt&amp;gt;Destination&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;Source&amp;lt;/tt&amp;gt; puis, soit au champ &amp;lt;tt&amp;gt;Longueur&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation au standard 802.3, ou bien au champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; dans le cas d’une encapsulation avec le standard Ethernet original. Ensuite, l’enveloppe de la trame transporte les données, qui correspondent aux paquets IPv6 dès lors que le champ &amp;lt;tt&amp;gt;EtherType&amp;lt;/tt&amp;gt; vaut &amp;lt;tt&amp;gt;0x86dd&amp;lt;/tt&amp;gt;. Vient ensuite le champ CRC codé sur 32 bits.&lt;br /&gt;
Dans le cas d’une encapsulation au standard 802.1Q, d’autres champs permettent la reconnaissance du numéro de VLAN (''Virtual Local Access Network'') et du niveau de priorité défini dans le standard 802.1p.&lt;br /&gt;
&lt;br /&gt;
Un des éléments particulièrement importants est la capacité de transport de la trame. Dans l’exemple ci-dessus, nous voyons que la trame Ethernet traditionnelle dispose d’une enveloppe qui autorise le transport de 1500 octets maximum : MTU = 1500.&lt;br /&gt;
&lt;br /&gt;
D’autres formats de trames permettent des échanges plus ou moins importants. Citons quelques MTU :&lt;br /&gt;
* PPPoE = 1492&lt;br /&gt;
* PPPoA = 1468&lt;br /&gt;
* MPLS = 1500 à 65535&lt;br /&gt;
* 802.15.4 (LowPAN) = 81&lt;br /&gt;
* Ethernet Jumboframe = 9000&lt;br /&gt;
&lt;br /&gt;
Rappelons que la spécification du protocole IPv6 impose une taille minimale du paquet de 1280 octets. Pour les couches liaison imposant des tailles inférieures, il est donc obligatoire de mettre en place une ''couche d'adaptation'' comme 6LowPAN (RFC 4944) pour les réseaux 802.15.4. Cette couche située entre la couche ''liaison'' et la couche ''réseau'' IPv6 prend en charge le découpage des paquets IPv6 en fragments pouvant être transportés dans les trames et leur ré-assemblage au niveau du premier routeur de sortie.&lt;br /&gt;
&lt;br /&gt;
== Couches intermédiaires ==&lt;br /&gt;
&lt;br /&gt;
=== Couche réseau ===&lt;br /&gt;
&lt;br /&gt;
Étant donné que la taille minimum de l’en-tête IPv6 est de 40 octets, le MTU résiduel d’une trame Ethernet classique est de 1500 - 40 = 1460 octets ; sachant que ces 1460 octets de données seront probablement encore amputées d’en-têtes de niveau transport, par exemple 20 octets minimum pour TCP et 8 octets pour UDP.&lt;br /&gt;
&lt;br /&gt;
Parmi les différences existant entre les datagrammes IPv4 et IPv6, il y a la disparition de la somme de contrôle d'erreur (''checksum'') dans les en-têtes IPv6. Cette somme de contrôle était utilisée pour vérifier l'absence d'erreur binaire de l'en-tête du paquet traité. Une erreur binaire est le changement de valeur d'un bit effectué lors de la transmission. En IPv4, il est nécessaire de la vérifier et de l'ajuster lors de chaque retransmission par un routeur, ce qui entraîne une augmentation du temps de traitement du paquet. &lt;br /&gt;
Cette somme ne vérifie que l'en-tête IPv4, pas le reste du paquet. Aujourd'hui, les supports physiques sont de meilleure qualité et savent détecter les erreurs (par exemple, Ethernet a toujours calculé sa propre somme de contrôle ; PPP, qui a presque partout remplacé SLIP, possède un CRC). L'intérêt de la somme de contrôle au niveau réseau a diminué et ce champ a été supprimé de l'en-tête IPv6. &lt;br /&gt;
&lt;br /&gt;
Le checksum sur l'en-tête IPv6 n'existant plus, il faut néanmoins se prémunir des erreurs de transmission. En particulier, une erreur sur l'adresse de destination va faire router un paquet dans une mauvaise direction. Le destinataire doit donc vérifier que les informations d'en-tête IP sont correctes avant d'accepter ces paquets. Dans les mises en œuvre des piles de protocoles Internet, les entités de niveau transport remplissent certains champs du niveau réseau. Il a donc été décidé que tous les protocoles au-dessus d'IPv6 devaient utiliser une somme de contrôle intégrant à la fois les données et les informations de l'en-tête IPv6. La notion de ''pseudo-en-tête'' dérive de cette conception. Pour un protocole comme TCP, qui possède une somme de contrôle, cela signifie qu'il faut modifier le calcul de cette somme. Pour un protocole comme UDP, qui possède une somme de contrôle facultative, cela signifie qu'il faut modifier le calcul de cette somme et le rendre obligatoire. &lt;br /&gt;
&lt;br /&gt;
IPv6 a unifié la méthode de calcul des différentes sommes de contrôle. Le RFC 8200 définit, dans sa section 8.1, un ''pseudo-en-tête'' (cf. Figure 3), résultat de la concaténation d'une partie de l'en-tête IPv6 et du PDU du protocole concerné. L'algorithme de calcul du checksum est celui utilisé en IPv4. Il est très simple à mettre en œuvre et ne demande pas d'opérations complexes. Il s'agit de faire la somme en complément à 1 des mots de 16 bits du ''pseudo-en-tête'', de l'en-tête du protocole de transport, et des données, puis de prendre le complément à 1 du résultat.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[image:Fig4-10.png|thumb|center|500px|Figure 3 : Champs du &amp;lt;tt&amp;gt;pseudo-en-tête&amp;lt;/tt&amp;gt;.]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
Il faut noter que les informations contenues dans le ''pseudo-en-tête'' ne seront pas émises telles quelles sur le réseau. Le champ &amp;lt;tt&amp;gt;en-tête suivant&amp;lt;/tt&amp;gt; du ''pseudo-en-tête'' ne reflète pas celui qui sera émis dans les paquets puisque les extensions ne sont pas prises en compte dans le calcul du checksum. Ainsi, si l'extension de routage est mise en œuvre, l'adresse de la destination est celle du dernier nœud. De même, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est codé sur 32 bits pour contenir la valeur de l'option ''jumbogramme'' si celle-ci est présente.&lt;br /&gt;
&lt;br /&gt;
=== Couches Transport ===&lt;br /&gt;
&lt;br /&gt;
==== UDP et TCP ====&lt;br /&gt;
&lt;br /&gt;
Les modifications apportées aux protocoles de niveau transport sont minimes. L'un des pré-requis à la mise en œuvre d'IPv6 était de laisser en l'état aussi bien TCP (''Transmission Control Protocol'') qu'UDP (''User Datagram Protocol''). Ces protocoles de transport sont utilisés par la très grande majorité des applications réseau et l'absence de modification facilitera grandement le passage de IPv4 à IPv6. &lt;br /&gt;
&lt;br /&gt;
La principale modification de ces protocoles concerne le calcul de la somme de contrôle (''checksum'') pour vérifier l'intégrité des données. Comme la couche ''réseau'' ne possède pas de champ de contrôle, c'est à la couche de transport que revient cette tâche. Le calcul de la somme de contrôle au niveau du transport a donc été adapté pour inclure des données de l'en-tête. De plus, la présence d'une somme de contrôle devient obligatoire pour tout protocole de niveau supérieur transporté au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
'''''Nota : ''''' ''les RFC 6935 et RFC 6936 ont introduit une dispense à cette obligation, dans les cas des techniques de tunnel au dessus d'UDP. La nouvelle philosophie est résumée ainsi par S. Bortzmeyer : &amp;quot;par défaut, la somme de contrôle doit être calculée et mise dans le paquet. Mais on peut s'en dispenser dans le cas de tunnels (et uniquement celui-ci), sur le paquet extérieur. Le protocole à l'intérieur du paquet (qui n'est pas forcément de l'UDP et même pas forcément de l'IPv6) doit rester protégé par sa propre somme de contrôle. Cela ne doit s'appliquer que pour une liste explicite de ports (ceux utilisés par le tunnel) et pas pour tout le trafic UDP du nœud. Et le tout doit se faire en lisant le RFC 6936 qui précise les conditions d'application de cette nouvelle règle.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Un autre changement au niveau des protocoles de niveau 4 concerne la prise en compte de l'option ''jumbogramme'' de l'extension ''proche-en-proche''. Le RFC 2675 définit le comportement d’UDP et de TCP quand les jumbogrammes sont utilisés. En effet, les en-têtes de ces messages contiennent eux aussi un champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; codé sur 16 bits et, par conséquent, insuffisant pour coder la longueur du jumbogramme :&lt;br /&gt;
* pour le protocole UDP, si la longueur des données excède 65 535 octets, le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est mis à 0. Le récepteur détermine la longueur des données par la connaissance de la taille dans l'option ''jumbogramme'' ;&lt;br /&gt;
* le protocole TCP pose plus de problèmes. En effet, bien que les messages TCP ne contiennent pas de champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt;, plusieurs compteurs sont codés sur 16 bits ;&lt;br /&gt;
* le champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de la fenêtre de réception ne pose pas de problème depuis que le RFC 1323 a défini l'option ''TCP window scale'' qui donne le facteur multiplicatif qui doit être appliqué à ce champ ;&lt;br /&gt;
* à l'ouverture de connexion, la taille maximale des segments (MSS) est négociée. Le RFC 2675 précise que, si cette taille doit être supérieure à 65 535, la valeur 65 535 est envoyée et le récepteur prend en compte la longueur déterminée par l'algorithme de découverte du MTU. &lt;br /&gt;
&lt;br /&gt;
Pour l'envoi de données urgentes avec TCP, on utilise un bit spécifique de l'en-tête TCP (bit &amp;lt;tt&amp;gt;URG&amp;lt;/tt&amp;gt;) ainsi que le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. Ce dernier sert à référencer la fin des données à traiter de manière particulière. Trois cas peuvent se présenter :&lt;br /&gt;
* le premier, qui est identique à IPv4, est celui où le pointeur indique une position de moins de 65 535 ;&lt;br /&gt;
* le second se produit lorsque le déplacement est supérieur à 65 535 et supérieur ou égal à la taille des données TCP envoyées. Cette fois-ci, on place la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt; et on continue le traitement normal des paquets TCP ;&lt;br /&gt;
* le dernier cas intervient quand le pointeur indique un déplacement de plus de 65 535 qui est inférieur à la taille des données TCP. Un premier paquet est alors envoyé, dans lequel on met la valeur 65 535 dans le champ &amp;lt;tt&amp;gt;pointeur urgent&amp;lt;/tt&amp;gt;. L'important est de choisir une taille de paquet de manière à ce que le déplacement dans le second paquet, pour indiquer la fin des données urgentes, soit inférieur à 65 535. &lt;br /&gt;
&lt;br /&gt;
Il existe d'autres propositions pour faire évoluer TCP. Il faut remarquer que le travail n'est pas de même ampleur que pour IP. En effet, TCP est un protocole de bout en bout. La transition vers une nouvelle génération du protocole peut se faire par négociation entre les deux extrémités. Pour IP, tous les routeurs intermédiaires doivent prendre en compte les modifications.&lt;br /&gt;
&lt;br /&gt;
==== UDP-lite ====&lt;br /&gt;
&lt;br /&gt;
UDP-lite permet de remonter aux couches supérieures des données erronées pendant leur transport. Si, dans un environnement informatique, une erreur peut avoir des conséquences relativement graves quant à l'intégrité des données, il est normal de rejeter ces paquets. Dans le domaine du multimédia, cette exigence peut être relâchée. En effet, la plupart des décodeurs de flux audio ou vidéo sont capables de supporter un certain nombre d'erreurs binaires dans un flux de données. Pour améliorer la qualité perçue par l'utilisateur, il est donc préférable d'accepter des paquets erronés plutôt que de rejeter un bloc complet d'informations qui se traduirait par une coupure perceptible du flux.&lt;br /&gt;
&lt;br /&gt;
En IPv4, l'utilisation du ''checksum UDP'' étant optionnelle (la valeur 0 indique que le checksum n'est pas calculé), UDP peut être utilisé pour transporter des flux multimédias. Avec IPv6, l'utilisation du checksum a été rendue obligatoire puisque le niveau 3 n'en possède pas. Pour éviter qu'un paquet comportant des erreurs ne puisse pas être remonté aux couches supérieures, le protocole UDP-lite a été défini par le RFC 3828. Les modifications sont minimes par rapport à UDP. Le format de la trame reste le même ; seule la sémantique du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; est changée. Avec UDP, ce champ est inutile puisqu'il est facilement déduit du champ &amp;lt;tt&amp;gt;longueur&amp;lt;/tt&amp;gt; de l'en-tête IP. UDP-lite le transforme en champ &amp;lt;tt&amp;gt;couverture du checksum&amp;lt;/tt&amp;gt;. Si la longueur est 0, UDP-lite considère que le checksum couvre tout le paquet. La valeur 8 indique que seul l'en-tête UDP est protégé par le checksum (ainsi qu'une partie de l'en-tête IP grâce au pseudo-header). Les valeurs comprises entre 1 et 7 sont interdites car le checksum UDP-lite doit toujours couvrir l'en-tête. Une valeur supérieure à 8 indique qu'une partie des données sont protégées. Si la couverture est égale à la longueur du message, on se retrouve dans un cas compatible avec UDP.&lt;br /&gt;
&lt;br /&gt;
==== SCTP ====&lt;br /&gt;
Le protocole SCTP (''Stream Control Transmission Protocol'') RFC 4960 est fortement lié au protocole IPv6. SCTP est un protocole de niveau 4 initialement conçu pour transporter des informations de signalisation&amp;lt;ref&amp;gt;Fu, S. et Atiquzzaman, M. (2004). IEEE Communications Magazine, Vol. 42, No. 4, April. &lt;br /&gt;
SCTP: State of the Art in Research, Products, and Technical Challenges.&amp;lt;/ref&amp;gt;. La fiabilité est donc un prérequis important et la gestion de la multi-domiciliation est prise en compte. L'idée est de permettre aux deux nœuds d'extrémité d'échanger, à l'initialisation de la connexion (appelée, dans le standard, ''association''), l'ensemble de leurs adresses IPv4 et IPv6. Chaque nœud choisit une adresse privilégiée pour émettre les données vers l'autre extrémité et surveille périodiquement l'accessibilité des autres adresses. Si le nœud n'est plus accessible par l'adresse principale, une adresse secondaire est choisie. &lt;br /&gt;
&lt;br /&gt;
SCTP permet une transition douce d'IPv4 vers IPv6 puisque l'application n'a plus à se préoccuper de la gestion des adresses. Si les deux entités possèdent une adresse IPv6, celle-ci sera privilégiée. De plus, SCTP peut servir de brique de base à la gestion de la multi-domiciliation IPv6. En effet, avec TCP, une connexion est identifiée par ses adresses. Si une adresse n'est plus accessible, le fait d'en changer peut conduire à la coupure de la connexion. Il faut avoir recours à des subterfuges, comme la mobilité IP, pour maintenir la connexion. SCTP brise ce lien entre la localisation du nœud et l'identification des associations.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Cette activité a fait un rappel des différentes couches de la pile réseau d'un système. La couche réseau, ou niveau 3, est le langage commun de tous les nœuds connectés à l'Internet. L'introduction d'IPv6 a donc un impact sur les différentes couches, notamment la couche sous-jacente, couche liaison, et les couches supérieures, notamment la couche transport. Même si ces couches sont censées être indépendantes dans le modèle théorique OSI, force est de remarquer que dans la pratique, elles sont interdépendantes.&lt;br /&gt;
Pour preuve le champ de contrôle d'erreur n'a pas été retenu au niveau de la couche IP  car il y a déjà un contrôle fait au niveau ''liaison''. Et un autre contrôle d'erreur a été  placé dans les couches supérieures afin de vérifier l'intégrité des données transportées. Cette vérification se fait uniquement par le destinataire. Le contrôle d'erreur est un exemple qui illustre  l'interdépendance des couches.&lt;br /&gt;
&lt;br /&gt;
== Références bibliographiques ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pour aller plus loin==&lt;br /&gt;
RFC et leur analyse par S. Bortzmeyer : &lt;br /&gt;
* RFC 1323 : TCP Extensions for High Performance [http://www.bortzmeyer.org/1323.html Analyse]&lt;br /&gt;
* RFC 2464 : Transmission of IPv6 Packets over Ethernet Networks&lt;br /&gt;
* RFC 2675 : IPv6 Jumbograms&lt;br /&gt;
* RFC 3828 : The Lightweight User Datagram Protocol (UDP-Lite) [http://www.bortzmeyer.org/3828.html Analyse]&lt;br /&gt;
* RFC 4944 : Transmission of IPv6 Packets over IEEE 802.15.4 Networks&lt;br /&gt;
* RFC 4960 Stream Control Transmission Protocol [http://www.bortzmeyer.org/4960.html Analyse]&lt;br /&gt;
* RFC 5692 : Transmission of IP over Ethernet over IEEE 802.16 networks [http://www.bortzmeyer.org/5692.html Analyse]&lt;br /&gt;
* RFC 6691 : TCP Options and MSS [http://www.bortzmeyer.org/6691.html Analyse]&lt;br /&gt;
* RFC 6935: IPv6 and UDP Checksums for Tunneled Packets [http://www.bortzmeyer.org/6935.html Analyse]&lt;br /&gt;
* RFC 6936: Applicability Statement for the Use of IPv6 UDP Datagrams with Zero Checksums[http://www.bortzmeyer.org/6936.html Analyse]&lt;br /&gt;
* RFC 6951 : UDP Encapsulation of SCTP Packets for End-Host to End-Host Communication [http://www.bortzmeyer.org/6951.html Analyse]&lt;br /&gt;
* RFC 8200 : Internet Protocol, Version 6 (IPv6) Specification [http://www.bortzmeyer.org/8200.html Analyse]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20060</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20060"/>
				<updated>2022-02-18T09:25:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Introduction de la séquence 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : en complément vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20059</id>
		<title>MOOC:Compagnon Act20-s7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Compagnon_Act20-s7&amp;diff=20059"/>
				<updated>2022-02-18T09:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Introduction de la séquence 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=  Activité 20  :  L'architecture des protocoles de l'Internet =&lt;br /&gt;
&amp;lt;!-- =  Activité 20  : Notion de paquet et d'acheminement = --&amp;gt;&lt;br /&gt;
&amp;lt;!-- {{Decouverte}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Mode paquet, format prédéfini de l'enveloppe : cadre destinataire, cadre expéditeur, zone timbre, zone &amp;quot;cedex&amp;quot;, ...(~en-tête), &lt;br /&gt;
* acheminement par les maillons du service postal (concierge, facteur, St Exupéry) (~ routage)&lt;br /&gt;
* Taille du paquet : taille de l'enveloppe (cas de l'écrivain qui envoie un manuscrit à son éditeur dans des enveloppes standard de taille limitée) (~ fragmentation à la source)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Internet est une interconnexion de réseaux physiques. Pour réaliser cette interconnexion, une couche est superposée à chaque noeud. Cette couche dite de réseau met en oeuvre le protocole IP afin de rendre le service de connectivité qui consiste à transférer des paquets d'une source à la destination.  Un protocole se définit comme les règles et le format des échanges entre au moins 2 entités communicantes en vue de réaliser une action ou de rendre un service. Nous avons vu dans la séquence précédente la notion d'adressage qui est indispensable pour identifier et localiser  les  noeuds du réseau. Nous allons dans cette séquence apprendre comment les communications de données sont mises en oeuvre dans l'Internet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Le protocole de réseau IP ==&lt;br /&gt;
&lt;br /&gt;
Le protocole IP (''Internet Protocol'') a pour fonction d'organiser le transfert de données d’un point d'extrémité à un autre d'un réseau. Les points d'extrémités sont les équipements terminaux tels que les stations des clients et les serveurs. Ils génèrent et reçoivent les paquets IP. Ils sont les sources et les destinations du trafic de données.&lt;br /&gt;
&lt;br /&gt;
Tout nœud connecté peut communiquer avec un autre nœud de l'Internet en utilisant le protocole IP sans qu'il ait besoin de changer le format de l'unité de transfert, à savoir le paquet IP. IP est en quelque sorte le langage commun de tous les nœuds de l’Internet. Les points importants du fonctionnement d'IP sont les suivants :&lt;br /&gt;
*'' indépendance vis à vis des données : aucun nœud intermédiaire ne traite de  l’information contenue dans le paquet ; seuls l’émetteur et le destinataire de l’information sont concernés ;''&lt;br /&gt;
&lt;br /&gt;
* '' transfert de bout en en bout : un paquet est transmis à un noeud qui le transmet à son tour au noeud suivant et ainsi de suite, jusqu'à l'hôte destination ; ainsi le protocole IP effectue un relayage de paquets par sauts successifs ;''&lt;br /&gt;
&lt;br /&gt;
* ''acheminement en mode message (datagramme) : cela signifie que chaque paquet dispose des éléments nécessaires et suffisants pour son acheminement à travers le réseau. Chaque paquet est traité indépendamment des autres paquets. Il comporte l'adresse IP source et l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
* ''Service en mode non connecté : Le transfert de données est fait  sans échange préalable. A la différence du téléphone comme nous l'utilisons,  IP n'a pas besoin d'établir une connexion avec le noeud de destination.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
La notion de paquet est essentielle dans le fonctionnement de l'Internet. Nous allons par la suite définir la notion de paquet.''&lt;br /&gt;
&lt;br /&gt;
== Notion de paquet ==&lt;br /&gt;
&lt;br /&gt;
Les données échangées dans l'internet sont découpées en blocs de taille limitée appelés ''paquets''. Ce bloc de données est une séquence structurée d'octets qui est transférée sans modification de son contenu d'une source à la destination finale selon le principe du bout-en-bout.&lt;br /&gt;
&lt;br /&gt;
Ainsi lorsqu'un fichier doit être transféré, celui-ci va être découpé en paquets et à destination, les paquets seront ré-assemblés pour reconstituer le fichier. La raison d'un transfert en mode paquet  trouve sa motivation dans le partage efficace des ressources du réseau. Dans les systèmes de communications, la ressource principale est la capacité d'écoulement des liens qui est appelée abusivement la bande passante. La bande passante normalement s'exprime en Hertz. Par abus de langage,  en numérique elle s'exprime par un débit et l'unité est le bit/s.&lt;br /&gt;
&lt;br /&gt;
Quand il existe des communications entre différentes paires de noeuds (sources et destinations) reliés entre eux par une suite de liens. La problématique porte sur  le partage des ressources entre ces noeuds qui communiquent en même temps. Au niveau le plus fin, la question revient à définir comment partager un lien  entre des communications simultanées. Il s'agit de la fonction de multiplexage. La figure 1 illustre la notion de multiplexage. Sur cette figure, 3 communications sont multiplexées sur un même lien.&lt;br /&gt;
&lt;br /&gt;
En numérique le partage s'effectue en fonction du temps. La bande passante est découpée dans le temps. A un instant donné, un utilisateur utilise toute la ressource disponible mais pour une période de temps limitée. L'unité de partage élémentaire est donc l'intervalle de temps. Sachant que le support a un débit exprimé bit/s, l'intervalle de temps est une unité de temps, le produit de l'intervalle de temps et du débit donne l'équivalent en terme de quantité de données. D'un point de vue pratique l'intervalle de temps est occupé par la transmission d'un bloc d'octets. Le temps de transmission d'un bloc d'octets est équivalent à l'intervalle de temps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:mux.png|200px|center|thumb|Figure 1: multiplexage de communications.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Si le principe du découpage de la ressource est posé, il reste la politique d'attribution des intervalles de temps à définir.  Le  transfert de données en informatique présente un caractère très sporadique. Des périodes d'activités sont suivies de périodes de silence. En pendant les périodes d'activités, il est souhaitable d'obtenir un débit important afin de limiter le temps de transfert du fichier.&lt;br /&gt;
Dans ces conditions, l'attribution dynamique des intervalles de temps aux communications qui sont en activités représente une solution efficace. Les intervalles de temps qui pourraient être attribuées au communications inactives sont récupérés par celles qui sont actives. En fait une communication en période de silence n'utilise aucune ressource.&lt;br /&gt;
Comme nous l'avons préalablement indiqué, l'intervalle de temps se présente sous la forme d'un bloc d'octets de taille limitée. Ce bloc est constitué par les données produites par la source. Ce bloc de données est identifié comme appartenant à une communication à l'aide d'une en-tête. La combinaison de l'en-tête et du bloc de données forment le paquet.  &lt;br /&gt;
Le paquet est donc l'unité de partage des ressources dans un réseau. La figure 2 montre une représentation du partage du lien de la figure 1. La transmission des paquets des 3 communications simultanées s'entrelacent au niveau du lien. En l'absence de toute activité, le support reste libre de toute utilisation. Ce mécanisme de multiplexage des communications par entrelacement des paquets des différentes communications simultanées est un moyen simple et efficace de partage dynamique des ressources du lien. Ainsi, lorsqu'une communication est silencieuse ou inactive, l'ensemble des ressources du lien restent partagées par les autres communications du multiplex. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-occupation.jpg|200px|center|thumb|Figure 2: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La figure 3.a illustre la transmission de blocs de données dont la taille ne serait pas limitée. On observe que lorsque un gros bloc est en cours de transmission, il monopolise le support. En coupant ce bloc en bloc de taille plus limitée, la figure 3.b montre un entrelacement des blocs de données. Le partage de la ressource est dans cette situation est bien meilleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-entrelacement.jpg|200px|center|thumb|Figure 3: Représentation du partage d'un support.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paquet c'est aussi plus qu'une unité de partage des ressources dans un réseau. C'est aussi l'unité de transfert. Un noeud de commutation reçoit des paquets. Il doit les aiguiller vers un lien en sortie pour atteindre sa destination. La commutation dans un noeud fonctionne sur le principe dit du &amp;quot;store and forward&amp;quot;. Le paquet doit être reçu dans son intégralité pour être commuté. C'est à dire transmis sur le lien suivant. Un réseau à commutation de paquets  comme l'Internet signifie que l'unité élémentaire d'acheminement est le paquet.&lt;br /&gt;
&lt;br /&gt;
Le paquet a une taille limitée comme vue précédemment. Il a aussi une taille variable toujours par soucis d'efficacité. Le transfert de données en informatique est fondamentalement asymétrique. Dans un sens, circulent les données dans le sens inverse circulent les acquittements pour signaler la bonne ou mauvaise réception des données. Dans cet échange, il y a une grosse quantité de données dans un sens  et une quantité plus faible dans l'autre sens avec les acquittements. La taille variable des paquets permet de prendre en compte cette asymétrie dans les quantités échangés.&lt;br /&gt;
&lt;br /&gt;
== Acheminement de paquet ==&lt;br /&gt;
&lt;br /&gt;
{{HorsTexte|Les &amp;quot;matriochkas&amp;quot; des architectures en couches|Les modèles protocolaires d'architectures réseaux en couches, qu'ils soient ISO ou IETF, fonctionnent selon le principe d'encapsulation que l'on peut illustrer avec les célèbres poupées gigognes dites &amp;quot;poupées russes&amp;quot;. Dans ce modèle, les unités de données protocolaires (PDU : Protocol Data Unit) échangées par le protocole d'une couche N sont déléguées au service de transfert de données de la couche sous-jacente. En émission, cela consiste pour l'entité de la couche N-1 à encapsuler la PDU-N, confiée pour un transfert, dans la charge utile (champ données) de sa propre unité de données. Ainsi sur un réseau, dont le niveau liaison de données (niveau 2) fonctionne en Ethernet, le datagrammes IP (PDU de niveau 3) est transféré dans le champ données de la trame Ethernet (charge utile de la PDU de niveau 2). En réception c'est le principe inverse (décapsulation) qui s'applique; après vérification protocolaire de la PDU-N-1, l'entité de niveau N-1 remet à l'entité supérieure de niveau N le contenu de sa charge utile à savoir la PDU-N. Ainsi l'entité Ethernet du récepteur, après contrôle d'intégrité de la trame reçue, remet le contenu du champ données à l'entité supérieure (la couche IP). Ce mécanisme d'émission par encapsulation / réception par décapsulation s'applique à toutes les couches du modèle. A l'instar des poupées russes, les PDU des différents niveaux &amp;quot;s'emboitent&amp;quot; en commençant par les couches hautes. Au niveau le plus bas de la transmission, la couche physique, l'unité de données de la couche liaison contient toutes les unités de données imbriquées. ''Par exemple, pour les applications web modernes basées sur les API de type REST l'enchaînement des imbrications peut être le suivant :  les données applicatives  (REST) sont encapsulées dans l'unité de données du protocole applicatif web (HTTPS), qui est encapsulée dans le message de transport sécurisé (TLS sur TCP) encapsulé dans le datagramme IPv6 lui même véhiculé dans une trame Ethernet''.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-matriochkas-ipv6-1024x576.jpg|220px|center|thumb|Figure 5: Encapsulation des protocoles : les PDU gigognes.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;}}&lt;br /&gt;
Nous savons depuis la séquence de bienvenue que le protocole IP est dans une couche logicielle superposée au dessus des différents systèmes de transmission. Cette couche est  présente dans tous les nœuds de l'Internet. ''La conséquence  de la superposition, et le propre d'une architecture en couches, consiste à ce que chaque unité de données d'une couche lorsqu'elle est passée à la couche inférieure est encapsulée dans l'unité de données de cette couche.'' La figure 4 illustre le transfert d'un fichier d'un client vers le serveur. Ce fichier est par exemple la requête effectuée par l'application du client.  Le fichier (l'unité de données applicative) est découpée en paquets IP pour les raisons que nous avons exposé précédemment. Un paquet IP doit atteindre le serveur qui est la destination finale du transfert de données. Sur le client ce paquet IP, pour être transféré, est passé à l'interface réseau 1 (un système de transmission comme Ethernet par exemple). Celle-ci va procéder à l'encapsulation du paquet IP dans l'unité de données propre au protocole du lien réseau 1 (à savoir une trame Ethernet dans le cas de notre exemple). Le paquet est ainsi transmis du client au routeur qui en recevant la trame, sur son interface d'entrée, décapsule le paquet IP. Il route le paquet en sélectionnant l'interface de sortie vers la destination et lui délègue ce paquet. L'interface de sortie procède alors à l'encapsulation du paquet IP dans la trame propre au protocole de liaison du réseau 2 (par exemple le protocole Point to Point Protocol) pour le transmettre au serveur. L'interface de celui-ci décapsule le paquet de la trame (trame PPP dans notre exemple) qu'elle a reçue. La couche IP du serveur va réassembler toutes les données des paquets IP qu'il reçoit pour reconstituer le fichier original. Une fois ce fichier complet, l'application traite le fichier selon le contexte applicatif. &lt;br /&gt;
Le paquet IP est transféré de la source à la destination par une succession de sauts (ou hop) d'un noeud à un autre. Pour ce transfert, le paquet subit une série d'encapsulations et de décapsulations.&lt;br /&gt;
&lt;br /&gt;
Chaque nœud utilise l'adresse de destination contenu dans l'en-tête pour prendre une décision de routage à savoir a qui doit être transmis le paquet IP pour le faire converger vers sa destination. Lorsque le système de transmission utilise un support multipoint, il faut avoir recours à une adresse physique, la fameuse adresse MAC qui est mise dans les cartes réseaux. L'adresse MAC du prochain nœud doit être mise dans la trame. Le résultat du routage du paquet IP retourne l'adresse IP du prochain nœud, le destinataire de la trame qui va encapsuler le paquet IP.  Pour que la trame soit effectivement remise à ce nœud, il faut que l'adresse de destination de la trame soit justement l'adresse MAC  de ce nœud. Cette adresse MAC est obtenu par résolution de l'adresse IP retournée par le routage. &lt;br /&gt;
La trame avec la bonne adresse MAC de destination sera alors reçu par le next HOP qui pourra alors décapsuler le paquet et procéder au routage pour trouver le nœud suivant qui doit recevoir le paquet. Et ainsi de saut en saut le paquet va arriver à sa destination finale en empruntant des liens de différentes natures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:20-encapsulation.jpg|400px|center|thumb|Figure 4: Transfert d'un paquet IP.&lt;br /&gt;
]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction de la séquence 2 ==&lt;br /&gt;
&lt;br /&gt;
Dans la première séquence, les différents types d'adresses IPv6 ont été présentés. Cette deuxième séquence va détailler les mécanismes protocolaires. Le fil rouge est la performance du traitement des datagrammes dans tous les équipements et en particulier les équipements intermédiaires tels que les routeurs ou les pare-feux.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de quatre activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels sur la détermination des tailles de paquets vous seront exposés ;&lt;br /&gt;
* A24 : ensuite, vous seront exposés les mécanismes d’encapsulation ;&lt;br /&gt;
* A25 : Dans cette activité, vous décomposerez les extensions de l’en-tête IP par le biais d'exemples ;&lt;br /&gt;
* A26 : enfin, vous pourrez observer l'acheminement de paquets IPv6 au moyen de cette activité pratique. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez pratiquer la communication IPv6 sans déstabiliser la configuration de votre ordinateur. --&amp;gt;&lt;br /&gt;
Dans cette deuxième séquence du MOOC Objectif IPv6, vous aborderez les différents aspects de ce protocole au travers de cinq activités thématiques :&lt;br /&gt;
* A21 : tout d’abord, vous allez découvrir le format et les fonctions de l’en-tête des paquets IPv6 ;&lt;br /&gt;
* A22 : puis, vous aborderez les principes de l'acheminement et du routage ;&lt;br /&gt;
* A23 : ensuite, les points essentiels de contrôle et diagnostic de l'acheminement par ICMPv6 ;&lt;br /&gt;
* A24 : et enfin, vous décomposerez les extensions de l’en-tête IP par le biais de l'exemple de gestion de taille des paquets ;&lt;br /&gt;
* Activité pratique : ensuite vous pourrez observer l'acheminement de paquets IPv6. Au sein de la même machine virtuelle utilisée lors de la première activité pratique, vous pourrez expérimenter la communication IPv6 sans déstabiliser la configuration de votre ordinateur.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb21&amp;diff=19497</id>
		<title>MOOC:Verb21</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb21&amp;diff=19497"/>
				<updated>2021-09-27T15:48:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt; https://docs.google.com/presentation/d/1L5lRwha8U8cAQM4SxarfgVUjrKshMzOa/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt; &lt;br /&gt;
https://drive.google.com/file/d/1Mu8r0JcbLVlI8cyVfVXz0x1pMlI3lJI2/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
A21.9_WireShark_IPv6.mp4 =&amp;gt; https://drive.google.com/file/d/1teYsVtaYIyxZYPwQ2lAIlgiuGEPXqPDF/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Script 21: En-tête IPv6 =&lt;br /&gt;
&lt;br /&gt;
-Dans cette deuxième séquence du MOOC &amp;quot;IPv6&amp;quot;, nous aborderons les différents aspects du protocole IPv6.&lt;br /&gt;
&lt;br /&gt;
Mais pourquoi comprendre IP est si important pour nous?&lt;br /&gt;
&lt;br /&gt;
IP c'est un des protocoles les plus importants d'Internet car il permet de découper l'information à transmettre en paquets, de les adresser et de les transporter indépendamment les uns des autres, enfin à l'arrivée on peut recomposer le message original, ces paquets de données sont appelés datagrammes. &lt;br /&gt;
&lt;br /&gt;
Un paquet de données et composé d'un entête et de données &lt;br /&gt;
Dans cette activité, nous allons nous focalisez sur le format de l'en-tête des paquets IPv6. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version==&lt;br /&gt;
&lt;br /&gt;
Commençons par les premiers champs.&lt;br /&gt;
&lt;br /&gt;
Chaque ligne représentée sur ce schéma représente 32 bits de codage.&lt;br /&gt;
&lt;br /&gt;
Le premier champ de l'en-tête IPv6, codé sur 4 bits, représente la version du protocole : 6 pour IPv6.&lt;br /&gt;
&lt;br /&gt;
Evident. Facile à retenir.&lt;br /&gt;
== Traffic Class - DSCP ==&lt;br /&gt;
Le deuxième champ, codé sur 8 bits, représente la classe de trafic et sert à contrôler la qualité de service. Ce champ est décomposé en deux blocs.&lt;br /&gt;
&lt;br /&gt;
Le premier, codé sur 6 bits, le DSCP, &amp;quot;Differentiated Services Code Point&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puis sur 2 bits nous trouvons l'ECN, &amp;quot;Explicit Congestion Notification&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Flow Label ==&lt;br /&gt;
&lt;br /&gt;
Vient ensuite le codage des 20 bits du champ &amp;quot;Flow Label&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce champ est conçu pour accélérer le traitement de la QoS.&lt;br /&gt;
&lt;br /&gt;
En effet, traditionnellement le traitement de la qualité de service nécessite la reconnaissance de plusieurs champs disséminés dans les en-têtes IP et transport, comme adresse source et destination, protocole de transport, numéro de port, origine, destination.&lt;br /&gt;
&lt;br /&gt;
Pour une suite de paquets IPv6, la source choisira une valeur aléatoire de Flow Label afin de faciliter et de soulager le traitement des routeurs intermédiaires.&lt;br /&gt;
&lt;br /&gt;
Pour la gestion de ce flux IPv6 identifié, le traitement est optimisé, le routeur n'ayant plus à consulter cinq champs pour déterminer l'appartenance d'un paquet.&lt;br /&gt;
&lt;br /&gt;
== Payload Length == &lt;br /&gt;
&lt;br /&gt;
Passons à la deuxième ligne.&lt;br /&gt;
&lt;br /&gt;
Voici le codage sur 16 bits du champ &amp;quot;Payload Length&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la longueur de la charge utile du paquet, jusqu'à 65 535 octets.&lt;br /&gt;
&lt;br /&gt;
En IPv6, on ne prend pas en compte la longueur de l'en-tête.&lt;br /&gt;
&lt;br /&gt;
Pour des tailles de paquets supérieures à 64 ko, le codage du champ sera mis à zéro.&lt;br /&gt;
&lt;br /&gt;
Et l'option jumbogramme de l'extension de proche en proche pourra être utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, la taille de la charge utile peut être portée à 4 Go.&lt;br /&gt;
&lt;br /&gt;
À condition, évidemment, de disposer au niveau inférieur d'une taille maximum de trame adaptée.&lt;br /&gt;
&lt;br /&gt;
== Next Header == &lt;br /&gt;
&lt;br /&gt;
Vient ensuite le codage des 8 bits du champ &amp;quot;Next Header&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole porté par ce paquet.&lt;br /&gt;
&lt;br /&gt;
Classiquement, on retrouve les flux ICMPv6 ou les flux utilisant des couches transport TCP, UDP, d'autres cas particuliers de tunnels IPv4 ou IPv6, voire des en-têtes sécurisés et des mécanismes d'extension que l'on détaillera plus tard.&lt;br /&gt;
&lt;br /&gt;
== Hop Limit == &lt;br /&gt;
&lt;br /&gt;
Voici le codage sur 8 bits du champ &amp;quot;Hop Limit&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Certaines implémentations prennent actuellement la valeur conseillée pour IPv6 : 64. La valeur par défaut peut être dynamiquement attribuée aux équipements par les annonces des routeurs.&lt;br /&gt;
&lt;br /&gt;
On peut donc la modifier en fonction de l'évolution de la topologie du réseau.&lt;br /&gt;
&lt;br /&gt;
Comme il s'agit d'un nombre de sauts, lors de la traversée d'un routeur, la décrémentation est toujours de 1.&lt;br /&gt;
&lt;br /&gt;
Dans cette animation, nous voyons que les paquets issus de A disposent d'une valeur Hop Limit de 64 au départ.&lt;br /&gt;
&lt;br /&gt;
Cette valeur est décrémentée lors de la traversée de chaque routeur intermédiaire.&lt;br /&gt;
&lt;br /&gt;
Si un paquet atteint un routeur avec une valeur Hop Limit à 1, ce routeur le détruit.&lt;br /&gt;
&lt;br /&gt;
Et il va renvoyer à la source un message ICMPv6 de type 3, &amp;quot;Time Exceeded&amp;quot;, ce qui permet d'identifier un problème de routage pour cette destination.&lt;br /&gt;
&lt;br /&gt;
== IP Address == &lt;br /&gt;
&lt;br /&gt;
Enfin, voici les champs &amp;quot;adresse&amp;quot; sur 128 bits.&lt;br /&gt;
&lt;br /&gt;
16 octets pour l'adresse IP source, 16 octets pour l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
Moralité : les champs &amp;quot;adresse&amp;quot; occupent 32 octets sur les 40 octets minimum nécessaires à un en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
D'autres mécanismes, comme les extensions, viendront éventuellement gonfler l'encapsulation. On en reparlera.&lt;br /&gt;
&lt;br /&gt;
== Décodage ==  &lt;br /&gt;
&lt;br /&gt;
Enfin, voyons le décodage détaillé d'un premier paquet IPv6 par le fameux outil Wireshark.&lt;br /&gt;
&lt;br /&gt;
L'affichage est décomposé en trois zones résumées, détaillées, et en codage hexadécimal ASCII.&lt;br /&gt;
&lt;br /&gt;
Nous voyons ici que l'analyseur a bien détecté une trame Ethernet transportant le protocole IPv6 grâce au champ &amp;quot;EtherType&amp;quot; 0x86DD.&lt;br /&gt;
&lt;br /&gt;
Voyons le codage détaillé des champs.&lt;br /&gt;
&lt;br /&gt;
Version : 6 = IPv6.&lt;br /&gt;
&lt;br /&gt;
Traffic Class : 00.&lt;br /&gt;
Donc, c'est un paquet qui ne bénéficiera pas d'un traitement de QoS.&lt;br /&gt;
C'est la classe &amp;quot;Best effort&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
ECN-Capable Transport : 00.&lt;br /&gt;
Donc, pas d'aide à la résolution de congestion.&lt;br /&gt;
&lt;br /&gt;
Flow Label : 00.&lt;br /&gt;
Donc, pas de prise en charge d'aide à la QoS.&lt;br /&gt;
&lt;br /&gt;
Taille de la charge utile : 8 octets.&lt;br /&gt;
&lt;br /&gt;
Next Header : en-tête ESP.&lt;br /&gt;
&lt;br /&gt;
Hop Limit : 63.&lt;br /&gt;
Donc, ce paquet a probablement déjà traversé un routeur.&lt;br /&gt;
&lt;br /&gt;
Vient ensuite l'adresse source sur 16 octets.&lt;br /&gt;
&lt;br /&gt;
Adresse destination, sur 16 octets.&lt;br /&gt;
&lt;br /&gt;
Au niveau supérieur, nous voyons le décodage de l'en-tête ESP.&lt;br /&gt;
&lt;br /&gt;
== Conclusion == &lt;br /&gt;
&lt;br /&gt;
Nous venons donc de parcourir le décodage détaillé du protocole IPv6.&lt;br /&gt;
&lt;br /&gt;
Observons que dans ce standard, les efforts ont porté sur la nécessité d'optimiser le traitement des paquets lors de la traversée des réseaux et du transport.&lt;br /&gt;
&lt;br /&gt;
Les traitements particuliers optionnels seront traités grâce à des extensions.&lt;br /&gt;
&lt;br /&gt;
Contrairement à IPv4, il n'y a pas de calcul de CRC au niveau 3, la fiabilité étant dorénavant assurée par la couche de protocole de niveau 2 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 == en option ? ==&lt;br /&gt;
&lt;br /&gt;
== Traffic Class: DSCP == &lt;br /&gt;
&lt;br /&gt;
-Le codage des 6 bits du champ DSCP est très particulier.&lt;br /&gt;
&lt;br /&gt;
Nous remarquons que 2 puissance 6, soit 32 possibilités, ne sont pas toutes exploitées.&lt;br /&gt;
&lt;br /&gt;
Le codage des 3 bits de poids fort a repris pour un besoin de compatibilité ascendante le codage IP Precedence, exploité dans les premières mises en oeuvre d'IPv4.&lt;br /&gt;
&lt;br /&gt;
Nous découvrons, en haut du tableau, les codages avec priorité stricte : Expedited Forwarding, EF, et Voice Admit.&lt;br /&gt;
&lt;br /&gt;
Ces codages serviront à protéger la qualité des flux temps réel : voix, vidéo.&lt;br /&gt;
&lt;br /&gt;
Nous disposons ensuite d'une grande souplesse pour classifier finement d'autres catégories.&lt;br /&gt;
&lt;br /&gt;
AF, Assured Forwarding : quatre classes sont définies de 1 à 4.&lt;br /&gt;
&lt;br /&gt;
À l'intérieur de chacune de ces quatre classes, une priorité est spécifiée.&lt;br /&gt;
&lt;br /&gt;
Par exemple, sur la classe AF numéro 1, on va disposer de trois niveaux de priorité : AF11, AF12, AF13.&lt;br /&gt;
&lt;br /&gt;
Plus le chiffre est élevé, plus la priorité du flux est faible.&lt;br /&gt;
&lt;br /&gt;
Donc, si on imagine une saturation des files d'attente de la classe de trafic AF1, les paquets marqués AF13 seront écartés avant AF12, puis avant AF11.&lt;br /&gt;
&lt;br /&gt;
Idem pour une autre classe de service comme l'AF4, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Traffic Class: ECN == &lt;br /&gt;
Vient ensuite le codage des 2 bits du champ ECN.&lt;br /&gt;
&lt;br /&gt;
ECN comme &amp;quot;Explicit Congestion Notification&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Quatre valeurs sont définies.&lt;br /&gt;
&lt;br /&gt;
Les trois premières indiquent si l'équipement est capable ou pas de gérer la congestion, ECN-Capable Transport.&lt;br /&gt;
&lt;br /&gt;
C'est-à-dire qu'il faut s'appuyer sur une couche TCP pour réguler le trafic.&lt;br /&gt;
&lt;br /&gt;
Et nous avons le codage, CE, Congestion Experience, qui indique que les paquets ont traversé un équipement saturé.&lt;br /&gt;
&lt;br /&gt;
== Contrôle de congestion == &lt;br /&gt;
&lt;br /&gt;
Dans cette animation, nous voyons que le trafic entre A et B traverse trois routeurs intermédiaires.&lt;br /&gt;
&lt;br /&gt;
Tant que le trafic est fluide, les équipements réseau supportent la charge qui est imposée.&lt;br /&gt;
&lt;br /&gt;
Puis le routeur central subit une saturation, les paquets s'accumulent dans les files d'attente, le routeur indique la saturation en marquant &amp;quot;CE&amp;quot; dans les quelques paquets qui peuvent encore être transmis, le mécanisme de régulation se met en oeuvre en B grâce à sa couche de transport TCP.&lt;br /&gt;
&lt;br /&gt;
Les accusés de réception que B renvoie vers A disposeront du marquage du champ ECE, ECN Echo.&lt;br /&gt;
&lt;br /&gt;
Ce champ est disponible dans TCP.&lt;br /&gt;
&lt;br /&gt;
Une fois que la source A interprète cette indication de congestion, elle l'indique en marquant à son tour le bit CWR, &amp;quot;Congestion Window Reduced&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Une fois que A réduit donc sa fenêtre d'anticipation, on doit constater que cette réduction de flux soulage le routeur saturé préalablement. De fait, ce mécanisme permet au routeur d'évacuer ses files d'attentes, puis de reprendre une activité normale.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19495</id>
		<title>MOOC:Verb24</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19495"/>
				<updated>2021-09-27T15:23:13Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Adapter la taille des paquets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt; https://docs.google.com/presentation/d/1MkwcFJrJKljPFW93u2oAyeZQDdBsana0/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt; https://drive.google.com/file/d/1N9n5X3TasqE3E_66fO25F-LeCZCTuZoZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
= Adapter la taille des paquets =&lt;br /&gt;
&lt;br /&gt;
Dans cette quatrième activité :&lt;br /&gt;
Nous allons passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
&lt;br /&gt;
Mais comment faire pour adapter la taille des paquets aux réseaux de transport intermédiaires ?&lt;br /&gt;
Comme pour le courrier postal, nous devons respecter un format pour que les enveloppes puissent glisser dans la fente des boites aux lettres !!!&lt;br /&gt;
&lt;br /&gt;
== 24.1 Path Maximum Transmission Unit: ==&lt;br /&gt;
&lt;br /&gt;
La taille des paquets IPv6 est conditionnée par le type de liaison mis à disposition au niveau 2&lt;br /&gt;
&lt;br /&gt;
Les paquets sont placés dans des trames avant d’être émis sur le support physique&lt;br /&gt;
Selon la nature de la liaison, une taille maximale de trame est définie: 1500 octets pour Ethernet, 1468 octets pour PPPoA, de 1500 à 65535 octets pour MPLS,  81 octets  pour 6LoWPAN etc... &lt;br /&gt;
&lt;br /&gt;
La couche réseau prends en compte cette contrainte en limitant la taille maximale de données pouvant être placées dans un paquet, &lt;br /&gt;
Cette taille est appelée MTU : Maximum Transmission Unit&lt;br /&gt;
&lt;br /&gt;
== 24.2 Path Maximum Transmission Unit: ==&lt;br /&gt;
Un paquet IP peut cependant être amené à voyager sur plusieurs supports de natures différentes, chacun imposant ses tailles maximales. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir parcourir sans encombres son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille maximum autorisée par l'ensemble des liens traversés. &lt;br /&gt;
Cette taille est de ce fait appelée PMTU (Path Maximum Transmission Unit) ou unité de transfert de taille maximale sur le chemin. &lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------&lt;br /&gt;
Pour des considérations d'efficacité, il est préférable que les informations échangées entre équipements soient contenues dans des datagrammes de taille maximale. &lt;br /&gt;
Une trop petite taille de paquet a pour effet d'augmenter la charge supplémentaire des entêtes par rapport aux données transportées, ainsi que d'augmenter le nombre de paquet à traiter dans les routeurs.&lt;br /&gt;
Au moment de créer des paquets, la couche réseau essaie donc de respecter au maximum la PMTU.&lt;br /&gt;
Cependant la valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque.&lt;br /&gt;
&lt;br /&gt;
== 24.3 Path Maximum Transmission Unit: ==&lt;br /&gt;
&lt;br /&gt;
Nous observons ici :&lt;br /&gt;
que l'émetteur du paquet fait alors la supposition que la MTU vers cette destination est égale à celle du réseau d’accès. &lt;br /&gt;
L'acheminement du paquet s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet reçu et la taille maximale qu’il est autorisé à retransmettre. &lt;br /&gt;
&lt;br /&gt;
Si le routeur est dans l'incapacité de transmettre le paquet, il utilise alors un message de signalisation ICMPv6 pour informer l'émetteur du paquet du problème d'acheminement, ainsi que de la taille recommandée pour que les paquets puissent être retransmis. &lt;br /&gt;
L’émetteur reprends la transmission en utilisant le nouveau MTU recommandé,&lt;br /&gt;
cette valeur est alors enregistrée comme la PMTU pour tous les prochains paquets vers cette même destination. &lt;br /&gt;
---------------------------------------------------------------------------------&lt;br /&gt;
Ce processus peut être répété si d'autres liens imposent des tailles maximale de transmission encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. &lt;br /&gt;
Les paquets suivants qui respecteront cette taille seront alors acheminés sans encombre. &lt;br /&gt;
Ce mécanisme de découverte de la taille maximale de transmission sur le chemin est spécifié dans le RFC 1981. &lt;br /&gt;
 &lt;br /&gt;
== 24.4 Fragmentation ==&lt;br /&gt;
 &lt;br /&gt;
La fragmentation est utile dans les cas où la couche réseau ne peut pas adapter la MTU des données à transmettre,&lt;br /&gt;
C'est le cas par exemple des segments transportés sur UDP pour le système de fichier NFS, &lt;br /&gt;
Ces messages peuvent avoir une taille supérieure à celle autorisée sur le support.&lt;br /&gt;
&lt;br /&gt;
La couche réseau n'a alors d'autres choix que de fragmenter ces données. &lt;br /&gt;
Le principe  est de séparer un paquet devant être émis avec une taille trop importante en plusieurs paquets respectant la taille maximale autorisée. &lt;br /&gt;
Ces  fragments sont émis et acheminés vers la destination comme n'importe quel autre paquet &lt;br /&gt;
La couche réseau du destinataire se charge alors de réassembler le paquet IP original pour que les données puissent être traitées. &lt;br /&gt;
&lt;br /&gt;
== 24.5 Extension de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un fragment est transmise dans une extension de fragmentation de l'entête IPv6. &lt;br /&gt;
On retrouve l'indication &amp;quot;Fragment&amp;quot; dans le champ Next Header ,&lt;br /&gt;
Le champ Fragment offset indique la place du fragment, ce qui sera utile lors du réassemblage. &lt;br /&gt;
Ceci permet de parer les problèmes dus au dé-séquencement dans les réseaux orientés datagrammes. &lt;br /&gt;
Comme ce champ est sur 13 bits, la taille de tous les segments, sauf du dernier, doit être un multiple de 8 octets. &lt;br /&gt;
&lt;br /&gt;
Le bit M à la valeur 1 indique qu'il y aura d'autres fragments à suivre.&lt;br /&gt;
&lt;br /&gt;
Enfin le champ identification permet de repérer les fragments appartenant à un même paquet initial. &lt;br /&gt;
Il est différent pour chaque paquet original et recopié dans ses fragments.&lt;br /&gt;
&lt;br /&gt;
== 24.6 Mécanisme de Fragmentation: ==&lt;br /&gt;
&lt;br /&gt;
Notons que le datagramme original est découpé en autant de fragments que nécessaire,&lt;br /&gt;
Chaque fragment intermédiaire avec le bit M=1 dispose de son encapsulation propre&lt;br /&gt;
On retrouve dans le premier fragment l’entête transport et les premières données du segment,&lt;br /&gt;
Dans les fragments suivant la suite des données fragmentées, &lt;br /&gt;
Et enfin dans le dernier fragment repérable avec le bit M=0 , les dernières données utiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.7 Extension Jumbogramme ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un super-paquet est transmise dans une extension jumbogramme de l'entête IPv6.  &lt;br /&gt;
le champ Next Header à la valeur 194 correspond au Jumbogramme&lt;br /&gt;
La taille admissible va jusqu'à 4 Gigaoctets, c'est vraiment énorme !&lt;br /&gt;
reste qu'une telle taille de paquet n'est pas possible sans une MTU de niveau 2 adaptée,&lt;br /&gt;
mais sachant que les volumes de données croissent constamment, à l'avenir nous en aurons bien besoin !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.8 Conclusion ==&lt;br /&gt;
 &lt;br /&gt;
Nous venons de passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
L'intérêt majeur est de permettre la traversée sans encombres de réseaux indépendants, de s'y adapter si la fragmentation est nécessaire, &lt;br /&gt;
cependant cela augmente l'encapsulation et donc diminue d'autant l'efficacité, car toute la chaine de communication subie cette fragmentation.&lt;br /&gt;
&lt;br /&gt;
La notion de jumbogramme IPv6 réponds aux besoins d'efficacité pour le transport de volumes importants de données, &lt;br /&gt;
on en rencontre déjà dans les environnements Datacenter, réseau de stockage,  réplication d'infrastructures de virtualisation, Big Data...&lt;br /&gt;
 &lt;br /&gt;
Yes but !&lt;br /&gt;
si IPv6 est déjà prêt au niveau 3, les couches de protocoles de niveau 2 doivent encore évoluer !&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19494</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19494"/>
				<updated>2021-09-27T14:44:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  https://docs.google.com/presentation/d/19A9oP1Q072GLOC_O7BUBadaugpj3Olm9/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  https://drive.google.com/file/d/1CgbbB1u5fYXg9S62R1SrSDuQumejpi1K/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans un réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== 23.0 Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
== 23.1 Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
== 23.2 Format générique d’un paquet ICMPv6 ==&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== 23.3 Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va permettre de sonder le destinataire B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, si le destinataire B veut bien, il peut renvoyer une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A. (La volonté et la capacité à répondre dépendent des réglages du parefeu de B, voire d'un filtrage intermédiaire sur le trajet emprunté).&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
la fonction Traceroute utilise également ces messages ICMPv6 en incrémentant la valeur du champ hop limit, ce qui permet d'identifier le trajet dans le réseau, à condition que les parefeux ne bloquent pas ces mécanismes.&lt;br /&gt;
&lt;br /&gt;
==23.4 Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur intermédiaire sur le chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message dans la limite de la MTU pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet reçu présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 1.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 23.5 Identification d'une boucle ==  &lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur, avec un champ contenant la valeur 1.&lt;br /&gt;
On interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
Sans mécanisme de détection ce phénomène de boucle peut saturer le trajet concerné, car si l'émetteur n'est pas prévenu, il retransmet les paquets à souhait, ce qui empire la situation...&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et d'analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il convient donc de ne pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== 23.6 Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== 23.7 Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de types de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19493</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19493"/>
				<updated>2021-09-27T14:43:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  https://docs.google.com/presentation/d/19A9oP1Q072GLOC_O7BUBadaugpj3Olm9/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  https://drive.google.com/file/d/1CgbbB1u5fYXg9S62R1SrSDuQumejpi1K/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans un réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== 23.0 Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
== 23.1 Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
== 23.2 Format générique d’un paquet ICMPv6 ==&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== 23.3 Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va permettre de sonder le destinataire B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, si le destinataire B veut bien, il peut renvoyer une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A. (La volonté et la capacité à répondre dépendent des réglages du parefeu de B, voire d'un filtrage intermédiaire sur le trajet emprunté).&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
la fonction Traceroute utilise également ces messages ICMPv6 en incrémentant la valeur du champ hop limit, ce qui permet d'identifier le trajet dans le réseau, à condition que les parefeux ne bloquent pas ces mécanismes.&lt;br /&gt;
&lt;br /&gt;
==23.4 Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur intermédiaire sur le chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message dans la limite de la MTU pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet reçu présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 1.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 23.5 Identification d'une boucle ==  &lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur, avec un champ contenant la valeur 1.&lt;br /&gt;
On interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
Sans mécanisme de détection ce phénomène de boucle peut saturer le trajet concerné, car si l'émetteur n'est pas prévenu, il retransmet les paquets à souhait, ce qui empire la situation...&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et d'analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il convient donc de ne pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== 23.6 Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de types de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19490</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19490"/>
				<updated>2021-09-27T14:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  https://docs.google.com/presentation/d/19A9oP1Q072GLOC_O7BUBadaugpj3Olm9/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  https://drive.google.com/file/d/1CgbbB1u5fYXg9S62R1SrSDuQumejpi1K/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans le réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va permettre de sonder le destinataire B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, si le destinataire B veut bien, il peut renvoyer une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A. (La volonté et la capacité à répondre dépendent des réglages du parefeu de B, voire d'un filtrage intermédiaire sur le trajet emprunté).&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
la fonction Traceroute utilise également ces messages ICMPv6 en incrémentant la valeur du champ hop limit, ce qui permet d'identifier le trajet dans le réseau, à condition que les parefeux ne bloquent pas ces mécanismes.&lt;br /&gt;
&lt;br /&gt;
== Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur intermédiaire sur le chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message dans la limite de la MTU pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet reçu présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 1.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identification d'une boucle ==  &lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur (impossible == ou par la destination), avec un champ contenant la valeur 1, on interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Le routeur ne doit alors pas transmettre le paquet vers sa destination.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
Sans mécanisme de détection ce phénomène de boucle va saturer le trajet concerné, car si l'émetteur n'est pas prévenu, il retransmettra les paquets à souhait, ce qui empire la situation...&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il convient donc de ne pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb22&amp;diff=19488</id>
		<title>MOOC:Verb22</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb22&amp;diff=19488"/>
				<updated>2021-09-26T17:56:43Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* 22.1 Principe du routage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  https://docs.google.com/presentation/d/17xoGOIJ0lB2CX2aOh_hJyv1oirogSh5T/edit?&lt;br /&gt;
usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  &lt;br /&gt;
https://drive.google.com/file/d/1cqxplR2icuDPJrFXy1c5-2KBZW6WI9We/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Acheminer des paquets=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Dans cette deuxième activité, Nous allons passer en revue les principes du routage des paquets IPv6&lt;br /&gt;
&lt;br /&gt;
Mais comment deux nœuds IPv6 peuvent–ils communiquer entre eux, soit directement sur un même lien, ou bien dans un réseau local segmenté, voire grâce à des routeurs à travers un réseau plus étendu ?&lt;br /&gt;
&lt;br /&gt;
Hé bien les notions de réseau, de sous réseau et les mécanismes de routages permettent de répondre à cela !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==22.1 Principe du routage ==  &lt;br /&gt;
&lt;br /&gt;
Tout d'abord, vous observez dans cette topologie simplifiée 2 machines hôtes connectées entre elle grâce à un microswitch Ethernet :&lt;br /&gt;
&lt;br /&gt;
Ce petit commutateur relaie les trames Ethernet de manière transparente:&lt;br /&gt;
&lt;br /&gt;
Avant que A puisse émettre le paquet IPv6 à destination de B, il doit vérifier que le préfixe réseau du destinataire est accessible grâce à un test d’adjacence, qui détermine si on utilise une remise directe ou indirecte:&lt;br /&gt;
&lt;br /&gt;
Si le préfixe de B est identique au sien, A peut communiquer directement avec B en utilisant son interface : c'est le cas de la remise directe&lt;br /&gt;
&lt;br /&gt;
la table de routage de A et B est très simple, voyons cela de plus prêt !&lt;br /&gt;
&lt;br /&gt;
==22.2 Cas de la remise directe ==  &lt;br /&gt;
&lt;br /&gt;
le destinataire B est positionné sur le même préfixe réseau que la source A,&lt;br /&gt;
Une remise directe est symbolisée dans la table de routage par un Next Hop avec une adresse nulle ::&lt;br /&gt;
&lt;br /&gt;
Le mécanisme de découverte du voisin ICMPv6 NDP: Neighbor Discovery Protocol&lt;br /&gt;
permettra à A et B d'obtenir l'adresse mac du destinataire au niveau 2, avant de pouvoir échanger directement des paquets IPv6 encapsulés dans les trames, qui elles seront commutées grâce au microswitch vers les machines hôtes correspondantes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==22.3 Cas de la remise directe ==  &lt;br /&gt;
&lt;br /&gt;
Sur la machine A, nous activons maintenant un réseau WiFi&lt;br /&gt;
A peut joindre C sur un autre préfixe réseau fourni par un Point d’accès WiFi&lt;br /&gt;
Ce Point d’accès relaie les trames WiFi de manière transparente,&lt;br /&gt;
Sur ce nouveau préfixe A et C vérifie leur connectivité avec un test d’adjacence comme précédemment,&lt;br /&gt;
&lt;br /&gt;
Pour l'instant A peut communiquer avec B et  C, &lt;br /&gt;
Par contre B et C sont bien connectés sur des préfixe réseaux différents, et en l’état ne peuvent pas échanger des paquets directement !&lt;br /&gt;
&lt;br /&gt;
il va bien falloir proposer un relai entre B et C, voyons comment faire :&lt;br /&gt;
&lt;br /&gt;
==22.4 Cas de la remise indirecte ==&lt;br /&gt;
&lt;br /&gt;
Pour permettre la communication entre B et C  qui sont bien connectés sur des préfixe réseau différents, nous sommes contraint d’utiliser le relai de A : c’est donc bien une remise indirecte&lt;br /&gt;
&lt;br /&gt;
En ajoutant dans la table de routage de B et C une entrée indiquant que pour joindre l’autre il faut un intermédiaire A&lt;br /&gt;
&lt;br /&gt;
En C : on indique que pour joindre le préfixe réseau de B, il faut utiliser le relai de A via l'interface WiFi&lt;br /&gt;
&lt;br /&gt;
En B : on indique que pour répondre à C, il faut utiliser le relai de A via l'interface Ethernet0&lt;br /&gt;
&lt;br /&gt;
==22.5 Cas de la remise indirecte ==&lt;br /&gt;
&lt;br /&gt;
Notre topologie évolue, Un routeur dédié remplace A pour stabiliser les performances:&lt;br /&gt;
&lt;br /&gt;
On attribue une nouvelle adresse à A, et on affecte les anciennes adresses de A, au routeur&lt;br /&gt;
&lt;br /&gt;
En A on indique que pour joindre le préfixe réseau de B, il faut utiliser le relai du routeur&lt;br /&gt;
&lt;br /&gt;
A et C peuvent maintenant communiquer avec B grâce au routeur, et inversement&lt;br /&gt;
&lt;br /&gt;
==22.6 routeur connecté à Internet ==&lt;br /&gt;
&lt;br /&gt;
L’accès vers internet est maintenant opérationnel sur le routeur grâce à une interface xDSL nommée atm0&lt;br /&gt;
&lt;br /&gt;
La table de routage du routeur s'enrichie &lt;br /&gt;
 le préfixe 2001:db8:0001::/64 est localisé sur l'interface Ethernet0&lt;br /&gt;
 le préfixe 2001:db8:0002::/64 est localisé sur l'interface WiFi&lt;br /&gt;
 pour le reste une route par défaut pointe vers le fournisseur d'accès à Internet &lt;br /&gt;
&lt;br /&gt;
la connectivité s'améliore !&lt;br /&gt;
&lt;br /&gt;
==22.7 Cas de la remise indirecte ==&lt;br /&gt;
&lt;br /&gt;
En A et C :  pour joindre tout autre préfixe réseau différent du lien local, &lt;br /&gt;
on introduit une entrée dans la table de routage, nommée route par défaut pointant vers le routeur&lt;br /&gt;
&lt;br /&gt;
En B : on introduit également une route par défaut en B&lt;br /&gt;
&lt;br /&gt;
la connectivité est bien meilleure !&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
&lt;br /&gt;
Pour résumer :&lt;br /&gt;
&lt;br /&gt;
Il est possible d’attribuer une adresse IPv6 statique &lt;br /&gt;
ou bien de récupérer des adresses IPv6 dynamiquement à l’aide des annonces des routeurs, voire d’un serveur DHCPv6.&lt;br /&gt;
&lt;br /&gt;
en préliminaire un test d’adjacence permet d’identifier si la remise des paquets est possible directement, ou indirectement&lt;br /&gt;
si un routage intermédiaire est nécessaire, une route statique ou apprise dynamiquement sera nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #77FF77;&amp;quot; | Avantages routage statique&lt;br /&gt;
! style=&amp;quot;background-color: #F99;&amp;quot; |Inconvénients routage statique&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Silencieux&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Paramétrage complexe en cas de besoin de modification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Une route par défaut est suffisante pour des réseaux d’accès&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Attention aux erreurs de Syntaxe &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #77FF77;&amp;quot; | Avantages routage Dynamique&lt;br /&gt;
! style=&amp;quot;background-color: #F99;&amp;quot; |Inconvénients routage Dynamique&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Réactif au défaut réseaux&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Bavard&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Équilibrage de charge&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Utilisation de puissance CPU &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Paramétrage simplifié&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | nécessité de sécuriser les échanges par de l’authentification &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Adaptation aux réseaux complexes&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Temps de convergence &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19476</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19476"/>
				<updated>2021-09-23T07:36:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  BS ?&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  https://drive.google.com/file/d/1CgbbB1u5fYXg9S62R1SrSDuQumejpi1K/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans le réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va permettre de sonder le destinataire B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, si le destinataire B veut bien, il peut renvoyer une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A. (La volonté et la capacité à répondre dépendent des réglages du parefeu de B, voire d'un filtrage intermédiaire sur le trajet emprunté).&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
la fonction Traceroute utilise également ces messages ICMPv6 en incrémentant la valeur du champ hop limit, ce qui permet d'identifier le trajet dans le réseau, à condition que les parefeux ne bloquent pas ces mécanismes.&lt;br /&gt;
&lt;br /&gt;
== Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur intermédiaire sur le chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message dans la limite de la MTU pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet reçu présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 1.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identification d'une boucle ==  &lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur (impossible == ou par la destination), avec un champ contenant la valeur 1, on interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Le routeur ne doit alors pas transmettre le paquet vers sa destination.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
Sans mécanisme de détection ce phénomène de boucle va saturer le trajet concerné, car si l'émetteur n'est pas prévenu, il retransmettra les paquets à souhait, ce qui empire la situation...&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il convient donc de ne pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19475</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19475"/>
				<updated>2021-09-23T07:32:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Gestion du niveau IP par ICMPv6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  BS ?&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  en construction JPR&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans le réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va permettre de sonder le destinataire B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, si le destinataire B veut bien, il peut renvoyer une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A. (La volonté et la capacité à répondre dépendent des réglages du parefeu de B, voire d'un filtrage intermédiaire sur le trajet emprunté).&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
la fonction Traceroute utilise également ces messages ICMPv6 en incrémentant la valeur du champ hop limit, ce qui permet d'identifier le trajet dans le réseau, à condition que les parefeux ne bloquent pas ces mécanismes.&lt;br /&gt;
&lt;br /&gt;
== Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur intermédiaire sur le chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message dans la limite de la MTU pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet reçu présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 1.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identification d'une boucle ==  &lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur (impossible == ou par la destination), avec un champ contenant la valeur 1, on interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Le routeur ne doit alors pas transmettre le paquet vers sa destination.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
Sans mécanisme de détection ce phénomène de boucle va saturer le trajet concerné, car si l'émetteur n'est pas prévenu, il retransmettra les paquets à souhait, ce qui empire la situation...&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il convient donc de ne pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19474</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19474"/>
				<updated>2021-09-23T07:28:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  BS ?&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  en construction JPR&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans le réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
-Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va permettre de sonder le destinataire B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, si le destinataire B veut bien, il peut renvoyer une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A. (La volonté et la capacité à répondre dépendent des réglages du parefeu de B, voire d'un filtrage intermédiaire sur le trajet emprunté).&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
la fonction Traceroute utilise également ces messages ICMPv6 en incrémentant la valeur du champ hop limit, ce qui permet d'identifier le trajet dans le réseau, à condition que les parefeux ne bloquent pas ces mécanismes.&lt;br /&gt;
&lt;br /&gt;
== Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur intermédiaire sur le chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message dans la limite de la MTU pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet reçu présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 1.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Identification d'une boucle ==  &lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur (impossible == ou par la destination), avec un champ contenant la valeur 1, on interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Le routeur ne doit alors pas transmettre le paquet vers sa destination.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
Sans mécanisme de détection ce phénomène de boucle va saturer le trajet concerné, car si l'émetteur n'est pas prévenu, il retransmettra les paquets à souhait, ce qui empire la situation...&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il convient donc de ne pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19473</id>
		<title>MOOC:Verb23</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb23&amp;diff=19473"/>
				<updated>2021-09-22T16:40:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Le contrôle du fonctionnement d'IPv6 à travers ICMPv6 =&lt;br /&gt;
&lt;br /&gt;
Comment savoir que tout va bien dans le réseau IPv6 ? &lt;br /&gt;
&lt;br /&gt;
hé bien si aucune erreur ne remonte du réseau, c'est que tout va bien, dans le cas contraire, il nous faut interpréter les messages d'erreurs remontés par ICMPv6 !&lt;br /&gt;
&lt;br /&gt;
== Gestion du niveau IP par ICMPv6 == &lt;br /&gt;
&lt;br /&gt;
-Le protocole ICMPv6 permet de contrôler le bon fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Au niveau de l'Internet, il permet depuis une station de vérifier l'accessibilité d'une autre station connectée, et, lors de l'acheminement d'un paquet, d'obtenir des rapports d'erreur, en cas de problème.&lt;br /&gt;
&lt;br /&gt;
Au niveau local, l'ICMPv6 permet à une station qui vient de se connecter de découvrir les voisins connectés sur le même lien.&lt;br /&gt;
&lt;br /&gt;
ICMPv6, Internet Control Management Protocol, est un protocole générique pour le contrôle du fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Il est transporté directement au-dessus d'IPv6.&lt;br /&gt;
&lt;br /&gt;
La valeur du champ &amp;quot;Next Header&amp;quot; de l'en-tête IPv6 aura pour valeur 58.&lt;br /&gt;
&lt;br /&gt;
Un message ICMPv6 correspond à un rapport de fonctionnement du réseau.&lt;br /&gt;
&lt;br /&gt;
Chaque message ICMPv6 est identifié par un &amp;quot;type&amp;quot;, auquel correspond la fonction de ce message.&lt;br /&gt;
&lt;br /&gt;
Le champ &amp;quot;code&amp;quot; permet de préciser la sémantique de ce message.&lt;br /&gt;
&lt;br /&gt;
Comme tout protocole transporté au-dessus d'un en-tête IPv6, l'en-tête ICMPv6 doit contenir une somme de contrôle.&lt;br /&gt;
&lt;br /&gt;
Enfin, le champ &amp;quot;options&amp;quot; sert à fournir les informations utiles, selon la fonction du message. On y retrouvera des informations diverses, comme des extraits de paquets ayant généré des erreurs ou des informations de configuration.&lt;br /&gt;
&lt;br /&gt;
== Test d'accessibilité entre équipements avec PING ==  &lt;br /&gt;
&lt;br /&gt;
Une fonction très utile et bien connue des utilisateurs, mise en œuvre par ICMPv6, est le test d'accessibilité entre équipements connectés par Internet. Cette fonction est utilisée par la commande &amp;quot;ping&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsque, depuis la station A, un utilisateur souhaite savoir si la station B est accessible à travers l'Internet IPv6, il utilise la commande &amp;quot;ping6&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Cette commande permet de générer sur le réseau un message ICMPv6 de type 128, signifiant &amp;quot;echo-request&amp;quot;, message qui va être envoyé à destination de B.&lt;br /&gt;
&lt;br /&gt;
À la réception de ce message, B envoie une réponse sous la forme d'un message ICMPv6 de type 129, &amp;quot;echo-reply&amp;quot;, qui va être envoyé à destination de A.&lt;br /&gt;
&lt;br /&gt;
Le message reçu par A est identifié comme une réponse de B, au premier message, grâce au numéro de séquence.&lt;br /&gt;
&lt;br /&gt;
La commande &amp;quot;ping6&amp;quot; peut alors afficher la réponse de B.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ping6&amp;quot; affiche en plus un temps mesuré par la station A entre l'émission de la demande et la réception de la réponse, appelé &amp;quot;temps d'aller-retour&amp;quot; ou &amp;quot;Round Trip Time&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Identification des problèmes, grâce aux rapport d'erreur  ICMPv6 ==  &lt;br /&gt;
&lt;br /&gt;
ICMPv6 permet de signaler à l'émetteur d'un paquet un problème dans son acheminement ou dans sa réception, à travers des rapports d'erreur.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une machine A envoie un paquet IPv6, si une erreur est détectée par le destinataire du paquet ou par tout routeur du chemin entre A et B, alors l'élément ayant détecté l'erreur renvoie à l'émetteur un rapport sous la forme d'un message ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Le type du message et son code définissent précisément l'erreur détectée.&lt;br /&gt;
&lt;br /&gt;
L'extrait du paquet fautif est inclus dans le message pour permettre l'analyse de l'erreur.&lt;br /&gt;
&lt;br /&gt;
Les erreurs pouvant être détectées par ICMPv6 sont la destination inaccessible, renvoyée par le dernier routeur ne pouvant pas transmettre le paquet à la destination.&lt;br /&gt;
&lt;br /&gt;
Une erreur liée à un paquet trop grand est transmise par un routeur intermédiaire ne pouvant pas transmettre le paquet sur un lien imposant une taille inférieure à celle du paquet.&lt;br /&gt;
&lt;br /&gt;
Le délai expiré est une erreur renvoyée lorsque le paquet présente, dans son en-tête IPv6, le champ &amp;quot;Hop Limit&amp;quot; à valeur 0.&lt;br /&gt;
&lt;br /&gt;
Enfin, l'erreur de paramètre est renvoyée par un routeur détectant un problème dans la valeur d'un champ de l'en-tête IP ou d'une extension de cet en-tête.&lt;br /&gt;
&lt;br /&gt;
Voyons ici un exemple illustrant un rapport d'erreur lié à un délai expiré.&lt;br /&gt;
&lt;br /&gt;
== Identification d'une boucle ==  &lt;br /&gt;
&lt;br /&gt;
L'en-tête IPv6 contient un champ &amp;quot;Hop Limit&amp;quot; dont la valeur est décrémentée à chaque routeur traversé.&lt;br /&gt;
&lt;br /&gt;
L'erreur intervient lorsqu'un paquet est reçu par un routeur ou par la destination, avec un champ contenant la valeur 1, on interdit au routeur de retransmettre un paquet avec la valeur 0.&lt;br /&gt;
&lt;br /&gt;
Le routeur ne doit alors pas transmettre le paquet vers sa destination.&lt;br /&gt;
&lt;br /&gt;
Il renvoie vers l'émetteur un rapport d'erreur signalant un délai expiré.&lt;br /&gt;
&lt;br /&gt;
Ce cas peut se présenter lorsqu'il y a une erreur de configuration dans le réseau, qui fait apparaître une boucle de routage.&lt;br /&gt;
&lt;br /&gt;
Il est important, donc, que les paquets ICMPv6 puissent bien circuler sur le réseau car ils permettent à la station de s'adapter en cas de problème, et à l'administrateur de détecter et analyser les problèmes.&lt;br /&gt;
&lt;br /&gt;
Il ne faut donc pas filtrer ICMPv6 de façon inconsidérée dans son réseau.&lt;br /&gt;
&lt;br /&gt;
La RFC 4890 décrit les bonnes pratiques de filtrage.&lt;br /&gt;
&lt;br /&gt;
== Filtrage ICMPv6==  &lt;br /&gt;
Cet exemple va illustrer les problèmes de filtrage des paquets ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Dans cet exemple, la station A est située dans un réseau protégé par un pare-feu, sous la responsabilité de l'administrateur.&lt;br /&gt;
&lt;br /&gt;
Celui-ci a considéré que les messages ICMPv6 provenant d'Internet sont potentiellement dangereux.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est donc configuré pour bloquer ces messages entrants provenant de l'Internet.&lt;br /&gt;
&lt;br /&gt;
A envoie un paquet vers B, mais une erreur de délai expiré est détectée par un routeur situé entre A et B.&lt;br /&gt;
&lt;br /&gt;
Le routeur envoie un rapport d'erreur ICMPv6 à destination de A.&lt;br /&gt;
&lt;br /&gt;
Mais la configuration du pare-feu fait que ce rapport n'est pas transmis sur le réseau local.&lt;br /&gt;
&lt;br /&gt;
La station A n'est donc pas informée du problème de transmission du paquet.&lt;br /&gt;
&lt;br /&gt;
Donc, l'erreur ne sera pas détectée et la station A ne pourra pas s'adapter.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
Il est donc important, pour les administrateurs réseau, de bien considérer les messages ICMPv6 de rapport d'erreur, lors de la définition des politiques de sécurité.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=19472</id>
		<title>MOOC:Taches Session 7</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Taches_Session_7&amp;diff=19472"/>
				<updated>2021-09-22T16:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;gt; [[MOOC:Accueil|MOOC]]&amp;gt;[[MOOC:Gestion_de_projet|Gestion de projet]] &amp;gt; Taches Session 7&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | A faire&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
! #&lt;br /&gt;
! Objet&lt;br /&gt;
! Intitulé Tâche&lt;br /&gt;
! Priorité&lt;br /&gt;
! Intervenants &lt;br /&gt;
! Status&lt;br /&gt;
! Planification&lt;br /&gt;
|- &lt;br /&gt;
| T01&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Nouvelle intro Seq4 dans [[MOOC:Compagnon Act40-s7|Act40]] à partir de [[MOOC:Compagnon Act41-s6|Act41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T02&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act41-s7|Act41]] : Ajout de scénarios Double-pile ?&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T03&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act42-s7|Act42]] : Enlever 6to4 et ne garder que 6rd ? &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T04&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| [[MOOC:Compagnon Act43-s7|Act43]] : Ajouter 464XLAT &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T05&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer exA45 en [[MOOC:Compagnon Act44-s7|Act44]]. &lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T06&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir la [[MOOC:Compagnon Act47|conclusion Seq4]] : perspective de la transition, tunnels IPv4 sur IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T07&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act03|Act03]] et [[MOOC:Compagnon Act04|Act04]] à partir de [[MOOC:Compagnon Act41|Act41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA / VV&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T08&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Compléter [[MOOC:Compagnon Act30-s7|A30]] (gestion des erreurs reportée en A23 ?!)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T09&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act31-s7|A31]] : NDP (Multicast sollicité, Redirect?)&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T10&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act32-s7|A32]] : Reprendre DHCPv6 de [[MOOC:Compagnon Act34-s6|A34-s6]] &lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T11&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act34-s7|A34-s7]] : Sécurité IPv6&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T12&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Renommer les activités de la séquence 1 en s7&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | OK&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T13&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Intégrer une partie de [[MOOC:Compagnon Act15-s6|A15-s6 Multicast]] dans [[MOOC:Compagnon Act13-s7|A13-s7]], et le reste en annexe.&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T14&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act14-s7|A14-s7]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T15&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act20-s7|A20-s7]] : plan de la séquence. Rappel sur l'encapsulation de [[MOOC:Compagnon Act24-s6|A24-s6]].&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T16&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Revoir [[MOOC:Compagnon Act21-s7|A21-s7]] : Ajout des extensions d'en-tête de [[MOOC:Compagnon_Act25-s6|A25-s6]] en annexe. &lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T17&lt;br /&gt;
| Doc Compagnon&lt;br /&gt;
| Créer [[MOOC:Compagnon Act23-s7|A23-s7]] à partir de [[MOOC:Compagnon Act31-s7|A31]] et de [[MOOC:Annexe_Compagnon_Act31|Annexe A31]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Juin&lt;br /&gt;
|-&lt;br /&gt;
| T18&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A11 [[MOOC:Verb11]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T19&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A12 [[MOOC:Verb12]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T20&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A13 [[MOOC:Verb13]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T21&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A14 [[MOOC:Verb14]]&lt;br /&gt;
| P1&lt;br /&gt;
| JL&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T22&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A21 [[MOOC:Verb21]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T23&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A22 [[MOOC:Verb22]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T24&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A23 [[MOOC:Verb23]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color: #FFF200;&amp;quot; | En cours&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T25&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A24 [[MOOC:Verb24]]&lt;br /&gt;
| P1&lt;br /&gt;
| JPR&lt;br /&gt;
| style=&amp;quot;background-color:  #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T26&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A31 [[MOOC:Verb31]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T27&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A32 [[MOOC:Verb32]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T28&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A33 [[MOOC:Verb33]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #CCF;&amp;quot; | A valider&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T29&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A34 [[MOOC:Verb34]]&lt;br /&gt;
| P1&lt;br /&gt;
| BS&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T30&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A40 [[MOOC:Verb40]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T31&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A41 [[MOOC:Verb41]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T32&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A42 [[MOOC:Verb42]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T33&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A43 [[MOOC:Verb43]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
| T34&lt;br /&gt;
| Scripts&lt;br /&gt;
| Script A44 [[MOOC:Verb44]]&lt;br /&gt;
| P1&lt;br /&gt;
| PA&lt;br /&gt;
| style=&amp;quot;background-color: #FAA21A;&amp;quot; | Affecté&lt;br /&gt;
| Septembre&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19471</id>
		<title>MOOC:Verb24</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19471"/>
				<updated>2021-09-22T16:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* 24.5 Extension de Fragmentation: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt; https://docs.google.com/presentation/d/1MkwcFJrJKljPFW93u2oAyeZQDdBsana0/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt; https://drive.google.com/file/d/1N9n5X3TasqE3E_66fO25F-LeCZCTuZoZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
= Adapter la taille des paquets =&lt;br /&gt;
&lt;br /&gt;
Jean-Pierre Rioual, ingénieur conseil réseaux, EUREKOM.&lt;br /&gt;
&lt;br /&gt;
-Dans cette quatrième activité :&lt;br /&gt;
Nous allons passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
&lt;br /&gt;
Mais comment faire pour adapter la taille des paquets au réseau de transmissions intermédiaires ?&lt;br /&gt;
comme pour le courrier postal, nous devons respecter un format pour que les enveloppes puissent glisser dans la fente des boites aux lettres, ou bien que les paquets soient entreposables en respectant  le format de la porte de la boite aux lettres !!!&lt;br /&gt;
&lt;br /&gt;
== 24.1 Path Maximum Transmission Unit: ==&lt;br /&gt;
&lt;br /&gt;
La taille des paquets IPv6 est conditionnée par le type de liaison mis à disposition au niveau 2&lt;br /&gt;
Les paquets sont placés dans des trames avant d’être émis sur le support physique&lt;br /&gt;
Selon la nature de la liaison, une taille maximale de trame est définie  : Ethernet (1500 octets), PPPoA (1468 octets), MPLS (de 1500 à 65535 octets),6LoWPAN = 81 octets  etc. &lt;br /&gt;
La couche réseau prends en compte cette contrainte en limitant la taille maximale de données pouvant être placées dans un paquet, &lt;br /&gt;
Cette taille est appelée MTU : Maximum Transmission Unit&lt;br /&gt;
&lt;br /&gt;
== 24.2 Path Maximum Transmission Unit: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut cependant être amené à voyager sur plusieurs supports de natures différentes, chacun imposant ses tailles maximales. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir parcourir sans encombres son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille maximum autorisée par l'ensemble des liens traversés. &lt;br /&gt;
Cette taille est de ce fait appelée PMTU (Path Maximum Transmission Unit) ou unité de transfert de taille maximale sur le chemin. &lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Pour des considérations d'efficacité, il est préférable que les informations échangées entre équipements soient contenues dans des datagrammes de taille maximale. &lt;br /&gt;
Une trop petite taille de paquet a pour effet d'augmenter la charge supplémentaire des entêtes par rapport aux données transportées, ainsi que d'augmenter le nombre de paquet à traiter dans les routeurs.&lt;br /&gt;
Au moment de créer des paquets, la couche réseau essaie donc de respecter au maximum la PMTU.&lt;br /&gt;
Cependant la valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque.&lt;br /&gt;
&lt;br /&gt;
== 24.3 Path Maximum Transmission Unit: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous observons ici :&lt;br /&gt;
L'émetteur du paquet fait alors la supposition que la MTU vers cette destination est égale à celle du réseau d’accès. &lt;br /&gt;
L'acheminement du paquet s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet reçu et la taille maximale qu’il est autorisé à retransmettre. &lt;br /&gt;
Si le routeur est dans l'incapacité de transmettre le paquet, il utilise alors un message de signalisation ICMPv6 pour informer l'émetteur du paquet du problème d'acheminement, ainsi que de la taille recommandée pour que les paquets puissent être retransmis. &lt;br /&gt;
L’émetteur reprends la transmission en utilisant le nouveau MTU  recommandé&lt;br /&gt;
Cette valeur est alors enregistrée comme la PMTU pour tous les prochains paquets vers cette même destination. &lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Ce processus peut être répété si d'autres liens imposent des tailles maximale de transmission encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. &lt;br /&gt;
Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. &lt;br /&gt;
Ce mécanisme de découverte de la taille maximale de transmission sur le chemin est spécifié dans le RFC 1981. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.4 Fragmentation ==&lt;br /&gt;
 &lt;br /&gt;
La fragmentation est utile dans les cas où la couche réseau ne peut pas adapter la MTU des données à transmettre &lt;br /&gt;
C'est le cas par exemple des segments transportés sur UDP pour le système de fichier NFS, &lt;br /&gt;
Ces messages peuvent avoir une taille supérieure à celle autorisée sur le support. &lt;br /&gt;
&lt;br /&gt;
La couche réseau n'a alors d'autres choix que de fragmenter ces données. &lt;br /&gt;
Le principe  est de séparer un paquet devant être émis avec une taille trop importante en plusieurs paquets respectant la taille maximale autorisée. &lt;br /&gt;
Ces  fragments sont émis et acheminés vers la destination comme n'importe quel autre paquet &lt;br /&gt;
La couche réseau du destinataire se charge alors de réassembler le paquet IP original pour que les données puissent être traitées. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.5 Extension de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un fragment est transmise dans une extension de fragmentation de l'entête IPv6.  &lt;br /&gt;
(Next Header == Fragment)&lt;br /&gt;
On retrouve dans le format de l'extension de fragmentation&lt;br /&gt;
Le champ place du fragment qui indique lors du réassemblage où les données doivent être insérées. &lt;br /&gt;
	Ceci permet de parer les problèmes dus au dé-séquencement dans les réseaux orientés datagrammes. &lt;br /&gt;
	Comme ce champ est sur 13 bits, la taille de tous les segments, sauf du dernier, doit être multiple de 8 octets. &lt;br /&gt;
&lt;br /&gt;
Le bit M s'il vaut 1 indique qu'il y aura d'autres fragments émis.&lt;br /&gt;
&lt;br /&gt;
Le champ identification permet de repérer les fragments appartenant à un même paquet initial.&lt;br /&gt;
	 Il est différent pour chaque paquet et recopié dans ses fragments&lt;br /&gt;
&lt;br /&gt;
== 24.6 Mécanisme de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Notons que le datagramme original est découpé en autant de fragments que nécessaire&lt;br /&gt;
Chaque fragment intermédiaire avec le bit M=1 dispose de son encapsulation propre&lt;br /&gt;
On retrouve dans le premier fragment l’entête transport et les premières données du segment&lt;br /&gt;
Dans les fragments suivant la suite des données fragmentées &lt;br /&gt;
Et enfin dans le dernier fragment avec le bit M=0 , les dernières données utiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.7 Extension Jumbogramme ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un super-paquet  est transmise dans une extension jumbogramme de l'entête IPv6.  &lt;br /&gt;
(Next Header == Jumbogramme)&lt;br /&gt;
La taille admissible va jusqu'à 4 Gigaoctets, c'est vraiment énorme !&lt;br /&gt;
reste qu'une telle taille de paquet n'est pas possible sans une MTU de niveau 2 adaptée&lt;br /&gt;
mais sachant que les volumes de données croissent constament, à l'avenir nous en aurons bien besoin,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.8 Conclusion ==&lt;br /&gt;
 &lt;br /&gt;
Nous venons de passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
L'intérêt majeur est de permettre la traversée sans encombres de réseaux indépendants, de s'y adapter si la fragmentation est nécessaire, &lt;br /&gt;
cependant cela augmente l'encapsulation et donc diminue d'autant l'efficacité, car toute la chaine de communication subie cette fragmentation.&lt;br /&gt;
&lt;br /&gt;
La notion de jumbogramme IPv6 réponds  aux besoins de transport efficace de forts volumes de données, &lt;br /&gt;
on en rencontre déjà dans les environnements Datacenter, réseau de stockage,  réplication d'infrastructures de virtualisation, Big Data...&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Yes but !&lt;br /&gt;
si IPv6 est prêt,  les couches de protocoles de type liaison doivent évoluer !&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19470</id>
		<title>MOOC:Verb24</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19470"/>
				<updated>2021-09-22T16:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* 24.2 Path Maximum Transmission Unit: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt; https://docs.google.com/presentation/d/1MkwcFJrJKljPFW93u2oAyeZQDdBsana0/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt; https://drive.google.com/file/d/1N9n5X3TasqE3E_66fO25F-LeCZCTuZoZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
= Adapter la taille des paquets =&lt;br /&gt;
&lt;br /&gt;
Jean-Pierre Rioual, ingénieur conseil réseaux, EUREKOM.&lt;br /&gt;
&lt;br /&gt;
-Dans cette quatrième activité :&lt;br /&gt;
Nous allons passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
&lt;br /&gt;
Mais comment faire pour adapter la taille des paquets au réseau de transmissions intermédiaires ?&lt;br /&gt;
comme pour le courrier postal, nous devons respecter un format pour que les enveloppes puissent glisser dans la fente des boites aux lettres, ou bien que les paquets soient entreposables en respectant  le format de la porte de la boite aux lettres !!!&lt;br /&gt;
&lt;br /&gt;
== 24.1 Path Maximum Transmission Unit: ==&lt;br /&gt;
&lt;br /&gt;
La taille des paquets IPv6 est conditionnée par le type de liaison mis à disposition au niveau 2&lt;br /&gt;
Les paquets sont placés dans des trames avant d’être émis sur le support physique&lt;br /&gt;
Selon la nature de la liaison, une taille maximale de trame est définie  : Ethernet (1500 octets), PPPoA (1468 octets), MPLS (de 1500 à 65535 octets),6LoWPAN = 81 octets  etc. &lt;br /&gt;
La couche réseau prends en compte cette contrainte en limitant la taille maximale de données pouvant être placées dans un paquet, &lt;br /&gt;
Cette taille est appelée MTU : Maximum Transmission Unit&lt;br /&gt;
&lt;br /&gt;
== 24.2 Path Maximum Transmission Unit: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut cependant être amené à voyager sur plusieurs supports de natures différentes, chacun imposant ses tailles maximales. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir parcourir sans encombres son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille maximum autorisée par l'ensemble des liens traversés. &lt;br /&gt;
Cette taille est de ce fait appelée PMTU (Path Maximum Transmission Unit) ou unité de transfert de taille maximale sur le chemin. &lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Pour des considérations d'efficacité, il est préférable que les informations échangées entre équipements soient contenues dans des datagrammes de taille maximale. &lt;br /&gt;
Une trop petite taille de paquet a pour effet d'augmenter la charge supplémentaire des entêtes par rapport aux données transportées, ainsi que d'augmenter le nombre de paquet à traiter dans les routeurs.&lt;br /&gt;
Au moment de créer des paquets, la couche réseau essaie donc de respecter au maximum la PMTU.&lt;br /&gt;
Cependant la valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque.&lt;br /&gt;
&lt;br /&gt;
== 24.3 Path Maximum Transmission Unit: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous observons ici :&lt;br /&gt;
L'émetteur du paquet fait alors la supposition que la MTU vers cette destination est égale à celle du réseau d’accès. &lt;br /&gt;
L'acheminement du paquet s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet reçu et la taille maximale qu’il est autorisé à retransmettre. &lt;br /&gt;
Si le routeur est dans l'incapacité de transmettre le paquet, il utilise alors un message de signalisation ICMPv6 pour informer l'émetteur du paquet du problème d'acheminement, ainsi que de la taille recommandée pour que les paquets puissent être retransmis. &lt;br /&gt;
L’émetteur reprends la transmission en utilisant le nouveau MTU  recommandé&lt;br /&gt;
Cette valeur est alors enregistrée comme la PMTU pour tous les prochains paquets vers cette même destination. &lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Ce processus peut être répété si d'autres liens imposent des tailles maximale de transmission encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. &lt;br /&gt;
Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. &lt;br /&gt;
Ce mécanisme de découverte de la taille maximale de transmission sur le chemin est spécifié dans le RFC 1981. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.4 Fragmentation ==&lt;br /&gt;
 &lt;br /&gt;
La fragmentation est utile dans les cas où la couche réseau ne peut pas adapter la MTU des données à transmettre &lt;br /&gt;
C'est le cas par exemple des segments transportés sur UDP pour le système de fichier NFS, &lt;br /&gt;
Ces messages peuvent avoir une taille supérieure à celle autorisée sur le support. &lt;br /&gt;
&lt;br /&gt;
La couche réseau n'a alors d'autres choix que de fragmenter ces données. &lt;br /&gt;
Le principe  est de séparer un paquet devant être émis avec une taille trop importante en plusieurs paquets respectant la taille maximale autorisée. &lt;br /&gt;
Ces  fragments sont émis et acheminés vers la destination comme n'importe quel autre paquet &lt;br /&gt;
La couche réseau du destinataire se charge alors de réassembler le paquet IP original pour que les données puissent être traitées. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.5 Extension de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un fragment est transmise dans une extension de fragmentation de l'entête IPv6.  &lt;br /&gt;
(Next Header == Fragment)&lt;br /&gt;
On retrouve dans le format de l'extension de fragmentation&lt;br /&gt;
Le champ place du fragment qui indique lors du réassemblage où les données doivent être insérées. &lt;br /&gt;
	Ceci permet de parer les problèmes dus au dé-séquencement dans les réseaux orientés datagrammes. &lt;br /&gt;
	Comme ce champ est sur 13 bits, la taille de tous les segments, sauf du dernier, doit être multiple de 8 octets. &lt;br /&gt;
&lt;br /&gt;
Le bit M s'il vaut 1 indique qu'il y aura d'autres fragments émis.&lt;br /&gt;
&lt;br /&gt;
 Le champ identification permet de repérer les fragments appartenant à un même paquet initial.&lt;br /&gt;
	 Il est différent pour chaque paquet et recopié dans ses fragments&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.6 Mécanisme de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Notons que le datagramme original est découpé en autant de fragments que nécessaire&lt;br /&gt;
Chaque fragment intermédiaire avec le bit M=1 dispose de son encapsulation propre&lt;br /&gt;
On retrouve dans le premier fragment l’entête transport et les premières données du segment&lt;br /&gt;
Dans les fragments suivant la suite des données fragmentées &lt;br /&gt;
Et enfin dans le dernier fragment avec le bit M=0 , les dernières données utiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.7 Extension Jumbogramme ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un super-paquet  est transmise dans une extension jumbogramme de l'entête IPv6.  &lt;br /&gt;
(Next Header == Jumbogramme)&lt;br /&gt;
La taille admissible va jusqu'à 4 Gigaoctets, c'est vraiment énorme !&lt;br /&gt;
reste qu'une telle taille de paquet n'est pas possible sans une MTU de niveau 2 adaptée&lt;br /&gt;
mais sachant que les volumes de données croissent constament, à l'avenir nous en aurons bien besoin,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.8 Conclusion ==&lt;br /&gt;
 &lt;br /&gt;
Nous venons de passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
L'intérêt majeur est de permettre la traversée sans encombres de réseaux indépendants, de s'y adapter si la fragmentation est nécessaire, &lt;br /&gt;
cependant cela augmente l'encapsulation et donc diminue d'autant l'efficacité, car toute la chaine de communication subie cette fragmentation.&lt;br /&gt;
&lt;br /&gt;
La notion de jumbogramme IPv6 réponds  aux besoins de transport efficace de forts volumes de données, &lt;br /&gt;
on en rencontre déjà dans les environnements Datacenter, réseau de stockage,  réplication d'infrastructures de virtualisation, Big Data...&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Yes but !&lt;br /&gt;
si IPv6 est prêt,  les couches de protocoles de type liaison doivent évoluer !&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19469</id>
		<title>MOOC:Verb24</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb24&amp;diff=19469"/>
				<updated>2021-09-22T16:18:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt; https://docs.google.com/presentation/d/1MkwcFJrJKljPFW93u2oAyeZQDdBsana0/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt; https://drive.google.com/file/d/1N9n5X3TasqE3E_66fO25F-LeCZCTuZoZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
= Adapter la taille des paquets =&lt;br /&gt;
&lt;br /&gt;
Jean-Pierre Rioual, ingénieur conseil réseaux, EUREKOM.&lt;br /&gt;
&lt;br /&gt;
-Dans cette quatrième activité :&lt;br /&gt;
Nous allons passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
&lt;br /&gt;
Mais comment faire pour adapter la taille des paquets au réseau de transmissions intermédiaires ?&lt;br /&gt;
comme pour le courrier postal, nous devons respecter un format pour que les enveloppes puissent glisser dans la fente des boites aux lettres, ou bien que les paquets soient entreposables en respectant  le format de la porte de la boite aux lettres !!!&lt;br /&gt;
&lt;br /&gt;
== 24.1 Path Maximum Transmission Unit: ==&lt;br /&gt;
&lt;br /&gt;
La taille des paquets IPv6 est conditionnée par le type de liaison mis à disposition au niveau 2&lt;br /&gt;
Les paquets sont placés dans des trames avant d’être émis sur le support physique&lt;br /&gt;
Selon la nature de la liaison, une taille maximale de trame est définie  : Ethernet (1500 octets), PPPoA (1468 octets), MPLS (de 1500 à 65535 octets),6LoWPAN = 81 octets  etc. &lt;br /&gt;
La couche réseau prends en compte cette contrainte en limitant la taille maximale de données pouvant être placées dans un paquet, &lt;br /&gt;
Cette taille est appelée MTU : Maximum Transmission Unit&lt;br /&gt;
&lt;br /&gt;
== 24.2 Path Maximum Transmission Unit: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Un paquet IP peut cependant être amené à voyager sur plusieurs supports de natures différentes, chacun imposant ses tailles maximales. &lt;br /&gt;
&lt;br /&gt;
Pour pouvoir parcourir sans encombres son chemin jusqu'à sa destination, le paquet doit donc avoir une taille inférieure ou égale à la plus petite taille maximum autorisée par l'ensemble des liens traversés. &lt;br /&gt;
Cette taille est de ce fait appelée PMTU (Path Maximum Transmission Unit) ou unité de transfert de taille maximale sur le chemin. &lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Pour des considérations d'efficacité, il est préférable que les informations échangées entre équipements soient contenues dans des datagrammes de taille maximale. &lt;br /&gt;
Une trop petite taille de paquet a pour effet d'augmenter la charge supplémentaire des entêtes par rapport aux données transportées, ainsi que d'augmenter le nombre de paquet à traiter dans les routeurs.&lt;br /&gt;
 Au moment de créer des paquets, la couche réseau essaie donc de respecter au maximum la PMTU.&lt;br /&gt;
 Cependant la valeur de la PMTU n'est pas forcément connue à l'envoi d'un premier paquet vers une destination quelconque. &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
== 24.3 Path Maximum Transmission Unit: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Nous observons ici :&lt;br /&gt;
L'émetteur du paquet fait alors la supposition que la MTU vers cette destination est égale à celle du réseau d’accès. &lt;br /&gt;
L'acheminement du paquet s'effectue normalement jusqu'au premier routeur rencontrant une incompatibilité entre la taille du paquet reçu et la taille maximale qu’il est autorisé à retransmettre. &lt;br /&gt;
Si le routeur est dans l'incapacité de transmettre le paquet, il utilise alors un message de signalisation ICMPv6 pour informer l'émetteur du paquet du problème d'acheminement, ainsi que de la taille recommandée pour que les paquets puissent être retransmis. &lt;br /&gt;
L’émetteur reprends la transmission en utilisant le nouveau MTU  recommandé&lt;br /&gt;
Cette valeur est alors enregistrée comme la PMTU pour tous les prochains paquets vers cette même destination. &lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Ce processus peut être répété si d'autres liens imposent des tailles maximale de transmission encore inférieures. &lt;br /&gt;
L'émetteur enregistrera les valeurs recommandées successives jusqu'à arriver à la taille maximale autorisée sur le chemin. &lt;br /&gt;
Les paquets suivants qui respecteront cette taille seront alors acheminés sans problème. &lt;br /&gt;
Ce mécanisme de découverte de la taille maximale de transmission sur le chemin est spécifié dans le RFC 1981. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.4 Fragmentation ==&lt;br /&gt;
 &lt;br /&gt;
La fragmentation est utile dans les cas où la couche réseau ne peut pas adapter la MTU des données à transmettre &lt;br /&gt;
C'est le cas par exemple des segments transportés sur UDP pour le système de fichier NFS, &lt;br /&gt;
Ces messages peuvent avoir une taille supérieure à celle autorisée sur le support. &lt;br /&gt;
&lt;br /&gt;
La couche réseau n'a alors d'autres choix que de fragmenter ces données. &lt;br /&gt;
Le principe  est de séparer un paquet devant être émis avec une taille trop importante en plusieurs paquets respectant la taille maximale autorisée. &lt;br /&gt;
Ces  fragments sont émis et acheminés vers la destination comme n'importe quel autre paquet &lt;br /&gt;
La couche réseau du destinataire se charge alors de réassembler le paquet IP original pour que les données puissent être traitées. &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.5 Extension de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un fragment est transmise dans une extension de fragmentation de l'entête IPv6.  &lt;br /&gt;
(Next Header == Fragment)&lt;br /&gt;
On retrouve dans le format de l'extension de fragmentation&lt;br /&gt;
Le champ place du fragment qui indique lors du réassemblage où les données doivent être insérées. &lt;br /&gt;
	Ceci permet de parer les problèmes dus au dé-séquencement dans les réseaux orientés datagrammes. &lt;br /&gt;
	Comme ce champ est sur 13 bits, la taille de tous les segments, sauf du dernier, doit être multiple de 8 octets. &lt;br /&gt;
&lt;br /&gt;
Le bit M s'il vaut 1 indique qu'il y aura d'autres fragments émis.&lt;br /&gt;
&lt;br /&gt;
 Le champ identification permet de repérer les fragments appartenant à un même paquet initial.&lt;br /&gt;
	 Il est différent pour chaque paquet et recopié dans ses fragments&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== 24.6 Mécanisme de Fragmentation: ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Notons que le datagramme original est découpé en autant de fragments que nécessaire&lt;br /&gt;
Chaque fragment intermédiaire avec le bit M=1 dispose de son encapsulation propre&lt;br /&gt;
On retrouve dans le premier fragment l’entête transport et les premières données du segment&lt;br /&gt;
Dans les fragments suivant la suite des données fragmentées &lt;br /&gt;
Et enfin dans le dernier fragment avec le bit M=0 , les dernières données utiles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.7 Extension Jumbogramme ==&lt;br /&gt;
 &lt;br /&gt;
L'identification d'un super-paquet  est transmise dans une extension jumbogramme de l'entête IPv6.  &lt;br /&gt;
(Next Header == Jumbogramme)&lt;br /&gt;
La taille admissible va jusqu'à 4 Gigaoctets, c'est vraiment énorme !&lt;br /&gt;
reste qu'une telle taille de paquet n'est pas possible sans une MTU de niveau 2 adaptée&lt;br /&gt;
mais sachant que les volumes de données croissent constament, à l'avenir nous en aurons bien besoin,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 24.8 Conclusion ==&lt;br /&gt;
 &lt;br /&gt;
Nous venons de passer en revue les mécanismes d’adaptation à la taille des paquets IPv6.&lt;br /&gt;
L'intérêt majeur est de permettre la traversée sans encombres de réseaux indépendants, de s'y adapter si la fragmentation est nécessaire, &lt;br /&gt;
cependant cela augmente l'encapsulation et donc diminue d'autant l'efficacité, car toute la chaine de communication subie cette fragmentation.&lt;br /&gt;
&lt;br /&gt;
La notion de jumbogramme IPv6 réponds  aux besoins de transport efficace de forts volumes de données, &lt;br /&gt;
on en rencontre déjà dans les environnements Datacenter, réseau de stockage,  réplication d'infrastructures de virtualisation, Big Data...&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Yes but !&lt;br /&gt;
si IPv6 est prêt,  les couches de protocoles de type liaison doivent évoluer !&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb22&amp;diff=19462</id>
		<title>MOOC:Verb22</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb22&amp;diff=19462"/>
				<updated>2021-09-22T15:34:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt;  https://docs.google.com/presentation/d/17xoGOIJ0lB2CX2aOh_hJyv1oirogSh5T/edit?&lt;br /&gt;
usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt;  &lt;br /&gt;
https://drive.google.com/file/d/1cqxplR2icuDPJrFXy1c5-2KBZW6WI9We/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Acheminer des paquets=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Dans cette deuxième activité, Nous allons passer en revue les principes du routage des paquets IPv6&lt;br /&gt;
&lt;br /&gt;
Mais comment deux nœuds IPv6 peuvent–ils communiquer entre eux, soit directement sur un même lien, ou bien dans un réseau local segmenté, voire grâce à des routeurs à travers un réseau plus étendu ?&lt;br /&gt;
&lt;br /&gt;
Hé bien les notions de réseau, de sous réseau et les mécanismes de routages permettent de répondre à cela !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==22.1 Principe du routage ==  &lt;br /&gt;
&lt;br /&gt;
Tout d'abord, vous observez dans cette topologie simplifiée 2 machines hôtes connectées entre elle grâce à un ou microswitch Ethernet :&lt;br /&gt;
&lt;br /&gt;
Ce petit commutateur relaie les trames Ethernet de manière transparente:&lt;br /&gt;
&lt;br /&gt;
Avant que A puisse émettre le paquet IPv6 à destination de B, il doit vérifier que le préfixe réseau du destinataire est accessible grâce à un test d’adjacence, qui détermine si on utilise une remise directe ou indirecte:&lt;br /&gt;
&lt;br /&gt;
Si le préfixe de B est identique au sien, A peut communiquer directement avec B en utilisant son interface : c'est le cas de la remise directe&lt;br /&gt;
&lt;br /&gt;
la table de routage de A et B est très simple, voyons cela de plus prêt !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==22.2 Cas de la remise directe ==  &lt;br /&gt;
&lt;br /&gt;
le destinataire B est positionné sur le même préfixe réseau que la source A,&lt;br /&gt;
Une remise directe est symbolisée dans la table de routage par un Next Hop avec une adresse nulle ::&lt;br /&gt;
&lt;br /&gt;
Le mécanisme de découverte du voisin ICMPv6 NDP: Neighbor Discovery Protocol&lt;br /&gt;
permettra à A et B d'obtenir l'adresse mac du destinataire au niveau 2, avant de pouvoir échanger directement des paquets IPv6 encapsulés dans les trames, qui elles seront commutées grâce au microswitch vers les machines hôtes correspondantes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==22.3 Cas de la remise directe ==  &lt;br /&gt;
&lt;br /&gt;
Sur la machine A, nous activons maintenant un réseau WiFi&lt;br /&gt;
A peut joindre C sur un autre préfixe réseau fourni par un Point d’accès WiFi&lt;br /&gt;
Ce Point d’accès relaie les trames WiFi de manière transparente,&lt;br /&gt;
Sur ce nouveau préfixe A et C vérifie leur connectivité avec un test d’adjacence comme précédemment,&lt;br /&gt;
&lt;br /&gt;
Pour l'instant A peut communiquer avec B et  C, &lt;br /&gt;
Par contre B et C sont bien connectés sur des préfixe réseaux différents, et en l’état ne peuvent pas échanger des paquets directement !&lt;br /&gt;
&lt;br /&gt;
il va bien falloir proposer un relai entre B et C, voyons comment faire :&lt;br /&gt;
&lt;br /&gt;
==22.4 Cas de la remise indirecte ==&lt;br /&gt;
&lt;br /&gt;
Pour permettre la communication entre B et C  qui sont bien connectés sur des préfixe réseau différents, nous sommes contraint d’utiliser le relai de A : c’est donc bien une remise indirecte&lt;br /&gt;
&lt;br /&gt;
En ajoutant dans la table de routage de B et C une entrée indiquant que pour joindre l’autre il faut un intermédiaire A&lt;br /&gt;
&lt;br /&gt;
En C : on indique que pour joindre le préfixe réseau de B, il faut utiliser le relai de A via l'interface WiFi&lt;br /&gt;
&lt;br /&gt;
En B : on indique que pour répondre à C, il faut utiliser le relai de A via l'interface Ethernet0&lt;br /&gt;
&lt;br /&gt;
==22.5 Cas de la remise indirecte ==&lt;br /&gt;
&lt;br /&gt;
Notre topologie évolue, Un routeur dédié remplace A pour stabiliser les performances:&lt;br /&gt;
&lt;br /&gt;
On attribue une nouvelle adresse à A, et on affecte les anciennes adresses de A, au routeur&lt;br /&gt;
&lt;br /&gt;
En A on indique que pour joindre le préfixe réseau de B, il faut utiliser le relai du routeur&lt;br /&gt;
&lt;br /&gt;
A et C peuvent maintenant communiquer avec B grâce au routeur, et inversement&lt;br /&gt;
&lt;br /&gt;
==22.6 routeur connecté à Internet ==&lt;br /&gt;
&lt;br /&gt;
L’accès vers internet est maintenant opérationnel sur le routeur grâce à une interface xDSL nommée atm0&lt;br /&gt;
&lt;br /&gt;
La table de routage du routeur s'enrichie &lt;br /&gt;
 le préfixe 2001:db8:0001::/64 est localisé sur l'interface Ethernet0&lt;br /&gt;
 le préfixe 2001:db8:0002::/64 est localisé sur l'interface WiFi&lt;br /&gt;
 pour le reste une route par défaut pointe vers le fournisseur d'accès à Internet &lt;br /&gt;
&lt;br /&gt;
la connectivité s'améliore !&lt;br /&gt;
&lt;br /&gt;
==22.7 Cas de la remise indirecte ==&lt;br /&gt;
&lt;br /&gt;
En A et C :  pour joindre tout autre préfixe réseau différent du lien local, &lt;br /&gt;
on introduit une entrée dans la table de routage, nommée route par défaut pointant vers le routeur&lt;br /&gt;
&lt;br /&gt;
En B : on introduit également une route par défaut en B&lt;br /&gt;
&lt;br /&gt;
la connectivité est bien meilleure !&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==  &lt;br /&gt;
&lt;br /&gt;
Pour résumer :&lt;br /&gt;
&lt;br /&gt;
Il est possible d’attribuer une adresse IPv6 statique &lt;br /&gt;
ou bien de récupérer des adresses IPv6 dynamiquement à l’aide des annonces des routeurs, voire d’un serveur DHCPv6.&lt;br /&gt;
&lt;br /&gt;
en préliminaire un test d’adjacence permet d’identifier si la remise des paquets est possible directement, ou indirectement&lt;br /&gt;
si un routage intermédiaire est nécessaire, une route statique ou apprise dynamiquement sera nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #77FF77;&amp;quot; | Avantages routage statique&lt;br /&gt;
! style=&amp;quot;background-color: #F99;&amp;quot; |Inconvénients routage statique&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Silencieux&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Paramétrage complexe en cas de besoin de modification&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Une route par défaut est suffisante pour des réseaux d’accès&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Attention aux erreurs de Syntaxe &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #77FF77;&amp;quot; | Avantages routage Dynamique&lt;br /&gt;
! style=&amp;quot;background-color: #F99;&amp;quot; |Inconvénients routage Dynamique&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Réactif au défaut réseaux&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Bavard&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Équilibrage de charge&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Utilisation de puissance CPU &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Paramétrage simplifié&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | nécessité de sécuriser les échanges par de l’authentification &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: #77FF77;&amp;quot; | Adaptation aux réseaux complexes&lt;br /&gt;
| style=&amp;quot;background-color: #F99;&amp;quot; | Temps de convergence &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	<entry>
		<id>http://livre.g6.asso.fr/index.php?title=MOOC:Verb21&amp;diff=19459</id>
		<title>MOOC:Verb21</title>
		<link rel="alternate" type="text/html" href="http://livre.g6.asso.fr/index.php?title=MOOC:Verb21&amp;diff=19459"/>
				<updated>2021-09-22T15:29:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jprioual: /* Traffic Class */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Storyboard sur Googledoc =&amp;gt; https://docs.google.com/presentation/d/1L5lRwha8U8cAQM4SxarfgVUjrKshMzOa/edit?usp=sharing&amp;amp;ouid=106484440432771135779&amp;amp;rtpof=true&amp;amp;sd=true&lt;br /&gt;
&lt;br /&gt;
Verbatim sur Googledoc =&amp;gt; &lt;br /&gt;
https://drive.google.com/file/d/1Mu8r0JcbLVlI8cyVfVXz0x1pMlI3lJI2/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Script 21: En-tête IPv6 =&lt;br /&gt;
&lt;br /&gt;
-Dans cette deuxième séquence du MOOC &amp;quot;IPv6&amp;quot;, nous aborderons les différents aspects du protocole IPv6.&lt;br /&gt;
&lt;br /&gt;
Mais pourquoi comprendre IP est si important pour nous?&lt;br /&gt;
&lt;br /&gt;
IP c'est un des protocoles les plus importants d'Internet car il permet de découper l'information à transmettre en paquets, de les adresser et de les transporter indépendamment les uns des autres, enfin à l'arrivée on peut recomposer le message original, ces paquets de données sont appelés datagrammes. &lt;br /&gt;
&lt;br /&gt;
Un paquet de données et composé d'un entête et de données &lt;br /&gt;
Dans cette activité, nous allons nous focalisez sur le format de l'en-tête des paquets IPv6. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version==&lt;br /&gt;
&lt;br /&gt;
Commençons par les premiers champs.&lt;br /&gt;
&lt;br /&gt;
Chaque ligne représentée sur ce schéma représente 32 bits de codage.&lt;br /&gt;
&lt;br /&gt;
Le premier champ de l'en-tête IPv6, codé sur 4 bits, représente la version du protocole : 6 pour IPv6.&lt;br /&gt;
&lt;br /&gt;
Evident. Facile à retenir.&lt;br /&gt;
== Traffic Class - DSCP ==&lt;br /&gt;
Le deuxième champ, codé sur 8 bits, représente la classe de trafic et sert à contrôler la qualité de service. Ce champ est décomposé en deux blocs.&lt;br /&gt;
&lt;br /&gt;
Le premier, codé sur 6 bits, le DSCP, &amp;quot;Differentiated Services Code Point&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Puis sur 2 bits nous trouvons l'ECN, &amp;quot;Explicit Congestion Notification&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Flow Label ==&lt;br /&gt;
&lt;br /&gt;
Vient ensuite le codage des 20 bits du champ &amp;quot;Flow Label&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce champ est conçu pour accélérer le traitement de la QoS.&lt;br /&gt;
&lt;br /&gt;
En effet, traditionnellement le traitement de la qualité de service nécessite la reconnaissance de plusieurs champs disséminés dans les en-têtes IP et transport, comme adresse source et destination, protocole de transport, numéro de port, origine, destination.&lt;br /&gt;
&lt;br /&gt;
Pour une suite de paquets IPv6, la source choisira une valeur aléatoire de Flow Label afin de faciliter et de soulager le traitement des routeurs intermédiaires.&lt;br /&gt;
&lt;br /&gt;
Pour la gestion de ce flux IPv6 identifié, le traitement est optimisé, le routeur n'ayant plus à consulter cinq champs pour déterminer l'appartenance d'un paquet.&lt;br /&gt;
&lt;br /&gt;
== Payload Length == &lt;br /&gt;
&lt;br /&gt;
Passons à la deuxième ligne.&lt;br /&gt;
&lt;br /&gt;
Voici le codage sur 16 bits du champ &amp;quot;Payload Length&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce champ indique la longueur de la charge utile du paquet, jusqu'à 65 535 octets.&lt;br /&gt;
&lt;br /&gt;
En IPv6, on ne prend pas en compte la longueur de l'en-tête.&lt;br /&gt;
&lt;br /&gt;
Pour des tailles de paquets supérieures à 64 ko, le codage du champ sera mis à zéro.&lt;br /&gt;
&lt;br /&gt;
Et l'option jumbogramme de l'extension de proche en proche pourra être utilisée.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, la taille de la charge utile peut être portée à 4 Go.&lt;br /&gt;
&lt;br /&gt;
À condition, évidemment, de disposer au niveau inférieur d'une taille maximum de trame adaptée.&lt;br /&gt;
&lt;br /&gt;
== Next Header == &lt;br /&gt;
&lt;br /&gt;
Vient ensuite le codage des 8 bits du champ &amp;quot;Next Header&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ce champ identifie le prochain en-tête de protocole porté par ce paquet.&lt;br /&gt;
&lt;br /&gt;
Classiquement, on retrouve les flux ICMPv6 ou les flux utilisant des couches transport TCP, UDP, d'autres cas particuliers de tunnels IPv4 ou IPv6, voire des en-têtes sécurisés et des mécanismes d'extension que l'on détaillera plus tard.&lt;br /&gt;
&lt;br /&gt;
== Hop Limit == &lt;br /&gt;
&lt;br /&gt;
Voici le codage sur 8 bits du champ &amp;quot;Hop Limit&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Certaines implémentations prennent actuellement la valeur conseillée pour IPv6 : 64. La valeur par défaut peut être dynamiquement attribuée aux équipements par les annonces des routeurs.&lt;br /&gt;
&lt;br /&gt;
On peut donc la modifier en fonction de l'évolution de la topologie du réseau.&lt;br /&gt;
&lt;br /&gt;
Comme il s'agit d'un nombre de sauts, lors de la traversée d'un routeur, la décrémentation est toujours de 1.&lt;br /&gt;
&lt;br /&gt;
Dans cette animation, nous voyons que les paquets issus de A disposent d'une valeur Hop Limit de 64 au départ.&lt;br /&gt;
&lt;br /&gt;
Cette valeur est décrémentée lors de la traversée de chaque routeur intermédiaire.&lt;br /&gt;
&lt;br /&gt;
Si un paquet atteint un routeur avec une valeur Hop Limit à 1, ce routeur le détruit.&lt;br /&gt;
&lt;br /&gt;
Et il va renvoyer à la source un message ICMPv6 de type 3, &amp;quot;Time Exceeded&amp;quot;, ce qui permet d'identifier un problème de routage pour cette destination.&lt;br /&gt;
&lt;br /&gt;
== IP Address == &lt;br /&gt;
&lt;br /&gt;
Enfin, voici les champs &amp;quot;adresse&amp;quot; sur 128 bits.&lt;br /&gt;
&lt;br /&gt;
16 octets pour l'adresse IP source, 16 octets pour l'adresse IP destination.&lt;br /&gt;
&lt;br /&gt;
Moralité : les champs &amp;quot;adresse&amp;quot; occupent 32 octets sur les 40 octets minimum nécessaires à un en-tête IPv6.&lt;br /&gt;
&lt;br /&gt;
D'autres mécanismes, comme les extensions, viendront éventuellement gonfler l'encapsulation. On en reparlera.&lt;br /&gt;
&lt;br /&gt;
== Décodage ==  &lt;br /&gt;
&lt;br /&gt;
Enfin, voyons le décodage détaillé d'un premier paquet IPv6 par le fameux outil Wireshark.&lt;br /&gt;
&lt;br /&gt;
L'affichage est décomposé en trois zones résumées, détaillées, et en codage hexadécimal ASCII.&lt;br /&gt;
&lt;br /&gt;
Nous voyons ici que l'analyseur a bien détecté une trame Ethernet transportant le protocole IPv6 grâce au champ &amp;quot;EtherType&amp;quot; 0x86DD.&lt;br /&gt;
&lt;br /&gt;
Voyons le codage détaillé des champs.&lt;br /&gt;
&lt;br /&gt;
Version : 6 = IPv6.&lt;br /&gt;
&lt;br /&gt;
Traffic Class : 00.&lt;br /&gt;
Donc, c'est un paquet qui ne bénéficiera pas d'un traitement de QoS.&lt;br /&gt;
C'est la classe &amp;quot;Best effort&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
ECN-Capable Transport : 00.&lt;br /&gt;
Donc, pas d'aide à la résolution de congestion.&lt;br /&gt;
&lt;br /&gt;
Flow Label : 00.&lt;br /&gt;
Donc, pas de prise en charge d'aide à la QoS.&lt;br /&gt;
&lt;br /&gt;
Taille de la charge utile : 8 octets.&lt;br /&gt;
&lt;br /&gt;
Next Header : en-tête ESP.&lt;br /&gt;
&lt;br /&gt;
Hop Limit : 63.&lt;br /&gt;
Donc, ce paquet a probablement déjà traversé un routeur.&lt;br /&gt;
&lt;br /&gt;
Vient ensuite l'adresse source sur 16 octets.&lt;br /&gt;
&lt;br /&gt;
Adresse destination, sur 16 octets.&lt;br /&gt;
&lt;br /&gt;
Au niveau supérieur, nous voyons le décodage de l'en-tête ESP.&lt;br /&gt;
&lt;br /&gt;
== Conclusion == &lt;br /&gt;
&lt;br /&gt;
Nous venons donc de parcourir le décodage détaillé du protocole IPv6.&lt;br /&gt;
&lt;br /&gt;
Observons que dans ce standard, les efforts ont porté sur la nécessité d'optimiser le traitement des paquets lors de la traversée des réseaux et du transport.&lt;br /&gt;
&lt;br /&gt;
Les traitements particuliers optionnels seront traités grâce à des extensions.&lt;br /&gt;
&lt;br /&gt;
Contrairement à IPv4, il n'y a pas de calcul de CRC au niveau 3, la fiabilité étant dorénavant assurée par la couche de protocole de niveau 2 .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 == en option ? ==&lt;br /&gt;
&lt;br /&gt;
== Traffic Class: DSCP == &lt;br /&gt;
&lt;br /&gt;
-Le codage des 6 bits du champ DSCP est très particulier.&lt;br /&gt;
&lt;br /&gt;
Nous remarquons que 2 puissance 6, soit 32 possibilités, ne sont pas toutes exploitées.&lt;br /&gt;
&lt;br /&gt;
Le codage des 3 bits de poids fort a repris pour un besoin de compatibilité ascendante le codage IP Precedence, exploité dans les premières mises en oeuvre d'IPv4.&lt;br /&gt;
&lt;br /&gt;
Nous découvrons, en haut du tableau, les codages avec priorité stricte : Expedited Forwarding, EF, et Voice Admit.&lt;br /&gt;
&lt;br /&gt;
Ces codages serviront à protéger la qualité des flux temps réel : voix, vidéo.&lt;br /&gt;
&lt;br /&gt;
Nous disposons ensuite d'une grande souplesse pour classifier finement d'autres catégories.&lt;br /&gt;
&lt;br /&gt;
AF, Assured Forwarding : quatre classes sont définies de 1 à 4.&lt;br /&gt;
&lt;br /&gt;
À l'intérieur de chacune de ces quatre classes, une priorité est spécifiée.&lt;br /&gt;
&lt;br /&gt;
Par exemple, sur la classe AF numéro 1, on va disposer de trois niveaux de priorité : AF11, AF12, AF13.&lt;br /&gt;
&lt;br /&gt;
Plus le chiffre est élevé, plus la priorité du flux est faible.&lt;br /&gt;
&lt;br /&gt;
Donc, si on imagine une saturation des files d'attente de la classe de trafic AF1, les paquets marqués AF13 seront écartés avant AF12, puis avant AF11.&lt;br /&gt;
&lt;br /&gt;
Idem pour une autre classe de service comme l'AF4, par exemple.&lt;br /&gt;
&lt;br /&gt;
== Traffic Class: ECN == &lt;br /&gt;
Vient ensuite le codage des 2 bits du champ ECN.&lt;br /&gt;
&lt;br /&gt;
ECN comme &amp;quot;Explicit Congestion Notification&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Quatre valeurs sont définies.&lt;br /&gt;
&lt;br /&gt;
Les trois premières indiquent si l'équipement est capable ou pas de gérer la congestion, ECN-Capable Transport.&lt;br /&gt;
&lt;br /&gt;
C'est-à-dire qu'il faut s'appuyer sur une couche TCP pour réguler le trafic.&lt;br /&gt;
&lt;br /&gt;
Et nous avons le codage, CE, Congestion Experience, qui indique que les paquets ont traversé un équipement saturé.&lt;br /&gt;
&lt;br /&gt;
== Contrôle de congestion == &lt;br /&gt;
&lt;br /&gt;
Dans cette animation, nous voyons que le trafic entre A et B traverse trois routeurs intermédiaires.&lt;br /&gt;
&lt;br /&gt;
Tant que le trafic est fluide, les équipements réseau supportent la charge qui est imposée.&lt;br /&gt;
&lt;br /&gt;
Puis le routeur central subit une saturation, les paquets s'accumulent dans les files d'attente, le routeur indique la saturation en marquant &amp;quot;CE&amp;quot; dans les quelques paquets qui peuvent encore être transmis, le mécanisme de régulation se met en oeuvre en B grâce à sa couche de transport TCP.&lt;br /&gt;
&lt;br /&gt;
Les accusés de réception que B renvoie vers A disposeront du marquage du champ ECE, ECN Echo.&lt;br /&gt;
&lt;br /&gt;
Ce champ est disponible dans TCP.&lt;br /&gt;
&lt;br /&gt;
Une fois que la source A interprète cette indication de congestion, elle l'indique en marquant à son tour le bit CWR, &amp;quot;Congestion Window Reduced&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Une fois que A réduit donc sa fenêtre d'anticipation, on doit constater que cette réduction de flux soulage le routeur saturé préalablement. De fait, ce mécanisme permet au routeur d'évacuer ses files d'attentes, puis de reprendre une activité normale.&lt;/div&gt;</summary>
		<author><name>Jprioual</name></author>	</entry>

	</feed>