100% ont trouvé ce document utile (1 vote)
123 vues54 pages

Tcpip 1

Ce document décrit les protocoles TCP/IP et contient quatre chapitres détaillant les différentes couches du modèle TCP/IP ainsi que des protocoles comme IP, ARP, ICMP, UDP, TCP, NAT et PAT.

Transféré par

amal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
123 vues54 pages

Tcpip 1

Ce document décrit les protocoles TCP/IP et contient quatre chapitres détaillant les différentes couches du modèle TCP/IP ainsi que des protocoles comme IP, ARP, ICMP, UDP, TCP, NAT et PAT.

Transféré par

amal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 54

REPUBLIQUE TUNISIENNE

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE.


DIRECTION GENERALE DES ETUDES TECHNOLOGIQUES
INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE SIDI BOUZID

Support de cours
Protocoles TCP/IP

Mention : Technologies de l’Informatique


Parcours : Réseaux et Services Informatiques (RSI)
(1èr Semestre)

Réalisé par :
Jamel Eddine SAIDI : Technologue
Youssef BEN BRAHEM : Technologue
Département Technologies de l’Informatique

AU : 2015/2016
Fiche descriptive de la matière

Discipline : Technologie de l'informatique

Option : Réseaux et Services Informatiques

Niveau : Deuxieme année

Nombre Heures/Semaines : 1,5 h

Nombre Heures/Semestre : 21 h

Coefficient : 1.5

Objectifs du cours :
- Comprendre les étapes d’encapsulation dans l’architecture TCP/IP.
- Saisir l’interaction entre les protocoles, les services et les applications.
- Savoir les notions de base de l’administration des réseaux avec SNMP.
- Comprendre les concepts et l'architecture de base du protocole TCP/IP, ainsi que les
protocoles TCP/IP connexes ( NAT, PAT….).
Évaluations
- Devoir surveillé de 1 heure, à la fin du chapitre Les modes de transmission.
- Examen final écrit de 1 heure et demie sur tout le programme.

Moyens Pédagogiques :
- Support de cours.

- Séries de travaux dirigés.


ISETSBZ Protocoles TCP/IP – TI2-RSI

Table des matières

Chapitre 1 : Introduction à TCP/IP........................................................................................................... 1


I. Introduction ................................................................................................................................. 2
II. Caractéristiques de TCP/IP .......................................................................................................... 3
III. Comparaison TCP/IP -- ISO ...................................................................................................... 4
IV. Mode de transfert ................................................................................................................... 4
1. Service sans connexion............................................................................................................ 5
2. Service avec connexion. .......................................................................................................... 5
Chapitre 2 : Protocoles de la couche IP ................................................................................................... 8
V. Protocole IP ................................................................................................................................. 9
3. Structure de l'en-tête .............................................................................................................. 9
4. Description de l'en-tête ........................................................................................................... 9
5. Fragmentation IP - MTU ........................................................................................................ 11
VI. Protocole ARP ........................................................................................................................ 12
1. Fonctionnement .................................................................................................................... 13
2. Format du datagramme ........................................................................................................ 14
VII. Protocole RARP ...................................................................................................................... 15
VIII. Protocole ICMP ...................................................................................................................... 15
1. Le système de messages d'erreur ......................................................................................... 16
2. Format des messages ICMP................................................................................................... 16
3. Quelques types de messages ICMP ....................................................................................... 17
IX. IPv6 ........................................................................................................................................ 19
1. Introduction ........................................................................................................................... 19
2. Apport d'IPv6 ......................................................................................................................... 20
3. Adressage .............................................................................................................................. 20
4. Format de paquet .................................................................................................................. 23
Chapitre 3 : TCP-IP, la couche transport ............................................................................................... 25
X. Protocole UDP ........................................................................................................................... 26
1. Introduction ........................................................................................................................... 26
2. Description de l'entête .......................................................................................................... 26
3. Ports réservés - ports disponibles ......................................................................................... 28
XI. ....................................................................................................................................................... 29
XII. Protocole TCP ........................................................................................................................ 29

Enseignants : Jamel Eddine SAIDI - Youssef BEN BRAHEM


ISETSBZ Protocoles TCP/IP – TI2-RSI

1. Caractéristiques de TCP ......................................................................................................... 29


2. Description de l'en-tête ......................................................................................................... 31
3. Début et clôture d'une connexion......................................................................................... 33
4. Contrôle du transport............................................................................................................ 36
Chapitre 4 : TCP-IP, la couche application (NAT-PAT) ........................................................................... 38
I. Introduction ............................................................................................................................... 39
II. La NAT statique ......................................................................................................................... 39
1. Le principe ............................................................................................................................. 39
2. Le fonctionnement de la NAT statique.................................................................................. 40
3. Avantages et inconvénients de la NAT statique .................................................................... 40
4. Problèmes de routage liés à la NAT statique. ....................................................................... 41
III. La NAT dynamique (translation avec ports) .......................................................................... 43
1. Principe .................................................................................................................................. 43
2. Fonctionnement de la NAT dynamique................................................................................. 43
3. Avantages et inconvénients de la NAT dynamique ............................................................... 45
4. Problèmes liés à la NAT dynamique. ..................................................................................... 45
IV. Statique ou dynamique. ........................................................................................................ 46
V. Le port forwarding. .................................................................................................................... 47
1. Le port mapping .................................................................................................................... 48
2. Les limites du port forwarding .............................................................................................. 48
3. Le gros point fort en sécurité ................................................................................................ 48
Bibliographie.......................................................................................................................................... 49

Enseignants : Jamel Eddine SAIDI - Youssef BEN BRAHEM


ISETSBZ Protocoles TCP/IP – TI2-RSI

Liste des figures


Figure 1:Comparaison ISO et TCP ............................................................................................................ 4
Figure 2:Acheminement des datagrammes entre les équipements A et D. ........................................... 5
Figure 3:exemple de connexions en mode connecté.............................................................................. 6
Figure 4:Entete IP. ................................................................................................................................... 9
Figure 5:fragmentation. ........................................................................................................................ 12
Figure 6:Demande ARP.......................................................................................................................... 13
Figure 7:trame ARP................................................................................................................................ 14
Figure 8:Format des messages ICMP. ................................................................................................... 16
Figure 9:format du message ICMP. ....................................................................................................... 17
Figure 10:Echo request vs Echo reply................................................................................................... 18
Figure 11:plan d’adressage agrégé........................................................................................................ 22
Figure 12 : Adresses unicast de lien local. ............................................................................................. 22
Figure 13:Adresses unicast de site local. ............................................................................................... 23
Figure 14:adresse anycast. .................................................................................................................... 23
Figure 15:Adresse multicast. ................................................................................................................. 23
Figure 16:Format de paquet IPv6. ......................................................................................................... 23
Figure 17:Format de l’entête IPv6. ........................................................................................................ 24
Figure 18:UDP encapsulé dans IP. ......................................................................................................... 27
Figure 19:Format d'un message UDP. ................................................................................................... 27
Figure 20:TCP encapsulé dans IP. .......................................................................................................... 29
Figure 21:Format d'un segment TCP. .................................................................................................... 31
Figure 22:Établissement d'une connexion. ........................................................................................... 34
Figure 23:Émission d'un RST.................................................................................................................. 36
Figure 24:Mécanisme d’acquittement. ................................................................................................. 36
Figure 25:Principe de la fenêtre glissante. ............................................................................................ 37
Figure 30:Nat statique. .......................................................................................................................... 39
Figure 31:NAT statique et proxy ARP. ................................................................................................... 41
Figure 32:Nat dynamique. ..................................................................................................................... 43

Liste des tableaux


Tableau 1:quelques ports connus. ........................................................................................................ 29

Enseignants : Jamel Eddine SAIDI - Youssef BEN BRAHEM


ISETSBZ Protocoles TCP/IP – TI2-RSI

Chapitre 1 : Introduction à TCP/IP


Objectifs spécifiques

A la fin de ce chapitre, l’étudiant doit être capable de :

 Présenter un réseau informatique


 Décrire les quatre couches du modèle TCP/IP.
 Spécifier les fonctions de chaque couche du modèle TCP/IP.
 Comparer les modèles OSI et TCP/IP.
 Décrire la transmission orientée connexion et la transmission non orientée connexion.
Plan du chapitre
I. Introduction.

II. Caractéristiques de TCP/IP.

III. Comparaison TCP/IP -- ISO.

IV. Mode de transfert.

Volume horaire :

1 heures et demi.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 1


ISETSBZ Protocoles TCP/IP – TI2-RSI

I. Introduction
Les En 1969 aux États Unis, l'agence gouvernementale DARPA lance un projet de
réseau expérimental, basé sur la commutation de paquets. Ce réseau, nommé ARPANET, fut
construit dans le but d'étudier les technologies de communications, indépendamment de toute
contrainte commerciale. Un grand nombre de techniques de communication par modems
datent de cette époque.

L'expérience d'ARPANET est alors si concluante que toutes les organisations qui lui
sont rattachées l'utilisent quotidiennement pour leurs messages de service.

En 1975, le réseau passe officiellement du stade expérimental au stade opérationnel.

Le développement d'ARPANET ne s'arrête pas pour autant, les bases des protocoles
TCP/IP sont développées à ce moment, donc après qu’ARPANET soit opérationnel.

En Juin 1978 Jon Postel définit IPv4 et en 1981 IP est standardisé dans la RFC.

En 1983 les protocoles TCP/IP sont adoptés comme un standard militaire et toutes les
machines sur le réseau commencent à l'utiliser. Pour faciliter cette reconversion, la DARPA
demande à l'université de Berkeley d'implémenter ces protocoles dans leur version (BSD)
d'unix. Ainsi commence le mariage entre ce système d'exploitation et les protocoles TCP/IP.

L'apport de l'Université de Berkeley est majeur, tant au niveau théorique (concept des
sockets) qu'au niveau de l'utilisateur, avec des utilitaires très homogènes qui s'intègrent
parfaitement au paradigme d'usage existant.

Depuis cette époque, un nouveau terme est apparu pour désigner cette interconnexion de
réseaux, l'Internet, avec un `` i '' majuscule.

Le succès de cette technologie est alors très important et suscite un intérêt croissant de
la part d'acteurs très divers,

Depuis 1990, ARPANET n'est plus, pourtant le terme Internet demeure il désigne
maintenant un espace de communication qui englobe la planète tout entière. Des millions de
sites partout sur la surface du globe y sont connectés.

Depuis 1994, l'Internet s'est ouvert au commerce, surtout avec l'apparition en 1991 d'un
nouvel outil de consultation, le `` World Wide Web '' ou `` Web '' et ses interfaces populaires :
Netscape, Mozilla, Firefox, ...

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 2


ISETSBZ Protocoles TCP/IP – TI2-RSI

Depuis 1995, pour faire face à sa popularité fortement croissante et aux demandes de
transactions sécurisées, le protocole évolue et une nouvelle version, la version 6, est définie et
en cours de déploiement expérimental.

Les protocoles désignés par TCP/IP ont également envahi les réseaux locaux eux-
mêmes, car il est plus facile d'utiliser les mêmes protocoles en interne et en externe.

