Vous êtes sur la page 1sur 100

TCP/IP - Protocoles de base

Ce cours est la proprit de la socit CentralWeb. Il peut tre utilis et diffus librement des fins non commerciales uniquement.

CentralWeb 56, Boulevard Pereire - 75017 PARIS


Tel : +33 01.46.31.44.88 Fax: +33 01.46.31.49.99 info@centralweb.fr / www.centralweb.fr
CentralWeb - 1998 F. Playe 1

Plan
F

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

F F

F F F F

F F F F

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

Internetworking with TCP/IP, Douglas E. Comer TCP/IP network administration, Craig Hunt
CentralWeb - 1998 F. Playe 2

Introduction
F F F F F

F F F

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.
CentralWeb - 1998 F. Playe 3

Introduction
F

F F F F

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.
CentralWeb - 1998 F. Playe 4

Concepts de linterconnexion
F F F F F

F F F

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.
CentralWeb - 1998 F. Playe 5

Concepts de linterconnexion (suite)


F F

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 : l 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, l le systme est flexible puisquon peut facilement introduire de nouveaux interfaces physiques en adaptant la couche rseau alors que les applications demeurent inchanges, l les protocoles peuvent tre modifis sans que les applications soient affectes.

CentralWeb - 1998

F. Playe

Concepts de linterconnexion (suite)


F

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)

CentralWeb - 1998

F. Playe

Concepts de linterconnexion (suite)


F

Les routeurs possdent une connexion sur chacun des rseaux:

Reseau A

Reseau B

La passerelle P interconnecte les rseaux A et B.


F

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.
CentralWeb - 1998 F. Playe 8

Concepts de linterconnexion (suite)


Reseau A
F

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

CentralWeb - 1998

F. Playe

Concepts de linterconnexion (suite)


F

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
CentralWeb - 1998 F. Playe

Vue relle du rseau


10

Ladressage Internet
F

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 :
l l l

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.

CentralWeb - 1998

F. Playe

11

Ladressage Internet
F F

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
l

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

CentralWeb - 1998

F. Playe

12

Ladressage Internet (suite)


0 8 16 24 31

Classe A Classe B Classe C Classe D Classe E

Net-id Net-id Net-id

Host-id Host-id Host-id

10

110

1110 11110

Multicast Rserv

CentralWeb - 1998

F. Playe

13

Ladressage Internet (suite)


F

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
F

Adresses particulires l 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. l Adresse machine locale : adresse IP dont le champ rseau (netid) ne contient que des zros; l hostid = 0 (=> tout zro), l'adresse est utilise au dmarrage du systme afin de connatre l'adresse IP (Cf RARP).
CentralWeb - 1998 F. Playe 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.
l

F F F

CentralWeb - 1998

F. Playe

15

Ladressage Internet (suite)


F

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.

CentralWeb - 1998

F. Playe

16

Ladressage Internet (suite)


F 0

Rsum
8 16 24 31 dsigne la machine courante

Tout zro Tout zro Tout un Net-id 127


CentralWeb - 1998

Host-id

machine Host-id sur le rseau courant diffusion limite sur le rseau courant diffusion dirige sur le rseau Net-id boucle locale

Tout un Nimporte quoi (souvent 1)


F. Playe

17

Ladressage Internet (suite)


FAdresses

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
CentralWeb - 1998 F. Playe

192.100.1.7
18

ARP: Address Resolution Protocol


F

Le besoin l La communication entre machines ne peut s'effectuer qu' travers l'interface physique l Les applicatifs ne connaissant que des adresses IP, comment tablir le lien adresse IP / adresse physique? La solution : ARP l Mise en place dans TCP/IP dun protocole de bas niveau appel Adress Resolution Protocol (ARP) l 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 : l Diffusion d'adresse sur le rseau physique l La machine d'adresse IP met un message contenant son adresse physique l Les machines non concernes ne rpondent pas l Gestion cache pour ne pas effectuer de requte ARP chaque mission
CentralWeb - 1998 F. Playe 19

