Aller au contenu principal

Exercices de la semaine 2

Ces exercices portent sur les notions vues en classe lors de la semaine 1 ainsi que le contenu du chapitre 1 du manuel du cours.

Réseaux orientés circuit vs réseaux de commutation

Quels sont les avantages d’un réseau orienté circuit lorsque comparés aux réseaux de commutation de paquets? Et les désavantages?

Réponse

Un réseau orienté circuit réserve les ressources nécessaires afin d’assurer un débit constant et une qualité prévisible pour la durée d’une connexion.

Internet n’offre pas d’assurance de qualité de service. Cependant, la bande passante disponible dans les réseaux d’aujourd’hui est élevée, et les services utilisés n’ont généralement pas de requis de qualité de service pour bien fonctionner. Dans la grande majorité des cas, le problème de la bande passante se situe en périphérie du réseau (au niveau des connexions à domicile ou bien au niveau des connexions des différents fournisseurs de contenu). Depuis plusieurs années, il est possible d’effectuer des appels vidéos et même « streamer » des films en haute résolution1 sans interruption sur Internet.

Les réseaux de circuits possèdent plusieurs désavantages lorsque comparés aux réseaux à commutation de paquets, tels qu’utilisés pour Internet. Entre autres, ils gaspillent beaucoup de ressources puisque le lien ne peut être utilisé par d’autres appareils lors des « temps morts » de la connexion. Ces réseaux sont aussi plus sujets à des interruptions puisque la connexion peut être coupée si une panne survient à n’importe quel endroit sur le lien. En effet, l’état de la connexion est conservé dans le réseau, ce qui n’est pas le cas des réseaux à commutation de paquet.

Réseaux à commutation de paquets et nombre de bits

Pour quelle raison est-ce qu’un réseau à commutation de paquets nécessite plus de bits pour transférer la même quantité d’information qu’un réseau de circuits?

Réponse

Puisqu’il n’y a pas de connexion réservée entre les deux clients, chaque paquet est transmis indépendamment, et doit donc contenir l’information nécessaire pour être acheminés vers la destination finale. On utilise un entête qui nécessite une quantité d’espace réseau. Un entête peut contenir d’autres informations (temps de vie, numéro de séquence, type de paquet, code de correction d’erreur), ce qui augmente la taille des données à transférer.

Service au meilleur effort

Décrivez, en vos mots, le concept de service de livraison au mieux (best effort delivery). Le protocole IP (routage) est-il un exemple de protocole appliquant ce principe? Qu’en est-il de TCP? N’hésitez pas à aller consulter les pages Wikipedia de chaque protocole avant de répondre à la question.

Réponse

La livraison "best-effort" ne garantit pas la livraison des données sans erreurs ou lacunes, tandis que la livraison fiable assure que les données sont livrées sans erreur et dans l'ordre.

Oui, IP est un exemple de protocole incarnant le best effort delivery. Ce n’est pas le cas de TCP, offre une livraison fiable et qui procède même à des retransmissions lorsque les données ne se rendent pas à destination.

Protocoles de transport utilisés par vos applications

Donnez un exemple d’une application Internet que vous utilisez régulièrement sur votre ordinateur. Servez-vous de Wireshark pour analyser des paquets provenant de cette application. Quel est le protocole de transport utilisé par votre application? Sachant que TCP offre un transport fiable de données, alors qu’UDP offre un service au mieux, expliquez pourquoi un protocole de transport a été choisi plutôt que l’autre dans le cas de votre application.

Réponse

La plupart des applications web utilisent HTTP comme protocole applicatif pour transférer des données. HTTP utilise TCP comme protocole de transport. Dans le cas d’une page web, obtenir l’intégrité de la page sans erreurs est bien plus important que le délai supplémentaire subi à cause des retransmissions.

Pour des applications où les délais d’attente sont plus nuisibles (application temps réel comme les applications d’appel vidéo, de live-streaming ou des jeux vidéos), UDP est plus commun. Dans un appel vidéo, il est préférable de perdre un paquet complètement que de le recevoir en retard. L’application n’a aucun intérêt à présenter une partie du vidéo avec une seconde de retard, et les applications utilisent des codeurs et décodeurs (codecs) qui sont tolérants aux pertes de données.

Votre ordinateur personnel comme un routeur