Pour les utilisateurs, l'accès à l'Internet est possible à l'aide d'une collection de
programmes spécialisés si faciles à utiliser que l'on peut ignorer tout (ou presque) de leur
fonctionnement interne. Seuls les programmeurs d'applications réseaux et les administrateurs
de systèmes ont besoin d'en connaître les arcanes.

II. Caractéristiques de TCP/IP


Le succès de TCP/IP, s'il vient d'abord d'un choix du gouvernement américain, s'appui
ensuite sur des caractéristiques intéressantes :

C'est un protocole ouvert, les sources (C) en sont disponibles gratuitement et ont été
développés indépendamment d'une architecture particulière, d'un système d'exploitation
particulier, d'une structure commerciale propriétaire. Ils sont donc théoriquement
transportables sur n'importe quel type de plate-forme, ce qui est prouvé de nos jours.

Ce protocole est indépendant du support physique du réseau. Cela permet à TCP/IP


d'être véhiculé par des supports et des technologies aussi différents qu'une ligne série, un
câble coaxial Ethernet, une liaison louée, un réseau token-ring, une liaison radio (satellites, ``
wireless '' 802.11a/b/g), une liaison FDDI 600Mbits, une liaison par rayon laser, infrarouge,
xDSL, ATM, fibre optique, la liste des supports et des technologies n'est pas exhaustive...

Le mode d'adressage est commun à tous les utilisateurs de TCP/IP quelle que soit la
plate-forme qui l'utilise. Si l'unicité de l'adresse est respectée, les communications aboutissent
même si les hôtes sont aux antipodes.

Les protocoles de hauts niveaux sont standardisés ce qui permet des développements
largement répandus et interopérables sur tous types de machines.

Les majeures parties des informations relatives à ces protocoles sont publiées dans les
RFCs (Requests For Comments). Les RFCs contiennent les dernières versions des
spécifications de tous les protocoles TCP/IP, ainsi que bien d'autres informations comme des

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 3


ISETSBZ Protocoles TCP/IP – TI2-RSI

propositions d'améliorations des outils actuels, la description de nouveaux protocoles, des


commentaires sur la gestion des réseaux

III. Comparaison TCP/IP -- ISO


La suite de protocoles désignée par TCP/IP, ou encore `` pile ARPA '', est construite sur
un modèle en couches moins complet que la proposition de l'ISO. Quatre couches sont
suffisantes pour définir l'architecture de ce protocole.

4 Couche Application (Application layer).

3 Couche Transport (Transport layer).

2 Couche Internet (Internet layer).

1 Couche interface réseau (Network access layer).

0 Matériel (n'est pas une couche comprise dans le protocole).

Figure 1:Comparaison ISO et TCP

IV. Mode de transfert


On distingue deux types de services réseau : le service sans connexion et le service en mode
connecté, encore appelé service orienté connexion.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 4


ISETSBZ Protocoles TCP/IP – TI2-RSI

1. Service sans connexion


Un réseau à commutation de paquets qui offre un service sans connexion s’appelle
couramment réseau à datagrammes, du nom des unités de données transportées. Un service
sans connexion considère les différents datagrammes comme totalement indépendants les uns
des autres. Chacun transite à travers le réseau avec l’ensemble des informations nécessaires à
son acheminement. Il comprend notamment les adresses complètes de l’expéditeur et du
destinataire. La fonction de routage s’exécute pour chaque datagramme. Ainsi, plusieurs
datagrammes échangés entre les mêmes équipements terminaux peuvent suivre des chemins
différents dans le réseau et le destinataire les recevoir dans un ordre différent de l’ordre
d’émission. De plus, en cas de problème (rupture de liaison, manque de mémoire dans un
commutateur), des datagrammes peuvent se perdre. L’équipement terminal doit non
seulement reconstituer l’ordre des datagrammes reçus pour en exploiter correctement le
contenu, mais aussi vérifier qu’aucun ne s’est égaré.

L’avantage d’un tel réseau est sa simplicité de réalisation interne : ce sont les équipements
terminaux qui mettent en œuvre les fonctions de contrôle. La figure 3 montre l’acheminement
des datagrammes entre les équipements A et D.

Figure 2:Acheminement des datagrammes entre les équipements A et D.

2. Service avec connexion.


Dans un service en mode connecté ou orienté connexion, l’utilisateur doit d’abord indiquer
avec qui il veut dialoguer. Pour cela, une procédure, appelée ouverture de connexion, établit
un lien logique entre les deux équipements terminaux et constitue un « tube » de dialogue,
appelé circuit virtuel. La connexion créée n’est active que si le destinataire accepte la

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 5


ISETSBZ Protocoles TCP/IP – TI2-RSI

communication. Ensuite, le réseau transmet tous les paquets de données jusqu’au destinataire,
en se référant au circuit virtuel précédemment établi (l’émetteur n’a plus besoin de préciser
l’adresse du destinataire dans chaque paquet). Lorsque le dialogue se termine, un des
utilisateurs indique au réseau qu’il souhaite libérer la connexion. Pour dialoguer avec un autre
équipement (ou le même), il faut déclencher une nouvelle ouverture de connexion.

Le service avec connexion est couplé avec la notion de circuit virtuel. À l’ouverture de la
connexion, le réseau détermine le chemin que tous les paquets emprunteront par la suite. Ce
chemin s’appelle « circuit virtuel ». Il s’agit d’un circuit car on utilise les mêmes principes
que dans la commutation de circuits ; il est virtuel puisqu’une connexion ne monopolise une
liaison entre commutateurs que pendant le temps de transfert d’un paquet. Une fois le paquet
transmis, la liaison est utilisable par un autre circuit virtuel. La liaison entre deux
commutateurs transporte donc plusieurs circuits virtuels entre des équipements terminaux
totalement différents. De ce fait, l’utilisation du support de transmission est beaucoup plus
efficace que dans le cas de la commutation de circuits.

Un équipement terminal peut gérer plusieurs connexions en parallèle. Un identifiant, souvent


appelé numéro de voie logique, les distingue. L’équipement émetteur précise l’adresse
logique du destinataire à l’établissement d’une connexion. Il lui associe un numéro de voie
logique. Le commutateur relié au récepteur attribue de son côté un numéro de voie logique à
la future connexion.

Figure 3:exemple de connexions en mode connecté.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 6


ISETSBZ Protocoles TCP/IP – TI2-RSI

L’avantage d’un réseau à circuits virtuels est sa fiabilité : comme les paquets d’un même
circuit virtuel suivent le même chemin, il suffit de conserver l’ordre des paquets sur chaque
tronçon du chemin pour conserver globalement l’ordre des paquets sur le circuit virtuel.
L’opérateur du réseau peut donc garantir une certaine qualité de service (taux d’erreur,
contrôle de séquence et de flux…), au prix d’une plus grande complexité de réalisation et de
gestion du réseau.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 7


ISETSBZ Protocoles TCP/IP – TI2-RSI

Chapitre 2 : Protocoles de la couche IP

Objectifs spécifiques

A la fin de ce chapitre, l’étudiant doit être capable de :

 Décrire le protocole de couche réseau le plus courant, IP (Internet Protocol), et ses


caractéristiques.
 Décrire les protocoles ARP et RARP.
 Expliquer le fonctionnement et l’utilité du protocole ICMP.
 Comprendre les différences entre l'IPv4 et l'IPv6.

Plan du chapitre

I. Protocole IP.

II. Protocole ARP.

III. Protocole RARP.

IV. Protocole ICMP.

V. IPv6.

Volume horaire :

6 heures.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 8


ISETSBZ Protocoles TCP/IP – TI2-RSI

V. Protocole IP
IP est l'acronyme de `` Internet Protocol '', il est défini dans la RFC 791 et a été conçu
en 1980.

3. Structure de l'en-tête
Les octets issus de la couche de transport et encapsulés à l'aide d'un en-tête IP avant
d'être propagés vers la couche réseau (Ethernet par exemple), sont collectivement nommés ``
datagramme IP '', datagramme Internet ou datagramme tout court. Ces datagrammes ont une
taille maximale liée aux caractéristiques de propagation du support physique, c'est le ``
Maximum Transfer Unit '' ou MTU.

Version Lg entête service Longueur totale


Numéro de paquet drapeaux Numéro de fragment
TTL protocole CRC
Adresse internet émetteur
Adresse internet destinataire
Options bourrage
Données
Figure 4:Entete IP.
• IP est le support de travail des protocoles de la couche de transport, UDP et TCP.

• IP ne donne aucune garantie quant au bon acheminement des données qu'il envoie. Il
n'entretient aucun dialogue avec une autre couche IP distante.

• Chaque datagramme est géré indépendamment des autres datagrammes même au sein
du transfert des octets d'un même fichier. Cela signifie que les datagrammes peuvent être
mélangés, dupliqués, perdus ou altérés !

Ces problèmes ne sont pas détectés par IP et donc il ne peut en informer la couche de
transport.

• L'en-tête IP minimale fait 5 mots de 4 octets, soit 20 octets. S'il y a des options la taille
maximale peut atteindre 60 octets.

4. Description de l'en-tête
 VERS : 4 bits qui spécifient la version du protocol IP. L'objet de ce champ est la
vérification que l'émetteur et le destinataire des datagrammes sont bien en phases avec la

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 9


ISETSBZ Protocoles TCP/IP – TI2-RSI

même version. Actuellement c'est la version 4 qui est principalement utilisé sur l'Internet,
bien que quelques implémentations de la version 6 existent et soient déjà en
expérimentationV2.
 HLEN : 4bits qui donnent la longueur de l'en-tête en mots de 4 octets. La taille
standard de cette en-tête fait 5 mots, la taille maximale fait : (23 + 22 + 21 + 20) x 4 = 60
octetsV3
 TOTAL LENGTH : Donne la taille du datagramme, en-tête plus données. S'il y
fragmentation (voir plus loin) il s'agit également de la taille du fragment (chaque
datagramme est indépendant des autres).
La taille des données est donc à calculer par soustraction de la taille de l'en-tête. 16 bits
autorisent la valeur 65535...La limitation vient le plus souvent du support physique
(MTU) qui impose une taille plus petite, sauf sur les liaisons de type `` hyperchannel ''.
 TYPE OF SERVICE,IDENTIFICATION, FLAGS et FRAGMENT OFFSET :
Ces mots sont prévus pour contrôler la fragmentation des datagrammes. Les données
sont fragmentées car les datagrammes peuvent avoir à traverser des réseaux avec des
MTU plus petits que celui du premier support physique employé.
 TTL : `` Time To Live '' 8 bits, 255 secondes maximum de temps de vie pour un
datagramme sur le net.
Prévu à l'origine pour décompter un temps, ce champ n'est qu'un compteur décrémenté
d'une unité à chaque passage dans un routeur.Couramment la valeur de départ est 32 ou
même 64. Son objet est d'éviter la présence de paquets fantômes circulant indéfiniment...
Si un routeur passe le compteur à zéro avant délivrance du datagramme, un message
d'erreur ICMP est renvoyé à l'émetteur avec l'indication du routeur. Le paquet en lui-
même est perdu.
 PROTOCOL : 8 bits pour identifier le format et le contenu des données, un peu
