III . 1 . Rappels sur TCP/IP et le modèle OSI

publicité
Réseaux TCP/IP
TABLE DES MATIERES
I . Introduction
3
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
3
3
5
5
5
5
6
6
7
8
8
9
9
9
10
12
13
13
14
14
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TCP/IP
Internet
Intranet
Normalisation
Modèle OSI
1 . Présentation
2 . Les sept couches
2 . 1 . Couche physique
2 . 2 . Couche liaison
2 . 3 . Couche réseau
2 . 4 . Couche transport
2 . 5 . Couche session
2 . 6 . Couche présentation
2 . 7 . Couche application
3 . Fonctionnement
4 . Interconnexion
4 . 1 . Répéteur
4 . 2 . Pont et commutateur
4 . 3 . Routeur
4 . 4 . Passerelle
II . Couche Liaison (ou interface réseau)
15
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
II
15
15
16
16
19
20
21
22
25
25
27
27
27
29
30
30
30
31
33
33
33
35
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ethernet
1 . Caractéristiques principales
2 . Trame 802.3
3 . Fonctionnalités
4 . Sous couche LLC
5 . CSMA/CD
6 . Round trip delay
7 . Oscillogrammes
8 . Echanges de trames
8 . 1 . Rappels
8 . 2 . Sous couche LLC
8 . 2 . 1 . Définition
8 . 2 . 2 . Trames LLC
8 . 2 . 3 . Echanges de trames LLC
8 . 2 . 4 . Sous couche SNAP
8 . 2 . 4 . 1 . Introduction
8 . 2 . 4 . 2 . Format des trames
8 . 3 . Protocole HDLC
Token Ring
1 . Caractéristiques principales
2 . Trame 802.5
3 . Fonctionnalités
Protocole PPP
LT LA SALLE Avignon
Page 1 / 79
©TV.BTSii.2001
Réseaux TCP/IP
III . La couche Internet
39
III
III
III
III
III
III
III
III
III
39
40
40
41
43
43
44
44
48
.
.
.
.
.
.
.
.
.
1
2
2
2
3
3
4
4
4
. Rappels
. Adressage IP
. 1 . IPv4
. 2 . IPv6
. Protocole IP
.1 . Format des paquets IP
. Autres protocoles
. 1 . ARP et RARP
. 2 . ICMP
IV . La couche Transport
51
IV
IV
IV
IV
IV
IV
IV
51
51
52
54
55
55
56
.
.
.
.
.
.
.
1
2
3
4
5
6
7
.
.
.
.
.
.
.
Introduction
Caractéristiques
Principe d'un échange TCP
Format de l'en-tête TCP
Format de l'en-tête UDP
Aiguillage
Résolution d'adresses
V . La couche Application
60
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
60
60
60
62
63
64
66
67
68
69
70
70
72
73
74
75
77
77
77
78
. 1 . HTTP
. 1 . 1 . Présentation
. 1 . 2 . Requête HTTP
. 1 . 3 . Réponse HTTP
. 1 . 4 . HTTP et CGI
. 1 . 5 . Codes réponses
. 2 . FTP
. 3 . TFTP
. 4 . BOOTP
. 5 . DHCP
. 6 . SNMP
. 7 . SMTP
. 8 . POP
. 9 . IMAP
. 10 . DNS
. 11 . Telnet
. 12 . Les commandes r
. 13 . RPC
. 14 . NFS
.15 . SSL
Bibliographie :
TCP/IP Administration de réseau de Craig Hunt © Ed. O'Reilly
Les protocoles TCP/IP et Internet d'Eric Lapaille © NetLine 1999
Webmaster in a nutshell © Ed. O'Reilly
Technique des réseaux locaux sous Unix de L. Toutain © Ed. Hermes
Pratique des réseaux locaux d'entreprise de JL Montagnier © Ed. Eyrolles
Transmission et Réseaux de S. Lohier et D. Present © ED. DUNOD
LT LA SALLE Avignon
Page 2 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . Introduction
I . 1 . TCP/IP
Les guerres des protocoles sont enfin terminées : TCP/IP en est le vainqueur. Il
est unanimement reconnu comme le protocole (en fait il représente une famille
de protocoles) de communication pour interconnecter différents systèmes
informatiques.
Dans le monde du PC, il fut longtemps opposé à IPX (Internet Packet eXchange)
de Novell, qui était de loin le protocole le plus utilisé lorsque Netware dominait le
marché des serveurs réseaux. A l'origine, Microsoft n'avait même pas daigné
intégrer un protocole réseau dans son OS. Ils ont par la suite tenter de
promouvoir Netbeui (NETBios Extended User Interface), un protocole réseau non
routable (donc limité à un seul réseau) et propriétaire (donc pas adapté à devenir
une norme internationale).
Du côté des réseaux d'entreprise, les ordinateurs étaient très dépendant de SNA
(Systems Networks Architecture) d'IBM. Là encore, on était dans des solutions
propriétaires pour toute l'infrastructure informatique (IBM, BULL, Digital
essentiellement).
TCP/IP n'a pas progressé rapidement (d'autres protocoles existaient) mais il a
répondu à un fort besoin au bon moment (communication de données au niveau
mondial) du fait de ces fonctionnalités et de certaines particularités :
 protocole ouvert, disponible gratuitement et développé en toute
indépendance (matériel et logiciel) ;
 un système d'adressage commun permettant une communication
mondiale à partir d'une adresse unique ;
 les protocoles de haut niveau (interface avec les applicatifs) sont
normalisés.
TCP/IP est donc devenu le dénominateur commun des machines connectées à
l'Internet. Il offre la possibilité de communiquer entre tous les types de matériels
et tous les types de systèmes d'exploitation.
Les protocoles rivaux se sont réfugiés vers des marchés très spécialisés où ils
satisfont des besoins spécifiques.
I . 2 . Internet
En 1969, l'ARPA (Advanced Research Projects Agency) finança un projet de
recherche pour créer un réseau à commutation de paquets expérimental. Ce
réseau, portant le nom d'ARPANET a été construit pour étudier des techniques
permettant des communications de données. La plupart des techniques de
communication on été développées au sein de l'ARPANET.
LT LA SALLE Avignon
Page 3 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Ce réseau expérimental a été un tel succès qu'un grand nombre d'organisations
rattachées à ce projet commencèrent à l'utiliser pour leurs communications de
tous les jours. En 1975, le réseau passa du stade expérimental au stade
opérationnel et l'administration fut confiée à la DCA (Defense Communication
Agency). Les protocoles de base TCP/IP furent développés après que l'ARPANET
fut devenu opérationnel. Ils furent adoptés comme norme militaire en 1983 et
toutes les machines connectés au réseau ont dès lors dû les employer.
Le réseau ARPANET fut divisé en MILNET et en un réseau ARPANET plus petit en
1983. C'est à cette époque que le terme Internet fit son apparition pour désigner
la réunion de ces deux réseaux.
En 1985, la NSF (National Science Foundation) créa le réseau NSFNet et se
connecta au réseau Internet existant (56 KO/s). La NSF amena une nouvelle
vision de l'utilisation de l'Internet en voulant étendre le réseau à tout scientifique
et à tout ingénieur situé aux Etats-Unis.
En 1990, l'ARPANET cessa de manière officielle d'exister et NSFNet arrêta de
jouer son rôle de réseau fédérateur Internet principal en 1995.
En 1997, l'Internet comportait plus de 95000 réseaux répartis aux quatre coins
de la planète. On parle alors de réseau de réseaux avec plusieurs points
d'interconnexion :
 les trois NAP (Network Access Point) créés par la NSF pour garantir un
accès continu le plus large possible à l'Internet ;
 les FIX (Federal Information Exchanges) interconnectant les réseaux
gouvernementaux au réseau mondial ;
 le CIX (Commercial Information Exchanges) a été le premier nœud de
l'interconnexion spécifique aux fournisseurs d'accès à l'Internet (FAI)
commerciaux. On parle aussi de ISP (Internet Service Providers).
 les MAE (Metropolitan Area Exchanges) ont été également créés pour
interconnecter les fournisseurs commerciaux d'accès à l'Internet.
Internet a sûrement largement dépassé la taille initialement envisagée. Les
différentes agences initiales ne jouent plus de rôle essentiel. L'internet est passé
d'un simple réseau fédérateur avec une structure hiérarchique à trois niveaux (la
dorsale, les réseaux régionaux et les réseau locaux) à un réseau beaucoup plus
important constitué de réseaux répartis et interconnectés.
En dépit de tous ces changement, une chose n'a pas bougé : Internet est bâti sur
TCP/IP. Même si des problèmes sont apparus (sécurité et limite des adresses
disponibles), TCP/IP a tenu le coup et la nouvelle version IPv6 notamment
prendra le relais.
Je peux ici conseiller la lecture d'un excellent livre "Les sorciers du Net" aux
éditions Callman-Lévy retraçant les origines de l'Internet. En 1969, Intel avait un
an et Bill Gates était encore à l'école primaire lorsque des ingénieurs de Stanford
échangèrent les cinq lettres du mot LOGIN avec des ingénieurs de l'université de
Californie de Los Angeles.
LT LA SALLE Avignon
Page 4 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 3 . Intranet
Les protocoles Internet sont souvent utilisés dans le cadre des réseaux locaux,
même lorsque le réseau local n'est pas relié à l'Internet. TCP /IP est largement
utilisé pour créer des réseaux d'entreprise.
Ces réseaux utilisent les techniques Internet comme par exemple les outils Web
pour diffuser des informations et données d'une manière interne. On les appelle
des intranets. TCP/IP est la base de toutes ces variantes de réseaux.
I . 4 . Normalisation
Les protocoles sont des règles formelles décrivant un comportement.
Dans des réseaux homogènes, un seul constructeur spécifie l'ensemble des règles
de communication conçues pour exploiter les spécificités du système
d'exploitation et du matériel.
TCP/IP tentent de créer des réseaux hétérogènes avec des protocoles ouverts
indépendants de toute architecture matérielle ou logicielle. Ces protocoles sont
accessibles à tous et leur développement ainsi que leur évolution s'effectue par
consensus et non par décision d'un constructeur propriétaire.
La nature ouverte des protocoles TCP/IP implique des documents décrivant la
norme accessible à tous. Il existe trois publications des standards : MIL STD
(Military Standards), IEN (Internet Engineering Notes) et les RFC (Requests For
Comments).
Les RFC contiennent les dernières versions des spécifications de tous les
protocoles TCP/IP. Ces documents sont beaucoup moins rigide que la plupart des
documents de normalisation en ne se limitant pas aux spécifications mais en
fournissant un panel très large d'informations intéressantes, pratiques et utiles.
Les RFC sont indispensables aux administrateur et développeurs réseaux.
I . 5 . Modèle OSI
I . 5 . 1 . Présentation
Un modèle de représentation développé par l'ISO (International Standards
Organization) est souvent utilisé pour décrire la structure et le fonctionnement
des communications réseaux. Ce modèle OSI (Open Systems Interconnect
Reference Model) fournit un support de référence. Ce modèle est largement utilisé
par la communauté.
Le modèle OSI contient 7 couches ou niveaux qui définissent les fonctions des
protocoles de communication qui vont de l'interface physique à l'interface des
applicatifs utilisant le réseau. En raison de son apparence, la structure est très
souvent appelé pile ou pile de protocoles.
LT LA SALLE Avignon
Page 5 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 5 . 2 . Les sept couches
Le modèle d'architecture en couches est le suivant :







niveau
niveau
niveau
niveau
niveau
niveau
niveau
7
6
5
4
3
2
1
:
:
:
:
:
:
:
couche
couche
couche
couche
couche
couche
couche
APPLICATION
PRESENTATION
SESSION
TRANSPORT
RESEAU
LIAISON
PHYSIQUE
Deux normes sont définis pour chaque couche :

une norme qui spécifie l’interface pour accéder aux services de la
couche. Les services sont les capacités fournies par chaque couche
N-1 aux couches N ;

une norme qui définit le protocole qui sont l'ensemble des règles qui
définissent le dialogue entre couche de même niveau.
I . 5 . 2 . 1 . Couche Physique
Son rôle est la transmission des bits sur le support physique d'interconnexion.
Ces fonctions principales sont :




fournir les caractéristiques électriques, mécaniques et fonctionnelles
permettant d’activer, maintenir et désactiver une transmission ;
définir le mode d’exploitation (semi-duplex, duplex intégral, //, série,
...) ;
réaliser une connexion (permanente, dynamique, point à point ou
multipoint) ;
assurer la compatibilité des interfaces qui réalisent les fonctions de
codage, modulation et amplificateur du signal.
Exemples :
V24, X21, RS232, V24, Multiplexeur, Transceiver, MAU, HUB, Répéteur, Prise
DB25 et DB9, RJ45 et RJ11, etc ...
LT LA SALLE Avignon
Page 6 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 5 . 2 . 2 . Couche Liaison
Elle est responsable de l’acheminement sans erreurs de blocs d’informations sur
la ligne physique.
Ces fonctions principales peuvent être :




établir et libérer les connexions ligne ;
assurer la mise en trames et la synchronisation ;
détecter et corriger les erreurs de transfert ;
gérer le contrôle de flux .
La couche Liaison est découpée en deux sous couches appelées MAC (Medium
Access Control) et LLC (Logical Link Control).
I . 5 . 2 . 2 . 1 . Sous-couche MAC
Elle gère l'accès au support, définit le format et la définition des trames et offre
un ensemble de services à la sous-couche LLC.
Exemples : Ethernet 802.3 CSMA/CD, Token Ring 802.5, Token Bus 802.4, … etc.
I . 5 . 2 . 2 . 2 . Sous-couche LLC
Elle est définie par l’IEEE 802.2 et destinée aux réseaux locaux. Elle offre à la
couche réseau trois types de services :
 le service sans connexion et sans acquittement, dit de type 1 (ou mode
datagramme) : la couche LLC aiguille les données vers les protocoles de
couche 3.
 le service avec connexion, dit de type 2. Une connexion est établie entre
émetteur et récepteur avant tout envoi de données. Les trames sont
numérotées afin que LLC puisse garantir que toutes les trames sont arrivées
à destination dans le bon ordre.
 un autre service existe, utilisé essentiellement dans les réseaux
industriels: le service sans connexion avec acquittement, dit de type 3 (ou
mode datagramme acquitté).
Par exemple, les réseaux Ethernet utilisent classiquement le service type 1.
Dans tous les cas, LLC réalise un contrôle de flux. Ce contrôle permet au
récepteur de commander l’envoi des trames issues de l'émetteur, afin d’éviter sa
propre saturation.
LLC assure aussi un contrôle d’erreur à la réception en s’appuyant sur le champ
FCS de la sous-couche MAC. Pour LLC type 1, l’erreur sera signalée puis gérée par
les couches supérieures.
LT LA SALLE Avignon
Page 7 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Une des fonctions de LLC est de faire l’aiguillage vers les protocoles de niveau
supérieur (champ DSAP et SSAP).
Autres protocoles de couche 2 :
 SDLC (Synchronous Data Link Control) développé par IBM et utilisé dans
l’arcitecture SNA;
 HDLC (High-level Data Link Control) normalisé par l’ISO et basé sur
SDLC, représente la référence des protocoles de niveau 2, dérivée en :
 LAPB (Link Access Procedure) définis par le CCITT pour les réseau X25
(Transpac) et issu de HDLC;
 LAPD utilisé sur le réseau RNIS;
Les couches matérielles sont implémentées par la couche physique et la souscouche MAC.
Les couches logicielles du modèle OSI vont alors de la sous-couche LLC à la
couche 7 Application.
I . 5 . 2 . 3 . Couche Réseau
Elle a la charge du dialogue et de la connexion avec des entités distantes,
éventuellement situées sur des réseaux différents seulement accessibles par le
franchissement de plusieurs interconnexions.
Fonctions :




établir et rompre une connexion ;
contrôler les erreurs de transmission ;
réaliser un contrôle de flux ;
réaliser le routage.
Exemples : IP (Internet Protocol), IPX (Internet Packet eXchange), … etc .
I . 5 . 2 . 4 . Couche Transport
Ce niveau marque la séparation entre :
- les trois couches basses ou externe (fonction orientée transmission) ;
- les trois couches hautes ou internes (fonction orientée traitement) .
Au-dessus de la couche transport les caractéristiques physiques du réseau
n’apparaissent plus.
Elle est responsable du transport des informations de bout en bout au travers du
réseau.
LT LA SALLE Avignon
Page 8 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Fonctions :




