Retour à la page d'accueilNSI · Terminale (spé maths) · Changer de matière
Commencer gratuitement
Terminale (spé maths) · NSI
Préparer l'épreuve de spécialité NSI du bac · Épreuve de spécialité NSI du baccalauréat

Réseaux, routage et systèmes

Lucas ouvre le site de sa banque en ligne depuis le wifi du lycée. Trois choses se passent en même temps, et elles tombent toutes les trois dans l'épreuve de spécialité NSI. Son ordinateur exécute plusieurs programmes à la fois : qui décide lequel passe en premier ? Ses données traversent plusieurs routeurs : qui choisit la route ? Et comment être sûr que le voisin du café ne lit pas son mot de passe ? Dans cette page, tu apprends à répondre à ces trois questions, avec les méthodes attendues au bac.

Processus et ordonnancement

Un programme est un fichier. Un processus est un programme en cours d'exécution. Ton ordinateur a un seul processeur (ou peu de cœurs), mais des dizaines de processus à faire avancer. Le système d'exploitation les gère : c'est le rôle de l'ordonnanceur, qui choisit à chaque instant le processus qui s'exécute.

Un processus est toujours dans l'un de ces trois états :

Les trois états d'un processus : prêt, élu et bloqué, avec les transitions entre eux PrêtÉluBloqué électionfin du quantumattend une ressourceressource libérée
  • Prêt : le processus peut s'exécuter, il attend que le processeur se libère.

  • Élu (ou « en cours d'exécution ») : le processeur s'occupe de lui.

  • Bloqué (ou « en attente ») : il attend une ressource (lecture d'un fichier, réponse du réseau, clavier…). Il ne demande pas le processeur.

Le temps d'attente d'un processus est la durée entre son arrivée et le début de son exécution, quand il n'est jamais interrompu.

Deux politiques d'ordonnancement

  • Premier arrivé, premier servi (FCFS) : les processus s'exécutent jusqu'au bout, dans l'ordre d'arrivée, sans interruption.

  • Tourniquet (round robin) : chaque processus reçoit le processeur pendant au plus un quantum (par exemple 2 s). S'il n'a pas fini, il retourne à la fin de la file des processus prêts.

Le résultat se présente sous forme d'un diagramme de Gantt : une suite d'intervalles de temps associés aux processus.

Entraîne-toi★☆☆Pas commencé
Un système d'exploitation exécute trois processus selon la règle « premier arrivé, premier servi » (sans interruption). Les instants sont exprimés en secondes. |…

Un système d'exploitation exécute trois processus selon la règle « premier arrivé, premier servi » (sans interruption). Les instants sont exprimés en secondes.

Processus Instant d'arrivée Durée d'exécution
P1 0 4
P2 1 3
P3 2 1
  1. Donner, pour chaque processus, l'intervalle de temps pendant lequel il s'exécute.

  2. Calculer le temps d'attente de chaque processus, c'est-à-dire la durée écoulée entre son arrivée et le début de son exécution, puis le temps d'attente moyen, arrondi au centième.

  3. Citer les trois états classiques d'un processus et préciser, à l'instant 3 s, l'état de chacun des trois processus.

Résoudre
Entraîne-toi★★★Pas commencé
Trois processus sont ordonnancés selon la politique du tourniquet avec un quantum de 2 s. Un processus qui n'a pas terminé à la fin de son quantum retourne à la fin de…

Trois processus sont ordonnancés selon la politique du tourniquet avec un quantum de 2 s. Un processus qui n'a pas terminé à la fin de son quantum retourne à la fin de la file des processus prêts. Si un processus arrive à un instant inférieur ou égal à la fin d'une tranche, il est placé dans la file avant le processus interrompu à cet instant.

Processus Instant d'arrivée (s) Durée d'exécution (s)
P1 0 5
P2 1 3
P3 2 4
  1. Construire le diagramme de Gantt de l'exécution, sous la forme d'une suite d'intervalles de temps associés aux processus.

  2. Donner l'instant de fin de chaque processus, puis son temps de séjour (instant de fin moins instant d'arrivée) et le temps de séjour moyen, arrondi au centième.

  3. Mener la même étude avec la règle « premier arrivé, premier servi » sans interruption.

  4. Comparer les temps de séjour moyens obtenus et citer un avantage du tourniquet pour un système interactif.

Résoudre

Ressources et interblocage

Les processus se partagent aussi des ressources : fichier, imprimante, connexion à une base de données. Chacune n'est utilisable que par un seul processus à la fois. Un processus qui demande une ressource occupée passe à l'état bloqué jusqu'à sa libération.

Cela peut mal tourner : l'interblocage (deadlock) est une situation où des processus s'attendent mutuellement, pour toujours. C'est comme quatre voitures arrêtées à un carrefour, chacune attendant que celle de droite démarre.

Il y a interblocage lorsque ces quatre conditions sont réunies :

  1. Exclusion mutuelle : une ressource ne sert qu'à un processus à la fois.

  2. Détention et attente : un processus garde ses ressources en en demandant d'autres.

  3. Pas de réquisition : on ne peut pas retirer une ressource à un processus qui la détient.

  4. Attente circulaire : P1 attend P2, qui attend … , qui attend P1.

Entraîne-toi★★☆Pas commencé
Deux processus P1 et P2 partagent deux ressources R1 et R2, chacune utilisable par un seul processus à la fois. Le processus P1 exécute les actions suivantes : demander…

Deux processus P1 et P2 partagent deux ressources R1 et R2, chacune utilisable par un seul processus à la fois. Le processus P1 exécute les actions suivantes : demander R1, demander R2, utiliser les deux ressources, libérer R2, libérer R1. Le processus P2 exécute : demander R2, demander R1, utiliser les deux ressources, libérer R1, libérer R2. Une demande d'une ressource déjà occupée met le processus en attente jusqu'à sa libération.

  1. Décrire un entrelacement des exécutions de P1 et de P2 qui provoque un interblocage. Préciser quelle ressource détient chaque processus et laquelle il attend.

  2. Décrire un entrelacement des exécutions qui se termine normalement.

  3. Expliquer pourquoi, dans la situation de la question 1, aucun des deux processus ne pourra progresser.

  4. Proposer une modification de l'ordre des demandes de ressources qui élimine tout risque d'interblocage, et justifier.

Résoudre

Routage : RIP, OSPF et plus court chemin

Un message qui traverse Internet est découpé en paquets. Chaque routeur reçoit un paquet et le transmet au routeur suivant, en consultant sa table de routage : pour chaque destination, le prochain routeur et le coût de la route. Le réseau est donc un graphe : routeurs = sommets, liaisons = arêtes.

Deux protocoles de routage au programme :

  • RIP : le coût d'une route est son nombre de sauts (nombre de liaisons traversées). On choisit la route avec le moins de sauts.

  • OSPF : chaque liaison a un coût, calculé à partir de son débit : $\text{coût} = \dfrac{10^9}{\text{débit en bit/s}}$. Ainsi 1 Gbit/s donne 1, 100 Mbit/s donne 10, 10 Mbit/s donne 100. Plus la liaison est rapide, moins elle coûte. On choisit la route de coût total minimal.

Si une liaison tombe en panne, les routeurs recalculent leurs tables avec le graphe restant.

Réseau de quatre routeurs A, B, C et D avec le coût de chaque liaison ACBD 14258

Chercher un plus court chemin

Pour trouver les routes de coût minimal depuis un routeur, on utilise l'algorithme de Dijkstra, version « à la main » : on garde un tableau de distances provisoires, et à chaque étape on retient le sommet non encore retenu de distance provisoire minimale, puis on met à jour ses voisins.

Entraîne-toi★☆☆Pas commencé
Cinq routeurs R1, R2, R3, R4 et R5 sont reliés par les liaisons suivantes : R1–R2, R2–R3, R3–R4, R1–R5 et R5–R4. Le protocole de routage utilisé est RIP, qui minimise le…

Cinq routeurs R1, R2, R3, R4 et R5 sont reliés par les liaisons suivantes : R1–R2, R2–R3, R3–R4, R1–R5 et R5–R4. Le protocole de routage utilisé est RIP, qui minimise le nombre de sauts.

  1. Donner le chemin choisi par RIP pour aller de R1 à R4 et le nombre de sauts correspondant.

  2. Donner la table de routage de R1 sous la forme d'un tableau à trois colonnes : destination, prochain routeur, nombre de sauts. Les destinations sont R2, R3, R4 et R5.

  3. La liaison R1–R5 tombe en panne. Donner le nouveau chemin de R1 à R4 et le nombre de sauts.

Résoudre
Entraîne-toi★★☆Pas commencé
Cinq routeurs sont reliés par les liaisons suivantes. Dans le protocole OSPF, le coût d'une liaison est égal à $10^9$ divisé par son débit en bits par seconde. | Liaison…

Cinq routeurs sont reliés par les liaisons suivantes. Dans le protocole OSPF, le coût d'une liaison est égal à $10^9$ divisé par son débit en bits par seconde.

Liaison Débit
R1–R2 1 Gbit/s
R2–R3 100 Mbit/s
R1–R3 10 Mbit/s
R2–R4 1 Gbit/s
R4–R3 1 Gbit/s
R3–R5 100 Mbit/s
R4–R5 10 Mbit/s
  1. Calculer le coût de chacune des liaisons.

  2. Donner la route choisie par RIP de R1 vers R5 et son coût total au sens d'OSPF.

  3. Donner la route choisie par OSPF de R1 vers R5 et son coût total. Justifier en comparant avec au moins trois autres routes.

  4. Expliquer pourquoi ce problème de routage est un problème de recherche d'un chemin de poids minimal dans un graphe pondéré.

Résoudre
Entraîne-toi★★★Pas commencé
Un réseau est constitué de cinq routeurs A, B, C, D et E. Les coûts OSPF des liaisons sont donnés par le dictionnaire suivant. 1. Dérouler à la main l'algorithme de…

Un réseau est constitué de cinq routeurs A, B, C, D et E. Les coûts OSPF des liaisons sont donnés par le dictionnaire suivant.

reseau = {

    "A": {"B": 2, "C": 1},

    "B": {"A": 2, "C": 2, "D": 5, "E": 10},

    "C": {"A": 1, "B": 2, "D": 8},

    "D": {"B": 5, "C": 8, "E": 3},

    "E": {"B": 10, "D": 3},

}
  1. Dérouler à la main l'algorithme de recherche de plus court chemin depuis A en présentant, à chaque étape, le routeur retenu et les distances provisoires mises à jour.

  2. En déduire la table de routage de A : pour chaque destination, le coût total et le prochain routeur.

  3. La liaison A–B tombe en panne. Recalculer la table de routage de A.

  4. Comparer les coûts de A vers E avant et après la panne, et conclure sur la nécessité, pour OSPF, de recalculer les routes en cas de modification du réseau.

Résoudre

Chiffrement et HTTPS

Les paquets passent par des routeurs inconnus : n'importe qui peut les lire. On les protège par le chiffrement : on transforme le message clair en message illisible avec une clef ; seul celui qui possède la bonne clef sait le déchiffrer. (On ne dit pas « cryptage » ni « décryptage » : déchiffrer, c'est avec la clef, casser un chiffrement, c'est sans.)

Un exemple « débranché » : le chiffrement de César

On décale chaque lettre de $k$ positions dans l'alphabet (en revenant à A après Z). La clef est le nombre $k$. Pour déchiffrer, on décale de $-k$.

En Python, le modulo gère le retour au début de l'alphabet :

def cesar(texte, cle):

    res = ""

    for c in texte:

        res += chr((ord(c) - 65 + cle) % 26 + 65)

    return res

# cesar("LYCEE", 5) renvoie "QDHJJ" ; cesar("QDHJJ", -5) renvoie "LYCEE"

Le chiffrement de César est très faible : il n'y a que 26 clefs possibles, dont la clef 0 qui ne change rien. Un ordinateur les essaie toutes en un instant.

Chiffrement symétrique et asymétrique

Le chiffrement asymétrique règle le problème d'échange de clef. Mais il est lent : on l'utilise juste pour transmettre une clef symétrique, avec laquelle le reste de la communication sera chiffré.

Établir une communication HTTPS (version simplifiée)

Léa se connecte au site de sa banque. Le principe :

  1. Le serveur envoie sa clef publique au navigateur.

  2. Le navigateur génère une clef symétrique aléatoire.

  3. Il la chiffre avec la clef publique du serveur et l'envoie.

  4. Le serveur la déchiffre avec sa clef privée. Lui seul en est capable : un espion qui a tout lu ne peut pas retrouver la clef symétrique.

  5. Les échanges suivants sont chiffrés avec la clef symétrique (rapide), des deux côtés.

La négociation détaillée du protocole (SSL/TLS) n'est pas au programme.

Une illustration : le chiffrement par « ou exclusif »

Le XOR, noté $\oplus$, s'applique bit à bit : $a \oplus b = 1$ si $a \neq b$, sinon $0$. En Python, c'est l'opérateur ^.

$a$ $b$ $a \oplus b$
0 0 0
0 1 1
1 0 1
1 1 0
Entraîne-toi★☆☆Pas commencé
On utilise le chiffrement de César avec la clef 3 : chaque lettre est remplacée par la lettre située 3 positions plus loin dans l'alphabet, en revenant au début après Z.…

On utilise le chiffrement de César avec la clef 3 : chaque lettre est remplacée par la lettre située 3 positions plus loin dans l'alphabet, en revenant au début après Z.

  1. Chiffrer le mot « NSI ».

  2. Déchiffrer le message « HQJLQH ».

  3. Indiquer si ce chiffrement est symétrique ou asymétrique et justifier la réponse.

  4. Expliquer pourquoi ce chiffrement est facile à casser en essayant toutes les clefs possibles. Donner le nombre de clefs non triviales à essayer.

Résoudre
Entraîne-toi★★☆Pas commencé
Léa se connecte au site de sa banque en ligne par le protocole HTTPS. On décrit de façon simplifiée l'établissement de la communication. 1. Rappeler la différence entre…

Léa se connecte au site de sa banque en ligne par le protocole HTTPS. On décrit de façon simplifiée l'établissement de la communication.

  1. Rappeler la différence entre un chiffrement symétrique et un chiffrement asymétrique, en précisant dans chaque cas quelle clef sert à chiffrer et quelle clef sert à déchiffrer.

  2. Ordonner les étapes suivantes.

    a) Le navigateur de Léa chiffre une clef symétrique avec la clef publique du serveur.

    b) Une fois la clef publique du serveur reçue, le navigateur de Léa génère une clef symétrique aléatoire.

    c) Les échanges suivants sont chiffrés avec la clef symétrique.

    d) Le serveur déchiffre la clef symétrique reçue avec sa clef privée.

    e) Le navigateur de Léa obtient la clef publique du serveur.

  3. Expliquer pourquoi une personne qui intercepte la clef publique du serveur et la clef symétrique chiffrée ne peut pas retrouver la clef symétrique.

  4. Expliquer pourquoi on utilise ensuite un chiffrement symétrique plutôt que de continuer avec le chiffrement asymétrique.

  5. Dix personnes veulent pouvoir communiquer deux à deux de façon confidentielle avec un chiffrement symétrique, chaque paire disposant de sa propre clef. Calculer le nombre de clefs nécessaires. Comparer avec le nombre de paires de clefs nécessaires avec un chiffrement asymétrique, chaque personne disposant d'une paire (clef publique, clef privée).

