You are on page 1of 9

IFT3820/IFT6833

Mohamed Lokbani

Examen Final Solutionnaire


t-2002
Inscrivez tout de suite votre nom et code permanent.

Nom: __________________________________|

Prnom(s): _____________________________|

Signature: ______________________________|

Code perm: ____________________________|

Sigle du cours: __________________________|

Date : 29 juillet 2002


Dure: 3 heures (de 18h30 21h30) Local: 1140 du Pavillon Andr-Aisenstadt (P.A-A).

Directives:
-

Toute documentation permise.


Calculatrice non programmable permise.
Rpondre directement sur le questionnaire.
Les rponses doivent tre clairement prsentes

1._____________________/25
2._____________________/20
3._____________________/20
4._____________________/25
5._____________________/15
6._____________________/20

Total:__________________/100

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

1/9

Question 1 (25 points)


-Q1.1- Quels sont les ports rservs par les protocoles TCP et UDP pour les applications publiques?
a) Numros de 255 1023.
b) Numros infrieurs 255.
c) Numros suprieurs 1023.
a

-Q1.2- Quest ce qui dtermine la dure de transfert dun fichier?


a) La taille du fichier.
b) La largeur de bande de la liaison.
c) Le dbit disponible.
d) Toutes ces rponses.
a

-Q1.3- Comment sont classes la plupart des applications qui fonctionnent dans un environnement
rseaut?
a) Applications de stockage de fichiers.
b) Logiciels de redirection rseau.
c) Application client serveur.
d) Application de contrle de dialogue.
a

-Q1.4- Quel est lordre exact dencapsulage.


a) Donnes, segment, paquet, trames, bits.
b) Donnes, trame, paquet, segment, bits.
c) Bits, donnes, paquet, trame.
d) Bits, trame, donnes, paquet.
a

-Q1.5- Quest-ce quun rseau local?


a) Un rseau qui relie des postes de travail, des terminaux et dautres units dans un endroit
gographiquement limit.
b) Un rseau qui relie des postes de travail, des terminaux et dautres units dans une grande rgion
mtropolitaine.
c) Un rseau qui dessert des utilisateurs dans une vaste rgion gographique et qui utilise souvent des
units de transmission fournies par un transporteur.
d) Un rseau qui couvre une rgion plus grande quun rseau mtropolitain.
a

-Q1.6- Une trame est un(e) ___________


a) PDU de couche 2.
b) PDU de couche 3.
c) Paquet encapsul.
d) a et c.

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

2/9

-Q1.7- Laquelle des adresses ci-dessus est un exemple dadresse de diffusion de classe C?
a)
b)
c)
d)

190.12.253.255
190.44.255.255
221.218.253.255
129.219.145.255
a

-Q1.8- Quest ce que le numro de rseau signifie dans une adresse IP?
a)
b)
c)
d)

Indique le rseau auquel appartient lhte.


Prcise lidentit physique de lordinateur dans le rseau.
Spcifie le nud dans le sous rseau indiqu.
Dsigne lidentification de diffusion du sous rseau.
a

-Q1.9- Comme TCP rassemble les segments en messages complets, quarrive-t-il sil manque un numro
dans lensemble?
a)
b)
c)
d)

Le segment est abandonn.


Le segment manquant est retransmis.
Tous les segments sont retransmis depuis le dbut.
Avec TCP, les numros de squence ne font jamais lobjet dune vrification.
a

-Q1.10- Quelle dfinition parmi les suivantes dcrit le mieux une collision?
a) Les trames provenant de deux units se heurtent au sein du mdia physique et sont endommages.
b) Deux nuds transmettent en mme temps et le paquet de donnes de priorit suprieure limine
celui de priorit plus faible.
c) Deux transmissions de donnes se croisent au sein du mdia rseau et sendommagent
mutuellement.
d) Une transmission de donnes est endommage par une pointe de tension dans le mdia rseau.
a

-Q1.11- Comment un ordinateur en rseau local Ethernet dtecte-t-il une erreur dans une trame?
a)
b)
c)
d)

Il renvoie une copie de la trame lmetteur des fins de vrification.


Il vrifie ladresse de destination pour sassurer que la trame lui tait vraiment destine.
Il compare un total e contrle dans la trame un total quil calcule partir du contenu de la trame.
Il calcule un totale de contrle partir des donnes de la trame et le renvoie la source pour
vrification.
a

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

3/9

Question 2 (20 points)


Lun des tablissements dune entreprise utilise la plage dadresse 10.0.0.0 de la classe A. Si on considre 4
machines de cet tablissement dont les noms htes (accompagns du domaine) et adresses sont donns cidessous:
Nom hte
IP
MAC
Pierre.Entreprise.com
10.99.43.27
MAC_1
Jacques.Entreprise.com
10.163.12.254
MAC_2
Alfred.Entreprise.com
10.189.12.27
MAC_3
Martine.Entreprise.com
10.126.43.254
MAC_4
On vous demande :
-Q2.1- Quel est le nombre de bits utiliss pour reprsenter la portion rseau ?
Rponse:
1 octets (dont 1 bit rserv).
-Q2.2- Quel est le nombre de bits utiliss pour raliser deux sous-rseaux tels que Pierre et Martine
appartiennent au mme sous-rseaux et que Jacques et Alfred appartiennent un autre sous-rseau ?
Donnez le masque correspondant.
Rponse:
SR#1
SR#1
SR#2
SR#2