gérer les adresses de transport ;
gérer le transport en établissant et libérant une connexion
gérer les messages :
- segmentation des données;
- réassemblage des données;
- contrôle du séquencement.
gérer la qualité de service :
- acquittement et retransmission sur absence d'acquittement;
- multiplexage des données;
- contrôle de flux;
- détection des erreurs.
Exemples : TCP (Transmission Control Protocol), UDP (User Datagram Protocol),
SPX (Sequenced Packet eXchange), … etc.
I . 5 . 2 . 5 . Couche Session
Elle établit une communication entre émetteur et récepteur en assurant
l'ouverture et la fermeture des sessions (des communications) entre usagers,
définit les règles d'organisation et de synchronisation du dialogue entre les
abonnés.
Exemple : RPC (Remote Procedure Call).
I . 5 . 2 . 6 . Couche Présentation
Elle met en forme les informations échangées pour les rendre compatibles avec
l'application destinatrice, dans le cas de dialogue entre systèmes hétérogènes (
ex: code EBCDIC <--> ASCII ) .
Elle peut comporter des fonctions de traduction, de compression, d'encryptage, ...
etc.
Exemple : XDR (eXternal Data Representation).
I . 5 . 2 . 7 . Couche Application
Cette couche ne contient pas l'"application" de l'utilisateur, mais réalise
l'interface pour les fonctions de communication avec les applicatifs.
Exemples :
FTP (File Transfert Protocol), HTTP (HyperText Transfert Protocol), NFS (Network
File System), SMTP (Simple Mail Transfert Protocol), DNS (Domain Name
Service), TELNET, … etc …
LT LA SALLE Avignon
Page 9 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 5 . 3 . Fonctionnement
Une couche ne définit pas un seul protocole : elle définit une fonction de
communication qui peut être pris en charge par un ou plusieurs protocoles
différents. Par conséquent, n'importe quelle couche peut être constituée par
plusieurs protocoles ou même par aucun protocole. On parle alors de couche vide.
La couche supérieure se fie à la couche inférieure (on parle de services rendues)
pour transférer les données. On traverse donc la pile en passant d'une couche à
l'autre jusqu'à ce quelles soit transmises sur le réseau par la couche physique. sur
le système distant, les données remontent la pile vers l'application réceptrice. On
parle alors de mécanisme d'encapsulation/désencapsulation.
PCI
D ATA
COUCHE N+1
SAP
Interface
COUCHE N
PCI
DATA
SAP
COUCHE N-1
SAP : Service Access Point
Le principe de l'encapsulation est le suivant : le protocole d'une couche reçoit
les données de la couche supérieure et rajoute un en-tête spécifique à son
protocole (le PCI Protocol Control Information). Ce nouveau bloc forme alors les
données qui seront passer à la couche suivante et ainsi de suite pour chaque
couche intervenant dans la communication. La communication entre protocoles
est alors transversale : seul le même protocole de la couche réceptrice
correspondante pourra traiter et comprendre le PCI lors de la désencapsulation.
LT LA SALLE Avignon
Page 10 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Le cas particulier : TCP/IP
Même si le modèle OSI est utile, les protocoles TCP/IP ne correspondent pas
exactement à sa structure. Beaucoup de livres n'en tiennent pas compte et
arrivent tout de même à placer les différents protocoles TCP/IP dans les sept
couches du modèle OSI ! En fait, TCP/IP utilise un modèle à 4 couches :
Modèle OSI
Modèle TCP/IP
Protocoles
Application
HTTP, FTP, …
4
Transport
TCP, UDP
3
Internet
IP, ICMP, ARP, RARP, …
5-6-7
1-2
Interface réseau Ethernet, Token Ring, ...
Une autre décomposition, typiquement Unix :
LT LA SALLE Avignon
Page 11 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 5 . 4 . Interconnexion
L'interconnexion de deux réseaux d'architecture différente nécessite un
équipement d'interconnexion spécifique.
Là encore, le modèle OSI est utile pour comprendre le mécanisme
d'interconnexion :
Usager A
Usager B
Système 1
Système 4
7
7
Application
6
6
Présentation
5
Session
4
Transport
5
4
Système 2
Système 3
3
3
3
3
Réseau
2
2
2
2
Liaison
1
1
1
1
Physique
Support physique d'interconnexion
L'équipement d'interconnexion est nécessaire lorsque deux systèmes ont des
couches différentes. L'interconnexion se fera jusqu'à une couche commune et
définira le type d'équipement. Généralement, on distingue les équipement
suivants :
Le répéteur (repeater) qui n'apporte que des modifications de niveau
physique.
Le pont (bridge) qui apporte de modifications jusqu'au niveau liaison.
Le routeur (router) qui apporte des modifications jusqu'au niveau
réseau.
La passerelle (gateway) qui peut apporter des modifications jusqu'au
niveau application.
LT LA SALLE Avignon
Page 12 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 5 . 4 . 1 . Le répéteur
Il est utilisé pour raccorder deux segments de câbles ou deux réseaux identiques qui
constitueront alors un seul réseau logique (extension de la distance).
Il aura pour fonctions :

la répétition des bits d'un segment sur l'autre

la régération (amplification) du signal pour compenser
l'affaiblissement

éventuellement, le changement du support physique
La trame n'est jamais modifiée lors de la traversée d'un répéteur.
On utilise parfois le terme technique de transceiver.
Le HUB Ethernet est un répéteur multi-ports. On considère un temps moyen de traversée
de 0,3 µs par port.
I . 5 . 4 . 2 . Le pont et commutateur (switch)
Les ponts travaillent sur les trames MAC indépendamment des protocoles de niveau
supérieur (IPX, TCP/IP, ...), donc le pont est transparent pour l’adressage des protocoles
de niveau supérieur.
Les principales fonctions d'un pont sont :
 Identifier les adresses MAC des stations présentes sur chaque segment ;
 Etablir et mettre à jour périodiquement une table de correspondance « adresse
MAC / n° de port » ;
 Filtrer les trames en fonction des adresses MAC ;
 Retransmettre les trames de broadcast (trames de diffusion générale) et les
trames d’adresses inconnues;
 Emettre des trames multicast (trames destinées uniquement aux ponts) .
Deux méthodes permettent de résoudre les problèmes de boucle (transmission infinie de
trame) ou de redondance (transmission dupliquée de trame) :


l’algorithme du spanning tree ;
le mécanisme de source routing (token ring).
Le commutateur (ou switch), comme le pont, permet de segmenter des réseaux
engorgés. De plus, il peut disposer de ports 10BASET et 100BASET. La différence
essentielle entre pont et commutateur réside dans la bande passante offerte par le
commutateur qui autorise plusieurs liaisons simultanées à 10Mbits/s ou 100 Mbits/s.
L'utilisation classique d'un commutateur consiste à connecter les serveurs très sollicités
directement sur un port du commutateur. Les stations de travail sont connectées à un
concentrateur lui-même raccordé au commutateur. On peut alors utiliser des ports
100Mbits/s pour les liaisons vers les serveurs.
Le commutateur peut fonctionner selon deux modes : par validation (temps de traversée
de 100 à 500 µs) ou à la volée (temps de traversée de 40 à 50 µs).
Les ponts, nécessitant un traitement plus important, possèdent des temps de traversée
d'environ 800 µs.
LT LA SALLE Avignon
Page 13 / 79
©TV.BTSii.2001
Réseaux TCP/IP
I . 5 . 4 . 3 . Le routeur
La technologie de routage s’appuie sur les protocoles de niveau 3 dans le modèle en
couche OSI tels que IP, IPX ou Decnet. Les routeurs doivent donc analyser les données
contenues dans les trames MAC, qui sont structurées différemment selon les protocoles.
Un routeur est constitué de deux éléments essentiels :

Une composante matérielle : un routeur dispose de ports appelés interfaces qui
ont pour rôle de recevoir et de générer les trames aux formats adaptés à la topologie
(trames MAC 802.3, 802.2,
HDLC, etc.).

Une composante logicielle très forte : les routeurs disposent d’un système
d’exploitation souvent proche d’Unix. Chaque protocole est traité par un processus dédié.
Plusieurs processus peuvent donc traiter différents paquets simultanément.
La partie logicielle a pour tâche de router les paquets ou datagrammes, c’est-à-dire
de déterminer vers quelle interface l'envoyer.
L’adressage et le routage sont les deux concepts fondamentaux du routeur. En résumé,
une adresse de protocole de niveau 3 est composée d’un numéro de réseau et d’un
numéro de station au sein de ce réseau (par exemple, L3.5 signifie l’adresse d’une
station n°5 présente sur le réseau logique L3). Le routage consiste à acheminer un
paquet parmi plusieurs routes possibles sans que les stations émettrices et réceptrices
aient une quelconque notion de la topologie des réseaux.
En raison de leur fonctionnalité, le routeur (contrairement au pont) est généralement
dépendant du protocole utilisé (TCP/IP, IPX de Novell, ...).
Les fonctions assurés par le routeur sont :

traiter et router les paquets des protocoles de niveau 3 ;

assurer un contrôle de flux par priorité, par non-diffusion des
broadcast MAC et par filtrage ;

interconnecter toutes les topologies.
On considère un temps de traitement moyen de 1800 µs pour un routeur classique.
I . 5 . 4 . 4 . La passerelle
La passerelle est un élément essentiel dans les installations informatiques mettant en
œuvre plusieurs types de réseaux car elle constitue un dispositif de conversion complet
(interconnexion de niveau 7 du modèle OSI).
Ses fonctions sont :

conversion de protocoles

émulation de terminaux

routage

assemblage et désassemblage des paquets
Remarques :


Attention, dans le monde Internet, une passerelle (gateway) désigne une
machine (souvent sous UNIX) réalisant la fonction de routeur IP.
Inconvénients : Complexe, lent et cher, mais inévitable dans certains cas.
LT LA SALLE Avignon
Page 14 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . La couche Liaison (ou interface réseau)
II . 1 . Ethernet
II . 1 . 1 . Caractéristiques principales
Mise au point dans les laboratoires de Palo Alto de la société XEROX,
l'architecture Ethernet est maintenant la solution la plus utilisée pour
interconnecter des machines en réseau local.
Les caractéristiques principales sont :







débit de 10Mbits/s et 100Mbits/s
transmission bande de base, codage Manchester
topologie en bus
méthode d'accès CSMA/CD (IEE 802.3)
longueur des trames comprises entre 64 et 1518 octets
câbles de type coaxial, paire torsadée ou fibre optique (câblage bus
ou étoile).
gestion des couches 1 et partiellement 2 du modèle OSI
Quelques normes de câblage Ethernet :
Type
Support
Norme
802.3
Longueur
max. d'un
segment
Nb max de
transceivers
par segment
100
Longueur
max d'un
câble
transc.
50 m
Distance
min. entre
deux
transc.
2,5 m
Ethernet
Standard
(Thick
Ethernet)
Ethernet fin
(Thin
Ethernet)
Ethernet sur
paires
torsadées
Coaxial
50
10BASE5
500 m
(réseau :
2,5 Km)
Coaxial
50
10BASE2
Paire
torsadée
100
10BASET
185 m
(environ
200 m)
100 m
30
50 m
0,5 m
Equipements reliés sur HUB
Câbles :
UTP : câble à paire torsadée non blindées;
FTP : câble à paire torsadée blindées;
Catégorie 5 : acceptant le 100Mbits/s.
LT LA SALLE Avignon
Page 15 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 2 . La trame 802.3 (FRAME 802.3)
Le bloc d'information ou trame au niveau de la sous-couche MAC est le suivant :
Préambule
7 octets
Délimiteur
de trame
1 octet
Adresse
destination
6 octets
Adresse
source
6 octets
Longueur des
données
2 octets
Données
FCS
46 à 1500
octets
4 octets
Les informations de contrôle de cette trame sont :


Le préambule, composé d'une succession de 0 et de 1, assure la
synchronisation du récepteur sur la trame émise.
Le délimiteur de trame permet de trouver le début du champ d'adresses
(les 2 derniers bits émis sont à 1).
On a tendance à considérer que le préambule fait 8 octets et qu'il ne fait pas
partie de la trame : il n'est pas capturé par les analyseurs réseaux et on n'en
tient logiquement pas compte dans le CRC.

Les @ réseaux sont uniques et universelles et décomposables :
XX-XX-XX -XX-XX-XX
Spécifique au Fixé par le
constructeur constructeur


La longueur du champ de données sur 2 octets.
Une somme de contrôle (Frame Check Sequence) calculée suivant un
code de redondance cyclique (CRC).
II . 1 . 3 . Les fonctionnalités d'Ethernet
Elles correspondent aux couches 1 (PHYSIQUE) et 2 (sous-couche MAC) définies
par la norme 802.3.

Sous-couche MAC (Medium Access Control) :
Elle gère l'accès au support selon les principes CSMA/CD et offre un ensemble de
services à la sous-couche LLC (Logical Link Control).

Fonction émission :







Lire un paquet de données (fourni par LLC).
Lire l'adresse de destination (transmise par LLC).
Fabriquer la trame.
Attendre l'indication d'absence de porteuse.
Emettre la trame.
Indiquer le succès de la transmission à LLC, ou
Traiter la collision.
LT LA SALLE Avignon
Page 16 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Ces séquences sont répétées jusqu'à ce que toutes les données soient transmises. Pour
cela, les paquets de données sont retirés de la file d'attente de LLC au fur et à mesure de
la transmission des trames.
Fonction réception :





Lecture des trames.
Décodage de l'adresse de destination.
Comparaison avec l'adresse de la station.
SI (les deux adresses sont identiques)
ALORS
- vérification du CRC
- vérification de la longueur de trame
- envoi d'un état de réception à LLC
SI (CRC et la longueur sont valides)
ALORS
- communication des données à LLC
- communication de l'adresse source à LLC

Fonction traitement des collisions :




Réception d'une indication de collision.
Envoi d'une séquence de bourrage (JAM) pour prolonger la collision
afin que toutes les stations en émission puissent la détecter.
Retransmission de la trame après un délai d'attente aléatoire fonction
de Tb.
SI (le nb de tentatives de retransmission >= 16) ALORS
- la retransmission est ajournée.
- un rapport d'anomalie est communiquée à LLC.
Le temps de base, Tb, correspond au temps de propagation aller et retour
entre les deux stations les plus éloignés du réseau.

Couche PHYSIQUE :
Les fonctions réalisés, sur le support, par le transceiver sont les suivantes :
émission et réception de signaux suivant le codage Manchester.
détection de présence de signaux.
détection de collisions :
elle se fait par écoute du support. Lorsque la tension sur le câble est plus
élevée que la tension maximale pouvant être générée par un seul
transceiver, une collision est détectée (voir oscillogrammes).



Horloge
Signal
Binaire
Signal
Codé
Principe : Une opération XOR (ou exclusif) est réalisée entre l'horloge et les données, d'où une transition
systématique au milieu de chaque bit du signal binaire.
LT LA SALLE Avignon
Page 17 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Le codage utilisé pour un réseau 100BASET est le 4B/5B sur NRZI :
Exemple : soit la suite binaire : 111100101100,
Valeur binaire
Codée en 4b/5B
LT LA SALLE Avignon
1111
11101
0010
10100
1100
11010
MSB
MSB
MSB
LSB
LSB
LSB
Page 18 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 4 . Cas IEE : la sous-couche LLC
Pour les normes IEEE 802, la sous-couche LLC (IEEE 802.2) est indépendante des
trois implantations possibles de la sous-couche MAC qui sont :
 CSMA/CD (IEEE 802.3),
 Token Bus (IEEE 802.4) et
 Token Ring (IEEE 802.5).
On connaît plusieurs types de trames pour les réseaux locaux Ethernet.
Différence entre Ethernet_II et 802.3 :
Couche Réseau
fonction du DSAP
DSAP SSAP CTRL
fonction du champ type
trame ETHERNET_II
Données LLC
Sous-couche LLC
trame 802.3
@Dest.
@source
Type ou lg
Données MAC
Sous-couche MAC
Couche Physique
Le champ DSAP (Destination Service Access Point) 8 bits : permet de désigner le
ou les protocoles de niveau supérieur auxquels seront fournies les données de la
trame LLC.
Le champ SSAP (Source Service Access Point) 8 bits : permet de désigner le
protocole qui a émis la trame LLC.
Valeur des SAP :
SAP
(hexa.)
0x00
SAP
(déc.)
00
0x02
0x06
0x7E
0xE0
2
6
126
224
LT LA SALLE Avignon
SAP
(binaire)
0000
0000
0000 0010
0000 0110
0111 1110
1110
0000
Signification
Equivalent
Ethernet_II
SAP nul
Gestion de LLC
Réseau IP
X25 niveau 3
IPX
Page 19 / 79
0x800
0x805
0x8137
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 5 . La méthode d'accès CSMA/CD
CSMA/CD (Carrier Sense Multiple Access / Collision Detection) est la méthode
d’accès retenue pour les réseau locaux Ethernet.
Voici l’algorigramme de fonctionnement de CSMA/CD :
« LBT »
Listen Before Talking
ECOUTE DU
CANAL
TEMPO T
NON
CANAL
LIBRE ?
OUI
EMISSION &
ECOUTE DU
CANAL
ALGORIT.
REPRISE
« LWT »
Listen While Talking
NON
COLLISION ?
OUI
ARRET
EMISSION
ENVOI JAM
VERS
TOUTES LES
STATIONS
LT LA SALLE Avignon
Page 20 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 6 . Le Round Trip Delay
Un paramètre intervient pour la gestion correcte des collisions : la taille du réseau
ou plus exactement le round trip delay (Tb). Il correspond au temps nécessaire :
 à la propagation d’une trame d’un bout à l’autre du réseau (propagation
aller) ;
 à la détection d’une éventuelle collision à l’extrémité du réseau ;
 à la propagation en retour de l’information de collision (propagation
retour) .
La configuration maximale d’un réseau Ethernet 802.3 est de cinq segments et
quatre répéteurs entre deux stations (la limitation de 4 répéteurs donne en fait le
diamètre du réseau).
La valeur théorique maximale du round trip delay est de 498.9 bits-times. La
norme utilise en fait 512 bits-times (puissance de 2 supérieure).
Le bit-time est l’unité de temps employé par la norme 802.3 et correspond au
temps nécessaire à la représentation (émission) d’un bit sur un réseau à 10
Mbits/s. donc, le round trip delay de 512 bits-times donne 51.2 µs. Dans le cas
d'un réseau à 100MBits/s, le RTD sera alors de 5,12 µs.
Ce temps total est calculable à partir des performances minimales imposées par
la norme à chaque équipement du réseau : cordon, transceiver, média et
répéteur.
Pour assurer une gestion correcte des collisions, il faut que le temps
d’émission d’une trame Ethernet soit supérieur ou égal au round trip
delay, ce qui définit donc une taille de trame minimum de 64 octets.
Temps de propagation aller-retour des principaux éléments :







cordon AUI
câble 10BASE2 (thin)
câble 10BASE5 (thick)
fibre optique
câble 10BASET (thick)
transceiver
répéteur
0,257 µs / 25 m
0,257 µs / 25 m
0,217 µs / 25 m
0,250 µs / 25 m
0,283 µs / 25 m
1µs (0,65 µs en récep. et 0,35 µs en émission)
1,6 µs (2 ports AUI)
Autres paramètres :
 le délai minimum inter-trames (ou IFS) est de 9,6 µs soit 96 bits-times ;
 la taille du JAM (signal de renforcement de collision) est fixée à 32 bits