ARP: Address Resolution Protocol


F

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
F

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).

CentralWeb - 1998

F. Playe

20

ARP: Address Resolution Protocol


F

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 :
CentralWeb - 1998 F. Playe 21

ARP: Address Resolution Protocol


0 8 16 24 31

Type de matriel LGR-MAT

Type de protocole

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


Adresse IP metteur (octets 0,1) Adresse Mat cible (octets 0,1)

Adresse Mat metteur (octets 4,5) Adresse IP metteur (octets 4,5)

Adresse Matriel cible (octets 2,5) Adresse IP cible (octets 0-3)

Autre technique : proxy Arp


CentralWeb - 1998 F. Playe 22

RARP: ReverseAddress Resolution Protocol


F

F F

Le besoin l 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. l 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 l Protocole de bas niveau appel Reverse Adress Resolution Protocol l 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;
CentralWeb - 1998 F. Playe 23

RARP: ReverseAddress Resolution Protocol


F F

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.
CentralWeb - 1998 F. Playe 24

IP : Internet Protocol
F

Le protocole Internet (Internet Protocol ou IP) : l ralise les fonctionnalits de la couche rseau selon le modle OSI l 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


F

Le service offert par le protocole IP est dit non fiable : l remise de paquets non garantie, l sans connexion (paquets traits indpendamment les uns des autres), l pour le mieux (best effort, les paquets ne sont pas limins sans raison).
CentralWeb - 1998 F. Playe 25

IP : Internet Protocol (suite)


F

Le protocole IP dfinit :
l l'unit

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

CentralWeb - 1998

F. Playe

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:
F

16

19

24

31

VERS HLEN Type de service Identification Dure de vie Protocole Flags

Longueur totale Offset fragment

Somme de contrle Header

Adresse IP Source Adresse IP Destination

Options IP (eventuellement) Donnes

Padding

...
CentralWeb - 1998 F. Playe 27

IP : Internet Protocol (le datagramme)


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

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.
CentralWeb - 1998 F. Playe 28

IP : Internet Protocol (le datagramme)


F

FRAGMENT OFFSET, FLAGS, IDENTIFICATION : les champs de la fragmentation. l 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 l 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, l 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), l 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.
CentralWeb - 1998 F. Playe 29

IP : Internet Protocol (le datagramme)


F

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.

CentralWeb - 1998

F. Playe

30

IP : Internet Protocol (le datagramme)


Rseau 1 MTU=1500
Donnes 1400 octets

P1

Rseau 2 MTU=620

P2

Rseau 3 MTU=1500

EF1 600 octets EF2 600 octets EF3 200 oct.

EF1 600 octets EF2 600 octets EF3 200 oct.

En-tte datagramme

EF1 et EF2 ont le bit More (M) positionn. Le dplacement (depl) est relatif au datagramme initial.

En-tte fragments: M=0; depl=1200 En-tte fragments: M=1; depl=600 En-tte fragments: M=1; depl=00
F. Playe 31

CentralWeb - 1998

IP : Internet Protocol (le datagramme)


F

F F

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.
CentralWeb - 1998 F. Playe 32

IP : Internet Protocol (le datagramme)


F

Dure de vie l 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. l 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 :
l l l

6 : TCP, 17 : UDP, 1 : ICMP.


CentralWeb - 1998 F. Playe 33

IP : Internet Protocol (le datagramme)


F

