Vous êtes sur la page 1sur 100

2me Partie

TCP/IP - Protocoles de base

www.developpez.c.la

Plan


INTRODUCTION







CONCEPTS DE
L'INTERCONNEXION
L'ADRESSAGE INTERNET
ARP : PROTOCOLE DE
RESOLUTION D'ADRESSE
RARP : PROTOCOLE DE
RESOLUTION D'ADRESSE
INVERSE

www.developpez.c.la





LE PROTOCOLE INTERNET
ROUTAGE DES
DATAGRAMMES
LE SOUS-ADRESSAGE
LE PROTOCOLE ICMP
UDP : LE PROTOCOLE
TRANSPORT DATAGRAM
TCP : LE PROTOCOLE DE
TRANSPORT FIABLE
CONCLUSION

Introduction







TCP/IP : but = interconnexion de rseaux sur une base plantaire


Technologie issue des annes 1970, de projets DARPA
Aujourdhui : 100000 rseaux interconnects, plusieurs millions de
machines, plusieurs dizaines de millions d'utilisateurs de "l'lnternet".
Interconnecte divers rseaux : Ethernet, T.R., X25, FR, FDDI, etc.
La technologie est constitue par des protocoles de base (suite
TCP/IP) qui offrent les services de base du transfert des donnes :
transport de datagrammes : service lmentaire de la commutation de
paquets.
transport de messages scuriss : service orient connexion
permettant d'acheminer des donnes en garantissant leur intgrit
adaptation de la technologie TCP / IP la plupart des interfaces
matrielles.
Ces services de base sont indpendants du support de transmission;
adaptables toute sorte de media depuis les rseaux locaux jusqu'aux
rseaux longue distance.
www.developpez.c.la

Introduction





Interconnexion universelle : les machines ont une adresse unique sur


l'Internet. Deux machines relies au rseau, communiquent grce aux
autres noeuds du rseau qui routent de manire cooprative sur la
base de l'adresse destinataire.
Interconnexion d'gal gal (peer to peer systems) : il n'y a pas de
machines prioritaires (en opposition une structure hirarchique).
Dans le cadre du transport scuris, les acquittements sont effectus
entre les systmes finaux (source et destinataire) plutt que
continuellement entre chaque noeud relayant les messages.
Applications standards bties sur la technologie de base : courrier
lectronique, transfert de fichier, mulation terminal, etc.
Technologie publique et largement diffuse au travers de RFC's.
Indpendante des constructeurs et disponible sur tous types de
matriel (micro, station, super-calculateur et quipements de rseaux)
Largement valide depuis de nombreuses annes dans un monde
htrogne.
www.developpez.c.la

Concepts de linterconnexion



Point de dpart : les rseaux interconnects sont de nature diverse


Les diffrences entre tous ces rseaux ne doivent pas apparatre
l'utilisateur de l'interconnexion.
Abstraction chaque niveau de fonctionnalit (couches de
protocoles) qui encapsule les fonctionnalits de niveau infrieur
Affranchit l'utilisateur des dtails relatifs aux couches infrieures et
finalement au rseau lui-mme (couche physique).
Les premiers systmes d'interconnexion ont trait le problme au
niveau applicatif : messagerie relayant le message de noeud en
noeud. Cette solution prsente plusieurs inconvnients :
si les applications interfacent elles-mmes le rseau (aspects
physiques), elles sont victimes de toute modification de celui-ci,
plusieurs applications diffrentes sur une mme machine dupliquent
l'accs au rseau,
lorsque le rseau devient important, il est impossible de mettre en
oeuvre toutes les applications ncessaires l'interconnexion sur tous
les noeuds des rseaux.
www.developpez.c.la

Concepts de linterconnexion (suite)




Alternative cette solution : mise en oeuvre de l'interconnexion au


niveau des protocoles grant la couche rseau de ces systmes.
Avantage considrable : les donnes sont routes par les noeuds
intermdiaires sans que ces noeuds aient la moindre connaissance
des applications responsables des ces donnes
Autres avantages :
 la commutation est effectue sur la base de paquets de petite taille plutt
que sur la totalit de fichiers pouvant tre de taille trs importante,
 le systme est flexible puisquon peut facilement introduire de nouveaux
interfaces physiques en adaptant la couche rseau alors que les
applications demeurent inchanges,
 les protocoles peuvent tre modifis sans que les applications soient
affectes.

www.developpez.c.la

Concepts de linterconnexion (suite)




Le concept d'interconnexion ou d'internet repose sur


la mise en oeuvre d'une couche rseau masquant les
dtails de la communication physique du rseau et
dtachant les applications des problmes de routage.

L'interconnexion : faire transiter des informations


depuis un rseau vers un autre rseau par des noeuds
spcialiss appels passerelles (gateway) ou routeurs
(router)

www.developpez.c.la

Concepts de linterconnexion (suite)




Les routeurs possdent une connexion sur chacun des


rseaux:

Reseau A

Reseau B

La passerelle P interconnecte les rseaux A et B.




Le rle de la paserelle P est de transfrer sur le rseau


B, les paquets circulant sur le rseau A et destins au
rseau B et inversement.
www.developpez.c.la

Concepts de linterconnexion (suite)


Reseau A

P1

Reseau B

P2

Reseau C

P1 transfre sur le rseau B, les paquets circulant sur le rseau A et


destins aux rseaux B et C

P1 doit avoir connaissance de la topologie du rseau; savoir que C


est accessible depuis le rseau B.

Le routage n'est pas effectu sur la base de la machine destinataire


mais sur la base du rseau destinataire

www.developpez.c.la

Concepts de linterconnexion (suite)




A l'intrieur de chaque rseau, les noeuds utilisent la technologie


spcifique de leur rseau (Ethernet, X25, etc)

Le logiciel d'interconnexion (couche rseau) encapsule ces


spcificits et offre un service commun tous les applicatifs, faisant
apparatre l'ensemble de ces rseaux disparates comme un seul et
unique rseau.

Vue utilisateur
www.developpez.c.la

Vue relle du rseau


10

Ladressage Internet


But : fournir un service de communication universel


permettant toute machine de communiquer avec toute
autre machine de linterconnexion

Une machine doit tre accessible aussi bien par des


humains que par d'autres machines

Une machine doit pouvoir tre identifie par :






un nom (mnmotechnique pour les utilisateurs),


une adresse qui doit tre un identificateur universel de la machine,
une route prcisant comment la machine peut tre atteinte.

www.developpez.c.la

11

Ladressage Internet


Solution : adressage binaire compact assurant un


routage efficace
Adressage " plat" par opposition un adressage
hirarchis permettant la mise en oeuvre de
l'interconnexion d'gal gal
Utilisation de noms pour identifier des machines (ralise
un autre niveau que les protocoles de base)
Les classes d'adressage


Une adresse = 32 bits dite "internet address" ou "IP address" constitue


d'une paire (netid, hostid) o netid identifie un rseau et hostid identifie
une machine sur ce rseau.
Cette paire est structure de manire dfinir cinq classes d'adresse

www.developpez.c.la

12

Ladressage Internet (suite)


0

Net-id

Classe A

Classe B

10

Classe C

110

Classe D

1110

Classe E

11110

www.developpez.c.la

16

24

31

Host-id

Net-id

Host-id
Net-id

Host-id

Multicast
Rserv

13

Ladressage Internet (suite)




Notation dcimale
L'interface utilisateur concernant les adresses IP consiste en la
notation de quatre entiers dcimaux spars par un point, chaque
entier reprsentant un octet de l'adresse IP :
10000000

00001010

00000010

00011110

est crit :

128.10.2.30


Adresses particulires
 Adresses rseau : adresse IP dont la partie hostid ne comprend que des
zros; => la valeur zro ne peut tre attribue une machine relle :
192.20.0.0 dsigne le rseau de classe B 192.20.
 Adresse machine locale : adresse IP dont le champ rseau (netid) ne
