Documente Academic
Documente Profesional
Documente Cultură
EFORT
http://www.efort.com
TCP/IP dsigne communment une architecture rseau, mais cet acronyme dsigne en fait
deux protocoles troitement lis: un protocole de transport, TCP (Transmission Control
Protocol) qu'on utilise "par-dessus" un protocole rseau, IP (Internet Protocol). Ce que l'on
entend par "modle TCP/IP" est en fait une architecture rseau en 4 couches dans laquelle
les protocoles TCP et IP jouent un rle prdominant, car ils en constituent l'implantation la
plus courante. Par abus de langage, TCP/IP peut donc dsigner deux choses : d'un cte un
modle architecture TCP/IP, et de l'autre, deux protocoles TCP et IP.
Le modle TCP/IP, comme nous le verrons plus loin, s'est progressivement impos comme
modle de rfrence en lieu et place du modle OSI. Cela tient tout simplement son
histoire. En effet, contrairement au modle OSI, le modle TCP/IP est n d'une implantation ;
la normalisation a suivi. Cet historique fait toute la particularit de ce modle, ses avantages
et ses inconvnients.
Le but de ce tutoriel est de prsenter le protocole IP, l'adressage IP public et priv, le
routage IP, l'obtention d'adresse IP et la translation entre adresse prive et adresse
publique.
1 La place du protocole IP
IP correspond la couche 3 du modle OSI (Figure 1). IP peut fonctionner au-dessus de
toute liaison de donnes: Ethernet, Fast Ethernet, Gigabit Ethernet, ATM, Frame Relay, etc.
La couche transport ou couche 4 peut tre mise en oeuvre par TCP (Transmission Control
Protocol), UDP (User Datagram Protocol) ou SCTP (Stream Control Transmission Protocol).
Un grand nombre d'applications se retrouvent la couche 7: SMTP pour le transfert de mail,
HTTP pour l'accs au WEB, FTP pour le transfert de fichier, RTP pour le transport de la voix
sur IP, etc.
Applications
TCP
SCTP
IP
Carte rseau
Application
UDP
Transport
Rseau
Liaison de donnes
et physique
protocole IP est non fiable (il offre un service best-effort) et fonctionne en mode non
connect.
"Non fiable" signifie que les datagrammes mis par le protocole IP peuvent tre perdus,
peuvent arriver en dsordre, peuvent tre dupliqus, ou peuvent arriver avec un contenu
comportant des erreurs. Par ailleurs, il n'y a aucun mcanisme de contrle de flux mis en
oeuvre par IP. Le protocole IP considre que les protocoles des couches suprieures
savoir par exemple TCP, UDP ou SCTP corrigeront ses dficiences,.
La principale raison pour laquelle le mode non connect a t prfr tait de disposer dun
rseau qui puisse continuer fonctionner mme si une partie du rseau devient indisponible
ou est dtruite. Il sagissait dune exigence du DoD (United States Department of Defense).
2 Adressage IP (Classful)
Le plan dadressage initial de lInternet tait divis en trois classes (Figure 2):
la classe A (commenant par la squence binaire 0) rserve 7 bits pour les numros de
rseau et 24 bits pour les quipements;
la classe B (commenant par la squence binaire 10) rserve 14 bits pour les numros
de rseau et 16 bits pour les quipements;
la classe C (commenant par la squence binaire 110) rserve 21 bits pour les numros
de rseau et 8 bits pour les quipements.
cela sajoutent les classes D (commenant par la squence binaire 1110), utilises
pour joindre un groupe dquipements (ces adresses sont appeles multicast ) et les
classes E (commenant par la squence binaire 1111) qui sont rserves un usage
futur.
Lallocation de la partie rseau tait gre par un organisme de lInternet, ce qui garantissait
lunicit des adresses et permettait ainsi la construction dun rseau mondial. Il est noter
que lattribution des prfixes ne se faisait pas en tenant compte des contraintes
gographiques ou suivant la topologie du rseau.
Il peut exister jusqu 127 rseaux de classe A contenant chacun jusqu 16 777 214
quipements.
Il peut exister jusqu 16 384 rseaux de classe B contenant chacun jusqu 65 534
quipements.
loppos, il peut exister jusqu' 2 097 152 rseaux de classe C, mais ceux-ci ne peuvent
contenir que 254 quipements.
Le 1er octet de l'adresse est discriminant par rapport la classe dadresse associe : 0-127 :
Class A ; 128-191 : Class B; 192-223 : Class C; 224-239 : Class D; 240-255 : Class E
class
Unicast
0network
10
110
Multicast D
1110
Reserved E
1111
host
network
host
network
multicast address
reserved
32 bits
host
1.0.0.0 to
127.255.255.255
128.0.0.0 to
191.255.255.255
192.0.0.0 to
223.255.255.255
224.0.0.0 to
239.255.255.255
240.0.0.0 to
255.255.255.255
3 Subnetting
Le subnetting est le mcanisme qui permet une entreprise de partager un numro de
rseau unique entre plusieurs rseaux internes.
Lorganisation dcompose la partie host en deux parties : parties subnet (sous-rseau) et
subnet host (host de sous-rseau).
Un masque de sous-rseau (subnet mask) est utilis afin dindiquer quelle partie variable de
ladresse est considre comme network ID+SubnetworkID par le site local.
Les sous-rseaux (Subnets) sont invisibles en dehors du site
Dans le rseau Internet public, les tables de routage des routeurs stockent uniquement les
correspondances (network number, next hop).
Dans l'entreprise, les tables de routage des routeurs stockent les correspondances (subnet
number, subnet mask, next hop)
Un masque de sous-rseau (souvent dsign par ses homonymes anglais : subnet mask,
netmask et address mask) est un masque indiquant le nombre de bits d'une adresse IPv4
utiliss pour identifier le sous-rseau, et le nombre de bits caractrisant les htes (ce qui
indique aussi le nombre d'htes possibles dans ce sous-rseau).
Les masques de sous-rseau utilisent la mme reprsentation que celles des adresses IPv4.
En IPv4, une adresse IP est code sur 4 octets, soit 32 bits (reprsents en notation
dcimale point). Un masque de sous-rseau possde lui aussi 4 octets.
Dans lexemple ci-dessous le masque de sous-rseau est 255.255.255.128 ou 11111111
11111111 11111111 10000000 en notation binaire. Il faut noter que par convention,
ladresse de rseau (network address) est incluse dans le masque de sous-rseau. En
rsum, dans le masque de sous-rseau, les bits 1 identifient la partie rseau et sousrseau et les bits 0 identifient la parte hte.
Le numro de sous-rseau dun host est obtenu en effectuant une opration logique AND
entre le masque et ladresse IP du host (adresse IP de destination du datagramme reu par
le routeur).
Considrons un rseau de classe C, 192.44.77.0: Si le rseau contient deux sous-rseaux,
le masque de sous-rseau est : 11111111 11111111 11111111 10000000 gal
255.255.255.128. Chaque sous-rseau est capable de supporter 126 hosts (il faut soustraire
2 de 128, les valeurs 0 et 127 correspondant respectivement l'adresse du sous-rseau et
l'adresse broadcast dans le sous-rseau). .
Les adresses des sous-rseaux sont 192.44.77.0 et 192.44.77.128.
R3
Internet public
R1
R2
R4
Next
Hop
192.44.77
192.44.77.0 255.255.255.128 R3
192.44.77.128 255.255.255.128 R4
R2
Le routeur R2 reoit le datagramme. Puisque des sous-rseaux sont prsents, une opration
logique AND est ralise entre l'adresse IP de destination 192.44.77.23 du datagramme et le
masque spcifi par la table de routage, savoir 255.255.255.128. Le rsultat est un sousrseau, 192.44.77.0. R2 route alors le datagramme au sous-rseau 192.44.77.0 via R3
comme indiqu par la table de routage.
Pour un rseau de class C, si l'on considre rserver 1 bit de la partie host pour configurer
des sous-rseaux, alors 2 sous-rseaux sont possibles. Le masque de sous-rseau est
255.255.255.128 (le dernier octet tant 10000000). Chaque sous-rseau dispose de 126
(128-2) adresses (Figure 4).
Avec 2 bits rservs dans la partie host pour les sous-rseaux, il est possible de configurer 4
sous-rseaux. Le masque est alors 255.255.255.192 (le dernier octet tant 11000000).
Chaque sous-rseau peut disposer de 62 (64-2) adresses.
Avec 3 bits de sous-rseaux dans la partie host, 8 sous-rseaux sont alors possibles. Le
masque est 255.255.255.224 (le dernier octet tant 11100000). Chaque sous-rseau peut
disposer de 30 (32-2) adresses.
Le maximum de bits pouvant tre rservs dans la partie host pour les sous-rseau est 6. Il
y a aura alors 64 sous-rseaux chacun disposant de 2 (4-2) adresses. Le masque de sous
rseau associ est 255.255.255.252 (le dernier octet tant 11111100).
Bits Host Bits Subnet Nombre
de Hosts
Plage de valeurs
sur un Subnet
Masque subnet
126
x.y.z.1-x.y.z.127
255.255.255.128
62
x.y.z.1-x.y.z.62
255.255.255.192
30
x.y.z.1-x.y.z.30
255.255.255.224
14
x.y.z.1-x.y.z.14
255.255.255.240
x.y.z.1-x.y.z.6
255.255.255.248
x.y.z.1-x.y.z.2
255.255.255.252
Sans CIDR:
192.4.16.0
192.4.17.0
192.4.18.0
Fournisseur
de Service
192.4.16.0
192.4.17.0
192.4.18.0
Internet
Public
192.4.19.0
192.4.19.0
Avec CIDR:
192.4.16.0
192.4.17.0
192.4.18.0
Fournisseur
de Service
192.4.16/22
Internet
Public
192.4.19.0
5 Adressage priv
La RFC 1918 dfinit un espace d'adressage priv permettant toute organisation d'attribuer
des adresses IP aux machines de son rseau interne sans risque d'entrer en conflit avec une
adresse IP publique alloue par les organismes officiels. Ces adresses dites non-routables
correspondent aux plages d'adresses suivantes :
Classe A : plage de 10.0.0.0 10.255.255.255 ;
Classe B : plage de 172.16.0.0 172.31.255.255 ;
Classe C : plage de 192.168.0.0 192.168.255.55 ;
Toutes les machines d'un rseau interne, connectes Internet par l'intermdiaire d'un
routeur et ne possdant pas d'adresse IP publique doivent utiliser une adresse contenue
dans l'une de ces plages. Pour les petits rseaux domestiques, la plage d'adresses de
192.168.0.1 192.168.0.255 est gnralement utilise.
6 Format du datagramme IP
Le datagramme IP est form de deux parties (Figure 8):
l'en-tte du datagramme, d'une taille au minimum de 20 octets. C'est l que sont inscrites
toutes les informations du protocole (adresse, segmentation, options, etc.).
les donnes utiles ou champ de donnes, d'une taille maximum de 65536 octets - les
octets d'en-tte et d'options. Elle vhicule les donnes provenant de la couche
suprieure (e.g., un segment TCP ou UDP).
L'entte IP, comme tout le paquet IP est structure en mots de 4 octets. Il contient les
champs suivants :
- VER (4 bits)- La version du protocole IP (actuellement 0100 (4) mais peut aussi tre la
version 6).
- HLEN (4 bits)- Longueur de len-tte en mots de 4 octets; donc si la longueur est 6, alors
6*4 = 24 octets reprsente la longueur de len-tte. La taille de l'en-tte est 20 octets ou 5
mots de 4 octets si il n'y a pas d'options.
- Type of Service (8 bits) - Contient linformation de qualit de service qui peut induire un
traitement particulier pour le datagramme. Ce champs contient les bits suivants (Figure 7):
Les 3 bits de PRECEDENCE qui dfinissent la priorit du datagramme.
Les Bit D, T, R qui indiquent le type d'acheminement dsir pour le datagramme,
permettant un routeur de choisir entre plusieurs routes (si elles existent).
Le bit D si positionn 1 signifie que le dlai doit tre court pour le datagramme,
Le bit T si positionn 1 signifie que le dbit doit tre lev,
Le bit R si positionn 1 signifie que la fiabilit doit tre importante.
Precedence
Inutilis
- TTL (Time to Live, dure de vie) - Limite la dure maximum de maintien du datagramme
dans le rseau. Le champ TTL est positionn par lhte metteur et est dcrment
chaque routeur qui traite le datagramme. Un datagramme qui na pas encore atteint sa
destination lorsque le TTL a atteint 0, est supprim. La valeur par dfaut pour TTL est 64.
- Protocol - Utilis afin dindiquer quel est le protocole de la couche suprieure destinataire
du datagramme (i.e., TCP, UDP, OSPF, ou autre protocole). Si la valeur de ce champ est 6,
la couche suprieure est alors TCP. La valeur 17 reprsente UDP.
- Header Checksum - Ce champ de 16 bits (2 octets) contient un checksum qui est calcul
sur len-tte du datagramme uniquement et non pas sur les donnes utiles qui proviennent
de la couche suprieure. Le checksum doit tre recalcul et mis jour chaque saut du
datagramme car la valeur TTL est modifie par chaque routeur sur la route.
- Source and destination IP addresses - Correspondent aux adresses IP de la source et de la
destination du datagramme. L'adresse IP de destination permet d'acheminer le datagramme
la destination. L'adresse IP source permet la destination de retourner une rponses la
source. Par exemple, si la source met une requte HTTP afin d'obtenir une page WEB,
alors la requte HTTP GET est d'abord encapsule dans un segment TCP puis dans un
datagramme IP dont l'adresse source est celle du client WEB et l'adresse de destination,
celle du serveur WEB. Lorsque le serveur WEB retourne la rponse HTTP 200 OK contenant
la page WEB, le datagramme encapsulant cette rponse pour adresse IP de destination le
client WEB et pour adresse IP source celle du serveur WEB.
- IP Options - Le datagramme IP peut contenir des informations optionnelles. Cependant, il
est rare de trouver des options dans un en-tte IP. Parmi les options prvues par le
protocole, certaines concernent le routage :
loption router alert permet dindiquer aux routeurs quils doivent examiner le contenu du
datagramme. Cette option est utilise par le protocole de gestion des groupes multicast
(IGMP : Internet group message protocol ) et le protocole de signalisation et de
rservation de ressource (RSVP : reservation protocol ) ;
loption routage par la source (source routing ). Cette option permet de prciser un
chemin dans le rseau, cest--dire ladresse IP des routeurs par lesquels le datagramme
devra passer.
- Padding - Un bourrage est souvent rajout afin de sassurer que la longueur du
datagramme sera multiple de 4 octets.
A la suite de l'en-tte dcrit prcdemment, sont prsentes les donnes utiles provenant de
la couche suprieure, e.g., TCP, UDP, SCTP, etc.
IP protocol version
number
header length
(bytes)
type of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
32 bits
ver head. type of
len service
length
fragment
16-bit identifier flgs
offset
time to upper
Internet
layer
live
checksum
total datagram
length (bytes)
for
fragmentation/
reassembly
data
(variable length,
typically a TCP
or UDP segment)
E.g. timestamp,
record route
taken, specify
list of routers
to visit.
7 Le protocole DHCP
DHCP signifie Dynamic Host Configuration Protocol. Il s'agit d'un protocole qui permet un
hte qui se connecte sur un rseau local d'obtenir dynamiquement et automatiquement ses
paramtres de configuration IP. Le but principal tant la simplification de l'administration d'un
rseau IP.
DHCP supporte trois modes dallocation dadresse IP :
En mode "automatic allocation", DHCP affecte une adresse IP permanente un client
quand celui-ci contacte pour la premire fois le serveur DHCP.
En mode "dynamic allocation", DHCP affecte une adresse IP un client pur une dure
limite (ou jusqu ce que le client relache ladresse).
En mode "manual allocation", ladresse IP est assigne au client par ladministrateur
rseau, et DHCP est juste utilis pour fournir ladresse affecte au client.
Un rseau utilise un ou plusieurs de ces modes, en fonction des politiques dcides par
ladministrateur de rseau.
Considrons la configuration la figure 9 qui utilise NAPT. Un client dispose d'une BOX
laquelle l'oprateur a affect une adresse IP publique savoir 138.76.29.7. Le client
possde 3 notebooks, tous connects au rseau local et disposant chacun d'une adresse IP
prive, respectivement 10.0.0.1, 10.0.0.2 et 10.0.0.3. Lorsque le client souhaite envoyer une
requte HTTP un serveur WEB depuis le notebook 1, il encapsule la requte dans un
segment TCP. L'en-tte du segment rappelle les numros de port source (port du notebook
1) savoir 3345 pour cette session HTTP et le port destination (port du serveur WEB) 80. Le
segment TCP est ensuite encapsul dans un datagramme IP dont l'en-tte inclut les
adresses IP source (10.0.0.1) et destination (128.119.40.186). L'adresse IP source est
prive, alors que l'adresse IP destination est publique (c'est celle du serveur WEB obtenue
par interrogation du DNS). Lorsque le datagramme est reu par la BOX, sa fonction NAPT
remplace le port source par un autre port 5001 et l'adresse IP source prive par l'adresse de
la BOX, savoir 138.76.29.7, quant elle publique. La correspondance est mmorise dans
la table de traduction NAPT de la BOX (138.76.29.7, 5001; 10.0.0.1, 3345). Le datagramme
est rout via l'Internet public au serveur WEB. Le serveur excute la requte HTTP GET et
retourne une rponse HTTP 200 OK. Cette rponse est encapsule dans un segment TCP
dont l'en-tte inclut les port source et destination, savoir 80 et 5001. Par ailleurs, le
segment est encapsul dans un datagramme IP dont les adresses source et destination sont
respectivement 128.119.40.186 et 138.76.29.7. Ce datagramme est rout via l'Internet
publique la BOX qui est le destinataire. Le mcanisme NAPT est essentiel car le rseau
Internet public ne sait router des datagrammes que si leur adresse IP de destination est
publique. La BOX grce sa fonction NAPT remplace le couple (138.76.29.7, 5001) du
datagramme l'aide de sa table NAPT par le couple (10.0.0.1, 3345). Le datagramme est
ensuite rout sa destination, le notebook 1.
Table de traduction NAT
1: machine 10.0.0.1
2: Le routeur NAT adresse ct WAN
adresse ct LAN envoie le datagramme
change ladresse
138.76.29.7, 5001 10.0.0.1, 3345
128.119.40.186, 80
source du datagramme
de 10.0.0.1, 3345
138.76.29.7, 5001,
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
et met jour la table
2
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3: La rponse arrive
ladresse de destination :
138.76.29.7, 5001
10.0.0.1
1
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.2
10.0.0.3
4: Routeur NAT
change ladresse de destination
de 138.76.29.7, 5001 10.0.0.1, 3345
La translation d'adresse ne permet de relayer que des requtes provenant du rseau interne
vers le rseau externe. Cela signifie qu'il est impossible en tant que tel pour une machine
externe d'envoyer un datagramme vers une machine du rseau interne. En d'autres termes,
les machines du rseau interne ne peuvent pas fonctionner en tant que serveur vis--vis de
l'extrieur.
Pour cette raison, il existe une extension du NAT appele redirection de port (en anglais
Port Forwarding ou Port mapping) consistant configurer la passerelle pour transmettre
une machine spcifique du rseau interne, tous les paquets rus sur un port particulier.
Ainsi, si l'on souhaite pouvoir accder de l'extrieur un serveur web (port 80) fonctionnant
sur la machine 10.0.0.5, il sera ncessaire de dfinir une rgle de redirection de port sur la
passerelle, redirigeant tous les paquets TCP reus sur son port 80 vers la machine 10.0.0.5.
9 Routage IP
Afin de relayer un datagramme IPv4, un routeur ralise les fonctions suivantes :
Vrifie le champ Checksum en calculant son propre checksum et en comparant son
rsultat avec celui trouv dans len-tte du datagramme IPv4.
Vrifie la valeur du champ Version.
Dcrmente la valeur du champ TTL.
Vrifie la prsence doptions dans len-tte du datagramme IPv4. Si des options sont
prsentes, elles sont traites.
Utilise la valeur du champ Adresse Destination et les informations de la table de routage
locale afin de dterminer une interface pour relayer le datagramme ladresse IPv4 du
prochain saut.
Fragmente le datagramme si ncessaire
Recalcule le nouveau checksum sur len-tte du datagramme IPv4 et met jour le champ
correspondant.
Relaye le datagramme en utilisant linterface de relai approprie.
Paralllement au traitement des datagrammes reus, le routeur doit mettre jour les routes
disponibles dans sa table de routage. Pour ce faire, il doit changer avec les autres routeurs
du rseau des informations de routage.
Sur Internet, un Systme Autonome (Autonomous System ou AS) est un ensemble de
rseaux IP sous le contrle d'une seule et mme entit, typiquement un fournisseur d'accs
Internet ou une plus grande organisation qui possde des connexions redondantes avec le
reste du rseau Internet.
La notion de systme autonome est donc administrative et non technique. Ce qui caractrise
le systme autonome, c'est l'unit de dcision en son sein. Certains protocoles de routage
sont utiliss pour dterminer les routes dans l AS. D autres protocoles de routage sont
utiliss afin d interconnecter un ensemble dASs.
Au sein dun systme autonome, le protocole de routage est qualifi d'interne (par exemple,
Open Short Path First (OSPF) and Routing Information Protocol (RIP)).
Entre deux systmes autonomes, le routage est externe (par exemple Border Gateway
Protocol (BGP)).
Il existe diffrentes raisons qui justifient une multiplicit de protocoles de routage :
Le routage lintrieur dun rseau et le routage entre rseaux ont des contraintes en
terme de scurit, de scalabilit et de stabilit diffrentes. Diffrentes protocoles de
routages ont t dvelopps pour rpondre ces besoins.
Des rseaux de diffrentes tailles utilisent des protocoles de routage diffrents. Des
rseaux de petite taille et de taille moyenne utilisent gnralement des protocoles de
routage simples mais qui ne sont pas scalables. Pour des rseaux de grande taille, des
protocoles de routage complexes sont ncessaires pour rpondre au besoin de
scalabilit.
9.1
L information est maintenue dans une table de routage vecteur de distance. La table est
priodiquement mise aux routeurs voisins. Chaque routeur traite les tables reues pour
dterminer les meilleures routes travers le rseau.
Le principal avantage des algorithmes vecteur de distance est sa simplicit. Ils sont trs
utiliss dans des petits rseaux avec une redondance limite.
Les principaux point faibles sont le temps excessif pour la convergence, le manque de
scalabilit et le grand volume d information de routage chang.
9.2
Vecteur de distance
Etat de liaison
Algorithme de Djikstra
Scalabilit
Complexit
Trafic gnr
Tendance produire un
gros trafic de routage
Fonctionnement