Somme de contrle de len-tte l Ce champ permet de dtecter les erreurs survenant dans l'en-tte du datagramme, et par consquent l'intgrit du datagramme. l 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 : u xxxx xxxx xxxx xxxx (VERS, HLEN, TYPE OF SERVICE) u xxxx xxxx xxxx xxxx (TOTAL LENGTH) u xxxx xxxx xxxx xxxx (ID. FLAGS, FRAGMENT OFFSET) u xxxx xxxx xxxx xxxx (TIME TO LIVE, PROTOCOL) u 0000 0000 0000 0000 (HEADER CHECKSUM) u xxxx xxxx xxxx xxxx (IP SOURCE ) u xxxx xxxx xxxx xxxx (IP SOURCE) u xxxx xxxx xxxx xxxx (IP DESTINATION) u xxxx xxxx xxxx xxxx (IP DESTINATION) u ... (OPTIONS ventuelles + PADDING
CentralWeb - 1998 F. Playe 34

IP : Internet Protocol (le datagramme)


F

OPTIONS l 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 :

CentralWeb - 1998

F. Playe

35

IP : Internet Protocol (le datagramme)


l

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 ...

CentralWeb - 1998

F. Playe

36

IP : Internet Protocol (le datagramme)


l

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

...
u

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.
F. Playe 37

CentralWeb - 1998

IP : Internet Protocol (le datagramme)


l

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

...

CentralWeb - 1998

F. Playe

38

IP : Internet Protocol (le datagramme)


l

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

...
l

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.

CentralWeb - 1998

F. Playe

39

IP : Internet Protocol (le datagramme)


l

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.

CentralWeb - 1998

F. Playe

40

Routage des datagrammes


F F

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 : l 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. l les passerelles effectuent le choix de routage vers dautres passerelles afin dacheminer le datagramme vers sa destination finale.
CentralWeb - 1998 F. Playe 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.
CentralWeb - 1998 F. Playe 42

Routage des datagrammes (suite)


F

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.
CentralWeb - 1998 F. Playe 43

Routage des datagrammes (suite)


20.0.0.1 30.0.0.5 40.0.0.1

Reseau
10.0.0.0

Reseau
20.0.0.0

Reseau
30.0.0.0

Reseau
40.0.0.0

10.0.0.1

20.0.0.2

30.0.0.1

Pour atteindre les machines du rseau Router vers

10.0.0.0

20.0.0.0

30.0.0.0

40.0.0.0

20.0.0.1

direct

direct

30.0.0.1

Table de routage de G
CentralWeb - 1998 F. Playe 44

Routage des datagrammes (suite)


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

Routage des datagrammes (suite)


F

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.

CentralWeb - 1998

F. Playe

46

Routage des datagrammes (suite)


F

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
l

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.
CentralWeb - 1998 F. Playe 47

Le sous-adressage
F F

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 : l la gestion administrative des adresses IP, l la taille des tables de routage des passerelles, l la taille des informations de routage, l le traitement effectu au niveau des passerelles. Principes l A lintrieur dune entit associe une adresse IP de classe A, B ou C, plusieurs rseaux physiques partagent cette adresse IP. l On dit alors que ces rseaux physiques sont des sous-rseaux (subnet) du rseau dadresse IP.
CentralWeb - 1998 F. Playe 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

.2

.3

.4

Internet

P
.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.
CentralWeb - 1998 F. Playe 49

Le sous-adressage (suite)
F F

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 : l les adresses des machines du premier sous-rseau sont de la forme 128.10.1.X, l 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.

CentralWeb - 1998

F. Playe

50

Le sous-adressage (suite)
F

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 Internet Partie locale Rseau physique Identifieur Machine

F F F

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.

CentralWeb - 1998

F. Playe

51

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

P1
Rseau 4

P4 P5

Rseau 1

P2
Rseau 5 Rseau 2

P3
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.
CentralWeb - 1998 F. Playe 52

Le sous-adressage (suite)
F

Le choix du dcoupage dpend des perspectives dvolution du site:


l

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.

CentralWeb - 1998

F. Playe

53

Le sous-adressage (suite)
F F F

Utilisation de masques Le sous-adressage ==> masque de 32 bits associ au sous-rseau. Bits du masque de sous-rseau (subnet mask) : l positionns 1 : partie rseau, l 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 : l dcimale pointe; exemple : 255.255.255.0 l 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 }. l adresse rseau/masque : 193.49.60.0/27 (27=# bits contigs du masque)
CentralWeb - 1998 F. Playe 54

Le sous-adressage (suite)
Routage avec sous-rseaux F Le routage IP initial a t tendu ladressage en sous-rseaux; F 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
CentralWeb - 1998 F. Playe 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 : F Route_IP_Datagram(datagram, routing_table) F Extraire ladresse ID de destination du datagramme, F Calculer ladresse IN du rseau destination, F Si IN correspond une adresse rseau directement accessible envoyer le datagramme sur le rseau physique correspondant, F Sinon l Pour chaque entre dans la table de routage, u N = (ID & masque de sous-rseau de lentre) u Si N est gal au champ adresse rseau de lentre router le datagramme vers la passerelle correspondante, l Fin_Pour F Si aucune entre ne correspond, dclarer une erreur de routage.
CentralWeb - 1998 F. Playe 56

Le sous-adressage (suite)
F F F

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 }.

