Td corrigé Home Page TP 1 Réseaux 1ère Année IUT Info Aix-en-Provence (c ... pdf

Home Page TP 1 Réseaux 1ère Année IUT Info Aix-en-Provence (c ...

On va étudier ici la transmission analogique de bits par modulation. .... 1) En supposant que les 3 lignes de transmission proposent un débit de 10000 bit/s ... Corrigé. V. Transmission de trames et synchronisation. Dans ces exercices, on va ...




part of the document



de représente un bit à 0. L'amplitude de la porteuse est moyenne.
* Transmission par modulation de fréquence : une faible fréquence représente un bit à 0 et une forte fréquence représente un bit à 1. La fréquence de la porteuse est moyenne.
* Transmission par modulation de phase : la phase montante (0°) en début de temps bauds représente un 1, celle descendante (180°) représente un 0. La phase de la porteuse doit être différente (par exemple, 90°).
Sur toutes les figures de ce TP, la fin d'un bit (ou d'un bauds) est marquée par une barre verticale pointillée.
1) Soit le signal suivant :

a) Quel type de modulation a produit ce signal ?
b) Quelle est la séquence de bits qu'il représente ?
2) Soit le signal suivant :

a) Quel type de modulation a produit ce signal ?
b) Quelle est la séquence de bits qu'il représente ?
Corrigé

III.2. Les bauds par l'exemple
III.2.A. Transmission numérique
Supposons qu'on dispose d'un média de transmission numérique disposant de 4 niveaux significatifs et permettant de transmettre un signal de la forme :

1) Quel est le nombre de bits par bauds pouvant être émis sur un tel canal ?
2) En supposant que le protocole de transmission spécifie que les niveaux du plus bas au plus élevé correspondent aux valeurs binaires de 0 à 3, quelle est la séquence de bits représentée par ce signal ?
3) Dessinez le signal représentant la séquence de bits : 111001001101101101
Corrigé

III.2.B. Transmission analogique : première combinaison
En combinant plusieurs modulations, on peut émettre plusieurs bits par bauds. Par exemple, les modems combinent généralement la modulation d'amplitude et de phase. Dans ce cas, lors d'un changement de bauds, le modem peut modifier à la fois la phase et l'amplitude du signal. Le nombre de bits par bauds est alors log2 du nombre de variations différentes, soit log2 du produit du nombre de niveaux d'amplitude utilisés par le nombre de phases utilisées.
1) Quelle combinaison a été utilisée pour l'émission du signal suivant : amplitude-phase, amplitude-fréquence ou fréquence-phase ?

2) Combien de bits par bauds sont transmis si toutes les possibilités des combinaisons utilisées sont présentes dans ce signal ?
3) Supposons que les quatre combinaisons amplitude-fréquence : faible-faible, faible-fort, fort-faible et fort-fort, codent respectivement 00, 11, 01 et 10. Quelle est la séquence de bits représentée par le signal ?
4) Proposez une variante de cette modulation permettant de transmettre exactement 3 bits par bauds sans faire intervenir un type de modulation supplémentaire.
Corrigé

III.2.C. Transmission analogique : autre combinaison
Soit le signal suivant transmis par combinaison des modulations de 4 phases (0, ?/2, ?, et 3?/2) et des 2 fréquences (2000 Hz et 4000 Hz).

1) Combien de bits par baud sont transmis par un tel signal ?
2) Proposez une valeur binaire pour chaque combinaison possible.
3) En déduire l'information transportée par le signal observé ci-dessus.
Corrigé

III.3. Codages Manchester
On va étudier ici les deux formes de codage Manchester. On rappelle que pour le Manchester simple, un signal partant de V1 au début du temps bit et finissant en V0 correspond à un bit à 1, s'il part de V0 pour terminer en V1, il correspond à un bit à 0. Pour le codage Manchester différentiel, la signification du signal dépend du bit précédent : si le signal ne change pas en début de temps bit, il représente 1, sinon il représente 0.
Soit le signal suivant :