En vous fiant à la figure 1-4 du manuel du cours, croyez-vous que votre ordinateur personnel pourrait accomplir le mandat d’un routeur?

Réponse

Oui, votre ordinateur personnel peut probablement accomplir les mêmes tâches qu’un routeur. Cependant, celui-ci ne possède pas le matériel spécialisé offrant un acheminement de paquets à très haut débit. Votre ordinateur serait donc bien moins performant qu’un routeur moderne.

Couches de la pile réseau supportées par votre routeur

La Figure 1-4 du manuel du cours présente les couches réseau typiquement implémentées par un routeur. On y observe que le routeur implémente les couches 1, 2 et 3 de la pile Internet. Cependant, en pratique, le routeur implémente aussi souvent les couches 4 et 5. Pourquoi est-ce le cas?

Réponse

Le routeur implémente souvent les couches 4 et 5 pour permettre la configuration à distance. Il est souvent possible de se connecter à distance à un routeur, soit par une interface web ou par SSH. Vous pouvez tester l’interface web de votre routeur à la maison en entrant son adresse IP dans votre fureteur. Celui-ci fera une requête HTTP à votre routeur et vous obtiendrez probablement une interface web pour configurer votre routeur.

Vous pouvez obtenir le default gateway en utilisant la commande

ip route show
remarque

Si vous utilisez WSL, le default gateway ne représente pas l’adresse IP de votre routeur. Vous pouvez alors utiliser un programme comme traceroute et utiliser le deuxième saut pour déterminer l’adresse IP de votre routeur.

Protocole de transport utilisé par HTTP

Quel est, selon vous, le protocole de transport utilisé par HTTP? Interrogez-vous sur la qualité de service que vous désirez lorsque vous transférez des fichiers sur le web. Rappelez-vous aussi que TCP assure un transport fiable des données alors qu’UDP ne le fait pas. En contrepartie, UDP maintient les limites entre les messages (vous décidez précisément ce qui est envoyé à dans quel paquet) et vous laisse en contrôle de la retransmission des paquets.

Réponse

Jusqu’à sa deuxième version (HTTP/2.0) inclusivement, HTTP utilise TCP comme protocole de transport. Dans le cas des documents transférés sur le web, les temps d’attente dus aux retransmissions de paquets nuisent peu à l’expérience de l’utilisateur. Les retransmissions sont aussi nécessaires puisque l’on veut obtenir l’intégrité du document sans bits manquants.

Depuis HTTP/3 (QUIC), le protocole de transport utilisé est UDP. QUIC implémente la retransmission au niveau applicatif puisqu’UDP est un service au mieux. Le protocole permet aussi de crypter les connexions sans avoir à procéder à un handshake supplémentaire pour configurer TLS, contrairement à HTTPS. QUIC divise aussi les données reçues en plusieurs flots. La retransmission est gérée indépendamment entre les différents flots, ce qui améliore grandement la qualité de service.

Visitez votre site préféré par son adresse IP

Naviguez sur le site web www.ulaval.ca à l’aide de votre fureteur. Utilisez ensuite dig pour obtenir l’adresse IP associée au nom de domaine ulaval.ca. Entrez l’adresse IP obtenue dans votre fureteur. Y a-t-il eu une différence entre les deux requêtes (avec le nom du serveur et avec l’adresse IP)?

Réponse

Il est possible que votre fureteur vous ait averti d’une connexion non sécurisée lors de la requête à partir de l’adresse IP. En effet, les certificats TLS sont typiquement enregistrés pour valider l’authenticité d’un nom de domaine et non une adresse IP. Votre fureteur ne peut donc pas initialement valider l’identité du serveur.

Architecture TCP/IP et protocoles à couches

Quels sont les avantages d’une architecture des protocoles à couche?

Réponse

Une architecture à couches comme celle présentée à la Figure 1-5 du manuel du cours permet de découpler les fonctionnalités implémentées à chaque couche. Ce faible couplage permet d’apporter des modifications à l’une des couches sans impacter les autres, ce qui accélère l’innovation.

Expliquez la distinction entre la couche réseau et la couche transport dans TCP/IP

Réponse

