CM8 IP - npa.lip6.frbbaron/docs/CM8_IP.pdf · processus : TCP, UDP Réseau. Routage de datagrammes...
Transcript of CM8 IP - npa.lip6.frbbaron/docs/CM8_IP.pdf · processus : TCP, UDP Réseau. Routage de datagrammes...
Narcisse [email protected]
3I 023Internet Protocol
Prométhée [email protected]
Cours sous la responsabilité de
Aujourd’hui
2
Application2 HTTP et Web 3 DNS 4 Peer-to-Peer
5 TCP et UDP6 Sockets JavaTransport
7 Adressage8 Protocole IP 9 Routage
Réseau
11 Liaison et contrôle d’accèsLiaison
En master… Physique
4
Couches en réseauApplication. Supporte des applications réseaux : FTP, SMTP, HTTP, DNS, P2P
Transport. Transfert de données de processus à processus : TCP, UDP
Réseau. Routage de datagrammes d’une source vers une destination : IP, protocoles de routage
Liaison. Transfert de données entre deux équipements voisins : Ethernet, 802.11 (Wifi), PPP
Physique. Place des bits sur un lien / médium Pile protocolaire
Internet
Physique
Liaison
Réseau
Transport
Application
5
Couches en réseau
Physique
Liaison
Réseau
Transport
Application. Supporte des applications réseaux : FTP, SMTP, HTTP, DNS, P2P
Transport. Transfert de données de processus à processus : TCP, UDP
Réseau. Routage de datagrammes d’une source vers une destination : IP, protocoles de routage
Liaison. Transfert de données entre deux équipements voisins : Ethernet, 802.11 (Wifi), PPP
Physique. Place des bits sur un lien / médium Modèle de
référence ISO/OSI
Présentation. Permet aux applications d’interpréter le sens des données (ex : chiffrement, compression, codages…)
Session. Synchronisation, points jalon (reprise), recouvrement d’un échange de données
Attention. La pile protocolaire Internet n’implémente pas ces couches. Ces services doivent êtres implémentés au niveau de la couche application au besoin…
Session
Présentation
Application
6
Couches en réseau
Physique
Liaison
RéseauTransport
Application. Supporte des applications réseaux : FTP, SMTP, HTTP
Transport. Transfert de données de processus à processus : TCP, UDP
Réseau. Routage de datagrammes d’une source vers une destination : IP, protocoles de routage
Liaison. Transfert de données entre deux équipements voisins : Ethernet, 802.11 (Wifi), PPP
Physique. Place des bits sur un lien / médium Modèle de
référence ISO/OSI
Présentation. Permet aux applications d’interpréter le sens des données (ex : chiffrement, compression, codages…)
Session. Synchronisation, points jalon (reprise), recouvrement d’un échange de données
Attention. La couche protocolaire Internet n’implémente pas ces couches. Ces services doivent êtres implémentés au niveau de la couche application au besoin…
Session
Présentation
Application
7
Architecture Internet en couches
IP
TCP
HTTP
Interface Ethernet
Interface SONET
Interface Ethernet
Interface Ethernet
IP
TCP
HTTP
Interface Ethernet
Interface SONET
IP IP
Message HTTP
Segment TCP
Paquet IPPaquet IP Paquet IP
Hôte A Hôte B
Routeur Routeur
8
Relations entre protocolesProcessus utilisateur
Canal de communication
ApplicationProcessus utilisateur
Processus utilisateur
Processus utilisateur
TCP UDP
ICMP IP IGMP
ARP Interface physique RARP
Transport
Réseau
Liaison
Suite de protocoles InternetFTP HTTP DNS TFTP
TCP UDP
IP
NET1 NET2 NETn…
Applications
UDPTCP
Liaison
Physique
“hourglass model”Pour faciliter l’inter-opérabilité
10
Encapsulation / Désencapsulation
Données utilisateur
Données de l’application
Données de l’applicationEntête TCP
Données de l’applicationEntête TCPEntête IP
Données de l’applicationEntête TCPEntête IPEntête Ethernet
Queue Ethernet
14 20 20 4
Paquet IP
Segment TCP
Message
Processus utilisateur
TCP
IP
Driver Ethernet
Ethernet
10101001001110010001100
11
Démultiplexage
Trame entrante
Démultiplexage basé sur le numéro du port de destination de l’entête TCP ou UDP
Processus utilisateur
Processus utilisateur
Processus utilisateur
Processus utilisateur
TCP
ICMP
UDP
IPIGMP
ARP
Interface physique
RARP
Démultiplexage basé sur la valeur du champ “type” de l’entête IP
Démultiplexage basé sur le champ “type” de l’entête Ethernet
Internet ProtocolInternet Protocol (RFC 791) couche 3 du modèle OSIBest effort : service “non fiable” offert par IP
Service de remise de paquets non garanti, Service en mode non connecté, i.e., sans état
Les routeurs ne stockent aucune information spécifique une fois le paquet traité Les datagrammes IP sont traités indépendamment les uns des autres
IP above all : protocole de convergenceFonctionne au-dessus de Ethernet, mais aussi de PPP, FDDI, ATM, …
On se limitera ici à Ethernet, le plus répandu
13
Internet ProtocolService de remise de paquets
Entre une paire de machines hôtes bien identifiées (adresses IP) Hop-by-hop : les routeurs ne connaissent pas le chemin complet Non fiable : la remise des paquets est non garantie : le service ne détecte pas les paquets perdus, dupliqués, retardés, déséquencés
Service non connectéChaque paquet est traité indépendamment les uns des autres
Livraison Best EffortIP tente de faire de son mieux pour transporter les paquets La non fiabilité apparaît uniquement suite à l’absence de ressources ou à de pannes réseau
14
Pourquoi des paquets ?Trafic est ON / OFF
“Sporadique”, “Intermittent”
Evite le gaspillage de bande passante
Pas d’activité : pas de trafic
Multiplexage des transmissions
Plusieurs transmissions partagent les mêmes liens
Pourquoi des paquets ?
Les paquets IP peuvent être envoyés le long de tous les supports
Lien série, fibre optique, sans fil, paire torsadée, câble coaxial
Même par des pigeons (!) RFC 1149 : A Standard for the Transmission of IP Datagrams on Avian Carriers
IP over Avian Carriers was actually implemented, sending 9 packets over a distance of approximately 5km (3 miles), each carried by an individual pigeon, and they received 4 responses, with a packet loss ratio of 55%, and a response time ranging from 3000 seconds to over 6000 seconds.
Réseau téléphonique
Réseau intelligentMise en relation des abonnés Etablissement/libération des connexions Acheminer la voix le long des circuits Facturation des abonnés
Composer un numéro Parler et écouter
Services limités : audio, fax, affichage du numéro…18
Terminaux idiots
Réseau domestique
Réseau mobile
FAI national ou global
FAI localou regional
Réseau d’entreprise 19
Ressources réservées tout le long d’un chemin
Selon : Bande passante, capacité de commutation Ressources dédiées, non partagées
Performances garanties (~ circuit physique) Etablissement d’un chemin au préalable
Commutation de circuit
Partage du mediumDivision des fréquences (FDM)
Fréquences
TempsDivision du temps (TDM)
Fréquences
Temps
4 utilisateursExemple :
21
Commutation de circuitAvantages
Bande passante dédiéeConnaitre les performances attendues Livraison des données impossible sans garantie
Concept simpleCanal de communication fiable bout en bout Pas de pertes ou de déséquencement
Acheminement simplifiéPaquets commutés selon la division imposée du temps ou de la fréquence Pas d’inspection d’entête
Peu de traitement ou d’information nécessairePas d’informations récurrentes ou dupliquées sur tous les paquets
22
Commutation de circuitInconvénients
Gaspillage de bande passanteTrafics en rafale : bande passante inutilisée pendant les périodes de répit Pas d’entrelacement des trafics
Connexions rejetées Si les ressources sont insuffisantes l’appel est rejetés Impossible de satisfaire tout le monde
Délai lié à l’établissement de connexionPas d’échange de données sans connexion Délai “cher” pour des échanges courts
Etats installés dans le réseauLe réseau doit maintenir des états pour chaque connexion en cours Problème de passage à l’échelle
23
Extrémités vs CircuitsCommutation de circuit : le circuit au centre de toutes les attentions
Le service dépend de la construction préalable du circuit Calcul du chemin une fois pour toutes, réservation de ressources et installation d’états L’identification du circuit suffit : source et destination sont inclues dans le circuit en tant que extrémités
Commutation de paquetLes extrémités sont clairement identifiées, le chemin complet inexistant Les paquets sont traités grâce à des informations communes à tous
Les extrémités sont inclues dans la notion de circuitDans la commutation de paquets, seules existent les extrémités
24
Commutation de paquetsIP est conçu pour fonctionner en l’absence de garanties et d’états
IP fonctionne sans nécessité la garantie d’un chemin ou l’existence garantie de ressources IP est imperturbable en présence d’erreurs et de pertes ou de ressources insuffisantes Aucun état n’est nécessaire ce qui garantie le passage à l’échelle
Du coup, IP survit aux pannes même gravesIP continue tant bien que mal à tenter la remise de paquets
Les besoins en fiabilité des applications sont satisfaits par TCP
26
Les paquets et protocole IPPaquet IP : définition du format des unités de données transitant dans le réseau
Fonction de routage : choix des routes sur lesquelles relayer les données
Protocole IP : Ensemble de règles spécifiant le comportement des machines hôtes et des routeurs :
Comment traiter les paquets ? Comment et quand générer des messages d’erreur ? Sous quelles conditions rejeter les paquets ?
27
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Options + padding
Data / payload
4 bits 16 bits32 bits
6 bits
20 bytes
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
4 bits
IPv4
Fragments
Erreurs
Format du paquet IPv4
Version (4 bits) Numéro de version du protocole IP utilisé pour créer le paquet (version 4 : IPv4 / version 6 : IPv6)
IHL - Internet Header Length (32 bits)Longueur de l’entête en mots de 32 bits (longueur min 20 octets /max 60 octets)
TOS - Type Of ServicePrecedence (3 bits) niveau de priorité du paquet (entre 0 et 7) D, T, R (1 bit) spécifiant le type d’acheminement souhaité (Delay, Throughput, Reliability)
Total length (16 bits) Longueur en octets du paquet IP (header + payload) Taille maximum : 65 535 octets
Identifier (16 bits) Permet au destinataire de déterminer à quel paquet appartient un fragment reçu (tous les fragments d’un même paquet ont la même valeur d’identification)
Version
Header length
Type of service
Total Length (Bytes)
Identifier
FragmentationMTU : Chaque lien a une Maximum Transmission Unit
Quantité maximale de données transférable dans une même trame CLIP (ATM RFC 1577) : 9180, FDDI : 4500, Ethernet : 1500, Localtalk : 576
Fragmentation : un routeur peut diviser le paquet IP en plusieurs “fragments” si la taille du paquet dépasse la MTU du lien
Réassemblage : Ce doit être possible de réassembler les différents fragments en un seul paquet IP
31
Un paquet de 4000 octets arrive sur un lien de MTU 1500 octets
Fragmentation
32
1500 octets
4000 octets
4000
20 1480
1500
20 1200
1220
20 1300
1320
20 3980IP header
Il faut réassembler le paquet avant de transmettre le paquet aux couches supérieures
Pourquoi réassembler ?
33
20
1500
20 1200
1220
20 1300
1320
20 3940TCP HTTP
TCP HTTP
20 TCP HTTP
4000
1440
Où réassembler ?
Réponse #1 : Au niveau du routeur R2 ?
MTU=1000BMTU=500B
MTU=1000BHôte A Hôte BR1
R2
34
500 5001000
1000
MTU=1000BMTU=500B
MTU=1000BHôte A Hôte BR1
R2
Réponse #2 : Au niveau du terminal B ?
Où réassembler ?
35
500 500 1000
Routeur : complexifie et surcharge le réseauL’algorithme de réassemblage est compliqué Les routeurs doivent garder temporairement des états et les fragments
Les fragments peuvent prendre des chemins différents
Et les états peuvent ne pas être disponibles réassembler dans le réseau impossible
De ce fait, le réassemblage est fait à la destination
Où réassembler ?
36
Il faut un moyen d’identifier les fragments du paquetUtilisation d’un identifiant
Il faut pouvoir ré-ordonner les fragmentsUtilisation d’une sorte de numéro de séquence ou d’un décalage (offset)
Numéros de séquence / offsetComment savoir si on a tous les fragments ?
=> Besoin d’un numéro de séquence final ou d’un flag
Et si un fragment doit être fragmenté à nouveau ?
RéassemblageQuels champs ?
37
R
Identifier (16 bits) Quels fragments vont ensemble ?
Flags (3 bits)Reserved : flag ignoré DF : Don’t Fragment (peut provoquer un message d’erreur) MF : More Fragments, plus arrivent
Offset (13 bits)Décalage du payload contenu dans ce fragment (par unités de 8 octets)
DF
MF
Identifier
Fragment offset
FragmentationChamps IPv4
38
Fragmentation
39
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Supposons que le terminal 1.2.3.4 envoie un datagramme IP de taille 4000 octets vers le terminal 3.4.5.6
4 5 0 4000
56273 0 0 0 0
127 6 44019
1.2.3.4
3.4.5.6
Et le paquet traverse un lien avec un MTU de 1500 octets
Fragmentation
41
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Le datagramme est divisé en trois fragments. Premier fragment possible :
4 5 0 1500
56273 0 0 1 0
127 6 xxx
1.2.3.4
3.4.5.6
Fragmentation
42
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Le datagramme est divisé en trois fragments. Deuxième fragment possible :
4 5 0 1220
56273 0 0 1 185 (185*8 = 1480)
127 6 yyy
1.2.3.4
3.4.5.6
Fragmentation
43
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Le datagramme est divisé en trois fragments. Troisième fragment possible :
4 5 0 1320
56273 0 0 0 335 (335*8 = 2680)
127 6 zzz
1.2.3.4
3.4.5.6
Pourquoi utiliser un offset pour les fragments au lieu de numéroter chacun des fragments ?Réponse 1 : Avec un offset, le récepteur peut disposer correctement les fragments quand ils arriventRéponse 2 : Autorise la fragmentation de fragments
Offsets vs numéros de séquence
44
Fragmentation
46
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Le deuxième fragment est divisé en deux fragments. Premier fragment du deuxième fragment possible :
4 5 0 520
56273 0 0 1 185 (185*8 = 1480)
127 6 y1y1y1
1.2.3.4
3.4.5.6
Fragmentation
47
R DF
MF
Source IP address
Version Total Length (Bytes)
Header checksum
Header length Type of service
Identifier Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Le deuxième fragment est divisé en deux fragments. Second fragment du deuxième fragment possible :
4 5 0 720
56273 0 0 1 250 (250*8 = 2000)
127 6 y1y1y1
1.2.3.4
3.4.5.6
Time To Live (8 bits, valeur max = 255) Compteur utilisé pour limiter la durée de vie des paquets. Doit être décrémenté d’une unité à chaque saut (et normalement de plusieurs unités si en file d’attente dans un routeur pendant un temps important)
Protocol (8 bits)Identifie le protocole encapsulé (TCP, UDP, ICMP ...)
Header Checksum (16 bits)Somme de contrôle de l’entête qui permet la détection des erreurs portant sur l’entête des paquets
Header checksum
Time To Live (TTL)
Protocol
Protcolicmp 1 # internet control message protocol igmp 2 # internet group management protocol ggp 3 # gateway-gateway protocol Ipencap 4 # IP encapsulated in IP st 5 # ST datagram mode tcp 6 # transmission control protocol ucl 7 egp 8 # exterior gateway protocol igp 9 # any private interior gateway protocol bbn-rcc-mon 10 # BBN RCC monitoring nvp-ii 11 # network voice protocol Pup 12 # pup Argus 13 # ARGUS emcon 14 # EMCON xnet 15 # Cross Net Debugger Chaos 16 # Chaos udp 17 # user datagram protocol rdp 27 # "reliable datagram" protocol iso-tp4 29 # ISO Transport Protocol class xtp 36 # Xpress Tranfer Protocol idrp 45 # Inter-Domain Routing Protocol rsvp 46 # Reservation Protocol gre 47 # General Routing Encapsulation ospf 89 # Open Shortest Path First IGP ...
49
Options (1)
50
Type (déc.) Option Objet
0 End of Options List (EOOL) Utilisée si la fin des options ne coïncide pas avec la fin de l'en-tête.
1 No Operation (NOP) Pour aligner le début de l'option suivante sur 32 bits.
130 Security (SEC) Permet aux hôtes d'indiquer des restrictions liées à la sécurité (ex : non classifié, confidentiel, restreint, top secret, etc.).
131 Loose Source Route (LSR)
La source du paquet fournit des informations à utiliser par les passerelles à des fins de routage du paquet vers sa destination et d'enregistrer l'information concernant la route (série d'adresses Internet) ; un routeur ou une route peut utiliser n'importe quelle route avec un nombre quelconque de passerelles intermédiaires pour atteindre la prochaine adresse indiquée dans la route
68 Time Stamp (TS) Enregistrement de l'heure de chaque passage de passerelle.
133 Extended Security (E-SEC)
Options (2)
51
Type (déc.) Option Objet
7 Record Route (RR) Permet d'enregistrer la route d'un datagramme (en fait, l'adresse de chaque passerelle traversée).
136 Stream ID (SID) Permet de véhiculer un identifieur de flux ; utilisée à des fins de débogage et de mesure.
137 Strict Source Route (SSR) Idem LSR, si ce n'est qu'un routeur ou un hôte doit envoyer directement le datagramme à la prochaine adresse indiquée dans la route.
Option Route RecordStructure de l’option
Champ type : égal à 7 L’adresse qui est enregistrée correspond à l'interface utilisée en sortie par le routeur
52
Address Type7 Length Ptr … …
4 bits 4 bits 4 bits 4 bits
Évolutions de IPv4Le champ TTL ne représente plus une durée
Initialement prévu pour décompter le temps de séjour d’un paquet en ms Traitement des paquets de l’ordre de la nano seconde
Le champ checksum est vérifié uniquement à la destination
Les routeurs ne font que répercuter les décrémentations du TTL Seul le récepteur vérifie l’intégrité de l’entête “Bout-en-bout-isation” de IP afin d’éviter l’exécution rébarbative de fonctions
Calcul de la pMTU (p = path)La fragmentation peut être évitée (sauf dans le cas de certaines applications au-dessus d’UDP) La fragmentation devient une option utilisée quand nécessaire
53
Motivé (prématurément) par un épuisement des adresses IPv4
Les adresses sont quatre fois plus grandes que celles de IPv4
Steve Deering en a profité pour simplifier IPPlus de champs qui n’étaient pas absolument nécessaires Nettoyage de printemps pour IP
Motivations
55
Source IP address
Source IP address
Version Flow label
Data / payload
4 bits 20 bits32 bits
8 bits
20 bytes
Payload length Next header
Traffic classIPv6Hop limit
Source IP address
Version Total Length (Bytes)
Header checksum
Options + padding
Data / payload
Header length Type of service
Identification Flags Fragment offset
Time To Live (TTL) Protocol
Destination IP address
Source IP address
Source IP address
Version Flow label
Data / payload
Payload length Next header
Traffic class
Hop limit
IPv4 IPv6
Entête simplifiée : nombre de champs / 2Augmente les capacités de commutation des routeurs
Header Length (IHL) : supprimé ToS ➜ Flow Label Total Length (TL) ➜ Payload Length ID, Flags et Fragment Offset (FO) : supprimés TTL ➜ Hop Limit Protocol ➜ Next header (mêmes valeurs que dans IPv4) Header CS supprimé (pseudo-header obligatoire au niveau transport) Adresses : 32 ➜ 128 bits (4 ➜ 16 octets) Alignement 32 ➜ 64 bits
Changements
58
Laisser les problèmes aux terminauxPlus de fragmentation Plus de checksum Pourquoi quand même laisser TTL ?
Manipulation plus aiséeNouveaux mécanismes pour les options (utilise le prochain entête) Plus de header length
Fourni un libellé de flot (flow label) pour les paquetsPlus de flexibilité en se détachant de la sémantique (principalement utilisé pour la fragmentation avec IPv4)
Changements
59
ConclusionsEfficacité
IP “au-dessus de tout” IP s’accommode des services offerts par toutes les techno de niveau 2
Adaptés aux trafics sporadiquesEntrelacement des trafics en compétition
Store and forwardLes paquets sont des éléments auto-suffisants Traités indépendamment les uns des autres Les paquets d’un même flot peuvent être acheminés sur des chemins alternatifs selon leur disponibilité ou leur charge
Dissensions (pas de cloisonnement)Utilisation efficace des ressources Aucune garantie de ressources : congestion et retard possibles
60