comme le champ `` type '' d'une trame Ethernet. Il permet à IP d'adresser les données
extraites à l'une ou l'autre des couches de transport.
 HEADER CHECKSUM : 16 bits pour s'assurer de l'intégrité de l'en-tête. Lors du
calcul de ce `` checksum '' ce champ est à 0. A la réception de chaque paquet, la couche
calcule cette valeur, si elle ne correspond pas à celle trouvée dans l'en-tête le datagramme
est oublié (`` discard '') sans message d'erreur.
 SOURCE ADDRESS : Adresse IP de l'émetteur, à l'origine du datagramme.
 DESTINATION ADDRESS : Adresse IP du destinataire du datagramme.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 10


ISETSBZ Protocoles TCP/IP – TI2-RSI

 IP OPTIONS : 24 bits pour préciser des options de comportement des couches IP


traversées et destinatrices.
 PADDING : Remplissage pour aligner sur 32 bits...

5. Fragmentation IP - MTU
La couche de liaison (Couche 2 `` Link '') impose une taille limite, le `` Maximum
Transfer Unit ''. Par exemple cette valeur est de 1500 pour une trame Ethernet, elle peut être
de 256 avec SLIP (`` Serial Line IP '') sur liaison série (RS232...).

Dans ces conditions, si la couche IP doit transmettre un bloc de données de taille


supérieure au MTU à employer, il y a fragmentation ! Par exemple, un bloc de 1481 octets sur
Ethernet sera décomposé en un datagramme de 1480 ( 1480 + 20 = 1500) et un datagramme
de 1 octet !

Il existe une exception à cette opération, due à la présence active du bit `` Don't
Fragment bit '' du champ FLAGS de l'en-tête IP. La présence à 1 de ce bit interdit la
fragmentation dudit datagramme par la couche IP qui en aurait besoin. C'est une situation de
blocage, la couche émettrice est tenue au courant par un message ICMP `` Fragmentation
needed but don't fragment bit set '' et bien sûr le datagramme n'est pas transmis plus loin.

a) Fragmentation
Quand un datagramme est fragmenté, il n'est réassemblé que par la couche IP
destinatrice finale. Cela implique trois remarques :Cette opération est absolument transparente
pour les couches de transport qui utilisent IP.

Quand un datagramme est fragmenté, chaque fragment comporte la même valeur de


champ IDENTIFICATION que le datagramme initial. S'il y a encore des fragments, un des
bits du champ FLAGS est positionné à 1 pour indiquer `` More fragment '' !

Pour tous les fragments :

 Les données doivent faire un multiple de 8 octets, sauf pour le dernier fragment,
évidement.
 Le champ TOTAL LENGTH change.
 Chaque fragment est un datagramme indépendant, susceptible d'être à son tour
fragmenté.

Pour le dernier fragment :

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 11


ISETSBZ Protocoles TCP/IP – TI2-RSI

 FLAGS est remis à zéro.


 Les données ont une taille quelconque.

Figure 5:fragmentation.

b) Réassemblage
 Tous les datagrammes issus d'une fragmentation deviennent des datagrammes IP
comme (presque) les autres.
 Ils arrivent à destination, peut être dans le désordre, dupliqués. IP doit faire le tri.
 Il y a suffisamment d'information dans l'en-tête pour réassembler les fragments
épars.
 Mais si un fragment manque, la totalité du datagramme est perdu car aucun
mécanisme de contrôle n'est implémenté pour cela dans IP.
 C'est la raison principale pour laquelle il faut absolument éviter de fragmenter
un datagramme IP !

VI. Protocole ARP


ARP est l'acronyme de `` Address Resolution Protocol '', il est définie dans la RFC 826.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 12


ISETSBZ Protocoles TCP/IP – TI2-RSI

Le problème à résoudre est issu de la constatation qu'une adresse IP n'a de sens que pour
la suite de protocole TCP/IP ; celle-ci étant indépendante de la partie matérielle il faut avoir
un moyen d'établir un lien entre ces deux constituants.

La norme Ethernet (vs IEEE) suppose l'identification unique de chaque carte construite
et vendue .Sur une même liaison physique (lire plus loin `` même LAN ''), Ethernet par
exemple, deux machines peuvent communiquer implique qu'elles connaissent leurs adresses
physiques respectives.

Lors du premier échange entre 2 machines d'un même LAN, si les adresses physiques
ne sont pas déjà connues, la solution à ce problème passe par l'usage du protocole ARP.

L'usage de ARP est complètement transparent pour l'utilisateur.

1. Fonctionnement

Figure 6:Demande ARP.


Sur la figure la station Ethernet A (IA, PA) a besoin de connaitre l'adresse physique de la
station Ethernet B (IB, PB), pour ce faire elle envoie un datagramme de format spécial (cf
paragraphe suivant), dédié à ARP, qui lui permet de poser la question (``question Arp '') à
l'ensemble des machines actives. L'adresse de la machine qui doit répondre étant l'objet de la
question, son adresse (champ destinataire) est donc remplacée par une adresse de `` broadcast
'' (48 bits à 1).
Toutes les machines du LAN écoutent cet échange et peuvent mettre à jour leur table de
conversion (adresse IP adresse Ethernet) pour la machine A.
Le `` broadcast '', coûteux en bande passante, est ainsi utilisé au maximum de ses possibilités.
La réponse de B est du type `` unicast ''.
Si la station B ne répond pas, la station continuera à poser la question à intervals réguliers
pendant un temps infini...

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 13


ISETSBZ Protocoles TCP/IP – TI2-RSI

Il n'est pas besoin d'utiliser ARP préalablement à chaque échange, car heureusement le
résultat est mémorisé.
En règle générale la durée de vie d'une adresse en mémoire est de l'ordre de 20 minutes et
chaque utilisation remet à jour ce compteur.

2. Format du datagramme
Le datagramme ci-dessus est encapsulé dans une trame physique du type 0x0806

Support physique protocole


Long. Physique Long. Protocole Operation
Adresse physique source (octets 1-4)
Adresse physique source (octets 5-6) Adresse logique source (octets 1-2)
Adresse logique source (octet 3-4) Adresse physique destination (octets 1-2)
Adresse physique destination (octets 3-6)
Adresse logique destination (octet 3-4)
Figure 7:trame ARP.
Le datagramme ci-dessus est encapsulé dans une trame physique du type 0x0806

 Support physique: Pour spécifier le type d'adresse physique dans les


champs adresse hardware du récepteur et adresse hardware de l’émetteur, c'est 1 pour
Ethernet.
 Protocole : pour spécifier le type d'adresse logique dans les champs adresse
internet de l’émetteur et adresse internet du récepteur, c'est 0x0800 (même valeur
que dans la trame Ethernet) pour des adresses IP.
 Long. Physique: pour spécifier la longueur de l'adresse physique (6 octets pour
Ethernet).
 Long. Protocole: pour spécifier la longueur de l'adresse logique (4 octets pour
IP).
 Opération: ce champ précise le type de l'opération, il est nécessaire car la trame
est la même pour toutes les opérations des deux protocoles qui l'utilisent.
 Adresse physique source: adresse physique de l'émetteur
 Adresse logique source: adresse logique de l'émetteur
 Adresse physique destination: adresse physique du destinataire
 Adresse logique destination: adresse logique du destinataire

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 14


ISETSBZ Protocoles TCP/IP – TI2-RSI

VII. Protocole RARP


RARP est l'acronyme de « Reverse Address Resolution Protocol », il est défini dans la
RFC 903.

Normalement une machine qui démarre obtient son adresse IP par lecture d'un fichier
sur son disque dur (ou depuis sa configuration figée dans une mémoire non volatile).

Pour certains équipements cette opération n'est pas possible voire même non souhaitée
par l'administrateur du réseau

Pour communiquer en TCP/IP une machine a besoin d'au moins une adresse IP, l'idée de
ce protocole est de la demander au réseau.

Le protocole RARP est adapté de ARP : l'émetteur envoie une requête RARP spécifiant
son adresse physique dans un datagramme de même format que celui de ARP et avec une
adresse de `` broadcast '' physique.

Le champ OPERATION contient alors le code de `` RARP question ''

Toutes les stations en activité reçoivent la requête, celles qui sont habilités à répondre
(serveurs RARP) complètent le datagramme et le renvoient directement (`` unicast '') à
l'émetteur de la requête puisqu’elles connaissent son adresse physique.

VIII. Protocole ICMP


La ICMP est l'acronyme de `` Internet Control Message Protocol '', il est historiquement
défini dans la RFC 950.

Nous avons vu que le protocole IP ne vérifie pas si les paquets émis sont arrivés à leur
destinataire dans de bonnes conditions.

Les paquets circulent d'une passerelle vers un autre jusqu'à en trouver une qui puisse les
délivrer directement à un hôte. Si une passerelle ne peut router ou délivrer directement un
paquet ou si un événement anormal arrive sur le réseau comme un trafic trop important ou une
machine indisponible, il faut pouvoir en informer l'hôte qui a émis le paquet. Celui-ci pourra
alors réagir en fonction du type de problème rencontré.

ICMP est un mécanisme de contrôle des erreurs au niveau IP.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 15


ISETSBZ Protocoles TCP/IP – TI2-RSI

1. Le système de messages d'erreur


Dans le système que nous avons décrit, chaque passerelle et chaque hôte opère de
manière autonome, route et délivre les datagrammes qui arrivent sans coordination avec
l'émetteur.

Le système fonctionne parfaitement si toutes les machines sont en ordre de marche et si


toutes les tables de routage sont à jour. Malheureusement c'est une situation idéale...

Il peut y avoir des ruptures de lignes de communication, des machines peuvent être à
l'arrêt, en pannes, déconnectées du réseau ou incapables de router les paquets parce qu'en
surcharge. Des paquets IP peuvent alors ne pas être délivrés à leur destinataire et le protocole
IP lui-même ne contient rien qui puisse permettre de détecter cet échec de transmission.

C'est pourquoi est ajouté systématiquement un mécanisme de gestion des erreurs connu
sous le doux nom d’ICMP. Il fait partie de la couche IPV6 et porte le numéro de protocole 1.

Ainsi, quand un message d'erreur arrive pour un paquet émis, c'est la couche IP elle-
même qui gère le problème, la plupart des cas sans en informer les couches supérieures.

Initialement prévu pour permettre aux passerelles d'informer les hôtes sur des erreurs de
transmission, ICMP n'est pas restreint aux échanges passerelles-hôtes, des échanges entres
hôtes sont tout à fait possibles. Le même mécanisme est valable pour les deux types
d'échanges.

2. Format des messages ICMP


Chaque message ICMP traverse le réseau dans la partie DATA d'un datagramme IP :

Entête IP Message ICMP


Figure 8:Format des messages ICMP.
La conséquence directe est que les messages ICMP sont routés comme les autres
paquets IP au travers le réseau. Il y a toutefois une exception : il peut arriver qu'un paquet
d'erreur rencontre lui-même un problème de transmission, dans ce cas on ne génère pas
d'erreur sur l'erreur !

Il est important de bien voir que puisque les messages ICMP sont encapsulés dans un
datagramme IP, ICMP n'est pas considéré comme un protocole de niveau plus élevé.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 16


