You are on page 1of 9

[IP101] TD1 diallo.med@gmail.

com

1 Performance de la commutation de paquets


Question1
On considère dans le réseau ci-dessous, tous les paquets d’un même message empruntent la
même route. En admettant que le temps de transfert sur le support et que le traitement soient
nuls, seul le temps d’émission des paquets sur le support intervient pour déterminer les perfor-
mances.

Le message de longueur L (en bits) est découpé en p paquets émis sur les différents supports à
un même débit de D bit/s. A l’instant t0 , le paquet 1 est émis sur le lien 1. Ce paquet est reçu
par le noeud 1 à t0 + tp où tp est le temps de transmission d’un paquet.
(a) Calculez le temps de traversée Tp du réseau par le message. (En admettant que le temps
de traitement dans le noeud soit nul)
(b) Modifiez la formule pour prendre en compte les entêtes de la couche réseau.
(c) Discutez les paramètres impactant les performances.
(d) Comment concilier les avantages de la commutations de paquets avec ceux de la commu-
tation de circuit.
Question2
Deux réseaux LAN de type Ethernet (MTU=1500 octets) sont interconnectés par un WAN.
On vous demande de calculer le temps nécessaire à l’envoi d’un message de 1480 octets dans
les conditions suivantes :
– le protocole réseau nécessite 20 octets d’en-tête (Hn)
– le protocole de ligne utilisé sur les liens du WAN rajoute 8 octets d’en-tête (Hl).
et pour les différents modes suivants
(a) En mode commutation de circuits.
(b) En mode de commutation de messages (dans les mêmes conditions, c’est à dire par blocs
de 1500 octets). Le réseau comporte 5 noeuds intermédiaires.
(c) En mode commutation de paquets (mode non connecté, mais les datagrammes seront
supposés emprunter le même chemin). Le réseau comporte cinq noeuds hors organes d’ex-
trémité. Faire le calcul pour une MTU de 57, 168, 316 octets. Rappelons que le LAN
transmet au routeur des trames de MTU 1 500 octets, c’est le routeur qui a en charge
l’adaptation des unités de données au réseau (segmentation).
Le débit des liens sera supposé de 64 kbit/s, les temps de traitement et des stockages intermé-
diaires seront considérés comme nul. On ne tiendra pas compte des temps d’émission sur les
réseaux locaux, seul sera pris en compte le temps de traversée du WAN. Quels commentaires
pouvez-vous faire ?

2015/2016 IP101 M1
IP101 2015/2016 Page 2 sur 9 2015/2016

2 HTTP et Web
Question3
Quelles sont les informations nécessaires à un processus client pour pouvoir contacter un
processus serveur ? On supposera que ces deux processus s’exécutent sur des machines hôte
distinctes. Dans le cas d’une requête HTTP, le processus distant correspond au serveur
Web que le processus client tente de contacter. Quelles sont les informations nécessaires
au processeur client pour joindre le serveur Web ?
(a) HTTP est un protocole caractérisé comme étant sans état ou stateless. Quelles sont les
conséquences de ce choix sur la conception de HTTP ?
(b) Pourquoi HTTP utilise-t-il les services de TCP et non ceux offerts par UDP ? Etait-il
envisageable de concevoir les applications Web en utilisant les services de UDP ? Si oui, à
quelles conditions ?
(c) Quelle(s) version(s) de HTTP autorise l’ouverture simultanée de plusieurs connexions TCP
entre un client Web et le même serveur Web ? On supposera qu’il s’agit pour le client de
récupérer une page contenant plusieurs objets. (Ces objets appelés aussi ressources sont
par exemple des images.)
Question4
(a) Expliquez la notion de connexions persistantes introduite avec la version 1.1 de HTTP. En
quoi cette version diffère-t-elle des versions précédentes ?
(b) Dans HTTP/1.1, on distingue les connexions persistantes avec ou sans pipelining. Quelles
différences apporte le pipelining à HTTP ?
(c) Donnez au moins deux raisons qui ont plaidé en faveur de l’utilisation de connexions TCP
persistantes et du support du pipelining.
(d) Pourquoi certains navigateurs Web désactivent-ils le support du pipelining par défaut ?
Question5
On utilise HTTP pour charger une page Web contenant trois images HTTP. Dessinez trois
diagrammes de temps qui représentent les échanges de messages HTTP entre client et serveur
selon que l’on utilise :
(a) HTTP avec connexions non persistantes,
(b) HTTP avec connexions persistantes mais sans support du pipeling et
(c) HTTP avec connexion persistante et support du pipelining. Vous représenterez la phase
d’établissement des connexions TCP ; on supposera que le piggybacking est utilisé dès que
possible.
Question6
Une page Web est constituée de 10 objets : le fichier HTML principal, 8 images au format jpeg
et un fichier audio au format mp3 (musique de fond).
– Ces 10 objets ont chacun une taille suffisamment petite pour tenir dans un même segment
TCP, i.e. un segment suffit à transférer chaque objet.
– Hormis le fichier HTML dont la taille est suffisamment petite pour négliger son temps de
transmission, les 9 autres objets sont supposés avoir une taille identique et leur temps de
transmission respectif sera noté Tt .
– La durée de l’aller-retour entre le client et le serveur reste constante tout au long de l’échange
et sera notée RTT.