(contenu quelconque).
LT LA SALLE Avignon
Page 21 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 7 . Oscillogrammes
LT LA SALLE Avignon
Page 22 / 79
©TV.BTSii.2001
Réseaux TCP/IP
LT LA SALLE Avignon
Page 23 / 79
©TV.BTSii.2001
Réseaux TCP/IP
LT LA SALLE Avignon
Page 24 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 8 . Echanges de trames
II . 1 . 8 . 1 . Rappels
L'échange de trames 802.3 est pris en charge par la couche LLC.
LT LA SALLE Avignon
Page 25 / 79
©TV.BTSii.2001
Réseaux TCP/IP
LT LA SALLE Avignon
Page 26 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 8 . 2 . Sous-couche LLC
II . 1 . 8 . 2 . 1 . Définition
La sous-couche LLC (Logical Link Control) repose sur la sous-couche MAC. La souscouche MAC contient des mécanismes (méthodes d'accès CSMA/CD, jeton) pour obtenir
une exclusion mutuelle entre les stations qui partagent le même support (bus, anneau).
Quand la station a gagné son droit à la parole, la sous couche LLC contrôle la
transmission des données.
Trois types de services de transmission sont offerts :
 LLC type 1 (sans connexion) : aucune fonction de contrôle d’erreur sur les
trames n’est effectuée. La couche LLC aiguille les données vers les protocoles des
couches de niveau 3.
 LLC type 2 (avec connexion) : en plus des fonctions d’aiguillage du type 1, un
contrôle d’erreur du séquencement des données et du flux est effectué. Le
protocole est identique à HDLC.
 LLC type 3 : ce mode de fonctionnement a été ajouté à la norme initiale pour
les besoins des réseaux industriels. Il permet entre autre l’acquittement des
trames et la réponse automatique.
Le principe de fonctionnement de la sous-couche LLC est décrit dans le standard IEEE
802.2.
Dans les réseaux locaux, le type 1 est principalement utilisé pour sa fonction
d’aiguillage (voir Ethernet et Token Ring). En fait, tous les réseaux n’ont pas besoin
de cette couche. Les réseaux Ethernet_II ne l’utilisent pas, l’aiguillage se fait en lisant le
champ type de la trame MAC. Par contre, pour les réseaux IEEE 802.3 ce champ sert à
coder la longueur utile de l’information et l’encapsulation LLC est nécessaire .
II . 1 . 8 . 2 . 2 . Les trames LLC
Le format d'une trame LLC est le suivant :
DSAP
8 bits
SSAP
8bits
Contrôle
8 bits (LLC1) ou
16 bits (LLC2)
DATA
(vers la couche 3)
 Le champ DSAP (Destination Service Access Point) permet de désigner le ou les
protocoles de niveau supérieur auxquels sont fournis les données de la trame LLC.
 Le champ SSAP (Source Service Access Point) permet de désigner le protocole qui à
émit la trame LLC.
Les champs DSAP et SSAP sont codés sur un octet, les 7 bits de poids forts servent à
coder les adresses des différents SAP. Le 8° bit sert à indiquer une trame de commande
(bit à 0) ou de réponse (bit à 1) pour une adresse SSAP ou à préciser si le SAP est
unique (bit à 0) ou global (bit à 1) pour une adresse DSAP.
LT LA SALLE Avignon
Page 27 / 79
©TV.BTSii.2001
Réseaux TCP/IP
 Le champ contrôle contient l’information protocolaire. Il permet de typer les trames
qui vont circuler et, dans le cas du protocole LLC type 2, de mettre un contrôle d’erreur
et de séquencement.
Les formats et mécanismes mis en œuvre sont similaires à ceux du protocole HDLC
LAP-B (notons que la version LAP-D est utilisé sur le réseau RNIS ou ISDN ou
Numéris pour l'appellation commerciale en FRANCE).
Le champ contrôle est codé sur 1 octet pour les trames en datagrammes (trames Non
Numérotées). Pour les trames de type I (Information) et S (Supervision) ce champ est
codé sur 2 octets.
Trois types de trames peuvent être définies :
 Les trames de type I transportent de l’information utile (des données de couche 3)
en mode connecté. Les trames de type I contiennent deux compteurs. Le compteur
N(S) numérote (modulo 128) les trames émises. Le compteur N(R) permet d’acquitter les
trames reçues. Le compteur N(R) contient toujours le numéro de la prochaine trame
attendue.
15
14
13
12
11
N(R)
10
9
8
P/F
7
6
5
4
N(S)
3
2
1
0
0
 Les trames de type S ou Supervision permettent la gestion des trames
d’information en mode connecté. Il existe 4 bits non utilisés dans le champ qui sont
réservés à un usage futur. Dans les implémentations actuelles, ces bits sont à 0. Trois
trames sont définies parmi les quatre valeurs possibles :
RR (Receiver Ready). Cette trame permet d’acquitter les trames déjà reçues. Cette
trame est utilisée quand le récepteur n’a pas de données à émettre. La trame RR permet
aussi d’indiquer que le récepteur a de la mémoire disponible pour recevoir des trames
(contrôle de flux).
RNR (Receiver Not Ready). Cette trame est émise par le récepteur pour indiquer qu’il ne
peut plus recevoir de trames (problème d’allocation des tampons de stockage). Le
compteur N(R) indique toujours le numéro de la prochaine trame attendue.
REJ (Reject) : Cette trame est utilisée par le récepteur quand le numéro de la trame
attendue ne correspond pas à la trame reçue. Le compteur N (R) indique le numéro de la
trame à partir de laquelle l’émetteur doit retransmettre.
15
14
13
12
11
N(R)
N(R)
N(R)
10
9
8
P/F
P/F
P/F
7
0
0
0
6
0
0
0
5
0
0
0
4
0
0
0
3
0
1
0
2
0
0
1
1
0
0
0
0
1
1
1
RR
REJ
RNR
 Les trames de type U ou non numérotées (Unnumbered) permettent de gérer une
connexion (ouverture, fermeture) ou d’envoyer des données en mode datagramme.
Les 7 premières trames sont utilisées par LLC type 2 et les 3 dernières par LLC type 1.
LT LA SALLE Avignon
Page 28 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Les trames S :
7
0
0
0
0
1
1
1
0
6
1
1
1
0
0
0
1
0
5
1
0
1
0
0
1
1
0
4
P
P
F
F
F
P/F
P/F
F
3
1
0
0
1
0
1
0
0
2
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
LLC2
LLC1
SABME
DISC
UA
DM
FRMR
XID
TEST
UI
Les principales sont :
DM : Disconnect Mode
SABME
DISC : Disconnected
UA : Unumbered Acknowledgment
FRMR : FRaMe Reject
UI (Unnumbered Information)
Indique à l'une des stations que la
connexion est interrompue
Etablissement de la liaison en mode
connecté
Commande de déconnexion
Acquittement d'une commande de
type DISC, SABME, ...
Rejet définitif d'une trame
utilisée en LLC 1 pour échanger des
trames Information
II . 1 . 8 . 2 . 3 . Echange de trames LLC
Pour chaque trame, on indique le type (SABME, UA, RR ou I pour une trame
d'information) et la valeur des différentes variables significatives (N(S), N(R) et P/F).
Station A
Station B
Commentaires
SABM, P=1
UA, F=1
I, N(S)=0, N(R)=0
I, 1, 0
RR, N(R)=2
I, 2, 0
I, 3, 0
I, 4, 0
REJ, N(R)=3
I, 3, 0
I, 4, 0
I, 0, 5
I, 1, 5
RR, N(R)=2
DISC, P=1
UA, F=1
Dans le cas ou l'une des stations n'émet pas de réponse suite à une commande (perte
d'une trame I), différents compteurs et temporisateurs permettent le contrôle de
l'échange.
LT LA SALLE Avignon
Page 29 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 8 . 2 . 4 . La sous-couche SNAP
II . 1 . 8 . 2 . 4 . 1 . Introduction
L’intégration de piles de protocoles de niveau 3 et supérieures dans des réseaux
conformes aux recommandations de l’IEEE, c’est-à-dire avec une sous-couche MAC et
une sous-couche LLC, ne se fait pas sans peine. En effet, les protocoles de niveau 3 ont
été à l’origine développés pour les réseaux Ethernet qui n’utilisent pas l’encapsulation
LLC (ETHERNET_II).
Le modèle de référence de l’ISO n’ayant pas été respecté. De plus, avec l’encapsulation
LLC d’autres problèmes vont se poser :
 les SAP sont codés sur 7 bits. Il ne peut y avoir que 128 protocoles au dessus de
LLC, ou seulement 64 si l’on ne considère que les adresses globales,
 en LLC type 1 la taille de l’entête est de 3 octets. L’extraction du champ donnée
va poser des problèmes d’alignement qui réduisent les performances de la
machine.
Le protocole SNAP peut être utilisé pour résoudre ces problèmes.
SNAP (Sub-Network Access Protocol) n’effectue aucun traitement sur les données. Il
offre simplement une encapsulation supplémentaire qui se place entre la couche de
niveau 3 et la sous-couche LLC.
II . 1 . 8 . 2 . 4 . 2 . Format des trames
Une entête de trame SNAP fait 5 octets, avec les trois octets d'en-tête de la sous-couche
LLC, l’encapsulation totale fait 8 octets, ce qui résout les problèmes d’alignement.
Les 5 octets codent :
 sur 3 octets l’Organizational Unit Identiper (OUI). Il s’agit en principe du code du
vendeur fourni par l’IEEE que l’on retrouve au début des adresses MAC. En
pratique ces octets sont toujours à 0.
 sur 2 octets le code du protocole. Ce champ utilise le même codage que la trame
Ethernet pour coder les protocoles de niveau supérieur (RFC 1340).
Un DSAP à 0xAA correspond à une trame SNAP. Le champ contrôle code une
trame d'information en trame UI.
LT LA SALLE Avignon
Page 30 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 1 . 8 . 3 . Protocole HDLC
La procédure HDLC normalisée par l'ISO et le CCITT est définie pour des
transmissions synchrones en semi-duplex ou duplex intégral sur des liaisons
point à point ou multipoint.
Toutes les informations transmises sont considérées comme des groupements
binaires (procédure orientée bit) et donc indépendantes d'un codage
particulier.
Ce protocole a été largement dérivé pour être utilisé à la fois sur Transpac,
Numéris mais aussi sur l'ensemble des réseaux locaux.
Trois types de trames sont utilisées pour gérer la transmission ou échanger des
informations :

Trame I d'information contenant essentiellement des données
(paquets envoyés par la couche réseau) et des indications sur l'état de la
transmission.

Trame S de supervision permettant la gestion des erreurs et du
flux.

Trame U non numérotée (Unumbered) permettant notamment
l'établissement et la libération de la liaison.
Trame d'information
Fanion
01111110
Adresse
8 bits
Commande
8 bits
7 6 5 4
N(R)
Fanion
01111110
Trame de supervision
Adresse
8 bits
Trame U
3 2 1 0
P/F N(S)
LT LA SALLE Avignon
Contrôle
16/32 bits
3 2 1
0
P/F S S 0
1
7 6 5 4
3 2 1
M M M P/F M M
1
Contrôle
16/32 bits
Fanion
01111110
N(R) : N° du bloc attendu en reception
N(S) : N° du bloc émis
P/F : invitation à émettre/fin de transmission
0
Commande
8 bits
7 6 5 4
N(R)
Informations
Fanion
01111110
N(R) : N° du bloc attendu en reception
S : Type de commandes à utiliser en réponse
P/F : invitation à émettre/fin de transmission
0
1
Page 31 / 79
M : Modification de la commande
©TV.BTSii.2001
Réseaux TCP/IP
Les bits S permettent le codage de quatre types de trames de supervision :
S S Symbole
0 0 RR : Receiver Ready
01
RNR : Receiver Not
Ready
10
REJ : REJect
11
SREJ : Selectif REJect
Description
La station indique qu'elle est prête à recevoir la
trame n° NR
La station n'est pas prête à recevoir, mais elle
confirme la bonne reception des trames jusqu'à n°
NR-1
La station rejette les trames à partir du n° NR
(erreur de transmission)
Equivalent à REJ mais uniquement pour la trame
n° NR
Les bits M permettent le codage de 32 types de trames U, dont les principales
sont :
Champ
Commande
000F1111
Symbole
Description
DM : Disconnect Mode Indique à l'une des stations que la
connexion est interrompue
SABM
Etablissement de la liaison en mode
LAPB
DISC : Disconnected
Commande de déconnexion
UA : Unumbered
Acquittement d'une commande de
Acknowledgment
type DISC, SABM, ...
FRMR : FRaMe Reject Rejet définitif d'une trame
001P1111
010P0011
011F0011
101F0111
Exemple d'un échange :
Station A
Station B
SABM, P=1
UA, F=1
Etablissement
I, N(S)=0, N(R)=0
I, 1, 0
Transfert de 2 trames
RR, N(R)=2
Acquittement des 2 trames
DISC, P=1
UA, F=1
LT LA SALLE Avignon
Libération
Page 32 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 2 . Token Ring
II . 2 . 1 . Caractéristiques principales
Développée par IBM et standardisée par l'IEEE, l'architecture Token Ring possède
les caractéristiques suivantes :






débits de 4Mbits/s et 16Mbits/s.
transmission en bande de base, codage biphase différentiel
(Manchester différentiel).
topologie en anneau et câblage en étoile (utilisation d'interfaces
multiports MAU).
méthode d'accès suivant la norme 802.5 (jeton).
longueur maximale des trames : 5000 octets.
gestion des couches 1 et 2 du modèle OSI.
Les éléments d'un réseau token ring :

MAU (Medium Access Unit) : c'est l'élément qui permet de réaliser
l'anneau. Les MAU sont connectés entre eux au moyen d'un port d'entrée RI (Ring
In) et d'un port de sortie (Ring Out).

Station de supervision (ou moniteur) : cette station, pouvant être
confondue avec le serveur, a pour rôle l'initialisation et la surveillance du jeton.
Toute les stations sont capables de jouer ce rôle.

Câblage : plusieurs options existent,
 Type 1 : 2 paires torsadées blindées (4 ou 16 Mbits/s).
 Type 2 : 2 paires torsadées blindées + 4 paires torsadées non
blindées (pour les communications RS232 et téléphoniques).
 Type 3 : câbles téléphoniques à paires torsadées non blindées.
 Type 5 : câble fibre optique pour l'interconnexion de MAU.
Câble
Type 1 ou 2
Type 3
Longueur max. de Nb max. de
lobe
noeuds
100 m
260
45 m
72
Nb max. de
MAU
32
8
Débits
4 ou 16 Mbits/s
4 Mbits/s
II . 2 . 2 . La trame 802.5 (Jeton sur anneau)
Elle définit les règles de connexion et de contrôle d'accès à un support selon la
méthode de l'anneau à jeton (Token Ring).
LT LA SALLE Avignon
Page 33 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Le bloc d'information défini par la norme 802.5 est le suivant :
SD
AC
FC
DA
SA
DATA
Préambule
Délimiteur
Contrôle d'accès
Contrôle trame
Adresse destination
Adresse source
Données
FCS
ED
FS
FCS
Délimiteur
Etat de trame
JK0JK000
PPPTMRRR
BBxxxxxx
JK1JK1IE
AC..AC..
n octets
1 octet
1 octet
1 octet
2 ou 6 octets
2 ou 6 octets
< 5000
2 octets
1 octet
1 octet
Remarques :

Le préambule est composé d'un nombre variable d'octets dont la durée de transmission
est de 2 µs.

Le champ SD indique le début de transmission d’une trame.
Les bits J e1 K sont des codes particuliers du codage Manchester.
Ces bits J et K, ne transportant pas d’information, permettent de délimiter sans ambiguïté
le début et la fin de trame. Ils permettent aussi de donner la polarité de base du signal
nécessaire pour le codage Manchester différentiel.

Le champ AC de contrôle d'accès contient le jeton, les priorités de trame et de
réservation. Il a le format suivant :
Les bits PPP indiquent la priorité actuelle du jeton.
Le bit T indique quand il est à 1 que le jeton est pris. Quand il est à 0 le jeton est
libre. Une trame jeton libre se limite aux champs SD, AC et ED.
Le bit M sert à la station de supervision pour marquer les trames et les empêcher
de tourner indéfiniment.
Les bits RRR servent aux autres stations pour demander une priorité plus élevée du
jeton.

Le champ FC définit le type des trames qui circulent. Les bits BB indiquent le type de
trame : 00 pour le niveau MAC et 01 pour des trames LLC.
Les autres valeurs possibles sont réservées.

Le champ ED, en utilisant les symboles J et K, permet de déterminer la fin des données
dans la trame. Deux bis sont utilisés à la fin :
I indique que l'émetteur a une autre trame à émettre,
E indique qu'une station des stations n'a pas reçu correctement la trame (mauvais
CRC, etc …)

Le champ FS d'état de la trame (Frame Status) permet les acquittmeents en indiquant si
le destinataire a reconnu son adresse et copié les données :
A indique que le récepteur a bien reconnu son adresse dans la trame,
C confirme que les données ont été recopiées par la station.
La trame qui transporte un jeton libre est de la forme SD-AC-ED (trois octets).
A tout moment, un émetteur peut arrêter l'émission d'une trame en envoyant la séquence SD-ED.
LT LA SALLE Avignon
Page 34 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 2 . 3 . Les fonctionnalités de Token Ring
Les fonctionnalités Token Ring correspondent aux couches Physique et Liaison
(MAC + LLC).
Principe du jeton sur anneau :
LT LA SALLE Avignon
Page 35 / 79
©TV.BTSii.2001
Réseaux TCP/IP
La sous-couche MAC fournit des services à la sous-couche supérieure ainsi qu'un
ensemble de services nécessaires à la gestion du réseau (gestion du jeton,
émission et réception, gestion des priorités ...).

Sous-couche MAC :
La sous-couche MAC gère l'accès au support suivant la méthode du jeton sur
anneau. La gestion de la boucle signifie la mise en place des fonctions permettant
:
- la création du jeton
- la circulation du jeton et l'émission des données
- le rétablissement du jeton en cas de perte
- la gestion des priorités
- la localisation des points de coupure de la boucle
Les fonctions création/rétablissement du jeton ne sont assurés que si la station a
le statut de superviseur.

Couche Physique :
La norme définit au niveau de la couche physique :
- le type de codage et de transmission de l'information
- les règles de raccordement au support
- la synchronisation de la boucle
Les informations sont codées en Manchester différentiel. Les délimiteurs
de trames utilisent pour les bits J et K un codage particulier.
Principe : Une transition systématique est réalisée au milieu de chaque bit. Pas
de transition pour coder un bit à 1, une transition pour coder un bit à 0.
Horloge
Signal
Binaire
1
0
1
1
0
J
K
1
0
0
0
1
Signal
Codé
LT LA SALLE Avignon
Page 36 / 79
©TV.BTSii.2001
Réseaux TCP/IP
LT LA SALLE Avignon
Page 37 / 79
©TV.BTSii.2001
Réseaux TCP/IP
II . 3 . Protocole PPP
Le protocole PPP (Point to Point Protocol) a été spécifié pour les besoins de connexion
TCP/IP au réseau Internet à partir de liaisons modem.
Ce protocole permet de réaliser une connexion IP via le réseau RTC, et aussi
gérer l'attribution automatique d'adresse, multiplexer des protocoles de niveau
3, compresser les données et détecter les erreurs.
Aujourd'hui, le champ d'application de PPP est étendu aux protocoles IPX et Decnet et
propose une alternative au protocole HDLC pour les réseaux longues distances
interconnectant des routeurs.
Le protocole PPP supporte les liaisons point à point asynchrones ou synchrones utilisent
pour cela :
 HDLC pour encapsuler les datagrammes;
 LCP (Link Control Protocol) pour établir, configurer et tester la liaison;
 NCP (Network Control Protocol) pour sélectionner et configurer les différents
protocoles de niveau 3 comme IP, IPX, Decnet qui peuvent être multiplexés sur
une même liaison.
Couche Physique :
Les interfaces physiques supportées sont : RS232, RS422 et V34. La seule contrainte
imposée par PPP est une liaison série full duplex.
Couche Liaison :
La couche liaison de PPP utilise les principes, la terminologie et la structure des trames
HDLC avec les particularités suivantes :
Adresse : champ non utilisé (FF)
Contrôle : contient toujours la valeur 03 soit une trame d'information UI avec le bit P/F
à 0.
On trouve un champ Protocole (2 octets), considéré comme une extension, qui indique
le type de protocole de niveau 3 présent dans le champ données, par exemple :
Valeur hexadécimale
0021
0027
0029
002B
Protocole
IP
Decnet
Appletalk
IPX
Données : contient les données limitées à 1500 (comme pour Ethernet).
FCS : sur 16 bits ou 32 bits (après négociation).
Dans la version asynchrone (RS232), chaque octet est transmis avec un bit de start et
un bit de stop. Le bit de parité est inutile puisque la détection d'erreurs est réalisée par
le FCS.
LT LA SALLE Avignon
Page 38 / 79
©TV.BTSii.2001
Réseaux TCP/IP
III . La couche Internet
III . 1 . Rappels sur TCP/IP et le modèle OSI
TCP/IP désigne en réalité une famille de protocoles (près d’une centaine). TCP/IP a servi
de base à l'établissement de la norme OSI (Open System Interconnection), mais il n'a
pas été retenu comme normalisation officielle. Il reste cependant le plus utilisé dans le
monde des réseaux sous Ethernet et UNIX. D’autre part il est le protocole standard
d’Internet.
Structure de TCP/IP par rapport au modèle OSI :
Le principe de l'encapsulation :
TCP
Entête
24
Données
IP
Entête
24
Données
Trame Ethernet_II
@ dest
@ srce
Type
CRC
Données
TCP/IP sous Ethernet
Destination
LT LA SALLE Avignon
Source
Type (0800)
Data
IP header
IP Data
TCP header
TCP Data
FTP header
FTP Data
Page 39 / 79
CRC
©TV.BTSii.2001
Réseaux TCP/IP
III . 2 . Adressage IP
IIII . 2 . 1 . IPv4
Le format des adresses suit la topologie des réseaux à interconnecter.
On distingue quatre classes, avec les format suivants :
0
Réseau (7 bits)
Adresse de classe A
Adresse station (24 bits)
Masque : 255.0.0.0
10
Réseau (14 bits)
Adresse de classe B
Adresse station (16 bits)
Masque : 255.255.0.0
110
Réseau (21 bits)
Adresse de classe C
Adresse station (8 bits)
Masque : 255.255.255.0
1110
Adresses Multicast (28 bits)
Adresse de classe D
1111
Format Indéfini (28 bits)
Classe des adresses étendues (E)
Les adresses sur 32 bits sont exprimées par octet (soit quatre nombres compris entre 0
et 255). Les différentes classes d'adresses correspondent donc à des nombres
appartenant aux plages suivantes :
- classe A
:
à
- classe B
:
à
- classe C
:
à
classe D :
ces adresses désignent un ensemble de machines voulant partager
la même adresse et ainsi participer à un même groupe, appelé
multicast .
classe E :
elle est en réserve pour les évolutions futures d’IP.
Remarques :
La valeur 255.255.255.255 est utilisée pour une diffusion générale (broadcast).
La valeur 0 est utilisée pour les machines ne connaissant pas leur adresse.
La valeur 127 est réservée pour un usage spécifique interne (loopback).
Si le réseau local possède une connexion vers Internet, il faudra utiliser des adresses
réservées, comme par exemple : 10 . 0 . 100 . x ou 192 . 168 . 0 . x.
La partie réservée pour l'adresse de la station (host) ne doit pas utiliser les adresses 0 et
1.
LT LA SALLE Avignon
Page 40 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Une adresse IP avec tous les bits host à zéro identifie le réseau lui-même. L’adresse
193.75.199.0 renvoie à toute l’adresse de classe C du réseau 193.75.199. Ces adresses
contenant des zéros sont utilisées dans les tables de routage pour désigner des réseaux
entiers. Des adresses avec des zéros peuvent être utilisées comme adresses source,
jamais comme adresses de destinations.
Une adresse IP avec tous les bits host à un est une adresse broadcast ou à diffusion
dirigée. Un datagramme envoyé à cette adresse est réexpédié à tous les membres de ce
réseau. L’adresse broadcast du réseau 26 est 26.255.255.255. Une adresse broadcast
est toujours une adresse de destination, jamais une adresse source.
Une partie de l'adresse de la station (host) peut être utilisée pour adresser des sousréseaux (sub-network). Dans ce cas, il faudra adapter le masque.
En pratique, il y a 2 types d'adresse :
l'adresse logique de niveau 3 (ex : @ IP sur 4 octets) et l'adresse physique de niveau 2
(ex : @ MAC sur 6 octets). On utilisera les protocoles ARP et RARP pour la
correspondance.
Il est impossible à des périphériques disposant de numéros de réseaux différents de
communiquer directement : ils doivent passer par les services d'un routeur. C'est ainsi
que des stations de travail séparés uniquement par un pont ou un répéteur ou HUB
auront la même classe d'adresses logiques tandis que des stations de travail séparés par
un routeur auront des numéros réseaux différents.
III . 2 . 2 . IPv6
La répartition d’adresses réseau en classes commencent déjà à poser de sérieux
problèmes. Avec la numérotation actuelle baptisée IPv4, il n'est possible d'adresser que 2
100 000 réseaux ou un total de 3 720 000 000. Les adresses de classe A sont très rares
et ne sont jamais attribuables par les instances régionales. Toutes les adresses de classe
A et B sont pour l'instant utilisées. Il faut convaincre l'IANA (Internet Assigned Numbers
Authority) de la réelle nécessité d'acquérir une telle adresse. La plupart des organisations
réclament des adresses de classe B de peur d’être limités par 255 adresses. En outre,
avec une classe C, on dispose de trop peu de bits pour découper le réseau en un grand
nombre de sous-réseaux. Comme il n’y a que 16382 adresses de classe B disponibles et
qui partent comme des petits pains, il est déjà nécessaire de revoir la norme IP pour
accroître le nombre d’adresses IP. La saturation complète de l'adressage IPv4 actuel est
prévu entre 2005 et 2011.
Un deuxième problème est la saturation des tables de routage qui croissent plus vite que
la technologie des mémoires propres à les contenir.
Ce sera la norme IPv6 et ses adresses IP codée sur 128 bits qui sera retenue pour pallier
ces deux problèmes. Fin 1994, l'Internet Engineering Task Force s'est mis d'accord sur la
norme IP Next Generation alias IPng alias IPv6. IPv6 supportera jusqu'à 1 milliard de
réseaux.
LT LA SALLE Avignon
Page 41 / 79
©TV.BTSii.2001
Réseaux TCP/IP
IPv6 apporte plusieurs améliorations à la norme IPv4 :
 Les stations de travail sont auto configurées déterminant leur propre adresse réseau et
adresse hôte.
 IPv6 est prévu pour coexister avec IPv4.
 Un réseau IPv6 peut supporter un nombre illimité d'hôtes.
 Une adresse IPv6 peut contenir une adresse IPv4
 Configuration automatique de périphériques portables se déplaçant sur le réseau.
 Le découpage hiérarchique des adresses pour fournir un routage efficace à de grandes
régions géographiques.
 Le support d'adresses de destination 'unicast', 'multicast' et 'anycast'. L'adressage
'anycast' définit une région topologique. Il est pensé pour réduire le trafic d'un réseau
en utilisant une adresse de destination qui désigne le groupe le plus proche de
machines.
 L'adresse est représentée comme huit valeurs hexadécimales de 16 bits séparés par
des doubles points du type 5D54:352A:1235:B357:8283:2CDE:C00D:FCB2. Des
groupes de zéros contigus peuvent être représentés par un double "::" comme suit:
CF76:0:0:0:0:0:0:27 devenant CF76::27. Une ancienne adresse IPv4 de type d.d.d.d
devient automatiquement x:x:x:x:x:x:d.d.d.d
 Les 48 derniers bits peuvent accueillir l'adresse MAC complète d'une carte réseau.
 0:0:0:0:0:0:0:0 devient une "unspecified address"
 L'adresse loopback n'est plus 127.0.0.1 mais 0:0:0:0:0:0:0:1
 Le header a été simplifié pour réduire la bande passante requise par le protocole.
 Une nouvelle fonction "flow labelling" permet de spécifier les besoins en performance
d'une transaction donnée.
 Des extensions supportent l'authentification et la confidentialité des données.
Version
Priority
Flow label
Payload length
Next header
Hop Limit
Source IP Address
Destination IP Address
Les champs de la nouvelle en-tête sont :
 Version (4bits) valeur fixée à 6
 Flow label : permet à un routeur de fournir un niveau de service à une collection de
datagrammes
 Payload length indique la longueur en octets du datagramme suivant l'en-tête.
 Next header permet de créer des datagrammes de longueur d'en-tête variable comme
c'est le cas lorsqu'il y a alternance de paquets TCP ou UDP.
 Hop limit a la même fonction que l'ancien champ TTL (Time To Live) la valeur étant
décrémentée de 1 par chaque routeur, un paquet étant écarté lorsque cette valeur
atteint 0.
Parallèlement à IPv6, un nouveau ICMPv6 complète l'actuel Internet Control Message
Protocol avec des types de 0 à 127 pour les messages d'erreur et 128 à 255 pour les
messages d'information. De même un DNS for IPv6 renvoie des adresses IPv6 aux
nœuds qui utilisent déjà ces services.
Enfin, RIPng est chargé de l'échange d'informations de routage concernant des stations
IPv6. RIPng utilise le protocole ICMPv6 pour découvrir et annoncer de nouveaux
routeurs.
LT LA SALLE Avignon
Page 42 / 79
©TV.BTSii.2001
Réseaux TCP/IP
III . 3 . Le protocole IP
Le protocole IP (Internet Protocol) est un protocole de niveau réseau.
IP est un protocole connectionless. Cela signifie qu’il n’échange pas de contrôle
d’information, de handshake avant d’établir une connexion point à point par opposition
aux protocoles connection-oriented qui vérifient que le système distant est prêt à recevoir
des données.
IP ne contient aucune détection d’erreur et aucun mode de récupération de données.
Les principales fonctions assurées par le protocole IP sont :




la
la
le
la
définition des datagrammes (paquets)
définition du schéma d’adressage Internet
routage des datagrammes vers les hôtes distants
fragmentation et le réassemblage des datagrammes
III . 3 . 1 . Format du paquet IP
Le format unique du paquet IP, ou datagramme IP, est organisé en champs de 32 bits :
0
7
15 16
31
Version
Type de service
Longueur
Longueur totale
Identificateur
Drapeau
Position du fragment
Durée de vie TTL
Protocole
Checksum de l'en-tête
Adresse station source
Adresse station destinatrice
Options éventuelles
Bourrage
Données 64 KO
 Le champ Version (4 bits) identifie la version du protocole IP. Elle est fixée
actuellement à 4.
 Un champ Internet Header Length ( 4 bits) spécifie la longueur de l’en-tête en mots de
32 bits. Cette longueur IHL varie de 5 à 15, 5 étant la longueur normale lorsqu'aucune
option n'est utilisée.
 Le champ "type de service" ( 8 bits) définit la priorité du paquet et le type de routage
souhaité. Cela permet à un logiciel de réclamer différents types de performance pour
un datagramme : délai court, haut débit, haute fiabilité ou bas prix.
 Le champ "longueur totale" (16 bits) définit le nombre d'octets contenus dans le paquet
y compris l'en-tête IP. Puisque ce champ est codé sur 16 bits, un paquet IP est de
maximum 65535 octets (64 KO).
 Le champ "Identification" (16 bits) contient une valeur entière utilisée pour identifier
les fragments d'un datagramme. Ce champ doit être unique pour chaque nouveau
datagramme.
 "Flags" ( 3 bits) est utilisé pour contrôler la fragmentation des paquets. Le bit de poids
faible à zéro indique le dernier fragment d'un datagramme et est baptisé "more flag"
ou MF bit. Le bit du milieu est appelé "do not fragment flag" ou DF bit. Le bit de poids
fort n'est pas utilisé.
LT LA SALLE Avignon
Page 43 / 79
©TV.BTSii.2001
Réseaux TCP/IP

"Offset" (13 bits) sert à indiquer la position qu'occupait les données de ce fragment
dans le message original.
 Le TTL ou "Time To Live" (8 bits) est l'expression en secondes de la durée maximale de
séjour du paquet dans un réseau. Il existe 2 manières de faire baisser cette valeur :
lors du réassemblage du paquet dans un routeur, sa valeur est décrémentée chaque
seconde ou alors chaque routeur qui traite ce paquet décrémente le TTL d'une unité
(compteur de routeurs). Si le TTL devient nul, son paquet IP n'est plus relayé : c'est
souvent l'indication d'une erreur de paquet qui boucle. Une utilisation détournée de ce
champ permet de tracer la route empruntée par un paquet. En mettant le champ TTL à
0, le premier routeur rencontré rejette le paquet et signale sa présence en retournant
un paquet ICMP d'erreur vers l'émetteur. On renvoie alors le paquet avec le champ TTL
à 1 afin d'atteindre le routeur suivant et ainsi de suite. A chaque fois, on récupère
l'adresse IP du routeur.
 Le champ "protocole" ( 8 bits) identifie la couche de transport propre à ce datagramme
:
17 pour UDP
6 pour TCP
1 pour ICMP
8 pour EGP
89 pour OSPF
 Le checksum ou champ de contrôle de l'en-tête ( 16 bits) contient le "complément à
un" du total "en complément à un" de tous les mots de 16 bits de l'en-tête.
 L'adresse IP source est codée sur 32 bits
 L'adresse IP de destination est également codée sur 32 bits
 A la rubrique "Options", sont stockées des demandes spéciales pour requérir un
routage particulier pour certains paquets.
 Le champ "padding" est habituellement bourré de 0 de manière à aligner le début des
données sur un multiple de 32 bits.
IP délivre un datagramme en vérifiant l’adresse de destination contenu dans l'en-tête.
Si l’adresse de destination fait partie du réseau local, le paquet est remis directement
sinon le paquet est transmis à un gateway. La décision d’emprunter tel ou tel gateway
est appelée routage. On parle souvent abusivement de routeurs IP pour des gateways
Internet parce qu’ils utilisent le protocole IP pour router des paquets entre réseaux.
Dans l’acception TCP/IP, il n’y a que deux types de périphériques réseau : les hosts et les
gateways. Les gateways transmettent des paquets entre réseaux, les hosts pas.
Conclusion :
Le protocole IP est un protocole sans connexion, non fiable (sans acquittement
et sans détection/correction d'erreur).
III . 4 . Autres protocoles de niveau 3
III . 4 . 1 . ARP (Address Resolution Protocol) et RARP
Les réseaux physiques qui véhiculent du TCP/IP répondent à d’autres schémas
d’adressage et il est indispensable de recourir à des protocoles capables de transformer
une adresse IP en une adresse physique de réseau. C’est le cas par exemple d’ARP ou
Address Resolution Protocol qui se charge de la conversion IP vers Ethernet et son
schéma d’adressage MAC. Ce mécanisme est transparent pour l'utilisateur.
LT LA SALLE Avignon
Page 44 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Une table de conversion est générée dynamiquement sur chaque hôte dans ce qu'on
appelle l'"ARP cache". Quand Arp reçoit une demande de conversion, il consulte sa table
et retourne l’adresse Ethernet si elle s’y trouve sinon il envoie un paquet spécial ARP
Request Packet à tous les hôtes Ethernet incluant l’adresse IP à rechercher en utilisant
l'adresse broadcast MAC 0xFFFFFFFFFFFF.
La machine correspondant lui répond en lui renvoyant son adresse Ethernet qui est alors
placée dans la table ARP. Si aucune réponse n'est reçue dans un délai imparti, la requête
est envoyée à nouveau.
Le contenu de la cache est généralement conservé jusqu'à l'extinction de la machine
hôte. Les datagrammes ARP ne passent pas à travers les routeurs, qui relaient des
informations au niveau de la couche IP mais pas du trafic broadcast MAC.
Les données de la table ARP peuvent être visualisées ou modifiées via l’utilitaire
arp.
C:\>arp -a
Interface: 199.199.40.123
Internet Address
Physical Address
199.199.40.1
00-00-0c-1a-eb-c5
199.199.40.124
00-dd-01-07-57-15
Type
dynamic
dynamic
Interface: 10.57.8.190
Internet Address
Physical Address
10.57.9.138
00-20-af-1d-2b-91
Type
dynamic
arp -s permet l’addition d’une entrée statique dans la table.
C:\>arp -s 10.57.10.32 00-60-8c-0e-6c-6a 10.57.8.190
C:\>arp -a
Interface: 199.199.40.123
Internet Address
Physical Address
199.199.40.1
00-00-0c-1a-eb-c5
199.199.40.124
00-dd-01-07-57-15
Type
dynamic
dynamic
Interface: 10.57.8.190
Internet Address
Physical Address
10.57.9.138
00-20-af-1d-2b-91
10.57.10.32
00-60-8c-0e-6c-6a
Type
dynamic
static
La suppression d’une entrée se réalise par l’option arp -d
C:\>arp -d 10.57.10.32
C:\>arp -a
Interface: 199.199.40.123
Internet Address
Physical Address
199.199.40.1
00-00-0c-1a-eb-c5
199.199.40.124
00-dd-01-07-57-15
Interface: 10.57.8.190
Internet Address
Physical Address
00-20-af-1d-2b-91 dynamic
LT LA SALLE Avignon
Type
dynamic
dynamic
Type
Page 45 / 79
©TV.BTSii.2001
Réseaux TCP/IP
ARP a été conçu pour fonctionner avec n'importe quel protocole, cela implique l'utilisation
d'un format de paquet souple. Le "paquet" ARP est encapsulé dans une trame Ethernet
avec l'adresse de diffusion générale (broadcast) et le numéro de protocole désignant un
paquet ARP (0x806). Les champs spécifiques à ARP sont :
0
8
16
24
id espace d'adresse physique
id espace d'adresse logique
lg @ physique
lg @ protocole
code
@ physique émetteur …
@ physique émetteur.
@ protocole émetteur …
@ protocole récepteur.
@ physique récepteur …
@ physique récepteur.
@ protocole récepteur.
31
 id espace d'@ physique : la valeur est 1 pour Ethernet ;
 id espace d'@ logique : indique le protocole pour lequel on cherche l'adresse (0x800
pour IP) ;
 lg @ physique : 6 pour Ethernet ;
 lg @ protocole : 4 pour IPv4 ;
 code : définit la signification du paquet, soit :
1 pour une demande
0 pour une réponse
Les champs suivants ont une taille variable (ici j'ai pris le cas classique @ MAC Ethernet
et @ IP).

Il existe un certain risque lié à l'utilisation du protocole ARP si une machine non
fiable a accès au réseau et émet de faux messages ARP pour imiter une machine ou
détourner tout le trafic vers elle-même afin d'en modifier les données (ARP spoofing). De
plus, les cartes réseaux acceptent maintenant un mode dit PROMISCUOUS qui leur
permet d'accepter toutes les trames. Ce fonctionnement est intéressant pour les
analyseurs réseaux ou des passerelles mais offre aux pirates un autre moyen de sniffer
un réseau.
RARP pour Reverse ARP réalise la même conversion mais dans le sens MAC vers
IP.
Ce protocole est par exemple utilisé pour configurer des stations diskless afin qu’elles
obtiennent automatiquement une adresse IP. Les noeuds du réseau agissant comme
serveurs RARP qui trouvent une correspondance IP pour une adresse MAC dans leurs
tables renvoient cette adresse IP sous forme de réponse RARP.
LT LA SALLE Avignon
Page 46 / 79
©TV.BTSii.2001
Réseaux TCP/IP
LT LA SALLE Avignon
Page 47 / 79
©TV.BTSii.2001
Réseaux TCP/IP
III . 4 . 2 . ICMP (Internet Control Message Protocol)
Le protocole ICMP utilise les datagrammes IP pour transporter ses messages. C’est par
son biais que sont réalisés :
 le contrôle de flux : le récepteur débordé par un émetteur trop rapide, envoie un
message ICMP Source Quench pour arrêter temporairement l’émission
 la détection de destinations inaccessibles dénoncée par un message Destination
Unreachable
 la redirection de routes pour avertir une machine hôte d’utiliser un autre gateway.
ICMP fournit d'intéressantes données pour le diagnostic d'opérations du réseau. ICMP
utilise des datagrammes IP pour véhiculer des messages aller-retour entre noeuds
concernés. Un message d'erreur ICMP est généré par une machine hôte réalisant qu'il y a
un problème de transmission et renvoyé à l'adresse de départ du datagramme ayant
provoqué le problème.
Destination
Source
Type (0800)
Data
IP header
IP Data
CRC
ICMP
Type Code
...
Une en-tête ICMP est codée sur 32 bits, 8 pour le type, 8 pour le code dont la
signification dépend du type et 16 pour le contrôle/checksum.
Le paquet ICMP, encapsulé dans un pâque IP (dont le champ protocole vaut 1 pour ICMP)
, a la structure suivante :
0
7
15
23
code
checksum
… données complémentaires (n° id et n° seq) …
type
31
entête internet et données émises dans le paquet ICMP
Le champ donnée complémentaire est divisé en deux champs de 16 bits contenant :
 un numéro d'identification du paquet (pour distinguer 2 ping simultanément) ;
 un numéro de séquence pour mesurer les temps aller et retour sur le réseau et
les pertes.
Le protocole ICMP (Internet Control Message Protocol -- RFC 792) est utilisé notamment
par la commande ping qui :
 emet un paquet ICMP "demande d'écho" (type=8 et code=0) et
 reçoit, si la machine distante est active (alive), un paquet ICMP "réponse
d'écho" (type=0 et code=0).
LT LA SALLE Avignon
Page 48 / 79
©TV.BTSii.2001
Réseaux TCP/IP
La liste de messages "type" définis par les RFC 792 et 1256 sont :
0
3
4
5
8
9
10
11
12
13
14
15
16
17
18
Réponse d'écho
Destination inaccessible
Source Quench
Redirection
Echo request
Annonce de routeur
Sollicitation de routeur
TTL expiré
Problème de paramètre
Requête Horodatage
Réponse d'horodatage
Demande d'information
Réponse d'information
Requête de masque d'adresse
Réponse de masque d'adresse
0-8
Les messages ICMP les plus courants sont le couple de type 0 et 8 générés par le
programme de test "ping". Ping envoie un datagramme de type 8 (echo request) à un
noeud dont il attend en retour un message de type 0 (echo reply) renvoyant les données
incluses dans la requête.
3
Quand le "type" est par exemple 3 pour destination inaccessible, le "code"
précise si c'est le réseau, l'hôte, le protocole ou le port qui sont inaccessibles.
0
1
2
3
4
5
7
11
12
13
14
15
Network unreachable
Host unreachable
Protocol unreachable
Port unreachable
Fragmentation needed and do not fragment bit set
Source route failed
Destination Host unknown
Network unreachable for type of service
Host unreachable for type of service
Communication administratively prohibited
Host precedence violation
Precedence cut-off in effect
4
Un datagramme Source Quench est identique à celui du type Destination Unreachable. Il
sert à contrôler un flux d'informations. Si un routeur détecte que son réseau ou son
processeur ne peut suivre le débit d'une machine hôte émettrice, il envoie à celle ci un
message ICMP incluant la cause du dépassement de capacité.
0
Redirect datagram to go to that network
1
Redirect datagram to reach that host
2
Redirect datagram for that network with that TOS
3
Redirect datagram for that host with that TOS
LT LA SALLE Avignon
Page 49 / 79
©TV.BTSii.2001
Réseaux TCP/IP
5
Le datagramme Route change request est utilisé par les routeurs qui connaissent une
meilleure route pour atteindre une destination particulière.
9-10
Le Router discovery protocol permet à un système d'être averti dynamiquement de la
présence de tous les routeurs disponibles immédiatement sur un réseau LAN. Les
messages de type 9, router advertisement, permettent à des routeurs de s'annoncer sur
un réseau à intervalles de 7 à 10 minutes suite à un message de type 10, router
sollicitation, émis par une machine hôte.
11
Le message Time exceeded for datagram utilise un datagramme identique à celui du type
Destination Unreachable. Un routeur l'utilise pour signaler à la machine source que la
valeur TTL (Time To Live) d'une en-tête IP a été décrémentée jusqu'à la valeur
d'expiration 0, ce qui revient à dire que le paquet a été écarté probablement à cause
d'une boucle infinie dans le routage.
12
Le message ICMP Parameter Problem indique qu'un argument invalide a été utilisé dans
le champ Options d'une en-tête IP.
13-14
Le type ICMP 13 pour Time Stamp Request et 14 pour Time Stamp Reply sont utilisés
pour interroger l'horloge d'un système distant afin de s'y synchroniser ou récolter des
informations statistiques.
15-16
Les messages Information Request est envoyé pour obtenir l'adresse réseau d'une
machine hôte donnée. C'est la méthode utilisée par le protocole SLIP (Serial Line IP) pour
allouer une adresse IP à la machine appelante.
17-18
Les messages Address Mask Request sont utilisés parallèlement à l'adressage en sous
réseau pour découvrir le masque de sous-réseau d'une machine hôte.

Certains pirates utilisent ICMP pour couper des connexions : d'anciens programmes
gérant ICMP coupent toutes les connexions à une machine X s'ils reçoivent de cette
machine X un message d'erreur ICMP : Destination unreachable. D'autres utilisent les
messages de redirection ICMP pour créer de nouvelles routes vers une destination.
LT LA SALLE Avignon
Page 50 / 79
©TV.BTSii.2001
Réseaux TCP/IP
IV . La couche Transport
IV . 1 . Introduction
Le protocole IP permet de mettre en correspondance 2 machines grâce à leurs adresses.
Ce mécanisme n’est pas complet, puisque la communication s’effectue au niveau des
processus (programmes) qui tournent sur ces machines. Il faudra donc identifier quels
sont les processus des machines qui veulent communiquer.
C’est le rôle de la couche Transport d’assurer la transmission de bout en bout.
TCP/IP propose 2 protocoles : UDP (User Datagram Protocol) et TCP (Transmission
Control Protocol).
UDP et TCP offrent un système de numéro de port pour permettre à 2 processus
distants d’échanger des messages.
Actuellement, l’interface la plus utilisée sous TCP/IP est l’interface socket. Les sockets
sont apparues au début des années 80 à l’université de Berkeley dans le noyau de leur
système d’exploitation BSD Unix.
Une socket est un point de communication par lequel un processus peut émettre
et recevoir des informations (« boîte aux lettres »). Ce point de communication
devra être relié à une adresse IP et un numéro de port.
IV . 2 . Caractéristiques
TCP fournit un service de transfert :
 fiable (détection et correction d’erreurs) avec élimination des paquets
dupliqués;
 en mode connecté avec contrôle de flux et segmentation et
séquencement des paquets ;
UDP fournit un service de transfert :
 non fiable (détection mais pas de correction des erreurs) avec risque de
duplication de paquets ;
 en mode non connecté sans segmentation des données et sans
séquencement des paquets ;
UDP fournit donc un service plus performant mais moins sûr que TCP.
De plus le trafic UDP est prioritaire sur le trafic TCP. En effet, le protocole TCP
possède un mécanisme de contrôle de congestion, dans le cas où l'acquittement
d'un paquet arrive après un temps trop long. Ce mécanisme adapte la fréquence
d'émission des paquets TCP. Le protocole UDP ne possède pas ce mécanisme et
occupera toute la bande passante en cas de fort trafic n'en laissant qu'un infime
partie à TCP.

Il existe différents types de dénis de service (DOS) utilisant les protocoles TCP et
UDP. On peut citer le SYN flooding qui affecte une machine cible ou l'UDP flooding qui
peut entraîner la paralysie complète d'un réseau.
LT LA SALLE Avignon
Page 51 / 79
©TV.BTSii.2001
Réseaux TCP/IP
IV . 3 . Principe d’un échange TCP
La fiabilité de la transmission est assurée par un mécanisme baptisé Positive
Acknowledgement with Re-transmission (PAR). PAR envoie données sur données jusqu’à
ce qu’il soit averti de la bonne arrivée des données.
Le handshake se fait en trois phases (Three Way Handshake) :
1 . Une machine A initialise la connexion en envoyant un segment incluant un SYN
(Synchronize sequence numbers) et un numéro de séquence x.
2 . La machine B lui répond par un segment avec les drapeaux SYN et ACK
(Acknowledgement) avec un numéro d'acquittement x+1. Son numéro de séquence
vaut y.
3 . La machine A envoie alors les données en même temps que le flag ACK et le numéro
d'acquittement y+1.
Une même procédure en trois phases clôture une connexion via le flag FIN ou “No more
data from sender”.
Ouverture d’une connexion
On appellera client la station qui demande l’ouverture de la connexion et serveur la
station qui répond à cette demande.
Le client demande une ouverture active de la connexion ce qui se traduit par l’émission
de messages sur le réseau.
Transfert de données
Le protocole TCP comptabilise les octets transmis. Le champ seq indique la place du
premier octet de données du paquet et ack le prochain octet attendu par l’émetteur du
paquet.
Contrôle de flux
Le champ fenêtre indique la largeur de la fenêtre de transmission ou le crédit accepté par
le récepteur.
Fermeture d’une connexion
La fermeture d’une connexion se fait quand le récepteur reçoit une trame dont le bit FIN
est positionné à 1.
LT LA SALLE Avignon
Page 52 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Les numéros de SEQ indiquent le prochain octet attendu. Si le bit SYN est positionné, le
n° de SEQ contient une valeur (Initial Sequence Number) initialisée par une horloge
locale (un compteur est incrémenté toutes les 4 ms). La n° de SEQ étant sur 32 bits, la
durée avant que le compteur revienne à zéro est d'environ 5 heures.
Client
Serveur
accepte toutes les
connexions
Demande
d’ouverture
« Active open »
Open ID
nom local de la
connexion
« unspecified
passive open »
Open Id
nom local de la
connexion
SYN 55
ACK 56
SYN 202
Ouverture réussie
« Open success »
ACK 203
Envoi de 10
octets
SYN 202 : synchronisation des
membres et indique la valeur
initiale de SEQ
Ouverture réussie
« Open success »
PSH ACK
seq : 56
acq : 203
Envoi de 10
octets
ACK 56 : indique le n° de SEQ
attendu du prochain segment
ACK
seq : 203
acq : 66
ACK
seq : 66
acq : 223
PSH ACK
seq : 223
acq : 76
Indication de 22
octets, etc …
Envoi de 20
octets
Indication de 10
octets
Envoi de 2 octets
Indication de 10
octets
Demande de
déconnexion
FIN ACK
ACK
Confirmation de
déconnexion
FIN ACK
ACK
LT LA SALLE Avignon
Page 53 / 79
Indication de
déconnexion
©TV.BTSii.2001
Réseaux TCP/IP
IV . 4 . Format de l’en-tête TCP
0
déplacement
7
15
23
port source
port destinataire
numéro de séquence (seq)
numéro d’accusé de réception (ack)
réservé
Id. de contrôle
fenêtre
Checksum
pointeur d’urgence
Options éventuelles
Bourrage
31
Données
Les différents champs de l'en-tête sont :
 Source Port (16 bits)
 Destination port (16 bits)
 Sequence Number (32 bits) compte les octets du flux de transmission de manière à
identifier la position du premier octet de données d'un segment dans le flot des
données initiales
 Acknowledgment Number (32 bits) contient le n° de séquence du prochain octet
attendu
 Offset le déplacement en mots de 32 bits du début des données de l'application. La
valeur par défaut est 5
 Flags





:
URG Urgent Pointer vers des données urgentes
ACK Acknowledge Field
PSH Push Flag pour passer immédiatement les données à la couche application
RST Reset Flag force la clôture d'une connexion après une erreur irrécupérable.
SYN Synchronize Flag pour synchroniser le démarrage d'une connexion entre
deux noeuds.
 FIN pour terminer une connexion
 Window (16 bits) annonce le nombre d'octet que le récepteur peut accepter.
 Le checksum ou champ de contrôle de l'en-tête (16 bits) contient le "complément à un"
du total "en complément à un" de tous les mots de 16 bits de l'en-tête.
 Urgent Pointer ( 16 bits ) pointe à la fin d'un champ de données considéré comme
urgent
 Options ( longueur variable ) ne comporte qu'une possibilité : le MSS ou Maximum
Segment Size désignant la taille maximum du segment à envoyer.
 Le champ "padding" est habituellement bourré de 0 de manière à aligner le début des
données sur un multiple de 32 bits.
Le protocole TCP découpe les données trop volumineuse pour être acceptées par
IP : c’est la segmentation.
Le protocole TCP/IP permet de s'affranchir des protocoles d'accès au support. Il est
incorporé dans les systèmes Unix, Netware et Windows95 et NT.
LT LA SALLE Avignon
Page 54 / 79
©TV.BTSii.2001
Réseaux TCP/IP
IV . 5 . Format d’un datagramme UDP
UDP permet à une application d’envoyer des messages à une autre application avec un
minimum de fonctionnalités (pas de garantie d’arrivée, ni de contrôle de séquencement).
UDP n’accepte pas de datagramme de taille supérieure à 8KO.
UDP permet simplement d’utiliser les numéros de port et de ce fait de se mettre au
même niveau que TCP. Format d’un message UDP :
0
7
port source
longueur
15
23
port destinataire
Checksum
31
Données

Comme UDP est un protocole peu fiable (pas de correction d'erreur, pas de
détection de perte de paquets) il est plus aisé pour un "hacker" de modifier des paquets
UDP que TCP. Sans numéro de séquence ou échange de salutation, il est simple d'y
substituer une adresse IP source qui ne devra jamais servir à authentifier une connexion.
IV . 6 . Aiguillage
Pour une interface réseau installée, on considère que les couches 1 et 2 sont alors
uniques.
Par contre, à partir de la couche 3, il est possible de posséder plusieurs protocoles par
couche. L'aiguillage vers le protocole concerné se fait à partir d'un champ contenu dans
l'en-tête : il est renseigné dans la phase d'encapsulation, puis lu et traité dans la phase
de désencapsulation.
L'aiguillage au niveau 2 a déjà été traité précédemment.
Pour les protocoles de la couche Application, ils sont identifiés par un numéro de port, au
niveau socket. Une socket identifie de manière unique un processus réseau ou daemon.
On rappelle qu'une socket est la combinaison d'une adresse IP et d'un numéro de port de
la couche Transport.
LT LA SALLE Avignon
Page 55 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Exemple :
TELNET
port 23
TCP
protocole 6
IP
192.168.1.1
En-tête IP
6
En-tête TCP
192.168.1.1
23
Source
192.168.1.2
Destination
192.168.1.1
Port source : 3044
Port destination : 23
client
Port source : 23
Port destination : 3044
serveur
IV . 7 . Résolution d'adresses
On considère le réseau suivant :
poste1
192.168.1.1
00 40 61 00 03 2A
poste2
192.168.1.2
00 C0 6C 45 01 80
serveur
192.168.1.254
00 0E 0A 00 04 EB
Les postes viennent d'être démarrés, donc leurs tables arp sont vides.
Un utilisateur du poste1 tape la commande suivante : $ telnet poste2
LT LA SALLE Avignon
Page 56 / 79
©TV.BTSii.2001
Réseaux TCP/IP
En ne s'intéressant qu'aux champs adresses, la trame émise par encapsulation
ressemblerait à ça :
Trame MAC
PCI
DATA
00 40 61 00 03 2A
???
@ MAC source
@ MAC dest
…
PCI
192.168.1.1
???
…
@ IP source
@ IP dest
FCS
Le poste1 est incapable de renseigner les champs @ MAC et @ IP destination, il n'a que
le nom de la machine.
Un mécanisme de résolution d'adresse est donc nécessaire pour trouver la
correspondance :
 nom <-> @ IP ;
 @ IP <-> @ MAC.
La correspondance entre un nom et une adresse IP peut notamment être résolu soit par
le fichier hosts, stocké localement sur la machine, soit en ayant recours à un serveur de
noms (DNS) :
Soit le poste 1 tient à jour son fichier hosts avec tous les noms et adresses IP, soit il ne
conserve qu'une seule adresse IP : celle du serveur DNS (dans notre exemple
192.168.1.254). Cette deuxième solution est souvent utilisée.
La correspondance entre une adresse IP et une adresse MAC est réalisée par
l'intermédiaire du protocole ARP (et RARP).
On va détailler ici l'échange :
 poste1 veut envoyer une requête au serveur DNS pour avoir l'adresse IP de la
machine de nom poste2. Mais, il doit d'abord obtenir l'adresse MAC du serveur DNS : il
va donc émettre une requête ARP en utilisant une adresse MAC de broadcast (diffusion
générale).
Trame MAC : REQUETE ARP (demande)
PCI
DATA
00 40 61 00 03 2A
FF FF FF FF FF FF
@ MAC source
@ MAC dest
…
192.168.1.1
PCI
192.168.1.254
@ IP source
…
FCS
@ IP dest
 La machine serveur reçoit la trame, reconnaît son adresse IP et répond à la requête
ARP en donnant son adresse MAC : 00 0E 0A 00 04 EB.
Trame MAC : REQUETE ARP (réponse)
PCI
DATA
00 0E 0A 00 04 EB
00 40 61 00 03 2A
@ MAC source
@ MAC dest
LT LA SALLE Avignon
…
192.168.1.254
@ IP source
Page 57 / 79
PCI
192.168.1.1
…
FCS
@ IP dest
©TV.BTSii.2001
Réseaux TCP/IP
 poste1 peut maintenant émettre une requête DNS vers serveur pour demander l'@ IP
de poste2 :
Trame MAC : REQUETE DNS (demande)
PCI
DATA
00 40 61 00 03 2A
00 0E 0A 00 04 EB
@ MAC source
@ MAC dest
…
192.168.1.1
PCI
192.168.1.254
@ IP source
…
FCS
@ IP dest
 serveur lui renvoie l'@ IP de poste2 :
Trame MAC : REQUETE DNS (réponse)
PCI
DATA
00 0E 0A 00 04 EB
00 40 61 00 03 2A
@ MAC source
@ MAC dest
…
192.168.1.254
PCI
192.168.1.1
@ IP source
…
FCS
@ IP dest
 poste1 consulte sa table ARP à partir de l'@ IP de poste2. Il ne possède pas son @
MAC, il va donc faire une requête ARP pour l'obtenir :
Trame MAC : REQUETE ARP (demande)
PCI
DATA
00 40 61 00 03 2A
FF FF FF FF FF FF
@ MAC source
@ MAC dest
…
PCI
192.168.1.1
192.168.1.2
@ IP source
@ IP dest
…
FCS
 poste2 reconnaît son @ IP et répond à la requête ARP en donnant son adresse MAC :
00 C0 6C 45 01 80.
Trame MAC : REQUETE ARP (réponse)
PCI
DATA
00 C0 6C 45 01 80
00 40 61 00 03 2A
@ MAC source
@ MAC dest
…
PCI
192.168.1.2
192.168.1.1
@ IP source
@ IP dest
…
FCS
 poste1 a maintenant l'@ MAC et l'@ IP de poste2 : il peut lui envoyer une trame
contenant un segment TCP de demande de connexion sur le port 23 …
Trame MAC : demande de connexion TCP
PCI
DATA
00 40 61 00 03 2A
00 C0 6C 45 01 80
@ MAC source
@ MAC dest
LT LA SALLE Avignon
…
Page 58 / 79
PCI
192.168.1.1
192.168.1.2
@ IP source
@ IP dest
…
FCS
©TV.BTSii.2001
Réseaux TCP/IP
L'échange peut se représenter de la manière suivante :
poste1
192.168.1.1
00 40 61 00 03 2A
poste2
192.168.1.2
00 C0 6C 45 01 80
émet une
requête ARP
pour obtenir
l'@ MAC de
serveur
serveur
192.168.1.254
00 0E 0A 00 04 EB
reconnaît
son @ IP et
renvoie son
@ MAC
émet une
requête DNS
pour obtenir
l'@ IP de
poste2
répond à la
requête DNS
en donnant
l'@ IP de
poste2
émet une
requête ARP
pour obtenir
l'@ MAC de
poste2
La
résolution
d'@ est
terminée et
la connexion
TCP peut
commencer …
LT LA SALLE Avignon
reconnaît
son @ IP et
renvoie son
@ MAC
Page 59 / 79
©TV.BTSii.2001
Réseaux TCP/IP
V . Couche Application
V . 1 . Protocole HTTP
V . 1 . 1 . Présentation
L’HyperText Transfer Protocol (HTTP) est un protocole de niveau application, léger et
efficace, pour la transmission de documents distribués et multimédia. Le protocole HTTP
1.0 est décrit dans la RFC 1945.
Ce protocole fixe le principe de communication entre un logiciel de navigation Web
(communément appelé ”navigateur” ou « browser » ou « client » ) et un serveur Web
(souvent appelé httpd, d pour daemon sous Unix ). C'est l'épine dorsale du World Wide
Web (WWW).
Le principe de communication est simple :
 La communication s’initie TOUJOURS à la demande du client. Celui ci s’adresse à un
serveur caractérisé par une adresse IP ou son nom, sur un port connu, le plus souvent le
port 80, mais cela n’a rien d’obligatoire.
 Une connexion TCP s’établit.
 Le client envoie une requête au serveur et ce dernier lui renvoie une réponse
correspondant à sa requête. þ Le serveur clôt la connexion une fois la totalité de la
réponse émise.
Nous allons maintenant détailler une requête et une réponse HTTP 1.0.
V . 1 . 2 . Requête HTTP
Le format d’une requête HTTP est le suivant :
Ligne de commande
En-tête de la requête
[ligne vide]
Corps de la requête
La ligne de commande possède elle même trois champs : commande, URL et version.
 Le premier champ, commande, contient une des commandes définies dans le protocole
HTTP. Les principales commandes sont les suivantes :
 GET : demande au serveur de renvoyer le contenu de l’information pointée par
l’URL spécifiée dans la ligne de commande. Il peut s’agir d’un simple fichier HTML
ou multimédia (image, son, ...), voire le compte rendu de l’exécution d’un
programne CGI.
 HEAD : cette commande est similaire à la précédente mais le serveur ne renvoie
que l’en-tête associé à la ressource demandée (par exemple, la date de dernière
modification d’un fichier, ...).
LT LA SALLE Avignon
Page 60 / 79
©TV.BTSii.2001
Réseaux TCP/IP
 POST : permet au client d’envoyer des données au serveur, comme par exemple
le contenu d’un formulaire renseigné par l’utilisateur. Ces données constituent le
corps de la requête.
Autres Méthodes Actions
PUT
DELETE
LINK
UNLINK
OPTIONS
envoie une information au serveur à des fins de stockage
supprime la ressource URL
établit une relation entre deux URL
supprime cette relation
requête d'informations pour connaître les options disponibles
 Le deuxième champ de la ligne de commande est une URL. Elle désigne en fait la
ressource sur laquelle on désire appliquer la commande spécifiée dans le champ
précédent. Cette URL peut aussi bien désigner un fichier statique (HTML, son, ...) ou un
programme CGI . Une URL bien formée ressemble à ceci :
http://host[:port]/chemin/file.ext
(Le numéro de port par défaut est 80).
 Le dernier champ, version, contient la version du protocole HTTP implémenté dans le
client considéré. La syntaxe est la suivante : HTTP/version.
Exemple : HTTP/1.0
Etudions maintenant l’en-tête associé à la requête exprimée dans la ligne de commande
que nous venons de décrire. Il faut tout d’abord savoir que cet en-tête est optionnel.
D’ailleurs, une simple requête ne contenant qu’une commande HTTP et une URL est
parfaitement utilisable.
Sa structure est la suivante : chaque ligne de l’en-tête comporte un nom de champ (field
name), suivi du caractère ”:” et d’une valeur (field value). Chaque ligne est séparée de la
suivante par les caractères CRLF.
Voici quelques champs fréquemment utilisés dans les requêtes HTTP :
 Content-Encoding : indique l’encodage MIME utilisé par le client dans la requête
courante,
 Content-Length : spécifie la longueur du corps de la requête, en octets,
 Content-Type : indique le type d’encodage MIME utilisé pour coder le corps de la
requête. Celui utilisé pour transmettre les données html brutes (qui ne sont que du
texte) est : Content-Type : text/html
 From : permet d’envoyer au serveur l’adresse E-MAIL définie dans les préférences du
navigateur,
 If-Modified-Since : est utilisé pour spécifier une date. Ce champ permet au navigateur
de ne demander au serveur l’envoi d’un document que si celui-ci a été modifié depuis
cette date.
 User-Agent : permet quant à lui d’indiquer au serveur le nom et la version du
navigateur utilisé. Cela peut permettre au serveur d’adapter sa réponse en fonction des
caractéristiques du navigateur utilisé.
Après l’en-tête optionnel, la requête peut contenir un corps, lui aussi optionnel,
comportant un certain nombre d’informations dont le format de codage est précisé dans
l’en-tête que nous venons de décrire. Le corps ou body, séparé de l’en-tête par une ligne
vide, n’est en réalité utilisé que lorsqu’on envoie une requête de type POST.
LT LA SALLE Avignon
Page 61 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Exemple de requête :
GET /index.html HTTP/1.0
If-Modified-Since : Sunday, 11-May-1997 19:33:11 GMT
User-Agent : Mozilla/3.0 (WinNT)
Ici, on demande l’envoi de la page index.html du serveur sur lequel on est connecté à
condition que cette page ait été modifiée depuis le 11 Mai 1997. De plus le client
transmet des informations concernant son navigateur.
V . 1 . 3 . Réponse HTTP
Etudions maintenant la structure d’une réponse HTTP :
Ligne de statut
En-tête
[ligne vide]
Corps
La ligne de statut d’une réponse HTTP comprend trois champs : version, code_réponse,
texte_réponse.
 Le premier de ces champs est, comme pour une requête, la version du protocole HTTP
utilisé.
 Le deuxième, code_réponse, indique si la requête qui a généré cette réponse a pu être
traitée correctement par le serveur.
Code Réponse
10x
20x
200
201
202
203
30x
40x
50x
Signifiacation
Messages d'information. non utilisé
Messages indiquant que la requête s'est déroulée correctement
Requête OK
Requête OK. Création d'une nouvelle ressource (cmd POST)
Requête OK mais traitement en cours
Requête OK mais aucune information à envoyer (corps vide)
Messages spécifiant une redirection
Erreur due au client
Erreur due au serveur
Les codes les plus souvent rencontrés sont : 200, indiquant que la requête s’est déroulée
correctement, 304, spécifiant que la page demandée n’a pas été modifiée depuis la
dernière consultation et 404, indiquant que la ressource demandée n’existe pas.
 Le troisième, texte_réponse qui correspond à la signification du message ci-dessus est
généralement ajouté par le serveur.
Examinons maintenant l’en-tête d’une réponse. La structure de celui-ci est la même que
celle d’une requête. Voici quelques champs que l’on peut rencontrer dans l’en-tête d’une
réponse, en sachant que certains de ceux que nous avons vus pour une requête restent
valables pour l’en-tête d’une réponse :
 Date : indique la date de génération de la réponse,
 Expires : spécifie la date d’expiration de la ressource demandée,
LT LA SALLE Avignon
Page 62 / 79
©TV.BTSii.2001
Réseaux TCP/IP
 Location : contient la nouvelle URL associée au document demandé, lors d’une
redirection (codes 30x),
 Server : précise le nom et la version du serveur ayant envoyé la réponse.
Comme pour une requête, le corps de la réponse est séparé de l’en-tête par une ligne
vide.
Le corps ou body contient en fait le document demandé. Cela peut être un fichier HTML
simple ou un fichier binaire quelconque, dont le type sera précisé dans l’en-tête par le
champ Content-Type.
Exemple de réponse :
HTTP/1.0 200 OK
Date : Sunday, 11-May-1999 19:33:14 GMT
Server : Apache/1.1
Content-Type : text/html
Content-Lenght : 65
Last-Modified : Sunday, 11-Ma -1999 10:54:42 GMT
<HTML><body> Bienvenue sur notre site...... </body> /HTML>
Le langage HTML ne permet pas à lui seul de créer des documents dynamiques ou
interactifs capables par exemple d’indiquer la date du jour ou de donner le résultat d’une
requête sur une base de données.
La programmation CGI (Common Gateway Interface) a pour but de construire un
document HTML dynamique correspondant à la demande spécifique du client.
Le document est envoyé au client au fur et à mesure de sa construction par le serveur.
V . 1 . 4 . HTTP et CGI
Le client indique le nom d’un fichier à l’aide d’une URL, non pour recevoir son contenu,
mais pour demander son exécution au serveur. Ce dernier exécute le programme indiqué
et renvoie au client la sortie standard de ce programme (c’est à dire ce que l’on aurait
obtenu à l’écran en lançant le programme par une ligne de commande).
Pour pouvoir être exécutés à distance, les exécutables CGI doivent être installés sur le
serveur dans un répertoire appelé /cgi-bin. Tout langage ayant une sortie standard peut
être utilisé pour écrire des programmes CGI (C/C++, Java, Perl le plus souvent).
L’interface CGI permet au client d’envoyer au serveur des données saisies par
l’utilisateur. Ces données constituent des arguments d’entrée pour le programme à
exécuter.
Elles sont codées selon le format suivant :
nom_champl=valeurl&nom_champ2=valeur2...
où chaque couple (nom du champ, valeur de saisie) est séparé par un ’&’ et où nom du
champ et valeur de saisie sont séparés par un ’=’.
De plus, cette chaîne est URL-encodée: les espaces y sont remplacés par des ’+’ et les
caractères spéciaux par leur valeur hexadécimale sous le format ’%xx’.
Exemple : NOM=de+la+Maisonneuve&PRENOM=Ren%NE9
LT LA SALLE Avignon
Page 63 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Une fois la chaîne des données construite, elle est envoyée au serveur selon la méthode
GET ou POST de HTTP.
Avec la méthode GET, la syntaxe d’une URL est la suivante :
http://www.site.fr/cgi-bin/nomExecutable?nom=Dupont&pr%E9nom=Ren%E9
Après le mot clef cgi-bin on trouve le nom du programme exécutable, puis un point
d’interrogation ”?” suivi de la liste des couples (nom,valeur) encodée.
Si on utilise la méthode POST, l’URL a la syntaxe suivante :
http://www.site.fr/cgi-bin/nornExecutable
et les données sont envoyées dans le corps de la requête HTTP correspondante.
Comparaison :
Avec la méthode GET, les informations sont stockées dans l’URL d’appel du script. Il est
alors possible de mémoriser cette URL complète dans un bookmark afin de pouvoir
exécuter ultérieurement le script avec un certain nombre d’arguments. Cependant. la
longueur des données ainsi transférées est limitée. De plus, il est impossible d’envoyer
de cette manière des informations sensibles comme un mot de passe, car elles
apparaîtraient en clair à l’écran, dans l’URL...
La méthode POST de HTTP résout les problèmes évoqués ci-dessus car aucune
information n’est passée via l’URL.
V . 1 . 5 . Les codes réponses
100
Continue : le traitement est en cours et le client doit transmettre le
reste de sa requête
101
Switching Protocols
version HTTP
200
OK
201
Created - l'URL a été créée directement. Suite à une commande POST, la
réponse consiste en un URI par lequel le document créé est identifié
202
Accepted - l'URL sera créée ultérieurement. La requête a été acceptée
pour traitement mais ce dernier n'a pas été finalisé.
203
Non-Authoritative Information. Information partielle en réponse à une
commande GET
204
No Content - traitement réussi mais aucune information à envoyer au
client. Le serveur a bien reçu la requête mais n'a pas d'informations à
renvoyer. C'est généralement le cas lorsqu'un script doit être exécuté
sans que le document ne soit modifié.
205
Reset Content - le client doit recharger le document
206
Partial Content
300
Multiple Choices - La ressource réclamée existe sous plusieurs formes
301
Moved Permanently. Les données demandées ont été déplacées et ont reçu
un nouvel URI, cette modification étant permanente
302
Moved Temporarily. Les données réclamées ont été trouvées bien qu'elles
soient définies sous un autre URL temporaire
LT LA SALLE Avignon
:
changement
de
Page 64 / 79
protocole,
passage
à
une
autre
©TV.BTSii.2001
Réseaux TCP/IP
303
See Other - l'URL demandé peut être trouvé à un autre endroit. Suggère
que le programme client utilise une autre adresse URL mais également une
autre méthode
304
Not Modified - le document réclamé via un GET conditionnel n'a pas
changé depuis sa dernière transmission. Le document a été trouvé mais
n'a pas été modifié depuis la date précisée dans le champ "If-ModifiedSince".
305
Use Proxy
400
Bad Request - La requête est de syntaxe incorrecte ou impossible à
exécuter.
401
Unauthorized - accessible uniquement après authentification
402
Payment Required.
Le client doit recommencer sa requête en précisant
dans son en-tête la mention "ChargeTo".
403
Forbidden. L'utilisateur n'est pas autorisé à consulter ce document.
404
Not Found. L'URL est valide mais ne réside pas sur le serveur
405
Method Not Allowed. Méthode de requête non autorisée.
406
Not Acceptable. Requête non acceptée.
407
Proxy Authentication Required. Autorisation proxy nécessaire.
408
Request Time-out. Temps d'attente pour accéder à l'URL a expiré.
409
Conflict
410
Gone
411
Length Required
412
Precondition Failed
413
Request Entity Too Large
414
Request-URI Too Large
415
Unsupported Media Type
500
Internal Server Error. Le serveur a rencontré une condition non prévue
qui l'empêche d'exécuter la requête
501
Not Implemented. Le serveur ne supporte pas la fonction demandée
502
Bad Gateway. Mauvaise passerelle d'accès.
503
Service Unavailable. Le serveur ne peut provisoirement répondre à la
demande suite à un trafic important
504
Gateway Time-out. Apparaît lorsque le serveur, à son tour, fait appel à
un service extérieur qui ne répond pas dans les délais impartis
505
HTTP Version not supported
LT LA SALLE Avignon
Page 65 / 79
©TV.BTSii.2001
Réseaux TCP/IP
V . 2 . Le protocole FTP
FTP désigne à la fois un programme et le protocole qu’il utilise, le File Transfer Protocol.
Son rôle est de transférer des fichiers d’un ordinateur à l’autre. Il existe des centaines
d'applications FTP en mode texte ou en mode graphique. Toutes respectent à peu près
les mêmes conventions.
La première opération est d’ouvrir une connexion avec un site distant en précisant son
nom ou son adresse IP. La façon la plus simple est de faire passer ce nom dans la ligne
de commande :
$ftp bigbrother.btsii.net ou ftp 10.0.100.254
Ou bien de lancer le programme FTP et à l’invite de commande, taper la commande :
ftp> open bigbrother.btsii.net
La deuxième étape consistera à communiquer votre nom et votre mot de passe à la
machine distante.
Si vous disposez d’un compte sur la machine, laissez votre nom d’utilisateur et votre mot
de passe pour disposer de droits plus importants. Sinon vous pourrez toujours vous
connecter sous le nom “anonymous” et laisser votre adresse email comme mot de passe.
Pour recommencer la procédure de login, vous pouvez utiliser la commande user suivie
du nom d’utilisateur.
Pour transférer les fichiers, deux commandes sont à retenir : get pour downloader ou
rapatrier un fichier vers votre machine, put pour uploader ou envoyer un fichier vers le
site distant.
La syntaxe est identique dans les deux cas :
put/get fichier_source fichier_destination.
Avant de transférer un fichier, il vous faudra préciser à votre machine si le transfert doit
s’opérer en mode texte ou en mode binaire. Pour cela, utilisez les commandes ASCII et
BINARY.
Pour naviguer dans le répertoire arborescent de fichiers, vous disposez des commandes
dir et ls pour afficher le contenu du répertoire courant. Pour obtenir un catalogue
complet et récursif des fichiers ainsi que leurs attributs, utilisez la commande ls -LR.
Le passage d’un répertoire à l’autre s’opère comme sur MS-DOS ou Unix avec la
commande cd.
Enfin, les commandes bye ou quit permettront de sortir du programme ftp.
La plupart des navigateurs World Wide Web peuvent aussi être utilisés pour des
transferts de fichiers via FTP. Il suffit de spécifier comme Universal Resource Locator la
commande :
ftp://ftp.site/nom_du_fichier ou ftp://user:[email protected]/nom_du_fichier.
LT LA SALLE Avignon
Page 66 / 79
©TV.BTSii.2001
Réseaux TCP/IP
La liste des commandes envoyées par le programme client FTP au serveur FTP sont les
suivantes :
Command
USER
es
PASS
useridpwd
ACCT
CWD dir
CDUP
QUIT
PORT
TYPE
sockettype
RETR file
STOR file
DELE file
RMD dir
MKD dir
LIST dir
NLST dir
STAT
HELP
Description
Identification de
Mot
de passe utilisateur
l'utilisateur
Informations sur le
Change
compte Working Directory
Changement répertoire
Fin
parent
Port à utiliser
Type definition
Retrieve a File
Store a File
Delete a File
ReMove Directory
MaKe Directory
Directory Listing
Directory Listing pour
Status
programmes
Aide
Le serveur FTP répond à ces requêtes par des séquences de nombres de trois chiffres et
leur signification sous forme de texte, comme suit
15
20
0
22
0
22
0
23
6
33
0
55
1
0
File status OK, about to open data connection
Command OK
Service Ready
Closing data connection
User logged in, proceed
User name OK, need password
Access denied
Nous noterons au passage que le serveur FTP utilise deux ports, 21 pour le contrôle des
données et 20 pour le transfert de ces mêmes données. En cas de requête de transfert
d'informations, un message de contrôle est envoyé sur le port 21 tandis qu'une
connexion logique séparée est construite sur le port 20.

De nombreux serveurs FTP ont des failles ou sont mal configurés ce qui rend
disponible le fichier de passwords à tout le monde via le compte anonymous, par
exemple.
V . 3 . TFTP
Le TFTP (Trivial File Transfer Protocol) est un programme aux fonctionnalités réduites
désigné pour être aisément implémenté dans des mémoires permanentes telles les
EPROM. Il est principalement utilisé pour permettre à des stations sans disque dur de
télécharger sur le réseau la portion initiale d'un système d'exploitation.
Il est alors utilisé en conjonction avec un protocole de boot comme BOOTP.
TFTP est également utilisé sur les routeurs lorsqu'il faut y télécharger une version plus
récente d'une couche logicielle.
TFTP n'utilise pas TCP mais UDP. Il doit donc gérer son propre mécanisme de correction
d'erreurs. Pour cela, il utilise un simple protocole d'acquittement basé sur un time out. Si
un datagramme s'égare, l'émetteur reçoit un time out et réémet.
LT LA SALLE Avignon
Page 67 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Un datagramme en TFTP est de 512 octets. S'il est plus petit que 512 octets, c'est qu'il
s'agit du dernier paquet de la transmission d'un fichier.
La requête initiale d'un client TFTP est émise sur le port 69 qui va renvoyer une nouvelle
adresse de port pour la suite des transactions.
La principale fonction de TFTP est d'agir comme protocole "bootstrap". Ses exigences
mémoire minimales, son emploi d'UDP en font un programme idéal pour charger sur des
EPROMS de cartes réseau. Au démarrage d'une machine avec une telle EPROM, le
protocole TFTP est automatiquement initialisé pour se connecter à un serveur et y
télécharger les programmes nécessaires à son exploitation.
V . 4 . BOOTP
BOOTP permet à une machine incapable de stocker sa propre adresse IP ou les couches
TCP/IP nécessaires à sa connexion réseau d'envoyer un message broadcast sur le réseau
et d'obtenir ces informations manquantes d'un serveur BOOTP.
Un serveur BOOTP est à l'écoute des requêtes BOOTP et renvoie des réponses à partir
d'une table de configuration (bootptab) reprenant l'ensemble des caractéristiques des
machines clients BOOTP du réseau.
BOOT protocol
OP
Hops
Transaction id
Seconds Unused flags
Client IP address
Your IP address
Server Ip address
Gateway IP address
Client hardware add (16b)
Server Host name (64 b)
Boot file name (128 b)
Vendor specific (64b)
HTYPE HLEN
Les en-têtes de datagrammes BOOTP sont envoyés sous forme de datagramme UDP du
port 68 d'un client vers le port 67 du serveur.
Un client BOOTP doit juste être capable de compléter le champ d'en-tête mentionnant
son adresse MAC :





OP
(1
HTYPE
(1
HLEN
(1
HOPS
(1
Transaction id ( 4
et réponse
 Seconds
(2
processus de boot
LT LA SALLE Avignon
octet )
octet )
octet )
octet )
octets )
1 = BOOT Request 2 = BOOT reply
type de réseau ( 1 = 10 Mbps)
longueur des adresses hardware ( 6 = 10 Mbps Ethernet)
utilisé par les gateways lors d'un boot cross-passerelle
numéro de transaction pour faire correspondre requête
octets ) nombre de secondes écoulées depuis le démarrage du
Page 68 / 79
©TV.BTSii.2001
Réseaux TCP/IP
 Unused/flags
( 2 octets ) inutilisé puis modifié par la RFC 1542 pour ajouter
un drapeau BROADCAST
 Client IP address
( 4 octets ) Rempli par le client s'il connaît son adresse IP
 Your IP address ( 4 octets ) Rempli par le serveur si le client ne connaît pas son
adresse IP
 Server IP adress( 4 octets ) renvoyée sous forme de BOOTREPLY par le serveur
 Gateway IP address
( 4 octets ) utilisé par les gateways lors d'un boot crosspasserelle
 Client hw address
( 16 octets ) l'adresse hardware du client ( par exemple son
adresse MAC Ethernet)
 Server host name
( 64 octets) nom du serveur terminé par un caractère nul
 Boot file name ( 128 octets )
un chemin complet plus un nom de fichier renvoyé
par le serveur comme BOOTREPLY et terminé par un caractère nul.
 Vendor specific ( 64 octets )
Les requêtes client BOOTP sont émises avec une adresse source 0.0.0.0 et une adresse
de destination fixée à 255.255.255.255 ce qui permet au TCP/IP d'émettre un broadcast
du datagramme BOOTP sur tout le réseau local. Soit un serveur BOOTP est présent sur
cette portion de câble et il répond à la requête, soit un routeur décide de faire passer ces
requêtes vers l'extérieur ou non.
BOOTP a ses inconvénients par exemple de réclamer une configuration manuelle de
tables de configurations sur le serveur. Si une machine avec une adresse MAC x est
transférée sur une autre portion de réseau, la table de correspondance adresse MAC adresse IP doit être modifiée sur la machine serveur.
V . 5 . DHCP
DHCP (Dynamic Host Configuration Protocol) est une amélioration du système BOOTP. Il
pallie les limites de BOOTP en permettant l’allocation dynamique et centralisée d’une
adresse IP à toutes les machines d'un réseau TCP/IP. Le serveur DHCP dispose d’une
série d’adresses prédéfinies qu’il peut allouer aux clients en cours de connexion. Il
dispose même d'une compatibilité descendante avec le protocole BOOTP.
Le client et le serveur DHCP sont des applications à la norme Windows Sockets
permettant la configuration automatique de différents protocoles TCP/IP. On confie au
serveur une fourchette d’adresses IP disponibles et quelques paramètres comme la
passerelle par défaut, le serveur DNS, le NetBIOS Name Server etc.
Lorsqu’un client DHCP est activé pour la première fois, il envoie un message broadcast
DHCP Discover à l’ensemble du réseau local.
Tout serveur DHCP recevant ce paquet renvoie une réponse DHCP Offer contenant les
paramètres de configuration suggérés.
Le client évalue la proposition et répond avec un message DHCP Request.
Le serveur termine la transaction par un message DHCP Acknowledgement.
DHCP a conservé le format des datagrammes BOOTP, le champ "vendor-specific"
devenant un champ "option field" d'un minimum de 312 octets et débutant par un magic
cookie 99.130.83.99
LT LA SALLE Avignon
Page 69 / 79
©TV.BTSii.2001
Réseaux TCP/IP
V . 6 . SNMP
SNMP pour Simple Network Management Protocol renvoie à une série de composants
requis pour gérer un réseau.
Simple Network Management Protocol
SNMP
MIB
Application
MIB
TCP/UDP
MIB
MIB
ICMP
MIB
MIB
ARP
Datalink
MIB
Physical
IP
V . 7 . SMTP
SMTP (Simple Mail Transfer Protocol) fournit un mécanisme de transport et d'échange de
courrier électronique entre utilisateurs d'Internet. SMTP utilise le port 25 et le protocole
de transport TCP pour établir une connexion fiable. Ensuite, le client initialise une
séquence de handshake puis émet une série de messages vers le serveur. En en-tête de
ces messages, la machine distante reçoit ce qu'on appelle en jargon une enveloppe,
c'est-à-dire une liste de tous les destinataires et de l'émetteur.
Le format des messages Internet est défini par le RFC 822 tandis que SMTP est défini
par les RFC 821 et 788. Le format d'un courrier électronique est des plus simples : une
série d'attributs obligatoires (From: To: etc.) ou optionnels contenus dans l'en-tête du
document suivi d'une ligne blanche puis du corps du message. Chaque ligne est
constituée d'un nom de champ commençant à la colonne 1, suivi d'un double point, d'un
blanc et du champ lui-même. Les lignes sont séparées par des caractères 'newline'
(0x10).
From:
adresse email de l'émetteur
To:
adresse email récepteur
Subject:
description du contenu du message
Reply-To:
où doit être envoyée la réponse
Organization:
l'organisation propriétaire de la machine émettant l'email
Message-ID: une chaîne de caractères générée par le protocole de transport d'email et
unique pour ce message.
Received: chaque site par où transite ce courrier ajoute sa ligne incluant nom du site,
message ID, date et heure, l'origine et la couche de transport.
Tous les échanges d'information passent par des séquences de commandes de quatre
caractères et trois chiffres.
LT LA SALLE Avignon
Page 70 / 79
©TV.BTSii.2001
Réseaux TCP/IP
$ /usr/sbin/sendmail -v [email protected] < message
[email protected]... Connecting to tempo.maclean.com. via smtp...
220 tempo.maclean.com ESMTP Sendmail 8.7/8.7/FultonSt-tempo0806;
Sun, 15 Oct 1995 22:47:52 -0700
>>> HELO goldengate.reich.com
250 tempo.maclean.com Hello [email protected] [204.182.19.1],
pleased to meet you
>>> MAIL From: SIZE=10
250 ... Sender ok
>>> RCPT To:
250 Recipient ok
>>> DATA
354 Enter mail, end with "." on a line by itself
>>> .
250 WAA12161 Message accepted for delivery
[email protected]... Sent (WAA12161 Message accepted for delivery)
Closing connection to tempo.maclean.com.
>>> QUIT
221 tempo.maclean.com closing connection
Le jeu de commandes clients comprend
Commande
HELO x
MAIL
RCPT
TO:x@y
FROM:x@y
DATA
QUIT
RSET
NOOP
Explication
connexion réclamée à partir de x
courrier de x sur y
pour x sur y
données suivent terminées par un
Terminer
la connexion
<cr,lf>.<cr,lf>
Avorter la connexion
Pas d'opération
Dès qu'un client se connecte sur le port 25 à un serveur SMTP, il reçoit si tout va bien un
message de réussite 220 auquel il doit répondre par une commande HELO <domain> où
domaine représente la portion nom de domaine de votre adresse électronique. De la
même manière, la clôture d'une connexion s'opère via une commande QUIT qui recevra
une réponse positive 221.
A la première réception d'un code 220, le client pourra entamer une transaction en
envoyant une commande MAIL FROM: <adresse email> avec <adresse email> désignant
ici l'émetteur du message électronique . Si le serveur accepte cette commande, il
répondra par un code 250. La commande RCPT TO: <email> permet elle de définir
l'adresse email du destinataire. Ici aussi, la commande se doit d'être sanctionnée par un
code 250 OK.
Une réponse 251 signifie que le destinataire n'a plus d'acompte sur le serveur SMTP
mais que son courrier est automatiquement redirigé vers son adresse actuelle. Si la
réponse est 551, il vous faudra rediriger manuellement le courrier vers l'adresse
indiquée au côté du message d'erreur.
L'échange du corps du message peut enfin commencer avec un commande DATA sans
arguments. La réponse attendue du serveur est 354 qui signifie en quelque sorte
"continuez, terminez votre message par une ligne ne contenant qu'un point".
L'introduction d'une ligne avec un seul point induira une réponse 250 OK du serveur
après quoi il suffira de clôturer la connexion avec une commande QUIT et la réponse
221.
LT LA SALLE Avignon
Page 71 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Le jeu de réponses du serveur est par exemple
Comma
211
nde
214
220
221
250
251
354
421
450
451
452
500
501
502
503
504
550
553
551
552
553
554
Explication
System Status
Help message
<domain> service ready
Closing connection
OK, completed
User not local; will forward to ...
Start mail input;end with .
Service not available, closing transmission
Requested
mail action not taken; mailbox
channel
Requested
unavailable action not taken; error in
Requested
processing action not taken; insufficient
Syntax
system Error
storage
Syntax error in parameters or arguments
Command not implemented
Bad sequence of commands
Command parameter not implemented
Requested action not taken; mailbox
User
ambiguous
unavailable
User not local; please try ...
Requested mail action aborted: exceeded
Requested
mail action aborted: mailbox
storage allocation
Transaction
failed
name not allowed
Le premier des trois chiffres est le plus important :
 2xx évoque une réponse positive
 3xx indique une réponse positive intermédiaire
 4xx indique une action non achevée pour une raison temporaire
 5xx est le signe d'un échec absolu
Le second chiffre apporte son complément d'informations
 x0x pour une erreur de syntaxe
 x1x pour un message d'informations
 x2x pour une information sur le médium de trnsmission
 x5x pour des informations sur le système de courrier lui-même
Sendmail est le plus connu et le plus populaire des agents SMTP (Simple Mail Transfer
Protocol), utilisé sur des milliers de machines Unix. Les vieilles versions du programme
sont très complexes à manipuler mais la version Berkeley Sendmail version 8.7,
entièrement gratuite, est plus stable et plus simple à manipuler.
V . 8 . POP
POP (Post Office Protocol dont une autre acception est Point Of Presence) est une
extension du protocole SMTP. Il autorise un utilisateur Internet à interagir avec une boîte
aux lettres distantes sans être en permanence relié à Internet. SMTP a été pensé à
l'époque des minis et des mainframes pour des utilisateurs connectés en permanence.
Pour les PC actuels reliés par intermittence à Internet, il est préférable de recourir à un
mécanisme "store and forward" comme POP.
Le courrier sortant est toujours géré par SMTP mais le courrier entrant est reçu
grâce à POP dans sa version 2 ou sa version 3.
LT LA SALLE Avignon
Page 72 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Les commandes POP3 obligatoires sont :
Comman
USER
x
de
PASS x
QUIT
STAT
LIST
RETR
DELE
msg
NOOP
msg
LAST
RSET
Explication
Clôture la session et en autorise une autre
Nombre de msg dans la boîte aux lettres et
Liste
de msg avec la taille de chacun
leur taille
Récupération d'un msg terminé par un "."
Marque msg pour effacement
NO Operation - vérifie la connexion
Renvoie le numéro du dernier message
Enlève les marques pour effacement
Le jeu de réponses du serveur est
Comman
+OK
de
-ERR
Explication
Commande acceptée
Commande échouée
D'autres commandes comme TOP (pour voir les titres des messages) ou APOP (qui
permet de ne pas envoyer de multiples mots de passe dans le cas des connexions
périodiques) sont facultatives.
Le protocole POP3 n'est pas des plus sûrs : une connexion telnet sur le port 110 suffit à
visualiser les messages de réception en clair.
POP a un autre inconvénient majeur : il ne permet pas de sélectionner les messages à
télécharger. Il oblige l'utilisateur à décharger la totalité de son courrier lors de chaque
connexion au serveur SMTP. Un utilisateur itinérant n'ayant accès à Internet qu'à faible
vitesse ou à coût exhorbitant n'a pas la liberté de retirer un seul message urgent en
remettant à plus tard le relevé des messages publicitaires, junk mail et spam mail qui
sont malheureusement devenus notre lot quotidien.
V . 9 . IMAP (Internet Message Access Protocol )
IMAP est une solution aux lacunes de POP. Il s'agit d'un protocole plus récent capable
d'opérer un relevé sélectif des messages d'une boîte aux lettres électronique. Mieux
encore, il permet même de relever une seule partie d'un message constitué de plusieurs
attachements de type MIME. Un programme client IMAP est capable d'extraire du
serveur l'en-tête des messages sans en rapatrier la totalité des contenus. Un message lu
n'est pas systématiquement retiré du serveur. L'effacement du message côté serveur est
laissé à la libre appréciation de l'utilisateur qui peut reporter cette opération à une date
ultérieure. Du coup, IMAP s'avère des plus appropriés pour la création de boîtes aux
lettres partagées où plusieurs utilisateurs peuvent consulter la même boîte sans priver
les autres de son précieux contenu. Vous l'aurez compris, cette souplesse de traitement
du courrier ne va pas sans une complexité croissante des programmes clients et
serveurs, le serveur surtout étant mis à rude épreuve.
A cette exception, POP et IMAP fonctionnent de la même manière : ils
dépendent tous deux du troisième protocole SMTP pour l'envoi du courrier.
LT LA SALLE Avignon
Page 73 / 79
©TV.BTSii.2001
Réseaux TCP/IP
POP traite le serveur comme un entrepôt de messages dont il vide le contenu à chaque
passage. Tous les messages sont transférés vers le client où ils sont lus ou non, effacés
ou non, traités ou non sans interaction ultérieure avec le serveur. IMAP, d'autre part,
interagit avec le serveur en plusieurs étapes. IMAP peut se contenter de réclamer l'entête des messages, de transférer une partie d'un message ou sa totalité, de transférer la
totalité de la boîte aux lettres ou non. La suppression des messages sur le serveur
s'opère manuellement lors d'une intervention ultérieure. Le serveur peut donc faire office
d'archive ou de boîte aux lettres partagées tant qu'un utilisateur n'a pas pris la décision
d'en vider le contenu.
IMAP distingue pour ses programmes clients un mode online et un mode offline. En
mode online, la totalité du courrier est conservé sur le serveur. En mode offline, soit la
totalité du courrier est transféré vers le client et effacé du serveur, soit une partie du
courrier reste sur le serveur. Dans ce dernier cas, un mécanisme de synchronisation est
nécessaire pour les reconnexions ultérieures. Cette synchronisation s'opère au moyen
d'un identificateur unique à chaque message.
V .10 . DNS (Domain Name System)
La gestion des noms de domaine est distribuée de manière hiérarchique. Un petit
nombre de serveurs au sommet de la pyramide se chargent de recenser toutes les
informations communiquées par les serveurs de noms de domaine de plus bas niveau.
Chaque serveur ne contient que les informations concernant sa propre zone et se réfère
à une autorité, un serveur de niveau supérieur, pour toutes les autres informations.
Lorsqu'un changement intervient dans une zone, l'information se répand lentement à
travers Internet d'un DNS à l'autre. Une zone n'équivaut pas à un domaine. Un domaine
de grande taille pourrait être découpé en zones gérées par plusieurs DNS pour faciliter
sa gestion.
Le plus classique des serveurs DNS s'appelle BIND et existe pour la quasi majorité des
systèmes d'exploitation. BIND est l'abréviation de Berkeley Internet Name Domain
(BIND). Il est apparu avec la version 4.3 BSD Unix. Il utilise UDP et le port 53. BIND est
découpé en deux parties. La partie client est appelée le resolver et génère les
demandes d'information pour les noms de domaine. La partie serveur se présente sous
la forme d'un démon baptisé named (à prononcer name-d).
Chaque donnée enregistrée dans un fichier de configuration est découpée en Resource
Records ou RR en abrégé. Tous les RR se partagent un format commun comme suit :
domain
ttl
class type rdata
 Domain
Le domaine auquel s'applique l'entrée du fichier
 ttl
Time To Live. Durée de validité en secondes de l'information après
son extraction du serveur
 class
la classe d'adresses, toujours IN pour Internet et TCP/IP, HS dans le
cadre d'objets de la classe hesiod.
 type
le type de Standard Resource Records (RR) :

SOA
Start of Authority

NS
Name Server.

A
Address.

PTR
Pointer.
LT LA SALLE Avignon
Marque le début d'une zone de données.
Identifie le serveur de nom de domaine.
Convertit un nom de machine hôte en adresse IP.
Convertit les adresses IP en nom de domaine.
Page 74 / 79
©TV.BTSii.2001
Réseaux TCP/IP


MX
Mail Exchanger.
nom de domaine.

CNAME: Cannonical Name. Définit un alias pour un nom de domaine.

HINFO
rdata
Précise à qui adresser le courrier pour un
fournit des informations su rla configuration logicielle et matérielle.
les données associées à chaque tpe de RR

Renvoyer des résultats inattendus comme nom de machine peut vous donner des
accès très intéressants. La résolution des noms se réalise au moyen de la fonction
gethostbyname(). Le résultat de cette fonction est souvent utilisé tel quel dans des
commandes.
V . 11 . Telnet
Telnet est une commande vous permettant de vous connecter sur d’autres ordinateurs
distants et d’y lancer des programmes. Telnet recourt au protocole de transport TCP.
Une fois connecté, c’est comme si votre clavier était physiquement connecté à la
machine distante. Tous les caractères que vous tapez sont envoyés à cette machine à
l’exception du caractère ESC qui sert de caractère de contrôle. Avec Telnet, vous pouvez
accéder à tous les services qui sont proposés par l’ordinateur hôte : exécuter des
commandes Unix, ….
La commande est simple : $ telnet nom_de_la_machine_à_contacter.
Telnet utilise un caractère spécial qu'il insère dans le flux de données pour indiquer qu'il
envoie des séquences spéciales de contrôle. Ce caractère est le code ASCII 255 ( 0xFF
en hexadécimal). Ce caractère est appelé IAC pour "Interpret As Command". Le
caractère IAC est suivi d'une autre commande. par exemple, l'envoi d'une séquence
break se découpe en une séquence IAC, BRK ( codes 255 puis 243 ) insérée dans un
segment TCP.
Code
SE
NOP
DM
BRK
IP
AO
AYT
EC
EL
GA
SB
WILL
WON'T
DO
DON'T
Valeur décimale
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
LT LA SALLE Avignon
Description
End of subnegociation
No Operation
Data Mark
Break
Interrupt Process
Abort Output
Are you There ?
Erase Character
Erase Line
Go Ahead
Start subnegociation
WILL negociation
WON'T negociation
DO negociation
DON'T negociation
Page 75 / 79
©TV.BTSii.2001
Réseaux TCP/IP
Une série d'autres options sont disponibles :
Options
Transmit binary
Echo
RCP
Suppress-goNAMS
ahead
STATUS
Timing-mark
RCTE
NAOL
NAOP
NAOCRD
NAOHTS
NAOHTD
NAOFFD
NAOVTS
NAOVTD
NAOLFD
EXTEND-ASCII
LOGOUT
BM
DET
SUPDUP
SUPDUP-OUTPUT
SEND-LOCATION
TERMINAL-TYPE
END-OF-RECORD
TUID
OUTMRK
EXOPL
Code
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
255
Description
ignorer les caractères de contrôle
Reconnect option
Negociate Approximate Message
Size
Long echo delay circuit
Negociate output line width
Negociate page output size
Negociate Horizontal Tab Stops
Horizontal tabstop definition
Form feed disposition option
Vertical tabstop option
Vertical tabstop definition
Linefeed disposition
BYTE Macro
Telnet Data Entry Terminal
User identification
Output mark
En utilisant Telnet sur d’autres ports, on peut aisément débugger d’autres protocoles. Un
exemple avec SMTP sur le port 25 :
RED
TOPAZ
RED
TOPAZ
RED
TOPAZ
RED
TOPAZ
RED
TOPAZ
TOPAZ
TOPAZ
TOPAZ
TOPAZ
TOPAZ
TOPAZ
RED
TOPAZ
RED
220 RED.RUTGERS.EDU SMTP Service at 29 Jun 87 05:17:18 EDT
HELO topaz.rutgers.edu
250 RED.RUTGERS.EDU - Hello, TOPAZ.RUTGERS.EDU
MAIL From:<[email protected]>
250 MAIL accepted
RCPT To:<[email protected]>
250 Recipient accepted
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Date: Sat, 27 Jun 87 13:26:31 EDT
From: [email protected]
To: [email protected]
Subject: meeting
Let's get together Monday at 1pm.
.
250 OK
QUIT
221 RED.RUTGERS.EDU Service closing transmission channel
LT LA SALLE Avignon
Page 76 / 79
©TV.BTSii.2001
Réseaux TCP/IP
V . 12 . Les commandes r
Les commandes r (pour remote) sont des commandes du monde Unix pour
l'établissement de connexion entre machines de même type. Ces commandes partent du
principe que les utilisateurs qui y ont accès ont déjà passé une autre épreuve
d'authentification. Elles ne sont donc pas des plus sûres. On dénombre :




rcp
rexec
rlogin
rsh
pour
pour
pour
pour
la copie de fichiers entre ordinateurs distants,
l'exécution de commandes sur une machine distante
la connexion à un ordinateur distant
l'obtention d'un shell sur la machine distante
Pour pouvoir exécuter une commande r sur une machine hôte, il faut simplement
disposer d'une adresse IP et d'un nom repris dans un des deux fichiers de la machine
hôte .rhosts ou rhosts.equiv
Par exemple, la commande : $ rlogin -1 usertv machinex
va essayer de connecter l'utilisateur usertv à la machine machinex.
Le fichier hosts.equiv de machinex ressemble à ceci :
userx
usery
usertv
.rhosts de l'utilisateur tv ressemble lui à
bigbrother.btsii.net
mail.btsii.net lucien
La première ligne permet à tv de se logger à partir de la machine bigbrother.btsii.net
tandis que la seconde autorise lucien à accéder au compte de tv à partir de la machine
mail.btsii.net.
V . 13 . RPC
Ces commandes r font appel à un mécanisme pour applications client-serveur baptisé
RPC ou Remote Procedure Call. RPC a été développé par Sun Microsystems et est à la
base de l'architecture des produits NFS ( Network File System ) et NIS ( Network
Information System ). RPC est devenu une voie royale pour accéder à la programmation
distribuée.
Un serveur RPC est une collection de procédures que peuvent appeler des machines
clients par une requête RPC. De façon à être le plus indépendant possible d'une machine
spécifique, la réponse du serveur est traduite dans un format baptisé XDR pour eXternal
Data Representation Format
V . 14 . NFS
Le mot NFS désigne une famille complète de produits bien que leur concepteur, Sun
Microsystems Inc préfère l'appeler Open Network Computing ou ONC. Les spécifications
de la plupart des composants NFS sont passés dans le domaine public sous forme de
RFC. Sun a également développé un autre ensemble logiciel, PC-NFS, permettant à des
PC d'utiliser NFS.
LT LA SALLE Avignon
Page 77 / 79
©TV.BTSii.2001
Réseaux TCP/IP
NFS est constitué de trois couches :
1. RPC qui définit le format des messages utilisés par les Remote Procedure Calls
2. XDR, l'eXternal data Representation, qui propose un format de fichiers indépendant
des architectures de machines. XDR définit les données en multiples de 4 octets.
3. NFS, l'interface au niveau de la couche d'application pour le transfert de fichiers.
On retrouve donc trois nouvelles couches au dessus des couches TCP/IP ce qui donne
sept couches comme dans le modèle OSI !
NFS est basé sur le protocole de transport UDP. Client et serveur s'échangent donc des
transactions sans conserver une connexion continue. L'utilisation de NFS est plus
adaptée sur les petits réseaux LAN
Network File System (NFS)
NFS
XDR
RPC
UDP
TCP
IP
Datalink
Physical
NFS (Network File System) est le plus populaire des programmes recourant à RPC. Il
permet d'accéder à des fichiers distants de la même manière que s'il s'agissait de
fichiers locaux.
NFS travaille avec des datagrammes UDP de 8192 octets et le port 2049.
V . 15 . Le protocole SSL
SSL (Secure Sockets Layer) est un protocole de sécurité fournissant une méthode pour
communiquer sur Internet de manière privée. SSL est un protocole qui a été soumis au
consortium W3 pour fournir une sécurité aux données transitant par des sessions
TCP/IP. Il fournit trois services fondamentaux : l'encryption des données,
l'authentification du serveur et l'intégrité des données à travers une session TCP/IP.
A l'initialisation d'une connexion TCP/IP, SSL permet à un client et un serveur de réaliser
une "poignée de main" où ils conviennent d'un niveau de sécurité à atteindre. Après, le
rôle de SSL est des plus simples. Il se contente d'encrypter et de décrypter tous les flux
de données transitant par un protocole TCP/IP donné.
Le protocole SSL est subdivisé en deux couches. Au plus bas niveau, le SSL Record
Protocol est utilisé pour l'encapsulation de différents protocoles de plus haut niveau. Un
de ces protocoles de plus haut niveau, le SSL Handshake Protocol, permet au client et au
LT LA SALLE Avignon
Page 78 / 79
©TV.BTSii.2001
Réseaux TCP/IP
serveur de s'authentifier et de négocier entre eux un algorithme et des clés d'encryption
avant de s'échanger des données. SSL est conçu comme un protocole indépendant d'une
application. Un protocole de plus haut niveau peut reposer de manière transparente sur
le protocole SSL. Avec SSL, une connexion entre client et serveur est privée, elle repose
sur une encryption établie après un handshake initial où est générée une clé secrète.
Pour l'encryption des données elles-mêmes, il est fait appel à une cryptographie de type
symétrique comme DES ou RC4. Par contre, pour l'authentification des tiers, il est fait
appel à une cryptographie asymétrique comme RSA.
SSL a été pensé de manière extensible. Il peut fonctionner comme simple canevas où de
nouvelles clés publiques et de nouvelles méthodes d'encryption peuvent être incorporées
en fonction des besoins. Il pallie un des problèmes actuels de la cryptographie, à savoir
la gourmandise CPU, en offrant une méthode de cache qui réduit le nombre de
connexions nécessaires pour établir un transfert de données.
A tout moment, le protocole SSL conserve l'état d'une connexion et stocke une série de
données :
 session identifier : une séquence arbitraire d'octets choisis par le serveur pour