ISETSBZ Protocoles TCP/IP – TI2-RSI

La raison de l'utilisation d'IP pour délivrer de telles informations, est que les messages
peuvent avoir à traverser plusieurs réseaux avant d'arriver à leur destination finale. Il n'était
donc pas possible de rester au niveau physique du réseau (à l'inverse de ARP ou RARP).

La figure suivante décrit le format du message ICMP :

Octet 1 Octet 2 Octet 3 Octet 4


Type Code Checksum

Figure 9:format du message ICMP.


Chaque message ICMP a un type particulier qui caractérise le problème qu'il signale.
Un en-tête de 32 bits est composé comme suit :

TYPE : contient le code d'erreur.

CODE : complète l'information du champ précédent.

CHECKSUM : est utilisé avec le même mécanisme de vérification que pour les
datagrammes IP mais ici il ne porte que sur le message ICMP (rappel : le checksum de l'en-
tête IP ne porte que sur son en-tête et non sur les données véhiculées).

En addition, les messages ICMP donnent toujours l'en-tête IP et les 64 premiers bits (les
deux premiers mots de quatre octets) du datagramme qui est à l'origine du problème, pour
permettre au destinataire du message d'identifier quel paquet est à l'origine du problème.

3. Quelques types de messages ICMP


Ce paragraphe examine quelques uns des principaux types de messages ICMP, ceux qui
sont le plus utilisés. Il existe onze valeurs de TYPE différentes.

 Echo Request (8), Echo reply (0) ''

Une machine envoie un message ICMP `` echo request '' pour tester si son destinataire
est accessible. N'importe quelle machine qui reçoit une telle requête doit formuler un message
ICMP `` echo reply '' en retour.

Ce mécanisme est extrêmement utile, la plupart des implémentations le propose sous


forme d'un utilitaire (ping).

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 17


ISETSBZ Protocoles TCP/IP – TI2-RSI

Figure 10:Echo request vs Echo reply.


 « Destination Unreachable (3) »

Quand une passerelle ne peut pas délivrer un datagramme IP, elle envoie un message
ICMP « destination unreachable » à l'émetteur.

Dans ce cas le champ CODE complète le message d'erreur avec :

 0 : « Network unreachable » ;
 1 : « Host unreachable » ;
 2 : « Protocol unreachable » ;
 3 : « Port unreachable » ;
 4 : « Fragmentation needed and DF set » ;
 5 : « Source route failed ».
 « Source Quench (4) »

Quand un datagramme IP arrive trop vite pour une passerelle ou un hôte, il est rejeté.

Un paquet arrive « trop vite » quand la machine qui doit le lire est congestionnée, trop
de trafic à suivre...

Dans ce cas la machine en question envoie un paquet ICMP « source quench » qui est
interprété de la façon suivante :

 L’émetteur ralenti le rythme d'envoi de ses paquets jusqu'à ce qu'il cesse de


recevoir ce message d'erreur. La vitesse est donc ajustée par une sorte
d'apprentissage rustique. Puis graduellement il augmente le débit, aussi
longtemps que le message « source quench » ne revient pas.
 Ce type de paquet ICMP a donc tendance à vouloir réguler le flux des
datagrammes au niveau IP alors que c'est une fonctionnalité de la couche de
transport (TCP).

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 18


ISETSBZ Protocoles TCP/IP – TI2-RSI

 C'est donc une sérieuse entorse à la règle d'indépendance des couches.


 « Redirect (5) »

Les tables de routage (voir le paragraphe 6) des stations restent assez statiques durant de
longues périodes. Le système d'exploitation les lit au démarrage sur le système de fichiers et
l'administrateur en change de temps en temps les éléments.

Si entre deux modifications une destination change d'emplacement, la donnée initiale dans la
table de routage peut s'avérer incorrecte.

Les passerelles connaissent de bien meilleures routes que les hôtes eux-mêmes, ainsi quand
une passerelle détecte une erreur de routage, elle fait deux choses :

 Elle envoie à l'émetteur du paquet un message ICMP « redirect » ;


 Elle redirige le paquet vers la bonne destination.
 « Router solicitation (10) vs Router advertisement (9) »

Il s'agit d'obtenir ou d'annoncer des routes.

 « Time exceeded (11) »

Chaque datagramme contient un champ TTL dit « TIME TO LIVE » appelé aussi « hop count
».

Afin de prévenir le cas où un paquet circulerait à l'infini d'une passerelle à une autre, chaque
passerelle décrémente ce compteur, rejette le paquet quand le compteur arrive à zéro et envoie
un message ICMP à l'émetteur pour le tenir au courant.

IX. IPv6

1. Introduction
Le protocole IP a été conçu, il y a plus d’une vingtaine d’années, pour connecter des
millions d’ordinateurs. Depuis quelques années, IP est victime de son succès et ne permet plus
de répondre à la demande de connexion de milliards de machines informatisées dont
disposeront les internautes de demain.

La nouvelle génération de IP, ou IPv6 va offrir de nouvelles capacités d’adressage, des


options de sécurité, et bien d’autres fonctionnalités qui vont faciliter les interconnexions
globales.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 19


ISETSBZ Protocoles TCP/IP – TI2-RSI

Il est important de souligner que les changements des protocoles comme TCP ou IP
affectent fatalement les applications existantes. En conséquence, de tels changements doivent
être effectués avec précaution et seulement quand ils deviennent nécessaires.

2. Apport d'IPv6
IPv6 a été conçu comme une évolution de IPv4 et non comme un changement radical
du protocole IP. Par conséquent, les applications fonctionnant sous IPv4 devraient fonctionner
normalement sous IPv6.

Les changements entre IPv4 et IPv6 peuvent être classées de la manière suivante :

- capacités d’adressage et de routage étendues : la taille des adresses passe de 32 à 128


bits.

- introduction d’un nouveau type d’adressage appelé anycast permettant d’identifier un


groupe de machines et un paquet envoyé à une adresse anycast est délivré à une des machines
appartenant au groupe désigné par l’adresse.

- simplification du format de l’entête de paquet : pour réduire le coût de traitement des


entêtes, certains champs ont été supprimés et d’autres sont rendus optionnels.

- possibilités de définition de la qualité de service demandée par certains types


d’applications (les applications temps réel notamment) ;

- capacités d’authentification et de confidentialité.

3. Adressage

a) Types d’adresses
IPv6 définit trois types d’adresses :

- Unicast : une adresse pour chaque interface (équipement). Un paquet envoyé à une
adresse unicast est délivré à une seule interface.

- Anycast : une adresse désigne un groupe d’interfaces. Un paquet envoyé à une adresse
anycast est délivré à une des interfaces identifiées par l’adresse anycast.

- Multicast : une adresse désigne un groupe d’interfaces. Un paquet envoyé à une


adresse multicast est délivré à toutes les interfaces identifiées par l’adresse multicast.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 20


ISETSBZ Protocoles TCP/IP – TI2-RSI

Il n’y a pas d’adresses Broadcast, comme dans IPv4, car leur fonction est réalisée par
les adresses multicast. De plus, la fonction broadcast est pénalisante, car elle nécessite un
certain traitement pour chaque nœud, même si celui-ci va ignorer le paquet diffusé en
broadcast. Le multicast cible certains nœuds seulement, ce qui est plus économique.

L’adressage IPv6 permet de regrouper les adresses hiérarchiquement, par réseau, par
fournisseur d’accès Internet, géographiquement, par société, etc. De tels regroupements
devraient permettre de diminuer la taille des tables de routage et d’accélérer le traitement au
niveau des routeurs.

Le type spécifique d’une adresse est indiqué par les premiers bits de cette adresse. Par
exemple, les préfixes suivants sont définis :

- Adresses globales de fournisseurs d’accès : préfixe = 010

- Adresses globales géographiques : préfixe = 100

- Adresses unicast sur lien local : préfixe = 1111 1110 10

- Adresses multicast : préfixe = 1111 1111

Les adresses IP peuvent être écrites de trois manières :

- une forme hexadécimale complète : X :X :X :X :X :X :X :X où chaque X représente


une valeur sur 16 bits.

- une forme hexadécimale abrégée qui ressemble à la forme précédente mais dans
laquelle les valeurs X égales à 0 sont condensées comme dans l’exemple suivant (attention
l’abréviation :: ne peut apparaître qu’une seule fois dans une adresse) : 1 :0 :0 :0 :0 :0 :0 :15
s’écrit en forme condensée 1 ::15.

- une forme permettant le rapprochement entre adresses IPv4 et adresses IPv6 qui s’écrit
sous la forme : X :X :X :X :X :X :d.d.d.d où chaque X représente une valeur sur 16 bits et
chaque d représente une valeur sur 8 bits. Par exemple au lieu d’écrire l’adresse IPv4 0 :0 :0
:0 :0 :0 :194 :12 :5 :01 avec des zéros on l’écrit de la manière suivante ::194.12.5.01.

Une adresse IPv6 qui contient une adresse IPv4 commence par une série de 96 bits à zéro.

-0 :0 :0 :0 :0 :0 :0 :0 (ou ::) est appelée adresse non spécifiée. Elle ne doit être assignée à
aucun nœud et ne peut être utilisée comme adresse de destination.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 21


ISETSBZ Protocoles TCP/IP – TI2-RSI

-0 :0 :0 :0 :0 :0 :0 :1 (ou ::1) est appelée adresse de loopback (bouclage) et peut être


utilisée par nœud pour s’envoyer un paquet à lui-même. Cette adresse est l’équivalent de
l’adresse 127.0.0.1 dans IPv4. Plan d’adressage

b) Adresses globales d’ensemble unicast


Plusieurs manières de hiérarchiser les adresses IP ont été proposées. La dernière
proposée à l’IETF est dite “Aggregatable Global Unicast Address Format” ou plan
d’adressage agrégé. Ce plan hiérarchise une adresse IP de la manière suivante :

010 TLA(13 bits) NLA (32 bits) SLA(16 bits) Id Interface (64 bits)

Figure 11:plan d’adressage agrégé.


- un champ égal à 010 (pour indiquer une adresse unicast)

- TLA (Top Level Aggregator) : les TLA identifient les grands opérateurs internationaux.

- NLA (Next Level Aggregation) : les NLA identifient les opérateurs intermédiaires
échangeant leur interconnectivité en des points d’interconnexion. NLA constitue un
identificateur de site (ou domaine).

- SLA (Site Level Aggregator) : permet de hiérarchiser le plan d’adressage de site (définir les
sous-réseaux).

- identificateur d’interface.

c) Adresses unicast de lien local


Ces adresses sont destinées à l’utilisation sur un lien unique pour des tâches telles que la
découverte des voisins ou lorsqu’il n’y a pas de routeur. Leur utilisation est donc restreinte à
un lien (par exemple, l’ensemble des machines reliées par un réseau Ethernet). Les routeurs
ne doivent pas transmettre les paquets contenant ce type d’adresses.

1111111010 54 bits à zéro Id d’interface (64


bits)
Figure 12 : Adresses unicast de lien local.
d) Adresses unicast de site local
Ces adresses sont destinées à l’utilisation sur un site unique sans l’utilisation d’un préfixe
global.