contient que des zros;
 hostid = 0 (=> tout zro), l'adresse est utilise au dmarrage du systme
afin de connatre l'adresse IP (Cf RARP).
www.developpez.c.la

14

Ladressage Internet (suite)


hostid != 0, hostid spcifie l'adresse physique de la machine (si la
longueur le permet; c'est le cas pour T. R., ce n'est pas possible avec
Ethernet). permet de ne pas utiliser RARP (ne franchit pas les ponts) n'est
valide qu'au dmarrage du systme pour des stations ne connaissant pas
leur adresse IP.
Adresses de diffusion : la partie hostid ne contient que des 1
Adresse de diffusion limite : netid ne contient que des 1 : l'adresse
constitue concerne uniquement le rseau physique associ
L'adresse de diffusion dirige : netid est une adresse rseau
spcifique => la diffusion concerne toutes les machines situes sur le
rseau spcifi : 192.20.255.255 dsigne toutes les machines du
rseau 192.20.
En consquence, une adresse IP dont la valeur hostid ne comprend
que des 1 ne peut tre attribue une machine relle.





www.developpez.c.la

15

Ladressage Internet (suite)




Adresse de boucle locale : l'adresse rseau 127.0.0.0 est rserve


pour la dsignation de la machine locale, c'est dire la
communication intra-machine. Une adresse rseau 127 ne doit, en
consquence, jamais tre vhicule sur un rseau et un routeur ne
doit jamais router un datagramme pour le rseau 127.

www.developpez.c.la

16

Ladressage Internet (suite)




Rsum

16

24

dsigne la machine
courante

Tout zro
Tout zro

Host-id

127
www.developpez.c.la

machine Host-id
sur le rseau courant
diffusion limite sur
le rseau courant

Tout un
Net-id

31

Tout un
Nimporte quoi (souvent 1)

diffusion dirige sur


le rseau Net-id
boucle locale

17

Ladressage Internet (suite)


Adresses

et connexions

Une adresse IP => une interface physique => une connexion rseau.
S'applique particulirement aux routeurs qui possdent par dfinition
plusieurs connexions des rseaux diffrents
A une machine, est associ un certain nombre N d'adresses IP. Si N > 0
la machine (ou passerelle) est multi-domicilie.
193.49.60.41

193.49.60.43

193.49.60.1
192.100.1.2
192.100.1.1

La passerelle est multi-domicilie:


interface 1 : Ethernet 193.49.60.1
interface 2 : Token Ring 192.100.1.1
www.developpez.c.la

192.100.1.7
18

ARP: Address Resolution Protocol




Le besoin
 La communication entre machines ne peut s'effectuer qu' travers
l'interface physique
 Les applicatifs ne connaissant que des adresses IP, comment tablir le lien
adresse IP / adresse physique?
La solution : ARP
 Mise en place dans TCP/IP dun protocole de bas niveau appel Adress
Resolution Protocol (ARP)
 Rle de ARP : fournir une machine donne l'adresse physique d'une
autre machine situe sur le mme rseau partir de l'adresse IP de la
machine destinatrice
LA technique :
 Diffusion d'adresse sur le rseau physique
 La machine d'adresse IP met un message contenant son adresse physique
 Les machines non concernes ne rpondent pas
 Gestion cache pour ne pas effectuer de requte ARP chaque mission
www.developpez.c.la

19

ARP: Address Resolution Protocol




L'association adresse physique - adresse IP de l'metteur est incluse


dans la requte ARP de manire ce que les rcepteurs enregistrent
l'association dans leur propre mmoire cache

A


Pour connatre l'adresse physique de B, PB, partir de son adresse IP


IB, la machine A diffuse une requte ARP qui contient l'adresse IB
vers toutes les machines; la machine B rpond avec un message ARP
qui contient la paire (IB, PB).

www.developpez.c.la

20

ARP: Address Resolution Protocol




Format du message ARP

La requte ARP est vhicule dans un message


protocolaire lui-mme encapsul dans la trame de liaison
de donnes.
Lorsque la trame arrive destination, la couche liaison de
donnes dtermine l'entit responsable du message
encapsul; Ex: champ type de la trame Ethernet: 0806
pour ARP
La structure du message ARP/RARP gre une association
adresse de protocole / adresse physique
indpendamment de l'interface physique et du protocole
utilis :

www.developpez.c.la

21

ARP: Address Resolution Protocol


0

Type de matriel
LGR-MAT

16

24

31

Type de protocole

Opration
LGR-PROT
Adresse matriel metteur (octets 0-3)

Adresse Mat metteur (octets 4,5)

Adresse IP metteur (octets 0,1)

Adresse IP metteur (octets 4,5)

Adresse Mat cible (octets 0,1)

Adresse Matriel cible (octets 2,5)


Adresse IP cible (octets 0-3)

Autre technique : proxy Arp


www.developpez.c.la

22

RARP: ReverseAddress Resolution Protocol




Le besoin
 L'adresse IP d'une machine est configurable (elle dpend du rseau sur
lequel elle se trouve) et est souvent enregistre sur la mmoire secondaire
o le systme d'exploitation l'accde au dmarrage.
 Ce fonctionnement usuel n'est plus possible ds lors que la machine est une
station sans mmoire secondaire.
Problme : dterminer un mcanisme permettant la station d'obtenir
son adresse IP depuis le rseau.
La solution
 Protocole de bas niveau appel Reverse Adress Resolution Protocol
 Permet d'obtenir son adresse IP partir de l'adresse physique qui lui est
associe.
Fonctionnement
Serveur RARP sur le rseau physique; son rle: fournir les adresses
IP associes aux adresses physiques des stations du rseau;
www.developpez.c.la

23

RARP: ReverseAddress Resolution Protocol




Le serveur possde une base de donnes contenant les couples


adresse physique/adresse IP,
les stations mettent une requte RARP sur le rseau, consistant
demander l'adresse IP qui est associe leur adresse physique,
Les requtes RARP sont propages vers le ou les serveur(s) RARP
par mcanisme de diffusion. Le(s) serveur(s) RARP rponde(nt) par un
message de type RARP.

Pour conatre son adresse IP, A diffuse sur le rseau, une requte RARP
qui la dsigne comme destinataire
Les Serveurs RARP (B et C) rpondent la requte.
www.developpez.c.la

24

IP : Internet Protocol


Le protocole Internet (Internet Protocol ou IP) :


 ralise les fonctionnalits de la couche rseau selon le modle OSI
 se situe au coeur de l'architecture TCP/IP qui met en oeuvre un mode de
transport fiable (TCP) sur un service rseau en mode non connect :

Services Applicatifs
Service de transport fiable
Service rseau en mode connect


Le service offert par le protocole IP est dit non fiable :


 remise de paquets non garantie,
 sans connexion (paquets traits indpendamment les uns des autres),
 pour le mieux (best effort, les paquets ne sont pas limins sans raison).
www.developpez.c.la

25

IP : Internet Protocol (suite)


 Le

protocole IP dfinit :

l'unit de donne transfre dans les


interconnexions (datagramme),
 la fonction de routage,
 les rgles qui mettent en oeuvre la remise de
paquets en mode non connect


www.developpez.c.la

26

IP : Internet Protocol (le datagramme)


Le datagramme IP
L'unit de transfert de base dans un rseau internet est le datagramme
qui est constitue d'un en-tte et d'un champ de donnes:


16

19

VERS HLEN Type de service


Identification
Dure de vie

31

Longueur totale
Flags

Protocole

24

Offset fragment

Somme de contrle Header

Adresse IP Source
Adresse IP Destination

Options IP (eventuellement)

Padding

Donnes

...
www.developpez.c.la

27

IP : Internet Protocol (le datagramme)


Signification des champs du datagramme IP :
 VERS : numro de version de protocole IP, actuellement version 4,
 HLEN : longueur de l'en-tte en mots de 32 bits, gnralement gal 5