Résoudre
Entraîne-toi★★★Pas commencé
On illustre le chiffrement symétrique par un chiffrement « ou exclusif » (XOR) avec une clef partagée. Pour deux bits $a$ et $b$, $a \oplus b$ vaut 1 si $a$ et $b$ sont…

On illustre le chiffrement symétrique par un chiffrement « ou exclusif » (XOR) avec une clef partagée. Pour deux bits $a$ et $b$, $a \oplus b$ vaut 1 si $a$ et $b$ sont différents et 0 sinon. L'opération s'applique bit à bit à des octets. En Python, l'opérateur correspondant est ^.

  1. On considère le message $m = 01101001$ et la clef $k = 10110010$. Calculer $c = m \oplus k$, puis $c \oplus k$ et comparer avec $m$.

  2. Justifier que, pour tous bits $a$ et $b$, $(a \oplus b) \oplus b = a$. En déduire que le même procédé permet de chiffrer et de déchiffrer.

  3. On considère la fonction suivante.

def chiffre(texte, cle):

    return [ord(c) ^ cle for c in texte]
a) Donner le résultat de `chiffre("NSI", 42)`. On rappelle que `ord("N")` vaut 78, `ord("S")` vaut 83 et `ord("I")` vaut 73.

b) Écrire une fonction `dechiffre(liste, cle)` qui renvoie le texte d'origine.
  1. La clef est un entier compris entre 0 et 255. Donner le nombre de clefs possibles et expliquer pourquoi ce chiffrement est vulnérable à une attaque par force brute.

  2. Pour une clef de 128 bits, donner le nombre de clefs possibles sous la forme d'une puissance de 2.

  3. Expliquer pourquoi la clef partagée pose un problème de transmission entre les deux interlocuteurs, et décrire comment un chiffrement asymétrique permet de le résoudre dans le cadre d'une communication HTTPS.