Par exemple, un site non encore connecté à Internet peut utiliser ces adresses, ce qui lui
évitera de demander un préfixe de réseau. C’est en quelque sorte des adresses IP privées. Les

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 22


ISETSBZ Protocoles TCP/IP – TI2-RSI

routeurs ne doivent pas transmettre des paquets avec ce type d’adresse en dehors du site
concerné. Plusieurs sous-réseaux peuvent être identifiés dans un site.

1111111010 38 bits à zéro Id sous-réseau (16 bits) Id d’interface (64 bits)


Figure 13:Adresses unicast de site local.
e) Adresses anycast
Un paquet destiné à une adresse anycast (donc à un ensemble d’interfaces) est délivré à
l’interface la plus proche ayant cette adresse selon la mesure de distance (nombre de routeurs
à traverser, temps de transmission, etc.) du protocole de routage utilisé.

Les adresses anycast sont syntaxiquement indistinguables des adresses unicast. Lorsqu’une
adresse unicast est attribuée à plus d’une interface, elle devient une adresse anycast et le nœud
auquel cette adresse est attribuée doit être configuré pour savoir qu’il s’agit d’une adresse
anycast.

Un usage prévu pour les adresses anycast est l’identification des groupes des routeurs
appartenant à une entreprise fournissant un accès à Internet, ce qui permet de banaliser l’accès
aux routeurs de cette entreprise. L’expérience de l’utilisation large des adresses anycast reste
pour le moment assez limitée.

Préfixe de sous-réseau (n bits) 128 - n bits à zéro


Figure 14:adresse anycast.
f) Adresses multicast
Une adresse multicast identifie un groupe de nœuds (interfaces). Un même nœud peut
appartenir à plusieurs groupes multicast.

11111111 Flag (4 bits) Scope (4 bits) Identificateur de groupe (112 bits)


Figure 15:Adresse multicast.

4. Format de paquet
Les paquets IPv6 ont la forme générale suivante :

Entête IPv6 Extension de l’entête PDU


(40 octets) (0 ou n octets))
Figure 16:Format de paquet IPv6.
L’entête IPv6 a la forme suivante :

Version Priorité Identificateur de flux (24 bits)


(4 bits) (4 bits)

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 23


ISETSBZ Protocoles TCP/IP – TI2-RSI

Longueur de données (16 bits) Entête suivant Nombre de sauts


(8 bits) (8 bits)
Adresse source (16 octets)
Adresse Destination (16 octets)
Figure 17:Format de l’entête IPv6.
- Version : égale à 6 pour IPv6,

- Priorité : valeur de la priorité du paquet,

- Indentificateur de flux : utilisé pour marquer les paquets pour lesquels un traitement spécial
doit être fait par les routeurs,

- Longueur de données : longueur du reste du paquet (extension de l’entête et données de


niveau transport).

- Entête suivant : identifie le type de l’entête qui suit l’entête IPv6,

- Nombre de sauts : nombre de sauts (de routeurs) restant pour le paquet avant destruction.

On notera qu’il n’y a plus de bits de contrôle (“check sum”) de l’entête du paquet comme
dans le cas de IPv4. La raison est que les réseaux physiques sont de meilleure qualité
aujourd’hui, ils vérifient eux-mêmes les erreurs de transmission sur les trames qui contiennent
les paquets. Par conséquent, supprimer le contrôle des erreurs sur l’entête diminue le temps de
calcul des paquets par les nœuds intermédiaires.

Pour se prémunir contre des paquets routés par erreur (erreur non détectée par le réseau
physique) un contrôle doit être fait au niveau transport. La solution retenue actuellement
consiste à effectuer un contrôle (en utilisant des bits de contrôle calculés par la source et
contrôlés par la destination) par la couche transport.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 24


ISETSBZ Protocoles TCP/IP – TI2-RSI

Chapitre 3 : TCP-IP, la couche transport

Objectifs spécifiques

A la fin de ce chapitre, l’étudiant doit être capable de :

 Décrire le protocole TCP et sa fonction.


 Décrire la synchronisation et le contrôle de flux TCP.
 Décrire le fonctionnement du protocole UDP et les processus correspondants.
 Identifier les numéros de port les plus courants.
 Décrire les formats d'en-tête TCP et UDP.
 Décrire le fenêtrage.
 Décrire le mécanisme d'accusés de réception.
Plan du chapitre

I. Protocole UDP.

II. Protocole TCP.

Volume horaire :

4 heures et demi

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 25


ISETSBZ Protocoles TCP/IP – TI2-RSI

X. Protocole UDP

1. Introduction
UDP est l'acronyme de « User Datagram Protocol », il est défini dans la RFC 768
[Postel 1980]. Les données encapsulées dans un entête UDP sont des « paquets UDP ».

Au niveau de la couche Internet les datagrammes sont routés d'une machine à une autre
en fonction des bits de l'adresse IP qui identifient le numéro de réseau. Lors de cette opération
aucune distinction n'est faite entre les services ou les utilisateurs qui émettent ou reçoivent des
datagrammes, ie tous les datagrammes sont mélangés.

La couche UDP ajoute un mécanisme qui permet l'identification du service (niveau


Application). En effet, il est indispensable de faire un tri entre les diverses applications
(services) : plusieurs programmes de plusieurs utilisateurs peuvent utiliser simultanément la
même couche de transport et il ne doit pas y avoir de confusion entre eux.

Pour le système Unix, les programmes sont identifiés de manière unique par un numéro
de processus, mais ce numéro est éphémère, non prévisible à distance, il ne peut servir à cette
fonction.

L'idée est d'associer la destination à la fonction qu'elle remplit. Cette identification se


fait à l'aide d'un entier positif que l'on baptise port.

La plupart des systèmes d'exploitation fournissent le moyen d'un accès synchrone à un


port. Ce logiciel doit alors assurer la possibilité de gérer la file d'attente des paquets qui
arrivent, jusqu'à ce qu'un processus (Application) les lise.

Pour communiquer avec un service distant, il faut donc avoir connaissance de son
numéro de port, en plus de l'adresse IP de la machine elle-même.

2. Description de l'entête
Un paquet UDP est conçu pour être encapsulé dans un datagramme IP et permettre un
échange de données entre deux applications, sans échange préliminaire. Ainsi, si les données
à transmettre n'obligent pas IP à fragmenter, un paquet UDP génère un datagramme IP et,
c'est tout !

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 26


ISETSBZ Protocoles TCP/IP – TI2-RSI

Figure 18:UDP encapsulé dans IP.


UDP apporte un mécanisme de gestion des ports, au-dessus de la couche Internet ;

UDP est simplement une interface au-dessus d'IP, ainsi l'émission des messages se fait-
elle sans garantie de bon acheminement. Plus généralement, tous les défauts d'IP recensés au
chapitre précédent sont applicables à UDP.

Plus particulièrement, les paquets à destination d'une application UDP sont conservés
dans une pile de type FIFO. Si l'application destinatrice ne les « consomme » pas assez
rapidement, les plus anciens paquets risquent d'être écrasés par les plus récents... Un risque
supplémentaire (par rapport aux propriétés d'IP déjà connues) de perte de données.

Il n'y a aucun retour d'information au niveau du protocole pour apporter un quelconque


moyen de contrôle sur le bon acheminement des données.C'est au niveau applicatif qu'il
convient de prendre en compte cette lacune.

UDP est aussi désigné comme un mode de transport « non connecté », ou encore mode
datagramme, par opposition à TCP ou SCTP que nous examinerons dans les prochains
chapitres.

Parmi les utilisations les plus courantes d'UDP, on peut signaler le serveur de noms,En
local d'autres applications très utiles comme TFTP ou NFS sont également susceptibles
d'employer UDP.

La figure suivante décrit la structure de l'entête.

Port UDP source Port UDP destination


Longueur Checksum
Données
Figure 19:Format d'un message UDP.
Port UDP source : Le numéro de port de l'émetteur du paquet. Ce champ est optionnel,
quand il est spécifié il indique le numéro de port que le destinataire doit employer pour sa
Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 27
ISETSBZ Protocoles TCP/IP – TI2-RSI

réponse. La valeur zéro (0) indique qu'il est inutilisé, le port 0 n'est donc pas celui d'un service
valide.

Port UDP destination : Le numéro de port du destinataire du paquet.

Longueur : C'est la longueur du paquet, donc comprenant l'entête et le message, la


longueur minimale est 8, la longueur maximale est 65 535 - H(IP). Dans le cas courant (IP
sans option) cette taille maximale est donc de 65 515.

Checksum : Le checksum est optionnel et toutes les implémentations ne l'utilisent pas.


S'il est employé, il porte sur un pseudo entête constitué de la manière suivante :

3. Ports réservés - ports disponibles


Le numéro de port est un entier 16 bits non signé, les bornes sont donc [0,65535], par
construction. Nous avons vu précédemment que le port 0 n'est pas exploitable en tant que
désignation de service valide, donc le segment réellement exploitable est [1,65535].

Toute machine qui utilise la pile TCP/IP se doit de connaître un certain nombre de
services bien connus, repérés par une série de ports bien connus ou « well known port
numbers », pour pouvoir dialoguer avec les autres machines de l'Internet (vs Intranet). Sur une
machine Unix, cette liste de services est placée dans le fichier /etc/services et lisible par tous
les utilisateurs et toutes les applications.

Nom Port Proto Commentaire


echo 7 tcp
echo 7 udp
ftp-data 20 tcp #File Transfer [Default Data]
ftp-data 20 udp #File Transfer [Default Data]
ftp 21 tcp #File Transfer [Control]
ftp 21 udp #File Transfer [Control]
ssh 22 tcp #Secure Shell Login
ssh 22 udp #Secure Shell Login
smtp 25 tcp mail #Simple Mail Transfer
smtp 25 udp mail #Simple Mail Transfer
domain 53 tcp #Domain Name Server
domain 53 udp #Domain Name Server
http 80 tcp www www-http #World Wide Web HTTP
http 80 udp www www-http #World Wide Web HTTP
pop3 110 tcp #Post Office Protocol - Version 3
pop3 110 udp #Post Office Protocol - Version 3
imap 143 tcp #Interim Mail Access Protocol
imap 143 udp #Interim Mail Access Protocol
Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 28
ISETSBZ Protocoles TCP/IP – TI2-RSI

https 443 tcp #Secure World Wide Web HTTP


https 443 udp #Secure World Wide Web HTTP
Tableau 1:quelques ports connus.
Le tableau présente quelques-uns des ports bien connus plus connus les plus utilisés, il y
en a quantité d'autres

XI.

XII. Protocole TCP


TCP est l'acronyme de `` Transmission Control Protocol '', il est défini dans la RFC 793
[Postel 1981c]. Les données encapsulées dans un en-tête TCP sont des `` paquets TCP ''.

Figure 20:TCP encapsulé dans IP.

1. Caractéristiques de TCP
TCP contient un mécanisme pour assurer le bon acheminement des données. Cette
possibilité est absolument indispensable dès lors que les applications doivent transmettre de
gros volumes de données et de façon fiable.

Il faut préciser que les paquets de données sont acquittés de bout en bout et non de point
en point. D'une manière générale le réseau assure l'acheminement et les extrémités le contrôle.

Le protocole TCP permet l'établissement d'un circuit virtuel entre les deux points qui
échangent de l'information. On dit aussi que TCP fonctionne en mode connecté (par
opposition à UDP qui est en mode non connecté ou encore mode datagramme).

