ENSI -- II2
Réseaux Locaux
CHAPITRE 4
LES RÉSEAUX SOUS TCP/IP
N. Ben Azzouna Réseaux Locaux - ENSI 1
Introduction
INTERNET est formé d'un ensemble de sous-réseaux TCP/IP individuels.
INTERNET connaît un succès énorme importance des travaux de normalisation et
d'amélioration des protocoles utilisés
Ces travaux sont conduits par l’IETF « Internet Engineering Task Force ».
Les propositions d'ajout, de modification, ou de normalisation sous forme de rapports
techniques appelés RFC ("Request For Comments").
L’ISO a produit une normalisation de l’IP : ISO8473.
Une nouvelle version 6 de l’IP est produite palier à certains problèmes liés à la version 4
de l’IP :
épuisement des adresses,
explosion des tables de routage,
absence de types de données,
variabilité des délais d’acheminement.
Version 4 tient une place dominante sur le marché informatique
N. Ben Azzouna Réseaux Locaux - ENSI 2
Architecture TCP/IP
TCP ("Transmission Control Protocol")
UDP ("User Datagram Protocol")
IP ("Internet Protocol")
ICMP ("Internet Control Message Protocol")
ARP ("Address Resolution Protocol") / RARP ("Reverse ARP")
N. Ben Azzouna Réseaux Locaux - ENSI 3
IP (RFC 791)
Adressage (RFC990)
Une adresse IP permet de désigner de manière unique une machine.
Elle est codée sur 32 bits et se divise en deux parties :
numéro du réseau (net_id)
numéro de la machine (host_id).
Un organisme international le NIC (Network Information Center) attribue les
numéros de réseaux.
Chaque pays a un organisme, dépendant du NIC, chargé d’attribuer les adresses IP.
L’IANA « Internet Address Network Authority » est l’autorité au niveau mondial
qui distribue des espaces de numéros de réseau au NIC « Network Information
Center », à RIPE « Réseaux IP Européens », etc.
N. Ben Azzouna Réseaux Locaux - ENSI 4
IP (RFC 791)
Adressage (RFC990)
7 24
Class A: 0 Netw ork ID Host ID
14 16
Class B: 1 0 Netw ork ID Host ID
21 8
Class C: 1 1 0 Netw ork ID Host ID
28
Class D (multicas t): 1 1 1 0 Multicas t address
27
Class E (res erved): 1 1 1 1 0 unused
classe A : [1..127].[0..255].[0..255].[0..255],
classe B : [128..191].[0..255].[0..255].[0..255],
classe C : [192..223].[0..255].[0..255].[0..255],
classe D : [224..239].[0..255].[0..255].[0..255].
Si un site comporte plus de 254 machines et qu'une adresse de classe B sera sous
utilisée, le NIC attribue plusieurs adresses de classe C au même site
N. Ben Azzouna Réseaux Locaux - ENSI 5
IP (RFC 791)
Adressage (RFC990)
un paquet émis vers une adresse, dont le net_id est égale à 127,
revient à l'émetteur sans passer par le réseau (boucle locale ou
"loopback"),
une adresse dont le net_id est égal à 0 désigne le réseau courant,
une adresse dont tous les bits de host_id sont à 1 est une adresse de
diffusion,
une adresse dont tous les bits de host_id sont à 0 et les bits du
net_id non nuls est une adresse de sous-réseau,
[Link] est l’adresse des machines sans disque ignorant leur adresse
au moment du boot.
N. Ben Azzouna Réseaux Locaux - ENSI 6
IP (RFC 791)
Adressage (RFC990)
host_id peut être divisé en deux parties :
adresse de sous-réseau
adresse de machine.
Les bits de chacune de ces parties ne sont pas forcément contigus, mais la plupart
des systèmes l’exige.
Le «mask » du « subnet » définit la partie variable du « host ID »
Les « subnet » ne sont pas visibles à l’extérieur du réseau (avec « network ID »)
N. Ben Azzouna Réseaux Locaux - ENSI 7
IP (RFC 791)
Adressage (RFC990)
Table de routage du routeur R1
Subnet Number Subnet Mask Proch. Dest. Interface
[Link] [Link] - [Link]
[Link] [Link] - [Link]
[Link] [Link] [Link] [Link]
N. Ben Azzouna Réseaux Locaux - ENSI 8
Datagramme IP (RFC 791)
Version (4 bits) : indique le format de l'entête. Le format décrit est celui de la version 4.
Longueur de l'entête (4 bits) : en nombre de mots de 32 bits.
Longueur totale du datagramme (16 bits) : exprimé en octets (<65535).
Identificateur commun aux fragments (16 bits) : tous les fragments d'un même
datagramme portent un même numéro.
N. Ben Azzouna Réseaux Locaux - ENSI 9
Datagramme IP (RFC 791)
Type de service (8 bits) : ce champ est utile pour le routage. Il indique la qualité
de service requise (RFC1349).
Bits 0-2 : Priorité,
Bit 3 : Délai de transmission,
Bit 4 : Débit,
Bit 5 : Chemin fiable,
Bit 6 : Coût,
Bit 7 à 0.
Drapeau (3 bits)
1er bit toujours à 0.
2ème bit : si égal à 0 datagramme peut être fragmenté par un routeur.
3ème bit : si égal à 0 dernier fragment d'un datagramme,
par défaut la valeur est 000.
Déplacement fragment (13 bits) : position du 1er octet d'un fragment dans le
datagramme initial avant fragmentation.
s'exprime en multiple de 8 octets.
N. Ben Azzouna Réseaux Locaux - ENSI 10
Datagramme IP (RFC 791)
Durée de vie (8 bits) : temps maximum pendant lequel le datagramme peut rester
dans le réseau. A la valeur 0 le datagramme est détruit.
Protocole : de niveau supérieur (ip : 0, icmp : 1, tcp : 6, udp : 17, voir RFC 1340).
checksum (16 bits) : le complément à 1 de la somme en complément à 1 des mots
de 16 bits de l'en-tête.
Il est recalculé par chaque routeur puisque le champ durée vie est modifié.
Adresses source, destination
option (longueur variable) :
gérer des problèmes de sécurité et de confidentialité,
fournir aux routeurs des informations de routage par exemple un chemin désigné par
une suite d'adresses,
connaître le chemin suivi par un datagramme,
bourrage : pour que l’entête soit multiple de 32 bits.
N. Ben Azzouna Réseaux Locaux - ENSI 11
Routage
Au niveau de la couche réseau
Le routage statique : non adaptatif
algorithme du plus court chemin
algorithme fondé sur le flux
routage par inondation «flooding»
Le routage dynamique
routage à vecteur de distance «distance vector»
routage à état de lien «link state»
N. Ben Azzouna Réseaux Locaux - ENSI 12
Routage IP
Routage RIP (RFC 1058) : Routing Information Protocol
est le plus utilisé dans l'environnement TCP/IP.
routage distribué basé sur l'échange d'informations entre routeurs adjacents (toutes
les 30 secondes).
Chaque routeur a une connaissance de ses voisins
utilisé sur des réseaux de petites tailles. Une route ne doit pas dépasser 15 noeuds
intermédiaires.
Routage OSPF (RFC 1247) : Open Shortest Path First
plus complexe que le routage RIP
adapté aux réseaux de grandes tailles.
chaque routeur a une connaissance complète de l'état des liens du réseau
D'autres protocoles de routage sont utilisés : EGP ("Exterior Gateway Protocol"),
BGP ("Border Gateway Protocol") et CIDR ("Classless Internet Domain Routing").
N. Ben Azzouna Réseaux Locaux - ENSI 13
Routage IP
CIDR «Classless Inter Domain Routing»
pourquoi faire ?
épuisement des adresses de classe B (50% alloués dès 1992),
pallié par allocation d’adresses de classe C d’où une explosion de
la taille des tables de routage (NSFnet, janvier 1993 : 9000
réseaux connectés, janvier 1994 : 21400)
Solution CIDR
allouer aux "utilisateurs" des réseaux de classe C contigus ayant
les mêmes bits de poids fort (préfixe) et grouper les préfixes par
zones, région, prestataires ... Ainsi on peut avoir une seule
entrée par préfixe (agrégat) dans la table de routage
exemple :les 2 réseaux explicites [Link] et [Link]
sont agrégés en [Link] [Link]
N. Ben Azzouna Réseaux Locaux - ENSI 14
ICMP (RFC 792) : Internet Control Message
Protocol
permet de rendre compte de certaines anomalies de
fonctionnement.
Messages ICMP sont encapsulés dans des paquets IP (type = 0,
protocole = 1)
issus de routeurs comme de stations.
Un message ICMP est soit une demande d'information soit une
indication d'erreur.
comporte au niveau des deux premiers octets un champ type et
un champ code.
Message d’erreurs
type (1 octet) + code (1 octet)+ spécifique au type (4 octets)+
entête Internet (variable) + 64 bits du paquet cause du
problème
N. Ben Azzouna Réseaux Locaux - ENSI 15
Le Protocole ICMP
Problème de paramétrage
type = 12, code = 0
Pointer : 1 octet; pointeur au problème dans l’entête
TTL expiré
type = 11
Code = 0 : died in transit ; Code = 1 : died during reassembly
Destination non joignable
type = 3
Code = 0 : net unreacahble ; Code = 1 : host unreachable ; Code = 2 :
protocol unreachable ; Code = 3 : port unreachable
N. Ben Azzouna Réseaux Locaux - ENSI 16
Le Protocole ICMP
Déterminer si une destination est sur le réseau (ping)
Echo : type= 8/requête; 0/réponse ; Code = 0
Identifier/Sequence number (4 octets) : identifier la requête et sa
réponse
Data : variable; copiée dans la réponse
Echange de date (Timestamp)
type = 13/requête; 14/réponse
Code = 0
Identifier/Sequence number (4 octets) : identifier la requête et sa
réponse
Originate timestamp (4 octets): temps avant l’émission de de la requête
Receive timestamp (4 octets): : temps à la réception de la requête
Transmit timestamp (4 octets): : temps à la transmission de la réponse
N. Ben Azzouna Réseaux Locaux - ENSI 17
Le Protocole ICMP
Demande du masque de sous-réseau (RFC 950)
type 17/requête; 18/réponse ;
Code = 0
Identifier/Sequence number (4 octets) : identifier la requête et sa réponse
Adress mask : 4 octets
Le réseau est en congestion ; la source doit diminuer son débit :
demande sur réseau« Source quench »
type = 4; Code = 0
Entête IP + 64 bits du datagram cause du problème
Redirect : routage ES-IS
N. Ben Azzouna Réseaux Locaux - ENSI 18
ARP
Si une station émet sur un autre réseau que le sien, elle envoie le
datagramme vers le routeur (gateway)
Si une station émet sur son réseau, elle doit trouver l’adresse
physique (MAC) pour acheminer le datagramme
ARP consiste à envoyer en diffusion (niveau MAC et IP) sur le réseau un
datagramme d’interrogation à toutes les autres stations (Qui a cette adresse
IP ?)
La station qui se reconnaît renvoie un datagramme d’identification avec son
adresse MAC
Le datagramme à envoyer est alors encapsulé dans la trame avec les bonnes
adresses MAC (destination et source)
Pour éviter de recommencer à chaque trame, les stations mémorisent dans un
« cache MAC » l’information.
Les entrées dans le cache sont généralement temporisées et rafraîchies.
N. Ben Azzouna Réseaux Locaux - ENSI 19
Protocoles de transport d’Internet
TCP «Transmission Control Protocol» RFC 793 1122 1323
UDP «User Datagram Protocol», RFC 768
Service TCP
orienté connexion, point à point, bidirectionnel, fiable, conserve le
séquencement
TSAP : socket : (@ip + protocole +port)
ports pré-définis (Telnet : 23, smtp : 25), RFC 1060, 1700
flot d’octets
l’entité TCP décide d’elle même du découpage du flot en segments
utiliser le bit PUSH pour forcer l’envoi de données
le bit URGENT provoque une interruption chez l’application destination pour
traiter les données « urgentes »
Service UDP
datagramme, UDP rajoute à IP l’information de service (port)
N. Ben Azzouna Réseaux Locaux - ENSI 20
UDP
« User Datagram Protocol »
« Connectionless » ; service « end-to-end »
Sans contrôle de flux.
Pas d’acks
Adressage à travers des ports
Détection des erreurs au niveau de l’entête (Checksum) optionnelle.
Dans un paquet IP, le champ protocole est égal à 17
Sorce port Destination port UDP
header
Length Checksum
data
N. Ben Azzouna Réseaux Locaux - ENSI 21
TCP
Dans un paquet IP, le champ protocole est égal à 6
Format d’un segment :
N. Ben Azzouna Réseaux Locaux - ENSI 22
TCP : Primitives de service
N. Ben Azzouna Réseaux Locaux - ENSI 23