(pas d'option),
 Longueur totale : longueur totale du datagramme (en-tte + donnes)
 Type de service : indique comment le datagramme doit tre gr :
Prcdence D T R


Inutilis

PRECEDENCE (3 bits) : dfinit la priorit du datagramme; en gnral


ignor par les machines et passerelles (pb de congestion).
Bits D, T, R : indiquent le type d'acheminement dsir du datagramme,
permettant une passerelle de choisir entre plusieurs routes (si elles
existent) : D signifie dlai court, T signifie dbit lev et R signifie grande
fiabilit.

www.developpez.c.la

28

IP : Internet Protocol (le datagramme)




FRAGMENT OFFSET, FLAGS, IDENTIFICATION : les champs de la


fragmentation.
 Sur toute machine ou passerelle mettant en oeuvre TCP/IP une unit
maximale de transfert (Maximum Transfert Unit ou MTU) dfinit la taille
maximale d'un datagramme vhicul sur le rseau physique correspondant
 lorsque le datagramme est rout vers un rseau physique dont le MTU est
plus petit que le MTU courant, la passerelle fragmente le datagramme en
un certain nombre de fragments, vhiculs par autant de trames sur le
rseau physique correspondant,
 lorsque le datagramme est rout vers un rseau physique dont le MTU est
suprieur au MTU courant, la passerelle route les fragments tels quels
(rappel : les datagrammes peuvent emprunter des chemins diffrents),
 le destinataire final reconstitue le datagramme initial partir de
l'ensemble des fragments reus; la taille de ces fragments correspond au
plus petit MTU emprunt sur le rseau. Si un seul des fragments est perdu,
le datagramme initial est considr comme perdu : la probabilit de perte
d'un datagramme augmente avec la fragmentation.
www.developpez.c.la

29

IP : Internet Protocol (le datagramme)




FRAGMENT OFFSET : indique le dplacement des donnes


contenues dans le fragment par rapport au datagramme initial. C'est
un multiple de 8 octets; la taille du fragment est donc galement un
multiple de 8 octets.

chaque fragment a une structure identique celle du datagramme


initial, seul les champs FLAGS et FRAGMENT OFFSET sont
spcifiques.

www.developpez.c.la

30

IP : Internet Protocol (le datagramme)


Rseau 1
MTU=1500

P1

Donnes 1400 octets

En-tte datagramme

EF1 et EF2 ont le bit More (M)


positionn.
Le dplacement (depl) est
relatif au datagramme initial.

www.developpez.c.la

Rseau 2
MTU=620

P2

Rseau 3
MTU=1500

EF1 600 octets

EF1 600 octets

EF2 600 octets

EF2 600 octets

EF3 200 oct.

EF3 200 oct.

En-tte fragments: M=0; depl=1200


En-tte fragments: M=1; depl=600
En-tte fragments: M=1; depl=00
31

IP : Internet Protocol (le datagramme)







Longueur totale : taille du fragment et non pas celle du datagramme


initial, partir du dernier fragment (TOTAL LENGTH, FRAGMENT
OFFSET et FLAGS) on peut dterminer la taille du datagramme initial.
IDENTIFICATION : entier qui identifie le datagramme initial (utilis
pour la reconstitution partir des fragments qui ont tous la mme
valeur).
FLAGS contient un bit appel "do not fragment" (01X)
un autre bit appel "More fragments" (FLAGS = 001 signifie d'autres
fragments suivre) permet au destinataire final de reconstituer le
datagramme initial en identifiant les diffrents fragments (milieu ou fin
du datagramme initial)
les passerelles doivent accepter des datagrammes dont la taille
maximale correspond celle du MTU le plus grand, des rseaux
auxquels elle est connecte.
les passerelles doivent accepter sans les fragmenter, les
datagrammes de longueur 576 octets.
www.developpez.c.la

32

IP : Internet Protocol (le datagramme)




Dure de vie
 Ce champ indique en secondes, la dure maximale de transit du
datagramme sur l'internet. La machine qui met le datagramme dfinit sa
dure de vie.
 Les passerelles qui traitent le datagramme doivent dcrmenter sa dure
de vie du nombre de secondes (1 au minimum) que le datagramme a pass
pendant son sjour dans la passerelle; lorsque celle-ci expire le
datagramme est dtruit et un message d'erreur est renvoy l'metteur.
Protocole
Ce champ identifie le protocole de niveau suprieur dont le message
est vhicul dans le champ donnes du datagramme :




6 : TCP,
17 : UDP,
1 : ICMP.
www.developpez.c.la

33

IP : Internet Protocol (le datagramme)




Somme de contrle de len-tte


 Ce champ permet de dtecter les erreurs survenant dans l'en-tte du
datagramme, et par consquent l'intgrit du datagramme.
 Le total de contrle d'IP porte sur l'en-tte du datagramme et non sur les
donnes vhicules. Lors du calcul, le champ HEADER CHECKSUM est
suppos contenir la valeur 0 :

xxxx xxxx xxxx xxxx
(VERS, HLEN, TYPE OF SERVICE)

xxxx xxxx xxxx xxxx
(TOTAL LENGTH)

xxxx xxxx xxxx xxxx
(ID. FLAGS, FRAGMENT OFFSET)

xxxx xxxx xxxx xxxx
(TIME TO LIVE, PROTOCOL)

0000 0000 0000 0000
(HEADER CHECKSUM)

xxxx xxxx xxxx xxxx
(IP SOURCE )

xxxx xxxx xxxx xxxx
(IP SOURCE)

xxxx xxxx xxxx xxxx
(IP DESTINATION)

xxxx xxxx xxxx xxxx
(IP DESTINATION)

...
(OPTIONS ventuelles + PADDING
www.developpez.c.la

34

IP : Internet Protocol (le datagramme)




OPTIONS
 Le champ OPTIONS est facultatif et de longueur variable. Les options
concernent essentiellement des fonctionnalits de mise au point. Une option
est dfinie par un champ octet :

0 1 2 3
C

classe
doption

Numro doption

copie (C) indique que l'option doit tre recopie dans tous les fragments
(c=1) ou bien uniquement dans le premier fragment (c=0).
les bits classe d'option et numro d'option indiquent le type de l'option et
une option particulire de ce type :

www.developpez.c.la

35

IP : Internet Protocol (le datagramme)




Enregistrement de route (classe = 0, option = 7) : permet la source de


crer une liste d'adresse IP vide et de demander chaque passerelle
d'ajouter son adresse dans la liste.

code

Longueur pointeur

Adresse IP
Adresse IP
...

www.developpez.c.la

36

IP : Internet Protocol (le datagramme)




Routage strict prdfini par l'metteur (classe = 0, option = 9): prdfinit


le routage qui doit tre utilis dans l'interconnexion en indiquant la suite
des adresses IP dans l'option :
code

Longueur pointeur

Adresse du premier saut


Adresse du second saut

...
Le chemin spcifi ne tolre aucun autre intermdiaire; une erreur est
retourne l'metteur si une passerelle ne peut appliquer le routage
spcifi.
 Les passerelles enregistrent successivement leur adresse
l'emplacement indiqu par le champ pointeur.


www.developpez.c.la

37

IP : Internet Protocol (le datagramme)




Routage lche prdfini par l'metteur (classe = 0, option = 3): Cette


option autorise, entre deux passages obligs, le transit par d'autres
intermdiaires :
code

Longueur pointeur

Adresse du premier passage oblig


Adresse du second passage oblig

...

www.developpez.c.la

38

IP : Internet Protocol (le datagramme)


Horodatage (classe = 2, option = 4) : cette option permet d'obtenir les
temps de passage (timestamp) des datagrammes dans les passerelles.
Exprim en heure et date universelle.

code

Longueur pointeur dep. flags


Premire adresse IP
Premier horodatage

...


Une liste de couples (adresse IP - horodatage) est rserve par l'metteur;


les passerelles ont charge de remplir un champ lors du passage du
datagramme.

www.developpez.c.la

39

IP : Internet Protocol (le datagramme)




Le champ dpassement de capacit (dep.) comptabilise les passerelles qui


n'ont pu fournir les informations requises ( liste initiale tait trop petite).

Le champ FLAGS indique si les passerelles doivent renseigner uniquement


l'horodatage (FLAGS = 0), ou bien l'horodatage et l'adresse IP
(FLAGS=1). Si les adresses IP sont prdfinies par l'metteur (FLAGS=3),
les passerelles n'indiquent l'horodatage que si l'adresse IP pointe par le
champ pointeur est identique leur adresse IP.

Les horodatages, bien qu'exprims en temps universel, ne constituent


qu'une estimation sur le temps de passage car les horloges des machines
situes sur les rseaux ne sont pas synchronises.

www.developpez.c.la

40

Routage des datagrammes




Le routage est le processus permettant un datagramme dtre


achemin vers le destinataire lorsque celui-ci nest pas sur le mme
rseau physique que lmetteur.
Le chemin parcouru est le rsultat du processus de routage qui
effectue les choix ncessaires afin dacheminer le datagramme.
Les routeurs forment une structure cooprative de telle manire quun
datagramme transite de passerelle en passerelle jusqu ce que lune
dentre elles le dlivre son destinataire. Un routeur possde deux ou
plusieurs connexions rseaux tandis quune machine possde
gnralement quune seule connexion.
Machines et routeurs participent au routage :
 les machines doivent dterminer si le datagramme doit tre dlivr sur le
rseau physique sur lequel elles sont connectes (routage direct) ou bien si
le datagramme doit tre achemin vers une passerelle; dans ce cas (routage
indirect), elle doit identifier la passerelle approprie.
 les passerelles effectuent le choix de routage vers dautres passerelles afin
dacheminer le datagramme vers sa destination finale.
www.developpez.c.la

41

Routage des datagrammes (suite)


P1

P2

M
M est mono-domicilie et doit acheminer les datagrammes vers une des
passerelles P1 ou P2; elle effectue donc le premier routage. Dans cette
situation, aucune solution noffre un meilleur choix.

Le routage indirect repose sur une table de routage IP, prsente sur toute
machine et passerelle, indiquant la manire datteindre un ensemble de
destinations.
www.developpez.c.la

42

Routage des datagrammes (suite)




Les tables de routage IP, pour des raisons videntes dencombrement,


renseignent seulement les adresses rseaux et non pas les adresses
machines.

Typiquement, une table de routage contient des couples (R, P) o R


est ladresse IP dun rseau destination et P est ladresse IP de la
passerelle correspondant au prochain saut dans le cheminement vers
le rseau destinataire.

La passerelle ne connat pas le chemin complet pour atteindre la


destination.

Pour une table de routage contenant des couples (R, P) et appartenant


la machine M, P et M sont connects sur le mme rseau physique
dont ladresse de niveau rseau (partie Netid de ladresse IP) est R.
www.developpez.c.la

43

Routage des datagrammes (suite)


20.0.0.1

Reseau
10.0.0.0

10.0.0.1

30.0.0.5

Reseau
20.0.0.0

Reseau
30.0.0.0

20.0.0.2

40.0.0.1

Reseau
40.0.0.0

30.0.0.1

Pour atteindre les


machines du rseau

10.0.0.0

20.0.0.0

30.0.0.0

40.0.0.0

Router vers

20.0.0.1

direct

direct

30.0.0.1

Table de routage de G
www.developpez.c.la

44

Routage des datagrammes (suite)


Route_Datagramme_IP(datagramme, table_de_routage)
 Extraire ladresse IP destination, ID, du datagramme,
 Calculer ladresse du rseau destination, IN.
 Si IN correspondant une adresse de rseau directement accessible,
envoyer le datagramme vers sa destination, sur ce rseau.
 sinon si dans la tablede routage, il existe une route vers ID
router le datagramme selon les informations contenues dans la table de
routage.
 sinon si IN apparat dans la table de routage,
router le datagramme selon les informations contenues dans la table de
routage.
 sinon sil existe une route par dfaut
router le datagramme vers la passerelle par dfaut.
 sinon dclarer une erreur de routage.
www.developpez.c.la

45

Routage des datagrammes (suite)




Aprs excution de lalgorithme de routage, IP transmet le


datagramme ainsi que ladresse IP determine, linterface rseau
vers lequel le datagramme doit tre achemin.

Linterface physique dtermine alors ladresse physique associe


ladresse IP et achemine le datagramme sans lavoir modifi (ladresse
IP du prochain saut nest sauvegarde nulle part).

Si le datagramme est achemin vers une autre passerelle, il est


nouveau gr de la mme manire, et ainsi de suite jusqu sa
destination finale.

www.developpez.c.la

46

Routage des datagrammes (suite)




Les datagrammes entrants sont traits diffremment selon quil sont


reus par une machine ou une passerelle :

machine : le logiciel IP examine ladresse destination lintrieur du


datagramme


si cette adresse IP est identique celle de la machine, IP accepte le


datagramme et transmet son contenu la couche suprieure.
sinon, le datagramme est rejet; une machine recevant un datagramme
destin une autre machine ne doit pas router le datagramme.

passerelle : IP dtermine si le datagramme est arriv destination et


dans ce cas le dlivre la couche suprieure. Si le datagramme na
pas atteint sa destination finale, il est rout selon lalgorithme de
routage prcdemment dcrit.
www.developpez.c.la

47

Le sous-adressage



Le sous-adressage est une extension du plan dadressage initial


Devant la croissance du nombre de rseaux de lInternet, il a t
introduit afin de limiter la consommation dadresses IP qui permet
galement de diminuer :

la gestion administrative des adresses IP,

la taille des tables de routage des passerelles,

la taille des informations de routage,

le traitement effectu au niveau des passerelles.
Principes
 A lintrieur dune entit associe une adresse IP de classe A, B ou C,
plusieurs rseaux physiques partagent cette adresse IP.
 On dit alors que ces rseaux physiques sont des sous-rseaux (subnet) du
rseau dadresse IP.
www.developpez.c.la

48

Le sous-adressage (suite)
Les sous-rseaux 128.10.1.0 et 128.10.2.0 sont nots seulement avec le NetId,
les machines seulement avec le Hostid ; exemple IP(F) = 128.10.2.9
128.10.1
.1

Internet

.2

.3

.4

.1
128.10.2
128.10.0.0

.6

.2

.9

Un site avec deux rseaux physiques utilisant le sous-adressage de manire ce que ses
deux sous-rseaux soient couverts par une seule adresse IP de classe B.
La passerelle P accepte tout le trafic destin au rseau 128.10.0.0 et slectionne le sousrseau en fonction du troisime octet de ladresse destination.
www.developpez.c.la

49

Le sous-adressage (suite)



Le site utilise une seule adresse pour les deux rseaux physiques.
A lexception de P, toute passerelle de linternet route comme sil
nexistait quun seul rseau.
La passerelle doit router vers lun ou lautre des sous-rseaux ; le
dcoupage du site en sous-rseaux a t effectu sur la base du
troisime octet de ladresse :
 les adresses des machines du premier sous-rseau sont de la forme
128.10.1.X,
 les adresses des machines du second sous-rseau sont de la forme
128.10.2.X.
Pour slectionner lun ou lautre des sous-rseaux, P examine le
troisime octet de ladresse destination : si la valeur est 1, le
datagramme est rout vers rseau 128.10.1.0, si la valeur est 2, il est
rout vers le rseau 128.10.2.0.

www.developpez.c.la

50

Le sous-adressage (suite)






Conceptuellement, la partie locale dans le plan dadressage initial est


subdivise en partie rseau physique + identification de machine
(hostid) sur ce sous-rseau :
Partie Internet

Partie locale

Partie Internet

Rseau physique Identifieur Machine

Partie Internet correspond au NetId (plan dadressage initial)


Partie locale correspond au hostid (plan dadressage initial)
les champs Rseau physique et identifieur Machine sont de taille
variable; la longueur des 2 champs tant toujours gale la longueur
de la Partie locale.

www.developpez.c.la

51

Le sous-adressage (suite)
Structure du sous-adressage
 Structuration souple : chaque site peut dfinir lui-mme les longueurs
des champs rseau physique et identificateur de machine.
 Flexibilit indispensable pour adapter la configuration rseau dun
site:

P1
Rseau 4

P4

Rseau 1

P2
Rseau 5

P3

P5
Rseau 2

Rseau 3

Ce site a cinq rseaux physiques organiss en trois niveau : le dcoupage rudimentaire


en rseau physique et adresse machine peut ne pas tre optimal.
www.developpez.c.la

52

Le sous-adressage (suite)


Le choix du dcoupage dpend des perspectives dvolution du site:




Exemple Classe B : 8 bits pour les parties rseau et machine donnent un


potentiel de 256 sous-rseaux et 254 machines par sous-rseau, tandis que
3 bits pour la partie rseau et 13 bits pour le champ machine permettent 8
rseaux de 8190 machines chacun.
Exemple Classe C : 4 bits pour la partie rseau et 4 bits pour le champ
machine permettent 16 rseaux de 14 machines chacun.

Lorsque le sous-adressage est ainsi dfini, toutes les machines du


rseau doivent sy conformer sous peine de dysfonctionnement du
routage ==> configuration rigoureuse.

www.developpez.c.la

53

Le sous-adressage (suite)




Utilisation de masques
Le sous-adressage ==> masque de 32 bits associ au sous-rseau.
Bits du masque de sous-rseau (subnet mask) :
 positionns 1 : partie rseau,
 positionns 0 : partie machine
11111111 11111111 11111111 00000000
==> 3 octets pour le champ rseau, 1 octet pour le champ machine
Les bits du masque identifiant sous-rseau et machine peuvent ne pas
tre contigus : 11111111 11111111 00011000 01000000
Les notations suivantes sont utilises :
 dcimale pointe; exemple : 255.255.255.0
 triplet : { <ident. rseau>, <ident. sous-rseau> <ident. machine> } ; cette
notation renseigne les valeurs mais pas les champs de bits;
exemple { -1, -1, 0 } , { 128.10, 27, -1 }.
 adresse rseau/masque : 193.49.60.0/27 (27=# bits contigs du masque)
www.developpez.c.la

54

Le sous-adressage (suite)
Routage avec sous-rseaux
 Le routage IP initial a t tendu ladressage en sous-rseaux;
 lalgorithme de routage obtenu doit tre prsent dans les machines
ayant une adresse de sous-rseau, mais galement dans les autres
machines et passerelles du site qui doivent acheminer les
datagrammes vers ces sous-rseaux.
Rseau 1 (adr IP = N)

P2
Rseau 2 (ss-rseau de N)

P2
Rseau 3 (ss-rseau de N)

M doit utiliser le routage de sous-rseaux pour dcider si elle route vers les
passerelles P1 ou P2 bien quelle mme soit connecte un rseau (Rseau 1)
nayant pas de sous-adressage
www.developpez.c.la

55

Le sous-adressage (suite)
Le routage unifi : Une entre dans la table de routage =
(masque de sous-rseau, adresse sous-rseau, adresse de la passerelle)
Algorithme de routage unifi :
 Route_IP_Datagram(datagram, routing_table)
 Extraire ladresse ID de destination du datagramme,
 Calculer ladresse IN du rseau destination,
 Si IN correspond une adresse rseau directement accessible
envoyer le datagramme sur le rseau physique correspondant,
 Sinon

Pour chaque entre dans la table de routage,

N = (ID & masque de sous-rseau de lentre)

Si N est gal au champ adresse rseau de lentre
router le datagramme vers la passerelle correspondante,

Fin_Pour
 Si aucune entre ne correspond, dclarer une erreur de routage.
www.developpez.c.la

56

Le sous-adressage (suite)


Diffusion sur les sous-rseaux

Elle est plus complexe que dans le plan dadressage initial.

Dans le plan dadressage Internet initial, Hostid = 11..1, ==> diffusion


vers toutes les machines du rseau.

D'un point de vue extrieur un site dot de sous-rseaux, la


diffusion na de sens que si la passerelle qui connat les sous-rseaux
propage la diffusion tous ses rseaux physiques : { rseau, -1, -1 }.

Depuis un ensemble de sous-rseau, il est possible dmettre une


diffusion sur un sous-rseau particulier : { rseau, sous-rseau, -1 }.

www.developpez.c.la

57

Le sous-adressage variable (VLSM)




RFC 1009 : un rseau IP peut possder plusieurs masques diffrents;


==> rseau de type VLSM (Variable Length Subnet Masks)
Evite la rigidit du masque fixe qui impose :
 le nombre de sous-rseaux
 le nombre de machines par sous-rseau
 Exemple : 130.5.0.0/22 ==> 64 sous-reseaux et 1022 machines / sous-rseau
 inadapt pour des petits sous-rseaux de quelques machines; exemple
30 machines sur un sous-rseau ==> 992 adresses IP perdues
Permet ladaptation de ladressage IP a la taille des sous-rseaux
 Exemple prcdent : cohabitation de grands et petits sous-rseaux
 130.5.0.0/22 (64 sous-reseaux et 1022 machines / sous-rseau)
 130.5.0.0/26 (1024 sous-rseaux de 62 machines / sous-rseau)

www.developpez.c.la

58

VLSM : agregation de routes





Division dun espace IP en sous-rseaux successifs


Permet de masquer les informations de routage entre groupes de
sous-reseaux
11.0.0.0/8
11.1.0.0/16

11.1.1.0/24

...

11.1.254.0/24

...

11.254.0.0/16

11.254.32.0/19 . . .

11.254.192.0/19

11.1.253.32/27
11.1.253.64/27
...
11.1.253.192/27
www.developpez.c.la

Autre technique : CIDR


59

Le Protocole ICMP
Le besoin
 Le protocole ICMP (Internet Control Message Protocol) permet
denvoyer des messages de contrle ou derreur vers dautres
machines ou passerelles.
 ICMP rapporte les messages derreur lmetteur initial.
 Beaucoup derreurs sont causes par lmetteur, mais dautres sont
des des problmes dinterconnexions rencontres sur lInternet :
 machine destination dconnecte,
 dure de vie du datagramme expire,
 congestion de passerelles intermdiaires.
 Si une passerelle dtecte un problme sur un datagramme IP, elle le
dtruit et met un message ICMP pour informer lmetteur initial.
 Les messages ICMP sont vhiculs lintrieur de datagrammes IP
et sont routs comme nimporte quel datagramme IP sur linternet.
 Une erreur engendre par un message ICMP ne peut donner
naissance un autre message ICMP (vite leffet cummulatif).
www.developpez.c.la

60

ICMP : format des messages


TYPE
CODE
CHECKSUM
HEAD-DATA

TYPE
0
3
4
5
8
11
12

8 bits; type de message


8 bits; informations complmentaires
16 bits; champ de contrle
en-tte datagramme + 64 premiers bits des
donnes.

Message ICMP
Echo Reply
Destination Unreachable
Source Quench
Redirect (change a route)
Echo Request
Time Exceeded (TTL)
Parameter Problem with a
Datagram

www.developpez.c.la

TYPE
13
14
15
16
17
18

Message ICMP
Timestamp Request
Timestamp Reply
Information Request
(obsolete)
Information Reply
(obsolte)
Address Mask Reques
Address Mask Reply
61

ICMP : format des commandes


0

8
16
31
TYPE CODE
CHECKSUM
Identifieur

Seq. number

Donnes spcifiques . . .

IDENTIFIER et SEQUENCE NUMBER sont utiliss par lmetteur pour


contrler les rponses aux requtes, (CODE = 0).
Demande dcho et rponse Request, Echo Reply) dcho (Echo

Permettent une machine ou passerelle de dterminer la validit dun


chemin sur le rseau.
Le champ de donnes spcifiques est compos de donnes optionnelles de
longueur variable mises par la requte d'cho et devant tre renvoyes
par le destinataire si prsentes.

Utilis par les outils applicatifs tels ping et traceroute.

www.developpez.c.la

62

ICMP : les commandes


Synchronisation des Horloges et temps de transit


Les horloges de deux machines qui diffrent de manire importante


peuvent poser des problmes pour des logiciels distribus.

Une machine peut mettre une demande dhorodatage (timestamp


request) une autre machine susceptible de lui rpondre (timestamp
reply) en donnant lheure darrive de la demande et lheure de dpart
de la rponse.

Lmetteur peut alors estimer le temps de transit ainsi que la


diffrence entre les horloges locale et distante.

Le champ de donnes spcifiques comprend lheure originale


(originate timestamp) mis par le demandeur, lheure de rception
(receive timestamp) du destinataire, et lheure de dpart (transmit
timestamp) de la rponse.
www.developpez.c.la

63

ICMP : les commandes


Demande et rponse dinformation (Information Request + Reply)


Ces messages taient initialement utiliss pour permettre aux


machines de connatre leur adresse IP au dmarrage du systme.
Ces commandes sont aujourdhui remplaces par les protocoles
RARP et BOOTP.
Obtention de masque de sous-rseau

Une machine peut mettre une demande de masque de sous-rseau


(Subnet Mask Request) vers une passerelle grant le sous-rseau en
question.
La passerelle transmet par une Subnet Mask Reply, ladresse de
masque de sous-rseau (de longueur 32 bits) dans le champ de
donne spcifique.
www.developpez.c.la

64

ICMP : les messages derreur


0

8
16
31
TYPE CODE
CHECKSUM
SPECIFIQUE

Format des messages


derreur ICMP

IP Header + First 64 bits

CODE indique le codage de lerreur rapporte et est spcifique


chaque type derreur,

SPECIFIQUE est un champ de donnes spcifique au type derreur,

IP HEADER + FIRST 64 bits contient len-tte IP + les premiers 64 bits


de donnes du datagramme pour lequel le message est mis.

Compte rendu de destination inaccessible


www.developpez.c.la

65

ICMP : les messages derreur




Lorsquune passerelle met un message ICMP de type destination


inaccessible, le champ code dcrit la nature de lerreur :
 0
Network Unreachable
 1
Host Unreachable
 2
Protocol Unreachable
 3
Port Unreachable
 4
Fragmentation Needed and DF set
 5
Source Route Failed
 6
Destination Network Unknown
 7
Destination Host Unknown
 8
Source Host Isolated
 9
Communication with desination network administratively prohibited
 10
Communication with desination host administratively prohibited
 11
Network Unreachable for type of Service
 12
Host Unreachable for type of Service
www.developpez.c.la

66

ICMP : contrle de congestion




Le protocole IP tant un protocole en mode non connect :


 => les passerelles ne peuvent rserver lavance la quantit de mmoire
ncessaire au routage des datagrammes.
 => des datagrammes sont alors dtruits.
Cette situation de congestion se produit :
 lorsquune passerelle est connecte deux rseaux aux dbits diffrents
(elle ne peut couler au rythme impos par le rseau le plus rapide),
 lorsque de nombreuses machines mettent simultanment des
datagrammes vers une passerelle.
Pour palier ce problme, la machine peut mettre un message ICMP
de limitation de dbit de la source (Source Quench) vers lmetteur.
Il nexiste pas de message dannulation de limitation de dbit. La
source diminue le dbit, puis laugmente progressivement tant quelle
ne reoit pas de nouvelle demande de limitation.

www.developpez.c.la

67

ICMP : modification de route


Un message ICMP de redirection de route peut tre transmis par une
passerelle vers une machine relie au mme rseau pour lui signaler
que la route nest pas optimale.

B
Internet

R1

R2
2me routage

Route par dfaut

Redirection ICMP

Une fois la redirection effectue, les datagrammes seront achemins


vers la passerelle approprie.
www.developpez.c.la

68

ICMP : modification de route




Dans le bloc de commande, le champ SPECIFIQUE indique ladresse


de la passerelle que la machine doit utiliser pour router le
datagramme; CODE spcifie la redirection :
CODE
SIGNIFICATION
0
Redirect datagrams for the Network
1
Redirect datagrams for the Host
2
Redirect datagrams for the Type of Service and Network
3
Redirect datagrams for the Type of Service and Host
Detection de routes circulaires ou excessivement longues
Une passerelle dtruit les datagrammes dont le champ dure de vie
est zro et met un message ICMP de dlai dpass.
CODE
SIGNIFICATION
0
time to live exceeded in transit
1
fragment reassembly time exceeded
www.developpez.c.la

69

ICMP : autres compte-rendus




Lorsquune passerelle ou une machine dtecte un problme avec un


datagramme (en-tte incorrecte) non couvert par les messages ICMP
prdfinis, elle met un message Parameter Problem on a Datagram
vers lmetteur du datagramme.
Le problme rencontr consiste soit en une option manquante (dans
le datagramme), soit en une donne errone.
Dans le bloc de commande, le champ CODE indique la nature du pb:
CODE
0
1

SIGNIFICATION
erreonous data
missing option

Le champ spcifique comprend un pointeur (cod sur les 8 premiers


bits, les 24 restants tant 0) servant identifier loctet erron dans
le datagramme; il est non significatif lorsque CODE = 1.
www.developpez.c.la

70

UDP : User Datagram Protocol




UDP : protocole de transport sans connexion de service applicatif :


 mission de messages applicatifs : sans tablissement de connexion au
pralable
 l'arrive des messages ainsi que lordonnancement ne sont pas garantis.
Identification du service : les ports
 les adresses IP dsignent les machines entre lesquelles les communications
sont tablies. Lorsqu'un processus dsire entrer en communication avec un
autre processus, il doit adresser le processus s'excutant cette machine.
 L'adressage de ce processus est effectu selon un concept abstrait
indpendant du systme d'exploitation des machines car :
 les processus sont crs et dtruits dynamiquement sur les machines,
 il faut pouvoir remplacer un processus par un autre (exemple reboot)
sans que l'application distante ne s'en aperoive,
 il faut identifier les destinations selon les services offerts, sans connatre
les processus qui les mettent en oeuvre,
 un processus doit pouvoir assurer plusieurs services.
www.developpez.c.la

71

UDP : les ports




Ces destinations abstraites permettant d'adresser un service applicatif


s'appellent des ports de protocole.
L'mission d'un message se fait sur la base d'un port source et un
port destinataire.
Les processus disposent d'une interface systme leur permettant de
spcifier un port ou d'y accder (socket, TLI, ...).
Les accs aux ports sont gnralement synchrones, les oprations
sur les ports sont tamponns (files d'attente).

www.developpez.c.la

72

UDP : format des messages


Les messages UDP sont galement appels des datagrammes UDP.
Ils contiennent deux parties : un en-tte UDP et les donnes UDP.
0
Port UDP
source

16
31
Port UDP dest.

Longueur message UDP

Checksum UDP

Format des messages UDP

Donnes ...
Les ports source et destination contiennent les numros de port utiliss
par UDP pour dmultiplexer les datagrammes destins aux processus en
attente de les recevoir. Le port source est facultatif (gal zro si non
utilis).
La longueur du message est exprime en octets (8 au minimum) (en-tte +
donnes), le champ de contrle est optionnel (0 si non utilis).
www.developpez.c.la

73

UDP : pseudo en-tte




Lorsqu'il est utilis, le champ de contrle couvre plus d'informations


que celles contenue dans le datagramme UDP; En effet, le checksum
est calcul avec un pseudo-en-tte non transmis dans le datagramme:
0

8
16
Adresse IP Source
Adresse IP Destination
zro

proto

31
Format du pseudo en-tte

Longueur UDP

Le champ PROTO indique l'identificateur de protocole pour IP (17= UDP)


Le champ LONGUEUR UPD spcifie la longueur du datagramme UPD
sans le pseudo-en-tte.

www.developpez.c.la

74

UDP : Multiplexage


UDP multiplexe et dmultiplexe les datagrammes en slectionnant les


numros de ports :


une application obtient un numro de port de la machine locale; ds lors


que l'application met un message via ce port, le champ PORT SOURCE
du datagramme UDP contient ce numro de port,
une application connat (ou obtient) un numro de port distant afin de
communiquer avec le service dsir.

Lorsque UDP reoit un datagramme, il vrifie que celui-ci est un des


ports actuellement actifs (associ une application) et le dlivre
l'application responsable (mise en queue)

si ce n'est pas le cas, il met un message ICMP port unreachable, et


dtruit le datagramme.
www.developpez.c.la

75

UDP : les ports standards




Certains ports sont rservs (well-kown port assignements) :


No port
Mot-cl
Description
7
ECHO
Echo
11
USERS
Active Users
13
DAYTIME
Daytime
37
TIME
Time
42
NAMESERVER Host Name Server
53
DOMAIN
Domain Name Server
67
BOOTPS
Boot protocol server
68
BOOTPC
Boot protocol client
69
TFTP
Trivial File transfert protocol
123
NTP
Network Time Protocol
161
SNMP
Simple Network Management prot.

D'autres numros de port (non rservs) peuvent tre assigns


dynamiquement aux applications.
www.developpez.c.la

76

TCP : Transmission Control Protocol




transport fiable de la technologie TCP/IP.


 fiabilit = illusion assure par le service
 transferts tampons : dcoupage en segments
 connexions bidirectionnelles et simultanes
service en mode connect
garantie de non perte de messages ainsi que de l'ordonnancement

www.developpez.c.la

77

TCP : La connexion


une connexion de type circuit virtuel est tablie avant que les donnes
ne soient changes : appel + ngociation + transferts

Une connexion = une paire d'extrmits de connexion


Une extrmit de connexion = couple (adresse IP, port)
Exemple de connexion : ((124.32.12.1, 1034), (19.24.67.2, 21))
Une extrmit de connexion peut tre partage par plusieurs autres
extrmits de connexions (multi-instanciation)
La mise en oeuvre de la connexion se fait en deux tapes :
 une application (extrmit) effectue une ouverture passive en indiquant
qu'elle accepte une connexion entrante,
 une autre application (extrmit) effectue une ouverture active pour
demander l'tablissement de la connexion.





www.developpez.c.la

78

TCP : Segmentation


Segmentation, contrle de flux


 Les donnes transmises TCP constituent un flot d'octets de longueur
variable.
 TCP divise ce flot de donnes en segments en utilisant un mcanisme de
fentrage.
 Un segment est mis dans un datagramme IP.

Acquittement de messages
 Contrairement UDP, TCP garantit l'arrive des messages, c'est dire
qu'en cas de perte, les deux extrmits sont prvenues.
 Ce concept repose sur les techniques dacquittement de message :
lorsqu'une source S met un message Mi vers une destination D, S attend
un acquittement Ai de D avant d'mettre le message suivant Mi+1.
 Si lacquittement Ai ne parvient pas S, S considre au bout d'un certain
temps que le message est perdu et remet Mi :
www.developpez.c.la

79

TCP : Acquittements
Source
Emission de Mi
Temporisation
arme

Rseau

Destination

Mi nest pas reu


Ai non envoy

Ai nest pas reu


Tempo. echue
Remission de Mi
Rception de Mi
Emission de Ai

Rception de Aj
www.developpez.c.la

80

TCP : le fentrage

La technique acquittement simple pnalise les performances puisqu'il


faut attendre un acquittement avant d'mettre un nouveau message.
Le fentrage amliore le rendement des rseaux.

La technique du fentrage : une fentre de taille T, permet l'mission


d'au plus T messages "non acquitts" avant de ne plus pouvoir
mettre :

www.developpez.c.la

81

TCP : le Fentrage
Source

Rseau

Emission de Mi
Emission de Mi+1

Destination

Rception de Mi
Emission de Ai

Emission de Mi+2
Reception de Ai

Fentrage de taille 3
www.developpez.c.la

82

TCP : Technique de fentrage





fentrage glissante permettant d'optimiser la bande passante


permet galement au destinatairede faire diminuer le dbit de
l'metteur donc de grer le contrle de flux.
Le mcanisme de fentrage mis en oeuvre dans TCP opre au niveau
de l'octet et non pas au niveau du segment; il repose sur :



la numrotation squentielle des octets de donnes,


la gestion de trois pointeurs par fentrage :

1 2 3 4 5 6 7 8 9 10 11 . . .
Octets mis et
acquitts
www.developpez.c.la

Octets mis et
non acquitts

Octets
missibles

Octets non missibles


tout de suite.
83

TCP : Segments


Segment : unit de transfert du protocole TCP.


 changs pour tablir les connexions,
 transfrer les donnes,
 mettre des acquittements,
 fermer les connexions;
0

10

16

Port source

24

31

Port destination

Numro de squence
Numro dacquittement
N * 32bits

HLEN rserv Codes

fentre

Checksum

pointeur urgence

Options ventuelles

padding

Donnes . . .
www.developpez.c.la

84

TCP : format du segment




Numro de squence : le numro de squence du premier octet (NSP)


de ce segment. Gnralement la suite doctets O1, O2, ..., On
(donnes du message) est associe la suite de numro de squence
NSP, NSP+1, ..., NSP+n.
Il existe deux exceptions cette rgle :
 lorsque le bit SYN (voir CODE BITS) est positionn, le NSP reprsente
cette donne de contrle et par consquent la suite NSP, NSP+1, NSP+2, ...,
NSP+n+1, associe la suite de donnes SYN, O1, O2, ..., On.
 lorsque le bit FIN (voir CODE BITS) est positionn, le NSP+n reprsente
cette donne de contrle et par consquent la suite NSP, NSP+1, NSP+2, ...,
NSP+n, associe la suite de donnes O1, O2, ..., On, FIN.
Numro dacquittement : le prochain numro de squence NS attendu
par lmetteur de cet acquittement. Acquitte implicitement les octets
NS-1, NS-2, etc.
Fentre: la quantit de donnes que lmetteur de ce segment est
capable de recevoir; ceci est mentionn dans chaque segment
(donnes ou acquittement).
www.developpez.c.la

85

TCP : Format du segment




CODE BITS : indique la nature du segment :


 URG : le pointeur de donnes urgentes est valide (exemple : interrupt en
remote login), les donnes sont mises sans dlai, les donnes reues sont
remises sans dlai.
 SYN : utilis linitialisation de la connexion pour indiquer o la
numrotation squentielle commence. Syn occupe lui-mme un numro de
squence bien que ne figurant pas dans le champ de donnes. Le Numro
de squence inscrit dans le datagramme (correspondant SYN) est alors
un Initial Sequence Number (ISN) produit par un gnrateur garantissant
lunicit de lISN sur le rseau (indispensable pour identifier les
duplications).
 FIN : utilis lors de la libration de la connexion;
 PSH : fonction push. Normalement, en mission, TCP reoit les donnes
depuis lapplicatif , les transforme en segments sa guise puis transfre les
segments sur le rseau; un rcepteur TCP dcodant le bit PSH, transmet
lapplication rceptrice, les donnes correspondantes sans attendre plus de
donnes de lmetteur. Exemple : mulation terminal, pour envoyer
chaque caractre entr au clavier (mode caractre asynchrone).
www.developpez.c.la

86

TCP : format du segment




RST : utilis par une extrmit pour indiquer lautre extrmit quelle
doit rinitialiser la connexion. Ceci est utilis lorsque les extrmits
sont dsynchronises. Exemple :
TCP source

Crash
Closed

TCP destination
Established

Syn-sent seq=400 CTL=SYN


??
Syn-sent seq=100 CTL=RST

??
seq=300 ack=100 CTL=SYN
abort

Syn-sent

close

Syn-sent seq=100 CTL=RST


www.developpez.c.la

87

TCP format du segment




CHECKSUM : calcul du champ de contrle : utilise un pseudo-en-tte


et s'applique la totalit du segment obtenu (PROTO =6) :
Adresse IP source
Adresse IP destination
zro protocole (6)

www.developpez.c.la

longueur TCP

88

TCP : format du header


OPTIONS


Permet de ngocier la taille maximale des segments changs. Cette


option n'est prsente que dans les segments d'initialisation de
connexion ( avec bit SYN).
TCP calcule une taille maximale de segment de manire ce que le
datagramme IP rsultant corresponde au MTU du rseau. La
recommandation est de 536 octets.
La taille optimale du segment correspond au cas o le datagramme IP
nest pas fragment mais :
 il nexiste pas de mcanisme pour connatre le MTU,
 le routage peut entraner des variations de MTU,
 la taille optimale dpend de la taille des en-ttes (options).

www.developpez.c.la

89

TCP : acquittements
Acquittements et retransmissions


Le mcanisme dacquittement de TCP est cumulatif :


 il indique le numro de squence du prochain octet attendu : tous les octets
prcdents cumuls sont implicitement acquitts
 Si un segment a un numro de squence suprieur au numro de squence
attendu (bien que dans la fentre), le segment est conserv mais
lacquittement rfrence toujours le numro de squence attendu(-->).
Pour tout segment mis, TCP sattend recevoir un acquittement
 Si le segment nest pasacquitt, le segment est considr comme perdu et
TCP le retransmet.
 Or un rseau dinterconnexion offre des temps de transit variables
ncessitant le rglage des temporisations;
 TCP gre des temporisations variables pour chaque connexion en utilisant
un algorithme de retransmission adaptative
www.developpez.c.la

90

Fentre=900

TCP : Acquittements

TCP source

Segment=300

TCP destination
Seq=3
Envoi de 300 octets
Seq=303
Ack=303
Envoi de 300 octets

Attente car
f = 900

Seq=603
Envoi de 300 octets

Attente de 303
Ack=303

Seq=303
Envoi de 300 octets
Seq=603
Envoi de 300 octets

www.developpez.c.la

Peut tre
conserv ==>
peut ne pas
tre rmis
car acquitt
Ack=903
entre temps
91

TCP : retransmissions
algorithme de retransmission adaptative
 enregistre la date dmission dun segment,
 enregistre la date de rception de lacquittement correspondant,
 calcule lchantillon de temps de boucle A/R coul,
 dtermine le temps de boucle moyen RTT (Round Trip Time) :
RTT = (a * anc_RTT) + ((1-a) * NOU_RTT))




avec 0<= a < 1


a proche de 1 : RTT insensible aux variations brves,
a proche de 0 : RTT trs sensible aux variations rapides,
calcule la valeur du temporisateur en fonction de RTT.
Les premires implmentations de TCP ont choisi un coefficient
constant B pour dterminer cette valeur : Temporisation = B * RTT
avec B >1 (gnralement B=2).
Aujourdhui de nouvelles techniques sont appliques pour affiner la
mesure du RTT : lalgorithme de Karn.
www.developpez.c.la

92

TCP : retransmissions
Lalgorithme de Karn repose sur les constatations suivantes :


en cas de retransmission dun segment, lmetteur ne peut savoir si


lacquittement sadresse au segment initial ou retransmis (ambigut
des acquittements), =>lchantillon RTT ne peut donc tre calcul
correctement,
=> TCP ne doit pas mettre jour le RTT pour les segments retransmis.
Lalgorithme de Karn combine les retransmissions avec
laugmentation des temporisations associes (timer backoff):
 une valeur initiale de temporisation est calcule
 si une retransmission est effectue, la temporisation est augmente
(gnralement le double de la prcdente, jusqu une valeur plafond).
Cet algorithme fonctionne bien mme avec des rseaux qui perdent
des paquets.
www.developpez.c.la

93

TCP : la congestion
Gestion de la congestion
 TCP gre le contrle de flux de bout en bout mais galement les
problmes de congestion lis linterconnexion.


La congestion correspond la saturation de noeud(s) dans le rseau


provoquant des dlais dacheminement de datagrammes jusqua leur
pertes ventuelles.

Les extrmit ignorent tout de la congestion sauf les dlais.


Habituellement, les protocoles retransmettent les segments ce qui
agrave encore le phnomne.

Dans la technologie TCP/IP, les passerelles (niveau IP) utilisent la


rduction du dbit de la source mais TCP participe galement la
gestion de la congestion en diminuant le dbit lorsque les dlais
sallongent :
www.developpez.c.la

94

TCP : la congestion



TCP maintient une fentre virtuelle de congestion


TCP applique la fentre dmission suivante:
 fentre_autorise = min (fentre_rcepteur, fentre_congestion).

Dans une situation de non congestion:


 fentre_rcepteur = fentre_congestion.

En cas de congestion, TCP applique une diminution dichotomique :


 chaque segment perdu, la fentre de congestion est diminue par 2
(minimum 1 segment)
 la temporisation de retransmission est augmente exponentiellement.

www.developpez.c.la

95

TCP retransmissions


Si la congestion disparat, TCP dfinit une fentre de congestion gale


1 segment et lincrmente de 1 chaque fois quun acquittement est
reu; ce mcanisme permet un dmarrage lent et progressif :
Fentre_congestion = 1,
mission du 1er segment,
attente acquittement,
rception acquittement,
Fentre_congestion = 2,
mission des 2 segments,
attente des acquittements,
rception des 2 acquittements,
Fentre_congestion = 4,

...
Log2 N itrations pour envoyer N segments. Lorsque la fentre atteint
une fois et demie sa taille initiale, lincrment est limit 1 pour tous
les segments acquitts de la fentre.
mission des 4 segments,

www.developpez.c.la

96

TCP : connexion
Une connexion TCP est tablie en trois temps de manire assurer la
synchronisation ncessaire entre les extrmits :
TCP source

TCP destination

Syn seq=x

Syn seq=y,ack=x+1
Ack y+1

Ce schma fonctionne lorsque les deux extrmits effectuent une


demande d'tablissement simultanment. TCP ignore toute demande
de connexion, si cette connexion est dj tablie.
www.developpez.c.la

97

TCP : dconnexion


Une connexion TCP est libre en un processus dit "trois temps


modifi":
TCP source

TCP destination

Fin seq=x

ack=x+1
+ fin-> applicatif
Applicatif -> close
Fin seq=y ack=x+1
Ack y+1
www.developpez.c.la

98

Rinitialisation

TCP : Lautomate
Dpart

Ferm
ouverture active/ SYN
fermeture

Ecoute
(Listen)

SYN/SYN+ACK

SYN
reu

ouverture
passive

Send SYN

RST

SYN
mis

SYN/SYN+ACK

Fermer

RST
Tempo. exp.

ACK

SYN+ACK/ACK

Etablie

Close/FIN
FIN/ACK

Attente
Fermer

Fermer/FIN
FIN (send)
FIN
Attente
-1

FIN/ACK

rcv
ACK of FIN

Fermeture
en cours

rcv
Dernier ACK
ACK

rcv
ACK of FIN
tempo. expire aprs
2 dure de vie de segment

FIN
Attente
-2
www.developpez.c.la

FIN / ACK

Tempo.
expire

99

TCP : ports standards


No port
20
21
23
25
37
42
43
53
79
80
110
111

Mot-cl Description
FTP-DATA
FTP
TELNET
SMTP
TIME
NAMESERVER
NICNAME
DOMAIN
FINGER
HTTP
POP3
SUNRPC

www.developpez.c.la

File Transfer [Default Data]


File Transfer [Control]
Telnet
Simple Mail Transfer
Time
Host Name Server
Who Is
Domain Name Server
Finger
WWW
Post Office Protocol - Version 3
SUN Remote Procedure Call
100