Avant le transfert les 2 applications se mettent en relation avec leurs OS respectifs, les
informent de leurs désirs d'établir ou de recevoir une communication.

Pratiquement, l'une des deux applications doit effectuer un appel que l'autre doit
accepter.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 29


ISETSBZ Protocoles TCP/IP – TI2-RSI

Les protocoles des 2 OS communiquent alors en s'envoyant des messages au travers du


réseau pour vérifier que le transfert est possible (autorisé) et que les deux applications sont
prêtes pour leurs rôles.

Une fois ces préliminaires établis, les modules de protocole informent les applications
respectives que la connexion est établie et que le transfert peut débuter.

Durant le transfert, le dialogue entre les protocoles continue, pour vérifier le bon
acheminement des données.

Conceptuellement, pour établir une connexion -- un circuit virtuel -- il faut avoir réunis
les éléments du quintuplet :

 Le protocole : C'est TCP mais il y pourrait y avoir d'autres transports qui


assurent le même service...
 IP locale : Adresse de la machine qui émet.
 Port local : Le numéro de port associé au processus. Il est imposé ou est
déterminé automatiquement comme nous le verrons dans le cours de
programmation.
 IP distante : Adresse de la machine distante.
 Port distant : Le numéro de port associé au service à atteindre. Il est obligatoire
de le connaître précisement.

L'ensemble de ces cinq éléments définit un circuit virtuel unique. Que l'un d'eux change
et il s'agit d'une autre connexion !

Aux deux extrémités du circuit virtuel, les applications s'envoient des volumes de
données absolument quelconques, allant de 0 octet à des centaines (ou plus) de Mo.

À la réception, le protocole délivre les octets exactement comme ils ont été envoyés.

Le protocole est libre de fragmenter le flux de données en paquets de tailles adaptées


aux réseaux traversés. Il lui incombe cependant d'effectuer le réassemblage et donc de stocker
temporairement les fragments avant de les présenter dans le bon ordre à l'application.

TCP est indépendant vis à vis des données transportées, c'est un flux d'octets non
structuré sur lequel il n'agit pas.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 30


ISETSBZ Protocoles TCP/IP – TI2-RSI

Le protocole autorise la clôture du flot dans une direction tandis que l'autre continue à
être active. Le circuit virtuel est rompu quand les deux parties ont clos le flux.

2. Description de l'en-tête
La figure suivante montre la structure d'un en-tête TCP. Sa taille normale est de 20
octets, à moins que des options soient présentes.

Port origine Port destination


Numéro de séquence
Numéro d'acquittement
Off RES U A P R S F Fenêtre
CHECKSUM Pointeur d'urgence
Options bourrage
Données
Figure 21:Format d'un segment TCP.
 Port origine : Le numéro de port de l'application locale.
 Port destination: Le numéro de port de l'application distante.
 Numéro de séquence : C'est un nombre qui identifie la position des données à
transmettre par rapport au segment original. Au démarrage de chaque connexion, ce
champ contient une valeur non nulle et non facilement prévisible, c'est la séquence
initiale ou ISN

TCP numérote chaque octet transmis en incrémentant ce nombre 32 bits non signé. Il
repasse à 0 après avoir atteint 232 - 1 (4 294 967 295).

Pour le premier octet des données transmis ce nombre est incrémenté de un, et ainsi de
suite...

 Numéro d'acquittement: C'est un numéro qui identifie la position du dernier octet reçu
dans le flux entrant.

Il doit s'accompagner du drapeau ACK.

 Off : pour OFFSET, il s'agit d'un déplacement qui permet d'atteindre les données
quand il y a des options. Codé sur 4 bits, il s'agit du nombre de mots de 4 octets qui
composent l'en-tête. Le déplacement maximum est donc de 60 octets (24-1 x 4 octets).

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 31


ISETSBZ Protocoles TCP/IP – TI2-RSI

Dans le cas d'un en-tête sans option, ce champ porte la valeur 5. 10 mots de 4 octets
sont donc possibles pour les options.
 RES : Six bits réservés pour un usage futur !
 Code : Six bits pour influer sur le comportement de TCP en caractérisant l'usage du
segment :
 URG Le champ `` URGENT POINTER '' doit être exploité.
 ACK : Le champ `` ACNOWLEDGMENT NUMBER '' doit être exploité.
 PSH : C'est une notification de l'émetteur au récepteur, pour lui indiquer que
toutes les données collectées doivent être transmises à l'application sans attendre
les éventuelles données qui suivent.
 RST : Re-initialisation de la connexion
 SYN : Le champ `` SEQUENCE NUMBER '' contient la valeur de début de
connexion.
 FIN : L'émetteur du segment a fini d'émettre.

En fonctionnement normal un seul bit est activé à la fois mais ce n'est pas une
obligation. La RFC 1024 [Postel 1987] décrit l'existence de paquets tcp dénommés ``
Christmas tree '' ou `` paquet kamikaze '' comprenant les bits SYN+URG+PSH+FIN !

 Fenêtre : Le flux TCP est contrôlé de part et d'autre pour les octets compris dans une
zone bien délimitée et nommée `` fenêtre ''. La taille de celle-ci est définie par un
entier non signé de 16 bits, qui en limite donc théoriquement la taille à 65 535 octets
(ce n'est pas complètement exact, voir plus loin l'option wscale).

Chaque partie annonce ainsi la taille de son buffer de réception. Par construction,
l'émetteur n'envoie pas plus de données que le récepteur ne peut en accepter.

Cette valeur varie en fonction de la nature du réseau et surtout de la bande passante


devinée à l'aide de statistiques sur la valeur du RTT.

 CHECKSUM : Un calcul qui porte sur la totalité du segment, en-tête et données.


 Pointeur d'urgence: Ce champ n'est valide que si le drapeau URG est armé. Ce
pointeur contient alors un offset à ajouter à la valeur de SEQUENCE NUMBER du
segment en cours pour délimiter la zone des données urgentes à transmettre à
l'application.
Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 32
ISETSBZ Protocoles TCP/IP – TI2-RSI

Le mécanisme de transmission à l'application dépend du système d'exploitation.

 Options : C'est un paramétrage de TCP. Sa présence est détectée dès lors que
l'OFFSET est supérieur à 5.

Les options utilisées :

 Mss : La taille maximale du segment des données applicatives que l'émetteur


accepte de recevoir. Au moment de l'établissement d'une connexion (paquet
comportant le flag SYN), chaque partie annonce sa taille de MSS. Ce n'est pas
une négociation. Pour de l'Ethernet la valeur est 1460 ( = MTU - 2 x 20).
 Timestamp : pour calculer la durée d'un aller et retour (RTT ou `` round trip time
'').
 Wscale : Facteur d'échelle (`` shift '') pour augmenter la taille de la fenêtre au
delà des 16 bits du champ WINDOW (> 65535).
 Quand cette valeur n'est pas nulle, la taille de la fenêtre est de 65535 x 2shift.
Par exemple si `` shift '' vaut 1 la taille de la fenêtre est de 131072 octets soit
encore 128 ko.
 Nop : Les options utilisent un nombre quelconque d'octets par contre les paquet
TCP sont toujours alignés sur une taille de mot de quatre octets ; à cet effet une
option `` No Operation '' ou nop, codée sur 1 seul octet, est prévue pour
compléter les mots.
 PADDING : Remplissage pour se caler sur un mot de 32 bits.
 DATAS : Les données transportées. Cette partie est de longueur nulle à
l'établissement de la connexion, elle peut également être nulle par choix de
l'application.

3. Début et clôture d'une connexion

a) Établissement d'une connexion


L'établissement d'une connexion TCP s'effectue en trois temps, comme le schéma de la
figure suivante l'explicite.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 33


ISETSBZ Protocoles TCP/IP – TI2-RSI

Figure 22:Établissement d'une connexion.


On suppose que l'émetteur du premier paquet avec le bit SYN a connaissance du couple
(adresse IP du récepteur, numéro de port du service souhaité).

L'émetteur du premier paquet est à l'origine de l'établissement du circuit virtuel, c'est


une attitude généralement qualifiée de `` cliente ''. On dit aussi que le client effectue une
`` ouverture active ''.

Le récepteur du premier paquet accepte l'établissement de la connexion, ce qui suppose


qu'il était prêt à le faire avant que la partie cliente en prenne l'initiative. C'est une attitude de ``
serveur ''. On dit aussi que le serveur effectue une `` ouverture passive ''

 Le client envoie un segment comportant le drapeau SYN, avec sa séquence


initiale (ISN = x).
 Le serveur répond avec sa propre séquence (ISN = y), mais il doit également
acquitter le paquet précédent, ce qu'il fait avec ACK (seq = x + 1).
 Le client doit acquitter le deuxième segment avec ACK (seq = y + 1).

Une fois achevée cette phase nommée `` three-way handshake '', les deux applications
sont en mesure d'échanger les octets qui justifient l'établissement de la connexion.

b) Clôture d'une connexion


 Clôture canonique

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 34


ISETSBZ Protocoles TCP/IP – TI2-RSI

Un échange de trois segments est nécessaire pour l'établissement de la connexion ; il en faut


quatre pour qu'elle s'achève de manière canonique

La raison est qu'une connexion TCP est `` full-duplex '', ce qui implique que les données
circulent indépendamment dans un sens et dans l'autre. Les deux directions doivent donc
pouvoir être interrompues indépendamment l'une de l'autre.

L'application qui envoie un paquet avec le drapeau indique à la couche FINTCP de la


machine distante qu'elle n'enverra plus de donnée. La machine distante doit acquitter ce
segment, en incrémentant d'une unité le `` sequence number ''.

La connexion est véritablement terminée quand les deux applications ont effectué ce
travail. Il y a donc échange de 4 paquets pour terminer la connexion.

Au total, sans compter les échanges propres au transfert des données, les deux couches
TCP doivent gérer 7 paquets, il faut en tenir compte lors de la conception des applications !

 Clôture abrupte

Au lieu d'un échange de quatre paquets comme précédemment, un mécanisme de reset


est prévu pour terminer une connexion au plus vite (). Abortive release

L'extrémité qui arrête brutalement la connexion émet un paquet assorti du bit , après
avoir (ou non) envoyé les derniers octets en attente. Ce paquet clôt l'échange. Il ne reçoit
aucun acquittement. RST

L'extrémité qui reçoit le paquet de reset (bit RST), transmet les éventuelles dernières
données à l'application et provoque une sortie d'erreur du type `` Connection reset par peer ''
pour la primitive de lecture réseau. Comme c'est le dernier échange, si des données restaient à
transmettre à l'application qui a envoyé le elles peuvent être détruites.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 35


ISETSBZ Protocoles TCP/IP – TI2-RSI

Figure 23:Émission d'un RST.

4. Contrôle du transport
Le bon acheminement des données applicatives est assuré par un mécanisme
d'acquittement des paquets, comme nous avons déjà pu l'examiner partiellement au
paragraphe précédent.

a) Mécanisme de l'acquittement