Pierre
Martine
Jacques
Alfred

99
126
163
189

0
0
1
1

1
1
0
0

1
1
1
1

0
1
0
1

0
1
0
1

0
1
0
1

1
1
1
0

1
0
1
1

Deux bits sont ncessaires pour distinguer entre les deux sous-rseaux. De ce fait, le masque
correspondant est : 255.192.0.0
-Q2.3- Quel est le nombre de bits minimum ncessaire pour quaucune des machines nappartienne au
mme sous-rseau ? Donnez le masque correspondant.
Rponse:
SR#1
SR#2
SR#3
SR#4

Pierre
Martine
Jacques
Alfred

99
126
163
189

0
0
1
1

1
1
0
0

1
1
1
1

0
1
0
1

0
1
0
1

0
1
0
1

1
1
1
0

1
0
1
1

Il faut distinguer entre les 4 sous-rseaux. Nous remarquons quen utilisant un seul bit, on arrive
distinguer entre (1,2) et (3,4). Pour distinguer entre 1 et 2 dune part, et 3 et 4 dautre part, on part
chercher le 4e bit. On a besoin donc de 4 bits. De ce fait, le masque correspondant est : 255.240.0.0

-Q2.4- Pour permettre la communication entre les deux sous-rseaux de la question Q2.2-, on relie les
brins Ethernet de ces deux sous-rseaux par un routeur configur en proxy ARP (cest lui qui rpond en
lieu et place pour les stations connectes sur ses autres liens). Si on affecte chaque interface LAN de ce
routeur la premire adresse disponible, quelles sont les adresses affectes ? Reprsentez lensemble par un
schma.
Rponse:

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

4/9

MAC_4
10.126.43.254
Martine

Routeur
MAC_R1
10.64.0.1

MAC_R2
10.128.0.1

MAC_1
10.99.43.27
Pierre

MAC_3
10.189.12.27
Alfred

MAC_2
10.163.12.254
Jacques

10.64.0.0
255.192.0.0

10.128.0.0
255.192.0.0

-Q2.5- En admettant que toutes les stations aient communiqu entre elles et quaucune entre nait t
efface, quel est le contenu de la table ARP de la station de Pierre. Pour cette question on affectera des
adresses MAC fictives chaque interface du routeur : MAC_R1 et MAC_R2.
Rponse:

La table ARP de la station de Pierre est :


IP
10.126.43.254
10.163.12.254
10.189.12.27

MAC
MAC_4
MAC_R1
MAC_R1

Pierre veut envoyer un paquet Jacques. Pierre connat que ladresse IP ou le nom dhte de
Jacques. De ce fait, il va complter la trame Ethernet avec quelle Mac adresse ? Celle du routeur qui
va se charger dacheminer les donnes vers Jacques.

-Q2.6- Ltablissement envisage de raccorder son rseau Internet. Est-ce possible en ltat ? Dans la
ngative, indiquez les difficults ventuelles, et proposez une solution.
Rponse:
Lentreprise utilise ladresse 10 qui est une adresse non routable sur Internet. Elle devra faire la
demande daffectation dadresses officielles. Si elle ne veut pas avoir revoir la configuration de
toutes ses machines, elle devra mettre en oeuvre un translateur dadresses pour avoir accs
Internet (NAT).

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

5/9

Question 3 (15 points)


Rpondez aux questions suivantes (deux lignes trois lignes de rponse par question suffisent) :
-Q3.1- Par quoi est dfinie une socket ?
Rponse:

Sa famille (exemple AF_INET), son mode (par exemple SOCK_STREAM) et


ventuellement le protocole utilis (dans l'exemple c'est forcement TCP).
-Q3.2- Donnez la taille en octets d'une adresse gnrique de socket.
Rponse:

Deux octets pour la famille et 14 de remplissage soit 16 octets.


-Q3.3- Existe-t-il des structures adresse de socket de taille infrieure celle de la structure
adresse gnrique de socket ?
Rponse:

Non, il n'existe pas de structure adresse de socket de taille infrieure 16 octets


mais il en existe de taille suprieure comme struct sockaddr_un.

-Q3.4- Sachant que addr est une variable de type struct sockaddr_in, quel message le
compilateur C va afficher en analysant l'instruction bind(s,&addr,sizeof(addr)); ? Corrigez
l'instruction pour qu'elle se compile sans problme.
Rponse:
Le compilateur va gnrer un message d'avertissement au sujet du typage de &addr. Le prototype
de la fonction bind impose un paramtre de type struct sockaddr * et la variable utilise est
de type struct sockaddr_in *. L'instruction correcte est
bind(s,(struct sockaddr *)&addr,sizeof(addr));.

