CM8 IP - npa.lip6.frbbaron/docs/CM8_IP.pdf · processus : TCP, UDP Réseau. Routage de datagrammes...

61
Narcisse Nya [email protected] 3I 023 Internet Protocol Prométhée Spathis [email protected] Cours sous la responsabilité de

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

Pile protocolaire

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

Paquet IP

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.

Commutation de circuit

Terminaux idiots

17

Réseau intelligent

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

Commutation de circuits

1 lien4 circuits

Circuit utilisé

Circuit non utilisé(pas de partage)

20

A

B

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 paquets

Réseau idiotTerminaux intelligents

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

Fragmentation IP

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

40

20

1500

20 1200

1220

20 1300

1320

20 3940

4000

1480

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

45

20

1500

20 1200

1220

20 1300

1320

20 3940

4000

1480

7002050020

520 720

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

IPv6

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

La semaine prochaine

61

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