Cours Réseaux 1 Plan I. Réseau: Définitions et éléments II. Le modèle à couches 2 1
Réseau: définition et éléments Des machines (dispositifs) connectées Ceux-ci sont utilisés pour communiquer entre eux ordinateurs, servers, PDA, routeurs Supports C'est ainsi que les dispositifs sont reliés entre eux fibre, cuivre, radio, satellites Messages L'information qui circule sur le support Règles Régit la façon dont les flux des messages traversent le réseau 3 Réseau: dispositifs (1) Terminaux forment l interface avec l humain et un réseau de communications Les terminaux peuvent être: client server client et server 4 2
Réseau: dispositifs(2) Le dispositif intermédiaire offre une connectivité et assure des flux de données à travers le réseau 5 Réseau: Supports(1) Les informations sont représentées par des signaux électriques/optiques/magnétiques) sur le support physique Le choix du support est influencé par les performances du système à réaliser (débit, bande passante, coût, taux d erreurs, distance maximale) Exemples: - LA paire torsadée (téléphonie, 1Mb-16Mb, 250m) - Le cable coaxial (TV, 2Mb-100Mb, 4Km) - La fibre optique (quelques Gb/Km, 500Km) - Radio (terrestre/ satellites, 36000Km) 6 3
Réseau: Supports(2) Le support de transmission n est pas parfait: - Distorsion de phase et affaiblissement - Bruit impulsif: interférence entre signaux - Bruit gaussien (blanc): phénomène thermique à l intérieur des conducteurs signal reçu # signal émis 7 Réseau: messages Les données sont envoyées à travers un réseau de petits «morceaux» appelés segments 8 4
Réseau: règles (protocoles) (1) Le protocole est un ensemble de règles prédéterminées bonjour bonjour Auriez-vous l heure SVP? 14 heures TCP connection req TCP connection response Get http://www.prism.uvsq.fr/~mogue temps <file> L'importance des protocoles et comment ils sont utilisés pour faciliter la communication sur les réseaux de données avec succès Les protocoles contrôlent l envoi et la réception des messages 9 Réseau: règles(protocoles)(2) Indépendance du matériel (dispositif) Beaucoup de divers types de dispositifs peuvent communiquer en utilisant les mêmes ensembles de protocoles. C'est parce que les protocoles spécifient les fonctionnalités du réseau, pas la technologie sous-jacente à la charge cette fonctionnalité. 10 5
Classification des réseaux Réseaux Personnels PAN(Personal Area Network) - Couverture: de 10m à 100m - Débit: quelques Mbits/s - Bluetooth, HomeRF, Réseaux locaux LAN(Local Area Network) - Couverture: de 100m à 1000m - Débit: quelques disaines de Mbits/s - Ethetnet,Token Ring, WiFi, HipperLan 11 Classification des réseaux Réseaux Métropolitains MAN(Metropolitain Area Network) - Couverture: la taille d une ville - Débit: quelques disaines de Mbits/s - FDDI, DQDB, ATM, WiMax,.. Réseaux grande distance WAN(Wide Area Network) - Couverture: Mondiale - Débit: quelques Mbits/s - RNIS, IP, ATM, WATM, GSM, 12 6
Topologies de connexion Logique: le mode d échange des messages dans le réseau Physique: raccordement des machines deux liaisons: point à point ou point à multipoints 13 Topologies (physique) Topologies de base - Bus - Etoile - Anneau 14 7
Topologies (physique) Topologies construites: dérivés des réseaux en étoiles 15 Caractéristiques de la liaison Une liaison est une vision logique utilisant un ou plusieurs supports de communication Types de liaisons - unidirectionelle «simplex» - bidirectionnelle à l alternat «half duplex» - bidirectionnelle «full duplex» A A A A A A 16 8
Modes de mise en relation Deux modes de fonctionnement pour transiter les informations Mode non connecté (Datagramme) - Une seule phase (Transfert des données) - Simple - Plusieurs chemins possibles : Hôte A x x x x x x : Hôte B : Hôte C 17 Modes de mise en relation Mode connecté (Circuit virtuel,cv/circuit physique) - Etablissement d une connexion - Transfert des données - Libération de la connexion - Service fiable - Complexe - Chemin dédié - Circuits commutés (SVC) - ou Circuits permanent(pvc) x x x x x : x Hôte A Circuit virtuel : Hôte B : Hôte C 18 9
Le Modèle en couches Principe: structuration en couches (niveaux) Chaque couche est construite précédente Modèle fondé sur un principe «diviser pour mieux régner»jules César Des changements dans une couche n'affectent pas les autres couches Le nombre, le nom, le contenu et les fonctions de couches diffèrent d un réseau à l autre Le rôle de chaque est d offrir un service à la couche supérieure deux aspects: Vertical et Horizontal 19 Le Modèle en couches Aspect vertical La couche N+1 voit la couche N uniquement par le service offert la couche (N+1) n a aucune vue sur la couche (N-1) la couche (N) est séparée de la couche (N-1) et de la couche (N+1) par une interface de service bien définie N+1 N Aspect horizontal N-1 Le protocole (N) définit les règles de communication à l intérieur de la couche N Les entités (N) représentent les éléments actifs de la couche N Couches supérieures Host A Host B Couches N Protocole N Couches inférieures 20 10
Le Modèle Open System Interconnection (OSI) Fournit une référence commune pour le maintien de la cohérence dans tous les types de protocoles réseau et les services Préciser les concepts et la terminologie Hiérarchiser les fonctions à réaliser Les fonctions doivent être divisées en groupe séparables du point de vue physique et logique Chaque couche doit contenir un volume suffisant de fonctions Des interfaces simples entre couches Les protocoles doivent agir uniquement à l intérieur de la même couche Une couche doit pouvoir être modifiée sans que soit affecté le service offert 21 Les sept couches du Modèle OSI 22 11
Les couches de protocoles : fonctions Couches OSI! Application" Fonctions! Applications réseaux : transfert de fichiers." Présentation" Session" Transport" Réseau" Liaison" Physique" Formatage et cryptage des données" Etablissement et maintien des sessions" Transport de bout en bout, fiable et non fiable" Envoi et routage des paquets de données" Transfert des unités d informations et contrôle d erreurs" Transmission des données binaires" 23 OSI : unités échangées 24 12
OSI : Modèle de Référence 25 OSI: encapsulation 26 13
Couches avec TCP/IP et le Modèle OSI Comparer les modèles OSI et TCP/IP 27 La couche Physique Protocol Implementation OSI File Transfer Electronic Mail Terminal Emulation File Transfer Client Server Network Mgmt Application File Transfer Protocol (FTP) RFC 559 Simple Mail Transfer Protocol (SMTP) RFC 821 TELNET Protocol RFC 854 Trivial File Transfer Protocol (TFTP) RFC 783 Network File System Protocol (NFS) RFC 1024, 1057 and 1094 Simple Network Management Protocol (SNMP) RFC 1157 Presentation Session Transmission Control Protocol (TCP) RFC 793 User Datagram Protocol (UDP) RFC 768 Transport Address Resolution Protocols ARP: RFC 826 RARP: RFC 903 Internet Protocol (IP) RFC 791 Internet Control Message Protocol (ICMP) RFC 792 Network Interface Cards Ethernet Token Ring Starlan Arcnet FDDI SMDS Transmission Mode TP STP FO Satellite Microwave, etc Network Data Link Physical 28 14
Transmission de l'information Responsible de la transmission des bits sur un circuit de communication Ø Activation et désactivation de la connexion physique Ø Détermination des caractéristiques électrique des circuits Ø Définition des procédures d utilisation des connexions physiques Les principaux éléments ( Données L ETCD (Equipement Terminal de Communication de équipement spécifique chargé d adapter les données à transmettre au support de communication ( Données L ETTD (Equipement Terminal de Traitement de ETTD émetteur machin e A ( d(t jonction ETCD émetteur modem ETCD émetteur ETTD émetteur support de transmission modem machine B voie (ou circuit) de données ( d'(t ( s'(t ( s(t jonction Fonctions de l'etcd Deux transformations fondamentales sont définies : Le codage : bits -> symboles la modulation : symboles -> signal les symboles peuvent être une fonction continue ou une suite de valeurs la transformation appliquée peut être très simple (pour le codage en ( BdB signal modulé signal émis A l émission ( a(t {aj} j N = ( s(t codeur décodeur {dk} k N suite binaire envoyée ETCD émetteur signal reçu ( b(t s'(t) = f(s(t)) + codeur signal démodulé a (t) = {a'j}j Ν décodeur suite bianire reçue {d'k} k N A la réception ETCD récepteur 15
Modulation Le modulateur transforme un signal initial quelconque a(t) en un signal s(t) adapté au support de communication employé Le signal s(t) est obtenu en faisant varier les paramètres d une onde généralement sinusoïdale s(t) = A cos (2 π f t Φ) : le signal sinusoïdal est centré autour d une fréquence f o appelée onde de référence ou porteuse Trois types élémentaires de modulation par transposition en fréquence: modulation d amplitude (lorsque les variations portent sur ( A modulation de fréquence (lorsque les variations portent ( f sur ( Φ modulation de phase (lorsque les variations portent sur Le Codage Le codeur transforme une suite {d k } k 0 initiale généralement binaire (de bits) en une suite codée {a k } k 0 (de symboles) généralement binaire ou ternaire Le décodeur fait l opération inverse. Le but du codage est d adapter la suite de bits à transmettre aux caractéristiques de la transmission S il n y a pas de modulation par transposition en fréquence, le codage est dit en bande de base : la plage de fréquences utilisée par le signal issu de la suite codée est la même que celle de la suite initiale. dans ce cas, le modulateur module à partir d une fonction rectangulaire. {a k } k 0 ( a(t <= {dk} = (1---1---0---1--- 0---0---0---1---1---0---1--- 1--- 1---0--- 0---1) suite binaire initiale a 1 ( t ) +a Codage binaire 0 t Δ 1 Période significative 16
Débit binaire et rapidité de modulation Le débit binaire D d une voie de données est le nombre maximum de bits d i transmis par seconde sur cette voie. D = 1/T bits/s La rapidité de modulation R (exprimée en bauds) mesure le nombre maximum de symboles (éléments de modulation) transmis par seconde R = 1/Δ bauds Remarque : Généralement, 1/Δ est un multiple de 1/T et le nombre de niveaux N est choisi de telle sorte que a(t) et d(t) aient le même débit d information. On a alors : Couche Liaison Protocol Implementation OSI File Transfer Electronic Mail Terminal Emulation File Transfer Client Server Network Mgmt Application File Transfer Protocol (FTP) RFC 559 Simple Mail Transfer Protocol (SMTP) RFC 821 TELNET Protocol RFC 854 Trivial File Transfer Protocol (TFTP) RFC 783 Network File System Protocol (NFS) RFC 1024, 1057 and 1094 Simple Network Management Protocol (SNMP) RFC 1157 Presentation Session Address Resolution Protocols ARP: RFC 826 RARP: RFC 903 Transmission Control Protocol (TCP) RFC 793 Internet Protocol (IP) RFC 791 Internet Group Management Protocol (IGMP) RFC 2236 Ethernet Token Ring Starlan Arcnet FDDI SMDS Network Interface Cards Transmission Mode TP STP FO Satellite Microwave, etc User Datagram Protocol (UDP) RFC 768 Internet Control Message Protocol (ICMP) RFC 792 Transport Network Data Link Physical 34 17
Couche Liaison Le niveau liaison a pour rôle de fiabiliser la transmission physique des données et ainsi de diminuer le taux d'erreurs Fonctionnalités Détection des erreurs Correction ou reprise sur erreurs Gestion du contrôle de flux Structure des données en blocs ou trames (PDU : Protocol Data Unit) Contrôle de flux Le récepteur reçoit des trames de données dans des buffers. La taille des buffers est limité. Si la vitesse d'arrivée des trames est plus grande que celle du traitement Saturation (engorgement) & perte de trames But du contrôle de flux Asservir ou ralentir le flux d'émission à la capacité mémoire Deux types de mécanismes : trame particulière du récepteur pour stopper l'émetteur fenêtre de contrôle de flux permettant l'auto-régulation de l'émetteur 18
Notion de Trames Objectifs: fourni un service à la couche réseau, utilise le service de la couche physique Idée : découpage en trames des trains de bits, calcul une somme de contrôle d'erreur pour chaque trame Plusieurs méthodes : Ø Compter les caractères è Utilisation d'un champ dans l'en-tête è Pb : si erreur du compteur => perte de synchronisation Ø Utiliser des caractères de début et de fin de trame et des caractères de transparence è DLE (Data Link Escape) et STX (Start of TeXt) en début de trame, et DLE et ETX (End of TeXt) en fin de trame è Pb: données peuvent contenir ces séquences Ø Utiliser des fanions de début et de fin de trame et des bits de transparence è Fanion : 01111110, ajout de 0 après cinq bits consécutifs à 1 Ø Violer le codage utiliser dans la Couche Physique High Data Link Control HDLC a été adopté par le CCITT: ( Procedure En 1980, sous le nom de LAP (Link Access En 1988, sous le nom de LAP-B (Balanced) qui gère le niveau liaison de l'interface X.25 Caractéristiques Procédure synchrone Orienté bit Protocole en mode connecté Le dialogue se déroule en trois phases Établissement de la liaison Transfert de données Libération de la liaison ( LAP-B ) Point à point Numérotation modulo 8 ou étendue modulo 128 Fenêtre d'anticipation maximale de 8 ou étendue module 128 19
Couche Réseau: Introduction Protocol Implementation OSI File Transfer Electronic Mail Terminal Emulation File Transfer Client Server Network Mgmt Application File Transfer Protocol (FTP) RFC 559 Simple Mail Transfer Protocol (SMTP) RFC 821 TELNET Protocol RFC 854 Trivial File Transfer Protocol (TFTP) RFC 783 Network File System Protocol (NFS) RFC 1024, 1057 and 1094 Simple Network Management Protocol (SNMP) RFC 1157 Presentation Session Address Resolution Protocols ARP: RFC 826 RARP: RFC 903 Transmission Control Protocol (TCP) RFC 793 Internet Protocol (IP) RFC 791 Internet Group Management Protocol (IGMP) User Datagram Protocol (UDP) RFC 768 Internet Control Message Protocol (ICMP) RFC 792 RFC 2236 Network Interface Cards Ethernet Token Ring Starlan Arcnet FDDI SMDS Transmission Mode TP STP FO Satellite Microwave, etc Transport Network Data Link Physical 39 IP? IP est un service simple pour l envoi de datagrammes en mode non connecté. IP est sensible à l adressage, il s assure que le routeur sait ce qu il doit faire, lorsque les données arrivent. 20
Fonctions IP Acheminement de datagrammes vers un destinataire en mode non connecté (Datagramme) @IP (Adresse IP) Routage : déterminer le chemin Pour les paquets de la couche transport Pour les trames de la couche liaison (Routeur) Aucune connaissance complète de la carte du réseau Fragmentation/Réassemblage Des micros aux gros systèmes Gestion des options IP Envoi et réception des messages de contrôle et d erreur par ICMP 41 Ce que ne fait pas IP! IP n est pas fiable : il ne fait pas Multiplexage Séquencement Détection des duplications Détection de perte et retransmission Contrôle de flux IP est un protocole Best effort 42 21
Internet datagramme Unité de transfert basique Format de datagramme Datagram header Datagram data area 0 4 8 16 19 24 31 Vers Hlen Type of serv. Total length Identification Flags Fragment offset TTL Protocol Header Checksum Source IP address Destination IP address IP Options (if any) Padding Data 43 IP datagramme Vers (4 bits): (IPv4=4) Hlen (4 bits): Header length (mot de 32 bits, sans options (cas général) = 20 octets) Type of Service TOS (8 bits): n est pas utilisé, Total length (16 bits): length de datagramme en octets en-tête inclus identification, flags, fragmentation Time to live TTL (8bits): spécifie la durée de vie de datagramme Routers decrement by 1 When TTL = 0 router discards datagram Prevents infinite loops Protocol (8 bits): spécifie le format de la zone de données Protocol numbers administered by central authority to guarantee agreement, e.g. TCP=6, UDP=17 44 22
IP Datagramme Checksum Source & destination IP address (32 bits ): contiennent les adresses IP source et destination Options (variable): infos. de routage et sécurité 45 IP Fragmentation Comment nous pouvons envoyer 1400 bytes à travers un réseau de Maximum Transfer Unit (MTU) est de 620 bytes? La réponse: fragmenter le datagramme Net 1 MTU=1500 Net 2 MTU=620 Net 3 MTU=1500 Routeur fragmente les datagrammes de 1400 bytes En 600 bytes, 600 bytes, 200bytes (20 bytes pour l en-tête IP) Routeurs ne re-assemblent pas les fragments 46 23
Contrôle de Fragmentation Identification: permet à la destination de connaître l origine de chaque fragment Fragment Offset (13 bits): permet la localisation des données transportées dans le fragment courant par rapport au datagramme initial Mesuré en unités de 8 bytes commençant par 0 Flags (3 bits): contrôle la fragmentation Réservé (0 bit) Don t Fragment DF (1 er bit): 1è n est pas fragmenté More Fragments MF (2ieme bit): 1è données qui suivent Environ de 0.1% - 0.5% des paquets TCP sont fragmentés. 47 Exemple de Fragmentation Offset=0 More frags Offset=1480 More frags Offset=2960 More frags Offset=3440 Last frag 48 24
Internet Adressage 32 bits par adresse L adresse réfère une interface qu une machine Composée de deux parties Identificateurs de network et host Class A, B, C for unicast Class D for multicast Class E réservée 4 octets/bytes en format décimal E.g. 134.79.16.1, 127.0.0.1 49 Classes d adresses d Internet Class A: plus de hosts, peu de networks 0nnnnnnn hhhhhhhh hhhhhhhh hhhhhhhh 7 bits network (0 et 127 réservés, soit 126 networks), 24 bits host (> 16M hosts/net) Class B: nombre de hosts et networks 10nnnnnn nnnnnnnn hhhhhhhh hhhhhhhh 16,384 class B networks, 65,534 hosts/network Plage d adressage 128-191 (décimal) Class C: grand nombre de networks 110nnnnn nnnnnnnn nnnnnnnn hhhhhhhh 2,097,152 networks, 254 hosts/network Initial byte 192-223 (decimal) Class D: 224-247 (decimal) ( RFC 1112) Class E: 248-255 (decimal) 50 25
Subnets: sous adressage Le mask du réseau est appliqué pour déterminer comment le réseau est sous adressé exemple : 137.138.28.228, et le mask sous réseau 255.255.255.0 alors 228 représente la machine est 137.138.28.0 le réseau 51 Conversions de subnet mask Prefix Length Subnet Mask Prefix Length Subnet Mask /1 128.0.0.0 /2 192.0.0.0 /3 224.0.0.0 /4 240.0.0.0 /5 248.0.0.0 /6 252.0.0.0 /7 254.0.0.0 /8 255.0.0.0 /9 255.128.0.0 /10 255.192.0.0 /11 255.224.0.0 /12 255.240.0.0 /13 255.248.0.0 /14 255.252.0.0 /15 255.254.0.0 /16 255.255.0.0 /17 255.255.128.0 /18 255.255.192.0 /19 255.255.224.0 /20 255.255.240.0 /21 255.255.248.0 /22 255.255.252.0 /23 255.255.254.0 /24 255.255.255.0 /25 255.255.255.128 /26 255.255.255.192 /27 255.255.255.224 /28 255.255.255.240 /29 255.255.255.248 /30 255.255.255.252 /31 255.255.255.254 /32 255.255.255.255 Decimal Octet Binary Number 128 1000 0000 192 1100 0000 224 1110 0000 240 1111 0000 248 1111 1000 252 1111 1100 254 1111 1110 255 1111 1111 52 26
Problèmes d Adressage En 1991 IAB (Internet Architecture Board) identifié 3 dangers Pénurie des adresses de classe B Augmentation des réseaux va exploser les tables de routage Augmentation des nets/hosts dépasse l espace d adressage de 32 bits Quatre stratégies d adressage Creative address space allocation {RFC 2050} adresses privées{rfc 1918}, Network Address Translation (NAT) {RFC 1631} Classless InterDomain Routing (CIDR) {RFC 1519} IP version 6 (IPv6) {RFC 1883} 53 Creative IP address allocation Plusieurs organisations d attribution d adresses APNIC Asia & Pacific www.apnic.net ARIN N. & S. America, Caribbean & sub- Saharan Africa www.arin.net RIPE Europe and surrounding areas www.ripe.net 54 27
Adresses privées IP adresses non routables, utilisées par les entreprises en interne ne sont pas assignées à des réseaux au sein de l Internet global Trois plages: 10.0.0.0-10.255.255.255 a single class A net 172.16.0.0-172.31.255.255 16 contiguous class Bs 192.168.0.0 192.168.255.255 256 contiguous class Cs Connectivité fournit par Network Address Translator (NAT) correspondre une adresse privée à une adresse IP publique (routable) seulement pour les paquets TCP/UDP 55 Classless InterDomain Routing (CIDR) Beaucoup d organisation ont > 256 machines mais peu ont plusieurs milliers À la place d attribuer une class B (16384 nets), on attribue des adresses de classe C < 256 adresses è 1 class C < 8192 adresses è 32 Class C 56 28
CIDR & Supernetting Blocs d adresses CIDR représentés par un préfixe et préfixe long Préfixe = seule adresse représente le bloc de réseaux 192.32.136.0 = 11000000 00100000 10001000 00000000 192.32.143.0 = 11000000 00100000 10001111 00000000 Préfixe 21 bits (2048 machines) Préfixe long indique le nombre de bits de routage 192.32.136.0/21 è 21 bits utilisés pour le routage CIDR regroupe tous les réseaux entre 192.32.136.0 et 143.0 en une seule entrée dans le routeur réduire les entrées dans la table de routeur Voir en détail RFC 1519 57 IPV6 Pourquoi un nouveau Protocole IP? Actuellement la taille de l Internet double tous les 12mois o problèmes à résoudre l'épuisement des adresses IP (2008 +/- 3 ans) o Et l'explosion de la taille des tables de routage o le nouveau protocole doit permettre d'adresser un espace (beaucoup) plus grand (10 E+9 réseaux au minimum) o un routage plus efficace 58 29
de IPv4 à IPv6 Pour résoudre ces problèmes : Nouvelle version de Internet Protocol : Version 6 actuellement : IPv4 IANA: Internet Assignment Numbers Authority (RFC 1700) Ce nouveau protocole (IPv6) : o garde ce qui a fait le succès de l Internet o étend la fonction d'adressage et de routage o tend à résoudre les problèmes qui vont devenir critiques (applications temps réel, multipoint, sécurité...) 59 IPV6 :Quelques Caractéristiques o Adresse plus longue : 128 bits (16 octets) o Adressage de 340 x 10 e36 équipements o Adressage hiérarchique 3 types d adresses : o Unicast o Multicast o Broadcast 60 30
IPV6 :Quelques Caractéristiques En-tête simplifié o nombre de champs réduit de moitié => augmente l'efficacité de commutation des équipements de routage Extension de l'en-tête pour les options o Les options IPv6 sont placées dans des en-têtes séparés, intercalés entre l'en-tête IPv6 et l'en-tête de la couche transport=> introduction aisée de nouvelles fonctionnalités o la longueur des options n'est plus limitée à 40 octets 61 IPV6: Nouvelles fonctionnalités "Marquage" des flux particuliers : (Flow Label) o applications temps réel, Qualité de Service ( QoS) o Priorité du trafic de contrôle Sécurité : o authentification et intégrité des données o en option : confidentialité Routage à partir de la source o Source Demand Routing Protocol 62 31
IPv4 -> IPv6 changements de l'en-tête o Header Length (IHL) : supprimé o ToS --> Flow Label o Total Length ( TL) --> Payload Length o ID, Flags et Fragment Offset (FO) : supprimés o TTL --> Hop Limit o Protocol --> Next header (mêmes valeurs que dans IPv4) o Header CS : supprimé o Adresses : 32 --> 128 bits (4 --> 16 octets) o Alignement 32 --> 64 bits 63 IPV6 : En-tête 64 32
IPV6: les champs de l'en-tête o Vers : Version Number (= 6) o Traffic Class : priorité ou classes de trafic (Differentiated Services) o Flow label : marquage des paquets «spéciaux» o Payload length : longueur du paquet après en-tête (en octets). autorise des paquets > 64 Koctets => Payload length = 0 o Next header : indique le type d'entête suivant immédiatement l'entête IPv6 On utilise les mêmes valeurs que dans le champ "Protocol" de IPv4 pour référencer les protocoles de niveau 4 (TCP=6, UDP=17, ICMP=1) 65 IPV6:les champs de l'en-tête Hop_limit : -1 chaque fois que le paquet est commuté par un équipement si hop_limit = 0 => le paquet est détruit. permet de réduire l'effet des boucles de routage. Source address : @ de l'émetteur initial du paquet Destination adress : Une adresse de destination... peut-être différente de l'adresse destination finale si l'option "Routing Header" est présente. 66 33
IPV6: en-têtes optionnelles 67 IPV6: Les options Hop-by-Hop Header :transport d'information qui doit être examinée sur chaque noeud du chemin suivi par le datagramme IP. End-to-end Header : transport d'information qui n'est à examiner que par le destinataire du datagramme. Routing Header : routage à partir de la source liste un ou plusieurs noeuds intermédiaires "à visiter" au cours de l'acheminement du datagramme "Reverse bit" : si = 1 => utiliser l'information de routage pour le retour sinon => résoudre le routage à partir de l'extrémité destinataire 68 34
IPV6 : en-têtes optionnelles Fragment header :dans IPv6, la fragmentation n'est réalisée que par la source Authentication Header :authentification et intégrité des données Privacy Header : chiffrement des données à protéger datagramme TCP/ UDP ou datagramme IPv6 entier, à la demande 69 IPV6: Allocation des Adresses Allocation initiale des adresses : # 15% @ Unicast des prestataires de connectivité (ISP) @ Multicast @ à usage local @ compatibles IPv4 autres : ISO NSAP,IPX, téléphone? Réserve pour la croissance : # 85% 70 35
IPV6 : Format des adresses 71 IPV6: La Mobilité La mobilité IPv6 s appuie sur : o L expérience acquise dans IPv4 o Les nouvelles fonctionnalités d IPv6 o L opportunité du déploiement d une nouvelle version d IP o La mobilité IPv6 permet le support des communications avec un mobile en effectuant un routage soit : ü vers le point d attachement du mobile sur l'internet ü vers l adresse du mobile dans son sous-réseau mère 72 36
IPV6: L adressage d un mobile Un mobile est toujours joignable par son adresse mère Un mobile en déplacement possède toujours une adresse temporaire (autoconfiguration) : o Réception de «Router Advertisement» indiquant le préfixe du sous réseau visité o Concaténation de ce préfixe avec l adresse MAC de l interface La détection de mouvement s effectue également à l aide des mécanismes de «Neighbor Discovery» 73 Concepts de routage q Deux types basics de routage IP : o Routage Direct. La machine destination est directement attachée au même support physique réseau comme la machine source ü Le datagramme IP est encapsulé dans une trame physique (i.e. Ethernet). o Routage Indirect. Attachement physique de la source et la destination n est pas nécessaire Un seul chemin pour rejoindre la destination via un ou plusieurs routeurs L adresse du premier routeur(default gateway) est la seule adresse exigée par la source 74 37
Concepts de routage Table de routage IP q Chaque host/router garde un ensemble de chemins avec le routeur next dans la direction de la Destination q Ces chemins sont stockés dans la table de Routage IP. Cette table contiendra trois chemins différents: Routes directes pour les réseaux attachés localement. Routes indirectes pour les réseaux atteints via un ou plusieurs réseaux Une default route dans le cas où le réseau destination n a pas de table de routage q Un Algorithme de routage IP Routing without Subnets Does Destination IP Network Address = Local Host IP Network address? IP Routing with Subnets Does Logical AND (Destination IP Address, Subnet Mask) = Logical AND (Local Host IP address, Subnet Mask) Yes Send IP Datagram to the directly attached network. No Send IP Datagram to the interface (gateway) corresponding to the destination IP (sub)network address. Yes Send IP Datagram to the directly attached network. No Send IP Datagram to the interface (gateway) corresponding to the destination IP (sub)network address. 75 Algorithme de routage w/ Subnets Destination IP Address Does Logical AND (Destination IP Address, Subnet Mask) = Logical AND (Local Host IP address, Subnet Mask) Yes Send IP Datagram to the directly attached network. No Is there an indirect route entry? Yes Send IP Datagram to the interface (gateway) corresponding to the destination IP (sub)network address. No Is there a default route entry? Yes Send IP Datagram to the interface (gateway) corresponding to the default router's IP address. No Send the ICMP error message "Network Unreachable". 76 38
ARP(Address Resolution Protocole) q Problème o IP est une méthode d adressage utilisée au niveau réseau pour identifier les machines et les réseaux C est une adresse logique et n est pas physique/ MAC adresse. Physique/ MAC adresses identifient les stations au niveau liaison o méthode d adressage TCP/IP n était pas désignée pour les LANs LANs exigent que les stations connaissent chaque adresse physique pour établir la communication. La station connaît l adresse IP destination mais ne connaît pas l adresse MAC destination Comment la station obtiendra-t-elle l adresse MAC destination? q Solution Mappage (correspondre) de l address IP (32 bits) dans l adresse MAC (48 bits) TCP/IP utilisera ARP pour trouver l adresse physique de la station destination 77 ARP : CONCEPT ARP Table 02-60-8c-01-02-03 129.1.1.1 00-00-A2-05-09-89 129.1.1.2 08-00-20-67-92-89 129.1.1.4 08-00-02-90-90-90 129.1.1.5 1 IP demande une MAC address de la table ARP 2. Station recherche dans l entrée dans la table ARP 3. Si l adresse est dans la table alors retourne MAC address à IP 4. Si l adresse MAC n est pas dans la table, un paquet ARP Request généré sur le réseau en utilisant physical Broadcast address (tous à FFFFFF ). 5. La machine reconnaît son adresse IP et répond par un paquet ARP Response Packet en indiquant son Adresse MAC 6. Sur réception du paquet reply, la station met à jour sa table ARP 129.1.1.1 129.1.1.5 129.1.1.2 129.1.1.4 78 39
ARP Table q ARP Table Size: adresses IP o Routeurs peut avoir plusieurs centaines d entrées o les hosts quelques entrées. q ARP Timeout Variable entre 120s à 4heures, indique le temps d expiration (effacement) de l adresse de la table q Adresses MAC 79 ARP PACKET FORMAT Unknown Known 0 16 HTYPE 16 bits PTYPE 16 bits HLEN PLEN 8 bits 8 bits OPNS 16 bits Source MAC 48 bits Source IP 32 bits Destination MAC 48 bits Destination IP 32 bits 28 bytes HTYPE. The hardware type field indicates the network (hardware interface type) for which the sender seeks an answer. This will be 1 for Ethernet. PTYPE. The protocol type field specifies the type of high-level protocol address the sender has supplied. This is normally 0800h for IP addresses. HLEN. The hardware address length field specifies the size in bytes of the hardware address. This field will normally contain the value 6 (the length of the MAC address field is 48 bits). PLEN. The protocol address length field specifies the size in bytes of the high-level protocol address. This field will normally contain the value 4 (the length of the IP address is 32 bits). OPNS. The operations field specifies whether the packet is an ARP request (a value of 1) or an ARP reply (a value of 2). The field is required since the Ethernet field type will contain the same value for both ARP request and ARP reply. 80 40
Hardware Types Hardware Type Decimal Code DIX -Ethernet and FDDI 1 IEEE 802 (802.3 and 802.5) 6 ARCnet 7 LocalTalk 11 SMDS 14 Frame Relay 15 ATM 19 Serial Line 20 81 ARP : format de paquet Unknown Known 0 16 HTYPE 16 bits PTYPE 16 bits HLEN PLEN 8 bits 8 bits OPNS 16 bits Source MAC 48 bits Source IP 32 bits Destination MAC 48 bits Destination IP 32 bits 28 bytes Source MAC. The physical/mac address of the source station requesting the address resolution. Source IP. The IP address of the source station requesting the address resolution. Destination MAC. The physical/mac address of the destination station which will resolve the address mapping. This field will normally be set to all 0s in the request packet because this field is unknown. Destination IP. The IP address of the destination station which will resolve the address mapping. NOTE: 1. For an ARP Request all the fields are filled in except the destination MAC address. 2. When the host receives the ARP request, it fills in its hardware address and swaps the two sender addresses with the two destination address. 3. The OPNS field is set to 2(this indicates a reply) and a reply is sent back to the requesting station. 4. The reply can either be broadcast of unicast but is normally unicast. 82 41
RARP (Reverse ARP) q Problème o MAC dépend du matériel cependant IP adresses sont indépendantes. o Les programmes d Application utilisent IP adresse pour spécifier une destination. Cette adresse est enregistrée sur le disque de l ordinateur, le système au démarrage lit cette adresse o Stations sur le réseaux utilisent Physical/ MAC adresses pour spécifier la destination. ARP est utilisé pour accomplir la correspondance entre deux adresses La station source connaît son MAC address mais pas son IP address Comment une station du travail diskless obtient une IP address? q Solution o TCP/IP utilisera RARP pour trouver Internet Address à travers le réseau via RARP server o Chaque réseau doit posséder au moins un RARP server o IP fait correspondre une IP adresse avec une adresse MAC 83 ARP/RARP PACKET FORMAT Known Unknown Known Undefined 0 16 HTYPE 16 bits PTYPE 16 bits HLEN PLEN 8 bits 8 bits OPNS 16 bits Source MAC 48 bits Source IP 32 bits Destination MAC 48 bits Destination IP 32 bits 28 bytes HTYPE. The hardware type field indicates the network(hardware interface type) for which the sender seeks an answer. This will be 1 for Ethernet. PTYPE. The protocol type field specifies the type of high-level protocol address the sender has supplied. This is normally 0800h for IP addresses. HLEN. The hardware address length field specifies the size in bytes of the hardware address. This field will normally contain the value 6(the length of the MAC address field is 48 bits). PLEN. The protocol address length field specifies the size in bytes of the high-level protocol address. This field will normally contain the value 4 (the length of the IP address is 32 bits). OPNS. The operations field specifies whether the packet is an RARP request (a value of 3) or an RARP reply (a value of 4). The field is required since the Ethernet field type 84 will contain the same value for both RARP request and RARP reply. 42
ARP/RARP PACKET FORMAT Known Unknown Known Undefined 0 16 HTYPE 16 bits PTYPE 16 bits HLEN PLEN 8 bits 8 bits OPNS 16 bits Source MAC 48 bits Source IP 32 bits Destination MAC 48 bits Destination IP 32 bits 28 bytes Source MAC. The Physical/MAC address of the source station requesting the address resolution. This field is known. Source IP. The IP address of the source station requesting the address resolution.this field is unknown and will normally be set to all 0s. It will be filled in by the responding RARP server. Destination MAC. For a RARP Request, the physical/mac address of the source station requesting the address resolution. Destination IP. The IP address of the RARP server. This is unknown. NOTE: 1. For an RARP Request, the Source MAC and Destination MAC addresses are filled in with the physical address of the requesting station. The Source IP is Unknown and will be filled in by RARP server. The Destination IP is unknown. 2. For an Rarp Response, the Source MAC and Source IP addresses contain the physical address and logical address of the RARP server. The Destination MAC contains the physical address of the requesting station while the Destination IP contains the IP address of the requesting station assigned by the RARP server. 3. The OPNS field is set to 4 to indicate a reply. 85 ICMP (Inetrenet Control Messge Protocol) q ICMP fait un compte rendu sur les conditions d erreur à la source q ICMP permet aux routeurs d envoyer des messages d erreur ou de supervision à d autres routeurs ou machines q ICMP offre un mécanisme de communication entre le logiciel IP d une machine et celui d une autre machine q Le message ICMP est encapsulé dans un datagramme IP et il est considéré comme une partie intégrante du protocole IP q Le message d erreur ICMP contient l en-tête IP et 8 premiers bytes de message q Dans l ordre d éviter la congestion, un message ICMP n est jamais envoyé en réponse au: o Un message d erreur ICMP o Une adresse broadcast ou multicast o Un autre fragment que le premier o Une adresse source qui ne définit pas une seule machine 86 43
ICMP: ENCAPSULATION 0 7 8 15 16 31 TYPE CODE CHECKSUM 8 bits 8 bits 16 bits Options/Unused (content depends upon type and code) Internet Header and 8 octets of original data TYPE. Type de message (20 ICMP type messages) CODE. Fournit des infos. Supplémentaires sur le type de message CHECKSUM. Le même comme IP, mais pour le message ICMP (y compris les données) OPTION FIELD. Le contenu dépend de type de message. 87 ICMP: Messages d erreurs Host Router Router Error Messages Destination is unreachable. Time-to-Live expired at router. Bad parameter in the IP header A better route is available Host Host Host Error Messages Service is unreachable. Fragment reassembly time has expired. Bad parameter in the IP header 88 44
ICMP : Types de messages 0 Echo Reply RFC 792 3 Destination Unreachable RFC 792 4 Source Quench RFC 792 5 Redirect RFC 792 8 Echo RFC 72 9 Router Advertisement RFC 1256 10 Router Solicitation RFC 1256 11 Time Exceeded RFC 792 12 Parameter Problem RFC 792 13 Timestamp RFC 792 15 Information Request RFC 792 16 Information Reply RFC 792 17 Address Mask Request RFC 950 18 Address Mask Reply RFC 950 30 Traceroute RFC 1393 32 Mobile Host Redirect 33 IPv6 Where-Are-You 34 IPv6 I-Am-Here 35 Mobile Registration Request 36 Mobile registration Reply 89 Destination inaccessible 0 7 8 15 16 31 TYPE = 3 CODE CHECKSUM 8 bits 16 bits Unused Internet Header and 8 octets of original data 90 45
Destination inaccessible Code Description 0 Network is unreachable 1 Host is unreachable 2 Protocol is not supportable at destination 3 Port unreachable (application is probably not available) 4 Fragmentation required but DF bit is set 5 Source route failed 6 Destination network unknown 7 Destination host unknown 8 Source host isolated (obsolete) 9 Destination network administratively prohibited 10 Destination host administratively prohibited 11 Network unreachable for TOS 12 Host unreachable for TOS 13 Communication administratively prohibited by filtering 14 Host precedence violated 15 Precedence cutoff in effect 91 La couche Transport Protocol Implementation OSI File Transfer Electronic Mail Terminal Emulation File Transfer Client Server Network Mgmt Application File Transfer Protocol (FTP) RFC 559 Simple Mail Transfer Protocol (SMTP) RFC 821 Transmission Control Protocol (TCP) RFC 793 TELNET Protocol RFC 854 Trivial File Transfer Protocol (TFTP) RFC 783 Network File System Protocol (NFS) RFC 1024, 1057 and 1094 Simple Network Management Protocol (SNMP) RFC 1157 User Datagram Protocol (UDP) RFC 768 Presentation Session Transport Address Resolution Protocols ARP: RFC 826 RARP: RFC 903 Internet Protocol (IP) RFC 791 Internet Group Management Protocol (IGMP) RFC 2236 Internet Control Message Protocol (ICMP) RFC 792 Network Interface Cards Ethernet Token Ring Starlan Arcnet FDDI SMDS Transmission Mode TP STP FO Satellite Microwave, etc Network Data Link Physical 92 46
services de transport et protocoles fournit une communication logique sur des processus d application exploités sur des serveurs différents les protocoles de transport s exécutent aux extrémités les messages sont découpés en segments, par l émetteur Le récepteur: reassembles ces segments en messages Plusieurs protocoles de transport disponibles pour les applications Internet: TCP et UDP application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical 93 Relation entre couches Transport et réseau Couche réseau: communication logique entre machines Couche transport: communication logique entre processus analogie: 12 enfants envoient des lettres à 12 autres enfants processes = enfants app messages = lettres dans les enveloppes hosts = maisons transport protocol = Anne et Bill network-layer protocol = service postal 94 47
Les protocoles de la couche transport Délivrance fiable, dans l ordre (TCP) Contrôle de congestion Contrôle de flux Initialisation de la connection Délivrance Non fiable, en désordre (UDP) services non disponibles: délai garanti bandwidth garantie application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical 95 Multiplexage/Démultiplexage Démultiplexage à rcv host: Orientation des segments reçus vers la bonne interface socket Multiplexage à send host: Rassemblement des données Création des segments = socket = process application P3 P1 P1 application P2 P4 application transport transport transport network network network link link link physical physical host 1 host 2 host 3 physical 96 48
Comment le démultiplexage fonctionne? host reçoit IP datagrams chaque datagram a une source IP adresse, une destination IP adresse chaque datagram contient un segment transport chaque segment a des numéros de ports source, destination La machine utilise l adresse IP et le numéro de port pour diriger le segment au socket appropriée 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format 97 Démultilexage sans connection P3 P2 P1 P1 SP: 6428 DP: 9157 SP: 6428 DP: 5775 SP: 9157 SP: 5775 client IP: A DP: 6428 server IP: C DP: 6428 Client IP:B 98 49
Démultiplexage avec Connection TCP socket identifiée par un tuple suivant: source IP address source port number dest IP address dest port number recv host utilise les 4 valeurs pour diriger le segment vers la socket appropriée Server host peut supporter plusieurs TCP sockets simultanées: chaque socket identifiée par un tuple de 4 valeurs Web servers ont des différents sockets pour chaque connection client HTTP ouvre differentes socket paur chaque demande 99 Démultiplexage avec Connection P3 P3 P4 P1 P1 SP: 80 DP: 9157 SP: 80 DP: 5775 SP: 9157 SP: 5775 client IP: A DP: 80 server IP: C DP: 80 Client IP:B 100 50
UDP: User Datagram Protocol [RFC 768] q UDP est un protocole best effort, UDP segments peuvent être: perdus Délivrés en désordre à la couche application Sans connection: pas d accord en avance entre UDP sender, receiver chaque UDP segment est manipulé indépendemment des autres Pourquoi UDP? pas d établissement de connection (qui peut ajouter un délai supplémentaire) simple: pas d état de connection à l émetteur, récepteur un en-tête plus court de segment (8 octets) pas de contrôle de congestion 101 UDP: structure de segment souvent utilisé pour des applications comme streaming multimédia Length, in (audio) bytes of UDP tolérance aux pertes segment, sensible au débit including header autres applications DNS SNMP le transfer sur UDP dépend de la couches application 32 bits source port # dest port # length Application data (message) checksum UDP segment format 102 51
Principes du transfert de données fiable important dans les couches application, transport et liaison Characteristiques de canal non fiable détermineront la complexité du transfert de données fiable reliable data transfer protocol (rdt)/unreliabledt (non fiable) 103 Opération sans erreurs rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) Wait for call from above Wait for ACK or NAK rdt_rcv(rcvpkt) && isack(rcvpkt) rdt_rcv(rcvpkt) && isnak(rcvpkt) udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) 104 52
Scenario d erreur rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) Wait for call from above Wait for ACK or NAK rdt_rcv(rcvpkt) && isack(rcvpkt) rdt_rcv(rcvpkt) && isnak(rcvpkt) udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(nak) Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) 105 Erreur fatale! Qu est ce que se passe si ACK/NAK erronés? l émetteur ne sait pas qu est ce que se passe chez le destinataire! ne peut pas juste retransmettre: duplication possible Qu est ce qu il fait? le sender si ACK/NAK se perdent? Eviter la duplication: sender ajoute sequence number pour chaque paquet sender retransmet le paquet courant si ACK/ NAK corrompus le destinataire écarte le paquet dupliqué stop and wait Sender envoie un paquet alors attends la réponse de récepteur 106 53
Action: échanges des paquets 107 Action: perte d un ACK 108 54
TCP segment structure URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) Internet checksum (as in UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used checksum U A P R S F Receive window Urg data pnter Options (variable length) application data (variable length) counting by bytes of data (not segments!) # bytes rcvr willing to accept 109 TCP seq. number et ACKs Numéro de Séquence: Le numéro dans le flux d octets du premier octet de chaque segment ACKs: seq. number du prochain octet expédié de l autre coté en cas de perte d un segment un cumulative ACK cumulatif est envoyé Q: comment TCP résolve le problème de perte de segment hors séquence Le choix au programmeur de le détruire ou de le conserver User types C host ACKs receipt of echoed C Host A Host B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 simple telnet scenario host ACKs receipt of C, echoes back C time 110 55
TCP: Round Trip Time et Timeout Q: comment fixer la valeur timeout? plus supérieur que le RTT mais le RTT varie court: timeout prématuré Retransmissions non nécessaire long: TCP tardera à retransmettre le segments Q: comment estimer le RTT? SampleRTT: temps écoulé entre son envoi (c est à dire son passage à l IP) et l ACK renvoyé par le destinataire Ignore les segments retransmis SampleRTT varié d un segment à un autre Une mesure moyenne s avère nécessaire appelée EstimatedRTT EstimatedRTT(new) = (1- α)*estimatedrtt(old) + α*samplertt (new) Avec α =0,125 111 TCP Round Trip Time et Timeout Timeout (temporisation de retransmission) Coefficient de variation du RTT (DevRTT): DevRTT = (1-β)*DevRTT + β* SampleRTT-EstimatedRTT (typically, β = 0.25) TimeoutInterval = EstimatedRTT + 4*DevRTT 112 56
Seq=92, 8 bytes data TCP: retransmission scenarios Host A Host B Host A Host B timeout X loss Seq=92, 8 bytes data ACK=100 Seq=92 timeout Seq=92, 8 bytes data Seq=100, 20 bytes data ACK=100 ACK=120 SendBase = 100 time Seq=92, 8 bytes data ACK=100 lost ACK scenario Sendbase = 100 SendBase = 120 SendBase = 120 Seq=92 timeout time Seq=92, 8 bytes data ACK=120 premature timeout 113 TCP retransmission scenarios Host A Host B timeout Seq=100, 20 bytes data X loss ACK=100 SendBase = 120 ACK=120 time Cumulative ACK scenario 114 57
TCP: Flow Control tampon (buffer) de réception: flow control L objectif est d équilibrer le rythme d envoi au sender à la vitesse de lecture de destinataire le processus d application peut être lent pour lire dans le buffer 115 Flow control: fonctionnement (Suppose que le receiver supprime tous les segments hors séquence) Espace mémoire disponible( dans le buffer) = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] Rcv informe le sender de l espace disponible dans son tampon en insérant la valeur RcvWindow dans les segments Sender maintient le données non confirmées au dessous de RcvWindow Données non confirmées= LastByteSent - LastByteAcked garantir le non débordement de buffer de réception 116 58
TCP AIMD Décroissance multiplicative : réduire son taux d envoi CongWin à moitié dès que le phénomène de perte se déclare 24 Kbytes congestion window Croissance additive: augmente CongWin par 1 Segment à chaque RTT en absence de phénomène de perte 16 Kbytes 8 Kbytes time Contrôle de congestion en mode AIMD 117 TCP: Slow Start (départ lent) Host A Host B RTT one segment two segments four segments time 118 59
La couche application Protocol Implementation OSI File Transfer File Transfer Protocol (FTP) RFC 559 Electronic Mail Simple Mail Transfer Protocol (SMTP) RFC 821 Terminal Emulation TELNET Protocol RFC 854 File Transfer Trivial File Transfer Protocol (TFTP) RFC 783 Client Server Network File System Protocol (NFS) RFC 1024, 1057 and 1094 Network Mgmt Simple Network Management Protocol (SNMP) RFC 1157 Application Presentation Session Transmission Control Protocol (TCP) RFC 793 User Datagram Protocol (UDP) RFC 768 Transport Address Resolution Protocols ARP: RFC 826 RARP: RFC 903 Internet Protocol (IP) RFC 791 Internet Group Management Protocol (IGMP) RFC 2236 Internet Control Message Protocol (ICMP) RFC 792 Network Interface Cards Ethernet Token Ring Starlan Arcnet FDDI SMDS Transmission Mode TP STP FO Satellite Microwave, etc Network Data Link Physical 119 Applications réseau Processus: programme s exécute sur une host. sur la même host, deux processus interagissent en utilisant la communication interprocessus (règle définie par l OS) Processus sur deux machines différentes communiquent par message à travers un protocole de la couche application Agent utilisateur: interfaces avec l utilisateur au dessus et le réseau en dessous Implémentations interface utilisateur et le protocole du niveau application Web: browser E-mail: mail reader streaming audio/vidéo: media player 120 60
Applications et protocoles de la couche application Application: processus distribués e.g., e-mail, Web, telnet s exécutant sur les terminaux (hosts) échangent des messages pour implémenter l application Protocoles de la couche application définissent des messages échangés par les applications et les actions prises utilisent les services de communication fournis par les protocoles de la couche inférieure (TCP, UDP) application transport network data link physical application transport network data link physical application transport network data link physical 121 Protocole de la couche application Types de messages échangés, ex, messages de demande et de réponse la syntaxe adoptée par les différents types de message: soit les différents champs qu il contient et leur délimitation la sémantique des différents champs, c est à dire le sens des informations qu ils renferment les règles utilisées pour déterminer quand et comment un processus doit envoyer ou répondre à un message Protocoles domaines publics: définis dans les RFCs Permettent l interopérabilité ex, HTTP, SMTP Protocoles propriétaires: ex, KaZaA 122 61
Paradigme Client-server Application réseau contient deux parties: client et serveur Client: initialise le contact avec le serveur Demande de service de serveur Web: client implementé dans le browser; e-mail: dans mail reader Serveur: application transport network data link physical fournit le service demandé par le client e.g., Web server envoie la page Web demandée, mail server délivre e-mail request reply application transport network data link physical 123 Processus de communication à travers le réseau processus reçoit /envoie les messages à travers son socket socket analogue à une porte l envoie de message à travers cette porte (interface) le processus d envoi suppose qu il y à une infrastructure de transport de l autre coté de cette porte prête à prendre en charge le message et à l emmener jusqu à la porte de destinataire via destinataire host or server process socket TCP with buffers, variables controlled by app developer controlled by OS Internet host or server process socket TCP with buffers, variables 124 62
Processus d adressage: Un processus local a besoin d identifier le processus distant Chaque host a une unique adresse IP Q: l adresse IP de la machine sur laquelle le processus tourne suffit-elle pour identifier le processus? Réponse: Non, plusieurs processus peuvent être exécutés sur la même machine Identificateur inclut l adresse IP et le numéro de port associé sur le host. Exemple port numbers: HTTP server: 80 Mail server: 25 125 Services nécessaires à une application? Data loss (transfer fiable) certaines apps (e.g., audio) tolèrent la perte autres apps (e.g., file transfer, telnet) exigent 100% transfert fiable Contraintes de temps certaines apps (e.g., Internet telephony, interactive games) demandent un bas délai Bandwidth (débit) certaines apps (e.g., multimédia, téléphonie par internet) exigent un débit minimal disponible autres apps ( elastic apps, comme ftp et web ) peuvent s adapter aux débits disponibles 126 63
Fonctionnement de quelques applications de réseau Application Data loss Bandwidth Time Sensitive file transfer e-mail Web documents real-time audio/video stored audio/video interactive games instant messaging no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5kbps-1Mbps video: 10kbps-5Mbps same as above few kbps up elastic no no no yes, 100 s msec yes, few secs yes, 100 s msec yes and no 127 Internet apps: application, transport protocols Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] proprietary (e.g. RealNetworks) proprietary Underlying transport protocol TCP TCP TCP TCP TCP or UDP typically UDP 128 64
DNS: Domain Name System Personne: plusieurs manières de l identifier: NSS, nom, N.passeport Internet hosts, routeurs: IP address (32 bit) nom, gaia.cs.umass.edu utilisé par le humains Q: correspondance entre adresses IP et nom? Domain Name System: datatbase distribuée implémentée en hiérarchie dans plusieurs name servers protocole couche application host, routeurs, name servers communiquent pour résoudre noms (translation adresse/ name) 129 DNS name servers Pourquoi le DNS n est pas centralisé? Un seul point de rupture volume de trafic database centralisée distante maintenance n est pas scalable! Pas de serveur a toutes les correspondances nomadresse IP name servers locaux: chaque ISP, a son local (default) name server host DNS consulte en premier le name server local name server de source autorisée: pour une host: stocke son adresse IP, nom peut accomplir la translation name/address IP 130 65
DNS: Racine des name servers contacté par un name server local qui ne peut pas résoudre le nom name server racine: contacte name server de source autorisée si la correspondance n est pas connue obtenir la correspondance retourne la correspondance au name server local e NASA Mt View, CA f Internet Software C. Palo Alto, CA a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 root name servers worldwide 131 Exemple d un Simple DNS root name server La machine surf.eurecom.fr veut l adresse IP de gaia.cs.umass.edu 1. contacte son local DNS server, dns.eurecom.fr 2. dns.eurecom.fr contacte name server, si nécessaire 3. name server racine contacte name server de source autorisée, dns.umass.edu, si nécessaire local name server dns.eurecom.fr 1 2 6 requesting host surf.eurecom.fr 5 3 4 authorititive name server dns.umass.edu gaia.cs.umass.edu 132 66
Exemple DNS root name server name server racine: Ne connaît pas le name server de source autorisée connaît un intermédiaire name server: qui lui contacte pour trouver name server de source autorisée local name server dns.eurecom.fr 1 2 8 requesting host surf.eurecom.fr 7 3 6 intermediate name server dns.umass.edu 4 5 authoritative name server dns.cs.umass.edu gaia.cs.umass.edu 133 Electronic Mail Trois éléments fondamentaux: Agents utilisateurs serveurs de messagerie Le protocole SMTP:simple mail transfer protocol Agent utilisateur Appelé aussi lecteur de messagerie, éditeur. exemples, Eudora, Outlook, elm, Netscape Messenger Messages sortant, entrant sont stockés sur le serveur mail server SMTP mail server user agent user agent SMTP SMTP user agent outgoing message queue mail server user mailbox user agent user agent user agent 134 67
Electronic Mail: mail servers Serveurs de messagerie mailbox contient des messages entrants pour l utilisateur File de messages de messages sortants (d être envoyés) SMTP protocol pour envoyer les messages entre les serveurs client: sending mail server server : receiving mail server mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent 135 Electronic Mail: SMTP [RFC 2821] utilise TCP pour transférer d email de client au serveur, port 25 Transfert direct: serveur d envoi au serveur de réception trois phases de transfert La connexion Transfert de messages fermeture Interaction commande/réponse commandes: ASCII réponses: code d état et phrase messages en ASCII de 7 bits 136 68
Scénario: Alice envoie un message à Bob 1) Alice utilise un UA pour composer le message to bob@someschool.edu 2) UA d Alice envoie le message à son serveur de messagerie, où il et placé dans une file de messages 3) Le pôle client de SMTP opérant au niveau de serveur de messagerie d Alice, aperçoit le message dans la file, ouvre une connection TCP avec le serveur mail de Bob 4) SMTP client envoie le message d Alice sur la connexion TCP 5) Serveur mail de Bob place le message dans le mailbox de Bob 6) Bob ouvre son user agent pour lire le message 1 user agent mail mail server server 2 3 4 5 6 user agent 137 MIME types Content-Type: type/subtype; paramètres Text exemple subtypes: plain, html Image exemple subtypes: jpeg, gif Audio exemple subtypes: basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding) Vidéo exemple subtypes: mpeg, quicktime Application Le type application est utilisé pour les données ne correspondant pas à aucune autre catégorie, notamment celle qui devant être soumises à une application particulière avant d être accessibles à l utilisateur exemple subtypes: msword, octet-stream 138 69
Protocoles d accès à la messagerie user agent SMTP: délivre/stocke au serveur de réception Protocole d accès: SMTP SMTP access protocol Impossible d'afficher l'image. Votre ordinateur manque peut-être de mémoire pour ouvrir l'image ou l'image est endommagée. Redémarrez l'ordinateur, puis ouvrez à nouveau le fichier. Si le x rouge est toujours affiché, vous devrez peut-être supprimer l'image avant de la réinsérer. sender s mail server receiver s mail server POP: Post Office Protocol [RFC 1939] authorisation (agent <-->server) et download user agent IMAP: Internet Mail Access Protocol [RFC 1730] Plus de caractéristiques (plus complexe) manipulation des messages stockés sur le serveur HTTP: Hotmail, Yahoo! Mail, etc. 139 POP3 POP3 et IMAP Exemple précédent utilise le mode download et delete Bob ne peut pas relire e- mail si le client change Download-et-keep : copie des messages sur des différents clients POP3 sans mémoire, ne conserve aucune information d état d une session à l autre IMAP Garde de tous les messages dans une place: le serveur permet à l utilisateur d organiser les messages en répertoires IMAP conserve des informations d état sur ses utilisateurs d une session à l autre Noms des répertoires et la correspondance entre les IDs de message et le nom de répertoire 140 70
BOOTstrap Protocol (BOOTP) 141 BOOTstrap Protocol (BOOTP) RARP est un protocole au niveau physique utilisé avec les stations sans disque pour obtenir leurs adresses IP. Cependant, la workstation a besoin de : Connaître l adresse de serveur Charger le système d exploitation Connaître l adresse IP du plus proche routeur. Connaître le mask du sous réseau Connaître le Domain Name Server à cause de ces exigences, le RARP est remplacé par BOOTstrap Protocol (BOOTP) et amélioré par Dynamic Host Configuration Protocol (DHCP) BOOTP était le premier standard automatique de boot dans TCP/IP BOOTP fournit les services de base suivant: Le client broadcasts une demande dans un paquet UDP Le serveur retourne l adresse IP et optionnellement l endroit des fichiers à charger Le client utilise Trivial File transfer Protocol (TFTP) pour charger et exécuter le software 142 71
BOOTstrap Protocol (BOOTP) Boot Server Port 67 BootP request BootP reply Port 68 Client TFTP download request TFTP download reply TFTP Server Port 69 BOOTstrap Concept 1. Le client envoie un bootrequest message du port 68 au Boot Server port 67, encapsulé dans UDP. Le client retransmettra le message en cas de non réception d une réponse pendant le temps timeout 2.Le serveur répond sur le port 67 avec un bootreply au client sur le port 68. Le reply peut optionnellement contenir l endroit des fichiers à charger 3. Le client demande de charger le fichier avec TFTP request au TFTP server sur le port 69. 4. Le TFTP server répond avec le chargement de fichier IP Header UDP Header BOOTP Request /Reply 20 bytes 8 bytes 300 bytes 143 BOOTstrap Protocol (BOOTP) 0 8 16 24 31 OCode ESeconds HTYPE HLEN HOPS Transaction ID Client IP Address (if known) Your IP Address (in response) Server IP Address (in response) BFlag(optional) Relay Router IP Address (in response) Client Hardware Address 16 octets Server Host Name(optional) 64 octets Bootfile Name(optional) 128 octets Vendor Specific Area(optional) 64 octets OCode. Le message est une demande/réponse (1/ 2) HTYPE. Type d interface d émetteur( 1 pour Ethernet) HLEN. La longueur de l adresse physique, contient la valeur 6 (MAC address field is 48 bits) HOPS. Le client met ce champ à zéro. Si un serveur BOOTP se trouve sur un autre réseau (permettre le démarrage à travers plusieurs routeurs), incrémente la valeur du compteur 144 72
BOOTstrap Protocol (BOOTP) 0 8 16 24 31 OCode ESeconds HTYPE HLEN HOPS Transaction ID Client IP Address (if known) Your IP Address (in response) BFlag(optional) Server IP Address (in response) Relay Router IP Address (in response) Client Hardware Address 16 octets Server Host Name(optional) 64 octets Bootfile Name(optional) 128 octets Vendor Specific Area(optional) 64 octets Transaction ID. Un nombre générer par le client qui permet l association entre le client et le serveur (réponses /demandes) ESeconds. Indique le nombre de secondes écoulées depuis le redémarrage du client et même peut être utilisé comme un temporisateur pour la retransmission des demandes à des intervalles (4, 8, 16, 32 and 64 secondes), en utilisant une moyenne aléatoire (entre 0-4 secondes) Bflag. Généralement inutilisé. Mais quelques clients ne peuvent pas recevoir datagrammes sans être configurés précédemment avec une adresse Le Broadcast flag = 1 indique que le client à besoin de recevoir la réponses via une adresse broadcast 255.255.255.255 sur le port 68. 145 BOOTstrap Protocol (BOOTP) 0 8 16 24 31 OCode ESeconds HTYPE HLEN HOPS Transaction ID Client Hardware Address 16 octets Server Host Name(optional) 64 octets Bootfile Name(optional) 128 octets BFlag(optional) Client IP Address (if known) Your IP Address (in response) Server IP Address (in response) Relay Router IP Address (in response) Vendor Specific Area(optional) 64 octets Client IP Address. L adresse IP client s elle est connue, autrement il est à 0 Your IP Address. C est une IP address fournie par le serveur au client si le Client IP Address est initialisée à zéro Server IP Address. Le BOOTP server place le IP address of the TFTP server, c est elle est connue, dans ce champ. Le client utilise cette adresse pour charger le système BOOTP normalement sépare la configuration service de software download service. 146 73
BOOTstrap Protocol (BOOTP) 0 8 16 24 31 OCode ESeconds HTYPE HLEN HOPS Transaction ID Client IP Address (if known) Your IP Address (in response) Server IP Address (in response) BFlag(optional) Relay Router IP Address (in response) Client Hardware 6 octets Address Server Host Name(optional) 64 octets Bootfile Name(optional) 128 octets Vendor Specific Area(optional) 64 octets Relay Router Address. Utilisé en cas d utilisation d un serveur central qui se trouve sur un réseau différent Client Hardware Address. adresse MAC du client NIC est placée dans ce champ Le serveur utilise le type hardware et l adresse MAC client comme clé pour chercher l adresse IP dans sa table Server Host Name. le client place le BootP host name, s elle est connue.sinon à zéro et ellle envoie un paquet avec une source IP address à 0.0.0.0 et une destination IP address à 255.255.255.255. 147 0 8 16 24 31 OCode Client Hardware Address 16 octets Server Host Name(optional) 64 octets Bootfile Name(optional) 128 octets Vendor Specific Area(optional) 64 octets Bootfile Name. Dans un BootP Request, ce champ contient un nickname (Unix, SunOS,etc).Le BOOTP serveur était configuré avec le nickname dans un IP adresse de serveur TFTP et complète le nom du chemin Dans un BootP Reply, le BOOTP server recherche le nickname dans sa table et place l IP address de TFTP server dans le champ TFTP Server IP address et remplace le champ Bootfile Name avec le complete path address ou il réside le système sur TFTP server. Vendor Specific Area. Champ optionnel et contient l information qui peut être passée du serveur au client. Il peut inclure subnet mask, time of day, router addresses, DNS, etc. Les 4 premiers octets ont la valeur 99.130.83.99 BOOTstrap Protocol (BOOTP) ESeconds HTYPE HLEN HOPS Transaction ID Client IP Address (if known) Your IP Address (in response) Server IP Address (in response) BFlag(optional) Relay Router IP Address (in response) Les champs d options sont constitués d 1 octet pour le code et d 1 octet length suivi par un nombre d octets de données 148 74
Dynamic Host Configuration Protocol (DHCP) 149 Dynamic Host Configuration Protocol (DHCP) BOOTP problèmes: Désigné pour un environnement static où la configuration reste inchangée N est pas efficace pour les portables et les réseaux mobiles Tout ça demande une intervention manuelle par l administrateur système Dynamic Host Configuration Protocol (DHCP) était désigné par l IETF pour remplacer le BOOTP Permet au client d obtenir l adresse IP dynamiquement Le DHCP server: Un block (plage) d adresses IP Le DHCP server choisit une des adresses en répondant au client Permet au client d obtenir tous les paramètres de configuration dans un seul message DHCP est basé sur le BootP message format et utilise le BootP relay agent. BootP clients peuvent interopérer avec les DHCP servers. 150 75
Dynamic Host Configuration Protocol (DHCP) DHCP attribution d adresses Allocation Manuelle: l Administrateur entre une IP adresse dans le serveur qui est attribuée de façon permanente au client Allocation Automatique: une IP adresse est sélectionnée et attribuée de façon permanente dans l address pool au client quand la machine est attachée la première fois au réseau Allocation dynamique: une IP address est attribuée ou loué au client pour une période limitée 151 Dynamic Host Configuration Protocol (DHCP) DHCP Server Port 67 DHCP BootRequest DHCP BootReply Port 68 Client TFTP download request TFTP download reply TFTP Server Port 69 DHCP Concept Même méthode que le BOOTP avec une spécification de la durée de bail 152 76
Web et HTTP Web page composée des objets Objet peut être fichier HTML, image JPEG, applet Java, fichier audio, Web page composée de base HTML-file qui inclut plusieurs objets référencés Chaque objet est adressé par un URL Exemple URL: www.someschool.edu/somedept/pic.gif host name path name 153 HTTP HTTP: hypertext transfer protocol Protocole de la couche application Web Modèle client/server client: browser qui demande et reçoit, displays les objets Web server: Web serveur envoie les objets demandés HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 PC running Explorer Mac running Navigator HTTP request HTTP response HTTP request HTTP response Server running Apache Web server 154 77
HTTP Utilise TCP: client initialisetcp connection (crée une socket) au serveur, port 80 serveur accepte TCP connection de client messages HTTP (applicationlayer protocol messages) échangés entre browser (HTTP client) et Web server (HTTP server) TCP ferme la connection HTTP protocole sans mémoire serveur ne maintient pas l information concernant les demandes passées du client Protocoles avec mémoire sans complexes! Historique (state) doit être maintenu si server/client crashent, on garde une image de l historique pour re-établir l état d avant 155 HTTP connections Non-persistant HTTP Un seul objet Web peut être transféré à la fois sur une connexion TCP HTTP/1.0 utilise des connexions non persistantes Persistant HTTP Multiple objets peuvent emprunter la même connexion TCP HTTP/1.1 utilise les connexions persistants par défaut avec pipelinage 156 78
Non persistant HTTP Supposons l uitlisateur entre l URL suivant: www.someschool.edu/somedepartment/home.index (contient text, référence 10 Image jpeg ) time 1a. HTTP client initiates TCP connection to HTTP server (process) at www.someschool.edu on port 80 2. HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object somedepartment/home.index 1b. HTTP server at host www.someschool.edu waiting for TCP connection at port 80. accepts connection, notifying client 3. HTTP server receives request message, forms response message containing requested object, and sends message into its socket 157 Non persistant HTTP time 5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects 4. HTTP server closes TCP connection. 158 79
Bibliographie TCP/IP architecture protocoles applications, Douglas Cormer Computer Networking A top-down Approch Featuring the Internet, James Kurose et Keith Ross, second Edition Réseaux et Télécoms, Claude Servin. Dunod 159 80