Академический Документы
Профессиональный Документы
Культура Документы
Adressage.
Nous nous interessons ici uniquement au protocole IPV4.
1.1
Organisations de ladressage.
Chaque ordinateur du reseau Internet dispose dune adresse IP codee sur 4 octets (32 bits)
qui doit etre unique au sein de linternet. Plus precisement, chaque interface dun materiel
dispose dune adresse IP particuli`ere. En effet, un meme routeur interconnectant plusieurs
reseaux differents poss`ede une adresse IP pour chaque interface de reseau. Une adresse IP est
toujours representee dans une notation decimale pointee constituee de 4 nombres (1 par octet)
compris chacun entre 0 et 255 et separes par un point. Ainsi 193.49.144.1 est ladresse IP
dune des principales machines du reseau de luniversite dAngers.
Plus precisement, une adresse IP est constituee dune paire (identifiant de reseau, identifiant de machine) (on utilise aussi identifiant dinterface au lieu didentifiant de machine).
Larchitecture dadressage dorigine de linternet definissait cinq classes dadresse (A, B, C, D
1
et E) selon la valeur du premier octet de ladresse comme detaille dans la figure 1. Le tableau
ci-apr`es donne lespace dadresses possibles pour chaque classe.
classe
A
B
C
D
E
0.0.0.0
128.0.0.0
192.0.0.0
224.0.0.0
240.0.0.0
adresses
a` 127.255.255.255
a` 191.255.255.255
a` 223.255.255.255
a` 239.255.255.255
a` 247.255.255.255
Ainsi, les adresses de classe A etaient utilisees pour les tr`es grands reseaux comportant plus
de 216 = 65536 ordinateurs. Au niveau mondial, il ne pouvait donc exister plus de 127 tels
reseaux. Les adresses de classe B etaient utilisees pour les reseaux ayant entre 28 = 256 et
216 = 65536 ordinateurs, 14 bits definissent ladresse du reseau et 16 bits celle dune machine
sur le reseau. Seules 256 machines sont possibles sur un reseau de classe C dont le nombre
possible depassaient les 2 millions (= 221 ).
Au lieu dutiliser un adressage plat 1, 2, 3, ... la methode retenue est plus efficace car elle
permet une extraction rapide du numero de reseau `a linterieur dune adresse IP ce qui facilitera
le routage. Toutes les combinaisons mathematiquement possibles pour identifier un reseau ou
une machine ne sont pas permises car certaines adresses ont des significations particuli`eres.
0.0.0.0 est utilisee par une machine pour connatre sa propre adresse IP lors dune
processus damorcage par exemple
<id. de r
eseau nul>.<id. de machine> est egalement utilisee pour designer une machine sur son reseau lors dun boot egalement
<id. de r
eseau>.<id. de machine nul> nest jamais affectee a` une machine car elle
permet de designer le reseau lui-meme
<id. de r
eseau>.<id. de machine avec tous ses bits a
` 1> est une adresse de diffusion ou de broadcasting, cest-`a-dire quelle designe toutes les machines du reseau
concerne. Un datagramme adresse `a cette adresse sera ainsi envoye a` toutes les machines
du reseau.
255.255.255.255 est une adresse de diffusion locale car elle designe toutes les machines
du reseau auquel appartient lordinateur qui utilise cette adresse. Lavantage par rapport
a` ladresse precedente est que lemetteur nest pas oblige de connatre ladresse du reseau
auquel il appartient.
127.X.Y.Z est une adresse de rebouclage qui est utilisee pour permettre les communications inter-processus sur un meme ordinateur ou realiser des tests de logiciels car tout
logiciel de communication recevant des donnees pour cette adresse les retourne simplement
a` lemetteur.
Les adresses de classe A de 10.0.0.0 a` 10.255.255.255, de classe B de 172.16.0.0 a`
172.31.255.255 et de classe C de 192.168.0.0 a` 192.168.255.255 sont reservees `a la
constitution de reseaux prives autrement appeles intranet.
Cependant, ce syst`eme dadressage par classe sest revele inefficace devant la demande croissante dadresses IP. En effet, une entreprise voulant numeroter 2000 machines ne peut se contenter dun reseau de classe C. Par contre si on lui attribue un reseau de classe B, on perd plus de
60 000 adresses qui resteront inutilisees. On voit quaucune des classes nest satisfaisante.
Devant la penurie dadresses de classes B le syst`eme CIDR (Classless Inter Domain Routing
RFC 1518, 1519) est apparu en 1993 (aujourdhui voir la RFC 4632 http://www.ietf.org/
rfc/rfc4632.txt) Une telle adresse CIDR est de la forme A.B.C.D/M o`
u M est un entier appele
masque et compris entre 13 et 27. Ce masque designe le nombre de bits constituant lidentifiant
2
de reseaux dans ladresse A.B.C.D. Par exemple, dans 172.20.41.7/16, les 16 premiers bits de
ladresse designe le reseau qui est donc 172.20.0.0 et lidentifiant de machine est 0.0.41.7.
Le masque, ici egal `a 16, peut egalement etre donne sous la forme decimale 255.255.0.0
correspondant `a une adresse IP ayant ses 16 premiers bits a` 1.
Lutilisation de tous les masques possibles de 0 `a 32 bits permet de dimensionner des reseaux
de mani`ere plus precise et selon les possibilites suivantes par exemple.
masque equivalent en classe C nombre dadresses
...
...
...
/27
1/8
32
/26
1/4
64
...
...
...
/14
1 024
262 144
/13
2 048
524 288
...
...
...
Etant
donne une adresse IP donnee sous la forme CIDR comme 150.50.215.200/21 on
retrouve les identifiants de reseau et de machines en effectuant un et logique entre ladresse
compl`ete et le masque tous les deux mis sous forme binaire comme decrit ci-dessous.
adresse IP 150.50.215.200
masque (21) 255.255.248.0
adresse reseau
150.50.208.0
adresse machine
0.0.7.200
10010110.00110010.11010111.11001000
11111111.11111111.11111000.00000000
10010110.00110010.11010 000.00000000
00000000.00000000.00000 111.11001000
De cette mani`ere si une societe a besoin de 100 000 adresses on lui fournira une part de reseau
de classe A en lassociant `a un masque de 15 bits. Ainsi, elle disposera de 2(3215) = 131072
(la plus petite puissance de 2 superieure `a 100 000) adresses. Dans lancien syst`eme, un reseau
de classe B naurait pas ete suffisant et un reseau de classe A, avec ses 16 millions dadresses,
aurait ete largement surdimensionne.
Cette technique a permis dagreger des reseaux par region geographique et fournisseurs
dacc`es. Ce syst`eme de sur-reseau permet ainsi de faire apparatre dans les tables de routage
1.2
Fig. 3 DHCP
Les autres points du protocole sont geres par les messages suivants.
DHCPNACK : le serveur informe le client que le bail est termine
DHCPDECLINE : le client refuse ladresse IP car elle est dej`a utilisee
DHCPRELEASE : le client lib`ere ladresse IP et annule le bail
DHCPINFORM : le client poss`ede une IP et il demande des param`etres de configuration
locaux
Nommage.
machine) de mani`ere a` pouvoir fournir la reponse immediatement si une meme demande lui
parvient ulterieurement.
montre le resultat de la resolution inverse qui permet a` partir dune adresse IP de trouver le
ou les noms de domaines auxquels elle correspond.
Il faut noter aussi que plusieurs adresses IP peuvent etre associees a` un nom unique, comme
lexemple suivant lillustre.
pn@pn:~$ host www.google.fr
www.google.fr is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.129.99
www.l.google.com has address 209.85.129.104
www.l.google.com has address 209.85.129.147
En fait, chaque resolution du nom www.google.fr retourne la liste des adresses IP dans un
ordre particulier (round robin). Ainsi, les tr`es nombreuses requetes interrogeant un meme service
peuvent etre reparties entre differentes machines assurant le meme service.
pn@pn:~$ whois univ-angers.fr
%%
%% This is the AFNIC Whois server [bonnie.nic.fr].
%%
%% Rights restricted by copyright.
%% See http://www.afnic.fr/afnic/web/legal
%%
%% Use -h option to obtain more information about this service.
%%
%% [::ffff:193.49.146.121 REQUEST] >> -V Md4.7 univ-angers.fr
%%
domain:
univ-angers.fr
address:
Universite dAngers
address:
30, rue des Arenes
address:
49035 Angers Cedex 1
address:
FR
phone:
+33 41 73 53 84
fax-no:
+33 41 73 54 31
e-mail:
jacques.allo@univ-angers.fr
admin-c:
JA69-FRNIC
tech-c:
GR1378-FRNIC
zone-c:
NFC1-FRNIC
nserver:
ns.univ-angers.fr 193.49.144.1
nserver:
resone.univ-rennes1.fr 129.20.254.1
mnt-by:
FR-NIC-MNT
mnt-lower:
FR-NIC-MNT
changed:
nic@nic.fr 20050623
source:
FRNIC
...
;univ-angers.fr.
;; ANSWER SECTION:
univ-angers.fr.
172702 IN
univ-angers.fr.
142614 IN
univ-angers.fr.
142614 IN
univ-angers.fr.
142614 IN
univ-angers.fr.
142614 IN
;; AUTHORITY SECTION:
univ-angers.fr.
142614 IN
univ-angers.fr.
142614 IN
univ-angers.fr.
142614 IN
univ-angers.fr.
142614 IN
;; ADDITIONAL SECTION:
smtp.univ-angers.fr.
172702 IN
smtp.univ-angers.fr.
172702 IN
dns1.univ-nantes.fr.
6573
IN
dns2.univ-nantes.fr.
6573
IN
resone.univ-rennes1.fr. 51620
IN
resone.univ-rennes1.fr. 51620
IN
;; Query time: 2 msec
;; SERVER: 172.20.41.2#53(172.20.41.2)
;; WHEN: Wed Oct 3 16:44:35 2007
;; MSG SIZE rcvd: 330
IN
ANY
MX
NS
NS
NS
NS
50 smtp.univ-angers.fr.
dns1.univ-nantes.fr.
dns2.univ-nantes.fr.
resone.univ-rennes1.fr.
ns.univ-angers.fr.
NS
NS
NS
NS
resone.univ-rennes1.fr.
ns.univ-angers.fr.
dns1.univ-nantes.fr.
dns2.univ-nantes.fr.
A
AAAA
A
A
A
AAAA
193.49.144.2
2001:660:7201:709::20
193.52.108.41
193.52.101.20
129.20.254.1
2001:660:7307:31:129:20:254:1
montre les informations relatives au domaine univ-angers.fr (en 2007). On y voit notamment
quun serveur DNS fournit egalement, par son champ MX, ladresse des serveurs de courrier
gerant le domaine concerne.
Le but de la couche de liens de la pile TCP/IP est denvoyer et recevoir des datagrammes IP
pour la couche IP, denvoyer des requetes ARP (respt. RARP) et de recevoir des reponses pour
le module ARP (respt. RARP). Elle concentre donc les caracteristiques des deux premi`eres
couches du mod`ele OSI : couche physique et couche de liaison.
3.1
La liaison SLIP.
SLIP (Serial Line Internet Protocol, RFC 1055) est un protocole permettant denvoyer des
paquets IP entre deux ordinateurs relies par une liaison serie (par exemple, grace `a deux modems
branches sur les ports RS-232 et une ligne telephonique). Dans ce cas il ny a pas besoin de
prevoir un adressage de niveau 2, puisque la liaison est point a` point (une seule machine a`
chaque extremite du lien). Par contre, il sagit de delimiter le debut et la fin des paquets IP.
Le protocole SLIP definit 2 caract`eres speciaux : END (192 en decimal,c0 en hexadecimal) et
ESC (219 en decimal, db en hexadecimal). Dans sa version la plus simple, lencapsulation dun
paquet IP consiste a` envoyer tous les octets du paquet IP et de terminer par lenvoi du caract`ere
END. Si le caract`ere END se trouve parmi les donnees a` expedier, alors la suite de 2 octets ESC
et dc (220 en decimal) est emise a` la place. Sil sagit dexpedier le caract`ere ESC, alors la suite
de 2 octets ESC et dd (221 en decimal) est emise a` la place. Pour eviter des probl`emes de bruit,
certaines implantations de SLIP font egalement debuter lenvoi du paquet IP par un caract`ere
END. Au final, lencapsulation SLIP se resume a` lillustration de la figure 6.
le defaut de ne pas offrir dacc`es controle par mot de passe. De plus, il ny a pas de champ type
donc la ligne ne peut pas etre utilisee en meme temps pour un autre protocole. Et enfin, il ny
a pas de controle de la transmission. Si une trame subit des perturbations, cest aux couches
superieures de de le detecter. Enfin, il existe une version amelioree CSLIP (Compressed SLIP
RFC 1144) qui assure la (de)compression des donnees a` transmettre.
3.2
La liaison PPP.
PPP (Point to Point Protocol ) (RFC 1661) est un protocole qui corrige les deficiences de
SLIP en offrant les fonctionnalites suivantes :
utilisation sur des liaisons point a` point autres que serie, comme X25 ou RNIS
transport de differents protocoles de niveau 3 (IP, Decnet, Appletalk, ...)
compression des en-tetes IP et TCP pour augmenter le debit de la liaison
gestion dun controle dacc`es au reseau par authentification selon le protocole PAP qui
necessite la donnee dun mot de passe au debut de la communication ou le protocole
CHAP qui permet lechange de sceaux cryptes tout au long de la communication
detection et correction derreurs de transmission
ne pas utiliser des codes qui risquent detre interpretes par les modems
configuration automatique de la station client selon ses protocoles de couche reseau (IP,
IPX, Appletalk).
Le protocole PPP est celui classiquement utilise par les fournisseurs dacc`es a` Internet pour
connecter leurs abonnes via le reseau RTC (telephone) selon le schema de la figure 7.
de l`a se retrouve integre au reseau Internet avec une adresse IP pour tout le temps que
durera sa connexion.
De mani`ere plus technique lencapsulation PPP illustree dans la figure 8 est proche du
standard HDLC de lISO et est telle que chaque trame commence et finit par un fanion de valeur
7e soit en binaire 01111110. La valeur du champ adresse est toujours fixee `a ff puisquelle
est inutile ici dans le cas dune liaison point a` point. Le champ controle est fixe a` 03. Le
champ protocole precise la nature des donnees transportees : IP, appletalk . . .Le CRC assure
la detection des erreurs de transmission. Il est calcule a` laide du polynome generateur P (x) =
x16 + x12 + x5 + 1 sur lensemble des champs adresse, controle, protocole et informations.
Le probl`eme de lapparition du fanion 01111110 au milieu des donnees a` transmettre est
regle des deux mani`eres suivantes.
Dans le cas dune liaison synchrone, `a lemission un bit a` 0 est systematiquement ajoute
apr`es 5 1 et il est retire a` la reception.
Dans le cas dune liaison asynchrone, le fanion 7e est remplace par la suite 7d 5e, et
le code 7d est lui-meme remplace par la suite 7d 5d. De plus tout octet O de valeur
inferieure `a 20 (32 en decimal), correspondant donc `a un code de controle ASCII, sera
remplace par la sequence 7d O o`
u O=O20. Ainsi, on est s
ur que ces caract`eres ne
seront pas interpretes par les modems comme des caract`eres de commandes. Par defaut,
les 32 valeurs sont traitees ainsi mais il est possible dutiliser le protocole de controle de
liens pour specifier pour quels caract`eres uniquement on fait cette transformation.
3.3
Le r
eseau Ethernet.
Ethernet est le nom donne `a une des technologies les plus utilisees pour les reseaux locaux
en bus. Elle a ete inventee par Xerox au debut des annees 70 et normalisee par lIEEE (Institute
for Electrical and Electronics Engineers) vers 1980 sous la norme IEEE 802 et la declinaison la
plus usitee est la 802.3.
Tout dabord, il existe plusieurs technologies physiques pour etablir un reseau local de type
Ethernet comme illustre dans la figure9.
12
10 base 5 ou thick Ethernet est un reseau `a base de cable coaxial de 1,27 cm de diam`etre,
dune longueur de 500 m maximum et termine `a chaque extremite par une resistance.
Chaque ordinateur est relie, par un cordon AUI Attachment Unit Interface), a` un botier
appele transceiver lui-meme connecte au cable par lintermediaire dune prise (( vampire )).
Le transceiver est capable de detecter si des signaux numeriques transitent sur le cable et
de les traduire en signaux numeriques a` destination de lordinateur, et inversement.
10 base 2 ou thin Ethernet est un reseau a` base dun cable coaxial plus fin et plus souple,
moins resistant aux perturbations electromagnetiques que le 10 base 5, mais dun co
ut
inferieur. Le transceiver et le cable AUI ne sont plus utiles car lordinateur est relie
directement au cable par lintermediaire dune prise BNC en T integree a` la carte Ethernet
de lordinateur.
10 base T ou twisted pair Ethernet est un reseau dans lequel chaque ordinateur est relie,
par un cable de type paire torsadee, a` un point central qui est soit un repartiteur (hub)
ou un commutateur (switch) simulant leffet dun transceiver et de son cable AUI. La
connexion des cables se fait par lintermediaire dune prise RJ45 et les concentrateurs
doivent etre alimentes electriquement. Ils simulent ainsi le fonctionnement dun bus alors
que la topologie physique du reseau est une etoile. Le debit dun tel reseau est tr`es
generalement de 10 ou 100 Mbit/sec maximal mais lon trouve aussi les technologies 1000
baseT (ou Gigabit Ethernet sur fil de cuivre ou fibre optique) et 10 GigaBit portant le
debit a` 1 ou 10 Gbit/sec.
Dans tous les cas les informations sont transmises sur le bus sans garantie de remise. Chaque
transceiver capte toutes les trames qui sont emises sur le cable et les redirige vers le controleur
de lordinateur qui rejettera les trames qui ne lui sont pas destinees et enverra au processeur
celles qui le concernent, cest-`a-dire celles dont ladresse de destination est egale `a celle de la
carte reseau.
Comme il ny a pas dautorite centrale qui g`ere lacc`es au cable, il est possible que plusieurs
stations veuillent emettre simultanement sur le cable. Cest pourquoi chaque transceiver ecoute
le cable pendant quil emet des donnees afin de detecter des eventuelles perturbations. Si une
collision est detectee par le transceiver, celui-ci previent le coupleur qui arrete demettre et
attend un laps de temps aleatoire compris entre 0 et une certaine duree avant de reemettre
ses donnees. Sil y a encore un probl`eme de collision, alors un nouveau temps dattente est tire
au sort entre 0 et 2 , puis entre 0 et 4 , etc... jusqu`a ce que la trame soit emise. Ce principe
est justifie par le fait que si une premi`ere collision se produit, il y a de fortes chances que les
delais dattente tires au sort par chacune des 2 stations soient tr`es proches, donc il ne sera
pas surprenant davoir une nouvelle collision. En doublant a` chaque fois lintervalle des delais
dattente possibles on augmente les chances de voir les retransmissions setaler sur des durees
relativement longues et donc de diminuer les risques de collision. Cette technologie sappelle
13
CSMA/CD (Carrier Sense Multiple Access with Collision Detect). Elle est efficace en general
mais a le defaut de ne pas garantir un delai de transmission maximal apr`es lequel on est s
ur
que la trame a ete emise, donc cela ne permet pas de lenvisager pour des applications temps
reel.
Les adresses physiques Ethernet ou MAC adresses (Medium Access control) sont codees sur
6 octets et donnees sous la forme de 6 nombres hexadecimaux. Ils sont censees etre uniques car
les constructeurs et lIEEE g`erent cet adressage de mani`ere a` ce que deux coupleurs ne portent
pas la meme adresse1 . Elles sont de trois types
unicast dans le cas dune adresse monodestinataire designant un seul coupleur
broadcast dans le cas dune adresse de diffusion generale (tous les bits `a 1 donc egale
a` FF :FF :FF :FF :FF :FF) qui permet denvoyer une trame a` toutes les stations du
reseau
multicast dans le cas dune adresse multidestinataire qui permet dadresser une meme
trame a` un ensemble de stations qui ont convenu de faire partie du groupe que represente
cette adresse multipoint.
On voit donc quun coupleur doit etre capable de reconnaitre sa propre adresse physique,
ladresse de multicast, et toute adresse de groupe dont il fait partie.
Au niveau des trames, plusieurs formats ont ete definis, mais le plus courant aujourdhui
est celui dit de type II illustre dans la figure 10.
En pratique, certains constructeurs ne respectent pas cette r`egle et plusieurs cartes peuvent avoir la meme
adresse, voire une adresse nulle. On peut aussi programmer ladresse materielle.
14
sans aucun autre traitement. Un hub est un repeteur 10 base T multiport qui renvoie
donc le signal quil recoit par lun de ses ports vers tous ses autres ports.
Un pont est un equipement qui intervient dans larchitecture dun reseau en reliant deux
segments disjoints de ce reseau. Le pont appartient `a la couche 2 du mod`ele OSI car il
va filtrer les trames du reseau en fonction de leur origine et destination, mais il ne se
preoccuppe pas du logiciel reseau de niveau superieur (TCP/IP, DECNet, IPX, ...).
un bus Ethernet au debit de 14Mbit/s. Comme illustre dans la figure 12, cela permet la
constitution dun reseau local `a domicile pour partager un acc`es a` internet (voir section 6).
3.4
Le r
eseau WIFI.
La norme IEEE 802.11 definit les caracteristiques dun reseau local sans fil (WLAN) plus
connu sous le nom WIFI (WIreless FIdelity). Au niveau physique on distingue 3 modes de communication : IR (infrarouge), DSSS (Direct Sequence Spread Spectrum) FHSS (Frequency Hopping Spread Spectrum). Les deux derniers utilisent des ondes radio dans la bande de frequence
de 2.4 Ghz `a 2.4835 Ghz et decoupent de mani`ere particuli`ere la bande de frequence en differents
canaux. La declinaison 802.11b (celle du departement dinformatique de lUniversite dAngers
en 2005) autorise un debit maximal de 11Mbit/s, la 802.11g permet un debit maximal de 54
Mbit/s.
La constitution dun reseau local sans fil se fait selon le schema de la figure13 en un mode dit
dinfrastructure. Le point dacc`es est un equipement (antenne emettrice/receptrice) connecte
au reseau filaire Ethernet. Chaque ordinateur, equipe lui-meme dune carte WIFI, communique
avec ce point dacc`es pour pouvoir dialoguer avec les autres machines du reseau.
Pour sa part, le mode ad-hoc consiste `a creer un reseau dordinateurs equipes de carte
WIFI, sinterconnectant entre eux, sans point dacc`es particulier ni reseau filaire auquel se
raccorder. Cela permet de constituer un reseaux de machines sans aucune structure materielle
preexistante.
Les emissions de donnees sont regies par la technique CSMA/CA (Carrier Sense Multiple
Access with Collision Avoidance) qui suit le protocole suivant. Lorsquune station veut emettre,
elle explore le spectre de frequences. Si une activite est detectee, elle attend pendant quelques
instants avant de reessayer. Si aucune activite nest detectee, et si cette inactivite dure un temps
donne DIFS (Distributed Inter Frame Space), alors la station expedie ses donnees et attend
un message daquittement (ACK). Si celui-ci narrive pas, soit parce que le recepteur a detecte
des incoherences, soit parce quil a ete lui-meme perturbe, alors la station emettrice reemet les
donnees. Sinon, lorsque le ACK est recu, lemission est terminee.
Cependant, la phase decoute prealable peut etre inefficace car labsence dactivite ne signifie
pas forcement aucune activite, notamment a` proximite du point dacc`es. En effet, deux stations
peuvent ne pas (( sentendre ))si elles sont trop eloignees lune de lautre, tout en etant chacune
a` portee du point dacc`es (voir la figure 13). Pour pallier cette difficulte, la station emettrice,
apr`es avoir constate une periode de silence, va envoyer un message RTS (Ready To Send).
16
3.5
Etant
donne que le protocole IP, et ses adresses, peuvent etre utilises sur des architectures
materielles differentes (reseau Ethernet, Token-Ring, ...) possedant leur propres adresses physiques, il y a necessite detablir les correspondances biunivoques entre adresses IP et adresses
materielles des ordinateurs dun reseau. Ceci est lobjet des protocoles ARP (Address Resolution Protocol ) et RARP (reverse Address Resolution Protocol ). ARP fournit une correspondance
dynamique entre une adresse IP et ladresse materielle lui correspondant et RARP fait linverse.
Nous nous placons dans le cas dune correspondance a` etablir entre IP et Ethernet. La
necessite de la resolution dadresse fournie par ARP apparat dans lexemple ci-dessous decrivant
le debut dune connexion FTP entre un PC et le serveur sirius tous deux `a linterieur du meme
reseau Ethernet.
1. Le client FTP convertit ladresse du serveur FTP (ex : sirius.info-ua) en une adresse
IP (172.20.41.7) `a laide du fichiers /etc/hosts ou dun serveur de noms (DNS).
2. Le client FTP demande a` la couche TCP detablir une connexion avec cette adresse.
3. TCP envoie une requete de connexion `a ce serveur en emettant un datagramme IP contenant ladresse IP
17
4. En supposant que les machines client et serveur sont sur le meme reseau local Ethernet,
la machine emettrice doit convertir ladresse IP sur 4 octets en une adresse Ethernet sur
6 octets avant demettre la trame Ethernet contenant le paquet IP. Cest ce que va faire
ARP.
5. Le module ARP envoie une requete ARP dans une trame Ethernet (donnee dans la
figure 14) avec une adresse de destination multicast. Ainsi, toutes les machines du reseau
local recoivent cette requete contenant ladresse IP a` resoudre.
6. La couche ARP de la machine visee (ici sirius.info-ua) reconnat que cette requete lui
est destinee et repond par une reponse ARP contenant son adresse materielle 00 :20 :AF :AB :42
Les autres machines du reseau ignorent la requete.
7. La reponse ARP est recue par lemetteur de la requete. Pour ce retour, il ny a pas de
probl`eme de resolution puisque ladresse physique de lemetteur etant envoyee dans la
requete elle est connue de la machine qui repond.
8. La reponse ARP est recue par la couche ARP du client FTP, et le driver Ethernet peut
alors emettre le paquet IP avec la bonne adresse Ethernet de destination.
$ arp -a
titan.info-ua (172.20.41.1) a
` 00:13:46:66:A4:5A [ether] sur eth0
h108-0.info-ua (172.20.41.28) a
` 00:0F:1F:EA:92:DC [ether] sur eth0
pn.info-ua (172.20.41.43) a
` 00:12:3F:DD:E2:E0 [ether] sur eth0
neo.info-ua (172.20.41.25) a
` 00:0E:0C:5B:DF:22 [ether] sur eth0
pollux.info-ua (172.20.41.9) a
` 08:00:20:88:0F:4E [ether] sur eth0
tines.info-ua (172.20.41.2) a
` 00:13:46:66:A4:5A [ether] sur eth0
sirius.info-ua (172.20.41.7) a
` 00:00:1A:18:FF:4C [ether] sur eth0
cerbere.info-ua (172.20.40.9) a
` 00:10:DC:54:7B:03 [ether] sur eth0
joebar.info-ua (172.20.41.71) a
` 00:14:85:03:BE:7A [ether] sur eth0
helios.info-ua (172.20.41.5) a
` 00:03:BA:08:DB:22 [ether] sur eth0
Quant `a lui, le protocole RARP joue le role inverse de ARP en permettant de determiner
ladresse IP dun equipement dont on connat ladresse physique. Ceci est notamment utile
pour amorcer une station sans disques, ou un TX, qui na pas en memoire son adresse IP mais
seulement son adresse materielle. Le format dune trame RARP est celui de la figure 14) o`
u
le champ type de trame vaut 0835 et le champ op vaut 3 pour une requete RARP et 4 pour
une reponse. Une requete RARP est diffusee sous forme de broadcast, donc toutes les machines
du reseau la recoivent et la traitent. Mais la plupart des machines ignorent simplement cette
demande, seuls, le ou les serveurs RARP du reseau vont traiter la requete grace a` un ou plusieurs
fichiers et vont retourner une reponse contenant ladresse IP demandee.
19
Le protocole IP.
Comme on a peut le voir dans la pile TCP-IP le protocole IP (Internet Protocol, RFC 791)
est au cur du fonctionnement dinternet. Il assure sans connexion un service non fiable de
delivrance de datagrammes IP. Le service est non fiable car il nexiste aucune garantie pour que
les datagrammes IP arrivent a` destination. Certains peuvent etre perdus, dupliques, retardes,
alteres ou remis dans le desordre. On parle de remise au mieux (best effort delivery) et ni
lemetteur ni le recepteur ne sont informes directement par IP des probl`emes rencontres. Le
mode de transmission est non connecte car IP traite chaque datagramme independamment de
ceux qui le prec`edent et le suivent. Ainsi en theorie, au moins, deux datagrammes IP issus de
la meme machine et ayant la meme destination peuvent ne pas suivre obligatoirement le meme
chemin. Le role du protocole IP est centre autour des trois fonctionnalites suivantes chacune
etant decrite dans une des sous-sections a` venir.
definir le format du datagramme IP qui est lunite de base des donnees circulant sur
Internet
definir le routage dans internet
definir la gestion de la remise non fiable des datagrammes
4.1
Le datagramme IP.
Un datagramme IP est constitue dune en-tete suivie dun champ de donnees. Sa structure
Le type de services (TOS) est code sur 8 bits, indique la mani`ere dont doit etre gere le
datagramme et se decompose en six sous-champs comme suit.
0 1 2 3 4 5 6
7
priorite D T R C inutilise
Le champ priorite varie de 0 (priorite normale, valeur par defaut) `a 7 (priorite maximale
pour la supervision du reseau) et permet dindiquer limportance de chaque datagramme.
Meme si ce champ nest pas pris en compte par tous les routeurs, il permettrait denvisager des methodes de controle de congestion du reseau qui ne soient pas affectees par le
probl`eme quelles cherchent a` resoudre. Les 4 bits D, T, R et C permettent de specifier
ce que lon veut privilegier pour la transmission de ce datagramme (nouvel RFC 1455).
D est mis a` 1 pour essayer de minimiser le delai dacheminement (par exemple choisir un
cable sous-marin plutot quune liaison satellite), T est mis a` 1 pour maximiser le debit de
transmission, R est mis a` 1 pour assurer une plus grande fiabilite et C est mis a` 1 pour
minimiser les co
uts de transmission. Si les quatre bits sont `a 1, alors cest la securite de
la transmission qui doit etre maximisee. Les valeurs recommandees pour ces 4 bits sont
donnees dans la table 1. Ces 4 bits servent `a ameliorer la qualite du routage et ne sont pas
application
telnet/rlogin
FTP
contr
ole
transfert
SMTP
commandes
donnees
NNTP
SNMP
minimise le delai
1
maximise le debit
0
maximise la fiabilite
0
minimise le co
ut
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
21
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
193.51.189.57 (193.51.189.57)
caen-rtr-021-te4-1.cssi.renater.fr (193.51.189.54)
rouen-rtr-021-te4-1.cssi.renater.fr (193.51.189.46)
193.51.189.49 (193.51.189.49)
renater.rt1.par.fr.geant2.net (62.40.124.69)
so-3-0-0.rt1.lon.uk.geant2.net (62.40.112.106)
so-2-0-0.rt1.ams.nl.geant2.net (62.40.112.137)
216.24.184.85 (216.24.184.85)
216.24.184.102 (216.24.184.102)
B24-RTR-2-BACKBONE.MIT.EDU (18.168.0.23)
MITNET.TRANTOR.CSAIL.MIT.EDU (18.4.7.65)
trantor.haven.csail.mit.edu (128.30.0.254)
dolph.w3.org (128.30.52.45)
Resume: pmtu 1500 hops 17 back 47
9.637ms
9.638ms
9.586ms
9.716ms
13.491ms
34.455ms
25.260ms
109.635ms
109.036ms
113.754ms
113.859ms
114.791ms
114.781ms
asymm 11
asymm 10
asymm 10
asymm 10
asymm 11
asymm 12
asymm 15
asymm 16
asymm 17
reached
Le protocole permet de coder quel protocole de plus haut niveau a servi a cree ce datagramme. Les valeurs codees sur 8 bits sont 1 pour ICMP, 2 pour IGMP, 6 pour TCP et
17 pour UDP. Ainsi, la station destinataire qui recoit un datagramme IP pourra diriger
les donnees quil contient vers le protocole adequat.
Le total de controle den-tete (header checksum) est calcule a` partir de len-tete du datagramme pour en assurer lintegrite. Lintegrite des donnees transportees est elle assuree
directement par les protocoles ICMP, IGMP, TCP et UDP qui les emettent. Pour calculer cette somme de controle, on commence par la mettre a` zero. Puis, en considerant la
totalite de len-tete comme une suite dentiers de 16 bits, on fait la somme de ces entiers
en complement `a 1. On complemente `a 1 cette somme et cela donne le total de controle
que lon ins`ere dans le champ prevu. A la reception du datagramme, il suffit dadditionner
tous les nombres de len-tete et si lon obtient un nombre avec tous ses bits a` 1, cest que
la transmission sest passee sans probl`eme.
Les adresses IP source et destination contiennent sur 32 bits les adresses de la machine
emettrice et destinataire finale du datagramme.
Le champ options est une liste de longueur variable, mais toujours completee par des
bits de bourrage pour atteindre une taille multiple de 32 bits pour etre en conformite
avec la convention qui definit le champ longueur de len-tete. Ces options sont tr`es peu
utilisees car peu de machines sont aptes `a les gerer. Parmi elles, on trouve des options
de securite et de gestion (domaine militaire), denregistrement de la route, destampille
horaire, routage strict, etc...
Les champs non encore precises le sont dans la section suivante car ils concernent la fragmentation des datagrammes.
4.2
En fait, il existe dautres limites a` la taille dun datagramme que celle fixee par la valeur
maximale de 65535 octets. Notamment, pour optimiser le debit il est preferable quun datagramme IP soit encapsule dans une seule trame de niveau 2 (Ethernet par exemple). Mais,
comme un datagramme IP peut transiter `a travers Internet sur un ensemble de reseaux aux
technologies differentes il est impossible de definir, a priori (lors de la definition du RFC), une
taille maximale (1500 octets pour Ethernet et 4470 pour FDDI par exemple) des datagrammes
IP qui permette de les encapsuler dans une seule trame quel que soit le reseau traverse. On
appelle la taille maximale dune trame dun reseau le MTU (Maximum Transfert Unit) et elle
va servir a` fragmenter les datagrammes trop grands pour le reseau quils traversent. Mais, si le
MTU dun reseau traverse est suffisamment grand pour accepter un datagramme, evidemment
il sera encapsule tel quel dans la trame du reseau concerne. Comme on peut le voir dans la
figure 16 la fragmentation se situe au niveau dun routeur qui recoit des datagrammes issus
22
dun reseau a` grand MTU et qui doit les reexpedier vers un reseau a` plus petit MTU. Dans
cet exemple, si la station A, reliee `a un reseau Ethernet, envoie un datagramme de 1300 octets
a` destination de la station B, reliee egalement `a un reseau Ethernet, le routeur R1 va devoir
fragmenter ce datagramme de la mani`ere decrite ci-dessous.
La taille dun fragment est choisie la plus grande possible tout en etant un multiple de 8 octets. Un datagramme fragmente nest reassemble que lorsquil arrive `a destination finale. Meme
sils arrivent sur des reseaux avec un plus grand MTU les routeurs ne reassemblent pas les petits
fragments. De plus chaque fragment est route de mani`ere totalement independante des autres
fragments du datagramme do`
u il provient. Le destinataire final qui recoit un premier fragment
dun datagramme arme un temporisateur de reassemblage, cest-`a-dire un delai maximal dattente de tous les fragments. Si, passe ce delai, tous les fragments ne sont pas arrives il detruit
les fragments recus et ne traite pas le datagramme. Plus precisement, lordinateur destinataire
decremente, a` intervalles reguliers, de une unite le champ TTL de chaque fragment en attente
de reassemblage. Cette technique permet egalement de ne pas faire coexister au meme instant
deux datagrammes avec le meme identifiant.
datagramme initial
en-tete
du
datagramme : num=N
donnees1
600 octets
donnees2
600 octets
donnees3
100 octets
4.3
Le routage IP.
24
passerelle (gateway) est ladresse IP du prochain routeur vers lequel envoyer le datagramme pour atteindre cette destination
masque est le masque associe au reseau de destination
interface designe linterface physique par laquelle le datagramme doit reellement etre
expedie.
Une table de routage contient notamment une route par defaut qui specifie un routeur vers
lequel sont envoyes tous les datagrammes pour lesquels il nexiste pas de route specifique dans
la table.
Tous les routeurs mentionnes dans une table de routage doivent bien s
ur etre directement
accessibles a` partir du routeur considere. Cette technique, dans laquelle un routeur ne connat
pas le chemin complet menant `a une destination, mais simplement la premi`ere etape de ce
chemin, est appelee routage par sauts successifs (next-hop routing).
passerelle
(gateway)
140.252.13.65 140.252.13.35
127.0.0.1
127.0.0.1
140.252.13.32 140.252.13.34
default
140.252.13.33
masque
(genmask)
255.255.255.255
255.255.255.255
255.255.255.224
0.0.0.0
indicateurs interface
(flags)
UGH
emd0
UH
lo0
U
emdO
UG
emd0
25
H La route est un ordinateur (host), la destination est une adresse dordinateur. Dans ce
cas, la correspondance entre ladresse de destination du paquet a` (( router ))et lentree
destination de la table de routage doit etre totale. Si ce flag nest pas positionne, la route
designe un autre reseau et la destination est une adresse de reseau ou de sous-reseau. Ici,
la correspondance des identificateurs de reseaux est suffisante.
D La route a ete creee par une redirection.
M La route a ete modifiee par une redirection.
Ladresse 127.0.0.1 est celle de lo0, linterface de loopback, qui sert `a pouvoir faire communiquer une machine avec elle-meme sans passer physiquement par la carte reseau.
La destination default sert `a indiquer la destination de tous les datagrammes qui ne peuvent
etre (( routes ))par lune des autres routes. Elle est placee en derni`ere position, puisque la decision
de routage se fait selon lordre des lignes de la table. La premi`ere entree (ligne) dont ladresse de
destination est egale `a ladresse de destination du paquet a` router (( modulo le masque ))indique
linterface de sortie par laquelle expedier ce paquet.
4.4
26
il ins`ere dans les donnees du message ICMP toute len-tete ainsi que les 8 premiers octets
du datagramme en cause. Une liste non exhaustive des differents codes derreurs possibles
est :
0 Le reseau est inaccessible.
1 La machine est inaccessible.
2 Le protocole est inaccessible.
3 Le port est inaccessible.
4 Fragmentation necessaire mais bit de non fragmentation positionne a` 1.
5 Echec
de routage de source.
6 Reseau de destination inconnu.
7 Machine destinataire inconnue.
8 Machine source isolee (obsol`ete)
9 Communication avec le reseau de destination administrativement interdite.
10 Communication avec la machine de destination administrativement interdite.
11 Reseau inaccessible pour ce type de service.
12 Machine inaccessible pour ce type de service.
13 Communication administrativement interdite par filtrage.
(4,0) Demande de limitation de production pour eviter la congestion du routeur qui envoie
ce message.
(5,0-3) Demande de modification de route expediee lorsquun routeur detecte quun ordinateur utilise une route non optimale, ce qui peut arriver lorsquun ordinateur est ajoute au
reseau avec une table de routage minimale. Le message ICMP genere contient ladresse
IP du routeur a` rajouter dans la table de routage de lordinateur. Les differents codes
possibles ci-apr`es expliquent le type de redirection `a operer par lordinateur.
0 Redirection pour un reseau.
1 Redirection pour une machine.
2 Redirection pour un type de service et reseau.
3 Redirection pour un type de service et machine.
(9,0) Avertissement de routeur expedie par un routeur.
(10,0) Sollicitation de routeur diffuse par une machine pour initialiser sa table de routage.
(11,0) TTL detecte `a 0 pendant le transit du datagramme IP, lorsquil y a une route circulaire ou lors de lutilisation de la commande traceroute.
(11,1) TTL detecte a` 0 pendant le reassemblage dun datagramme.
(12,0) Mauvaise en-tete IP.
(12,1) Option requise manquante.
(13-14,0) Requete (13) ou reponse (14) timestamp, destampillage horaire.
(15,0) et (16,0) devenues obsol`etes.
(17-18,0) Requete (17) ou reponse (18) de masque de sous-reseau.
27
On presente ici les deux principaux protocoles de la couche transport dinternet que sont
les protocoles TCP (Transmission Control Protocol ) et UDP (User Datagram Protocol ). Tous
les deux utilisent IP comme couche reseau, mais TCP procure une couche de transport fiable
(alors meme que IP ne lest pas), tandis que UDP ne fait que transporter de mani`ere non fiable
des datagrammes.
5.1
Le protocole UDP.
Le protocole UDP (rfc 768) utilise IP pour acheminer, dun ordinateur a` un autre, en
mode non fiable des datagrammes qui lui sont transmis par une application. UDP nutilise pas
daccuse de reception et ne peut donc pas garantir que les donnees ont bien ete recues. Il ne
reordonne pas les messages si ceux-ci narrivent pas dans lordre dans lequel ils ont ete emis et
il nassure pas non plus de controle de flux. Il se peut donc que le recepteur ne soit pas apte `a
faire face au flux de datagrammes qui lui arrivent. Cest donc a` lapplication qui utilise UDP
de gerer les probl`emes de perte de messages, duplications, retards, desequencement, ...
Cependant, UDP fournit un service supplementaire par rapport a` IP, il permet de distinguer
plusieurs applications destinataires sur la meme machine par lintermediaire des ports. Un port
est une destination abstraite sur une machine identifie par un numero qui sert dinterface `a
lapplication pour recevoir et emettre des donnees. Par exemple,
...
discard
systat
daytime
...
9/udp
11/udp
13/udp
sink null
users
est un court extrait du fichier /etc/services de la machine deneb.info-ua dans lequel sont
enregistres les numeros de port utilises par chaque application. On y voit que lapplication daytime utilise le port 135 . Chaque datagramme emis par UDP est encapsule dans un datagramme
IP en y fixant `a 17 la valeur du protocole (voir la section 4.1). Le format detaille dun datagramme UDP est donne dans la figure 19. Les numeros de port (chacun sur 16 bits) identifient
Certains numeros de port (comme 13) sont statiques cest-`a-dire que tous les syst`emes les associent de
la meme mani`ere aux applications et tous les logiciels applicatifs se conforment `a cette r`egle. Dautres sont
dynamiques et un numero de port est attribue par les logiciels de communication `a lapplication au moment o`
u
celle-ci le demande.
28
et des donnees transmises. Puisquun datagramme UDP peut ne transmettre aucune donnee la
valeur minimale de la longueur est 8. Le checksum est un total de controle qui est optionnel car
il nest pas indispensable lorsque UDP est utilise sur un reseau tr`es fiable. Sil est fixe `a 0 cest
quen fait il na pas ete calcule. De mani`ere precise, UDP utilise len-tete et les donnees mais
egalement une pseudo-entete pour aboutir a` lensemble decrit figure 20. Cette pseudo en-tete
5.2
Le protocole TCP.
Contrairement `a UDP, TCP est un protocole qui procure un service de flux doctets oriente
connexion et fiable. Les donnees transmises par TCP sont encapsulees dans des datagrammes
IP en y fixant la valeur du protocole `a 6.
Le terme oriente connexion signifie que les applications dialoguant a` travers TCP sont
considerees lune comme un serveur, lautre comme un client, et quelles doivent etablir une
connexion avant de pouvoir dialoguer (comme dans le cas de lutilisation du telephone). Les
ordinateurs verifient donc prealablement que le transfert est autorise, que les deux machines sont
6
Lobtention de cette adresse IP source oblige UDP `a entrer en contact avec sa couche IP. En effet, sur un
ordinateur relie a` plusieurs reseaux ladresse IP source est celle de linterface de sortie et celle-ci est fonction de
la destination finale et de la table de routage geree par IP. Ce dialogue UDP/IP preliminaire `a lencapsulation
du datagramme UDP est une leg`ere entorse a` la notion de separation en couches. Elle est rendue necessaire,
voire indispensable, pour pouvoir sassurer pleinement de la remise `a bonne destination des datagrammes UDP.
29
pretes en sechangeant des messages specifiques. Une fois que tous les details ont ete precises,
les applications sont informees quune connexion a ete etablie et quelles peuvent commencer
leurs echanges dinformations. Il y a donc exactement deux extremites communiquant lune avec
lautre sur une connexion TCP7 . Cette connexion est bidirectionnelle simultanee (full duplex ) et
composee de deux flots de donnees independants et de sens contraire. Il est cependant possible
dinclure dans len-tete de segments TCP dune communication de A vers B des informations
relatives a` la communication de B vers A. Cette technique de superposition (piggybacking)
permet de reduire le trafic sur le reseau.
Tout au long de la connexion, TCP echange un flux doctets sans quil soit possible de
separer par une marque quelconque certaines donnees. Le contenu des octets nest pas du tout
interprete par TCP, cest donc aux applications dextremite de savoir gerer la structure du flot
de donnees.
Si elles sont trop volumineuses, les donnees a` transmettre pour une application sont fractionnees en fragments dont la taille est jugee optimale par TCP. A linverse, TCP peut regrouper
des donnees dune application pour ne former quun seul datagramme de taille convenable de
mani`ere a` ne pas charger inutilement le reseau. Cette unite dinformation emise est appelee segment. Certaines applications demandent que les donnees soient emises immediatement, meme si
le tampon nest pas plein. Pour cela, elles utilisent le principe du push pour forcer le transfert.
Les donnees sont alors emises avec un bit marquant cela pour que la couche TCP receptrice du
segment remette immediatement les donnees a` lapplication concernee.
La fiabilite fournie par TCP consiste a` remettre des datagrammes, sans perte, ni duplication,
alors meme quil utilise IP qui lui est un protocole de remise non fiable. Ceci est realise a` laide
de la technique generale de laccuse de reception (ACK ) presentee de mani`ere simplifiee dans
la figure 21 Chaque segment est emis avec un numero qui va servir au recepteur pour envoyer
Fig. 21 Echanges
de segments TCP.
un accuse de reception. Ainsi lemetteur sait si linformation quil voulait transmettre est bien
parvenue a` destination. De plus, `a chaque envoi de segment, lemetteur arme une temporisation
qui lui sert de delai dattente de laccuse de reception correspondant a` ce segment. Lorsque la
temporisation expire sans quil nait recu de ACK, lemetteur consid`ere que le segment sest
perdu8 et il le reexpedie. Mais il se peut que la temporisation expire alors que le segment a
ete transmis sans probl`eme, par exemple suite `a un engorgement de reseau ou a` une perte de
7
UDP permet lui de mettre en place du broadcasting et du multicasting (via le protocole IGMP) lorsquune
application veut envoyer un unique message simultanement vers plusieurs destinataires.
8
Cela peut arriver puisque la couche IP sous-jacente nest pas fiable.
30
laccuse de reception correspondant. Dans ce cas, lemetteur reemet un segment alors que cest
inutile. Mais le recepteur garde trace des numeros de segments recus, donc il est apte a` faire la
distinction et peut eliminer les doublons.
La figure 22 donne le format dun segment TCP qui sert aux trois fonctionnalites de TCP :
etablir une connexion, transferer des donnees et liberer une connexion. Len-tete, sans option,
dun segment TCP a une taille totale de 20 octets et se compose des champs suivants.
Le port source et le port destination identifient les applications emettrice et receptrice. En
les associant avec les numeros IP source et destination du datagramme IP qui transporte
un segment TCP on identifie de mani`ere unique chaque connexion9 .
Le numero de sequence 10 donne la position du segment dans le flux de donnees envoyees
par lemetteur ; cest-`a-dire la place dans ce flux du premier octet de donnees transmis
dans ce segment.
Le numero daccuse de reception contient en fait le numero de sequence suivant que le
recepteur sattend a` recevoir ; cest-`a-dire le numero de sequence du dernier octet recu
avec succ`es plus 1. De mani`ere precise, TCP nacquitte pas un a` un chaque segment quil
recoit, mais acquitte lensemble du flot de donnees jusqu`a loctet k 1 en envoyant un
acquittement de valeur k. Par exemple, dans une transmission de 3 segments de A vers
B, si les octets de 1 `a 1024 sont recus correctement, alors B envoie un ACK avec la
valeur 1025. Puis, si le segment suivant contenant les octets de 1025 `a 2048 se perd et
que B recoit dabord correctement le segment des octets de 2049 `a 3072, B nenverra pas
daccuse de reception positif pour ce troisi`eme segment. Ce nest que lorsque B recevra le
deuxi`eme segment, quil pourra envoyer un ACK avec la valeur 3073, que A interpretera
comme lacquittement des deux derniers segments quil a envoyes. On appelle cela un
acquittement cumulatif.
9
10
31
La longueur den-tete contient sur 4 bits la taille de len-tete, y compris les options
presentes, codee en multiple de 4 octets. Ainsi une en-tete peut avoir une taille variant
de 20 octets (aucune option) a` 60 octets (maximum doptions).
Le champ reserve comporte 6 bits reserves `a un usage ulterieur.
Les 6 champs bits de code qui suivent permettent de specifier le role et le contenu du
segment TCP pour pouvoir interpreter correctement certains champs de len-tete. La
signification de chaque bit, quand il est fixe a` 1 est la suivante.
URG, le pointeur de donnees urgentes est valide.
ACK, le champ daccuse de reception est valide.
PSH, ce segment requiert un push.
RST, reinitialiser la connexion.
SYN, synchroniser les numeros de sequence pour initialiser une connexion.
FIN, lemetteur a atteint la fin de son flot de donnees.
La taille de fenetre est un champ de 16 bits qui sert au controle de flux selon la methode
de la fenetre glissante. Il indique le nombre doctets (moins de 65535) que le recepteur est
pret a` accepter. Ainsi lemetteur augmente ou diminue son flux de donnees en fonction
de la valeur de cette fenetre quil recoit.
Le checksum est un total de controle sur 16 bits utilise pour verifier la validite de len-tete
et des donnees transmises. Il est obligatoirement calcule par lemetteur et verifie par le
recepteur. Le calcul utilise une pseudo-entete analogue a` celle dUDP (voir la section 5.1).
Le pointeur durgence est un offset positif qui, ajoute au numero de sequence du segment,
indique le numero du dernier octet de donnee urgente. Il faut egalement que le bit URG
soit positionne `a 1 pour indiquer des donnees urgentes que le recepteur TCP doit passer
le plus rapidement possible `a lapplication associee a` la connexion.
Loption la plus couramment utilisee est celle de la taille maximale du segment TCP
quune extremite de la connexion souhaite recevoir. Ainsi, lors de letablissement de la
connexion il est possible doptimiser le transfert de deux mani`eres. Sur un reseau `a haut
debit, il sagit de remplir au mieux les paquets, par exemple en fixant une taille qui soit
telle que le datagramme IP ait la taille du MTU du reseau. Sinon, sur un reseau a` petit
MTU, il faut eviter denvoyer des grands datagrammes IP qui seront fragmentes, car la
fragmentation augmente la probabilite de pertes de messages.
Letablissement et la terminaison dune connexion suit le diagramme dechanges de la figure 23. Lextremite demandant louverture de la connexion, est le client. Il emet un segment
SYN (o`
u le bit SYN est fixe a` 1) specifiant le numero de port du serveur avec lequel il veut
se connecter. Il expedie egalement un numero de sequence initial N . Cette phase est appelee
ouverture active et (( consomme ))un numero de sequence. Le serveur repond en envoyant un
segment dont les bits ACK et SYN sont fixes a` 1. Ainsi, dans un meme segment il acquitte
le premier segment recu avec une valeur de ACK=N + 1 et il indique un numero de sequence
initial. Cette phase est appelee ouverture passive. Le client TCP doit evidemment acquitter ce
deuxi`eme segment en renvoyant un segment avec ACK=P + 111 .
La terminaison dune connexion peut etre demandee par nimporte quelle extremite et se
compose de deux demi-fermetures puisque des flots de donnees peuvent secouler simultanement
dans les deux sens. Lextremite qui demande la fermeture (le client dans lexemple de la figure 23
emet un segment o`
u le bit FIN est fixe a` 1 et o`
u le numero de sequence vaut N 0 . Le recepteur du
segment lacquitte en retournant un ACK=N 0 + 1 et informe lapplication de la demi-fermeture
11
32
Fig. 23 Etablissement
et terminaison dune connexion TCP.
` partir de l`a, les donnees ne peuvent plus transiter que dans un sens (de
de la connexion. A
lextremite ayant accepte la fermeture vers lextremite layant demandee), et dans lautre seuls
des accuses de reception sont transmis. Quand lautre extremite veut fermer sa demi-connexion,
elle agit de meme que precedemment ce qui entrane la terminaison compl`ete de la connexion.
Le transfert de donnees de TCP est de deux types : le transfert interactif dans lequel
chaque segment transporte tr`es peu doctets, voire un seul, et le transfert en masse o`
u chaque
segment transporte un maximum doctets. Un exemple de transfert interactif est celui genere
par la commande rlogin lancee depuis un client vers un serveur. Dans ce cas de figure, tous
les caract`eres tapes par lutilisateur sur le client sont envoyes vers le serveur en utilisant un
caract`ere par segment, et ils sont ensuite renvoyes en sens inverse par le serveur pour un echo
sur lecran du client. Tous les segments echanges dans ce cas l`a ont leur bit PSH fixe a` 1. Or,
tout segment doit etre acquitte dans un sens comme dans lautre ; ce qui devrait amener au
diagramme dechanges illustre dans le a) de la figure 24. En fait, TCP g`ere ce type dechange
avec la procedure dacquittement retarde qui consiste `a envoyer lacquittement en lincluant dans
un segment qui transporte egalement des donnees comme illustre dans le b) de la figure 24.
Pour cela lacquittement est generalement retarde de 200ms dans le but dattendre deventuelles
donnees `a transmettre. Cependant, dans ce contexte la frappe de la commande date sur le client
provoquerait quand meme lechange de 15 datagrammes IP de 41 octets12 , pour transporter
a` chaque fois seulement 1 octet utile. Ce type de situation est peu genant sur un LAN mais
devient tr`es vite prejudiciable au bon fonctionnement dun WAN. Une solution `a ce probl`eme
est lalgorithme de Nagle (RFC 896) qui specifie quune connexion TCP ne peut avoir seulement
un petit segment non encore acquitte. Ainsi, si un reseau a un fort debit et nest pas du tout
12
Pour chacun des 5 caract`eres d a t e newline, il faut 1 octet pour le caract`ere+20 octets den-tete TCP+
20 octets den-tete IP.
33
Fig. 24 Echange
de donnees interactif.
charge la procedure sera celle du b) de la figure 24. Par contre, d`es que le temps de transfert
est non negligeable, les acquittements vont arriver plus lentement que la frappe des caract`eres
par lutilisateur du poste client. Dans ce cas, la couche TCP du client va accumuler de petits
volumes de donnees (quelques caract`eres) et les envoyer dans le meme segment TCP diminuant
ainsi considerablement le nombre dechanges comme illustre dans le c) de la figure 24. Dans les
cas o`
u de petits messages doivent etre remis sans delai (mouvement de souris dans le cas dun
serveur X) lalgorithme de Nagle doit etre invalide pour donner une impression de temps reel.
Dans le cas dun transfert de donnees en masse, TCP utilise la technique de la fenetre
glissante pour controler le flux des echanges. Ceci est primordial quand un micro ordinateur
communique avec un gros ordinateur, sinon le tampon dentree du micro sera tr`es vite sature.
Ceci consiste en un controle de flux de bout en bout. Mais il sagit aussi de reguler le trafic en
fonction de la charge des routeurs et du debit des reseaux traverses. On rappelle que lensemble
dun flux de donnees unidirectionnel dune machine A vers une machine B est constitue dune
sequence doctets tous numerotes individuellement. La fenetre glissante va consister a` fixer quels
sont les octets appartenant `a ce flux que A peut emettre comme cest illustre dans la figure 25.
Dans cet exemple la fenetre couvre les octets de 4 a` 9, car la taille de la fenetre courante est 6
fentre courante
fentre
utilisable
octets mis
et acquitts
octets mis
et non acquitts
8
octets
prts
10
11
12
.......
octets bloqus
ouverture
de la connexion
1
SYN sq=1000
MSS=1024
ACK=1001 WIN=4096
PSH 10012025
PSH 30494073
2024 2025
3048 3049
4072 4073
7144 7145
8168
ACK
dbut
4
des transferts
5
1001
2
mis par 4
mis par 5
PSH 20253049
mis par 6
ACK=3049 WIN=4096
ACK=4073 WIN=3072
acquitts par 7
PSH 40735097
mis par 9
ACK=5097 WIN=4096
11
PSH 50976121
12
PSH 61217145
13
PSH 71458169
10
acquitt par 10
ACK=8169 WIN=4096
14
acquitts par 14
annonce par 14
fermeture
de la connexion
R
eseau priv
e et acc`
es `
a linternet
Le reseau du departement dinformatique de luniversite dAngers schematise dans la figure 27 est un exemple de reseau IP prive. Cest-`a-dire que lensemble des machines qui le
composent ont recu une adresse IP dite privee ((( non routable ))) comme defini `a la section 1 et
appartenant `a lun des deux reseaux 172.20.0.0/16, ou 192.168.99.0/24. Seule la machine
tines est une passerelle dont lune des interfaces est publique 193.49.146.121. Etant
donne
cet adressage prive, aucune machine du reseau prive nest directement joignable de lexterieur.
Par consequent, sans configuration supplementaire, elle ne pourrait pas non plus etablir une
connexion vers lexterieur, puisque ladresse demission des paquets IP quelle emettrait vers
lexterieur ne pourrait en aucun cas servir (( dadresse de retour )) pour lui renvoyer des informations.
La suite decrit les differents moyens mis en uvre pour rendre possibles certaines communications entre les postes du reseau prive et dautres postes sur internet, tout en assurant un
maximum de securite (eviter les intrusions, controler les acc`es en entree et en sortie, . . .). Ainsi,
avec seulement 1 adresse IP publiques il devient possible de connecter a` linternet un grand
nombre de machines.
13
35
quils relaient comme ceci est decrit dans la figure 29. Evidemment,
pour les protocoles ou
applications qui ne sappuient pas sur TCP ou UDP, comme ICMP par exemple, il faut mettre
en place un relayage particulier.
Mais, la principale limitation de lIP masquerading est quil ne permet la communication
entre une machine du reseau prive et une sur linternet que dans le cas o`
u la connexion est initiee
de linterieur. Dun cote, cela augmente la securite du reseau interne. Dun autre, cela empeche
toute offre de service a` partir dune machine interne. Cette limitation dacc`es depuis lexterieur
36
peut etre levee si lon utilise la technique de portforwarding decrite dans la figure 30. Dans ce cas,
la machine passerelle va relayer vers une machine interne assurant le service demande toutes les
demandes qui lui parviennent sur le port correspondant a` lapplication demandee. Dans le cas
du reseau de la figure 27 ce syst`eme est implante sur la machine tines. Ainsi, si lon cherche `a
etablir une connexion ssh depuis linternet vers la machine sirius.info.univ-angers.fr (nom
symbolique pour ladresse IP publique 193.49.146.121) cela aboutira `a etablir cette connexion
ssh vers la machine du reseau prive sirius.info-ua dadresse IP privee 172.20.41.7.
37
routeur
Internet
iproxy.info-ua
193.49.146.122
216.239.37.101
172.20.41.2
www.google.fr
172.20.41.210
p0.info-ua
iproxy.info-ua
iproxy.info.univ-angers.fr
www.google.fr
216.239.37.101 4444
80
Get www.google.fr/index.html
Rception, excution de la requte
et envoi de la rponse http
216.239.37.101
193.49.146.122
172.20.41.2
172.20.41.210 3128
5555 <html>....</html>
Rception de la
rponse http
Expditeur Destinataire
Port
Port
source
dest
Donnes http
38
80
4444
<html>....</html>
Fig. 29 IP masquerading
39
40