identifier une session active
 peer certificate X509.v3[X509] : le certificat de la machine paire.
 compression method : algorithme utilisé pour la compression des données avant leur
encryption.
 cipher spec : l'algorithme d'encryption (aucun, DES etc.) et l'algorithme MAC/Message
Authentication Codes (MD5 ou SHA)
 master secret : un espace adressable secret de 48 octets partagé entre le client et le
serveur
 is resumable : un drapeau indiquant si la session peut être exploitée pour initialiser de
nouvelles connexions.
L'état de la connexion inclut les éléments suivants :
 server and client random : séquence d'octets choisis par le client et le serveur à
chaque connexion
 server write MAC secret : le "secret" utilisé dans la phase MAC pour l'écriture de
données par le serveur.
 client write MAC secret : idem côté client
 server write key : la clé d'encryption serveur - décryption client
 client write key : l'inverse
 initialization vectors :
 sequence numbers
Client
ClientHello
Server
-------->
<-------Certificate*
ClientKeyExchange
CertificateVerify*
[ChangeCipherSpec]
Finished
-------->
Application Data
<-------<------->
LT LA SALLE Avignon
ServerHello
Certificate*
CertificateRequest*
ServerKeyExchange*
[ChangeCipherSpec]
Finished
Application Data
Page 79 / 79
©TV.BTSii.2001
Téléchargement
Study collections