Introduction Couche physique Couche liaison Couche réseau Couche transport
Protocoles Réseaux
Matthieu Picantin
LIAFA CNRS UMR 7089
Université Paris 7 Denis Diderot
13 mars 2009
1 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Préambule
Le modèle hybride
Couche
Application
Transport
seau
Liaison
Physique
5
4
3
2
1
Interface
H
ô
te A Nom des
unités
échangées
message
paquet
trame
bit
Transport
R
é
seau
Liaison
Physique
H
ô
te B
R
é
seau
Liaison
Liaison
Physique
Physique
Pont
Routeur
Protocoles internes au sous-r
é
seau
Protocole d'application
Protocole de transport
Frontière du sous-réseau de communication
Protocole de couche r
é
seau h
ô
te-routeur
Protocole de couche liaison de donn
ées hôte-pont
Protocole de couche physique hôte-pont
Liaison
Physique
ô
Application
Transport
é
Liaison
Physique
H
ô
te B
Liaison
Physique
Liaison
R
é
seau
Physique
Pont
Routeur
Protocoles internes au sous-r
é
Protocole de couche r
seau h
te-routeur
Protocole de couche liaison de donn
Application
Transport
seau
2 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Préambule
Rôle de la couche liaison de données
Objectif
Communication (fiable et efficace) entre deux machines adjacentes
(machines physiquement connectées par un canal de transmission)
Gestion des trames
Les trames encapsulent les paquets de la couche réseau
Les flux de bits de la couche physique sont découpés en trames
Trame
Emetteur
PaquetPaquet
Récepteur
Champ de donnéesEn-tête En-queue Champ de donnéesEn-tête En-queue
3 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Préambule
Trois catégories de services
sans connexion - non acquitté
pas de récupération des erreurs (faible taux d’erreurs, temps-réel...)
complexité dans les couches supérieures
sans connexion - acquitté
indication des pertes (retransmissions rapides)
débit variable
avec connexion - acquitté
connexion préalable
garanties de réception ordonnée et unique
4 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Préambule
Positionnement du protocole de liaison
Processus
de routage
Routeur
Trames Paquets
2 2 2
2
3
Ligne de transmission
vers un routeur
Protocole
de liaison
de données
Processus
de la couche
liaison de données
3
5 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Techniques de délimitation de trames
Technique #1
Compter les caractères
Utilisation d’un champ taille dans l’en-tête de la trame
Problème de désynchronisation en cas d’erreur
5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3
Décompte
des caractères Un caractère
Trame 1
5 caractères
Trame 2
5 caractères
Trame 3
8 caractères
Trame 4
8 caractères
5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3
5 1 2 3 4 76 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3
Décompte
des caractères Un caractère
Erreur
Trame 1
5 caractères
Trame 1
Trame 2
5 caractères
Trame 2
(fausse)
Trame 3
8 caractères
Trame 4
8 caractères
Nouveau décompte
des caractères
6 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Techniques de délimitation de trames
Technique #2
Utiliser des drapeaux de signalisation
un même octet drapeau désigne le début et la fin d’une trame
remplissage d’octets d’échappement ESC
problème avec les données binaires
présence du drapeau au milieu des données
méthode liée au codage des caractères sur 8 bits
A BESC drap.
A BESC ESC
A ESC BESC ESC drap.
A ESC BESC ESC ESC
BA drap.
BA ESC
drap.A ESC B
ESCA ESC B
remplissage
7 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Techniques de délimitation de trames
Technique #3
Utiliser des chaînes de bits délimiteurs
plus souple et non associée à un codage
utilisation d’un drapeau (par exemple 01111110)
transparence par remplissage de bits
(insertion par exemple de 0dans les chaînes de 1)
0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0
bits de remplissage
0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
8 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Détection et correction d’erreurs
Détection-retransmission vs correction
Détection-retransmission
juste assez de redondance
pour que le récepteur puisse
détecter d’éventuelles erreurs
&demander une
retransmission
adapté sur canal fiable
Correction
suffisamment de
redondance pour que le
récepteur puisse corriger
d’éventuelles erreurs
adapté sur canal bruité
Redondance et mots de code
mot de code (nbits) = données (mbits) + contrôle (rbits)
2mmots de code légaux parmi 2nmots possibles
9 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Détection et correction d’erreurs
Distance de Hamming et qualité d’un code
Distance de Hamming
nombre de bits différents entre 2 mots
somme des 1après un XOR sur 2 mots
nombre minimum d’erreurs simples pour
passer d’un mot à l’autre
Distance de Hamming d’un
code
distance minimale entre deux
mots du code
Qualité d’un code
un code Cvérifiant dH(C)k+1 permet de détecter kerreurs
un code Cvérifiant dH(C)2k+1 permet de corriger kerreurs
Un code 1-détecteur
L’ajout d’un bit de parité produit un
code de distance de Hamming 2
Un code 2-correcteur
Le code {00000000000, 0000011111,
1111100000, 1111111111}est de distance
de Hamming 5
10 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Détection et correction d’erreurs
Codes correcteurs d’erreur simple
En théorie
Pouvoir corriger toute erreur simple pour mbits de données
demande rbits de contrôle avec m+r<2r
En pratique : la méthode de Hamming
bits numérotés de 1 à nde gauche à droite
bits puissance de 2 sont les rbits de contrôle (1,2,4,8...)
les autres sont les mbits de données (3,5,6,7,9,10...)
bits de contrôle = calcul de parité sur les bits de données
dont la décomposition en puissances de 2fait intervenir la
position du bit de contrôle concerné
détection du bit erroné et correction par somme des bits de
contrôle non conformes à la parité
11 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Détection et correction d’erreurs
Codes correcteurs d’erreur simple
0100 01 1 0000
Le code de Hamming
pour de l’ASCII
valable seulement
pour une erreur
simple (1 bit)
correction de rafale
d’erreurs à l’aide
d’une matrice
caractère
H
a
m
m
i
n
g
c
o
d
e
ASCII
1001000
1100001
1101101
1101101
1101001
1101110
1100111
0100000
1100011
1101111
1100100
1100101
bits de contle
00110010000
10111001001
11101010101
11101010101
01101011001
01101010110
01111001111
10011000000
11111000011
10101011111
11111001100
00111000101
ordre de transmission des bits
12 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Détection et correction d’erreurs
Codes polynômiaux détecteurs d’erreurs
Codes CRC (Cyclic Redundancy Code)
correspondance entre rang des bits et degré des monômes
(par exemple, le mot 10011 code le polynôme x4+x+1 )
arithmétique polynomiale (soustraction modulo 2 et division
euclidienne)
Utilisation d’un polynôme générateur G(x)
G(x)de degré ret message M(x)
ajout de rbits à 0après le bit de poids faible de M(x)
division de xrM(x)par G(x): reste R(x)
envoi de T(x) = xrM(x)R(x)
T(x)est divisible par G(x)(à vérifier par le récepteur !)
13 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Rôle de la couche liaison de données
Fonctions spécifiques
Interface de service clairement définie à la couche réseau
Mécanismes pour assurer la fiabilité de la transmission
techniques de détection et correction d’erreurs
retour d’informations vers l’émetteur
détection des absences par temporisateur
politique de retransmission et numérotation
Contrôle du flux de données (éviter de saturer le destinataire)
14 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Trames de supervision
Objectif ultime : la fiabilité
La gestion de la liaison nécessite
l’échange de trames de
commande ou trames de
supervision
séq
somme
de contrôle
ack info
paquet
Règles de fonctionnement
coder les informations de commande
séparer l’information proprement dite de l’information de
commande
préciser les séquences valides d’échanges de trames
15 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Hypothèses communes
Hypothèse de conception
Chaque couche a son propre processus et communique par échange
de message
Hypothèse de service
Un service fiable orienté connexion est souhaité
Hypothèse de disponibilité
l’émetteur dispose d’un flux infini de données
le récepteur est en attente de réception
16 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Protocole simplex non restreint
séq
somme
de contrôle
ack info
paquet
Caractéristiques
unidirectionnel
couches toujours prêtes à émettre ou recevoir
tampons infinis
canal de communication sans perte
17 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Protocole simplex non restreint
séq
somme
de contrôle
ack info
paquet
typedef enum {arrivee_trame} type_evenement;
#include "protocole.h"
void emetteur1 (void)
{
trame s;
paquet tampon;
while (true) {
depuis_couche_reseau (&tampon);
s.info = tampon;
vers_couche_physique (&s);
}
}
void recepteur1 (void)
{
trame r;
type_evenement evenement;
while (true) {
attendre_evenement (&evenement);
depuis_couche_physique (&r);
vers_couche_reseau (&r.info);
}
}
18 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Protocole simplex de type stop-and-wait
séq
somme
de contrôle
ack info
paquet
Caractéristiques
unidirectionnel
tampons limités (risque d’écrasement de trames)
canal de communication sans perte
19 / 40
Introduction Couche physique Couche liaison Couche réseau Couche transport
Mécanismes protocolaires
Protocole simplex de type stop-and-wait
séq
somme
de contrôle
ack info
paquet
typedef enum {arrivee_trame} type_evenement;
#include "protocole.h"
void emetteur2 (void)
{
trame s;
paquet tampon;
type_evenement evenement;
while (true) {
depuis_couche_reseau (&tampon);
s.info = tampon;
vers_couche_physique (&s);
attendre_evenement (&evenement);
}
}
void recepteur2 (void)
{
trame r, s;
type_evenement evenement;
while (true) {
attendre_evenement (&evenement);
depuis_couche_physique (&r);
vers_couche_reseau (&r.info);
vers_couche_physique (&s);
}
}
20 / 40
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!