Dans TCP/IP, la distinction entre la couche réseau et la couche transport est importante : la couche réseau (IP) fournit un service de datagramme non fiable et doit être mise en œuvre par tous les systèmes joignables sur Internet. Les couches transport (TCP et UDP) offrent quant à elles un service de bout en bout aux applications exécutées sur les hôtes finaux.

Quelle est la différence entre TCP et UDP et quand utiliseriez-vous l'un plutôt que l'autre ?

Réponse

TCP (Transmission Control Protocol) et UDP (User Datagram Protocol) sont les deux principaux protocoles de la couche de transport, offrant des services différents aux applications :

  • TCP : Fournit un flux de données fiable, ordonné et orienté connexion. Il gère la retransmission en cas d'erreurs ou de perte de données, le contrôle de flux et la gestion de la congestion. TCP est utilisé pour des applications sensibles à la perte de données, comme la navigation Web, le courrier électronique et le transfert de fichiers.
  • UDP : Fournit un service de datagramme non fiable et sans connexion. Il est léger et ne n’offre pas de retransmission en cas de détection d'erreurs ou la gestion de flux. Utilisé pour des applications sensibles à la latence

Multiplexage dans les réseaux

Dans la figure 1-5 du manuel du cours, identifiez à quelles couches on retrouve un service de multiplexage et démultiplexage.

Réponse

Toutes les couches implémentent du multiplexage / démultiplexage, excepté la couche application et la couche liaison. La couche application ne démultiplexe pas l’information reçue, car le processus reçoit directement le message de la couche transport. La couche liaison ne multiplexe pas les données à transmettre, car elle transmet les données directement à l’interface réseau (physique).

Délais dans un réseau de commutation de paquets

Identifiez et expliquez les 4 sources qui affectent le délai de transmission des données dans un réseau de commutation de paquets.

Réponse

  • Délai de propagation : Temps nécessaire à la propagation du signal dans le média de transmission. Ce temps est fixe, et est déterminé par la longueur du lien et la vitesse de propagation du signal.
  • Délai de transmission : Le délai de transmission est une fonction du temps requis par l’interface réseau pour transmettre les bits d’un paquet sur le média de transmission. Ce délai est fixe pour une interface donnée, et est une caractéristique de l’interface réseau (ex. 1 Gbps = 1 milliard de bits par secondes sur le réseau).
  • Délai de traitement : Ce délai est le temps requis par l’appareil réseau pour traiter un paquet réseau reçu : vérification d’erreur, consultation des tables de réacheminement, modification des entêtes, etc. Ce délai est normalement très faible et généralement fixe.
  • Délai de mise en file d’attente : Le délai de mise en file d’attente (queuing delay) dépend du nombre de paquets en attente de transmission dans la mémoire d’une interface. Si aucun paquet n’est en attente, ce délai est zéro. Si au contraire la quantité de trafic est élevée, le nombre de paquets en attente augmentera, ainsi que le délai de mise en file d’attente. Ce délai est variable, et varie selon la quantité de trafic sur le réseau.

Sécurité

Quelles sont certaines des vulnérabilités de sécurité associées à l'architecture TCP/IP ?

Réponse

L'architecture TCP/IP, dans sa conception originale, n'incluait pas de mécanismes de sécurité robustes. À ce jour, il existe des vulnérabilités telles que :

  • Usurpation d'adresse IP (IP spoofing) : Des attaquants peuvent falsifier l'adresse IP source dans les paquets IP, ce qui rend difficile la traçabilité des paquets malveillants. C'est une technique communément utilisée pour des attaques de déni de service.
  • Attaques par déni de service (DoS) : Les attaquants peuvent submerger les serveurs ou les réseaux avec du trafic, les rendant indisponibles aux utilisateurs légitimes. Il est encore difficile aujourd'hui de se protéger contre ce type d'attaque.
  • Manque de confidentialité et d'intégrité : Les protocoles TCP/IP n'ont pas été conçus à l'origine avec des mécanismes de chiffrement et de protection d'intégité des données, ce qui les rendait vulnérables à l'écoute clandestine et à la manipulation. Des protocoles tels que TLS/SSL ont été développés pour répondre à ces préoccupations durant le transport des données sur le réseau IP.

Notes de bas de page

  1. Netflix transfère jusqu’à 7GB de données par heure d’écoute pour du contenu en 4K. Voir https://help.netflix.com/en/node/87.