Résoudre

Vers le début : Lucas peut maintenant répondre à ses trois questions. Son système d'exploitation ordonnance les processus et évite les interblocages. Ses paquets sont routés par RIP ou OSPF sur un chemin de coût minimal. Et HTTPS protège ses données : une clef symétrique, échangée grâce à un chiffrement asymétrique, chiffre toute la communication.

L'essentiel

  • Un processus est un programme en cours d'exécution ; il est prêt, élu ou bloqué. L'ordonnanceur choisit l'élu (« premier arrivé, premier servi », tourniquet avec quantum) ; on présente le résultat par un diagramme de Gantt.

  • Interblocage : des processus s'attendent mutuellement pour toujours (attente circulaire sur des ressources non partageables). On l'évite par exemple en imposant un ordre de demande des ressources.

  • RIP minimise le nombre de sauts ; OSPF minimise la somme des coûts, avec coût $= \dfrac{10^9}{\text{débit}}$. On cherche le plus court chemin dans un graphe en retenant à chaque étape le sommet de distance provisoire minimale.

  • Symétrique : une clef partagée pour chiffrer et déchiffrer. Asymétrique : clef publique pour chiffrer, clef privée pour déchiffrer.

  • HTTPS : le navigateur chiffre une clef symétrique avec la clef publique du serveur ; le serveur la déchiffre avec sa clef privée ; la suite des échanges est chiffrée avec la clef symétrique.

Voir tous les exercices de cette partie