1) En supposant qu'il s'agit d'un codage Manchester simple, quelle est la séquence de bits qu'il représente ?
2) Et si c'est un codage Manchester Différentiel ?
3) Dessinez le signal représentant la séquence de bits 10111011001 en codage Manchester.
4) Idem, en codage Manchester Différentiel (avec signal au niveau haut avant l'axe des ordonnées).
Corrigé

IV. Synthèses de la rapidité de modulation, débits, bande passante, codage et temps de transmission
Les 4 exercices suivants ont été donnés en examens en 2005.
IV.1. Calcul du débit en fonction du codage
Soit une ligne de transmission de rapidité de modulation maximale 8000 bauds selon son constructeur. Quel est le débit binaire maximal autorisé par cette ligne dans les cas de codage suivants :
1) codage unipolaire ;
2) codage non retour à zéro ;
3) codage Manchester différentiel.
Corrigé

IV.2. Calcul de la rapidité de modulation, de la bande passante et de la qualité exigées
Sachant que la rapidité de modulation maximale d'une ligne de transmission est le double de sa bande passante :
1) Si l'on veut mettre en place une ligne de transmission de 20 kbit/s, quelle doit être la rapidité de modulation si on utilise le codage Manchester ?
2) Supposons que l'on dispose d'un câble en paire torsadée possédant une plage de fréquences utilisables de [10 kHz, 25 kHz ]. Est-il adapté pour fournir un débit de 20 kbit/s si on utilise le codage Manchester ?
3) On dispose d'un câble possédant une plage de fréquences utilisable de [ 10 kHz, 20 kHz ] et l'on souhaite transmettre l'information par une modulation quelconque. Quel doit être le rapport signal/bruit minimal de l'environnement (c.-à-d. sa qualité) afin d'atteindre le débit de 20 kbit/s ?
Corrigé

IV.3. Débits offerts par les normes V21, V22 et V29
Quels sont les débits binaires proposés par des modems utilisant une rapidité de modulation de 9600 bauds et répondant aux normes :
1) V21, qui utilise une modulation de 2 fréquences ?
2) V22, qui utilise une modultation de 4 phases ?
3) V29, qui utilise une modulation de 16 combinaisons amplitude/phase ?
Corrigé

IV.4. Comparaisons des commutations de messages et de paquets
Supposons que deux hôtes A et B sont placés en réseau et sont séparés par 3 lignes de transmission et 2 commutateurs C1 et C2 ainsi que le montre le schéma ci-dessous :

1) En supposant que les 3 lignes de transmission proposent un débit de 10000 bit/s chacune, et que le temps de commutation (temps passé par un message ou un paquet sur un commutateur avant retransmission) est de 100 ms sur chaque commutateur, calculer le temps de total d'envoi d'un message de 20000 bits de A à B, dans le cas de la commutation par message et dans le cas de la commutation par paquets de 1000 bits.
2) Même question mais en supposant que la liaison A " C1 a un débit de 5000 bit/s ; celle C1 " C2 a un débit de 10000 bit/s ; et celle C2 " B a un débit de 20000 bit/s.
Corrigé

V. Transmission de trames et synchronisation
Dans ces exercices, on va transmettre des messages en les encadrant par des délimiteurs, le tout étant appelé une trame. On rappelle que l'intérêt des délimiteurs est de permettre au récepteur de se synchroniser s'il a perdu la synchronisation à cause d'une erreur de transmission ou de son propre fait.
V.1. Délimiteurs et caractères de transparence
Dans cet exercice, une trame est composée de caractères. Une trame doit obligatoirement commencer par les caractères délimiteurs de début DLE et STX, et se terminer par la séquence DLE ETX (délimiteurs de fin).
V.1.A. Émission
Avant d'encapsuler le message en l'encadrant par les délimiteurs puis d'émette la trame, le message doit être traité pour enlever toute ambiguïté entre le contenu du message et les caractères délimiteurs : devant tout caractère DLE du message, il faut insérer un DLE supplémentaire (caractère de transparence).
Important : on utilisera '&' pour DLE, '' pour ETX.
Quelles sont les trames émises pour transmettre les messages suivants (entre guillemets) ?
a) "SALUT"
b) "UN & ETVOILA&"
c) "&"
Corrigé