2015/2016 M1
IP101 2015/2016 Page 3 sur 9 2015/2016

– On supposera qu’aucune perte n’advient durant le téléchargement de la page.


– Les temps nécessaires pour établir et terminer une connexion TCP seront respectivement
notée To et Tf .
(a) Exprimez la durée nécessaire pour télécharger la page complète selon que la version de
HTTP utilisée supporte :
i. les connexions non persistantes ;
ii. les connexions persistantes sans pipelining ;
iii. les connexions persistantes avec pipelining.
(b) Supposez à présent que le client décide d’utiliser des connexions non persistantes : pour
chaque objet à télécharger, le client demande l’ouverture d’une connexion. Quelle est à pré-
sent la durée nécessaire pour télécharger la page complète si le client utilise des connexions
parallèles ?

2015/2016 M1
IP101 2015/2016 Page 4 sur 9 2015/2016

Question7
On considère la trace suivante entre un client et un serveur web. Décodez la trame afin d’iden-
tifier la requête effectuée par le client.

3 DNS
Question8
(a) DNS (Domain Name Server) fait référence à deux concepts distincts mais complémen-
taires : (i) DNS définit d’une part un schéma de nommage hiérarchique fondé sur la notion
de domaine (ii) DNS est d’autre part une base de données répartie utilisée par les appli-
cations TCP/IP pour résoudre les noms d’hôtes. Expliquez chacun de ces deux concepts
ainsi que la notion de zone.
(b) A la création d’un nouveau nom de domaine tel que FooBar ; quelles sont les actions prises ?
Vous préciserez à quel niveau du DNS chacune d’elles sont prises.

2015/2016 M1
IP101 2015/2016 Page 5 sur 9 2015/2016