CentralWeb - 1998

F. Playe

57

Le sous-adressage variable (VLSM)


F F

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 : l le nombre de sous-rseaux l le nombre de machines par sous-rseau l Exemple : 130.5.0.0/22 ==> 64 sous-reseaux et 1022 machines / sous-rseau u 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 l Exemple prcdent : cohabitation de grands et petits sous-rseaux u 130.5.0.0/22 (64 sous-reseaux et 1022 machines / sous-rseau) u 130.5.0.0/26 (1024 sous-rseaux de 62 machines / sous-rseau)

CentralWeb - 1998

F. Playe

58

VLSM : agregation de routes


F F

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.254.0.0/16

11.1.1.0/24

11.1.254.0/24 11.1.253.32/27 11.1.253.64/27 ... 11.1.253.192/27

11.254.32.0/19 . . . 11.254.192.0/19

Autre technique : CIDR


59

CentralWeb - 1998

F. Playe

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

ICMP : format des messages


TYPE CODE CHECKSUM HEAD-DATA 8 bits; type de message 8 bits; informations complmentaires 16 bits; champ de contrle en-tte datagramme + 64 premiers bits des donnes. 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

TYPE 0 3 4 5 8 11 12

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

CentralWeb - 1998

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
l

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.
CentralWeb - 1998 F. Playe 62

ICMP : les commandes


Synchronisation des Horloges et temps de transit
F

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.
CentralWeb - 1998 F. Playe 63

ICMP : les commandes


Demande et rponse dinformation (Information Request + Reply)
F F

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.
CentralWeb - 1998 F. Playe 64

ICMP : les messages derreur


0 8 16 31 TYPE CODE CHECKSUM
SPECIFIQUE IP Header + First 64 bits

Format des messages derreur ICMP

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
CentralWeb - 1998 F. Playe 65

ICMP : les messages derreur


F

Lorsquune passerelle met un message ICMP de type destination inaccessible, le champ code dcrit la nature de lerreur : l 0 Network Unreachable l 1 Host Unreachable l 2 Protocol Unreachable l 3 Port Unreachable l 4 Fragmentation Needed and DF set l 5 Source Route Failed l 6 Destination Network Unknown l 7 Destination Host Unknown l 8 Source Host Isolated l 9 Communication with desination network administratively prohibited l 10 Communication with desination host administratively prohibited l 11 Network Unreachable for type of Service l 12 Host Unreachable for type of Service
CentralWeb - 1998 F. Playe 66

ICMP : contrle de congestion


F

F F

Le protocole IP tant un protocole en mode non connect : l => les passerelles ne peuvent rserver lavance la quantit de mmoire ncessaire au routage des datagrammes. l => des datagrammes sont alors dtruits. Cette situation de congestion se produit : l lorsquune passerelle est connecte deux rseaux aux dbits diffrents (elle ne peut couler au rythme impos par le rseau le plus rapide), l 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.

CentralWeb - 1998

F. Playe

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.
CentralWeb - 1998 F. Playe 68

ICMP : modification de route


F

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
CentralWeb - 1998 F. Playe 69

ICMP : autres compte-rendus


F

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.
CentralWeb - 1998 F. Playe 70

UDP : User Datagram Protocol


F

