Beruflich Dokumente
Kultur Dokumente
Le protocole IP
1. Prsentation de TCP/IP
TCP/IP est un sigle trs connu dans le domaine des rseaux. Au sens strict, TCP/IP est un
ensemble de deux protocoles :
- IP (Internet Protocol) qui est un protocole de niveau 3 (Rseau)
- TCP (Transmission Control Protocol) qui est un protocole de niveau 4 (Transport)
En pratique, les rseaux TCP/IP ne sont pas limits ces deux protocoles mais recouvrent en
fait toute une famille de protocoles (on parle de pile de protocoles).
Ladoption quasi universelle de TCP/IP en fait son principal intrt. Les technologies TCP/IP
couvrent en effet aussi bien les rseaux intranets (LAN) que lInternet.
TCP/IP est le fruit des recherches qui ont t menes par le DARPA (Defense Advanced
Research Projects Agency) ds la fin des annes 60. En 1969, dans le cadre du projet
ARPAnet (Advanced Research Projects Agency Network) une premire exprimentation
permit de relier quatre sites entre eux.
En 1983, les protocoles TCP/IP devinrent des standards militaires. Peu peu, le rseau
ARPAnet fut remplac par lInternet. Celui-ci dpassa le domaine exclusif des universits et
passa trs vite dans le domaine commercial.
TCP/IP fut intgr trs tt en standard sous Unix (dans le noyau BSD, Berkeley Software
Distribution), ce qui contribua invitablement sa popularit.
Depuis 1990, on assiste une vritable explosion dIP en Europe (dans le monde non
acadmique). Trois facteurs principaux expliquent la monte en puissance de TCP/IP :
Couche Accs rseau : comporte les routines permettant daccder aux rseaux physiques
30
UDP (User Datagram Protocol) : protocole peu fiable, utilis par des applications qui
nexigent pas la fiabilit de TCP.
31
Messages,
Messages,Flots
Flots
Units
Unitsde
dedonnes
donnes
Segments
Segments
TCP TCP
Segments
TCP
Datagrammes
Paquets
UDP
PaquetsUDP
UDP
APPLICATIONS
telnet, ftp, smtp, www
TCP
UDP
ICMP
Datagrammes
Datagrammes
Transport
IGMP
IP
Rseau
ARP RARP
2
Trames
Trames
Physique
32
Banyan
Systems
ARP
0x6004
0xBAD
0x806
AT&T
0x8008
0x8069
0x8046
0x8047
IP
AppleTalk
0x809B
0x800
Novell
802.3
Moins de
1501
DA
SA
EtherType
0x8137-0x8138
CRC
Quand la couche IP reoit un paquet Ethernet, elle doit distinguer les paquets pour TCP ou
UDP grce un champ didentification de protocole de 8 bits situ dans le paquet.
33
Client FTP
Serveur FTP
TCP
TCP
IP
Protocole IP (couche 3)
IP
driver
Ethernet
driver
Ethernet
Ethernet
34
Les protocoles de couches suprieures peuvent esprer une certaine qualit de service (QoS).
La couche suprieure passe la couche IP les paramtres QoS en mme temps que les
donnes ; la couche IP peut alors tenter de faire correspondre ces paramtres et les services
fournis par le matriel rseau sous-jacent, capable ou non de fournir les services requis.
Donnes
Bits
0
1
Mots
2
3
Version
1
2
IHL
1
6
Type of Service
Identification
Time to Live
2
0
2
8
3
1
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Source Address
Destination Address
2
4
Options
Padding
Data
Par dfaut, la longueur de len-tte est de 5 mots de 32 bits (soit 20 octets) ; le sixime
mot est facultatif. Puisque la longueur de len-tte est variable, elle inclut un champ
appel Internet Header Lenght (IHL - longueur de len-tte Internet) en mots. Len-tte
contient toutes les informations ncessaires la transmission du paquet.
Le champ Version fait quatre bits de long et indique le format de len-tte IP : le numro
de version actuel est 4 (IPv4) ; la version suivante est la version 6 (IPv6) et permet des
adresses IP 128 bits. Ce champ est utilis par lmetteur, le rcepteur et tout routeur
intermdiaire pour dterminer le format de len-tte IP.
Le champ Type of Service (TOS) informe les rseaux de la qualit de service dsire,
spcifiant ainsi la prsance, les dlais, le dbit et la fiabilit. La plupart des
implmentations de TCP/IP et des protocoles de routage ignorent ce champ ; il est
pourtant probable quil sera amen jouer un rle plus important dans lavenir.
Le champ Total length (longueur totale) contient la longueur de len-tte et des donnes
IP, en octets. LInternet ne limite pas les datagrammes une taille prcise mais suggre
que les rseaux et les passerelles puissent supporter ceux de 576 octets (512 octets de
donnes + 64 octets den-tte et de donnes propres au protocole) sans les fragmenter. La
taille des datagrammes IP sur la plupart des rseaux et des htes dpasse rarement 16 Ko.
35
cart par le routeur (et pas par lhte de destination). Le champ TTL a une double
fonction :
- limiter la dure de vie des segments TCP
- liminer les boucles de routage Internet
Lorsque le temporisateur TTL expire, un message ICMP en avertit la source. Une valeur
par dfaut initiale de 32 ou 64 est courante.
36
Le format de chaque fragment est identique celui de tout datagramme normal. Le deuxime
mot de len-tte contient les informations permettant de reconnatre chaque fragment de
datagramme et fournit les informations relatives la procdure de rassemblage des diffrents
fragments en un datagramme original.
Le champ Identification indique quel datagramme le fragment appartient, et le champ
Fragment Offset (dcalage de la fragmentation, en valeur multiple de 8 octets) prcise quelle
partie du datagramme correspond ce fragment. Le champ Flags (Drapeaux) possde un
lment binaire More Fragments bit qui indique IP sil a assembl tous les lments du
datagramme (MF=0).
1500 octets
504 octets
504 octets
472 octets
En-tte IP
Dcalage de
fragment = 0 octets
En-tte IP
Dcalage de
fragment = 504 octets
Dcalage de
fragment = 1008 octets
Fragment de donnes 1
Identification = 103
MF = 1
Fragment Offset = 0
En-tte IP
Fragment de donnes 2
Identification = 103
MF = 1
Fragment Offset = 63
En-tte IP
MTU : 1500
MTU : 525
Fragment de donnes 3
Identification = 103
MF = 0
Fragment Offset = 126
Le rassemblage est effectu par le module IP de destination, jamais par les routeurs
intermdiaires.
37
3. Adressage
3.1. Ladresse IP
TCP/IP offre une vision logique du rseau, rendant ainsi ce dernier indpendant de la
technologie matrielle sous-jacente (Ethernet, Token-Ring, FDDI ). Les nuds du rseau
TCP/IP sont identifis et accds grce une adresse logique, ladresse IP. Comme les
adresses IP ne dpendent pas des adresses physiques, on peut modifier le matriel sous-jacent
sans modifier ladresse logique.
Ladresse IP (ou IPv4) est dfinie sur 32 bits ; elle comporte deux parties : la partie rseau
(netid, ou ID de rseau) et la partie hte (hostid ou ID dhte). Un masque (netmask) est
associ cette adresse. Il permet au logiciel IP de dterminer le prfixe de rseau dune
adresse en calculant un ET logique avec le masque.
ID de rseau
0
Classe A : de 0.0.0.0 127.255.255.255
ID de station
ID de rseau
10
Classe B : de 128.0.0.0 191.255.255.255
ID de rseau
ID de station
110
Classe C : de 192.0.0.0 223.255.255.255
1110
Classe D : de 224.0.0.0 239.255.255.255
11110
Classe E : de 240.0.0.0 247.255.255.255
38
Si le premier bit dune adresse est positionn sur 0, il sagit alors dune adresse dun
rseau de classe A. Le premier bit dune adresse de classe A permet didentifier la classe
de ladresse. Les 7 bits suivants permettent de dterminer le rseau et les 24 derniers bits
de reconnatre lhte. Il existe moins de 128 numros de rseau de classe A ; chaque
rseau de classe A peut tre constitu de millions dhtes.
Si les 2 premiers bits de ladresse sont 1 0, il sagit alors dune adresse de rseau de classe
B. Les 2 premiers bits permettent de dterminer la classe, les 14 bits suivant de dterminer
le rseau. Les 16 derniers bits permettent de reconnatre lhte. Il existe des milliers de
numros de rseau de classe B et chaque rseau de classe B peut tre constitu de milliers
dhte.
Si les 3 premiers bits de ladresse sont 1 1 0, il sagit alors dune adresse de rseau de
classe C. Les 3 premiers bits identifient la classe ; les 21 suivants correspondent
ladresse du rseau, et les 8 derniers bits permettent didentifier lhte. Il existe des
millions de numros de rseau de classe C. Chaque rseau de classe C comporte moins de
254 htes.
Si les 3 premiers bits sont 1 1 1, il sagit dune adresse spciale rserve. Ces adresses ne
correspondent pas des rseaux spcifiques.
La notion de classe d'adresses a t rendue obsolte pour l'adressage des nuds du rseau
Internet car elle induisait une restriction notable des adresses IP affectables par l'utilisation de
masques spcifiques. Les documents RFC 1518 et RFC 1519 publis en 1993 spcifient une
nouvelle norme : l'adressage CIDR (Classless Internet Domain Routing ou routage de
domaine Internet sans classe cf. ci-aprs). Ce nouvel adressage prcise qu'il est possible
d'utiliser un masque quelconque appliqu une adresse quelconque. Il organise par ailleurs le
regroupement gographique des adresses IP pour diminuer la taille des tables de routage des
principaux routeurs du rseau Internet.
Les adresses IP sont reprsentes sous la forme de quatre nombres correspondant la valeur
dcimale des quatre octets qui composent ladresse, spars par des points (notation
dcimale pointe).
Le masque peut tre spcifi soit en notation dcimale pointe, soit sous forme condens
cest--dire en indiquant simplement le nombre de bits 1 quil contient :
Exemple :
192.168.200.254/255.255.255.0 (notation classique )
ou 192.168.200.254/24 (notation CIDR).
Une adresse de diffusion dirige (directed broadcast) est une adresse dans laquelle, tous
les bits de lhostid sont 1 (soit 255 en dcimal) : XXX.XXX.XXX.255 pour un rseau de
classe C, XXX.XXX.255.255 pour un rseau de classe B. Une adresse de diffusion dirige
peut apparatre dans ladresse IP de destination dun datagramme IP, mais jamais comme
source.
39
Une adresse IP ne comportant que des 0 (0.0.0.0), est gnralement utilise lorsquun
nud IP essaye de dterminer sa propre adresse IP, comme le fait le protocole BOOTP
qui permet aux nuds dun rseau de se voir affecter une adresse IP.
On utilise aussi ladresse 0.0.0.0 dans les tables de routages pour indiquer lentre de
rseau de ladresse IP du routeur par dfaut (souvent appel passerelle par dfaut ).
Ladresse IP 0.0.0.0 ne peut tre utilise que comme adresse IP source, jamais comme
adresse IP de destination.
Adresse de bouclage : tout paquet envoy par une application TCP/IP vers une adresse de
type 127.X.X.X, o X est un nombre entre 0 et 255, a pour consquence le renvoi de ce
paquet lapplication sans que le paquet natteigne le support du rseau. Le paquet est
copi du buffer de transmission au buffer de rception sur la machine elle-mme.
Ladresse de bouclage logiciel permet de vrifier rapidement que TCP/IP est bien
configur (on peut faire un ping sur sa propre machine). Elle est galement utile
lorsquun client et un serveur TCP/IP sexcutent sur une mme machine.
Bien que toute adresse de format 127.X.X.X indique une adresse de bouclage, les adresses
de bouclage usuelles sont 127.0.0.1 et 127.1 dans la plupart des implmentations de
TCP/IP.
40
si un bit dtermin est activ dans le masque (est 1), son pendant dans ladresse est
interprt comme tant un bit de rseau.
si un bit du masque est dsactiv (est 0), ce bit appartient alors la partie hte de
ladresse.
41
netid
hostid
Adresse IP
Masque de
sous-rseau
11111111
11111111
Numro de
sous-rseau
Numro
dhte
11111111
00000000
Le sous-rseau nest reconnu que localement. Dans le reste dInternet, ladresse est toujours
interprte comme tant une adresse IP standard.
D'aprs la RFC 950, les sous-rseaux dont les bits sont tous 0 ou tous 1 ne
devraient pas tre utiliss pour viter les erreurs d'interprtation sur les adresses
rserves.
3.6. Sur-rseaux
Le concept de sous-rseau a t conu en 1985 pour optimiser lutilisation de lespace
dadressage IP. Les adresses de classes A et B venaient en effet manquer, mais les adresses
de classe C disponibles taient encore en nombre apprciable.
La mise en sur-rseau, ou adressage en sur-rseau, consiste affecter un bloc dadresse de
classe C plutt quune adresse de classe B unique, afin de crer une classe dadresses virtuelle
situe mi-chemin entre un rseau de classe C et un rseau de classe B.
Ladressage en sur-rseau est conu notamment pour les fournisseurs daccs Internet (FAI).
Comme un bloc de 256 adresses de classe C est ncessaire pour prendre en charge
lquivalent dune seule adresse de classe B, une table de routage doit contenir 256 adresses
de rseau pour chacun des rseaux de classe C. Ce qui pose des problmes de taille.
La technique du CIDR permet de rsumer un bloc dadresses de classe C en une seule entre
de table de routage. Cette entre de table est constitue ainsi :
(plus basse adresse du bloc, masque de sur-rseau)
La plus basse adresse du bloc est ladresse de dpart de ce bloc, et le masque de sur-rseau
spcifie le nombre dadresses de classe C dans le bloc.
(192.55.16.0, 255.255.240.0)
Plus petite adresse
bu bloc
= 11000000
Masque de sur-rseau
= 11111111
00110111
11111111
supernet
= 11111111 11111111
defaut mask
00010000
00000000
11110000
00000000
11111111
00000000
42
192.168.20.104
ARP
Ethernet
00:11:11:80:FB:3C
00:07:E9:19:50:8A
adresses MAC
Un mcanisme souple, implment sous forme dun protocole distinct et appel ARP
(Address Resolution Protocol) permet de dterminer dynamiquement ladresse MAC partir
de ladresse IP dun hte.
43
Pour dterminer ladresse matrielle de lhte B avant de lui envoyer son message, la station
A envoie sur le rseau une trame MAC de diffusion, appele trame ARP de requte. Celle-ci
contient les adresses IP et MAC de lhte A metteur, ainsi que ladresse IP de la destination
B. La trame inclut un champ destin contenir ladresse MAC de B. Tous les nuds du
rseau physique reoivent la trame ARP. Seul lhte dont ladresse IP correspond ladresse
requise dans la trame de requte ARP rpond en encodant sa propre adresse matrielle dans
une trame de rponse ARP. Lhte A initialise alors sa table cache ARP (conserve en
mmoire) en utilisant la rponse fournie. Les entres dans cette table expirent aprs une
temporisation donne qui peut tre configure dans certaines implmentations de TCP/IP
(gnralement 15 mn). Le cache ARP est consult par un hte juste avant lenvoi dune
requte ARP ; si la rponse se trouve dans le cache, la requte nest pas effectue.
La requte ARP est envoye avec une adresse matrielle de diffusion. Le protocole ARP part
du principe que le rseau physique sous-jacent prend en charge la diffusion.
Le paquet ARP est encapsul dans la trame de couche de liaison de donnes du rseau. La
valeur 0x806 dEtherType est rserve pour les trames ARP.
RARP (Reverse ARP) est un mcanisme utilis par les stations sans disques (terminaux X)
pour obtenir leur adresse IP auprs dun serveur distant. Le nud qui veut connatre sa propre
adresse envoie en diffusion une requte RARP. En Ethernet, la valeur 0x8035 dEtherType est
rserve pour les trames RARP. Sil existe plusieurs serveurs RARP, chacun deux tente de
traiter la requte RARP. Gnralement, le client RARP accepte la premire rponse reue et
ignore silencieusement les suivantes.
Le serveur RARP tient jour une table des adresses IP des nuds du segment ; cette table est
indexe par un identificateur distinct pour chaque machine, son adresse matrielle.
Dans la plupart des implmentations, RARP nest pas automatiquement fourni par le module
ARP ou IP, mais est excut sous forme de processus spar (un dmon) sur la machine qui
tiendra lieu de serveur RARP.
44
Contle de flux : lorsque les datagrammes arrivent trop rapidement afin dtre traits, la
machine-hte de destination ou une passerelle intermdiaire renvoie un message de
congestion de la source ICMP lmetteur. Ce message indique la source de suspendre
temporairement lenvoi de datagrammes.
Redirection des voies : une passerelle envoie le message de redirection ICMP afin
dindiquer une machine-hte dutiliser une autre passerelle, probablement parce que
lautre passerelle constitue un meilleur choix. Ce message peut tre uniquement utilis si
la machine-hte source est connecte au mme rseau que les deux passerelles.
45
9.0.0.0/8
10.0.0.0/8
11.0.0.0/8
12.0.0.0/8
12.0.0.1
traceroute 12.0.0.1
TTL = 1
TTL = 0
ICMP de 9.0.0.1
TTL = 2
TTL = 1
TTL = 0
TTL = 2
TTL = 1
TTL = 0
TTL = 2
TTL = 1
TTL = 3
5. IPv6
IPv6 est le successeur de la version actuelle dIP (IPv4). Il maintient les meilleures fonctions
dIPv4, en carte ou minimise les mauvaises, et en ajoute de nouvelles quand elles sont
ncessaires. Les principales amliorations de cette version sont :
des adresses codes sur 16 octets (128 bits) et notes sous la forme de 8 groupes de 4
chiffres hexadcimaux spars avec le symbole deux-points, offrant un espace
dadressage quasi illimit (environ 3,41038 adresses)
exemple : 8000:0000:0000:0000:0123:4567:89AB:CDEF
plus de souplesse accorde aux options : les champs obligatoires de l'ancienne version
sont maintenant devenus optionnels. De plus, la faon dont les options sont
reprsentes est diffrente ; elle permet aux routeurs d'ignorer plus simplement les
options qui ne leur sont pas destines. Cette fonction acclre le temps de traitement
des datagrammes.
une plus grande attention que par le pass accorde aux types de services.
46