Quelques éléments sur IP
IP est un protocole qui permet l’adressage des machines et le routage des paquets de données [RFC791]. Il correspond à la couche (réseau) de la hiérarchie des couches ISO. Son rôle est d’établir des communications sans connexion de bout en bout entre des réseaux, de délivrer des trames de données (datagram) « au mieux (best effort) », et de réaliser la fragmentation et le réassemblage des trames pour supporter des liaisons n’ayant pas la même MTU (Maximum Transmission Unit, c’est-à-dire la taille maximum d’un paquet de donnée).
L’adressage IP : Un des éléments essentiels d’IP est la couverture mondiale qu’assure le protocole. Ceci est fait grâce à une gestion d’adresses uniques. L’adressage IP permet d’identifier de façon unique une interface dans une machine connectée à un réseau. Une machine ayant plusieurs interfaces est communément appelée un routeur. Elle est capable de recevoir et de renvoyer des paquets de données par le biais de différentes interfaces. Elle utilise pour cela une table de routage qui, dans sa version la plus simple, contient un certain nombre d’adresses internet complètes ou sous forme de masques (liste non exhaustives), l’interface à utiliser pour atteindre chacune d’elles, et une ou plusieurs interfaces par défaut vers lesquelles envoyer les paquets d’adresse inconnues. Cette correspondance peut être enrichie d’un coût, appelé aussi métrique, servant aux protocoles de routage que nous verrons plus loin.
Format du paquet IP : Un paquet IP est composé d’une entête et de données. L’entête contient des champs. Leurs descriptions sont les suivantes : Version : indique la version d’IP, IP Header Length (Longueur d’entête IP) : indique la taille du datagram header en mots de 32 bits, Type de Service : constitué de trois bits, spécifie comment un protocole de couche plus haute utilise les données et indique quel effort est à faire pour le traitement du paquet (délai, débit, fiabilité), Longueur Totale : spécifie la longueur totale en octets du paquet IP (entête et données), Identification : contient un entier qui identifie la trame actuelle. Ce champ est nécessaire pour le réassemblage des fragments de la trame, Flags (drapeaux) : est constitué de trois bits. Les deux bit de poids plus faible contrôlent la fragmentation. Le premier bit indique si le paquet peut être fragmenté, le deuxième bit indique si le paquet est le dernier d’une série de paquets fragmentés. Le troisième bit n’est pas utilisé, Offset (déplacement) : Dans le cas d’une fragmentation, ce champ indique la position du fragment relative au début des données dans le datagram original. Ceci permet au processus IP destinataire de reconstruire proprement le datagram,
Temps à Vivre : maintient un compteur qui est décrémenté d’une unité à chaque traversée d’un routeur. La trame est éliminée lorsque ce compteur devient nul. Ceci permet de protéger le réseau contre les erreurs de routage (cycles), Protocole : indique le protocole de couche supérieure qui est à l’origine du paquet, Header Checksum (Vérificateur d’entête) : permet de garantir l’intégrité de l’entête, Source Address (Adresse de source) : permet de spécifier le nœud émetteur, Destination Addres (Adresse de destination) : permet de spécifier le nœud récepteur, Options : permettent à IP de supporter plusieurs options dont celle de sécurité, La zone Data (Données) contient les données utiles (provenant des / à transférer aux couches supérieures).
Les Protocoles UDP et TCP
UDP : UDP (User Datagram Protocol) est un protocole de communication de niveau ISO 4 (transport) sans connexion : Cela signifie qu’il n’y a aucune garantie qu’une trame UDP émise arrive à destination. Les trames UDP sont encapsulées par la couche réseau IP sous-jacente. Elles peuvent être de longueur quelconque, la couche IP se charge de leur fragmentation et de leur réassemblage de façon transparente.
La qualité de service offerte par UDP est la même que celle fournie par IP. UDP ajoute cependant quelques informations importantes à l’entête, outre la longueur des données utiles et un checksum: ce sont les numéros de port source et de port destination. Ces numéros de port permettent de différencier plusieurs connexions ou services différents entre deux extrémités identiques dans le réseau IP, afin de pouvoir multiplexer les connexions entre deux mêmes machines.
TCP : TCP/IP (Transmission Control Protocol on IP) est un protocole de transport. Ce protocole est utilisé à grande échelle sur Internet. C’est un protocole de niveau 4 (transport) qui assure un transfert bidirectionnel de données, de façon fiable et sans erreur, avec contrôle et retransmission des données effectués aux extrémités de la liaison.
Il est utilisé par les services réseaux qui nécessitent de transférer des données de façon fiable et sans erreur. Les services ou protocoles l’utilisant peuvent aller de la simple liaison type terminal (telnet, rlogin) interactive et à bas débit, aux transferts type FTP (File Transfert Protocol) de plusieurs Méga-Octets non-interactive, en passant par les requêtes HTTP (HyperText Transfert Protocol), le mail (SMTP : Simple Mail Transport Protocol), ou la visio-conférence. La notion de port permettant le multiplexage des données entre deux extrémités est la même que dans le protocole UDP.
La principale caractéristique de TCP est qu’il est un protocole dit en mode connecté. Cela signifie qu’avant tout échange de données, une connexion entre les deux extrémités de la liaison doit être établie. Une fois réalisée, cette connexion, qualifiée de virtuelle, demeure existante jusqu’à terminaison explicite et peut-être considérée comme un tube particulier offrant une communication sûre reliant les ports respectifs des deux extrémités. Cela s’oppose aux protocoles de transport sans connexion comme UDP.
Le routage dans les domaines IP
Bien que l’adressage IP soit de niveau mondial, un seul routeur ne peut pas connaître toutes les adresses de destination dans sa table de routage. Une gestion hiérarchisée de l’adressage et du routage est donc nécessaire.
Le réseau internet est subdivisé en domaines. Chaque domaine peut lui-même être encore subdivisé en plusieurs sous-domaines (I.2.3: Format de l’adresse IP). Toutes les interfaces d’un même domaine ont en général la même adresse réseau. Les protocoles de routage dans un domaine IP sont appelés IGP (Interior Gateway Protocol : Protocole de routage intérieur). Entre les domaines IP, on parle de EGP (Exterior Gateway Protocol : Protocole de routage extérieur). Le routage IP: routage de proche en proche : La table de routage dans chaque routeur peut être positionnée par un opérateur, ou par un algorithme de routage. Si, une fois positionnée, le routage ne change pas, on le qualifie de routage statique, et au contraire, de routage dynamique si un algorithme est capable de le modifier en fonction des changements d’état du réseau.
Au minimum, chaque routeur doit avoir une vision partielle du réseau, limitée aux groupes d’adresses qui sont accessibles pour chacun de ses liens, permettant de transporter un paquet de proche en proche (next-hop). Une connaissance centralisée de l’ensemble des routeurs empruntés de la source jusqu’à la destination n’est pas nécessaire : Lorsqu’un paquet de destination inconnue (donc non locale) est reçu, le paquet est envoyé vers le routeur de frontière par défaut.
Les deux familles de protocoles IGP et EGP : Les IGP découvrent d’eux même la topologie du réseau pour trouver les chemins les mieux adaptés. Ils sont basés sur les algorithmes de type distance-vector qui n’ont qu’une vision partielle du réseau, ou sur les algorithmes de type link-state où chaque routeur construit une vision du domaine complet qu’il gère.
Les EGP travaillent principalement sur les routeurs de bordure des réseaux. Ils ne s’échangent pas les adresses de sous-réseaux.
Le routage entre les domaines IP: BGP
Le protocole BGP (Border Gateway Protocol) est un protocole de routage entre systèmes autonomes. Il est utilisé pour échanger les informations de routage entre AS dans le réseau Internet. Ces informations de routage se présentent sous la forme de la suite des numéros d’AS à traverser pour atteindre la destination. trafic Quand BGP est utilisé entre AS, le protocole est connu sous le nom de e-BGP (exterior BGP). Si BGP est utilisé à l’intérieur d’un AS pour échanger des routes entre les routeurs de bordure d’un même AS afin de le traverser, alors le protocole est connu sous le nom de i-BGP (interior BGP). BGP est un protocole très robuste et très scalable : les tables de routage BGP du réseau Internet comprennent plus de 90000 routes. Si BGP a atteint ce niveau de scalabilité, c’est essentiellement parce qu’il associe aux routes des attributs permettant de définir des politiques de routage entre AS. Les routeurs de frontière communiquant par i-BGP doivent être complètement maillés (mais pas forcément directement connectés) afin de permettre l’échange des informations. Les évolutions de BGP utilisent cependant des techniques permettant de réduire le nombre de messages à échanger afin de réduire le trafic de contrôle dans les grands AS.
Réseaux IP Multiservices et la gestion de QoS
L’Internet de demain devra permettre le déploiement d’applications multimedia ayant des exigences spécifiques en terme de QoS (Quality of Service : Qualité de service). Certains services comme les services vocaux auront besoin d’un faible délai point à point et d’une faible gigue.
D’autres, comme les trafics de données, nécessiteront des faibles taux de pertes ou d’erreurs, sans retransmission, avec éventuellement une certaine garantie de bande passante pour les trafics critiques comme les données transactionnelles.
Pour pouvoir garantir la QoS des flux transportés, il va donc falloir utiliser des mécanismes permettant de traiter de manière différenciée les différentes catégories de trafic dans les organes du réseau ainsi que des protocoles de signalisation de la QoS pour pouvoir allouer des ressources en fonction des besoins des applications. On peut distinguer deux grandes problématiques pour la gestion de la QoS dans un réseau IP : La gestion des phénomènes de congestion : Il s’agit un point fondamental pour garantir la QoS des flux. En effet, les mécanismes de gestion des QoS n’auront un impact effectif que lorsque le réseau sera chargé. Il existe deux grandes approches pour la gestion des congestions : les méthodes réactives et les méthodes préventives.
La philosophie du contrôle réactif est d’accepter un maximum de connexions. Lors de la congestion d’un équipement réseau (mesurée en terme de pertes, de délais et de remplissage des tampons), les sources réduisent leurs débits. Ainsi, dans le modèle Best-Effort (modèle « au mieux ») du réseau Internet actuel, la gestion du phénomène de congestion est faite de manière réactive par le mécanisme de fenêtre glissante (adaptation du débit) du protocole TCP. Toutefois, ce contrôle n’est pas adapté pour pouvoir offrir des garanties de QoS par exemple à des flux audio et vidéo temps réel : ils ne peuvent pas adapter leur débit.
A l’inverse, le contrôle préventif consiste à prendre des mesures « à priori », afin de minimiser l’apparition du phénomène de congestion et/ou pour qu’il n’affecte pas les services garantis. Ainsi, les techniques de contrôle d’admission ou de mise en forme des trafics (Policing, Shaping) permettent de réduire la fréquence des congestions tandis que les mécanismes de gestion de tampon (RED, WRED, etc.) permettent de respecter les QoS des services les plus prioritaires en cas de congestion.
L’ordonnancement (Scheduling) des paquets est aussi un mécanisme fondamental pour garantir la QoS des flux transportés. Ceci est évident si on considère des flux hétérogènes : les rafales de certaines connexions peuvent perturber le trafic temps réel même s’il n’y a pas congestion. Ainsi, bien que la mise en oeuvre d’ordonnancements autres que FIFO (First in, First out : Premier Entré, Premier Sorti ou PAPS) soit difficile sur des routeurs à très haut débit, les équipementiers réseau fournissent de plus en plus des mécanismes sophistiqués réalisant un ordonnancement prenant en compte les classes de trafic (WRR, WFQ, etc).
Table des matières
Introduction
Chapitre I – Les réseaux IP Multiservices et MPLS
I.1 Introduction
I.2 Quelques éléments sur IP
I.2.1 L’adressage IP
I.2.2 Format du paquet IP
I.2.3 Format de l’adresse IP
I.2.4 Protocoles de base d’IP
I.3 Les Protocoles UDP et TCP
I.3.1 UDP
I.3.2 TCP
I.3.2.1 Généralités
I.3.2.2 Une transmission sans perte et sans erreur
I.3.2.3 Fonctionnement
I.4 Le routage dans les domaines IP
I.4.1 Le routage IP: routage de proche en proche
I.4.2 Les deux familles de protocoles IGP et EGP
I.4.3 Les «Autonomous System»
I.4.4 Les protocoles de routage de type IGP
I.4.4.1 Distance-Vector
I.4.4.2 Link State : OSPF
I.4.5 Le routage entre les domaines IP: BGP
I.5 Réseaux IP Multiservices et la gestion de QoS
I.5.1 Introduction
I.5.2 Les Principaux Mécanismes de Gestion de la QoS
I.5.2.1 Traffic Shaping (mise en forme du trafic)
I.5.2.2 Traffic Policing
I.5.2.3 Buffer Management
I.5.2.4 Ordonnancement des trafics (Traffic Scheduling)
I.5.2.5 Exemples d’ordonnanceurs
I.5.2.6 Les délais de transmission des paquets
I.5.3 Le modèle Integrated Service (IntServ)
I.5.3.1 Principe de IntServ
I.5.3.2 Les composants du modèle IntServ
I.5.3.3 L’ordonnanceur (scheduler)
I.5.4 Le modèle DiffServ (Differentiated Services)
I.5.4.1 Principe du modèle DiffServ
I.5.4.2 Les composants du modèle DiffServ
I.5.4.3 Exemple d’architecture DiffServ
I.6 Le protocole MPLS
I.6.1 Les principes de base
I.6.1.1 Introduction
I.6.1.2 Principes de MPLS
I.6.1.3 Principe MPLS
I.6.1.4 Fonctionnement de base du LSP
I.6.2 MPLS et l’ingénierie de trafic
I.6.2.1 Motivation
I.6.2.2 Concept de MPLS-TE
I.6.2.3 Ingénierie de trafic avec MPLS-TE
I.6.2.4 Routage des LSP et OSPF-TE
I.6.3 Mécanismes de protection dans MPLS
I.6.3.1 Détection des erreurs et mécanismes
I.6.3.2 Les mécanismes de protection et récupération
I.7 Problématique
Chapitre II – Modélisation différentielle du trafic
II.1 Théorie différentielle du trafic
II.1.1 Principe général de la théorie différentielle du trafic
II.1.2 Modèles dynamiques de systèmes markoviens élémentaires
II.1.2.1 Modèle dynamique de la file
II.1.2.2 Modèle dynamique de la file
II.1.2.3 Modèle dynamique de la file
II.1.3 Modèles dynamiques de systèmes élémentaires non markoviens
II.1.3.1 Modèle dynamique de la file
II.1.3.2 Modèle dynamique de la file
II.1.4 Modèles dynamiques de réseaux de files d’attente
II.1.5 La forme produit
II.1.6 Modèle différentiel d’un réseau
II.1.7 Réseau test (réseau double X).
II.2 Ordonnancement équitable
II.2.1 Paradigme GPS (Generalized Processor Sharing)
II.2.1.1 Définition de GPS
II.2.2 Etat de l’art
II.2.3 Approximation analytique de GPS par linéarisation pour 2 files
II.3 Conclusion
Chapitre III – Sources de trafic
III.1 Processus de génération aléatoire
III.1.1 Générateur aléatoire uniforme
III.1.2 Générateur aléatoire à partir d’une PDF
III.1.3 Processus ON-OFF
III.1.4 Processus IPP
III.1.5 Processus MMPP-N+
III.1.6 Approximation d’un processus MMPP-N+1 par un processus MMPP-2
III.1.7 Processus corrélé basé sur le modèle
III.1.7.1 La corrélation
III.1.7.2 Génération des tailles d’image
III.2 Modèles de trafic agrégé
III.3 Générateurs de paquets
III.3.1 Générateurs et distribution empirique
III.3.2 Tests de validité pour les générateurs aléatoires uniformes
III.3.2.1 Caractéristiques des générateurs testés
III.3.2.2 Tests statistiques
III.3.2.3 Conclusion
III.3.3 Générateurs issus de distributions
III.3.3.1 Distribution exponentielle
III.3.3.2 Distribution Normale
III.3.3.3 Distribution Gamma
III.3.4 Sources Audio
III.3.4.1 G711, G726 et G729, RealAudio
III.3.4.2 : Sources vidéo
III.4 Statistiques sur des superpositions de sources de trafic
III.4.1 Sources Audio avec le Codec Audio G729 ON-OFF
III.4.1.1 Flux unitaire
III.4.1.2 Superposition en nombre constant de sources G729 ON-OFF
III.4.1.3 Codec G729 modélisé par un processus IPP
III.4.2 Sources Audio avec le Codec Audio G711 ON-OFF
III.4.2.1 Flux unitaire
III.4.2.2 Superposition en nombre constant de sources G711 ON-OFF
III.4.2.3 Superposition en nombre aléatoire de sources G711 ON-OFF
III.4.3 Sources Audio avec le Codec Audio G726-ON-OFF
III.4.3.1 Flux Unitaire
III.4.4 Sources Vidéo avec un processus modélisant le codec MPEG1
III.4.4.1 Flux unitaire
III.4.4.2 Superposition en nombre constant de sources Vidéo
III.5 Conclusion
Chapitre IV – TCP/IP
IV.1 Introduction
IV.2 TCP/IP Version NewReno
IV.2.1 Notations
IV.2.2 Algorithme
IV.2.2.1 Réception d’un paquet
IV.2.2.2 Emission d’un paquet
IV.2.3 Phénomène d’oscillations (silly window syndrom)
IV.2.4 Exemple
IV.2.4.1 Congestion des files d’attentes
IV.3 Quelques déclinaisons de TCP
IV.3.1 TCP-Pre-Taohe
IV.3.2 TCP-Tahoe
IV.3.3 TCP-Reno
IV.3.4 TCP-NewReno
IV.3.5 TCP-SACK
IV.4 Modèle différentiel par phase de TCP-NewReno
IV.4.1 Analyse qualitative
IV.4.1.1 La phase Slow-Start
IV.4.1.2 La phase Congestion Avoidance
IV.4.2 Modèle analytique différentiel de TCP-NewReno
IV.4.2.1 Phase Slow-Start sans perte
IV.4.2.2 Phase Congestion-Avoidance sans pertes
IV.4.3 Modélisation du Round-Trip-Time et des pertes dans le réseau
IV.4.3.1 Calcul de RTT(t) et de sa dérivée en fonction de la charge
IV.4.3.2 Calcul des pertes
IV.4.3.3 Analyse et calcul du retard pour arrêter l’émission
IV.4.4 Validations
IV.4.5 Conclusion
Chapitre V – Simulateur hybride
V.1 La difficulté des approches classiques
V.2 La Simulation Hybride
V.2.1 La simulation analytique
V.2.2 Le concept de Simulation Hybride
V.2.3 Deux principes de simulation hybride
V.2.4 Le simulateur hybride distribué DHS (Distributed Hybrid Simulator)
V.2.5 La simulation hybride
V.2.5.1 Algorithme général
V.2.5.2 Propagation des flots événementiels dans des nœuds analytiques
V.2.5.3 Calcul du taux de service moyen du service hybride
V.2.6 Exemples
V.2.6.1 Interconnexion hybride
V.2.6.2 Superposition hybride
V.3 Structure générale du simulateur DHS
V.3.1 Les noeuds, les flux et les flux-états
V.3.2 Le routage
V.3.2.1 Structure du routage
V.3.2.2 Routage de flux analytiques et de flux événementiels
V.3.2.3 Routage dynamique
V.3.3 Les événements
V.3.4 La simulation événementielle
V.3.4.1 Principe
V.3.4.2 Le paquet
V.3.5 La simulation analytique
V.4 Autres considérations sur la simulation
V.4.1 Statistiques
V.4.1.1 Rapport Stationnaire
V.4.1.2 Rapport Transitoire
V.4.1.3 Rapport de qualité de service sur les flots
V.5 Modélisation des réseaux IP Multi-Services et MPLS
V.5.1 Analogie avec les réseaux de files d’attente
V.5.2 Le modèle d’interface
V.5.2.1 Ordonnancement
V.5.3 Coeurs de réseaux MPLS
V.6 Validations
V.6.1 Réseau académique
V.6.1.1 Description des trafics
V.6.1.2 Interconnexion hybride
V.6.1.3 Superposition hybride
V.6.1.4 Résultats
V.6.2 Agrégation de sources de trafics
V.6.2.1 20 + 1 flux G711
V.6.2.2 Deux flux G711
V.6.3 Service D
V.6.4 Réseau réel et Interconnexion Hybride
V.6.4.1 Structure du réseau
V.6.4.2 La simulation
V.7 Conclusion
Chapitre VI – Environnement d’exécution distribuée
VI.1 Introduction
VI.2 Projets similaires
VI.3 Architecture de LANDA-HSN
VI.3.1 Modèle de la machine virtuelle
VI.3.2 Le modèle de communication
VI.4 Architecture de communication
VI.4.1 Introduction
VI.4.2 La communication locale
VI.4.2.1 Partage de mémoire
VI.4.2.2 Allocation en mémoire partagée
VI.4.2.3 Synchronisation
VI.4.2.4 Mécanisme de transfert de message en mémoire partagée
VI.4.2.5 Performances
VI.4.2.6 Implémentation
VI.4.3 Principes pour la communication distante
VI.4.4 Structure logicielle
VI.5 Utilisation de la couche Media
VI.5.1 Mode de communication
VI.5.2 Les canaux de communications (channel)
VI.5.2.1 La mémoire partagée (channel-shm)
VI.5.2.2 TCP (channel-tcp)
VI.5.2.3 Myrinet (channel-gm)
VI.6 Adaptation de MPICH sur l’environnement LANDA
VI.6.1 Introduction
VI.7 Simulation distribuée
VI.7.1 La parallélisation
VI.7.2 Equilibrage de charge
VI.7.3 Résultats préliminaires
VI.8 Conclusion
Conclusion
Références
Annexes
A.1 Modèles analytiques fluides de TCP
A.2 Charge et délais dans un réseau réel