Figure 24:Mécanisme d’acquittement.


Au départ du paquet i une horloge se déclenche. Si cette horloge dépasse une valeur
limite avant réception de l'ACK le paquet i est retransmis cette valeur limite est basée sur la
constante MSL qui est un choix d'implémentation, généralement de 30 secondes à 2 minutes.
Le temps maximum d'attente est donc de 2 x MSL.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 36


ISETSBZ Protocoles TCP/IP – TI2-RSI

Le temps qui s'écoule entre l'émission d'un paquet et la réception de son acquittement
est le RTT, il doit donc être inférieur à 2 x MSL. Il est courant sur l'Internet actuel d'avoir un
RTT de l'ordre de la seconde. Il faut noter que le RTT est la somme des temps de transit entre
chaque routeur et du temps passé dans les diverses files d'attente sur les routeurs.

L'émetteur conserve la trace du paquet i pour éventuellement le renvoyer.

b) Fenêtres glissantes
Cette attente de l'acquittement est pénalisante, sauf si on utilise un mécanisme de «
fenêtres glissantes », comme le suggère la figure :

Figure 25:Principe de la fenêtre glissante.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 37


ISETSBZ Protocoles TCP/IP – TI2-RSI

Chapitre 4 : TCP-IP, la couche application (NAT-PAT)

Objectifs spécifiques

A la fin de ce chapitre, l’étudiant doit être capable de :

 Expliquez le fonctionnement de NAT et PAT.


Plan du chapitre

I. Introduction

II. La NAT statique

III. La NAT dynamique (translation avec ports)

IV. Statique ou dynamique.

V. Le port forwarding.

Volume horaire :

7 heures et demi.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 38


ISETSBZ Protocoles TCP/IP – TI2-RSI

I. Introduction
Le terme NAT représente les initiales de « Network Address Translation », ou «
Traduction d'Adresse Réseau » en français. Mais il est souvent utilisé pour représenter
différents concepts que nous allons différencier, notamment NAT statique, NAT dynamique,
PAT, IP masquerading, etc.

Si l'on s'en tient intrinsèquement à la définition du terme NAT, cela représente la


modification des adresses IP dans l'en-tête d'un datagramme IP effectué par un routeur.

On verra par la suite quelles sont les différentes applications possibles.

On parlera de SNAT quand c'est l'adresse source du paquet qui est modifiée, et de
DNAT quand il s'agit de l'adresse destination

II. La NAT statique

1. Le principe
La NAT statique, se base sur l'association de n adresses avec n adresses. C'est-à-dire
qu'à une adresse IP interne, on associe une adresse IP externe. Dans ce cas, la seule action qui
sera effectuée par le routeur sera de remplacer l'adresse source ou destination par l'adresse
correspondante.

On prend l'exemple suivant:

Figure 26:Nat statique.


La machine veut envoyer un paquet sur Internet, vers www.isetsbz.edu, par exemple.
Donc dans l'en-tête IP, l'adresse en destination est celle de www.isetsbz.edu, et en source c'est
10.0.0.1. Si jamais il n'y avait pas de translation d'adresse, le paquet arriverait bien a la
machine www.isetsbz.edu, mais celle-ci essaierait de renvoyer sa réponse a 10.0.0.1 qui n'est
pas une adresse routée sur Internet ! (Elle fait partie d'une classe d'adresses réservées pour les
réseaux privés) Et notre machine 1 n'obtiendrait jamais de réponse...

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 39


ISETSBZ Protocoles TCP/IP – TI2-RSI

Ainsi, une machine ayant une adresse privée ne pourra pas recevoir de réponse à ses
requêtes sans un mécanisme supplémentaire.

2. Le fonctionnement de la NAT statique


Nous avons vu qu'une machine ayant une adresse privée ne pouvait pas dialoguer sur
Internet avec celle-ci, donc pour résoudre ce problème, on va lui donner une adresse publique
virtuelle qui va lui permettre d'accéder à Internet.

Ainsi, un routeur (la plupart du temps la passerelle d'accès à Internet) va modifier dans
l'en-tête IP du paquet l'adresse source 10.0.0.1 pour mettre une adresse valide sur Internet
193.22.35.43 (dans notre exemple, on choisit volontairement une adresse supplémentaire pour
ne pas prendre la même que le routeur, ce qui l'empêcherait, lui, de pouvoir dialoguer sur
Internet).

Le paquet va donc arriver à sa destination, et celle-ci va pouvoir le renvoyer à


193.22.35.43 qui est une adresse valide sur Internet. Le paquet va arriver jusqu'au routeur qui
a fait l'association entre 193.22.35.43 et 10.0.0.1, il va donc modifier l'adresse destination
193.22.35.43 et mettre à la place 10.0.0.1, et renvoyer le paquet sur le réseau local.

Ainsi, la machine 1 est vue de l'Internet avec l'adresse 193.22.35.43. S'il s'agit d'un
serveur web, il suffit d'envoyer une requête HTTP vers cette adresse pour obtenir le site web.

La NAT statique nous a permis de rendre une machine accessible sur Internet alors
qu'elle possédait une adresse privée. On a simplement fait une association entre une adresse
privée et une adresse publique : 10.0.0.1 <--> 193.22.35.43

3. Avantages et inconvénients de la NAT statique


Associant une adresse IP publique à une adresse IP privée, nous avons pu rendre une
machine accessible sur Internet. Par contre, on remarque qu'avec ce principe, on est obligé
d'avoir une adresse publique par machine voulant accéder à Internet. Cela ne va pas régler
notre problème de pénurie d'adresses IP...

D'autre part, tant qu'à donner une adresse publique par machine, pourquoi ne pas leur
donner cette adresse directement plutôt que de passer par un intermédiaire ?

À cette question, on peut apporter plusieurs éléments de réponse. D'une part, il est
souvent préférable de garder un adressage uniforme en interne et de ne pas mêler les adresses
publiques aux adresses privées. Ainsi, si on doit faire des modifications, changements,

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 40


ISETSBZ Protocoles TCP/IP – TI2-RSI

interventions sur le réseau local, on peut facilement changer la correspondance entre les
adresses privées et les adresses publiques pour rediriger les requêtes vers un serveur en état de
marche.

D'autre part, on gâche un certain nombre d'adresses lorsqu'on découpe un réseau en


sous-réseaux (adresse de réseau, adresse de broadcast, etc.), comme lorsqu'on veut créer une
DMZ pour rendre ses serveurs publics disponibles. Avec la NAT statique, on évite de perdre
ces adresses. Malgré ces quelques avantages, le problème de pénurie d'adresses n'a toujours
pas été réglé. Pour cela, on va se pencher sur la NAT dynamique

4. Problèmes de routage liés à la NAT statique.

a) Proxy ARP
Les problèmes montrés ne sont pas toujours rencontrés lors de l'implémentation de la
NAT statique. Si celle-ci est bien faite, tous les mécanismes décrits devraient être
implémentés de façon transparente pour l'utilisateur.

Ce qui va suivre demande d'avoir quelques notions sur le fonctionnement de la pile


TCP/IP.

Un premier problème rencontré est celui de la redirection d'un paquet vers l'adresse
virtuelle de la NAT statique.On considérera l'exemple précédent auquel on ajoute le premier
routeur rencontré sur Internet.

Figure 27:NAT statique et proxy ARP.

La machine 1 fait une requête vers le site www.iset-sbz.edu.

Le paquet est NATé au niveau du routeur avec comme adresse source 193.22.35.43,
ainsi, le site web www.isetsbz.edu renvoie sa réponse vers cette adresse. Le paquet est routé

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 41


ISETSBZ Protocoles TCP/IP – TI2-RSI

sur Internet et arrive sur le routeur Internet (celui qui précède le routeur de l'entreprise ou du
particulier).

Celui-ci regarde l'adresse de destination et observe qu'elle se situe sur le même réseau
qu'une de ses interfaces. Ainsi, elle a maintenant besoin de l'adresse MAC de la machine
193.22.35.43 pour lui envoyer le paquet.

Elle fait donc une requête ARP en demandant « Quelle est l'adresse MAC de la machine
ayant 193.22.35.43 comme adresse IP ? » Or, sur ce réseau, aucune machine n'a cette adresse
puisqu'il s'agit d'une adresse virtuelle. Il faut donc que le routeur (193.22.35.42) réponde lui-
même à cette requête ARP. C'est ce que l'on appelle faire proxy ARP.

Quand vous faites de la NAT statique, le proxy ARP est souvent automatiquement
implémenté, cependant, il est bon de connaître ce mécanisme si ce n'est pas le cas.

Il y a plusieurs façons de pallier ce problème :

 soit mettre en place soi-même un mécanisme de proxy ARP sur la machine


faisant la NAT statique.
 soit ajouter une entrée statique dans la table ARP du routeur Internet (pas le
routeur faisant la NAT, mais le premier routeur rencontré après celui-ci sur
Internet).

b) routage sur la passerelle


Un second problème peut survenir sur l'équipement qui fait la NAT. Revenons à
l'exemple précédent.

Le routeur Internet envoie le paquet au routeur de l'entreprise. Celui-ci reçoit la trame


Ethernet, voit que c'est son adresse MAC qui est en destination, il envoie donc le contenu des
données à la couche IP. Celle-ci voit que c'est l'adresse 192.22.35.43 (l'adresse virtuelle de
notre machine) qui est en destination. Il va voir dans la table de routage, et là, il peut y avoir
un problème...

Soit une route spécifique existe pour cette adresse pour rediriger le paquet vers le réseau
interne, soit ce n'est pas le cas, et il sera renvoyé sur l'interface externe du routeur, étant donné
que l'adresse de destination appartient au même réseau que son interface externe 193.22.35.42
!

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 42


ISETSBZ Protocoles TCP/IP – TI2-RSI

Pour que la NAT fonctionne, il faut donc qu'il y ait une route spécifique vers le réseau
interne. Ou alors que la règle de NAT inverse soit implémentée avant le routage, comme ça
l'adresse destination sera 10.0.0.1 qui sera routée correctement vers le réseau interne.

Ainsi, quand le routeur recevra un paquet à destination de l'adresse virtuelle


193.22.35.43, il le redirigera bien vers l'adresse réelle de la machine, 10.0.0.1.

III. La NAT dynamique (translation avec ports)

1. Principe
La NAT dynamique est aussi appelée IP masquerading. Contrairement à la NAT
statique, la NAT dynamique associe une seule adresse à n adresses (ou pour être plus précis,
m adresses à n adresses, les adresses pour sortir étant choisies dans un pool). Ainsi, on peut
associer une adresse publique à n adresses privées et permettre ainsi à un grand nombre de
machines ayant des adresses privées d'accéder à Internet !

Par contre, nous verrons que cette méthode possède quelques inconvénients. Et
contrairement à la NAT statique, le routeur qui effectue la NAT devra à la fois modifier les
adresses IP mais aussi les ports TCP/UDP (ce que l'on appelle PAT, Port Address
Translation).

2. Fonctionnement de la NAT dynamique


Le fonctionnement est un peu différent de celui de la NAT statique. Nous allons
notamment voir pourquoi il faut faire de la PAT et non pas une simple traduction des adresses
IP.

