Chapitre 12 : Couches Basses des Réseaux Chapitre 12 Définitions des Métriques Bande passante (bandwidth (bandwidth = largeur de bande): bande): ligne téléphonique : plage 300 - 3300 Hz bande passante de 3000 Hz Ethernet 100 Mbps Couches Basses des Réseaux Débit (throughput ): (throughput): Performances utiles Mesurées depuis l’application (la Après déduction du surcoût (overhead) (overhead) lié aux protocoles Principalement du à l'ajout d'en-têtes/en-queues Ex: ADSL BP=608 Kbps => débit = 512 Kbps NB: Certaines parties de ce chapitre ont été empruntées à d'autres auteurs, en particulier : M. Syska, Peterson&Davie, A. Tanenbaum. Olivier Dalle Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux 1 Olivier Dalle 2 Chapitre 12 : Couches Basses des Réseaux Paramètres de Performance Bande Passante Intro. Réseaux et programmation sockets Paramètres de Performance Latence : délai minimum de transmission Dans le cas d'un message de taille minimale Pb: aller-simple difficile à mesurer Exprimée en Mbps 10 Mbps : 10 Millions de bits chaque seconde ou 10 Mbps : 1 bit chaque 0.1 microseconde (µ (µs) problème de synchro des horloges entre source et destination En pratique, on mesure l'aller-retour (RTT = round-trip-time) round-trip-time) Commande « ping » Composantes de la latence 1 Mbps : largeur de 1 µs (a) permittivité du conducteur Mesure la vitesse de propagation (cuivre ~ 2E8 m/s) 1 2 Mbps : largeur de 0.5 µs (b) 1 Fonction de la taille du paquet et de la bande passante Délais induits par les files d'attente (fig. Peterson&Davie) Olivier Dalle Temps pour transmettre une unité de donnée Intro. Réseaux et programmation sockets 3 Olivier Dalle Intro. Réseaux et programmation sockets 4 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Paramètres de Performance Gigue (jitter (jitter)) introduite par le réseau Transformation des signaux en bits Codage des bits de façon compréhensible par les participants à la communication Interpacket gap Packet 4 3 2 1 4 3 2 1 Network source Problèmes Visés dans les Couches Basses Transformation des bits en trames Packet sink Trame (frame) (frame) = message de bas niveau Pourquoi des messages ? (fig. Peterson&Davie) Identifier la source, la destination, ... Pb: délimiter le début et la fin d'un message Détection d’erreurs Communication sans erreur (apparente) Medium Access Control : #hosts > 2 Gigue = écart de latence Olivier Dalle Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux 5 Olivier Dalle Intro. Réseaux et programmation sockets 6 Chapitre 12 : Couches Basses des Réseaux Modèle de Noeud Modèle de Lien Médium: Paire croisée Câble coaxial Fibre optique Air CPU Adaptateur réseau Cache Mémoire bornée (Vers le réseau) Signal Ondes électromagnétiques Vitesse de la lumière I/O bus (fig. Peterson&Davie) Olivier Dalle Intro. Réseaux et programmation sockets 7 Olivier Dalle Intro. Réseaux et programmation sockets 8 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Spectre Eléctromagnétique Modems Modulateurs-Démodulateurs f(Hz) 10 0 2 10 10 4 6 10 Radio 8 10 10 10 10 12 14 10 Micro-ondes Infrarouge 10 16 10 UV 18 10 20 22 10 Rayon X 10 24 Signal binaire Gamma Modulation d'Amplitude 4 10 5 10 6 10 7 10 8 10 9 10 10 10 11 10 12 10 Satellite 13 10 14 10 15 10 16 10 Fibres optiques Modulation de Fréquence Coax AM FM Microondes Terrestres Modulation de Phase TV (fig. Tanenbaum) (fig. Peterson&Davie) Olivier Dalle 9 Olivier Dalle Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux Intro. Réseaux et programmation sockets 10 Chapitre 12 : Couches Basses des Réseaux Nombreuses Formes de Modulation... Codages Pour Conserver la Synchronisation On peut combiner simultanément Différents « niveaux » de changement de phase Différents « niveaux » de changement d'amplitude Problème (NRZ) : synchronisation du recepteur avec (les changements de) le signal ? Lors des changement d'état (0/1 ou 1/0) Pb en cas de longue séquence uniforme Solution : combiner avec un signal d'horloge NRZI : '1' = on change, '0' on ne change pas Manchester : XOR du signal avec l'horloge Mais bit rate = ½ baud rate QPSK QAM16 QAM64 (fig. Tanenbaum) Olivier Dalle Intro. Réseaux et programmation sockets 11 Olivier Dalle Intro. Réseaux et programmation sockets 12 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Codages NRZ, NRZI, Manchester Codage 4B/5B Que gagne-t-on en passant de NRZ à NRZI ? Bits 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 0 L'assurance de provoquer un changement à chaque fois qu'on transmet « 1 » Pour resynchroniser, il suffit de se forcer à envoyer des 1 de temps en temps Avec NRZ, pour resynchroniser de temps en temps, il faut se souvenir de ce qu'on a envoyé... NRZ Clock Codage 4B/5B On « gaspille » 1 bit supplémentaire tous les 4 bits Manchester Table de conversion : les 16 valeurs possibles sur 4 bits sont transformées en valeurs sur 5 bits Propriété du codage : NRZI Pas plus de 1 ‘0’ devant et de 2 ‘0’ derrière (fig. Peterson&Davie) Olivier Dalle 13 Olivier Dalle Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Codage 4B/5B Table de Conversion 0000 0001 0010 0011 0100 0101 0110 0111 11110 01001 10100 10101 01010 01011 01110 01111 14 Intro. Réseaux et programmation sockets Trames L'échange des bits se fait par paquets : les trames 1000 1001 1010 1011 1100 1101 1110 1111 10010 10011 10110 10111 11010 11011 11100 11101 Bits Noeud A Adaptateur Adaptateur Noeud B Trames Et après codage 4B/5B : transmission NRZI... Olivier Dalle Intro. Réseaux et programmation sockets (fig. Peterson&Davie) 15 Olivier Dalle Intro. Réseaux et programmation sockets 16 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Protocoles Orientés Octets 8 8 8 8 8 Header Body Protocoles Orientés Octets 16 CRC 8 8 8 16 Flag Address Control Protocol Payload 16 8 Checksum Flag (fig. Peterson&Davie) (fig. Peterson&Davie) BISYNC : Binary Synchronous Communication IBM 60’s PPP : modem Approche type sentinelle : Approche type sentinelle : Début : SYN (8 bits) Sentinelles : SOH = Start Of Header Payload : 1500 octets par défaut Plusieurs tailles de champs peuvent être négociées STX = Start Of Text ETX = End OF Text Par LCP (Link Control Protocol) Problème : le caractère ETX peut être dans le texte On le protège (escape) par un DLE (data-link escape) Olivier Dalle Intro. Réseaux et programmation sockets 17 Olivier Dalle Chapitre 12 : Couches Basses des Réseaux Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux Protocoles Orientés Bits Protocoles Orientés Octets 8 8 8 14 Count 42 Header Body 16 8 CRC Beginning sequence DDCMP : Digital Data Communication Message Protocol DECNET Approche comptage d’octets : au lieu de détecter la fin de la trame on compte le nombre d’octets et on l’écrit dans la trame avant le body Problème en cas d’erreur sur le champ Count : Erreur de trame Intro. Réseaux et programmation sockets 16 16 Header Body 8 Ending CRC sequence (fig. Peterson&Davie) (fig. Peterson&Davie) Olivier Dalle 18 SDLC Synchronous Data Link Control (IBM) HDLC High-Level Data Link Control (OSI) Début et fin étiquetés 01111110 Séquence envoyée tout le temps : même si le lien est idle Escape bit : bit stuffing Émetteur : si on envoie 5 ‘1’ alors on insère un ‘0’ avant le bit suivant Récepteur : si on reçoit 5 ‘1’ alors : le bit suivant vaut ‘0’ : on l’enlève (stuffed) le bit suivant vaut ‘1’ : fin de trame ou erreur si le bit suivant vaut ‘0’ alors : fin de trame si le bit suivant vaut ‘1’ alors : erreur, attendre la prochaine trame (01111110) 19 Olivier Dalle Intro. Réseaux et programmation sockets 20 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Protocoles Orientés Horloge Overhead Protocoles Orientés Horloge Payload STS-1 STS-1 STS-1 9 rows Hdr STS-3c 90 columns (fig. Peterson&Davie) (fig. Peterson&Davie) 1 trame SONET dure 125 s (pour tout STS-n) STS-1 (51.84 Mbps) -> STS-48 (2488.32 Mbps) SONET : standard américain pour les réseaux optiques. Europe : SDH Une trame STS-1 est longue de 810 octets, Une trame de STS-3 est longue de 3 x 810 = 2430 octets Trame : 9 lignes X 90 octets 3 premiers octets réservés, 87 restants pour données 2 premiers octets : début de trame Une trame STS-3 : un octet de la trame STS-1 #1, puis un octet de la trame STS-1 #2, puis un octet de la trame STS-1 #3, et ainsi de suite Le récepteur attend l'en-tête tous les 810 octets Olivier Dalle Intro. Réseaux et programmation sockets 21 Olivier Dalle Chapitre 12 : Couches Basses des Réseaux Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux Détection d'Erreur Codes détecteurs d'erreur Hamming, Reed-Solomon, Goppa, ... Principe : ajouter suffisamment de redondance pour pouvoir récupérer des erreurs n'importe où Inconvénient : toutes les transmissions sont « alourdies » VRC, LRC : bits de parité CRC : Cyclic Redundancy Check Division du message par un nombre (polynome) et transmission du reste A destination : si la division par le même polynome tombe juste : pas d'erreur Intro. Réseaux et programmation sockets Correction d'Erreur Codes Correcteurs (et détecteurs) Calcul sur la trame Insertion du résultat dans la trame Exemples : Olivier Dalle 22 Longueur du message Calculs lors de la réception Protocole au niveau Lien ACK, Timeout et retransmission après TIMEOUT: ARQ : Automatic Repeat Request Exemple : Stop-and-Wait Inconvénient : récupération beaucoup plus longue 23 Olivier Dalle Intro. Réseaux et programmation sockets 24 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Stop-and-Wait Sender Receiver Sender Fram e Stop-and-Wait Receiver Scénarios possibles: Fram (a) ACK recu avant Timeout (b) Trame perdue (c) ACK perdu (d) Timeout trop tôt e ACK (a) AC K 0 Performances ? Fram e 1 Hypothèses : - lien 1.5 Mbps - RTT = 45 ms 0 Tuyau de 67.5 Kb ou 8KB Trame = 1KB 1 (c) AC K Sender 0 Receiver Fram e ACK ACK Pour ne pas recevoir deux fois la même trame comme pour les cas(c) et (d): bit 0/1 alterné Sender Fram e Receiver Fram e Sender Receiver Fram Fram e e A CK ACK 0 1 trame par RTT seulement: 1024x8/0.045 = 182 Kbps Fram e Fram e ACK ACK (b) Comment garder le tuyau rempli? (fig. Peterson&Davie) (d) (fig. Peterson&Davie) Olivier Dalle Intro. Réseaux et programmation sockets 25 Olivier Dalle Chapitre 12 : Couches Basses des Réseaux Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux Protocole à Fenêtre Sender 26 Fenêtre Glissante Receiver ≤SWS ■■■ Exemple 8K/1K : ■■■ LAR Idéal : ne pas laisser de « bulle » dans le tuyau LFS Émetteur : Numérotation des trames Last Acknowledge Received Sliding Window Size Last Frame Sent LFS - LAR ≤ SWS Càd prendre de l'avance dans les transmissions Envoyer 8 trames Attendre ACK avant d'envoyer la 9e Récepteur : Last Frame Received Receive Window Size Largest Acceptable Frame LAF - LFR ≤ RWS Si SeqNum ≤ LFR ou SeqNum > LAF Alors Frame discarded ≤RWS Algorithme de Fenêtre Glissante (sliding (sliding window) window) ■■■ (fig. Peterson&Davie) ■■■ LFR LAF (fig. Peterson&Davie) Olivier Dalle Intro. Réseaux et programmation sockets 27 Olivier Dalle Intro. Réseaux et programmation sockets 28 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Attribution du Canal dans les Réseaux LAN/MAN Le problème Protocoles d'Accès Multiple ALOHA CSMA (Carrier Sense Multiple Access) Plusieurs stations Un seul canal Possibilité de collision Puis variantes selon CSMA-CD : Ethernet Protocoles sans collision Protocoles à contention restreinte Protocoles d'accès multiple par division de longueur d'onde Protocoles réseaux sans fils Gestion du temps des accès Modèle continu Modèle TDM Capacité de détecter la porteuse (retour du signal) Avec (carrier (carrier sense) sense) Sans Olivier Dalle Intro. Réseaux et programmation sockets 29 Olivier Dalle Chapitre 12 : Couches Basses des Réseaux Intro. Réseaux et programmation sockets 30 Chapitre 12 : Couches Basses des Réseaux ALOHA Pur ALOHA Pur (fig. Tanenbaum) Dans ALOHA pur, les trames sont transmises à des instants arbitraitres Olivier Dalle Intro. Réseaux et programmation sockets (fig. Tanenbaum) 31 Olivier Dalle Période de vulnérabilité de la trame grisée Intro. Réseaux et programmation sockets 32 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Dérivés de ALOHA Rendement Comparé des Variantes de CSMA Slotted ALOHA (ALOHA discrétisé) y=x Découpage du temps en tranches : les émissions ne peuvent pas être à cheval sur deux tranches CSMA : Carrier Sense = écouter avant de « parler » ! CSMA persistant Ecoute continue, transmission dès qu'un silence est détecté CSMA non persistant Dès qu'une station entend le réseau occupé, elle s'endort pour un délai aléatoire CSMA p-persistant Temps discret (idem ALOHA slotted) probabilité p d'émettre si libre (ou 1-p d'attendre slot suivant) Olivier Dalle (fig. Tanenbaum) Rendement = nb moyen de tentatives réussies / nb moyen de tentatives 33 Olivier Dalle Intro. Réseaux et programmation sockets Chapitre 12 : Couches Basses des Réseaux Intro. Réseaux et programmation sockets 34 Chapitre 12 : Couches Basses des Réseaux CSMA-CD Carrier Sense Multiple Access with Collision Detection Protocoles Sans Collision Des périodes sont prévues pour régler les litiges Lors d'une collision, les trames se mélangent Contention = dispute, litige Résultat incompréhensible Donc facile à repérer ! Principe : arrêter immédiatement la transmission en cas de détection de collision Le réseau peut être dans 3 états Silence Occupé sans collision Occupé par une collision (fig. Tanenbaum) Protocole élémentaire basé sur un bit-map. C'est le protocole utilisé par Ethernet... Olivier Dalle Intro. Réseaux et programmation sockets 35 Olivier Dalle Intro. Réseaux et programmation sockets 36 Chapitre 12 : Couches Basses des Réseaux Chapitre 12 : Couches Basses des Réseaux Ethernet Développé par Xerox dans les années 70 Standard IEEE 802.3 en 1985 Ethernet = ensemble de protocoles (niveaux 1 et 2) La sous-couche MAC de Ethernet Un format de trame DIX Plusieurs type de câblages Plusieurs topologies 802.3 Des « domaines de collisions » CSMA-CD Via des répéteurs, hubs, commutateurs, ... Plusieurs débits, dont 10, 100 et 1000 Mbps (fig. Tanenbaum) Olivier Dalle Intro. Réseaux et programmation sockets 37 Olivier Dalle Chapitre 12 : Couches Basses des Réseaux Switch Ethernet vs. Hub Ethernet Un Hub répète tout (y compris les collisions) Même domaine de collisions Un switch ne répète que le nécessaire Différents domaines de collisions Full duplex possible (si liaison point-à-point) (fig. Tanenbaum) Olivier Dalle Intro. Réseaux et programmation sockets 39 Intro. Réseaux et programmation sockets 38