2) Dans le répertoire include, créer le fichier nsRes.h et y déclarer un namespace nsRes contenant les déclarations suivantes :
const char DLE = '&';
const char STX = '';
std::string MsgToTrameCars (const std::string & Message);
Dans le répertoire include, créer le fichier INCLUDE_H contenant les lignes suivantes (en remplaçant les zones en italiques) :
#/**
#*
#* @File : INCLUDE_H
#*
#* @Authors :
#*
#* @Date :
#*
#* @Synopsis : Définition des macros des chemins et des dépendances
#*
#**/
#
# Macros des chemins
#
INCLUDERES = référence de tpres/include
UTILRES = référence de tpres/util
#
# Macros des dépendances
#
NSRES_H = $(INCLUDERES)/nsRes.h
Définir la fonction nsRes::MsgToTrameCars() dans le fichier nsRes.cxx du répertoire util. Celle-ci prend un Message, et renvoie une trame qui l'encapsule, en prenant soin d'insérer des caractères de transparence si besoin.
Dans le répertoire util, créer le fichier MakeUtil contenant les lignes suivantes (en remplaçant les zones en italiques) :
#/**
#*
#* @File : MakeUtil
#*
#* @Authors :
#*
#* @Date :
#*
#* @Synopsis : Makefile de compilation des utilitaires
#* réseau 1ère Année
#*
#**/
#
# Macro de compilation des utilitaires
#
COMPILER = g++ -Wall -c -I$(INCLUDERES) $*.cxx
#
# Inclusion des macros des dépendances
#
include référence de INCLUDE_H
#
# Définition des cibles
#
general : nsRes.o
nsRes.o : nsRes.cxx $(NSRES_H)
$(COMPILER)
#
# Nettoyage des .o des utilitaires
#
clean :
rm -f -v *.o
Dans le répertoire tp1, écrire le programme sendcars.cxx qui, dans une boucle :
* lit au clavier un message (suite de caractères terminée par un retour à la ligne)
* sort de la boucle si le message est vide
* sinon écrit la trame renvoyée par la fonction MsgToTrameCars() appliquée à ce Message.
Toujours dans tp1, créer le fichier Makefile contenant les lignes suivantes (en remplaçant les zones en italiques) :
#/**
#*
#* @File : Makefile
#*
#* @Authors :
#*
#* @Date :
#*
#* @Synopsis : Makefile de compilation des programmes du tp1
#*
#**/
#
# Macro de compilation des exercices
#
COMPILER = g++ -Wall -c -I$(INCLUDERES) $*.cxx
#
# Inclusion des macros des dépendances
#
include référence de INCLUDE_H
#
# Compilation de l'exercice
#
$(nom) : utils $(nom).o
g++ $(nom).o $(UTILRES)/nsRes.o -o $(nom); rm -f -v $(nom).o
$(nom).o : $(nom).cxx $(NSRES_H)
$(COMPILER)
#
# Compilation des utilitaires
#
utils :
cd $(UTILRES); make -f MakeUtil general

#
# Nettoyage des fichiers .o, des exécutables du tp1
# et des .o des utilitaires
#
clean :
rm -f -v *.o send???? recv????; \
cd $(UTILRES); make -f MakeUtil clean
Enfin, dans tp1, lancer la compilation de sendcars (par make nom=sendcars) et tester.
Corrigés (accessibles dans ~cpb/public/tpres/tp1/corrigesIV.1.A) :
nsRes.h INCLUDE_H nsRes.cxx MakeUtil sendcars.cxx Makefile

V.1.B. Réception
L'extraction de trames (et de messages) à partir d'un flot de caractères reçus est une opération relativement simple lorsqu'il n'y a pas eu d'erreur de transmission et que le récepteur reste synchronisé : il lui suffit de rechercher les délimiteurs marquant le début de la trame en ignorant les caractères situés avant. Les caractères qui suivent sont traités pour extraire le message. Il faut supprimer les caractères de transparence et rechercher les délimiteurs de fin : si un DLE est suivi d'un autre DLE alors ce dernier est éliminé sinon ce doit être ETX (ou alors, une erreur est survenue).
1) Quel(s) message(s) une station peut-elle extraire des séquences de caractères suivantes, reçues pendant un laps de temps ?
a) "AB&&XY"
b) "&YEP&>&" n'ont aucune justification à cet endroit : une erreur a dû survenir ou la station réceptrice a "loupé" certains caractères. Cependant, elle doit se resynchroniser à partir du "&