Reprenons l'exemple précédent :

Figure 28:Nat dynamique.


Cette fois, c'est l'adresse publique de l'interface externe du routeur 193.22.35.42 qui va
être utilisée pour sortir. Ainsi, lorsque le paquet arrive à la machine de destination, www.iset-

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 43


ISETSBZ Protocoles TCP/IP – TI2-RSI

sbz.edu par exemple, celle-ci le renvoie vers l'adresse 193.22.35.42. Le routeur reçoit donc ce
paquet et voit que l'adresse de destination est lui-même !

Comment peut-il alors savoir si le paquet est pour lui ou une machine en interne ?

C'est grâce aux ports TCP/UDP qu'il va pouvoir faire la différence. Ainsi, si une
machine en interne fait une requête avec comme port TCP source 2356, le routeur pourra
savoir que lorsqu'il recevra un paquet avec comme port destination 2356, il faut le rediriger
vers la machine en interne qui a initialisé la connexion.

La question qui se pose que se passe-t-il si deux machines du réseau interne initialisent
des connexions avec le même port TCP/UDP ? Tout a été prévu pour pallier ce problème. En
fait, le routeur remplace le port TCP/UDP source par un nouveau qu'il choisit lui-même.
Ainsi, comme c'est lui qui les choisit, il n'en choisira pas deux identiques, et pourra identifier
chacune des connexions.

On reprend donc depuis le début le fonctionnement.

La machine 10.0.0.1 veut se connecter au site www.isetsbz.edu, elle envoie donc un


paquet avec comme adresse source la sienne, 10.0.0.1, et comme port source un port
quelconque supérieur à 1024, soit par exemple 5987. Le paquet arrive au routeur qui fait la
translation, il remplace donc l'adresse IP source par la sienne 193.22.35.42, et la PAT en
remplaçant le port TCP/UDP source 5987 par un de son choix, 10000 par exemple.

Il garde ces informations de correspondance bien au chaud dans une table NAT.

Le paquet arrive à www.isetsbz.edu qui le renvoie à 193.22.35.42. Le paquet arrive au


routeur, il voit que l'adresse destination est lui-même, il regarde donc le port destination
TCP/UDP qui est 10000. Il va regarder dans la table NAT pour avoir la correspondance. Il
sait qu'il faut envoyer ce paquet à 10.0.0.1, tout en ayant modifié le port destination 10000 en
5987 qui est le port sur lequel 10.0.0.1 a initialisé la connexion.

Et voilà. On peut ainsi masquer autant de machines que l'on veut derrière une seule
adresse publique !

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 44


ISETSBZ Protocoles TCP/IP – TI2-RSI

3. Avantages et inconvénients de la NAT dynamique


Comme nous l'avons vu, la NAT dynamique permet à des machines ayant des adresses
privées d'accéder à Internet. Cependant, contrairement à la NAT statique, elle ne permet pas
d'être joint par une machine de l'Internet.

Effectivement, si la NAT dynamique marche, c'est parce que le routeur qui fait la NAT
reçoit les informations de la machine en interne (adresse IP, port TCP/UDP). Par contre, il
n'aura aucune de ces informations si la connexion est initialisée de l'extérieur... Le paquet
arrivera avec comme adresse de destination le routeur, et le routeur ne saura pas vers qui
rediriger la requête en interne.

La NAT dynamique ne permet donc que de sortir sur Internet, et non pas d'être
joignable. Elle est donc utile pour partager un accès Internet, mais pas pour rendre un serveur
accessible.

De plus, étant donné que l'on peut « cacher » un grand nombre de machines derrière une
seule adresse publique, cela permet de répondre à notre problème de pénurie d'adresses.

Par ailleurs, les machines n'étant pas accessibles de l'extérieur, cela donne un petit plus
au niveau de la sécurité.

Sans le savoir, si vous avez chez vous un routeur fourni par votre fournisseur d'accès et
que votre machine a une adresse en 192.168.X.X, vous n'êtes pas directement joignable par
les vilains pirates d'Internet !

4. Problèmes liés à la NAT dynamique.

a) ICMP
La NAT dynamique demande l'utilisation des ports TCP/UDP, cependant, tous les
protocoles utilisés sur un réseau n'utilisent pas obligatoirement ces ports, notamment les
protocoles ICMP, PPTP, Netbios, etc.

Prenons par exemple le protocole ICMP. Se limitant à la couche 3, il n'utilise pas de


port TCP ou UDP. Il n'est donc pas possible de faire de la NAT dynamique de façon
classique.

Une méthode spécifique doit être implémentée pour permettre la NAT du trafic ICMP.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 45


ISETSBZ Protocoles TCP/IP – TI2-RSI

Pour cela, au lieu de se baser sur les ports TCP/UDP, on peut se baser sur l'identifiant
ICMP présent dans l'en-tête du message ICMP.

Ainsi, le mécanisme est exactement le même, mis à part que l'on utilise cet identifiant,
plutôt que les ports TCP/UDP.

Il faut donc implémenter spécifiquement ce type de NAT pour le protocole ICMP.

Par ailleurs, certains paquets ICMP contiennent dans leur donnée des informations
concernant les datagrammes IP qui ont causé l'erreur. Le routeur faisant la NAT doit donc
aussi modifier les informations contenues dans la donnée pour que l'information apportée à la
machine émettrice soit pertinente.

b) Ftp
Le protocole FTP a un fonctionnement un peu particulier. Il utilise deux connexions en
parallèle. L'une pour le contrôle de la connexion, l'autre pour le transfert des données.

Le FTP peut fonctionner selon deux modes différents, actifs ou passifs. En mode passif,
pas de problème, les connexions sont initialisées de l'intérieur pour chacun de ces deux
canaux. Par contre, pour le mode actif, la connexion de contrôle est d'abord initialisée de
l'intérieur, et quand des données sont demandées, c'est le serveur qui initialise la connexion de
données à partir de l'extérieur. Et comme nous le savons, il n'est pas possible d'initialiser de
connexion à partir de l'extérieur du réseau avec de la NAT dynamique.

Un autre problème du protocole FTP est qu'il contient des données se rapportant aux
adresses des machines. Ainsi quand les adresses sont NATées, cela pose problème...

IV. Statique ou dynamique.

Quand faire de la NAT statique.


Nous avons vu que la NAT statique permettait de rendre disponible une machine sur
Internet, mais qu'il fallait par contre une adresse IP pour que ce serveur soit joignable.

Il est donc utile d'utiliser la NAT statique quand vous voulez rendre une application
disponible sur Internet, comme un serveur web, mail ou un serveur FTP.

Quand faire de la NAT dynamique ??


La NAT dynamique permet d'une part de donner un accès à Internet à des machines
possédant des adresses privées, et d'autre part d'apporter un petit plus en terme de sécurité.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 46


ISETSBZ Protocoles TCP/IP – TI2-RSI

Elle est donc utile pour économiser les adresses IP et donner un accès à Internet à des
machines qui n'ont pas besoin d'être joignables de l'extérieur (comme la plupart des
utilisateurs). D'autre part, même quand on possède assez d'adresses IP, il est souvent
préférable de faire de la NAT dynamique pour rendre les machines injoignables directement
de l'extérieur.

Par exemple, pour un usage personnel de partage de l'ADSL ou du câble, on utilise


souvent la NAT dynamique pour partager son accès, étant donné que les machines n'ont pas
besoin d'être jointes de l'extérieur.

Puis-je combiner ces deux méthodes ??


Oui, et c'est même souvent la meilleure solution lorsque l'on a à la fois des machines
offrant un service, et d'autres qui n'ont besoin que de se connecter à Internet.

Ainsi, on économisera les adresses IP grâce aux machines NATées dynamiquement, et


l'on utilisera exactement le bon nombre d'adresses IP publiques dont on a besoin.

Il est donc très intéressant de combiner ces deux méthodes.

Comment rendre joignables les machines de mon réseau local alors que je n'ai qu'une seule
adresse publique ??
Explication du problème :

Nous avons vu que dans le cas de la NAT dynamique, les machines du réseau local ne
pouvaient pas être jointes de l'extérieur. Cela est plutôt un plus pour la sécurité, mais si l'on
doit offrir des services comme un serveur FTP ou web, ça devient problématique.

C'est notamment le cas quand on possède un accès ADSL ou câble : une seule adresse
publique vous est fournie, et il devient alors compliqué de rendre disponibles plusieurs
serveurs du réseau local.

Une solution à ce problème est le port forwarding.

V. Le port forwarding.
Le port forwarding consiste à rediriger un paquet vers une machine précise en fonction
du port de destination de ce paquet.

Ainsi, lorsque l'on n'a qu'une seule adresse publique avec plusieurs machines derrière en
adressage privé, on peut initialiser une connexion de l'extérieur vers l'une de ses machines
(une seule par port TCP/UDP).
Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 47
ISETSBZ Protocoles TCP/IP – TI2-RSI

Prenons l'exemple précédent et disons que la machine 10.0.0.1 possède un serveur web.
Maintenant, on configure le routeur pour qu'il redirige les connexions arrivant sur le port 80
vers la machine 10.0.0.1. Et hop, on rend notre machine ayant une adresse privée disponible
depuis l'extérieur !

Ainsi, le port forwarding nous a permis de rendre nos machines du réseau local
joignables d'Internet, même si l'on ne possède qu'une seule adresse IP publique !

1. Le port mapping
Le port mapping est un peu équivalent au port forwarding. Il consiste simplement à
rediriger la requête sur un port différent que celui demandé. Par exemple, si l'on fait tourner
un serveur web sur le réseau local sur le port 8080 et qu'on veut le rendre accessible pour les
internautes, on redirige le port 80 vers notre serveur sur le port 8080. Ainsi, les clients
externes auront l'impression de s'adresser à un serveur sur le port usuel pour le web, 80.

2. Les limites du port forwarding


Hé oui, le port forwarding ne peut pas non plus répondre parfaitement à toutes les
questions qu'amène la NAT dynamique.

Ainsi, on a vu que l'on ne pouvait associer qu'une adresse de machine à un port donné.
Si l'on possède plusieurs serveurs web en local et que l'on veut les rendre accessibles, il faudra
trouver une autre astuce...

3. Le gros point fort en sécurité


Disons que j'ai un serveur web sous Windows. Je veux rendre le service web, mais pas
que tous les autres ports ouverts par défaut et souvent vulnérables soient accessibles. Et bien
avec du port forwarding, seuls les ports que je forwarderai seront joignables. C'est un énorme
avantage de sécurité par rapport à la NAT statique.

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 48


ISETSBZ Protocoles TCP/IP – TI2-RSI

Bibliographie
[1] A.Tanenbaum : "Computer Networks", 4th ed., Prentice-Hall, 2002 et "Réseaux",
4è ed, Pearson Education, 2003.
[2] L.L. Peterson, B.S. Davie : "Computer Networks", 4th edition, Morgan Kaufmann,
2007.
[3] D. Dromard, D. Seret : "Architecture des réseaux", Pearson Education, 2006.
[4]Cours CCNA exploration
.

--

Enseignant : Jamel Eddine SAIDI - Youssef BEN BRAHEM 49

Vous aimerez peut-être aussi