Qualité de service dans les réseaux locaux commutés Par Edgard Seif Encadré par : M. Jean-Charles Grégoire & M. Nicolas Rouhana
ISP Objectifs: Maximiser l’utilisation des ressources 802.1Q 100Mbit/s ISP Objectifs: Maximiser l’utilisation des ressources sans dégradation de performances Possibilité d’offrir plusieurs types de services Premium Best Effort
Axes de recherches adoptés par l’INRS Simulation : utilisation de NS Réalisation d’une maquette : utilisation de plate formes Linux
QoS au niveau de l’Internet Nécessité ! Croissance explosive du trafique Émergence d’applications temps réel (ex. Voix sur IP, etc...) Solution de surdimensionnement du réseaux est inadéquate et insuffisante Rentabilité économique Comportement du réseau Critères de qualité de service délai : temps qui sépare l’émission d ’un paquet par une source et la réception de ce paquet par le destinataire gigue : variation du délai bande passante : disponible à un flot de données entre la source et la destination disponibilité : taux de perte due aux erreurs bit ou à la congestion
QoS au niveau de l’Internet (suite) Où modifier ? Nœuds Comment ? Mécanismes Admission control Traffic shaping (ex. Token bucket filter, Leaky Bucket) Scheduling (ex. FIFO, Priority, CBQ, WFQ, etc.) Policing
Intserv 3 classes de service Best Effort le service par défaut Contoled load : le réseau se comporte comme s’il est peu chargé Garanteed Service : garantie sur un délai, une gigue et une bande passante suffisante RSVP un protocole de signalisation pour la mise en place des réservations tout au long du chemin entre la source et la destination l'inconvénient majeur de cette solution c’est qu’elle n’est pas modulaire à la dimension de l'Internet
Marquage des paquets à l ’entrée du réseau DS-Domain 2 DS-Domain 1 DS-Domain 3 Diffserv Marquage des paquets à l ’entrée du réseau utilisation du champs TOS nommé DSCP utilisation de PHB dans le cœur de l'Internet (EF, AFxx, …) remédie au problème de modularité de Intserv MPLS en plus du tag pour spécifier le point de sortie un champs est proposer pour porte une priorité
La qualité de service au niveau 2 Pourquoi? la plus part du temps les usager se trouvent connecter a un LAN pour prendre en considération les ressources disponibles au niveau du LAN possibilité de faire des réservations avoir un service préférentiel des trames de haute priorité
La qualité de service au niveau 2 (suite) ATM : modèle référence CLEP : LAN partagé TPID TCI 2 Octets TPID : Tag Protocol Identifier TCI : Tag Control Information 1 user_priority VID 2 Bits : Octets: 8 4 5 6 CFI CFI : Canonical Format Indicator Valeur: 81-00 802.1q le groupe de travail ISSLL : publications de plusieurs drafts de propositions de mapper la QoS de niveau 3 au niveau 2 Admission control Traffic shaping Scheduling Policing
100Mbit/s 802.1Q +---------+ .-->| BA |<--. / +---------+ \ / +---------+ \ / .-->| Layer 2 |<--. \ / / +---------+ \ \ / / \ \ / / \ \ +---------+ / / \ \ +---------+ | App |<----- /-/---------------------------\-\----->| App | +---------+ / / \ \ +---------+ | RM |<----. / \ .--->| RM | +---------+ / +---------+ +---------+ \ +---------+ | Layer 2 |<------>| Layer 2 |<------>| Layer 2 |<------>| Layer 2 | +---------+ +---------+ +---------+ +---------+ RSVP Host/ Intermediate Intermediate RSVP Host/ Router Bridge/Switch Bridge/Switch Router Bandwidth Manager with centralized Bandwidth Allocator 802.1Q 100Mbit/s
NS Network Simulator Projet en cours: VINT Orienté objet Modularité et réutilisablilite du code Simulation par construction de blocs
sur la bonne interface réseau Diagramme de fonctionnement du commutateur * Réception d ’une trame * Retarder la trame ( temps de commutation ou de transit) Vérification du type de la trame Destinataire local Type du MAC du destinataire * Décapsuler la trame * Retarder * Émission de la trame sur la bonne interface réseau Fin sur le bon lien * Encapsuler la trame oui non 802.1Q 802.3
Frames from local Encapsulate/ Decapsulate Agent VID Classifier entry_ Switch entry Link Hash Delay Queue 802.1Q Mac Port Classifier Agent Encapsulate Decapsulate Mac Classifier To Channels Null/Agent Frames from local Encapsulate/ Decapsulate Agent VarpTable VLanRouter Node List VID List ID hash_ 802_1q_ mac2_ mac1_ demux1_ demux2_ vid1_ vid2_ delay_ entry_ Switch entry Link Hash Classifier Delay Queue Port Classifier Agent Encapsulate Decapsulate To Channels Null/Agent Frames from local Encapsulate/ Decapsulate Agent VarpTable VLanRouter Node List VID List ID hash1_ hash2_ demux_ delay_ Channel PHY Mac Ifq_ LL NetIface Node
Exemples de files d’attentes dans Linux travail sur Linux le contrôle de trafic Input de-multiplexing Upper layers (TCP, UDP,…) Output queuing Forwarding Traffic control Exemples de files d’attentes dans Linux Filter Class Queuing discipline Filter ‘ high ’ TBF, rate = 1 Mbps ‘ low ’ FIFO Queuing discipline with 2 priority Default
configuration des files d’attentes,des classes et des filtres avec tc usage: tc [OPTIONS] OBJECT {COMMAND | help} OBJECT = { qdisc | class | filter } OPTIONS = {-s [statistics] | -d [details] | -r [raw] } qdisc = { [p|b]fifo | prio | red | gred | cbq | tbf | sfq | etc.} class = { prio | cbq | etc.} filter = { rsvp | u32 | fw | route | etc.}
La topologie des testes Testes et résultats La topologie des testes A B C A B
Les générateurs de trafic NTTCP génération de trafic à débit constant ou exponentiel le protocole de transport est TCP ou UDP donne les résultats à la fin d ’une session MGEN génération de trafic unicast et multicast à débit constant UDP est le protocole de transport drec est utilise comme puits de trafic mcalc donne le débit, le délai et la gigue N.B. Synchronisation des machines avec NTP dans le cas de génération de trafic avec mgen
Testes et résultats } ensemble } ensemble Testes avec nttcp: (Processeur 500Mhz ) Bande passante : Débit du générateur Protocole Taille 2Mbps 1.9 Mbps TCP 1000 bits Seul 1Mbps 0.37Mbps UDP 1000 bits Seul 10Mbps 9.2 Mbps TCP 1000 bits Seul 10Mbps 0.37Mbps UDP 1000 bits Seul 100Mbps 96 Mbps TCP 1000 bits Seul 100Mbps 92Mbps UDP 1000 bits Seul 2Mbps 1.9 Mbps TCP 1000 bits 1Mbps 0.49Mbps UDP 1000 bits 1Mbps 0.19Mbps UDP 1000 bits (Processeur 133Mhz) 100Mbps 57.3 Mbps TCP 1000 bits Seul 100Mbps 227Mbps UDP 1000 bits Seul 1Mbps 0.12Mbps UDP 1000 bits Seul } ensemble } ensemble
Testes et résultats
Testes et résultats Bande passante limitée à 250 Kbps en utilisant CBQ
Bande passante limitée à 250 Kbps en utilisant CBQ
Priorité dans les trames 802.1q Solution simple pour mapper le DSCP sur les 3 bits du user_priority 101110xx 101110xxxxxxxxxx & 111000000000000 101000000000000 Ou xxxx11000111000 101x11000111000 veth_TCI = dev->vlan_dev->vlan_id; veth_TCI |= ((skb->priority << 8) & 0xE000) ; Implémentation d’un tableau de correspondance pour effectuer cette tâche