(c) Quelle différence y a-t-il entre serveur DNS local et serveur DNS d’autorité ?
(d) Pour quelles raisons un serveur DNS local n’est-il pas configure avec les adresses IP des
serveurs des domaines de premier niveau (TLD – Top-Level Domain server) (par exemple
’.com’ or ’.org’) ? Comment le serveur DNS local fait-il pour apprendre l’adresse des ser-
veurs de premier niveau ?
Question9
Les pages Web récemment consultées sont mises en cache au plus près des clients au même titre
que les enregistrements reçus en réponse à une requête DNS.
(a) Rappelez quelles sont les fonctionnalités de HTTP qui permettent la gestion des caches
maintenus au niveau des navigateurs Web.
(b) Rappelez comment sont gérés les enregistrements mis en cache au niveau d’une machine
hôte suite à l’envoi d’une requête DNS.
(c) Comparez ces deux modes de gestion de cache en termes de ressources épargnées (délai,
bande passante et charge sur les serveurs).
(d) Au vue de votre réponse à la question précédente, énumérez les raisons qui ont plaidées en
faveur des décisions prises lors de la conception de chacun des modes de gestion de cache
précédemment introduits.
Question10
Les enregistrements reçus en réponse à une requête DNS sont mises en cache au niveau du
serveur DNS ayant émis la requête et ce, pour une durée prédéfinie.
(a) Expliquez pour quelles raisons limite-t-on la durée de vie des enregistrements mis en cache.
A qui revient la charge de définir la durée de vie des enregistrements mises en cache au
niveau des serveurs DNS ? Pourquoi en est-il ainsi ?
(b) Quels sont les avantages et les inconvénients liés au choix d’une petite valeur ?
(c) Un serveur DNS local supprime systématiquement les entrées dont la durée de vie est
arrivée à expiration. Une alternative intéressante pourrait consister à générer une nouvelle
requête DNS pour un nom dont l’entrée correspondante vient d’être supprimée. Donnez
un avantage et un inconvénient d’une telle approche.
Question11
Proposés aux entreprises sous la forme d’un service d’externalisation pour l’hébergement des
contenus mis à disposition de leurs clients sur le Web, les réseaux de distribution de contenus
ou CDN (Content Delivery Networks) font référence à une technologie qui consiste à répliquer
ces contenus au sein d’une infrastructure constituée de plusieurs serveurs cache situés a priori
au plus près des clients.
(a) Quels sont les avantages attendus de l’utilisation des servies des CDN ?
Parmi les nombreux défis que soulèvent les CDN, nous nous intéressons aux mécanismes
censés diriger les clients vers les réplicas les plus appropriés. Un des mécanismes les plus
répandus à l’heure actuelle est appelé routage de requêtes basé sur le DNS ou DNS-
based Request Routing (cf. Fig. 1). Les CDN agissent au niveau des serveurs d’autorité
responsables de gérer les noms des sites Web répliqués. Ces serveurs renvoient l’adresse IP
du serveur cache qui héberge le réplica le plus approprié selon la localisation des clients.
(b) Donnez deux des raisons pour lesquelles les serveurs d’autorité peuvent retourner des
adresses IP différentes en réponse à des requêtes DNS identiques mais émanant de clients
différents.

2015/2016 M1
IP101 2015/2016 Page 6 sur 9 2015/2016

(c) Les serveurs d’autorité fixent la durée de vie des enregistrements contenant des adresses
IP de serveurs cache à des valeurs très petites. Pourquoi ? Donnez deux des conséquences
non désirables que peut avoir un tel choix.
Question12
Avant le 11 septembre 2001, le serveur de domaine de premier niveau (TLD – Top-Level Domain
server) de l’Afrique du Sud était situé dans la ville de New York.
(a) Expliquez comment la destruction qu’a connue la ville de New York le 11 septembre a
entrainé une coupure des communications Internet internes à l’Afrique du Sud (i.e., un
utilisateur situé en Afrique du Sud cherchant à accéder un serveur également situé en
Afrique du Sud) ?
(b) Expliquez la raison pour laquelle les effets du 11 septembre sur les communications sud-
africaines sont apparus progressivement, affectant certaines d’entres elles uniquement quelques
heures voire des jours après l’attentat.
(c) Comment fait le serveur DNS local pour connaitre l’identité des serveurs racine ? Pourquoi
la plupart des requêtes que reçoivent les serveurs racine concerne des noms malformés ou
erronés ?

4 P2P
Question13
(a) Avec Napster, les clients envoient leurs requêtes à un des serveurs centraux. Dans Gnutella,
les requêtes sont inondées aux autres pairs. Pour chacun de ces systèmes, donnez un
avantage et un inconvénient.
(b) Décrire l’approche hybride adoptée par KaZaA pour satisfaire les requêtes des pairs en
expliquant dans quel sens cette approche s’est-elle inspirée de Napster et de Gnutella
sans pour autant procéder d’une manière totalement identique. Pourquoi avoir décidé de
concevoir KaZaA selon une telle approche ?
(c) Comment les applications pair à pair font-elles pour fonctionner alors que les proto-
coles qu’elles utilisent n’ont pas standardisé au sein de l’IETF (Internet Engineering Task
Force) ?
(d) Les applications pair à pair de partage de fichiers utilisent généralement les services qu’offre
TCP plutôt que ceux offerts par UDP lorsqu’il s’agit d’envoyer des données entre pairs.
Donner au moins deux raisons à cela.
(e) Skype utilise UDP dès que cela est possible. Pourquoi ? Donnez deux raisons qui font qu’un
datagramme UDP ne peut pas être envoyé pour le compte de Skype entre deux machines
hôtes ?
Question14
Dans les trois premières questions, nous supposons que le coeur du réseau dispose d’une bande
passante en quantité suffisante et que le délai de propagation est négligeable. Le serveur a un
fichier de 100 Ko qu’il souhaite envoyer à un ensemble de 31 récepteurs. Tous les hôtes ont des
liens d’accès bidirectionnel de 40 kbps – les récepteurs peuvent envoyer et recevoir 40 Ko par
seconde sans congestionner l’Internet.
(a) Quel temps minimum faut-il au serveur pour transmettre les données à l’ensemble des
récepteurs si l’application de partage de fichier est de type client-serveur ?

