Exercices de la semaine 10
Best effort delivery
Expliquez ce que signifie le concept du service au meilleur effort ou best effort delivery pour IP.
Fournissez un exemple de décision d’ingénierie en lien avec IP suivant la philosophie du best effort delivery.
Réponse
Le best effort delivery signifie que les paquets seront acheminés à la bonne destination si possible, mais sans aucune garantie. Si une situation malencontreuse survient lors de l’acheminement d’un paquet, un routeur peut tout simplement détruire le paquet, ce qui fournit une échappatoire au routeur lorsque sa mémoire d’entrée ou de sortie est pleine.
Cette approche reflète le principe bout-en-bout (end-to-end) qui a largement influencé le développement de TCP/IP: Les fonctions tels qu'offrir une livraison paquets dans l'ordre et de retransmettre les paquets manquants sont implantés en périphérie (dans les postes) et non dans le réseau.
Maintien de l'ordre des messages avec IP
Vous développez une application internet nécessitant l’acheminement de datagrammes dans un certain ordre. Pouvez-vous compter sur IP pour effectuer ce travail?
Réponse
Non, IP ne fournit aucune garantie quant à l’ordre d’arrivée des paquets. Cela est dû au fait qu’IP est un service au meilleur effort et qu’il ne maintient pas de connexion.
Cependant, certains protocoles de plus haut niveau dans la pile internet fournissent cette garantie.
Somme de contrôle IP
Pourquoi implémenter une somme de contrôle au niveau d’IP? Les protocoles de transport n’implémentent-ils pas déjà une somme de contrôle lorsque nécessaire?
Réponse
Il est d’abord important de noter que la somme de contrôle IP ne couvre que l’entête. La somme de contrôle IP ne couvre donc pas les mêmes données que celle des protocoles de transport!
Cependant, la question reste quant à l’utilité d’une somme de contrôle au niveau d’IP. De plus, puisque
le champ TTL
est modifié à chaque saut, la somme de contrôle est recalculée à chaque saut.
Aujourd’hui, les protocoles comme Ethernet et Wifi offrent une détection d’erreur efficace à la couche liaison. Combiné avec une somme de contrôle à la couche transport, une somme de contrôle à la couche réseau n’ajoute pas de protection significative. En fait, la somme de contrôle n’existe plus dans l’entête IPv6.
Dernière version d'IP
En théorie, quel serait le numéro de la dernière version d’IP possible en conservant le format d’entête courant. Supposez que les versions seront toujours nommées en ordre croissant.
Réponse
Puisque 4 bits sont alloués au champ version pour les entêtes IPv4 et IPv6, la version maximale d’IP serait IPv15.1
Trames plus grandes que le MTU
Que se passe-t-il lorsqu’un datagramme IPv4 arrive à un routeur qui doit envoyer la trame correspondante sur un lien ne supportant pas la taille de la trame? Que se passe-t-il pour un datagramme IPv6?
Réponse
Le datagramme sera fragmenté. Des trames seront créées permettant de respecter le MTU du lien. Chaque fragment sera identifié et se comportera comme un datagramme à part entière jusqu’à son arrivée à destination. Les fragments ne seront assemblés qu’une fois arrivé à destination.
Dans le cas d’IPv6, le datagramme sera abandonné par le routeur. Le routeur produira un message d’erreur délivré par le protocole ICMP à la source du datagramme. Ce sera alors à la source (et non au routeur) de fragmenter le datagramme en plusieurs plus petits fragments respectant le MTU ayant causé la perte du datagramme.
Taille des trames
Un datagramme IPv4 de 1500 octets arrive à l’entrée d’un lien ayant un MTU de 1500 octets. Quelle sera la taille de la trame Ethernet envoyée sur le lien? Le datagramme sera-t-il fragmenté?
Réponse
La trame Ethernet comportera 1518 octets puisque l’entête Ethernet comporte 18 octets (en comptant le CRC à la fin de la trame).
Non, le datagramme ne sera pas fragmenté. Le MTU est la taille maximale du contenu (payload) d’une trame Ethernet, et non la taille de la trame elle-même. Le datagramme respecte le MTU Ethernet pour ne pas être fragmenté.
Fragmentation
Un datagramme IPv4 de 1500 octets est envoyé du poste A au poste B.
Le datagramme est-il fragmenté? Si oui, à quel endroit est-il fragmenté? À quel endroit est-il réassemblé?
Réponse
Oui, le datagramme sera fragmenté. Il sera fragmenté par le routeur R22, puis réassemblé par le poste B. Les routeurs ne réassemblent jamais de datagrammes fragmentés.
Fragmentation (suite)
Un datagramme IPv6 de 1500 octets est envoyé du poste A au poste B.
Le datagramme est-il fragmenté? Si oui, à quel endroit est-il fragmenté? À quel endroit est-il réassemblé?
Réponse
Le routeur B envoie un message d’erreur au poste A indiquant la limite du MTU de 1400 octets. Le poste A pourra diminuer la taille du datagramme selon le message d’erreur reçu et retransmettre.
Champ protocol
de l'entête IPv4
À quoi sert le champ protocol
de l’entête IPv4?
Réponse
Le champ protocol
sert à identifier le protocole des données contenues dans le datagramme. Cette
valeur est utilisée pour démultiplexer les datagrammes en fonction du protocole de transport (ou autre)
transporté par IP. Dans l’entête IPv6, le champ Next Header
rempli ce rôle.
Introduction au routage
Un datagramme a pour adresse destination 132.203.189.82
. Le datagramme entre dans le routeur
R1 par l’interface eth0
. La table de routage du routeur R1 est implémentée comme suit.
Préfixe | Interface |
---|---|
0.0.0.0/32 | eth0 |
132.203.189.96/28 | eth1 |
132.203.189.64/26 | eth2 |
132.203.189.0/24 | eth3 |
Par quel interface le datagramme est-il acheminé?
Réponse
Le datagramme sera acheminé vers l’interface eth2
.
Les préfixes associés aux interfaces eth0 et eth3 correspondent bien à l’adresse destination du datagramme.
Cependant, ces préfixes sont moins spécifiques que celui de l'interface eth2
. Le routeur choisi le chemin où le match le plus long du préfixe est obtenu.
Bien que 132.203.189.96/28
soit plus spécifique que 132.203.189.64/26
, le préfixe associé à
l’interface eth1
ne correspond pas à l’adresse destination. Vous pouvez comparer la représentation en
binaire de 82 et 96 pour vous en convaincre.
132.203.189.64/26
est ainsi le préfixe le plus spécifique qui correspond avec l’adresse destination du datagramme.
Introduction au routage (suite)
Soit la table de routage suivante. Vers quelle interface sera dirigé un datagramme dont la destination est:
132.203.33.144
?132.203.34.1
?132.203.36.11
?255.255.255.255
?
Préfixe | Interface |
---|---|
132.203.0.0/16 | eth0 |
132.203.32.0/22 | eth1 |
132.203.32.0/24 | eth2 |
132.203.33.0/25 | eth3 |
default | eth4 |
Réponse
132.203.33.144
sortira sur l'interfaceeth1
132.203.34.1
sortira sur l'interfaceeth1
132.203.36.11
sortira sur l'interfaceeth0
255.255.255.255
est une adresse de broadcast limitée au sous-réseau. Il ne sera pas acheminé par le routeur IP.
Boucles dans un réseau IP
STP (Spanning Tree Protocol) permet d’éviter les boucles dans un réseau Ethernet. Existe-t-il un problème similaire pour IP?
Réponse
Non, le protocole IP n’a pas de problème équivalent. IP implémente un champ TTL
(ou Hop Limit dans
le cas d’IPv6). Un paquet ne peut donc pas boucler bien longtemps avant d’être détruit par un routeur.
Rôle des plans sur les routeurs
Le routeur est représenté par deux plans: le plan de commutation et le plan de contrôle. Quelles sont les fonctionnalités respectives de chacun de ces plans?
Réponse
Le plan de contrôle calcule la table de routage. C’est ainsi dans le plan de contrôle que les algorithmes de routage sont implémentés. Le plan de contrôle contient les services plus lents et typiquement calculés à l’avance par le routeur.
Le plan de commutation contient la matrice de commutation. Il contient aussi la table d’acheminement (programmée dans la mémoire des interfaces d’entrée) calculée par le plan de contrôle. Le rôle du plan de commutation est d’utiliser l’information du plan de contrôle afin d’acheminer des datagrammes le plus rapidement possible.
Matrice de commutation
Quel est le rôle de la matrice de commutation dans un routeur? Quelles sont les conséquences d’une matrice de commutation trop lente pour la quantité de datagrammes à traiter?
Réponse
La matrice de commutation achemine les datagrammes à l’entrée du routeur vers leur interface de sortie correspondant.
Lorsque la matrice de commutation est trop lente, des datagrammes s’accumulent dans la mémoire d’entrée du routeur. Si la mémoire d’entrée du routeur est trop pleine, celui-ci pourrait décider de supprimer certains datagrammes.
Architecture d'un routeur
Remplissez le diagramme suivant en répondant aux questions ci-dessous.
- À quel endroit trouve-t-on la table d’acheminement?
- À quel endroit se retrouvent les processus de protocole de routage?
- À quel endroit retrouve-t-on la prise de décision pour l’acheminement du datagramme IP?
- Expliquer à quel endroit un datagramme IP est sujet à un délai de mise en file d’attente.
- À quel endroit un datagramme IP peut-il être supprimé, et expliquez la cause.
Réponse
- Dans les ports (interfaces) d'entrée
- Dans le processeur de routage (plan de routage)
- Dans les ports (interfaces) d'entrée
- Un délai de mise en file d'attente se produit dans l'interface de sortie, et survient lorsque plusieurs datagrammes en entrée sont dirigés vers une même interface de sortie. Une mise en file d'attente peut survenir sur l'interface d'entrée lorsque un bloquage en tête de ligne survient (Head of line blocking). Ce bloquage survient lorsque des datagrammes sont en attente de la matrice de commutation.
- Un datagramme peut être supprimé à l'interface de sortie lorsque survient un dépassement de la mémoire disponible.
Notes de bas de page
-
https://www.iana.org/assignments/version-numbers/version-numbers.xhtml ↩
-
Plus de détail sur la fragmentation sera couvert au chapitre 10: UDP. ↩