UDP : protocole de transport sans connexion de service applicatif : l mission de messages applicatifs : sans tablissement de connexion au pralable l l'arrive des messages ainsi que lordonnancement ne sont pas garantis. Identification du service : les ports l 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 L'adressage de ce processus est effectu selon un concept abstrait indpendant du systme d'exploitation des machines car : u les processus sont crs et dtruits dynamiquement sur les machines, u il faut pouvoir remplacer un processus par un autre (exemple reboot) sans que l'application distante ne s'en aperoive, u il faut identifier les destinations selon les services offerts, sans connatre les processus qui les mettent en oeuvre, u un processus doit pouvoir assurer plusieurs services.
CentralWeb - 1998 F. Playe 71

UDP : les ports


F F

F F

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).

CentralWeb - 1998

F. Playe

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. Checksum UDP Format des messages UDP

Longueur message 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).
CentralWeb - 1998 F. Playe 73

UDP : pseudo en-tte


F

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
Longueur UDP

31 Format du pseudo en-tte

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.

CentralWeb - 1998

F. Playe

74

UDP : Multiplexage
F

UDP multiplexe et dmultiplexe les datagrammes en slectionnant les numros de ports :


l

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.
CentralWeb - 1998 F. Playe 75

UDP : les ports standards


F

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.
CentralWeb - 1998 F. Playe 76

TCP : Transmission Control Protocol

F F

transport fiable de la technologie TCP/IP. l fiabilit = illusion assure par le service l transferts tampons : dcoupage en segments l connexions bidirectionnelles et simultanes service en mode connect garantie de non perte de messages ainsi que de l'ordonnancement

CentralWeb - 1998

F. Playe

77

TCP : La connexion
F

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 : l une application (extrmit) effectue une ouverture passive en indiquant qu'elle accepte une connexion entrante, l une autre application (extrmit) effectue une ouverture active pour demander l'tablissement de la connexion.

F F F F F

CentralWeb - 1998

F. Playe

78

TCP : Segmentation
F

Segmentation, contrle de flux l Les donnes transmises TCP constituent un flot d'octets de longueur variable. l TCP divise ce flot de donnes en segments en utilisant un mcanisme de fentrage. l Un segment est mis dans un datagramme IP. Acquittement de messages l Contrairement UDP, TCP garantit l'arrive des messages, c'est dire qu'en cas de perte, les deux extrmits sont prvenues. l 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. l Si lacquittement Ai ne parvient pas S, S considre au bout d'un certain temps que le message est perdu et remet Mi :
CentralWeb - 1998 F. Playe 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
CentralWeb - 1998 F. Playe 80

TCP : le fentrage
F

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 :

CentralWeb - 1998

F. Playe

81

TCP : le Fentrage
Source Emission de Mi Emission de Mi+1 Emission de Mi+2 Reception de Ai Rseau Destination

Rception de Mi Emission de Ai

Fentrage de taille 3
CentralWeb - 1998 F. Playe 82

TCP : Technique de fentrage


F F

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 :
l l

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
CentralWeb - 1998 Octets mis et non acquitts Octets missibles

Octets non missibles tout de suite.


83

F. Playe

TCP : Segments
F

Segment : unit de transfert du protocole TCP. l changs pour tablir les connexions, l transfrer les donnes, l mettre des acquittements, l fermer les connexions; 0 4 10 16 24 31 Port source Port destination

Numro de squence Numro dacquittement N * 32bits HLEN rserv Codes Checksum fentre pointeur urgence padding
84

Options ventuelles Donnes . . .


CentralWeb - 1998 F. Playe

TCP : format du segment


F

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 : l 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. l 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).
CentralWeb - 1998 F. Playe 85

TCP : Format du segment


F

CODE BITS : indique la nature du segment : l 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. l 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). l FIN : utilis lors de la libration de la connexion; l 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).
CentralWeb - 1998 F. Playe 86

TCP : format du segment


F

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 TCP destination Established ?? seq=300 ack=100 CTL=SYN
abort close

