{
  "chapter": {
    "id": "reseaux",
    "level": "terminale",
    "theme": "Architectures",
    "title": "Réseaux et routage",
    "description": "Modèle TCP/IP, couches du réseau, adresses IP et masques,\nroutage, protocoles de transport (TCP, UDP), services\napplicatifs (HTTP, DNS), notions de sécurité (HTTPS, TLS).",
    "parties": [
      {
        "id": "adressage",
        "title": "Adressage IP et masques"
      },
      {
        "id": "protocoles",
        "title": "Protocoles et encapsulation"
      },
      {
        "id": "routage",
        "title": "Routage : RIP et OSPF"
      },
      {
        "id": "web",
        "title": "Web sécurisé : HTTPS et DNS"
      }
    ],
    "prerequisites": [],
    "references": []
  },
  "questions": [
    {
      "id": "q01",
      "difficulty": 1,
      "skills": [
        "tcp-ip",
        "modele"
      ],
      "title": "Modèle TCP/IP",
      "partie": "protocoles",
      "statement": "Combien de couches comporte le modèle **TCP/IP** ?",
      "options": [
        {
          "text": "$2$ couches",
          "correct": false,
          "feedback": "Erreur : c'est trop peu pour décrire la richesse du\nréseau Internet.\n"
        },
        {
          "text": "$4$ couches",
          "correct": true,
          "feedback": "Bonne réponse : le modèle TCP/IP usuel comporte quatre\ncouches : accès réseau (ou liaison), Internet (réseau),\ntransport, application. C'est une simplification du\nmodèle OSI à sept couches.\n"
        },
        {
          "text": "$5$ couches",
          "correct": false,
          "feedback": "Erreur : certaines présentations distinguent une couche\nphysique en plus, mais le modèle TCP/IP de référence\nen a quatre.\n"
        },
        {
          "text": "$7$ couches",
          "correct": false,
          "feedback": "Erreur : c'est le modèle OSI (théorique). Le modèle\nTCP/IP, plus pragmatique et effectivement utilisé sur\nInternet, n'en a que quatre.\n"
        }
      ],
      "explanation": "Les quatre couches du modèle TCP/IP, du bas vers le haut :\n**Accès réseau** (Ethernet, Wi-Fi), **Internet** (IP),\n**Transport** (TCP), **Application** (HTTP, DNS, etc.)."
    },
    {
      "id": "q02",
      "difficulty": 1,
      "skills": [
        "ip",
        "definition"
      ],
      "title": "Rôle d'une adresse IP",
      "partie": "adressage",
      "statement": "À quoi sert une **adresse IP** ?",
      "options": [
        {
          "text": "À stocker des fichiers",
          "correct": false,
          "feedback": "Erreur : aucun rapport. Une IP est une adresse, pas un\nespace de stockage.\n"
        },
        {
          "text": "À chiffrer les données",
          "correct": false,
          "feedback": "Erreur : le chiffrement est le rôle de protocoles\ncomme TLS, pas d'une adresse IP.\n"
        },
        {
          "text": "Identifier un appareil sur un réseau",
          "correct": true,
          "feedback": "Bonne réponse : une adresse IP identifie une machine\n(ou plus précisément une interface réseau) sur un\nréseau IP. Sur Internet, elle doit être unique au\nniveau global.\n"
        },
        {
          "text": "À sécuriser toutes les communications",
          "correct": false,
          "feedback": "Erreur : la sécurité est assurée par d'autres\nmécanismes (TLS, HTTPS). L'IP est neutre sur le plan\nde la sécurité.\n"
        }
      ],
      "explanation": "Deux versions principales : IPv$4$ (sur $32$ bits, environ\n$4 \\cdot 10^9$ adresses, déjà saturé) et IPv$6$ (sur $128$\nbits, $3{,}4 \\cdot 10^{38}$ adresses, abondance pour des\nsiècles)."
    },
    {
      "id": "q03",
      "difficulty": 1,
      "skills": [
        "ipv4",
        "format"
      ],
      "title": "Format d'une adresse IPv4",
      "partie": "adressage",
      "statement": "Quel est le format d'écriture standard d'une adresse IPv$4$ ?",
      "options": [
        {
          "text": "Huit groupes hexadécimaux séparés par des deux-points",
          "correct": false,
          "feedback": "Erreur : c'est le format d'IPv$6$, pas d'IPv$4$.\n"
        },
        {
          "text": "Six groupes hexadécimaux séparés par des deux-points",
          "correct": false,
          "feedback": "Erreur : c'est plutôt le format des adresses MAC\n($6$ octets en hexadécimal). Les adresses MAC ne sont\npas des IP.\n"
        },
        {
          "text": "Un nombre décimal très long",
          "correct": false,
          "feedback": "Erreur : techniquement, on peut représenter une IP\ncomme un seul entier $32$ bits, mais ce n'est pas la\nnotation standard. La notation pointée est universelle.\n"
        },
        {
          "text": "Quatre nombres entre $0$ et $255$ séparés par des points",
          "correct": true,
          "feedback": "Bonne réponse : chaque nombre représente un octet\n($8$ bits, valeurs $0$ à $255$). Une adresse IPv$4$\nfait donc $32$ bits ($4$ octets).\n"
        }
      ],
      "explanation": "Exemple : `192.168.1.42` est une IPv$4$. Chaque nombre\ntient sur un octet, soit $32$ bits au total. Pour la\nmaison, les adresses du réseau privé commencent par\n`192.168.`, `10.`, ou `172.16.` à `172.31.`."
    },
    {
      "id": "q04",
      "difficulty": 1,
      "skills": [
        "tcp",
        "fiabilite"
      ],
      "title": "Caractéristique du protocole TCP",
      "partie": "protocoles",
      "statement": "Quelle est la caractéristique principale du protocole **TCP** ?",
      "options": [
        {
          "text": "Il chiffre automatiquement toutes les communications",
          "correct": false,
          "feedback": "Erreur : le chiffrement est ajouté par TLS (HTTPS).\nTCP transporte les données telles quelles.\n"
        },
        {
          "text": "Il fonctionne uniquement en local (pas sur Internet)",
          "correct": false,
          "feedback": "Erreur : TCP est le protocole de transport\n**principal** sur Internet, justement.\n"
        },
        {
          "text": "Il garantit une transmission fiable et ordonnée des données",
          "correct": true,
          "feedback": "Bonne réponse : TCP assure que les paquets arrivent à\ndestination, dans le bon ordre, sans duplication. En\ncas de perte, il retransmet automatiquement.\n"
        },
        {
          "text": "Il transmet les paquets sans aucun contrôle",
          "correct": false,
          "feedback": "Erreur : TCP effectue au contraire de nombreux\ncontrôles : accusés de réception, retransmission des\npaquets perdus, remise des données dans l'ordre.\n"
        }
      ],
      "explanation": "TCP est utilisé pour les applications nécessitant la\nfiabilité : web (HTTP), email, transfert de fichiers\n(FTP). L'ordre et l'intégrité y sont essentiels."
    },
    {
      "id": "q05",
      "difficulty": 1,
      "skills": [
        "bit-alterne",
        "fiabilite"
      ],
      "title": "Protocole du bit alterné",
      "partie": "protocoles",
      "statement": "Dans le protocole du bit alterné, l'émetteur joint à chaque message\nun bit valant alternativement $0$ et $1$, et renvoie un message tant\nqu'il n'a pas reçu son accusé de réception. À quoi sert ce bit pour\nle récepteur ?",
      "options": [
        {
          "text": "À vérifier que le contenu du message n'a pas été modifié",
          "correct": false,
          "feedback": "Erreur : un seul bit ne renseigne pas sur le contenu du message. Il\nne dépend que du rang du message, pair ou impair, et ne permet pas\nde détecter une altération.\n"
        },
        {
          "text": "À distinguer un nouveau message d'un message renvoyé",
          "correct": true,
          "feedback": "Bonne réponse : si l'accusé de réception se perd, l'émetteur renvoie\nle même message avec le même bit. Le récepteur, qui attendait\nl'autre valeur, reconnaît un doublon et ne l'enregistre pas deux\nfois.\n"
        },
        {
          "text": "À indiquer au récepteur si le message est chiffré",
          "correct": false,
          "feedback": "Erreur : le bit alterné ne joue aucun rôle dans le chiffrement. Il\nsert uniquement à suivre la succession des messages et de leurs\naccusés de réception.\n"
        },
        {
          "text": "À donner aux routeurs la priorité de passage du message",
          "correct": false,
          "feedback": "Erreur : ce bit est lu par le récepteur, pas par les routeurs, et il\nne fixe aucune priorité. Il permet de savoir si un message a déjà\nété reçu.\n"
        }
      ],
      "explanation": "Le protocole du bit alterné compense les pertes : l'émetteur renvoie\ntout message dont il n'a pas reçu l'accusé de réception, et le bit\npermet au récepteur d'écarter les doublons que ces renvois peuvent\ncréer."
    },
    {
      "id": "q06",
      "difficulty": 1,
      "skills": [
        "dns"
      ],
      "title": "Rôle du DNS",
      "partie": "web",
      "statement": "À quoi sert le protocole **DNS** ?",
      "options": [
        {
          "text": "À transférer des fichiers entre ordinateurs",
          "correct": false,
          "feedback": "Erreur : c'est le rôle de FTP, SFTP ou HTTP, pas de\nDNS.\n"
        },
        {
          "text": "À chiffrer les données échangées sur Internet",
          "correct": false,
          "feedback": "Erreur : c'est le rôle de TLS/HTTPS, pas du DNS.\n"
        },
        {
          "text": "À filtrer les sites malveillants",
          "correct": false,
          "feedback": "Erreur : ce n'est pas la fonction du DNS. Le filtrage des sites\nrelève en général d'autres outils, comme un pare-feu ou un logiciel\nde contrôle parental.\n"
        },
        {
          "text": "Traduire les noms de domaines en adresses IP",
          "correct": true,
          "feedback": "Bonne réponse : DNS est l'« annuaire » d'Internet. Sans\nlui, il faudrait retenir des suites de chiffres pour\nchaque site. Le DNS est interrogé en quelques\nmillisecondes à chaque connexion à un site.\n"
        }
      ],
      "explanation": "DNS signifie *Domain Name System*. Sans DNS, taper `wikipedia.org`\nne mènerait nulle part : il faudrait connaître directement l'adresse\nIP du site. Le DNS est un service réparti sur un grand nombre\nd'ordinateurs dans le monde."
    },
    {
      "id": "q07",
      "difficulty": 1,
      "skills": [
        "http",
        "definition"
      ],
      "title": "Rôle de HTTP",
      "partie": "web",
      "statement": "Que désigne le protocole **HTTP** ?",
      "options": [
        {
          "text": "Hyper Text Tag Protocol",
          "correct": false,
          "feedback": "Erreur : sigle inventé.\n"
        },
        {
          "text": "HyperText Transfer Protocol",
          "correct": true,
          "feedback": "Bonne réponse : HTTP transporte les requêtes du\nnavigateur (`GET /index.html`) et les réponses du\nserveur (le code HTML, les images, etc.).\n"
        },
        {
          "text": "High Throughput Transmission Protocol",
          "correct": false,
          "feedback": "Erreur : sigle inventé.\n"
        },
        {
          "text": "Home Transfer Tool Protocol",
          "correct": false,
          "feedback": "Erreur : sigle inventé.\n"
        }
      ],
      "explanation": "HTTP fonctionne en mode requête/réponse, sans état\n(chaque requête est indépendante). Sa version sécurisée\nest HTTPS (HTTP + TLS), désormais standard sur le Web."
    },
    {
      "id": "q08",
      "difficulty": 1,
      "skills": [
        "routage",
        "definition"
      ],
      "title": "Rôle d'un routeur",
      "partie": "routage",
      "statement": "Quel est le rôle principal d'un **routeur** sur un réseau ?",
      "options": [
        {
          "text": "Chiffrer les communications",
          "correct": false,
          "feedback": "Erreur : ce n'est pas le rôle natif d'un routeur, même\nsi certains routeurs implémentent du VPN.\n"
        },
        {
          "text": "Stocker les fichiers partagés sur le réseau",
          "correct": false,
          "feedback": "Erreur : c'est le rôle d'un serveur de fichiers, pas\nd'un routeur.\n"
        },
        {
          "text": "Servir les pages web à tous les navigateurs",
          "correct": false,
          "feedback": "Erreur : c'est le rôle d'un serveur web (Apache,\nnginx, etc.), pas d'un routeur.\n"
        },
        {
          "text": "Transmettre les paquets entre réseaux",
          "correct": true,
          "feedback": "Bonne réponse : un routeur examine l'adresse IP de\ndestination et consulte sa **table de routage** pour\ndéterminer par quelle interface envoyer le paquet.\n"
        }
      ],
      "explanation": "Internet est un réseau de réseaux. Les routeurs en sont\nles nœuds intermédiaires : ils relient les sous-réseaux\nentre eux et acheminent les paquets de proche en proche\nvers leur destination."
    },
    {
      "id": "q09",
      "difficulty": 1,
      "skills": [
        "paquet"
      ],
      "title": "Notion de paquet",
      "partie": "protocoles",
      "statement": "Pourquoi les données échangées sur Internet sont-elles\ndécoupées en **paquets** ?",
      "options": [
        {
          "text": "Pour augmenter la vitesse de transmission au-delà de la limite physique du câble",
          "correct": false,
          "feedback": "Erreur : la vitesse est limitée par le matériel. Le\npaquetage n'augmente pas la bande passante intrinsèque.\n"
        },
        {
          "text": "Parce que les routeurs ne peuvent traiter que de petits volumes",
          "correct": false,
          "feedback": "Erreur : les routeurs sont conçus pour traiter\nbeaucoup de paquets, mais en réalité c'est le concept\narchitectural qui motive la fragmentation.\n"
        },
        {
          "text": "Partager le réseau entre flux et limiter l'impact d'une perte",
          "correct": true,
          "feedback": "Bonne réponse : la commutation de paquets permet à\nplusieurs flux de coexister sur les mêmes liens, et\nen cas de perte d'un paquet, on ne retransmet que\nlui (pas tout le message).\n"
        },
        {
          "text": "Pour chiffrer les données, chaque paquet étant codé séparément",
          "correct": false,
          "feedback": "Erreur : le découpage en paquets n'est pas un\nmécanisme de chiffrement. La confidentialité relève\nde protocoles comme TLS, indépendants de la\nfragmentation.\n"
        }
      ],
      "explanation": "Cette idée fondamentale (Paul Baran, $1960$) a permis le\ndéveloppement d'Internet. Les paquets peuvent prendre des\nchemins différents et arriver dans le désordre, TCP les\nréordonne au final."
    },
    {
      "id": "q10",
      "difficulty": 1,
      "skills": [
        "https",
        "tls"
      ],
      "title": "Différence HTTP / HTTPS",
      "partie": "web",
      "statement": "Quelle est la différence entre HTTP et HTTPS ?",
      "options": [
        {
          "text": "HTTPS est utilisé uniquement pour le e-commerce",
          "correct": false,
          "feedback": "Erreur : HTTPS est désormais utilisé partout, y compris\npour la simple consultation de pages publiques.\n"
        },
        {
          "text": "HTTPS chiffre les communications via TLS",
          "correct": true,
          "feedback": "Bonne réponse : HTTPS, c'est HTTP complété par une couche de\nchiffrement, TLS, qui a succédé à SSL. Les données échangées entre\nle navigateur et le serveur sont chiffrées pendant leur transport.\n"
        },
        {
          "text": "HTTPS fonctionne sans IP",
          "correct": false,
          "feedback": "Erreur : HTTPS repose sur les mêmes protocoles\nréseau (IP, TCP) que HTTP. Seule la sécurité change.\n"
        },
        {
          "text": "HTTPS est plus rapide",
          "correct": false,
          "feedback": "Erreur : HTTPS est légèrement plus lent (à cause du\nchiffrement), même si la différence est négligeable\naujourd'hui. Le bénéfice est la sécurité.\n"
        }
      ],
      "explanation": "Depuis $2018$, les navigateurs signalent les sites en HTTP (sans S)\ncomme « Non sécurisé ». HTTPS est devenu la norme, y compris pour la\nsimple consultation de pages publiques."
    },
    {
      "id": "q11",
      "difficulty": 2,
      "skills": [
        "masque",
        "adressage"
      ],
      "title": "Masque de sous-réseau",
      "partie": "adressage",
      "statement": "Que représente le masque de sous-réseau `255.255.255.0` ?",
      "options": [
        {
          "text": "Une adresse IP particulière",
          "correct": false,
          "feedback": "Erreur : un masque sert à séparer la partie réseau\nde la partie hôte d'une adresse IP. Ce n'est pas une\nadresse à part entière.\n"
        },
        {
          "text": "$24$ bits pour le réseau, $8$ bits pour l'hôte",
          "correct": true,
          "feedback": "Bonne réponse : `255.255.255.0` correspond à $24$ bits\nà $1$ et $8$ bits à $0$. Les bits à $1$ désignent la\npartie réseau, les bits à $0$ la partie machine. Avec\n$8$ bits pour les machines, on peut adresser jusqu'à\n$254$ hôtes ($2^{8} - 2$, en retirant l'adresse réseau\net l'adresse de diffusion).\n"
        },
        {
          "text": "Un identifiant de routeur",
          "correct": false,
          "feedback": "Erreur : un masque est un motif binaire, pas un\nidentifiant matériel.\n"
        },
        {
          "text": "La quantité maximale de bande passante autorisée",
          "correct": false,
          "feedback": "Erreur : le masque n'a rien à voir avec la bande\npassante.\n"
        }
      ],
      "explanation": "Notation alternative dite **CIDR** : `192.168.1.0/24`\ndésigne un réseau avec un masque de $24$ bits. Très\nutilisée en pratique pour sa concision.",
      "variants": [
        {
          "statement": "Que représente le masque de sous-réseau `255.255.255.0` ?",
          "options": [
            {
              "text": "Une adresse IP particulière",
              "correct": false,
              "feedback": "Erreur : un masque sert à séparer la partie réseau\nde la partie hôte d'une adresse IP. Ce n'est pas une\nadresse à part entière.\n"
            },
            {
              "text": "$24$ bits pour le réseau, $8$ bits pour l'hôte",
              "correct": true,
              "feedback": "Bonne réponse : `255.255.255.0` correspond à $24$ bits\nà $1$ et $8$ bits à $0$. Les bits à $1$ désignent la\npartie réseau, les bits à $0$ la partie machine. Avec\n$8$ bits pour les machines, on peut adresser jusqu'à\n$254$ hôtes ($2^{8} - 2$, en retirant l'adresse réseau\net l'adresse de diffusion).\n"
            },
            {
              "text": "Un identifiant de routeur",
              "correct": false,
              "feedback": "Erreur : un masque est un motif binaire, pas un\nidentifiant matériel.\n"
            },
            {
              "text": "La quantité maximale de bande passante autorisée",
              "correct": false,
              "feedback": "Erreur : le masque n'a rien à voir avec la bande\npassante.\n"
            }
          ],
          "explanation": "Notation alternative dite **CIDR** : `192.168.1.0/24`\ndésigne un réseau avec un masque de $24$ bits. Très\nutilisée en pratique pour sa concision."
        },
        {
          "statement": "Que représente le masque de sous-réseau `255.255.0.0` ?",
          "options": [
            {
              "text": "Une adresse IP particulière",
              "correct": false,
              "feedback": "Erreur : un masque sert à séparer la partie réseau\nde la partie hôte d'une adresse IP. Ce n'est pas une\nadresse à part entière.\n"
            },
            {
              "text": "$16$ bits pour le réseau, $16$ bits pour l'hôte",
              "correct": true,
              "feedback": "Bonne réponse : `255.255.0.0` correspond à $16$ bits\nà $1$ et $16$ bits à $0$. Les bits à $1$ désignent la\npartie réseau, les bits à $0$ la partie machine. Avec\n$16$ bits pour les machines, on peut adresser jusqu'à\n$65\\,534$ hôtes ($2^{16} - 2$, en retirant l'adresse réseau\net l'adresse de diffusion).\n"
            },
            {
              "text": "Un identifiant de routeur",
              "correct": false,
              "feedback": "Erreur : un masque est un motif binaire, pas un\nidentifiant matériel.\n"
            },
            {
              "text": "La quantité maximale de bande passante autorisée",
              "correct": false,
              "feedback": "Erreur : le masque n'a rien à voir avec la bande\npassante.\n"
            }
          ],
          "explanation": "Notation alternative dite **CIDR** : `192.168.1.0/16`\ndésigne un réseau avec un masque de $16$ bits. Très\nutilisée en pratique pour sa concision."
        },
        {
          "statement": "Que représente le masque de sous-réseau `255.255.255.128` ?",
          "options": [
            {
              "text": "Une adresse IP particulière",
              "correct": false,
              "feedback": "Erreur : un masque sert à séparer la partie réseau\nde la partie hôte d'une adresse IP. Ce n'est pas une\nadresse à part entière.\n"
            },
            {
              "text": "$25$ bits pour le réseau, $7$ bits pour l'hôte",
              "correct": true,
              "feedback": "Bonne réponse : `255.255.255.128` correspond à $25$ bits\nà $1$ et $7$ bits à $0$. Les bits à $1$ désignent la\npartie réseau, les bits à $0$ la partie machine. Avec\n$7$ bits pour les machines, on peut adresser jusqu'à\n$126$ hôtes ($2^{7} - 2$, en retirant l'adresse réseau\net l'adresse de diffusion).\n"
            },
            {
              "text": "Un identifiant de routeur",
              "correct": false,
              "feedback": "Erreur : un masque est un motif binaire, pas un\nidentifiant matériel.\n"
            },
            {
              "text": "La quantité maximale de bande passante autorisée",
              "correct": false,
              "feedback": "Erreur : le masque n'a rien à voir avec la bande\npassante.\n"
            }
          ],
          "explanation": "Notation alternative dite **CIDR** : `192.168.1.0/25`\ndésigne un réseau avec un masque de $25$ bits. Très\nutilisée en pratique pour sa concision."
        }
      ]
    },
    {
      "id": "q12",
      "difficulty": 2,
      "skills": [
        "bit-alterne",
        "accuse-reception"
      ],
      "title": "Accusé de réception perdu",
      "partie": "protocoles",
      "statement": "Avec le protocole du bit alterné, Ana envoie à Bruno un message\nportant le bit $0$. Bruno le reçoit et renvoie un accusé de\nréception portant le bit $0$, mais cet accusé se perd. Ne recevant\nrien, Ana renvoie le même message, toujours avec le bit $0$. Que\nfait Bruno ?",
      "options": [
        {
          "text": "Il l'enregistre comme un nouveau message, qui figure donc deux fois",
          "correct": false,
          "feedback": "Erreur : Bruno attendait un message portant le bit $1$. Recevoir de\nnouveau le bit $0$ lui indique qu'il s'agit d'un renvoi, qu'il ne\ndoit pas enregistrer une seconde fois.\n"
        },
        {
          "text": "Il l'ignore sans répondre, puisqu'il a déjà reçu ce message",
          "correct": false,
          "feedback": "Erreur : le doublon est bien repéré, mais sans nouvel accusé de\nréception Ana ne saurait jamais que le message est arrivé et le\nrenverrait sans fin. Bruno doit confirmer de nouveau la réception.\n"
        },
        {
          "text": "Il l'écarte comme doublon et renvoie l'accusé de réception $0$",
          "correct": true,
          "feedback": "Bonne réponse : le bit $0$ montre à Bruno qu'il s'agit du message\ndéjà reçu, qu'il n'enregistre pas une seconde fois. Il renvoie\nl'accusé $0$, qui permet à Ana de passer au message suivant, avec le\nbit $1$.\n"
        },
        {
          "text": "Il met fin à la communication, un accusé perdu ne pouvant être compensé",
          "correct": false,
          "feedback": "Erreur : le protocole est précisément conçu pour compenser les\npertes, de messages comme d'accusés de réception, grâce aux renvois\net au bit qui repère les doublons.\n"
        }
      ],
      "explanation": "Une perte d'accusé de réception provoque un renvoi. Le bit alterné\npermet au récepteur de reconnaître ce renvoi : il écarte le doublon\net confirme de nouveau, si bien que l'émetteur peut poursuivre avec\nle message suivant."
    },
    {
      "id": "q13",
      "difficulty": 2,
      "skills": [
        "dns",
        "fonctionnement"
      ],
      "title": "Résolution DNS",
      "partie": "web",
      "statement": "Lorsque vous tapez `www.example.com` dans votre navigateur,\nqu'est-ce qui se passe en premier ?",
      "options": [
        {
          "text": "Le navigateur fait une requête DNS pour l'IP",
          "correct": true,
          "feedback": "Bonne réponse : la première étape est toujours la\nrésolution DNS. Sans elle, le navigateur ne saurait\npas vers quelle adresse envoyer ses paquets TCP.\n"
        },
        {
          "text": "Le routeur lit le contenu HTML",
          "correct": false,
          "feedback": "Erreur : le routeur ne décode pas le contenu HTTP. Il\nne fait que router les paquets IP.\n"
        },
        {
          "text": "Le navigateur établit une connexion TCP avec `example.com` directement",
          "correct": false,
          "feedback": "Erreur : pour établir une connexion TCP, il faut\nd'abord connaître l'**adresse IP** correspondante,\nce qui est résolu par DNS.\n"
        },
        {
          "text": "Le navigateur envoie un email au serveur",
          "correct": false,
          "feedback": "Erreur : aucune communication par email dans le\nprocessus de chargement d'une page web.\n"
        }
      ],
      "explanation": "Une fois l'IP obtenue, le navigateur ouvre une connexion\nTCP (port $443$ pour HTTPS), négocie TLS, puis envoie\nla requête HTTP. La résolution DNS est généralement\nmise en cache pour accélérer les visites suivantes."
    },
    {
      "id": "q14",
      "difficulty": 2,
      "skills": [
        "paquets",
        "fiabilite"
      ],
      "title": "Intérêt du découpage en paquets",
      "partie": "protocoles",
      "statement": "Un fichier de $50$ Mo est envoyé sur Internet découpé en milliers de\npaquets plutôt qu'en un seul bloc. Quel avantage ce découpage\napporte-t-il ?",
      "options": [
        {
          "text": "Le fichier occupe moins d'octets, chaque paquet étant compressé",
          "correct": false,
          "feedback": "Erreur : le découpage ne compresse rien. Chaque paquet ajoute même\nun en-tête avec les adresses, si bien que le total transmis dépasse\nlégèrement la taille du fichier.\n"
        },
        {
          "text": "En cas de perte, seuls les paquets manquants sont renvoyés",
          "correct": true,
          "feedback": "Bonne réponse : si un paquet se perd, TCP redemande ce seul paquet\nau lieu du fichier entier. Le découpage permet aussi à plusieurs\ncommunications de partager les mêmes liaisons, leurs paquets\ns'intercalant.\n"
        },
        {
          "text": "Tous les paquets suivent la même route, ce qui garantit leur ordre",
          "correct": false,
          "feedback": "Erreur : les paquets sont routés individuellement et peuvent suivre\ndes routes différentes. Ils arrivent parfois dans le désordre, et\nc'est TCP qui les remet dans l'ordre.\n"
        },
        {
          "text": "Chaque paquet isolé est illisible, ce qui protège le fichier",
          "correct": false,
          "feedback": "Erreur : un paquet transporte un morceau du fichier tel quel, sauf\nsi la communication est chiffrée, par exemple avec HTTPS. Le\ndécoupage n'apporte aucune confidentialité.\n"
        }
      ],
      "explanation": "Découper les données en paquets rend la transmission plus robuste et\nplus souple : une perte ne coûte que le renvoi d'un paquet, et les\nliaisons sont partagées entre de nombreuses communications."
    },
    {
      "id": "q15",
      "difficulty": 2,
      "skills": [
        "ospf",
        "rip",
        "metrique"
      ],
      "title": "Des coûts OSPF tous égaux",
      "partie": "routage",
      "statement": "Dans le réseau d'un campus, toutes les liaisons ont reçu le même coût\nOSPF, égal à $10$. On compare, entre deux routeurs, la route choisie\npar OSPF et celle que choisirait RIP. Que peut-on affirmer ?",
      "options": [
        {
          "text": "Les deux routes comptent le même nombre de liaisons",
          "correct": true,
          "feedback": "Bonne réponse : avec un coût de $10$ par liaison, une route de $k$\nliaisons coûte $10k$. Minimiser le coût revient alors à minimiser le\nnombre de liaisons, exactement comme RIP.\n"
        },
        {
          "text": "La route OSPF compte toujours plus de liaisons que la route RIP",
          "correct": false,
          "feedback": "Erreur : OSPF préfère parfois une route plus longue quand ses\nliaisons sont moins chères. Ici toutes coûtent autant, donc la route\nla moins chère est aussi celle qui a le moins de liaisons.\n"
        },
        {
          "text": "OSPF ne peut plus choisir, toutes les routes ayant le même coût",
          "correct": false,
          "feedback": "Erreur : ce sont les liaisons qui ont le même coût, pas les routes.\nUne route de $3$ liaisons coûte $30$, une route de $2$ liaisons\n$20$ : OSPF peut toujours les départager.\n"
        },
        {
          "text": "La route OSPF coûte $10$, quelle que soit la destination",
          "correct": false,
          "feedback": "Erreur : $10$ est le coût d'une liaison. Le coût d'une route est la\nsomme des coûts de ses liaisons, soit $10$ fois leur nombre.\n"
        }
      ],
      "explanation": "Quand toutes les liaisons ont le même coût, le coût d'une route est\nproportionnel à son nombre de liaisons : OSPF et RIP retiennent\nalors des routes aussi courtes l'une que l'autre. Les deux protocoles\nne divergent que si les coûts des liaisons diffèrent."
    },
    {
      "id": "q16",
      "difficulty": 2,
      "skills": [
        "routage",
        "table"
      ],
      "title": "Table de routage",
      "partie": "routage",
      "statement": "Que contient la **table de routage** d'un routeur ?",
      "options": [
        {
          "text": "Les fichiers cachés sur le réseau",
          "correct": false,
          "feedback": "La notion de « fichier\ncaché » relève des systèmes\nde fichiers, pas du routage.\nUn routeur ne manipule pas\nde fichiers, il achemine\ndes paquets IP.\n"
        },
        {
          "text": "Les plages d'IP et leurs interfaces de sortie",
          "correct": true,
          "feedback": "Bonne réponse : pour chaque paquet, le routeur cherche dans sa table\nla route correspondant à l'adresse IP de destination. La table peut\nêtre remplie à la main (routage statique) ou par des protocoles\ndynamiques comme RIP ou OSPF.\n"
        },
        {
          "text": "La liste des sites web autorisés",
          "correct": false,
          "feedback": "Erreur : un routeur ne filtre pas par site. C'est\nle rôle d'un pare-feu ou d'un proxy.\n"
        },
        {
          "text": "La liste complète de tous les utilisateurs connectés",
          "correct": false,
          "feedback": "Erreur : un routeur n'a pas la notion d'utilisateur.\nIl ne traite que des paquets IP.\n"
        }
      ],
      "explanation": "Le **routage** est la décision « où envoyer ce paquet\nmaintenant ». Sur Internet, les paquets traversent\ntypiquement entre $10$ et $30$ routeurs avant\nd'atteindre leur destination."
    },
    {
      "id": "q17",
      "difficulty": 2,
      "skills": [
        "tcp",
        "garantie-temporelle"
      ],
      "title": "Fiabilité sans garantie de délai",
      "partie": "protocoles",
      "statement": "Pendant une visioconférence dont les données sont transportées par\nTCP, un paquet se perd. TCP le redemande et finit par le recevoir.\nPourquoi l'image peut-elle tout de même se figer un instant ?",
      "options": [
        {
          "text": "Parce que TCP abandonne les paquets perdus lors d'une visioconférence",
          "correct": false,
          "feedback": "Erreur : l'énoncé le montre, TCP redemande le paquet perdu et finit\npar le recevoir. C'est justement l'attente de ce renvoi qui retarde\nl'affichage.\n"
        },
        {
          "text": "Parce que le paquet renvoyé doit être déchiffré avec une autre clé",
          "correct": false,
          "feedback": "Erreur : un renvoi ne change rien au chiffrement, le paquet est\ntraité comme les autres. Le retard vient du temps écoulé avant\nl'arrivée du paquet renvoyé.\n"
        },
        {
          "text": "Parce que TCP garantit l'arrivée des paquets, pas leur délai",
          "correct": true,
          "feedback": "Bonne réponse : TCP fiabilise la transmission en redemandant les\npaquets manquants, mais rien ne garantit quand ils arriveront. En\nattendant le renvoi, la suite de la vidéo ne peut pas être affichée\ndans l'ordre.\n"
        },
        {
          "text": "Parce que les routeurs ralentissent en priorité les paquets vidéo",
          "correct": false,
          "feedback": "Erreur : un routeur choisit la route d'un paquet d'après son adresse\nde destination, sans examiner s'il contient de la vidéo. Le retard\nvient ici de la perte et du renvoi du paquet.\n"
        }
      ],
      "explanation": "Internet et TCP ne donnent aucune garantie temporelle sur l'arrivée\ndes paquets : une transmission fiable peut être lente. Pour une\nvidéo en direct, perdre une image isolée gêne souvent moins que\nd'attendre un paquet en retard."
    },
    {
      "id": "q18",
      "difficulty": 2,
      "skills": [
        "encapsulation"
      ],
      "title": "Encapsulation",
      "partie": "protocoles",
      "statement": "Lors de l'envoi d'une requête HTTP, comment les couches du\nmodèle TCP/IP **encapsulent**-elles les données ?",
      "options": [
        {
          "text": "Toutes les données sont compressées par la couche application",
          "correct": false,
          "feedback": "Erreur : la compression peut être ajoutée mais ce\nn'est pas le mécanisme d'encapsulation.\n"
        },
        {
          "text": "Chaque couche ajoute son en-tête autour des données reçues de la couche supérieure",
          "correct": true,
          "feedback": "Bonne réponse : la couche application crée le message\nHTTP, TCP l'enveloppe avec son en-tête (port,\nnuméro de séquence), IP ajoute son en-tête (adresses\nIP), et la couche liaison ajoute son en-tête (MAC,\ncontrôle d'erreur). À la réception, c'est l'inverse\n(désencapsulation).\n"
        },
        {
          "text": "Chaque couche supprime des données pour gagner de la place",
          "correct": false,
          "feedback": "Erreur : les couches **ajoutent** des en-têtes, elles\nne suppriment rien.\n"
        },
        {
          "text": "Les couches communiquent indépendamment, sans transformer les données",
          "correct": false,
          "feedback": "Erreur : justement, l'encapsulation ajoute des\nen-têtes successifs.\n"
        }
      ],
      "explanation": "L'encapsulation est la base du modèle en couches :\nchaque couche ne se préoccupe que de son rôle, sans\nsavoir ce qu'il y a dans les données « au-dessus ». À\nl'arrivée, chaque couche traite et retire son en-tête,\ntransmettant le contenu à la couche suivante."
    },
    {
      "id": "q19",
      "difficulty": 2,
      "skills": [
        "ospf",
        "graphe",
        "modelisation"
      ],
      "title": "Le réseau vu comme un graphe",
      "partie": "routage",
      "statement": "Pour calculer les routes OSPF d'un réseau d'entreprise, on le\nmodélise par un graphe pondéré. Quelle modélisation convient ?",
      "options": [
        {
          "text": "Sommets : routeurs ; arêtes : liaisons ; poids : coûts OSPF des liaisons",
          "correct": true,
          "feedback": "Bonne réponse : chaque routeur devient un sommet, chaque liaison une\narête, pondérée par son coût. La route OSPF entre deux routeurs est\nalors un chemin de poids total minimal dans ce graphe.\n"
        },
        {
          "text": "Sommets : liaisons ; arêtes : routeurs ; poids : débits des liaisons",
          "correct": false,
          "feedback": "Erreur : les rôles sont inversés. Une liaison relie deux routeurs,\ncomme une arête relie deux sommets : ce sont les routeurs qui\nforment les sommets.\n"
        },
        {
          "text": "Sommets : routeurs ; arêtes : liaisons ; poids : $1$ pour chaque liaison",
          "correct": false,
          "feedback": "Erreur : donner le poids $1$ à chaque liaison revient à compter les\nsauts, ce qui modélise RIP. OSPF additionne les coûts des liaisons :\nce sont eux qui servent de poids.\n"
        },
        {
          "text": "Sommets : paquets ; arêtes : routes suivies ; poids : tailles des paquets",
          "correct": false,
          "feedback": "Erreur : les paquets circulent dans le réseau mais n'en forment pas\nla structure. Le graphe décrit l'infrastructure, routeurs et\nliaisons, sur laquelle on cherche des chemins.\n"
        }
      ],
      "explanation": "Routeurs et liaisons forment un graphe, pondéré par les coûts pour\nOSPF. Choisir une route revient à chercher un chemin de poids total\nminimal ; pour RIP, où chaque liaison compte pour $1$, un chemin au\nnombre d'arêtes minimal."
    },
    {
      "id": "q20",
      "difficulty": 2,
      "skills": [
        "protocoles",
        "web"
      ],
      "title": "Pile de protocoles d'une connexion HTTPS",
      "partie": "protocoles",
      "statement": "Lors d'une consultation d'un site en HTTPS, quelle est\nl'ordre **de bas en haut** des principaux protocoles\nutilisés ?",
      "options": [
        {
          "text": "HTTP, IP, TCP, MAC",
          "correct": false,
          "feedback": "Erreur : ordre désorganisé. La pile va de la\nphysique vers l'applicatif.\n"
        },
        {
          "text": "Ethernet, IP, TCP, TLS, HTTP",
          "correct": true,
          "feedback": "Bonne réponse : couche liaison (Ethernet ou Wi-Fi),\ncouche réseau (IP), couche transport (TCP), couche\nsécurité (TLS), couche application (HTTP). La\nsécurité TLS s'insère entre TCP et HTTP.\n"
        },
        {
          "text": "HTTP, TCP, IP, Ethernet",
          "correct": false,
          "feedback": "Erreur : ordre de **haut en bas** ici. La question\ndemande de bas en haut.\n"
        },
        {
          "text": "DNS, Ethernet, IP, HTTP",
          "correct": false,
          "feedback": "Erreur : ordre incorrect. DNS est un service\napplicatif (au-dessus), pas un protocole de couche\nbasse.\n"
        }
      ],
      "explanation": "Cette pile correspond aux quatre/cinq couches du modèle\nTCP/IP. Chaque protocole est responsable d'un aspect\nbien défini : transmission physique, adressage,\ntransport fiable, sécurité, application."
    },
    {
      "id": "q21",
      "difficulty": 3,
      "skills": [
        "routage",
        "decision"
      ],
      "title": "Choix de route",
      "partie": "routage",
      "statement": "Lorsqu'un paquet doit être envoyé à `8.8.8.8` (DNS de\nGoogle), comment le routeur de votre maison décide-t-il où\nl'envoyer ?",
      "options": [
        {
          "text": "Il utilise la route par défaut vers la box du FAI",
          "correct": true,
          "feedback": "Bonne réponse : pour des destinations qui ne sont pas\ndans le réseau local, le routeur utilise la « route\npar défaut » (`0.0.0.0/0`), qui pointe vers le\nmodem/box du FAI. Le paquet remonte ensuite la\nhiérarchie des routeurs jusqu'à atteindre Google.\n"
        },
        {
          "text": "Il chiffre le paquet et le stocke localement",
          "correct": false,
          "feedback": "Erreur : un routeur n'a pas vocation à stocker les\npaquets à long terme.\n"
        },
        {
          "text": "Il refuse les paquets qui ne sont pas pour le réseau local",
          "correct": false,
          "feedback": "Erreur : le rôle d'un routeur est précisément de\npermettre l'accès aux réseaux distants.\n"
        },
        {
          "text": "Il envoie le paquet à toutes les machines du réseau",
          "correct": false,
          "feedback": "Erreur : ce serait de la diffusion générale,\nce qui ne se fait pas pour des paquets de\npoint à point comme ici.\n"
        }
      ],
      "explanation": "Le routeur cherche dans sa table une ligne correspondant au réseau\nde l'adresse de destination. Si aucune ligne particulière ne\nconvient, comme pour `8.8.8.8` vue depuis la maison, il utilise la\nroute par défaut."
    },
    {
      "id": "q22",
      "difficulty": 3,
      "skills": [
        "https",
        "chiffrement-asymetrique",
        "cle-symetrique"
      ],
      "title": "Deux chiffrements dans HTTPS",
      "partie": "web",
      "statement": "Au début d'une connexion HTTPS, le navigateur chiffre avec la clé\npublique du serveur une clé symétrique qu'il vient de choisir. Toute\nla suite des échanges est ensuite chiffrée avec cette clé\nsymétrique. Pourquoi ne pas chiffrer toute la communication avec la\nclé publique du serveur ?",
      "options": [
        {
          "text": "Le chiffrement asymétrique est bien plus lent que le symétrique",
          "correct": true,
          "feedback": "Bonne réponse : les calculs du chiffrement asymétrique sont\ncoûteux. On ne l'utilise que pour transmettre de façon sûre une\npetite donnée, la clé symétrique ; le reste de la communication\nprofite ensuite d'un chiffrement symétrique rapide.\n"
        },
        {
          "text": "Le serveur ne pourrait pas déchiffrer ce qui est chiffré avec sa clé publique",
          "correct": false,
          "feedback": "Erreur : ce qui est chiffré avec la clé publique du serveur se\ndéchiffre avec sa clé privée, que lui seul possède. Le serveur lit\ndonc parfaitement la clé symétrique envoyée.\n"
        },
        {
          "text": "Une clé publique ne peut servir qu'une seule fois avant d'expirer",
          "correct": false,
          "feedback": "Erreur : une clé publique est faite pour être diffusée et réutilisée\npar tous ceux qui veulent écrire au serveur. Ce n'est pas une limite\nd'usage qui impose la clé symétrique.\n"
        },
        {
          "text": "La clé symétrique ne circule jamais sur le réseau, elle est donc plus sûre",
          "correct": false,
          "feedback": "Erreur : la clé symétrique circule bel et bien, une fois, chiffrée\navec la clé publique du serveur. C'est ce chiffrement asymétrique\nqui la protège pendant son transport.\n"
        }
      ],
      "explanation": "HTTPS combine les deux familles de chiffrement : l'asymétrique, lent\nmais sans secret partagé au départ, sert à transmettre une clé\nsymétrique ; le symétrique, rapide, chiffre ensuite tous les échanges\navec cette clé commune."
    },
    {
      "id": "q23",
      "difficulty": 3,
      "skills": [
        "latence-debit"
      ],
      "title": "Latence vs débit",
      "partie": "protocoles",
      "statement": "Quelle est la différence entre **latence** et **débit** sur\nun réseau ?",
      "options": [
        {
          "text": "Aucune, les deux termes sont synonymes",
          "correct": false,
          "feedback": "Erreur : ce sont deux notions distinctes et\nindépendantes.\n"
        },
        {
          "text": "La latence est un temps, le débit un volume par seconde",
          "correct": true,
          "feedback": "Bonne réponse : on peut avoir un haut débit avec une\nlatence élevée (par exemple, avec un satellite). À\nl'inverse, une connexion très réactive mais peu\ndébitante (un câble local lent). Les deux comptent\nselon l'usage.\n"
        },
        {
          "text": "La latence ne concerne que les vidéos",
          "correct": false,
          "feedback": "Erreur : la latence concerne toute communication.\nElle est cruciale pour les jeux, la voix sur IP, les\nrequêtes interactives.\n"
        },
        {
          "text": "La latence est en bits par seconde, le débit en millisecondes",
          "correct": false,
          "feedback": "Erreur : c'est l'inverse. La latence se mesure en\ntemps (millisecondes), le débit en données par\ntemps (Mbit/s).\n"
        }
      ],
      "explanation": "Pour télécharger un gros fichier : le débit prime. Pour\njouer à un jeu en ligne ou faire un appel vidéo : la\nlatence prime. Une « bonne » connexion combine débit\nélevé et latence basse."
    },
    {
      "id": "q24",
      "difficulty": 3,
      "skills": [
        "securite-reseau"
      ],
      "title": "Limite de la sécurité réseau",
      "partie": "web",
      "statement": "HTTPS chiffre les communications entre le navigateur et le\nserveur. Cela suffit-il à empêcher tout fournisseur d'accès\nInternet (FAI) de savoir quels sites vous visitez ?",
      "options": [
        {
          "text": "Oui, HTTPS empêche totalement le FAI de voir ce qui se passe",
          "correct": false,
          "feedback": "Erreur : HTTPS chiffre le **contenu** des échanges, mais chaque\npaquet doit garder lisible l'adresse IP du serveur, sans quoi les\nrouteurs ne sauraient pas où l'acheminer.\n"
        },
        {
          "text": "Non, HTTPS ne sert à rien",
          "correct": false,
          "feedback": "Erreur : HTTPS est très utile, il protège le contenu des échanges\n(pages, formulaires, mots de passe). Il a simplement des limites.\n"
        },
        {
          "text": "Oui, car l'adresse IP du serveur est chiffrée avec le contenu",
          "correct": false,
          "feedback": "Erreur : l'adresse de destination ne peut pas être chiffrée, car\nchaque routeur la lit pour choisir la route du paquet. Seul le\ncontenu transporté est chiffré.\n"
        },
        {
          "text": "Non : l'adresse IP du serveur reste lisible dans chaque paquet",
          "correct": true,
          "feedback": "Bonne réponse : HTTPS chiffre le contenu, mais les routeurs doivent\nlire l'adresse IP de destination de chaque paquet. Le fournisseur\nd'accès sait donc quels serveurs sont contactés, sans voir ce qui y\nest échangé.\n"
        }
      ],
      "explanation": "Le chiffrement de HTTPS protège ce qui est transporté, pas les\nadresses nécessaires au routage. Masquer les serveurs contactés\ndemande d'autres dispositifs, qui font transiter les paquets par un\nintermédiaire."
    },
    {
      "id": "q25",
      "difficulty": 3,
      "skills": [
        "synthese",
        "pile"
      ],
      "title": "Suivi d'un paquet de bout en bout",
      "partie": "routage",
      "statement": "Quand vous envoyez une requête HTTPS depuis votre\nsmartphone à un serveur à l'autre bout du monde, combien\nde **routeurs** votre paquet traverse-t-il typiquement ?",
      "options": [
        {
          "text": "Entre $10$ et $30$ routeurs",
          "correct": true,
          "feedback": "Bonne réponse : la commande `traceroute` (`tracert` sous Windows)\naffiche la liste des routeurs traversés. Le paquet passe par la box,\nles routeurs du fournisseur d'accès, ceux des opérateurs\nintermédiaires, puis ceux du réseau du serveur.\n"
        },
        {
          "text": "Un seul, celui de la box",
          "correct": false,
          "feedback": "Erreur : la box est juste le premier saut. Le paquet\ntraverse ensuite les routeurs du FAI, puis ceux des\nopérateurs de transit, etc.\n"
        },
        {
          "text": "Aucun, le paquet va directement à destination",
          "correct": false,
          "feedback": "Erreur : Internet est un réseau de réseaux. Sauf cas\ntrès local, le paquet traverse de nombreux\nintermédiaires.\n"
        },
        {
          "text": "Plusieurs millions, un par utilisateur du Web",
          "correct": false,
          "feedback": "Erreur : le nombre de sauts est très inférieur. Les\nrouteurs sont organisés en hiérarchie efficace.\n"
        }
      ],
      "explanation": "Il s'agit de la beauté d'Internet : pas de chemin\npré-établi, chaque routeur prend une décision locale\nbasée sur sa table de routage. Le paquet « trouve » son\nchemin, et peut même prendre une autre route si l'une\ntombe en panne."
    },
    {
      "id": "q26",
      "difficulty": 2,
      "skills": [
        "adressage",
        "denombrement"
      ],
      "title": "Nombre d'adresses d'un réseau /24",
      "partie": "adressage",
      "statement": "Le réseau `192.168.10.0/24` (masque `255.255.255.0`) regroupe les\nadresses dont les $24$ premiers bits sont ceux de `192.168.10.0`.\nCombien d'**adresses** différentes contient-il ?",
      "options": [
        {
          "text": "$256$ adresses",
          "correct": true,
          "feedback": "Bonne réponse : la partie hôte compte $32 - 24 = 8$ bits, qui\nprennent $2^{8} = 256$ valeurs, de `192.168.10.0` à `192.168.10.255`.\n"
        },
        {
          "text": "$1\\,024$ adresses",
          "correct": false,
          "feedback": "Erreur : $2^{10} = 1\\,024$ correspondrait à $10$ bits de partie hôte,\ndonc à un préfixe `/22`. Avec `/24`, il reste $8$ bits, soit $256$\nadresses.\n"
        },
        {
          "text": "$255$ adresses",
          "correct": false,
          "feedback": "Erreur : tu calcules $255 - 0$, ce qui oublie une adresse. De la\npremière à la dernière incluses, on compte $256$ valeurs, autant que de combinaisons\nde $8$ bits.\n"
        },
        {
          "text": "$24$ adresses",
          "correct": false,
          "feedback": "Erreur : $24$ est le nombre de bits de la partie réseau, pas un\nnombre d'adresses. La partie hôte compte $32 - 24 = 8$ bits, soit\n$2^{8} = 256$ adresses.\n"
        }
      ],
      "explanation": "Pour un préfixe `/n`, la partie hôte compte $32 - n$ bits et le\nréseau regroupe $2^{32 - n}$ adresses : $256$ pour `/24`, $65536$\npour `/16`.",
      "variants": [
        {
          "statement": "Le réseau `192.168.10.0/24` (masque `255.255.255.0`) regroupe les\nadresses dont les $24$ premiers bits sont ceux de `192.168.10.0`.\nCombien d'**adresses** différentes contient-il ?",
          "options": [
            {
              "text": "$256$ adresses",
              "correct": true,
              "feedback": "Bonne réponse : la partie hôte compte $32 - 24 = 8$ bits, qui\nprennent $2^{8} = 256$ valeurs, de `192.168.10.0` à `192.168.10.255`.\n"
            },
            {
              "text": "$1\\,024$ adresses",
              "correct": false,
              "feedback": "Erreur : $2^{10} = 1\\,024$ correspondrait à $10$ bits de partie hôte,\ndonc à un préfixe `/22`. Avec `/24`, il reste $8$ bits, soit $256$\nadresses.\n"
            },
            {
              "text": "$255$ adresses",
              "correct": false,
              "feedback": "Erreur : tu calcules $255 - 0$, ce qui oublie une adresse. De la\npremière à la dernière incluses, on compte $256$ valeurs, autant que de combinaisons\nde $8$ bits.\n"
            },
            {
              "text": "$24$ adresses",
              "correct": false,
              "feedback": "Erreur : $24$ est le nombre de bits de la partie réseau, pas un\nnombre d'adresses. La partie hôte compte $32 - 24 = 8$ bits, soit\n$2^{8} = 256$ adresses.\n"
            }
          ],
          "explanation": "Pour un préfixe `/n`, la partie hôte compte $32 - n$ bits et le\nréseau regroupe $2^{32 - n}$ adresses : $256$ pour `/24`, $65536$\npour `/16`."
        },
        {
          "statement": "Le réseau `10.20.0.0/16` (masque `255.255.0.0`) regroupe les\nadresses dont les $16$ premiers bits sont ceux de `10.20.0.0`.\nCombien d'**adresses** différentes contient-il ?",
          "options": [
            {
              "text": "$65\\,536$ adresses",
              "correct": true,
              "feedback": "Bonne réponse : la partie hôte compte $32 - 16 = 16$ bits, qui\nprennent $2^{16} = 65\\,536$ valeurs, de `10.20.0.0` à `10.20.255.255`.\n"
            },
            {
              "text": "$262\\,144$ adresses",
              "correct": false,
              "feedback": "Erreur : $2^{18} = 262\\,144$ correspondrait à $18$ bits de partie hôte,\ndonc à un préfixe `/14`. Avec `/16`, il reste $16$ bits, soit $65\\,536$\nadresses.\n"
            },
            {
              "text": "$65\\,535$ adresses",
              "correct": false,
              "feedback": "Erreur : tu calcules $65\\,535 - 0$, ce qui oublie une adresse. De la\npremière à la dernière incluses, on compte $65\\,536$ valeurs, autant que de combinaisons\nde $16$ bits.\n"
            },
            {
              "text": "$16$ adresses",
              "correct": false,
              "feedback": "Erreur : $16$ est le nombre de bits de la partie réseau, pas un\nnombre d'adresses. La partie hôte compte $32 - 16 = 16$ bits, soit\n$2^{16} = 65\\,536$ adresses.\n"
            }
          ],
          "explanation": "Pour un préfixe `/n`, la partie hôte compte $32 - n$ bits et le\nréseau regroupe $2^{32 - n}$ adresses : $256$ pour `/24`, $65536$\npour `/16`."
        },
        {
          "statement": "Le réseau `172.16.8.0/22` (masque `255.255.252.0`) regroupe les\nadresses dont les $22$ premiers bits sont ceux de `172.16.8.0`.\nCombien d'**adresses** différentes contient-il ?",
          "options": [
            {
              "text": "$1\\,024$ adresses",
              "correct": true,
              "feedback": "Bonne réponse : la partie hôte compte $32 - 22 = 10$ bits, qui\nprennent $2^{10} = 1\\,024$ valeurs, de `172.16.8.0` à `172.16.11.255`.\n"
            },
            {
              "text": "$4\\,096$ adresses",
              "correct": false,
              "feedback": "Erreur : $2^{12} = 4\\,096$ correspondrait à $12$ bits de partie hôte,\ndonc à un préfixe `/20`. Avec `/22`, il reste $10$ bits, soit $1\\,024$\nadresses.\n"
            },
            {
              "text": "$1\\,023$ adresses",
              "correct": false,
              "feedback": "Erreur : tu calcules $1\\,023 - 0$, ce qui oublie une adresse. De la\npremière à la dernière incluses, on compte $1\\,024$ valeurs, autant que de combinaisons\nde $10$ bits.\n"
            },
            {
              "text": "$22$ adresses",
              "correct": false,
              "feedback": "Erreur : $22$ est le nombre de bits de la partie réseau, pas un\nnombre d'adresses. La partie hôte compte $32 - 22 = 10$ bits, soit\n$2^{10} = 1\\,024$ adresses.\n"
            }
          ],
          "explanation": "Pour un préfixe `/n`, la partie hôte compte $32 - n$ bits et le\nréseau regroupe $2^{32 - n}$ adresses : $256$ pour `/24`, $65536$\npour `/16`."
        }
      ]
    },
    {
      "id": "q29",
      "difficulty": 3,
      "skills": [
        "adressage",
        "plage",
        "masque"
      ],
      "title": "Plage d'adresses d'un réseau /26",
      "partie": "adressage",
      "statement": "Un poste porte l'adresse `192.168.10.200/26`. Quelle plage d'adresses\ncouvre le réseau auquel il appartient ?",
      "options": [
        {
          "text": "De `192.168.10.192` à `192.168.10.255`",
          "correct": true,
          "feedback": "Bonne réponse : `/26` laisse $6$ bits à la partie hôte, ce qui\ndécoupe le dernier octet en blocs de $2^{6} = 64$ adresses commençant\nà `.0`, `.64`, `.128` et `.192`. Comme $200$ est compris entre $192$\net $255$, le réseau va de `192.168.10.192` à `192.168.10.255`.\n"
        },
        {
          "text": "De `192.168.10.0` à `192.168.10.255`",
          "correct": false,
          "feedback": "Erreur : cette plage de $256$ adresses est celle d'un préfixe `/24`.\nAvec `/26`, les $2$ premiers bits du dernier octet appartiennent\naussi à la partie réseau, ce qui découpe l'octet en blocs de $64$.\n"
        },
        {
          "text": "De `192.168.10.200` à `192.168.10.255`",
          "correct": false,
          "feedback": "Erreur : un réseau ne commence pas à l'adresse du poste. Sa première\nadresse s'obtient en mettant à $0$ les $6$ bits d'hôte : $200$\ns'écrit `11001000` en binaire, et `11000000` vaut $192$.\n"
        },
        {
          "text": "De `192.168.10.128` à `192.168.10.255`",
          "correct": false,
          "feedback": "Erreur : cette plage revient à laisser $7$ bits à la partie\nhôte, soit un préfixe `/25`. Avec `/26`, les blocs comptent $64$\nadresses et `.200` tombe dans celui qui commence à `.192`.\n"
        }
      ],
      "explanation": "Pour trouver la plage d'un réseau `/n`, on met à $0$ les $32 - n$ bits\nd'hôte pour obtenir la première adresse, et à $1$ pour obtenir la\ndernière. Ici $6$ bits : de `192.168.10.192` à `192.168.10.255`.",
      "variants": [
        {
          "statement": "Un poste porte l'adresse `192.168.10.200/26`. Quelle plage d'adresses\ncouvre le réseau auquel il appartient ?",
          "options": [
            {
              "text": "De `192.168.10.192` à `192.168.10.255`",
              "correct": true,
              "feedback": "Bonne réponse : `/26` laisse $6$ bits à la partie hôte, ce qui\ndécoupe le dernier octet en blocs de $2^{6} = 64$ adresses commençant\nà `.0`, `.64`, `.128` et `.192`. Comme $200$ est compris entre $192$\net $255$, le réseau va de `192.168.10.192` à `192.168.10.255`.\n"
            },
            {
              "text": "De `192.168.10.0` à `192.168.10.255`",
              "correct": false,
              "feedback": "Erreur : cette plage de $256$ adresses est celle d'un préfixe `/24`.\nAvec `/26`, les $2$ premiers bits du dernier octet appartiennent\naussi à la partie réseau, ce qui découpe l'octet en blocs de $64$.\n"
            },
            {
              "text": "De `192.168.10.200` à `192.168.10.255`",
              "correct": false,
              "feedback": "Erreur : un réseau ne commence pas à l'adresse du poste. Sa première\nadresse s'obtient en mettant à $0$ les $6$ bits d'hôte : $200$\ns'écrit `11001000` en binaire, et `11000000` vaut $192$.\n"
            },
            {
              "text": "De `192.168.10.128` à `192.168.10.255`",
              "correct": false,
              "feedback": "Erreur : cette plage revient à laisser $7$ bits à la partie\nhôte, soit un préfixe `/25`. Avec `/26`, les blocs comptent $64$\nadresses et `.200` tombe dans celui qui commence à `.192`.\n"
            }
          ],
          "explanation": "Pour trouver la plage d'un réseau `/n`, on met à $0$ les $32 - n$ bits\nd'hôte pour obtenir la première adresse, et à $1$ pour obtenir la\ndernière. Ici $6$ bits : de `192.168.10.192` à `192.168.10.255`."
        },
        {
          "statement": "Un poste porte l'adresse `192.168.10.75/27`. Quelle plage d'adresses\ncouvre le réseau auquel il appartient ?",
          "options": [
            {
              "text": "De `192.168.10.64` à `192.168.10.95`",
              "correct": true,
              "feedback": "Bonne réponse : `/27` laisse $5$ bits à la partie hôte, ce qui\ndécoupe le dernier octet en blocs de $2^{5} = 32$ adresses commençant\nà `.0`, `.32`, `.64`, `.96` et ainsi de suite. Comme $75$ est compris entre $64$\net $95$, le réseau va de `192.168.10.64` à `192.168.10.95`.\n"
            },
            {
              "text": "De `192.168.10.0` à `192.168.10.255`",
              "correct": false,
              "feedback": "Erreur : cette plage de $256$ adresses est celle d'un préfixe `/24`.\nAvec `/27`, les $3$ premiers bits du dernier octet appartiennent\naussi à la partie réseau, ce qui découpe l'octet en blocs de $32$.\n"
            },
            {
              "text": "De `192.168.10.75` à `192.168.10.95`",
              "correct": false,
              "feedback": "Erreur : un réseau ne commence pas à l'adresse du poste. Sa première\nadresse s'obtient en mettant à $0$ les $5$ bits d'hôte : $75$\ns'écrit `01001011` en binaire, et `01000000` vaut $64$.\n"
            },
            {
              "text": "De `192.168.10.64` à `192.168.10.127`",
              "correct": false,
              "feedback": "Erreur : cette plage revient à laisser $6$ bits à la partie\nhôte, soit un préfixe `/26`. Avec `/27`, les blocs comptent $32$\nadresses et `.75` tombe dans celui qui commence à `.64`.\n"
            }
          ],
          "explanation": "Pour trouver la plage d'un réseau `/n`, on met à $0$ les $32 - n$ bits\nd'hôte pour obtenir la première adresse, et à $1$ pour obtenir la\ndernière. Ici $5$ bits : de `192.168.10.64` à `192.168.10.95`."
        },
        {
          "statement": "Un poste porte l'adresse `10.0.0.140/28`. Quelle plage d'adresses\ncouvre le réseau auquel il appartient ?",
          "options": [
            {
              "text": "De `10.0.0.128` à `10.0.0.143`",
              "correct": true,
              "feedback": "Bonne réponse : `/28` laisse $4$ bits à la partie hôte, ce qui\ndécoupe le dernier octet en blocs de $2^{4} = 16$ adresses commençant\nà `.0`, `.16`, `.32` et ainsi de suite jusqu'à `.240`. Comme $140$ est compris entre $128$\net $143$, le réseau va de `10.0.0.128` à `10.0.0.143`.\n"
            },
            {
              "text": "De `10.0.0.0` à `10.0.0.255`",
              "correct": false,
              "feedback": "Erreur : cette plage de $256$ adresses est celle d'un préfixe `/24`.\nAvec `/28`, les $4$ premiers bits du dernier octet appartiennent\naussi à la partie réseau, ce qui découpe l'octet en blocs de $16$.\n"
            },
            {
              "text": "De `10.0.0.140` à `10.0.0.143`",
              "correct": false,
              "feedback": "Erreur : un réseau ne commence pas à l'adresse du poste. Sa première\nadresse s'obtient en mettant à $0$ les $4$ bits d'hôte : $140$\ns'écrit `10001100` en binaire, et `10000000` vaut $128$.\n"
            },
            {
              "text": "De `10.0.0.128` à `10.0.0.255`",
              "correct": false,
              "feedback": "Erreur : cette plage revient à laisser $7$ bits à la partie\nhôte, soit un préfixe `/25`. Avec `/28`, les blocs comptent $16$\nadresses et `.140` tombe dans celui qui commence à `.128`.\n"
            }
          ],
          "explanation": "Pour trouver la plage d'un réseau `/n`, on met à $0$ les $32 - n$ bits\nd'hôte pour obtenir la première adresse, et à $1$ pour obtenir la\ndernière. Ici $4$ bits : de `10.0.0.128` à `10.0.0.143`."
        }
      ]
    },
    {
      "id": "q30",
      "difficulty": 3,
      "skills": [
        "ospf",
        "panne",
        "cout-cumule"
      ],
      "title": "Panne d'un routeur central",
      "partie": "routage",
      "statement": "Cinq routeurs sont reliés par les liaisons suivantes, avec leur coût\nOSPF entre parenthèses : `A-B` ($1$), `B-D` ($1$), `B-C` ($1$),\n`A-C` ($2$), `C-D` ($3$), `A-E` ($5$) et `E-D` ($1$). Le routeur `B`\ntombe en panne. Une fois les tables mises à jour, quelle route de\n`A` vers `D` est retenue ?",
      "options": [
        {
          "text": "`A → C → B → D`, coût $4$",
          "correct": false,
          "feedback": "Erreur : ce chemin traverse `B`, qui est en panne. Quand un routeur\ntombe, toutes ses liaisons deviennent inutilisables, pas seulement\n`A-B`.\n"
        },
        {
          "text": "`A → C → D`, coût $5$",
          "correct": true,
          "feedback": "Bonne réponse : sans `B`, il reste `A → C → D` pour $2 + 3 = 5$ et\n`A → E → D` pour $5 + 1 = 6$. OSPF retient la moins chère,\n`A → C → D`.\n"
        },
        {
          "text": "`A → E → D`, coût $6$",
          "correct": false,
          "feedback": "Erreur : cette route évite bien `B`, mais elle coûte $5 + 1 = 6$,\nplus que `A → C → D` à $2 + 3 = 5$. La liaison `A-E` à $5$ pèse\nlourd dans le total.\n"
        },
        {
          "text": "Aucune, `D` n'étant plus joignable depuis `A`",
          "correct": false,
          "feedback": "Erreur : la panne de `B` supprime ses trois liaisons, mais `A` reste\nrelié à `D` par `C` ou par `E`. Le réseau offre ici des routes de\nsecours.\n"
        }
      ],
      "explanation": "Quand un routeur tombe en panne, on retire du réseau ce routeur et\ntoutes ses liaisons, puis on cherche la route de coût minimal sur ce\nqui reste : ici `A → C → D`, de coût $5$."
    },
    {
      "id": "q32",
      "difficulty": 3,
      "skills": [
        "trace-https"
      ],
      "title": "Trace d'une connexion HTTPS",
      "partie": "web",
      "statement": "L'utilisateur tape `https://www.example.com/`\ndans son navigateur. Dans quel ordre\ns'enchaînent les principales étapes au\nniveau réseau ?",
      "options": [
        {
          "text": "On envoie la requête HTTP au serveur, puis on demande son adresse IP au DNS",
          "correct": false,
          "feedback": "Erreur : sans l'adresse IP du serveur, aucun paquet ne peut lui être\nacheminé. La résolution DNS vient donc en premier.\n"
        },
        {
          "text": "On envoie d'abord la requête HTTP, puis\non chiffre le résultat\n",
          "correct": false,
          "feedback": "Erreur : impossible. Sans chiffrement déjà en place, la requête HTTP\npartirait en clair et exposerait l'adresse de la page demandée comme\nles données envoyées. Le chiffrement doit être établi avant tout\nenvoi de requête.\n"
        },
        {
          "text": "On contacte le serveur DNS, puis on\ntélécharge directement la page sans\nautre étape\n",
          "correct": false,
          "feedback": "Erreur : il manque l'ouverture de la connexion TCP et la mise en\nplace du chiffrement. HTTPS n'envoie aucune requête avant d'avoir\nétabli un canal chiffré.\n"
        },
        {
          "text": "Résolution DNS, connexion TCP, échange d'une clé, puis requête HTTP chiffrée",
          "correct": true,
          "feedback": "Bonne réponse : le DNS fournit l'adresse IP du serveur, la connexion\nTCP est ouverte, puis navigateur et serveur conviennent d'une clé\nsymétrique grâce au chiffrement asymétrique. La requête `GET /` part\nenfin sur le canal chiffré.\n"
        }
      ],
      "explanation": "Cette séquence DNS, TCP, échange de clé, HTTP s'observe dans les\noutils de développement du navigateur, sous l'onglet **Réseau**, qui\ndétaille la durée de chaque phase. Pour aller plus vite, les\nnavigateurs mémorisent les résolutions DNS et réutilisent les\nconnexions déjà ouvertes."
    },
    {
      "id": "q33",
      "difficulty": 1,
      "skills": [
        "rip",
        "routage",
        "metrique"
      ],
      "title": "Métrique du protocole RIP",
      "partie": "routage",
      "statement": "Dans le protocole de routage RIP (*Routing\nInformation Protocol*), quelle métrique est\nutilisée pour comparer deux routes possibles\nentre deux routeurs ?",
      "options": [
        {
          "text": "Le nombre de sauts (routeurs traversés)",
          "correct": true,
          "feedback": "Bonne réponse : la métrique de RIP est le nombre de sauts,\nc'est-à-dire le nombre de routeurs à traverser. La route choisie\nest celle qui minimise ce nombre.\n"
        },
        {
          "text": "Le coût financier facturé par l'opérateur",
          "correct": false,
          "feedback": "Erreur : aucun protocole de routage standard\nn'utilise de métrique financière. RIP, comme\nla plupart des protocoles de routage interne,\nutilise une métrique purement technique.\n"
        },
        {
          "text": "La bande passante du lien le plus lent sur le chemin",
          "correct": false,
          "feedback": "Erreur : c'est plutôt la philosophie d'OSPF,\nqui pondère ses routes par un coût lié à la\nbande passante. RIP, de conception plus\nsimple et plus ancienne, ne prend en compte\nque le nombre de sauts.\n"
        },
        {
          "text": "La latence mesurée en millisecondes",
          "correct": false,
          "feedback": "Erreur : RIP ne mesure pas la latence. Il se contente de compter\nles sauts, sans chronométrer le trajet des paquets.\n"
        }
      ],
      "explanation": "RIP est l'un des plus anciens protocoles de routage. Sa métrique très\nsimple le rend adapté aux petits réseaux, mais il ignore les\ndifférences de débit entre liaisons : c'est pourquoi OSPF, qui\ncompare des coûts, l'a remplacé dans de nombreux réseaux\nd'entreprise."
    },
    {
      "id": "q34",
      "difficulty": 2,
      "skills": [
        "ospf",
        "dijkstra",
        "routage"
      ],
      "title": "Métrique du protocole OSPF",
      "partie": "routage",
      "statement": "Le protocole de routage OSPF (*Open Shortest\nPath First*) utilise un coût pondéré pour chaque\nlien afin de déterminer la meilleure route. Quel\ntype d'algorithme permet alors à chaque routeur de\ncalculer les meilleures routes vers toutes les\ndestinations connues ?",
      "options": [
        {
          "text": "Un algorithme de tri, comme le tri par insertion",
          "correct": false,
          "feedback": "Erreur : un tri range les éléments d'un tableau ; il ne cherche\naucun chemin dans un graphe pondéré.\n"
        },
        {
          "text": "Un algorithme de recherche de chemin de poids minimal dans un graphe",
          "correct": true,
          "feedback": "Bonne réponse : le réseau est modélisé par un graphe dont les\nsommets sont les routeurs, les arêtes les liaisons et les poids les\ncoûts. Chaque routeur y cherche, vers chaque destination, le chemin\nde coût total minimal.\n"
        },
        {
          "text": "Un algorithme de recherche de motif, comme Boyer-Moore",
          "correct": false,
          "feedback": "Erreur : Boyer-Moore est un algorithme de\nrecherche d'un motif dans une chaîne de\ncaractères, pas un algorithme de plus court\nchemin sur un graphe.\n"
        },
        {
          "text": "Un algorithme glouton qui suit la liaison la moins chère à chaque routeur",
          "correct": false,
          "feedback": "Erreur : suivre à chaque étape la liaison la moins chère ne garantit\npas le chemin de coût total minimal : un premier lien à $1$ peut\nmener à un lien à $10$. OSPF compare les coûts totaux des routes.\n"
        }
      ],
      "explanation": "Le routage OSPF illustre le lien entre réseaux et graphes : chercher\nla meilleure route revient à chercher un chemin de poids total\nminimal. RIP, qui compte les sauts, correspond au cas où chaque\nliaison pèse $1$."
    },
    {
      "id": "q35",
      "difficulty": 3,
      "skills": [
        "rip",
        "ospf",
        "comparaison",
        "trace"
      ],
      "title": "Choix de route RIP versus OSPF",
      "partie": "routage",
      "statement": "On considère le réseau ci-dessous, composé de\nquatre routeurs `R1`, `R2`, `R3`, `R4`, où\nchaque arête porte un coût pondéré utilisé par\nOSPF :\n\n```\nR1 ----- 10 ----- R2\n |                 |\n 1                100\n |                 |\nR3 ----- 1 ------ R4\n```\n\nTous ces liens existent et chacun compte pour\nun saut côté RIP. On cherche la route choisie\nde `R1` vers `R4`. Quelle route chaque protocole\nsélectionne-t-il ?",
      "options": [
        {
          "text": "RIP choisit `R1 → R3 → R4` à cause du coût $2$, OSPF choisit `R1 → R2 → R4` car deux sauts suffisent",
          "correct": false,
          "feedback": "Erreur : on a inversé les rôles des deux\nprotocoles. RIP est celui qui n'utilise que\nle nombre de sauts, et donc ne « voit » pas\nles coûts pondérés. OSPF est celui qui\nintègre les coûts dans son calcul.\n"
        },
        {
          "text": "RIP comme OSPF choisissent `R1 → R3 → R4` (deux sauts, coût total $2$)",
          "correct": false,
          "feedback": "Erreur : seul OSPF favorise nettement ce\nchemin. Pour RIP, la métrique est le seul\nnombre de sauts. Or `R1 → R2 → R4` fait\négalement deux sauts. Les deux chemins\nparaissent équivalents pour RIP, sans\ndépartage strict en faveur de `R3`.\n"
        },
        {
          "text": "RIP est indifférent (deux sauts) ; OSPF choisit `R1 → R3 → R4` (coût $2$ contre $110$)",
          "correct": true,
          "feedback": "Bonne réponse : RIP ne distingue que le\nnombre de sauts, donc les deux chemins\nparaissent équivalents pour lui. OSPF, au\ncontraire, additionne les coûts pondérés et\ntranche nettement en faveur de\n`R1 → R3 → R4`, dont le coût total ($2$) est\nbeaucoup plus faible que celui de\n`R1 → R2 → R4` ($110$).\n"
        },
        {
          "text": "RIP choisit `R1 → R2 → R4` (deux sauts) et OSPF choisit le même chemin pour minimiser le coût",
          "correct": false,
          "feedback": "Erreur sur OSPF : `R1 → R2 → R4` a un coût\ntotal de $10 + 100 = 110$, alors que\n`R1 → R3 → R4` a un coût de $1 + 1 = 2$.\nOSPF choisira évidemment ce dernier. Quant\nà RIP, il est en fait indifférent entre les\ndeux chemins puisqu'ils font tous deux deux\nsauts.\n"
        }
      ],
      "explanation": "Cet exemple illustre la limite principale de\nRIP : en ne tenant pas compte de la qualité des\nliens, il peut choisir un chemin pourtant\nbeaucoup plus lent qu'un autre. OSPF, en\nintégrant la bande passante des liens via un\ncoût pondéré, fournit naturellement des routes\nplus efficaces. C'est pour cette raison qu'OSPF\na remplacé RIP dans la plupart des réseaux\nd'entreprise modernes."
    },
    {
      "id": "q36",
      "difficulty": 2,
      "skills": [
        "https",
        "certificat",
        "autorite-de-certification"
      ],
      "title": "Rôle du certificat du serveur",
      "partie": "web",
      "statement": "Au début d'une connexion HTTPS, le serveur envoie un certificat au\nnavigateur. À quoi sert-il ?",
      "options": [
        {
          "text": "À prouver l'identité du serveur, par la signature d'une autorité reconnue",
          "correct": true,
          "feedback": "Bonne réponse : le certificat lie le nom du site à une clé\npublique, et la signature d'une autorité de certification, dont\nle navigateur connaît la liste, atteste que ce lien est\nauthentique.\n"
        },
        {
          "text": "À chiffrer à lui seul l'ensemble des échanges de la session, du début à la fin",
          "correct": false,
          "feedback": "Erreur : les échanges sont chiffrés avec une clé symétrique\nétablie ensuite. Le certificat sert à vérifier à qui l'on parle\navant de construire cette clé.\n"
        },
        {
          "text": "À identifier l'utilisateur auprès du site, à la place de son mot de passe",
          "correct": false,
          "feedback": "Erreur : le certificat identifie le serveur, pas le visiteur.\nL'utilisateur s'identifie ensuite, par exemple par un mot de\npasse, une fois la connexion sécurisée.\n"
        },
        {
          "text": "À accélérer la résolution DNS du nom du site en mémorisant son adresse IP",
          "correct": false,
          "feedback": "Erreur : la résolution DNS a lieu avant la connexion et ne fait\npas intervenir de certificat. Celui-ci n'entre en jeu qu'au\nmoment d'établir la session TLS.\n"
        }
      ],
      "explanation": "Chiffrer ne sert à rien si l'on chiffre pour un imposteur. Le\ncertificat, signé par une autorité de certification, permet au\nnavigateur de s'assurer que la clé publique reçue appartient bien\nau site demandé."
    },
    {
      "id": "q37",
      "difficulty": 3,
      "skills": [
        "https",
        "certificat",
        "hameconnage"
      ],
      "title": "Portée du cadenas",
      "partie": "web",
      "statement": "Un courriel conduit Léa sur `https://ma-banque-securite.net`, un\nsite qui imite celui de sa banque et dispose d'un certificat\nvalide pour ce nom. Le navigateur affiche le cadenas. Que garantit\nce cadenas ?",
      "options": [
        {
          "text": "Que la connexion avec `ma-banque-securite.net` est chiffrée, rien de plus",
          "correct": true,
          "feedback": "Bonne réponse : le certificat atteste que la clé publique\nappartient au nom affiché dans la barre d'adresse. Il ne dit pas\nque ce nom est celui de la banque de Léa ni que le site est\nhonnête.\n"
        },
        {
          "text": "Que le site appartient bien à la banque de Léa, le nom ayant été vérifié",
          "correct": false,
          "feedback": "Erreur : n'importe qui peut obtenir un certificat pour un nom\nqu'il a enregistré. Le cadenas ne compare pas ce nom à celui de\nla vraie banque, c'est à l'utilisateur de le vérifier.\n"
        },
        {
          "text": "Que les informations saisies ne pourront pas être exploitées par un escroc",
          "correct": false,
          "feedback": "Erreur : les informations arrivent chiffrées au site frauduleux,\nqui les déchiffre et les lit normalement. Le chiffrement protège\ndu trajet, pas du destinataire.\n"
        },
        {
          "text": "Rien du tout, le cadenas pouvant être affiché par n'importe quel site, certificat ou non",
          "correct": false,
          "feedback": "Erreur : le cadenas a un sens précis, la connexion est chiffrée\net le certificat correspond au nom affiché. Sa limite est de ne\nrien dire sur l'honnêteté de ce nom.\n"
        }
      ],
      "explanation": "HTTPS garantit la confidentialité et l'authenticité de la\nconnexion vers le nom affiché. Il ne protège pas contre un site\nfrauduleux correctement configuré : lire l'adresse reste\nindispensable."
    },
    {
      "id": "q38",
      "difficulty": 1,
      "skills": [
        "cidr",
        "masque",
        "notation"
      ],
      "title": "De la notation CIDR au masque",
      "partie": "adressage",
      "statement": "Quel masque correspond à la notation `/16` ?",
      "options": [
        {
          "text": "`255.255.0.0`",
          "correct": true,
          "feedback": "Bonne réponse : `/16` signifie $16$ bits à $1$ en tête du\nmasque, soit $2$ octets à $255$.\n"
        },
        {
          "text": "`255.255.255.0`",
          "correct": false,
          "feedback": "Erreur : compte les octets à $255$, chacun vaut huit bits à\n$1$.\n"
        },
        {
          "text": "`255.0.0.0`",
          "correct": false,
          "feedback": "Erreur : ce masque correspond à un autre nombre de bits.\n"
        },
        {
          "text": "`0.0.0.16`",
          "correct": false,
          "feedback": "Erreur : le nombre après la barre compte des bits, il ne\ns'écrit pas dans le masque.\n"
        }
      ],
      "explanation": "`/n` et le masque décimal sont deux écritures du même partage :\n$n$ bits pour le réseau, $32 - n$ pour les hôtes.",
      "variants": [
        {
          "statement": "Quel masque correspond à la notation `/16` ?",
          "options": [
            {
              "text": "`255.255.0.0`",
              "correct": true,
              "feedback": "Bonne réponse : `/16` signifie $16$ bits à $1$ en tête du\nmasque, soit $2$ octets à $255$.\n"
            },
            {
              "text": "`255.255.255.0`",
              "correct": false,
              "feedback": "Erreur : compte les octets à $255$, chacun vaut huit bits à\n$1$.\n"
            },
            {
              "text": "`255.0.0.0`",
              "correct": false,
              "feedback": "Erreur : ce masque correspond à un autre nombre de bits.\n"
            },
            {
              "text": "`0.0.0.16`",
              "correct": false,
              "feedback": "Erreur : le nombre après la barre compte des bits, il ne\ns'écrit pas dans le masque.\n"
            }
          ],
          "explanation": "`/n` et le masque décimal sont deux écritures du même partage :\n$n$ bits pour le réseau, $32 - n$ pour les hôtes."
        },
        {
          "statement": "Quel masque correspond à la notation `/8` ?",
          "options": [
            {
              "text": "`255.0.0.0`",
              "correct": true,
              "feedback": "Bonne réponse : `/8` signifie $8$ bits à $1$ en tête du\nmasque, soit $1$ octets à $255$.\n"
            },
            {
              "text": "`255.255.0.0`",
              "correct": false,
              "feedback": "Erreur : compte les octets à $255$, chacun vaut huit bits à\n$1$.\n"
            },
            {
              "text": "`255.255.255.0`",
              "correct": false,
              "feedback": "Erreur : ce masque correspond à un autre nombre de bits.\n"
            },
            {
              "text": "`0.0.0.8`",
              "correct": false,
              "feedback": "Erreur : le nombre après la barre compte des bits, il ne\ns'écrit pas dans le masque.\n"
            }
          ],
          "explanation": "`/n` et le masque décimal sont deux écritures du même partage :\n$n$ bits pour le réseau, $32 - n$ pour les hôtes."
        },
        {
          "statement": "Quel masque correspond à la notation `/24` ?",
          "options": [
            {
              "text": "`255.255.255.0`",
              "correct": true,
              "feedback": "Bonne réponse : `/24` signifie $24$ bits à $1$ en tête du\nmasque, soit $3$ octets à $255$.\n"
            },
            {
              "text": "`255.255.0.0`",
              "correct": false,
              "feedback": "Erreur : compte les octets à $255$, chacun vaut huit bits à\n$1$.\n"
            },
            {
              "text": "`255.0.0.0`",
              "correct": false,
              "feedback": "Erreur : ce masque correspond à un autre nombre de bits.\n"
            },
            {
              "text": "`0.0.0.24`",
              "correct": false,
              "feedback": "Erreur : le nombre après la barre compte des bits, il ne\ns'écrit pas dans le masque.\n"
            }
          ],
          "explanation": "`/n` et le masque décimal sont deux écritures du même partage :\n$n$ bits pour le réseau, $32 - n$ pour les hôtes."
        }
      ]
    },
    {
      "id": "q39",
      "difficulty": 3,
      "skills": [
        "sous-reseaux",
        "cidr",
        "calcul"
      ],
      "title": "Découper un réseau en sous-réseaux",
      "partie": "adressage",
      "statement": "Un réseau `/24` est découpé en sous-réseaux `/26`. Combien de\nsous-réseaux obtient-on, et combien d'hôtes chacun peut-il\naccueillir ?",
      "options": [
        {
          "text": "$4$ sous-réseaux de $62$ hôtes",
          "correct": true,
          "feedback": "Bonne réponse : passer de `/24` à `/26` emprunte $2$ bits à\nla partie hôte, soit $2^{2} = 4$ sous-réseaux. Il reste\n$6$ bits d'hôte, soit $2^{6} - 2 = 62$ hôtes, en\nretirant l'adresse du réseau et celle de diffusion.\n"
        },
        {
          "text": "$8$ sous-réseaux de $62$ hôtes",
          "correct": false,
          "feedback": "Erreur : $2$ bits empruntés donnent $2^{2}$ sous-réseaux.\n"
        },
        {
          "text": "$4$ sous-réseaux de $64$ hôtes",
          "correct": false,
          "feedback": "Erreur : deux adresses de chaque sous-réseau sont réservées, le\nréseau lui-même et la diffusion.\n"
        },
        {
          "text": "$2$ sous-réseaux de $62$ hôtes",
          "correct": false,
          "feedback": "Erreur : $2$ est le nombre de bits empruntés, pas le nombre\nde sous-réseaux.\n"
        }
      ],
      "explanation": "Découper un réseau revient à déplacer la frontière entre partie\nréseau et partie hôte : chaque bit emprunté double le nombre de\nsous-réseaux et divise par deux leur taille.",
      "variants": [
        {
          "statement": "Un réseau `/24` est découpé en sous-réseaux `/26`. Combien de\nsous-réseaux obtient-on, et combien d'hôtes chacun peut-il\naccueillir ?",
          "options": [
            {
              "text": "$4$ sous-réseaux de $62$ hôtes",
              "correct": true,
              "feedback": "Bonne réponse : passer de `/24` à `/26` emprunte $2$ bits à\nla partie hôte, soit $2^{2} = 4$ sous-réseaux. Il reste\n$6$ bits d'hôte, soit $2^{6} - 2 = 62$ hôtes, en\nretirant l'adresse du réseau et celle de diffusion.\n"
            },
            {
              "text": "$8$ sous-réseaux de $62$ hôtes",
              "correct": false,
              "feedback": "Erreur : $2$ bits empruntés donnent $2^{2}$ sous-réseaux.\n"
            },
            {
              "text": "$4$ sous-réseaux de $64$ hôtes",
              "correct": false,
              "feedback": "Erreur : deux adresses de chaque sous-réseau sont réservées, le\nréseau lui-même et la diffusion.\n"
            },
            {
              "text": "$2$ sous-réseaux de $62$ hôtes",
              "correct": false,
              "feedback": "Erreur : $2$ est le nombre de bits empruntés, pas le nombre\nde sous-réseaux.\n"
            }
          ],
          "explanation": "Découper un réseau revient à déplacer la frontière entre partie\nréseau et partie hôte : chaque bit emprunté double le nombre de\nsous-réseaux et divise par deux leur taille."
        },
        {
          "statement": "Un réseau `/24` est découpé en sous-réseaux `/27`. Combien de\nsous-réseaux obtient-on, et combien d'hôtes chacun peut-il\naccueillir ?",
          "options": [
            {
              "text": "$8$ sous-réseaux de $30$ hôtes",
              "correct": true,
              "feedback": "Bonne réponse : passer de `/24` à `/27` emprunte $3$ bits à\nla partie hôte, soit $2^{3} = 8$ sous-réseaux. Il reste\n$5$ bits d'hôte, soit $2^{5} - 2 = 30$ hôtes, en\nretirant l'adresse du réseau et celle de diffusion.\n"
            },
            {
              "text": "$16$ sous-réseaux de $30$ hôtes",
              "correct": false,
              "feedback": "Erreur : $3$ bits empruntés donnent $2^{3}$ sous-réseaux.\n"
            },
            {
              "text": "$8$ sous-réseaux de $32$ hôtes",
              "correct": false,
              "feedback": "Erreur : deux adresses de chaque sous-réseau sont réservées, le\nréseau lui-même et la diffusion.\n"
            },
            {
              "text": "$3$ sous-réseaux de $30$ hôtes",
              "correct": false,
              "feedback": "Erreur : $3$ est le nombre de bits empruntés, pas le nombre\nde sous-réseaux.\n"
            }
          ],
          "explanation": "Découper un réseau revient à déplacer la frontière entre partie\nréseau et partie hôte : chaque bit emprunté double le nombre de\nsous-réseaux et divise par deux leur taille."
        },
        {
          "statement": "Un réseau `/24` est découpé en sous-réseaux `/25`. Combien de\nsous-réseaux obtient-on, et combien d'hôtes chacun peut-il\naccueillir ?",
          "options": [
            {
              "text": "$2$ sous-réseaux de $126$ hôtes",
              "correct": true,
              "feedback": "Bonne réponse : passer de `/24` à `/25` emprunte $1$ bits à\nla partie hôte, soit $2^{1} = 2$ sous-réseaux. Il reste\n$7$ bits d'hôte, soit $2^{7} - 2 = 126$ hôtes, en\nretirant l'adresse du réseau et celle de diffusion.\n"
            },
            {
              "text": "$4$ sous-réseaux de $126$ hôtes",
              "correct": false,
              "feedback": "Erreur : $1$ bits empruntés donnent $2^{1}$ sous-réseaux.\n"
            },
            {
              "text": "$2$ sous-réseaux de $128$ hôtes",
              "correct": false,
              "feedback": "Erreur : deux adresses de chaque sous-réseau sont réservées, le\nréseau lui-même et la diffusion.\n"
            },
            {
              "text": "$1$ sous-réseaux de $126$ hôtes",
              "correct": false,
              "feedback": "Erreur : $1$ est le nombre de bits empruntés, pas le nombre\nde sous-réseaux.\n"
            }
          ],
          "explanation": "Découper un réseau revient à déplacer la frontière entre partie\nréseau et partie hôte : chaque bit emprunté double le nombre de\nsous-réseaux et divise par deux leur taille."
        }
      ]
    },
    {
      "id": "q40",
      "difficulty": 2,
      "skills": [
        "adressage",
        "meme-reseau",
        "masque"
      ],
      "title": "Deux adresses sur un même réseau",
      "partie": "adressage",
      "statement": "Les machines `10.0.1.20/16` et `10.0.2.30/16` sont-elles sur le\nmême réseau ?",
      "options": [
        {
          "text": "Oui, leurs seize premiers bits, `10.0`, coïncident",
          "correct": true,
          "feedback": "Bonne réponse : la partie réseau compte $16$ bits ; on compare\nles adresses sur ces bits seulement, octet par octet.\n"
        },
        {
          "text": "Non, leurs troisièmes octets diffèrent",
          "correct": false,
          "feedback": "Erreur : seuls les $16$ premiers bits comptent, ni plus ni\nmoins.\n"
        },
        {
          "text": "Oui, toute adresse commençant par `10` est sur ce réseau",
          "correct": false,
          "feedback": "Erreur : le premier octet seul ne suffit pas avec un masque\n`/16`.\n"
        },
        {
          "text": "Impossible à dire sans l'adresse du routeur",
          "correct": false,
          "feedback": "Erreur : adresses et masque suffisent ; le routeur n'intervient\nque si les réseaux diffèrent.\n"
        }
      ],
      "explanation": "Même réseau signifie même partie réseau : on compare les adresses\nsur le nombre de bits que donne le masque.",
      "variants": [
        {
          "statement": "Les machines `10.0.1.20/16` et `10.0.2.30/16` sont-elles sur le\nmême réseau ?",
          "options": [
            {
              "text": "Oui, leurs seize premiers bits, `10.0`, coïncident",
              "correct": true,
              "feedback": "Bonne réponse : la partie réseau compte $16$ bits ; on compare\nles adresses sur ces bits seulement, octet par octet.\n"
            },
            {
              "text": "Non, leurs troisièmes octets diffèrent",
              "correct": false,
              "feedback": "Erreur : seuls les $16$ premiers bits comptent, ni plus ni\nmoins.\n"
            },
            {
              "text": "Oui, toute adresse commençant par `10` est sur ce réseau",
              "correct": false,
              "feedback": "Erreur : le premier octet seul ne suffit pas avec un masque\n`/16`.\n"
            },
            {
              "text": "Impossible à dire sans l'adresse du routeur",
              "correct": false,
              "feedback": "Erreur : adresses et masque suffisent ; le routeur n'intervient\nque si les réseaux diffèrent.\n"
            }
          ],
          "explanation": "Même réseau signifie même partie réseau : on compare les adresses\nsur le nombre de bits que donne le masque."
        },
        {
          "statement": "Les machines `10.0.1.20/24` et `10.0.2.30/24` sont-elles sur le\nmême réseau ?",
          "options": [
            {
              "text": "Non, leurs troisièmes octets diffèrent dans la partie réseau",
              "correct": true,
              "feedback": "Bonne réponse : la partie réseau compte $24$ bits ; on compare\nles adresses sur ces bits seulement, octet par octet.\n"
            },
            {
              "text": "Oui, elles commencent toutes deux par `10.0`",
              "correct": false,
              "feedback": "Erreur : seuls les $24$ premiers bits comptent, ni plus ni\nmoins.\n"
            },
            {
              "text": "Oui, toute adresse commençant par `10` est sur ce réseau",
              "correct": false,
              "feedback": "Erreur : le premier octet seul ne suffit pas avec un masque\n`/24`.\n"
            },
            {
              "text": "Impossible à dire sans l'adresse du routeur",
              "correct": false,
              "feedback": "Erreur : adresses et masque suffisent ; le routeur n'intervient\nque si les réseaux diffèrent.\n"
            }
          ],
          "explanation": "Même réseau signifie même partie réseau : on compare les adresses\nsur le nombre de bits que donne le masque."
        }
      ]
    },
    {
      "id": "q41",
      "difficulty": 3,
      "skills": [
        "adressage",
        "dimensionnement",
        "masque",
        "calcul"
      ],
      "title": "Le masque d'un réseau pour un nombre de machines donné",
      "partie": "adressage",
      "statement": "Un réseau doit accueillir $500$ machines. Quel est le masque le plus\nlong, donc le réseau le plus petit, qui convient ?",
      "options": [
        {
          "text": "`/23`, soit $9$ bits de machine et $510$ adresses",
          "correct": true,
          "feedback": "Bonne réponse : il faut $2^{9} - 2 = 510 \\geq 500$ adresses\nattribuables, et $8$ bits n'en donneraient que $254$.\nReste $32 - 9 = 23$ bits pour le réseau.\n"
        },
        {
          "text": "`/24`, qui ne laisse que $254$ adresses",
          "correct": false,
          "feedback": "Erreur : $254$ adresses ne suffisent pas pour $500$ machines.\n"
        },
        {
          "text": "`/22`, qui convient mais double la plage inutilement",
          "correct": false,
          "feedback": "Erreur : ce masque convient, mais il n'est pas le plus long\npossible.\n"
        },
        {
          "text": "`/9`, le nombre de bits nécessaires",
          "correct": false,
          "feedback": "Erreur : $9$ est le nombre de bits de machine ; le masque\ncompte les bits de réseau, $32 - 9$.\n"
        }
      ],
      "explanation": "Dimensionner un réseau : trouver le plus petit $b$ tel que\n$2^b - 2$ couvre les machines, puis prendre le masque $/(32 - b)$.",
      "variants": [
        {
          "statement": "Un réseau doit accueillir $500$ machines. Quel est le masque le plus\nlong, donc le réseau le plus petit, qui convient ?",
          "options": [
            {
              "text": "`/23`, soit $9$ bits de machine et $510$ adresses",
              "correct": true,
              "feedback": "Bonne réponse : il faut $2^{9} - 2 = 510 \\geq 500$ adresses\nattribuables, et $8$ bits n'en donneraient que $254$.\nReste $32 - 9 = 23$ bits pour le réseau.\n"
            },
            {
              "text": "`/24`, qui ne laisse que $254$ adresses",
              "correct": false,
              "feedback": "Erreur : $254$ adresses ne suffisent pas pour $500$ machines.\n"
            },
            {
              "text": "`/22`, qui convient mais double la plage inutilement",
              "correct": false,
              "feedback": "Erreur : ce masque convient, mais il n'est pas le plus long\npossible.\n"
            },
            {
              "text": "`/9`, le nombre de bits nécessaires",
              "correct": false,
              "feedback": "Erreur : $9$ est le nombre de bits de machine ; le masque\ncompte les bits de réseau, $32 - 9$.\n"
            }
          ],
          "explanation": "Dimensionner un réseau : trouver le plus petit $b$ tel que\n$2^b - 2$ couvre les machines, puis prendre le masque $/(32 - b)$."
        },
        {
          "statement": "Un réseau doit accueillir $100$ machines. Quel est le masque le plus\nlong, donc le réseau le plus petit, qui convient ?",
          "options": [
            {
              "text": "`/25`, soit $7$ bits de machine et $126$ adresses",
              "correct": true,
              "feedback": "Bonne réponse : il faut $2^{7} - 2 = 126 \\geq 100$ adresses\nattribuables, et $6$ bits n'en donneraient que $62$.\nReste $32 - 7 = 25$ bits pour le réseau.\n"
            },
            {
              "text": "`/26`, qui ne laisse que $62$ adresses",
              "correct": false,
              "feedback": "Erreur : $62$ adresses ne suffisent pas pour $100$ machines.\n"
            },
            {
              "text": "`/24`, qui convient mais double la plage inutilement",
              "correct": false,
              "feedback": "Erreur : ce masque convient, mais il n'est pas le plus long\npossible.\n"
            },
            {
              "text": "`/7`, le nombre de bits nécessaires",
              "correct": false,
              "feedback": "Erreur : $7$ est le nombre de bits de machine ; le masque\ncompte les bits de réseau, $32 - 7$.\n"
            }
          ],
          "explanation": "Dimensionner un réseau : trouver le plus petit $b$ tel que\n$2^b - 2$ couvre les machines, puis prendre le masque $/(32 - b)$."
        },
        {
          "statement": "Un réseau doit accueillir $2000$ machines. Quel est le masque le plus\nlong, donc le réseau le plus petit, qui convient ?",
          "options": [
            {
              "text": "`/21`, soit $11$ bits de machine et $2046$ adresses",
              "correct": true,
              "feedback": "Bonne réponse : il faut $2^{11} - 2 = 2046 \\geq 2000$ adresses\nattribuables, et $10$ bits n'en donneraient que $1022$.\nReste $32 - 11 = 21$ bits pour le réseau.\n"
            },
            {
              "text": "`/22`, qui ne laisse que $1022$ adresses",
              "correct": false,
              "feedback": "Erreur : $1022$ adresses ne suffisent pas pour $2000$ machines.\n"
            },
            {
              "text": "`/20`, qui convient mais double la plage inutilement",
              "correct": false,
              "feedback": "Erreur : ce masque convient, mais il n'est pas le plus long\npossible.\n"
            },
            {
              "text": "`/11`, le nombre de bits nécessaires",
              "correct": false,
              "feedback": "Erreur : $11$ est le nombre de bits de machine ; le masque\ncompte les bits de réseau, $32 - 11$.\n"
            }
          ],
          "explanation": "Dimensionner un réseau : trouver le plus petit $b$ tel que\n$2^b - 2$ couvre les machines, puis prendre le masque $/(32 - b)$."
        }
      ]
    },
    {
      "id": "q42",
      "difficulty": 1,
      "skills": [
        "adressage",
        "passerelle",
        "routeur"
      ],
      "title": "L'adresse de la passerelle",
      "partie": "adressage",
      "statement": "Dans la configuration réseau d'un ordinateur, que désigne\nl'adresse de la passerelle ?",
      "options": [
        {
          "text": "L'adresse du routeur, sur le même réseau que l'ordinateur",
          "correct": true,
          "feedback": "Bonne réponse : tout paquet destiné à un autre réseau est\nremis au routeur ; l'ordinateur doit pouvoir l'atteindre\ndirectement, donc partager son réseau.\n"
        },
        {
          "text": "L'adresse de diffusion du réseau local de l'ordinateur",
          "correct": false,
          "feedback": "Erreur : la diffusion s'adresse à toutes les machines, pas au\nrouteur.\n"
        },
        {
          "text": "L'adresse du serveur de noms interrogé par l'ordinateur",
          "correct": false,
          "feedback": "Erreur : le serveur de noms est un réglage distinct.\n"
        },
        {
          "text": "N'importe quelle adresse d'Internet, choisie au hasard",
          "correct": false,
          "feedback": "Erreur : la passerelle doit être joignable sans routeur, donc\nsur le réseau local.\n"
        }
      ],
      "explanation": "La passerelle est la porte de sortie du réseau local : le routeur\nvers lequel partent les paquets pour l'extérieur."
    }
  ]
}