2015/2016 M1
IP101 2015/2016 Page 7 sur 9 2015/2016

(b) On suppose à présent que les récepteurs peuvent envoyer des données au même titre que
le serveur mais à condition qu’ils aient auparavant reçu une copie complète des 100 Ko du
fichier à partager. Combien de temps faudra-t-il au minimum au serveur aidé des récepteurs
pour transmettre le fichier ?
Question15
Les questions suivantes portent sur BitTorrent.
(a) Supposons qu’il y a de nombreux pairs qui envoient des portions du même fichier. Certains
d’entre eux ont des accès disposant d’une large bande passante tandis que d’autres ont
un débit très faible. Pourquoi les pairs disposant d’un accès à haut débit s’échangent-il
les portions du fichier qu’ils détiennent, la plupart du temps uniquement entre eux ? Idem
pour les utilisateurs à bas debit.
(b) Pourquoi dans un système tel que BitTorrent est-il possible que des téléchargements ne
puissent être jamais complétés ? Quels sont les mesures à prendre pour prévenir cette
situation ?
(c) BitTorrent s’avère être performant quand il s’agit de partager des fichiers populaires. Sug-
gérez des moyens de rendre BitTorrent efficace pour le partage de fichiers moins populaires.
Question16
(a) Supposez que plusieurs pairs transfèrent les morceaux (chunks) résultant du découpage
d’un même fichier de grande taille. Soit u le débit total d’émission d’un pair vers les
autres pairs et d son débit de réception depuis tous les autres pairs. Proposez une bonne
approximation du rapport u/d résultant de l’utilisation de BitTorrent ? Justifiez votre
réponse.
(b) BitTorrent est peu performant lorsqu’il s’agit de transférer des fichiers peu populaires.
Pourquoi ?
(c) Les concepteurs de BitTorrent affirment que ”l’incitation renforce la robustesse de BitTor-
rent”. Pourtant un pair peut compléter le téléchargement d’un fichier sans partager aucun
chunk avec ses pairs. Comment est-ce possible ?
Supposez que vous soyez suffisamment altruiste pour ne pas être un resquilleur (free-rider).
Vous pouvez cependant toujours berner BitTorrent et accélérer votre téléchargement sans
payer le prix fort. Placez-vous dans le cas de figure où il y a avez 6 autres pairs dans le
système, chacun disposant un débit démission donné dans la seconde colonne du tableau
ci-dessous. Chacun (de ces 6 pairs) échange des chunks avec les 5 autres pairs, ces derniers
offrant des débits de réception également listés dans le tableau
Kbits/s Débit d’émission Débit de réception
Pair 1 10 15 12 9 7 3
Pair 2 30 23 15 6 4 2
Pair 3 5 9 8 7 2 1
Pair 4 45 20 12 6 3 1
Pair 5 15 45 23 11 8 7
Pair 6 20 23 22 18 9 8
(d) Pour chacun des 6 pairs, déterminez à quel débit un pair envoie-t-il des données à chacun
des 5 autres pairs. Vous supposerez que ces 6 pairs exécutent le protocole ”officiel” de
BitTorrent.

2015/2016 M1
IP101 2015/2016 Page 8 sur 9 2015/2016