Crash Closed Syn-sent seq=400 CTL=SYN ?? Syn-sent seq=100 CTL=RST


Syn-sent

Syn-sent seq=100 CTL=RST


CentralWeb - 1998 F. Playe 87

TCP format du segment


F

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) longueur TCP

CentralWeb - 1998

F. Playe

88

TCP : format du header


OPTIONS
F

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 : l il nexiste pas de mcanisme pour connatre le MTU, l le routage peut entraner des variations de MTU, l la taille optimale dpend de la taille des en-ttes (options).

CentralWeb - 1998

F. Playe

89

TCP : acquittements
Acquittements et retransmissions
F

Le mcanisme dacquittement de TCP est cumulatif : l il indique le numro de squence du prochain octet attendu : tous les octets prcdents cumuls sont implicitement acquitts l 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 l Si le segment nest pasacquitt, le segment est considr comme perdu et TCP le retransmet. l Or un rseau dinterconnexion offre des temps de transit variables ncessitant le rglage des temporisations; l TCP gre des temporisations variables pour chaque connexion en utilisant un algorithme de retransmission adaptative
CentralWeb - 1998 F. Playe 90

Fentre=900

TCP : Acquittements
Seq=3 Envoi de 300 octets Seq=303 Ack=303 Envoi de 300 octets

Segment=300

TCP source

TCP destination

Attente car f = 900

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

Attente de 303

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

CentralWeb - 1998

F. Playe

TCP : retransmissions
algorithme de retransmission adaptative F enregistre la date dmission dun segment, F enregistre la date de rception de lacquittement correspondant, F calcule lchantillon de temps de boucle A/R coul, F 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.
CentralWeb - 1998 F. Playe 92

F F

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

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): l une valeur initiale de temporisation est calcule l 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.
CentralWeb - 1998 F. Playe 93

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

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 :
CentralWeb - 1998 F. Playe 94

TCP : la congestion
F F

TCP maintient une fentre virtuelle de congestion TCP applique la fentre dmission suivante: l fentre_autorise = min (fentre_rcepteur, fentre_congestion). Dans une situation de non congestion: l fentre_rcepteur = fentre_congestion. En cas de congestion, TCP applique une diminution dichotomique : l chaque segment perdu, la fentre de congestion est diminue par 2 (minimum 1 segment) l la temporisation de retransmission est augmente exponentiellement.

CentralWeb - 1998

F. Playe

95

TCP retransmissions
F

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,
CentralWeb - 1998 F. Playe 96

TCP : connexion
Une connexion TCP est tablie en trois temps de manire assurer la synchronisation ncessaire entre les extrmits : TCP source Syn seq=x TCP destination

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.
CentralWeb - 1998 F. Playe 97

TCP : dconnexion
F

Une connexion TCP est libre en un processus dit "trois temps modifi": TCP source Fin seq=x TCP destination

ack=x+1 + fin-> applicatif Applicatif -> close Fin seq=y ack=x+1 Ack y+1
CentralWeb - 1998 F. Playe 98

TCP : Lautomate
Dpart

Rinitialisation

Ferm ouverture active / SYN fermeture ouverture passive

SYN/SYN+ACK

Ecoute (Listen)

Send SYN

SYN reu

RST SYN/SYN+ACK

SYN mis

Fermer

RST Tempo. exp.

ACK Close/FIN

Etablie

SYN+ACK/ACK

FIN/ACK Fermer/FIN

Attente Fermer FIN (send)

FIN Attente -1 rcv ACK of FIN

FIN/ACK

Fermeture en cours

Dernier ACK

rcv ACK

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

CentralWeb

FIN Attente - 1998 -2

FIN / ACK

Tempo. expire

F. Playe

99

TCP : ports standards


No port 20 21 23 25 37 42 43 53 79 80 110 111 FTP-DATA FTP TELNET SMTP TIME NAMESERVER NICNAME DOMAIN FINGER HTTP POP3 SUNRPC Mot-clDescription 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
F. Playe 100

CentralWeb - 1998