-Q3.5- Quel est le dtail important concernant l'initialisation du troisime argument de la fonction
accept ?
Rponse:
Le troisime argument d'accept doit pointer sur un entier initialis avec la taille de l'espace point
par le second argument. Cet espace est utilis pour stocker l'adresse du client.

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

6/9

Question 4 (20 points)


Soit le programme suivant :
1
2
3
4
5
6
7
8

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h>

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

int main() {
int s;
int nbre;
struct sockaddr_in sa;
char buffer[BUFSIZ+1];
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("socket");
exit (1);
}
bzero(&sa, sizeof sa);
sa.sin_family = AF_INET;
sa.sin_port = htons(13);
sa.sin_addr.s_addr = htonl((((((192 << 8) | 43) << 8) | 244) << 8) | 18);
if (connect(s, (struct sockaddr *)&sa, sizeof sa) < 0) {
perror("connect");
close(s);
exit(2);
}
while ((nbre = read(s, buffer, BUFSIZ)) > 0)
write(1, buffer, nbre);
close(s);
return 0;
}

29
30
31

-Q4.1- La ligne 21 est reproduite ici


21

sa.sin_addr.s_addr = htonl((((((192 << 8) | 43) << 8) | 244) << 8) | 18);

Elle contient ((((((192 << 8) | 43) << 8) | 244) << 8) | 18) qui permet de transmettre ladresse IP dans un
format appropri de htonl qui est unsigned long int . htonl va la convertir par la suite dans le format
rseau avant de transmettre cette adresse au membre s_addr.
Modifiez le prcdent programme pour passer une adresse IP quelconque partir de la ligne de commande.
(Pas besoin de rcrire le code, juste les modifications ncessaires et o est-ce quelles sinsrent dans le
code).

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

7/9

Entre ligne ___ et ligne ___ Modification ___

1) Modifier la ligne -9- : int main(int argc, char** argv)


2) Inclure les lignes suivantes aprs 13 et avant 14 :
if (argc != 2) {
perror("Usage : nom_du_programme adresse_ip\n") ;
exit(1) ;
}

Puis deux manires de le faire :


La premire
3) Ajouter la dclaration suivante quelque part entre 10 et 13 :
struct hostent *hp ;

4) Ajouter le test suivant juste aprs le test de argc (la modification -2-)
if ((hp = gethostbyname(argv[1])) == NULL) {
perror("Adresse non trouve\n") ;
exit(1) ;
}

5) Remplacer la ligne 21 par :


memcpy((char *)& sa.sin_addr,
(char *) hp->h_addr,sizeof(struct in_addr));

La seconde
3) Remplacer la ligne 21 par:
sa.sin_addr.s_addr = inet_addr(argv[1]);

-Q4.2- Expliquez en quelques lignes le fonctionnement du programme prcdent, sachant que lexcution
du programme donne le rsultat suivant :
52478 02-07-23 21:35:32 50 0 0 324.2 UTC(NIST)

Un client se connecte au port numro 13 dun serveur dont ladresse IP est (192.43.244.18). Le port
13 correspond au port daytime , il sert donner lheure.

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

8/9

Question 5 (20 points)


Supposez que vous avez un datagramme IP avec une entte semblable celle que vous avez normalement
pris lhabitude dtudier (la trace hexadcimale de lintra ou bien celle du tp#2 par exemple). Cette trame
contient 3020 octets de donnes ; de ce fait le champ taille totale aura comme valeur hexadcimale de
0b0e . Vous devez transmettre ces donnes travers un rseau dont le MTU ne peut dpasser 1500.
-Q5.1- Combien de fragments allez-vous avoir au total?
Rponse (accompagne de vos explications):
On suppose que lentte IP ne contient pas doptions. De ce fait, lentte IP une taille de 20 octets.
On ne peut transmettre quau maximum 1500 octets de donnes, y compris lentte IP =>
1500 20 = 1480 de donnes brutes.
3020 / 1480 > 2 => il vous faut donc 3 fragments.

-Q5.2- Que va contenir chacun des fragments?


Rponse:
(Complter le tableau suivant)
Numro
Fragment
1
2
3

Flag
(dcimal)
001
001
000

Offset
(dcimal)
0
185
370

Champ Offset
(hexa)
02 00
02 b9
01 72

Data
(valeur de dpart)
0
1480
2960

Data
(valeur darrive)
1479
2959
3019

Explication

Le premier fragment a un flag gal 001 (une fragment va suivre) et un offset gal 0. Le champ
offset (flag et fragment offset) devient donc gal 0200. Ce fragment contient les octets de 0 1479
compris.
Le second fragment : flag = 001 (un fragment va suivre), un offset de 185 (1480 / 8). Le champ offset
= 02b9. Ce fragment contient les octets de 1480 2959.
Le troisime fragment : flag = 000 (pas de fragment qui suit), un offset de 370 (2960 / 8). Le champ
offset = 0172 (la conversion de 370). Ce fragment contient les octets de 2960 3019.

IFT3820/IFT6833

t-2002 : Final - Solutionnaire

9/9

You might also like