\begin{exercise}[subtitle={Découverte des réseau}, step={1}, origin={Ma tête}, topics={ Réseau }, tags={ Réseau, IP }]
  Cet exercice se fait avec le logiciel \href{https://www.lernsoftware-filius.de/Herunterladen}{Filius}. C'est un logiciel que vous pouvez télécharger et installer librement sur votre ordinateur.

  \begin{enumerate}
    \item Récupérer et ouvrir avec Filius le fichier \texttt{complet.fls}
    \item Décrire le matériel dont est composé ce réseau de réseaux.
    \item Repérer l'ordinateur de Josy ainsi que le serveur opytex.org.
    \item Lancer le mode simulation \includegraphics[scale=0.5]{./fig/simulation}, attendre une petite minute puis régler la vitesse à 10\% \includegraphics[scale=0.5]{./fig/vitesse_10}.
    \item Ouvrir l'ordinateur de Josy, placer la fenêtre de tel sorte que vous puissiez voir l'ensemble du réseau, lancer le navigateur web, se connecter au site \texttt{opytex.org} puis observer le chemin des messages échangés (ils s'illuminent en vert). Noter le chemin parcouru jusqu'à l'obtention de la page web demandé.
    \item En cliquant avec clic-droit sur l'ordi de Josy, afficher les données échangées. S'il y a déjà des choses dans cette table, vider les tables. Relancer la connection avec le navigateur sur \texttt{opytex.org} et observer la table des données échangées.
      \begin{enumerate}
        \item Quels sont les protocoles des échanges ?
        \item Qui sont les sources et les destinataires ?
        \item Cliquer sur une trame HTTP et noter le contenu. Que reconnaissez-vous ?
      \end{enumerate}
  \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Liaison directe}, step={2}, origin={Ma tête}, topics={ Réseau }, tags={ Réseau, IP }]
  Dans cet exercice, vous allez mettre en réseau deux ordinateurs et leur faire échanger des informations.
  \begin{enumerate}
    \item Ouvrir Filius et sélectionner le mode construction \includegraphics[scale=0.5]{./fig/construction}.
      \begin{enumerate}
        \item Ajouter deux ordinateurs portables et relier les avec un cable.
        \item En faisant un clic droit sur un des deux ordinateurs puis en cliquant sur \texttt{configurer}, renommer le en \texttt{ordi1} puis donner lui l'adresse IP \texttt{192.168.0.1}.
        \item Faire la même chose avec le deuxième ordinateur en le nommant \texttt{ordi2} et en lui donnant l'adresse IP \texttt{192.168.0.2}.
      \end{enumerate}
    \item Aller dans le mode simulation \includegraphics[scale=0.5]{./fig/simulation}.
      \begin{enumerate}
        \item Faire un clic droit sur \texttt{ordi1} puis ajouter \texttt{Ligne de commande} dans les logiciels installés et appliquer les modifications.
        \item Ouvrir la ligne de commande et tapper \mintinline{bash}{ping 192.168.0.2}. Décrire ce qui se passe (pensez à observer votre réseau)
        \item Ouvrir le tableau des données échangées (clic droit sur un des ordinateurs).
        \item Noter les protocoles utilisés pour échanger des données.
        \item Qu'est-il échangé lors des deux premiers échanges ARP?
        \item Qu'est-il échangé lors des échanges ICMP?
      \end{enumerate}
  \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Relier plus de deux ordinateurs}, step={2}, origin={Ma tête}, topics={ Réseau }, tags={ Réseau, IP }]
  Ce TP se base sur le fichier \texttt{switch.fls}.
  \begin{enumerate}
    \item Décrire les éléments de ce réseau puis se mettre en mode simulation.
    \item La commande \mintinline{bash}{arp} permet de connaître les associations adresse IP et adresse MAC connu par un ordinateur. Sur le poste P1, noter la réponse de la commande \mintinline{bash}{arp}.
    \item Lancer un \mintinline{bash}{ping} vers 192.168.0.2 depuis P1. Relancer la commande \mintinline{bash}{arp} et noter le contenu.
    \item Sur chacun des ordinateurs ouvrir le tableau des échanges.
    \item Décrire ce qui se passe au niveau des échanges ARP.
    \item Avec la commande \mintinline{bash}{ping}, faire en sorte que la table arp contienne tous les ordinateurs du réseau.
    \item À quoi ressemble une adresse MAC?
  \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Protocole du bit alterné}, step={2}, origin={Inspiré de https://glassus.github.io/premiere_nsi/T3_Architecture_materielle/3.4_Protocoles_de_communication/cours/}, topics={ Réseau }, tags={ Réseau, IP }]
  Alice souhaite envoyer un message à Bob. Elle a découpé ce message en 4 morceaux M1, M2, M3 et M4. Elle envoie les morceaux de messages un par un.
  \begin{enumerate}
      \item On suppose que tout se passe bien. Faire un schéma pour illustrer la situation ainsi que le message reçu par Bob.
      \item Imaginer des problèmes qui peuvent arriver et qui feraient que Bob n'arrive pas à avoir le bon message.
      \item On suppose que le deuxième morceau n'arrive jamais.
          \begin{enumerate}
              \item Refaire le schéma de la situation.
              \item Que pourrait-on mettre en place pour garantir que dans ces conditions, le message arrive bien au complet à Bob?
              \item Alice et Bob se mettent d'accord pour que Bob renvoie un accusé de réception (ACK) et que si Alice ne le reçoit pas après un certain temps, elle renvoie le morceau. Expliquer à travers votre schéma en quoi ces mesures permettent alors à Bob d'avoir le bon message.
          \end{enumerate}
      \item On suppose maintenant que c'est l'accusé de réception de M2 qui n'arrive jamais. Quel message aura alors reçu Bob?
  \end{enumerate}
    Ils décident alors qu'Alice ajoute bit de contrôle appelé FLAG. Le premier message aura un FLAG égal à 0. Ensuite Bob ajoutera à son accusé de réception un FLAG lui aussi égal à 0. Tant que qu'elle n'a pas reçu d'accusé de réception avec le FLAG égal à 0 elle renverra le même message avec le même FLAG. Quand elle reçoit l'accusé de réception avec un FLAG égal à 0, elle envoie le morceau suivant avec le FLAG égal à 1 et ainsi de suite. Bob enverra toujours un accusé de réception avec le FLAG égal à celui du message.
  \begin{enumerate}
      \setcounter{enumi}{4}
      \item Montrer que ce protocole, permet à Bob de recevoir le bon message dans les 3 cas suivants:
          \begin{itemize}
              \item Un morceau n'arrive jamais.
              \item Un accusé de réception n'arrive jamais.
              \item Un morceau arrive après le même message renvoyé par Alice.
          \end{itemize}
  \end{enumerate}
  Ce protocole est appelé \textbf{bit alterné}
\end{exercise}


\begin{exercise}[subtitle={Relier plusieurs réseaux}, step={3}, origin={Ma tête}, topics={ Réseau }, tags={ Réseau, IP }]
  Ce TP se base sur le fichier \texttt{routeur.fls}.
  \begin{enumerate}
    \item Décrire les éléments de ce réseau. Identifier les deux réseaux reliés et le matériel qui permet de les relier.
    \item Entrer en mode simulation.
    \item Échanges dans un réseau
      \begin{enumerate}
        \item Depuis le poste P1, noter l'état la table arp puis lancer un ping vers P2.
        \item Quel matériel a été sollicité par ce ping?
        \item Noter à nouveau l'état de la table arp de P1.
      \end{enumerate}
    \item Échange entre réseaux
      \begin{enumerate}
        \item Depuis le poste P1? Lancer un ping vers P4.
        \item Quel matériel a été sollicité par ce ping?
      \end{enumerate}
    \item Pour suivre le chemin fait par un paquet pour relier P1 et P4, on peut utiliser la commande \mintinline{bash}{traceroute 192.168.1.2} depuis P1. Noter la réponse de cette commande.
    \item Repasser en mode construction
      \begin{enumerate}
        \item Après avoir fait clic droit sur P1 et configurer, noter l'adresse IP, le masque et la passerelle (on appelle ces informations configuration réseau)
        \item Idem pour les postes P2, et P4. Comparer ces informations.
        \item On souhaite faire passer P4 sur l'autre réseau. Supprimer le cable et recabler l'ordinateur au bon réseau. Comment reconfigurer le réseau pour qu'il puisse échanger avec tous les ordinateurs des deux réseaux?
      \end{enumerate}
  \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Routage}, step={3}, origin={https://frederic-junier.org/NSI/premiere/chapitre25/tp/TP-Filius-NSI-2020V1.pdf}, topics={ Réseau }, tags={ Réseau, IP }]
  Ce TP se base sur le fichier \texttt{routage.fls}.
  \begin{enumerate}
    \item Décrire les réseaux présents dans ce grand réseau.
    \item Récupérer les adresses IP des ordinateurs \texttt{M14} et \texttt{M9}.
    \item Vérifier avec un ping que la communication est possible entre ces deux machines.
    \item Lancer un \mintinline{bash}{traceroute} depuis \texttt{M14} vers \texttt{M9}. Quel est le chemin emprunté pour échanger des messages entre ces deux machines ?
    \item Supprimer le cable réseau reliant le routeur F et le routeur E (avec un clic droit). Relancer le \mintinline{bash}{traceroute} entre \texttt{M14} et \texttt{M9} (il est possible que la commande n'arrive pas à destination, si c'est le cas, il faudra attendre quelques minutes le temps que les tables de routages se mettent à jour).
    \item Que peut-on conclure sur le routage des paquets?
  \end{enumerate}
\end{exercise}