(e) A quel débit devez-vous envoyer des données à chacun de ces 6 pairs pour être sûr pour
que tous les 6 soient disposés à vous laisser télécharger les données qu’ils partagent ? Vous
donnerez la valeur entière arrondie la plus proche.
(f) Supposez que vous soyez connecté à Internet avec un débit d’émission de 9 Kb/s et un
débit illimité en réception. A quels pairs devez-vous envoyer des données et à quel débit
pour être sûr de maximiser le débit de votre téléchargement ? Quel est justement la valeur
du débit maximum que vous pouvez ainsi atteindre ?

5 Annexe
Le format des entêtes nécessaire pour le décodage de trame.

2015/2016 M1
IP101 2015/2016 Page 9 sur 9 2015/2016

Structure d’une trame Ethernet


........+-48bits--+-48bits--+16b-+- - - - - +.32bits.
.(Pré.) | adresse | adresse |type| données |(CRC).
. | dest. | source | | | .
........+---------+---------+----+- - - - - +......
Quelques types : 0x0200 = XEROX PUP
0x0800 = DoD Internet
Structure d’un segment TCP
<-----------------32bits----------------------->
0x0806 = ARP
<4b-> <-6bits-> <--------16bits-------->
0x8035 = RARP
+-----------------------+------------------------+
| Port Source | Port Destination |
+-----------------------+------------------------+
Structure d’un paquet IP | Numéro de Séquence |
<----------------------32bits--------------------> +------------------------------------------------+
<4b-> <--8bits---> <--------16bits-------> | Numéro d’Acquittement |
+-----+-----+------------+-----------------------+ +-----+-------+---------+------------------------+
| Ver | IHL | TOS | Longueur totale (octet) | THL | | Flag | Taille Fenêtre |
+-----+-----+------------+--+--------------------+ +-----+-------+---------+------------------------+
| Identificateur |Fl| FO | | Somme de ctrl (msg) | Pointeur d’Urgence |
+-----------+------------+--+--------------------+ +------------------------------------------------+
| TTL | Protocole | Somme de ctrl (entête)| ... Options ...
+-----------+------------+-----------------------+ +------------------------------------------------+
| Adresse Source | ... Données ...
+------------------------------------------------+ +------------------------------------------------+
| Adresse Destination | THL = Longueur de l’entête TCP sur 4 bits (*32bits)
+------------------------------------------------+ Flags = indicateur codé sur 6 bits gauche à droite
... Options ... * 1er = Données urgentes
+------------------------------------------------+ * 2me = Acquittement (ACK)
... Données ... * 3me = Données immédiates (Push)
+------------------------------------------------+ * 4me = Réinitialisation (Reset)
Ver = Version d’IP * 5me = Synchronisation (SYN)
IHL = Longueur de l’entête IP (en mots de 32 bits) * 6me = Fin
TOS = Type de service (zero généralement) Options = suite d’options codées sur
Fl (3 premiers bits) = Bits pour la fragmentation * 1 octet à 00 = Fin des options
* 1er = Reservé * 1 octet à 01 = NOP (pas d’opération)
* 2me = Ne pas fragmenter * plusieurs octets de type TLV
* 3me = Fragment suivant existe T = un octet de type:
FO (13 bits suivants) = Position relative du fragment 2 Négociation de la taille max. du segment
dans le datagramme initial, le déplacement étant exprimé 3 Adaptation de la taille de la fenêtre
en mots de 8 octets (seuls un datagramme complet ou un 4 Autorisation des acquittements sélectifs
premier fragment peuvent avoir ce champ à 0) 8 Estampilles temporelles
TTL = Durée de vie restante L = un octet pour la taille totale de l’option
Quelques protocoles transportés : V = valeur de l’option (sur L-2 octets)
1 = ICMP
2 = IGMP Services associés aux ports
4 = IP (encapsulation) ftp-data 20/tcp
5 = Stream ftp 21/tcp
6 = TCP ssh 22/tcp ssh 22/udp
8 = EGP telnet 23/tcp
11 = GLOUP smtp 25/tcp
17 = UDP domain 53/tcp domain 53/udp
36 = XTP tftp 69/udp
46 = RSVP finger 79/tcp
www 80/tcp www 80/udp
kerberos 88/tcp kerberos 88/udp
pop-3 110/tcp pop-3 110/udp
bgp 179/tcp
snmp 161/udp
snmp-trap 162/udp
rtraceroute 3765/tcp

2015/2016 M1

You might also like