0% ont trouvé ce document utile (0 vote)
42 vues299 pages

Application Hypermedia

Le document présente le protocole TCP/IP, qui permet la communication entre différents ordinateurs sur divers réseaux. Il décrit les couches du modèle OSI et du modèle DoD, ainsi que les rôles de chaque couche dans la transmission des données. En outre, il aborde l'historique de TCP/IP et son utilisation dans le routage IP entre réseaux incompatibles.

Transféré par

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

Application Hypermedia

Le document présente le protocole TCP/IP, qui permet la communication entre différents ordinateurs sur divers réseaux. Il décrit les couches du modèle OSI et du modèle DoD, ainsi que les rôles de chaque couche dans la transmission des données. En outre, il aborde l'historique de TCP/IP et son utilisation dans le routage IP entre réseaux incompatibles.

Transféré par

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

Le protocole TCP-IP

1
TCP / IP
I - TCP/IP et les réseaux
I-A- Pourquoi un protocole ?
Un protocole de communication est un ensemble de règles permettant à plusieurs ordinateurs,
éventuellement sur des réseaux physiques différents et utilisant des OS différents, de dialoguer entre eux.
Ainsi grâce à TCP/IP, des ordinateurs sous UNIX et sur un réseau Ethernet peuvent dialoguer avec des
ordinateurs sous NT sur un réseau Token-Ring.
TCP/IP peut fonctionner :
- sur des réseaux locaux physiques de type Ethernet, Fast Ethernet, Token-Ring, FDDI
- sur des réseaux de type WAN comme ATM, LAPB ou des liaisons par RTC ou LS.
I-B- Rappel du modèle OSI de l’ISO
I- B- 1- Les couches
Le modèle OSI1 de l’ISO2 permet de définir un modèle pour des ordinateurs communicants. Tout ordinateur
conforme à ce modèle peut dialoguer avec ces homologues en utilisant le même "langage" et les mêmes
méthodes de communication.
 Le modèle est composé de 7 couches.
 Chaque couche assure une fonction bien déterminée.
 Chaque couche utilise les services de la couche inférieure. Par exemple la couche Réseau utilise les
services de la couche Liaison qui utilise elle-même les services de la couche Physique.
 Chaque couche possède un point d'entrée pour les services offerts, nommé SAP =Service Access Point.
Ainsi la couche Session possède un point d'accès SSAP et la couche Transport un point d'accès TSAP.
 Chaque couche d'un ordinateur dialogue avec la couche homologue d'un autre ordinateur en utilisant un
protocole spécifique à la couche (Données de protocole = PDU =Protocol Data Unit).

Ordinateur Ordinateur
A Data Data B

Application
Application A A Application
Protocol Data Unit
ASAP ASAP
Presentation
Présentation P P Présentation
Protocol Data Unit
SSAP SSAP
Session
Session S Protocol Data Unit S Session
TSAP TSAP
Transport
Transport T Protocol Data Unit T Transport
NSAP NSAP
Network
Réseau N Protocol Data Unit N Réseau
LSAP Data Link LSAP
Liaison L Protocol L Liaison
Data Unit
PSAP PSAP
Physique Bits Physique

Média
Figure I-1 : Modèle OSI de l'ISO.

1 OSI = Open System Interconnection = Interconnexion des systèmes ouverts.


2 ISO = International Organization of Standards.

2
I- B- 2- Rôle des couches

La couche Application fournit les services de communication aux applications


utilisateurs. Par exemple les services de transferts de fichiers, gestion de message
Application pour les applications de messagerie, accès à des bases de données
ASAP
La couche Présentation gère la représentation des données. La couche
Présentation utilise un langage commun compréhensible par tous les nœuds du
Présentation réseau.
La couche Session gère les connexions entre les applications homologues sur les
SSAP
machines en réseau. Elle assure l’initialisation et la clôture des sessions ainsi que
Session les reprises en cas d’incident.
TSAP La couche Transport garantit que les données reçues sont strictement conformes
à celles qui ont été émises. Cette couche assure le multiplexage sur une seule
Transport liaison physique et la remise des données à l’application par un numéro de port.
NSAP La couche Réseau assure le cheminement des données sous forme de paquets
dans l’internet. Ceci est réalisé par un système d’adressage spécifique à cette
Réseau couche et utilisé par les routeurs de l’internet.
LSAP La couche Liaison prend en charge les données de la couche Physique. Elle gère
des trames (Ethernet, Token-Ring, PPP,…), les adresses du réseau Physique, la
Liaison méthode d’accès au réseau physique et contrôle la validité des trames transmises.
PSAP
La couche Physique transmet et reçoit des bits sur le média sous forme d’un signal
électrique. Elle assure l’encodage et désencodage de ces bits.
Physique

Figure I-2 : Le rôle des couches du modèle OSI de l'ISO.


I- B- 3- Les sous couches de l’IEEE
Le monde des réseaux locaux possède un organisme de standardisation qui lui est propre. Il s’agit de l’IEEE3.
Cet organisme gère les couches qui sont exclusives aux réseaux locaux. L’IEEE divise en deux la couche
liaison de données du modèle OSI de l’ISO. Ces deux sous-couches sont :
 La couche MAC -- Media Access Control
Cette couche concerne les méthodes d'accès au support du réseau local. Ainsi Ethernet correspond
à la norme IEEE 802.3, alors que Token-Ring est concernée par la norme IEEE 802.5
 La couche LLC -- Logical Link Control
Tous les types de réseaux définis au niveau de la sous-couche MAC possèdent une interface
commune avec la couche Réseau, c’est-à-dire avec les protocoles utilisés sur le réseau. Ceci permet
d’utiliser n’importe quel protocole avec n’importe quel type de réseau physique. Cette couche est
responsable de la transmission des données entre les nœuds du réseau. Elle fournit des services de
datagramme en mode connecté ou non connecté ou des services de circuits virtuels.

o Dans le mode datagramme, les paquets générés par la couche contiennent une adresse source et
une adresse destination. Aucun chemin n'est établi par avance et les paquets peuvent passer par
des chemins différents. Aucune vérification n’est assurée tant qu’au séquencement des paquets à leur
arrivée.
o Dans le mode circuit virtuel, une connexion est établie entre les nœuds communicants ainsi qu’un
contrôle du séquencement et de la validité des trames transmises. Un contrôle de flux est aussi
assuré.
La couche LLC peut assurer trois types de services aux couches supérieures:
 Type 1 : Service de datagramme sans accusé de réception en mode point à point, multipoint
ou diffusion.
 Type 2 : Services de circuits virtuels. Assure les services de séquencement, de contrôle de
flux et de correction d’erreur.
 Type 3 : Service de datagramme avec accusé de réception.

3 IEEE Institute of Electrical and Electronic Engineers.


3
ISO IEEE

Application
Protocoles
des
Présentation
couches
supé-
rieures
Session

Transport
IEEE 802.2
Type 1 : Mode datagramme sans accusé de réception.
LLC Type 2 : Mode avec circuit virtuel.
Réseau LLC Type 3 : Mode datagramme avec accusé de réception.
MAC MAC MAC
MAC CSMA CD Token Bus Token Ring
Liaison MAC

802.3

802.5
802.4
UTP Coaxial Paires
Couche 10 ou 100 Mbps 1 5 et 10 Mbps torsadées
Physique Physique Physique Coaxial Fibre optique 4 ou 16 Mbps
Fibre Optique 5 10 20 Mbps

Figure I-3 : Sous-couches IEEE par rapport aux couches ISO

I-C- TCP/IP et le modèle DoD


TCP/IP est antérieur au modèle de l’ISO. Il est conforme au modèle DoD4 . Ce modèle comporte 4 couches.

Data Data
Messages
Application A A Application
Segments
Hôte à hôte T T Hôte à hôte
Datagramme
Internet N N Internet
Trame
L L
Accès réseau Bits
Accès réseau

Figure I-4 : Modèle DoD.

ISO DoD
Applicatio
n
Présentati Application
on
Session
Transport Hôte à hôte
Réseau Internet
Liaison
Accès
Physique
réseau
Figure I-5 : Comparaison modèle OSI et modèle DoD.

4 DoD = Department of Defence.


4
II - Historique de TCP/IP
La nécessité de relier entre eux des réseaux de types différents, a conduit un organisme de la Défense
américaine DARPA51, à la fin des années 60, à créer un protocole ou plus exactement une suite de
protocoles dénommée TCP/IP6. Les protocoles TCP et IP définissent un ensemble de formats et de règles
pour l’émission et la réception de données indépendamment des types de réseau physique et d’ordinateurs
utilisés. Les protocoles TCP/IP fortement implantés dans l’environnement UNIX, bien que non conformes au
modèle de l’OSI, sont devenus des standards de fait.
Le réseau qui utilise TCP/IP est un réseau à commutation de paquets. Ce type de réseau transmet des
informations sous forme de petits groupes d’octets appelés Paquets. Si un fichier doit être transmis, il est
d’abord fragmenté en paquets à l’émission puis, le fichier est réassemblé en regroupant les paquets à la
réception.

III - Inter-réseaux et Routage IP


119.0.0.36 Réseau
Réseau
36 Ethernet 2
Ethernet 1 119.0.0.0
125.0.0.25 120.0.0.0
25
119.0.0.51
125.0.0.66 120.0.0.2
Réseau Routeur
Token Ring 3
115.0.0.168
125.0.0.0
Routeur
1 Routeur Réseau
2 WAN
120.0.0.99 115.0.0.154

PPP

115.0.0.0

Figure III-1 : Un inter-réseau ou internet IP.

Dans la figure ci-dessus, imaginons que le nœud 25 du réseau Token-Ring désire envoyer des données au
nœud 36 du réseau Ethernet 2. Le type de trame, la méthode d’accès, le système d’adressage et le débit du
réseau Token-Ring sont incompatibles avec ceux du réseau Ethernet. Les données ne peuvent être
transmises en l’état. Elles doivent, grâce aux routeurs du réseau, changer de type de trame à chaque nouveau
type de réseau.
Un système d’adressage, indépendant du type de réseau physique, doit être utilisé pour désigner de façon
unique chaque nœud sur l’inter-réseau. Le protocole IP possède ce type d’adressage composé d’une adresse
réseau (NetID= Network ID ) et d’une adresse nœud (HostID = Host ID) sur chaque réseau.
Par exemple, 125, 120, 115 et 119 désignent respectivement les adresses réseaux des réseaux Token-Ring,
Ethernet 2, la liaison asynchrone en PPP7 et Ethernet 1.
L’adresse 125.0.0.25 désigne l’adresse du nœud 25 sur le réseau 125. L’adresse 119.0.0.36 désigne le nœud
36 sur le réseau 119 Ethernet 2.
Chaque routeur est équipé d’au moins 2 interfaces réseaux. Des tables de routage internes à chaque routeur
permettent de connaître le chemin à emprunter pour transporter des données d’un nœud à un autre. Lorsque
le paquet IP arrive dans une trame Token-Ring dans le routeur 1 à destination du nœud 36 du réseau Ethernet
2, celui-ci lit l’adresse IP de destination, et repositionne le paquet IP dans une trame Ethernet. Lorsque la
trame parvient au routeur 2, le paquet est positionné dans des trames PPP. Puis lorsqu'il arrive au routeur 3,
il est repositionné dans une trame Ethernet. L’adresse IP de destination n’a pas changé pendant tout le
parcours, par contre, les adresses physiques (MAC) ont été modifiées sur chaque réseau.

5 DARPA = Defence Advanced Research Projects Agency


6 TCP = Transmission Control Protocol IP= Internet Protocol
7 PPP = Point to Point Protocol

5
V -IV - Couches
V-A- IV-A- TCP/IP et les modèles ISO et DoD
La suite des protocoles appelée aussi pile de protocoles8 IP ne correspond pas au modèle OSI de l’ISO,
celui-ci a été normalisé en 1979, il est donc postérieur à la création de TCP/IP.
La pile de protocoles IP correspond au modèle DoD (Department of Defence). Le dessin suivant montre
l’équivalence entre ces couches et les différents protocoles de la pile. Les protocoles correspondant aux
couches 6 et 7 ISO sont des applications de transmissions qui s'appuient sur TCP/IP. Les couches 1 et 2
dépendent du type de réseau utilisé.
Tous les standards (normes) de la communauté Internet sont publiés sous forme de RFC9. Chacune est
identifiée par un numéro et décrit le fonctionnement d'un protocole de la pile TCP/IP ou d'un matériel comme
par exemple les routeurs IP.

OSI Pile de protocoles TCP/IP DoD


Applica
tion Telnet BOOTP
HTTP & FTP SMTP DNS SNMP NFS TFTP DHCP Application
Présenta-
tion Rlogin
80 23 21 25 53 161 69
Session Transport User Hôte à
Control Datagram Hôte
Transport
TCP UDP
Protocol Protocol

ICMP Internet IGMP Internet


Réseau
ARP
IP Protocol
RARP
X25-3
Paquets
Accès
Liaison SLIP / PPP
802.2 X25-2
Ligne
réseau
Trames
asynchrone
téléphonique
Physique 802.3 802.4 802.5 X25-1 ou RNIS
Autres Bits
Ethernet Bus à Jeton Token Ring

Figure IV-1 : TCP /IP et les couches OSI.


Protocoles réseau
IP Internet Protocol Fournit les services de communication d'inter-réseau aux clients de la couche
4.
ARP Address Resolution Protocole permettant de faire correspondre une adresse IP à une adresse
Protocol Physique.
RARP Reverse ARP Protocole inverse faisant correspondre une adresse Physique à une adresse
IP.
ICMP Internet Control Contrôle la transmission des messages d’erreur et des messages entre
Message Protocol hôtes, passerelles ou routeurs.
IGMP Internet Group Permet d'envoyer des datagrammes à un groupe de machines grâce à un
Management Protocol adressage multicast.
Figure IV-2 : Protocoles réseau.

8 Protocol Stack
9 RFC = Request For Comments
6
Protocoles transport

TCP Transmission Control Protocole orienté connexion, fiable et à flot de données.


Protocol
UDP User Datagram Protocole sans connexion, orienté transaction sans accusé de réception,
Protocol parallèle à TCP.
Figure IV-3 : Protocoles de transport.

Applications au-dessus de TCP/IP

HTTP HyperText Transfert Service de distribution de pages en hypertexte sur des serveurs WEB.
Protocol
Telnet Telecommunications Fournit un service d’émulation de Terminal.
Network
Rlogin Remote Login Commande Unix permettant la connexion des terminaux à d'autres serveurs
Unix du réseau.
FTP File Transfert Protocol Permet l'échange de fichiers complets entre ordinateurs.
SMTP Simple Mail Transfer Offre une fonction importante de messages de texte entre hôtes.
Protocol
DNS Domain Name Service Propose des services de répertoires. DNS est un service complexe qui
permet d'associer un nom et une adresse.
SNMP Simple Network Protocole de management de réseau.
Management Protocol
NFS Network File System Système de fichiers en réseau.
TFTP Trivial File Transfert Protocole simplifié de transfert de fichiers utilisé principalement par les
Protocol clients sans disque.
BOOTP Bootstrap Protocol Protocoles fournissant une adresse IP de façon dynamique au démarrage
Dynamic Host des stations.
DHCP Configuration Protocol
Figure IV-4 : Couches 6 et 7. Applications utilisées avec TCP / IP.

7
VI -V - Fonctionnement de la pile de protocoles IP
Hôte source Hôte destination
Application Messages ou flot (stream) Application

Transport Segments UDP ou TCP Transport

internet Datagrammes ou Paquets IP internet

Accès Accès
Réseau Réseau
Trames du Réseau Physique

Réseau Physique

Figure V-1 : Fonctionnement de TCP/IP.


Les applications développées pour TCP/IP utilisent généralement plusieurs des protocoles de la suite. Elles
communiquent avec la couche transport, elle-même communiquant avec les couches inférieures, pour aboutir
au support physique qu’est le réseau. A destination, les couches inférieures repassent les informations aux
couches supérieures pour aboutir à l’application de l’hôte destination.
Chaque couche de la pile remplit une fonction bien spécifique. Une couche quelconque rend des Services à
la couche qui lui est immédiatement supérieure. Chaque couche de même niveau dans les ordinateurs
Source et Destination dialogue avec son homologue. Ce dialogue est décrit dans le protocole correspondant
à la couche. Par exemple IP pour la couche internet (ou réseau) et TCP pour la couche transport.
VI-A- V-A- Encapsulation
Dans l'ordinateur qui émet des données, les couches communiquent avec les couches homologues de l’autre
ordinateur. Chaque couche ajoute des informations nommées en-têtes, destinées à communiquer avec la
couche homologue située dans l'ordinateur de l'autre extrémité. Chaque nouveau paquet ainsi formé est inséré
dans un paquet de la couche inférieure. Cette opération s'appelle encapsulation.

Données utilisateur

Application
En-tête Données utilisateur
applicatif

En-tête Données applicatives


TCP TCP
Segment TCP
En-tête En-tête Données applicatives
IP
IP
TCP
Paquet IP
En-tête En-tête En-tête Données applicatives FCS Driver
Ethernet IP TCP Ethernet
14 20 20 4
Trame Ethernet
46 à 1500 octets Ethernet

Figure V-2 : Encapsulation.


 Les données de l'application, avec leur en-tête sont passées à la couche TCP qui rajoute le sien.
L'ensemble est appelé segment TCP.
 L'ensemble des données qu'envoie IP à la couche Ethernet est appelé datagramme IP.
 L'ensemble de bits structuré envoyé sur le réseau est une trame Ethernet.
L'ensemble des données inclus dans IP aurait pu être un datagramme UDP, si l'application utilisait ce type
de protocole plutôt que TCP.
TCP et UDP utilisent des numéros de ports sur 16 bits pour connaître l'application qui leur a passé des
données.

8
Les protocoles ARP, RARP, ICMP et IGMP attaquent directement le datagramme IP. Le champ type de cette
trame permet de savoir quel est le protocole utilisé dans le champ de données.
VI- A- 1-V- A- 1- Encapsulation IP dans les diverses trames Ethernet
Le standard réseau Ethernet d'origine a été repris et modifié par le Comité 802 de l'IEEE. Il existe donc
plusieurs définitions de types de trames Ethernet. Quel que soit le type de trame, il faut cependant que les
paquets IP puissent y être encapsulés. Dans la norme de l'IEEE la couche liaison est divisée en 2 sous-
couches :
 la couche MAC (802.3) qui correspond à la gestion de CSMA/CD et à l'interfaçage avec la couche
physique.
 la couche LLC (802.2) qui définit le contrôle de la liaison. Cette fonction est commune a tous les
types de réseaux physiques.
La trame Ethernet_802.2 définie par l'IEEE contient des champs supplémentaires par rapport à la trame
Ethernet. Ce sont les champs DSAP et SSAP (Destination et Source Service Access Point). Le champ
contrôle contient la valeur 03 en hexadécimal.
Dans la trame Ethernet_SNAP, les 3 octets du champ Org sont à 0. Le champ type contient la valeur qui est
contenue dans le champ Type de la trame Ethernet. Cette valeur représente le code du protocole utilisé dans
le champ de données de la trame Ethernet.
Encapsulation Trame Ethernet II RFC 894
Adresse Adresse type FCS
Destination Source
Données
6 6 2 46-1500 4
type
0800 Datagramme IP
2 46-1500
type Requête/réponse PAD
0806 ARP
2 28 18
type Requête/réponse PAD
8035 RARP
2 28 18
Figure V-3 : Encapsulation de IP dans des trames Ethernet II.

Encapsulation Trame IEEE 802.2 / 802.3 RFC 1042

802.3 MAC 802.2 LLC 802.2 SNAP

Adresse Adresse Longueur DSAP SSAP Ctrl Org code type


Destination Source AA AA 03 00
Données FCS

6 6 2 1 1 1 3 2 33-1492 4

type
0800 Datagramme IP
2 38-1492
type Requête/réponse PAD
0806 ARP
2 28 10
type Requête/réponse PAD
8035 RARP
2 28 10

Figure V-4 : : Encapsulation de IP dans des trames Ethernet 802.2.

9
VI-B- V-B- Multiplexage et Démultiplexage
VI- B- 1-V- B- 1- Multiplexage
Le champ "Type" dans une trame Ethernet permet d'indiquer le code des différents types de protocoles (IP,
ARP et RARP). De même au niveau IP, le champ "Type" de l’en-tête IP, permet de transporter TCP ou UDP.
Enfin au niveau transport, les numéros de ports indiquent les applications concernées. Cette propriété de
mélanger les protocoles est appelée multiplexage

HTTP FTP Telnet SNMP TFTP HTTP FTP Telnet SNMP TFTP

TCP UDP TCP UDP

IP IP
Ordinateur Ordinateur
A ETHERNET B ETHERNET

Réseaux

Figure V-5 : Multiplexage.


VI- B- 2-V- B- 2- Démultiplexage
A l'inverse lorsqu'une machine reçoit une trame Ethernet, les données applicatives doivent remonter jusqu'aux
couches supérieures en traversant les couches basses. A chaque niveau, l'en-tête correspondant à la couche
est interprété pour savoir à quel protocole ou applications les données doivent être remises. L'en-tête n'est
pas transmis à la couche supérieure.

application application application application application application

N° de ports N° de ports Le démultiplexage au


niveau des applications est
assuré grâce aux numéros
TCP UDP de ports.

Code 6 Code 17 Le démultiplexage à ce


niveau est assuré grâce au
ICMP IGMP
Code 1 Code 2 code contenu dans le champ
IP 'protocole' de l'en-tête IP.

ARP RARP
Code 0806 Code 0800 Code 8035 Le démultiplexage à ce niveau
Driver est assuré grâce au code
Ethernet contenu dans le champ 'Type'
de l'en-tête Ethernet.
Trame Ethernet

Figure V-6. Démultiplexage IP.


 La reconnaissance des datagrammes IP, ARP ou RARP est assurée par les codes 0800, 0806 et 8035
contenus dans le champ 'type' de la trame Ethernet.
 La reconnaissance des messages ICMP et IGMP est assurée par les codes 1 et 2 dans le champ type de
l'en-tête IP. Les valeurs 6 et 17 indiquent qu'un segment TCP ou UDP suit l'en-tête IP.
 Les numéros de ports contenus dans les en-têtes TCP et UDP permettent de connaître l'application à
laquelle il faut restituer les données.
Chaque application côté serveur utilise un numéro de port "bien connu" (well-know). Ainsi, l'application Telnet
serveur utilise en principe le port TCP 23 et FTP le port TCP 21, alors que TFTP serveur utilise le port UDP
69. Les numéros de port côté serveur sont compris entre 1 et 1023.
Les applications côté client utilisent des "ports éphémères" dont les numéros sont compris entre 1024 et
5000. La gestion de ces numéros de ports est complètement transparente pour les utilisateurs.
La liste des Ports TCP et UDP est contenue dans le fichier Services des ordinateurs travaillant sous IP.

10
VII -VI - Adresses IP
Au niveau de la couche Liaison, les nœuds du réseau communiquent avec les autres stations en utilisant des
adresses qui dépendent du type de réseau utilisé. Un nœud peut être un micro-ordinateur, un serveur de
fichier, une imprimante réseau ou n’importe quel périphérique utilisant TCP/IP. Chaque nœud possède une
adresse physique ou adresse MAC10.
Dans les réseaux Ethernet et Token-Ring, l’adresse physique est contenue dans une ROM sur chaque
interface réseau. Toutes les adresses sont différentes et comportent 6 octets. Cette adresse est déterminée
par le constructeur de l’interface selon un plan de numérotation à l'échelle mondiale.
Dans le réseau X25, l’adresse déterminée par le concessionnaire du réseau comporte au maximum 15 chiffres
décimaux.
Dans le réseau LocalTalk d'Apple, l’adresse comporte un octet pour déterminer le numéro du réseau et 2 pour
déterminer le numéro de la station.
VII-A- VI-A- Généralités
Les adresses IP au contraire sont des adresses logiques. Elles sont indépendantes du type de réseau utilisé.
Dans la version 4 de IP, elles comportent toujours 32 bits, dont une partie identifie le réseau (NetID), l’autre
le nœud sur ce réseau (HostID).
VII- A- 1-VI- A- 1- Types d'adresses
 Unicast : Adresse permettant l'adressage d'une seule machine.
 Multicast : Adresse correspondant à un groupe de machines.
 Broadcast : Adresse correspondant à toutes les machines d'un réseau.
VII-B- VI-B- Représentation des adresses IP
La représentation de cette adresse se fait dans une notation “décimale pointée” (dotted-decimal notation),
c’est-à-dire que chaque octet de l’adresse est représenté par un nombre décimal, séparé du suivant par un
point. Par exemple :

Adresse IP sur 32 bits ou 4 octets


7E 2F 00 0A Adresse en hexadécimal
0111 1110 0010 1111 0000 0000 0000 1010 Adresse en binaire

126. 047. 000. 010 Adresse en notation décimale pointée

Figure VI-1 : Adresses IP. Notation décimale pointée.

Parfois, la représentation se fait en Hexadécimal de la façon suivante : Øx7E.Øx2F.Øx00.Øx0A

VII-C- VI-C- Classes d’adresses


Il existe 5 classes d’adresses IP.
VII- C- 1-VI- C- 1- Classe A
Dans cette classe, l'adresse réseau est définie sur 7 bits et l'adresse hôte sur 24 bits.

7 bits 24 bits

0 Net ID Host ID

Figure VI-2 : Adressage IP Classe A.


VII- C- 2-VI- C- 2- Classe B
Dans cette classe, l’adresse réseau est sur 14 bits et l’adresse hôte sur 16 bits.
14 bits 16 bits

10 Net ID Host ID
10MAC = Medium Access Control
11
Figure VI-3 : Adressage IP Classe B.
VII- C- 3-VI- C- 3- Classe C
Dans cette classe l’adresse du réseau est codifiée sur 21 bits et l’adresse hôte sur 8 bits
21 bits 8 bits

110 Net ID Host ID

Figure VI-4 : Adressage IP Classe C.


Si les réseaux doivent être connectés à Internet les adresses des réseaux IP sont fournies par L'InterNIC11
ou son représentant en France, le NIC France.

Pour faciliter le routage les adresses IP de classe C correspondent à des emplacements géographiques :
Adresses Zone géographique
192.0.0 à 193.255.255 Adresses allouées avant la répartition géographique. Elles correspondent donc à
plusieurs régions.
194.0.0 à 195.255.255 Europe
198.0.0. à 199.255.255 USA
200.0.0 à 201.255.255 Amériques centrale et du Sud
202.0.0 à 203.255.255 Pacifique

VII- C- 4-VI- C- 4- Classe D


Dans cette classe l’adresse du réseau est codifiée sur 28 bits et sert à diffuser des trames vers des groupes
de stations.

28 bits

1110 Adresse Multicast

Figure VI-5 : Adressage IP classe D


VII- C- 5-VI- C- 5- Classe E
Cette classe est réservée à un usage futur.

27 bits

11110 Réservé

Figure VI-6 : Adressage IP Classe E.

VII- C- 6-VI- C- 6- Identification des classes d'adresses


Selon la valeur des bits du premier octet représentant l'adresse réseau IP, il est facile de déterminer la classe
utilisée.
Classe Gamme en notation décimale Premier octet en binaire Nb de réseaux NB de noeuds
A 0.0.0.0 à 127.255.255.255 0 0000000 et 0 1111111 126 16 777 214
B 128.0.0.0 à 191.255.255.255 10 000000 et 10 111111 16383 65534
C 192.0.0.0 à 223.255.255.255 110 00000 et 110 11111 2 097 151 254
D 224.0.0.0 à 239.255.255.255 1110 0000 et 1110 1111
E 240.0.0.0 à 247.255.255.255 11110 000 et 11110 111
Figure VI-7 : Gammes d'adresses IP en fonction des classes.
VII- C- 7-VI- C- 7- Adresses Privées
Pour les réseaux non connectés à l’Internet, les administrateurs décident de la classe et de l’adresse NetID.
Cependant pour des évolutions possibles, il est fortement recommandé de servir des adresses non utilisées
sur Internet. Ce sont les adresses privées suivantes en classe A, B et C :

11 InterNic = International Network Information Center.


12
Tranches d’adresses IP privées Nombre de réseaux privés
10.0.0.0 à 10.255.255.255 1 réseau de classe A
172.16.0.0 à 172.31.255.255 16 réseaux de classe B
192.168.0.0 à 192.168.255.255. 256 réseaux de classe C
Figure VI-8 : Adresses privées
VII- C- 8-VI- C- 8- Adresses spéciales
Les règles concernant les adresses IP prévoient un certain nombre d’adresses spéciales :
 Adresses Réseaux : Dans ces adresses, la partie réservée à l’adresse station est à 0. Par exemple,
126.0.0.0 représente l’adresse réseau et non l’adresse d’un hôte.
 Adresses Broadcast à diffusion dirigée : Dans ces adresses, la partie “adresse Station” a tous ses bits à 1.
Par exemple, 126.255.255.255 est une adresse de broadcast sur le réseau 126. Les routeurs peuvent
transmettre cette trame vers le réseau 126.
 Adresses Broadcast à diffusion limitée. Dans ces adresses tous les bits sont à 1. (255.255.255.255) à.
Cette trame est limitée au réseau de l’hôte qui l’envoie.
 Adresses pour la maintenance ou adresses “Loopback” : 127.0.0.1 (Ping sur la station pour vérifier le
fonctionnement de la pile IP locale).
 Adresses réservées : Ce sont les adresses dont le numéro de réseau n'est composé que de 0 ou de 1.

13
VIII -VII - Réseaux et sous-réseaux
Un réseau peut être divisé en sous-réseaux afin de pouvoir :
- éviter le gaspillage des adresses nœuds d’un réseau
- utiliser des supports physiques différents.
- réduire le trafic sur le réseau.
- isoler une partie du réseau en cas de défaillance d'un composant du réseau.
- augmenter la sécurité.
Chaque sous-réseau est relié à un autre par un routeur.
Exemple :

Sous-réseau 1
Routeur
Réseau
195.123.125.0 Sous-réseau 2
Internet

Sous-réseau 3

Figure VII-1 : Sous-réseaux.


Dans la figure ci-dessus, le routeur est connecté à Internet par un réseau de classe C 195.123.125.0. Il est
donc possible d’utiliser 256 (- 2) adresses pour les nœuds. Cependant si tous les nœuds sont sur le même
réseau, celui-ci risque d’être chargé. On répartit les nœuds sur 3 réseaux que l’on connecte à un routeur.
Chacun de ces réseaux devant avoir une adresse distincte, on crée des adresses de sous-réseaux pour
chacun d’eux.
VIII-A- VII-A- Masques de sous-réseaux
La notion de sous-réseaux était inexistante au début de IP. Elle est apparue avec la RFC 950 vers 1985.
L’adressage de sous-réseaux va se faire avec des bits normalement réservés à l’adressage des nœuds.

Net ID Host ID

Numéro de réseau Numéro de Numéro Adresse IP


sous-réseau d’hôte

Routeur

Figure VII-2 : Numérotation des sous-réseaux.


Pour indiquer le nombre de bits pris sur la partie HostID comme numéro de sous-réseau, on va utiliser un
masque de sous-réseaux. Ce masque indique par des bits à 1 le nombre de bits de l’adresse IP qui
correspondent à l’adresse réseau et à l’adresse sous-réseaux. Les bits à 0 du masque indiquent les bits de
l’adresse IP qui correspondent à l’HostID.

14
Net ID Host ID

Numéro de réseau Numéro de Numéro Adresse IP


sous-réseau d’hôte

Masque de
11111111 11111111 11111111 1111 0000 sous-réseau

Figure VII-3 : Masque de sous-réseau.


Dans l’exemple ci-dessus, l’adresse IP est une adresse de classe C. On désire créer 16 sous-réseaux. Il est
donc nécessaire d’utiliser 4 bits de la partie HostID pour indiquer le numéro de sous-réseau.
Le masque comporte 28 bits à 1, c’est à dire :
 24 bits correspondant à la partie NetID de l’adresse et 4 bits pour indiquer les bits de l’adresse IP qui
doivent être interprétés comme étant l’adresse de sous-réseaux.
 4 bits à 0, indiquent les bits de l’adresse IP qui doivent être interprétés comme des adresses de
nœuds.
Les masques de sous réseaux sont à entrer dans chaque ordinateur travaillant en IP. Les valeurs des masques
se rentrent la plupart du temps en notation décimale pointée. Pour illustrer l’exemple ci-dessus, voici comment
il conviendrait d’indiquer à une station NT, son adresse IP et son masque de sous-réseau.

124

Figure VII-4 : Entrées de l'adresse IP et du masque de sous-réseau.

Adresse IP décimale 195 123 125 124


Adresse IP binaire 11000011 01111011 01111101 0111 1100
ET logique
Masque en binaire 11111111 11111111 11111111 1111 0000
Masque en décimal 255 255 255 240

11000011 01111011 01111101 0111


Adresse réseau 195 123 125 1100
Adresse sous-réseau 112
Adresse nœud 12
Figure VII-5 : Calcul de l'adresse de sous-réseau et de l'adresse nœud.
Dans cet exemple, le masque de sous-réseau comporte 28 bits. L’adresse IP 195.123.125.124 est une
adresse de classe C.
Les 24 premiers bits du masque correspondent au NetID.
Les 4 bits suivants à 1 dans le masque indiquent qu’il faut interpréter les 4 premiers bits du dernier octet
comme une adresse de sous-réseau et non comme une adresse HostID. Les 4 bits à 0 du masque indiquent
qu’il faut interpréter les 4 derniers bits du dernier octet de l’adresse IP comme une adresse nœud.
On calcule l’adresse du sous-réseau en tenant compte du poids binaire de chaque bit. Ici, (128 x 0) + (1 x 64)
+ (1 x 32) + (1 x 16)= 112. L’adresse nœud correspond aux 4 derniers bits de l’adresse IP (12).

15
VIII-B- VII-B- Exemple en classe B

Masque--> 11111111 . 11111111 . 1111 0000 . 00000000 ID ss-réseau ID nœud


Adresses IP

129.047.192.254 10000001 . 00101111 . 1100 0000 . 11111110


129.047.193.001 10000001 . 00101111 . 1100 0001 . 00000001
129.047.192.001 10000001 . 00101111 . 1100 0000 . 00000001
129.047.128.001 10000001 . 00101111 . 1000 0000 . 00000001
129.047.129.001 10000001 . 00101111 . 1000 0001 . 00000001
129.047.128.254 10000001 . 00101111 . 1000 0000 . 11111110
Figure VII-6 : Exemple de masque de sous-réseaux avec des adresses de classe B.

Quelle est la valeur du masque en décimal. ? …………………………………………………..


Quel est pour toutes les adresses IP le numéro de réseau ? …………………………………..
Complétez le tableau en rentrant les adresses de sous-réseaux et les adresses nœud pour chaque adresse
IP .
VIII-C- VII-C- Exemple en classe C
Un masque de sous-réseau est 255.255.255.240
Quelle est la classe des adresses IP qui sont utilisées dans le tableau ci-dessous ? ..................................
En face des adresses IP suivantes, indiquez l'ID sous-réseau puis l'ID nœud :

Adresse IP ID sous-réseau ID nœud


195.252.13.33
195.252.13.66
195.252.13.47
Figure VII-7 : Exemple de masque de sous-réseau en classe C.

16
IX -VIII - Les services d’application utilisant TCP
Des applications réseau sont directement liées à la pile de protocole TCP/IP et la version "client" de ces
applications est souvent livrée avec la pile de protocoles. Ces applications permettent par exemple le transfert
de fichier (FTP), l'émulation de terminal en réseau (Telnet), l'affichage de page HTML (serveur et navigateur
WEB), fonctions de nommage (DNS), …
Suivant les cas et le besoin de fiabilité des applications, elles utilisent soit le protocole TCP, soit le protocole
UDP comme protocole de transport.
IX-A- VIII-A- Ping
Ping (Packet Internet Grouper) est une application qui permet de vérifier le bon fonctionnement des
composants d'un réseau utilisant TCP/IP. Elle permet par essais successifs de tester la pile IP et l'interface
réseau de l'ordinateur sur lequel on se trouve, puis de tester les liaisons avec les autres machines du réseau.
Cette application utilise le protocole ICMP véhiculé par IP.

Commande Ping avec paramètres demandant 5 envois de


trames d'une longueur de 1000 octets. vers la machine dont
@IP est 126.0.0.1
Statistiques de fin. Les
trames ont mis en
moyenne 14 ms pour
faire l'aller et retour entre
les 2 machines. Tous les
paquets ont été
retransmis.

Figure VIII-1 : Commande Ping.

IX-B- VIII-B- FTP


FTP (port 21) est une application qui permet d'assurer le transfert de fichiers, sans erreur, entre un micro-
ordinateur et un hôte ou entre 2 hôtes. Un certain nombre de commandes propres à cette application
permettent des transferts uniques ou multiples de fichiers dans les 2 sens (à l'alternat).
FTP cl FTP Svr
xxx FTP 21
TCP TCP
Client
IP IP FTP
Physique Système Physique Serveur
de fichiers
Système
Interface PUT, SEND ou MPUT de fichiers
TCP/IP
Terminal TCP/IP

GET, RECV ou MGET

Connexion TCP
sur réseau

Figure VIII-2 : FTP.


Il existe une application FTP en mode client côté utilisateur. Dans l'autre ordinateur, une application FTP
serveur tourne en tâche de fond.
Lance le FTP client (local)
Lance le FTP serveur (distant) et ouvre une
connexion avec l'hôte Gemini.

Entrée du nom de connexion et du mot de passe

Transfert d'un fichier vers l'hôte.

17
Le système renvoie un message, précédé de son code (150), suivi du nom du fichier, de l'adresse IP destination et du port FTP.

Le message de code 226 indique que le transfert est terminé


Cette commande met fin à la connexion avec gemini

Cette commande met fin au FTP local


Prompt Unix

Figure VIII-3 : Commandes FTP.

IX-C- VIII-C- Telnet


Telnet (port 23) est un protocole qui permet d'émuler à partir d'un micro-ordinateur un Terminal connecté
sur un Hôte à travers le réseau. Le type de terminal émulé peut être choisi dans une liste qui comporte toujours
les terminaux VT100 ou VT220. Il existe de nombreuses versions de Telnet. Le Telnet client peut tourner
sous système d'exploitation DOS, Windows ou Unix. Le Telnet Serveur (Telnet deamon = telnetd) tourne en
général sous Unix. Au fur et à mesure que l'utilisateur tape les caractères au clavier, ils sont reçus par le
serveur Telnet et transmis à Unix comme s'il s'agissait d'un terminal local en mode asynchrone connecté par
une liaison série.

Telnet Telnet
xxx CLIENT
23
TCP Telnet TCP
IP IP Serveur
Login
Physique Telnet
Physique
Driver de TCP/IP
terminal Driver
TCP/IP Pseudo terminal

Connexion TCP
sur réseau

Figure VIII-4 : Telnet.

Figure VIII-5 : Connexion à un serveur Telnet sous Unix .

IX-D- VIII-D- Les commandes R* d’Unix Berkeley


Unix standard intègre dans ses commandes un ensemble appelé commandes r. Ces commandes permettent
à partir d'un terminal connecté à un ordinateur sous Unix d'effectuer des opérations sur un autre ordinateur
Unix du réseau.

Commande Fonction
rlogin Permet une connexion sur l'ordinateur spécifié.
rexec Permet d'exécuter une commande sur l'ordinateur distant
rsh Permet d'exécuter un shell sur un ordinateur distant.
rcp Permet la copie de fichiers entre machines distantes.
rwho Affiche les utilisateurs connectés sur le réseau.
18
rwall Transmet un message aux utilisateurs connectés aux machines indiquées.
ruptime Affiche des informations sur les ordinateurs du réseau.
Figure VIII-6 : Commandes r*

IX-E- VIII-E- WWW


Le Wide World Web est l'ensemble des serveurs qui stockent des documents au format HTML12 (et autres)
sur Internet. Pour assurer le dialogue entre les clients Web (les navigateurs Web) et les serveurs, on utilise le
protocole HTTP13 qui s'appuie sur TCP et IP.

http cl CLIENT http svr


xxx 80 Serveur
Web
TCP TCP WEB
(Navigateur)
IP IP
Port xxxx Port 80
Physique Physique

TCP TCP
- HTTP – TCP - IP IP
IP
sur le réseau

Figure VIII-7 : Liaison WWW.

IX-F- VIII-F- Les protocoles de messagerie SMTP, POP et IMAP4


La messagerie est un des services d'Internet les plus utilisés et les plus pratiques. Plusieurs protocoles sont
utilisés pour la transmission des messages.
IX- F- 1-VIII- F- 1- SMTP
Le protocole SMTP14 permet d'envoyer les messages en ASCII vers le serveur du provider15 auquel on est
raccordé
Lorsque l'utilisateur A veut envoyer un message, il le compose tout d'abord en utilisant un utilitaire de
messager, (Outlook, Outlook Express, Message Composer, Eudora ou autre). Le message composé est
d'abord envoyé vers une boîte d'envoi locale. Puis, le message est acheminé vers le serveur du provider à
l'aide du protocole SMTP. Pour envoyer des messages non textuels (images, documents Word, programmes),
on est obligé d'utiliser des utilitaires pour rendre la transmission compatible avec SMTP qui ne supporte que
l'ASCII. Ces utilitaires sont UUENCODE / UUDECODE ou plus récemment MIME 16.

12 HTML = Hypertext Markup Language


13 HTTP = Hypertext Transfer Protocol.
14 SMTP= Simple Mail Transfert Protocol.
15 Provider= Fournisseur de services Internet.
16 MIME= Multipurpose Internet Mail Extensions.

19
IX- F- 2-VIII- F- 2- POP et IMAP4
Le message est ensuite acheminé vers le serveur sur lequel est connecté le destinataire. Celui-ci n'étant pas
forcément relié en permanence à ce serveur, il existe une boîte aux lettres personnelle dans laquelle seront
stockés tous les messages non lus.
Le destinataire consulte sa boîte aux lettres et récupère ses messages grâce au protocole POP3 17. Un
protocole plus récent IMAP418 est parfois utilisé. Il possède l'avantage de permettre la consultation des
messages sur le serveur sans forcement les rapatrier dans la station.

Le destinataire
L'utilisateur A
Serveur de Serveur de va lire son
envoie le
messagerie messagerie message sur le
message
SMTP Internet POP3 serveur POP3

RTC RTC

SMTP SMTP POP3


SMTP Boîte aux POP3
25 110
TCP lettres du TCP
IP destinataire IP
Physique Physique

Figure VIII-8 : Messagerie Internet.

17 POP3= Post Office Protocol Version 3.


18 IMAP4= Internet Message Access Protocol Rev4.
20
X -IX - Services d'applications utilisant UDP
X-A- IX-A- DNS
DNS19 est un service qui permet sur un réseau IP et plus particulièrement sur Internet de résoudre le problème
de nommage des ordinateurs. En effet, il est plus facile pour l'utilisateur d'utiliser pour se connecter à un
serveur Web par exemple, une adresse du type www.amora.fr, que de taper une adresse IP difficile de
mémoriser. Le rôle de DNS est donc de faire une équivalence entre un nom de machine et son adresse IP.
Pour ce faire, on utilise :
o un système de nommage des ordinateurs qui est normalisé et hiérarchisé de manière à ce que chaque
ordinateur de l'Internet porte un nom unique.
o des serveurs de noms DNS qui comportent dans des bases de données le nom des ordinateurs et
l'adresse IP correspondante.
X- A- 1-IX- A- 1- Système de nommage hiérarchisé
L'espace de noms du DNS est organisé d'une façon hiérarchique à la manière d'un système de fichiers DOS
ou UNIX.

Racine

Domaines
premier arpa com edu gov int mil net org ae fr us zw
niveau

Emirats France Etats- Zimbabwe


Domaines Arabes Unis
deuxième comp1 comp2 comp3
niveau

Domaines
troisième market paye compta
niveau

Nom de domaine pleinement qualifié


serv2.paye.comp2.com.
Domaines
quatrième Serv1 Serv2
niveau
Domaines génériques Domaines géographiques

Figure IX-1 : DNS.


L'arbre démarre par une racine puis, à chaque niveau, on trouve des nœuds qui permettent l'apparition de
nouvelles branches de l'organisation hiérarchique. Chaque nœud de la figure représente un domaine qui
possède un label qui peut comporter jusqu'à 63 caractères.
Le nom de domaine d'un nœud quelconque de l'arbre est la liste des labels permettant d'atteindre la racine.
On commence par écrire le label de plus bas niveau et on termine par celui du plus haut niveau. Chaque label
est séparé du suivant par un point.
Si le nom de domaine se termine par un point, c'est un nom de domaine absolu ou nom de domaine
pleinement qualifié. (FQDN= Fully Qualified Domain Name).
Un nom de domaine doit être unique, mais il peut exister des labels identiques à des niveaux différents. Les
domaines de niveau supérieur com (commercial), edu (éducation), gov (gouvernemental), int (international),
mil, (militaire), net (réseau) et org (autres organisations) sont appelés domaines génériques. Ceux qui au
même niveau représentent un nom de pays ( fr, us, ...) sont appelés domaines géographiques.
X- A- 2-IX- A- 2- Serveurs de noms de domaine
Une zone est une partie de l'arbre DNS administrée séparément. Chaque zone doit posséder des serveurs
de noms. Pour chaque machine de la zone, l'administrateur doit entrer dans le serveur de noms, l'adresse IP
de cette machine et le nom de domaine. Si un serveur de noms ne contient pas le nom demandé par un

19 DNS = Domain Name System.


21
ordinateur, il doit être capable d'interroger les autres serveurs de noms des niveaux supérieurs. Tout nom
demandé et trouvé par un serveur de noms est mis en mémoire cache. Ceci évite des demandes répétées.
Pour le réseau mondial INTERNET, le NISC20 attribue des noms de domaines en respectant des conventions
propres à cet organisme. Chaque société ou chaque université peut recevoir un nom de domaine de haut
niveau (com pour une société commerciale et edu pour un établissement d'éducation par exemple) et un nom
de sous domaine propre à la société ou à l'université (par exemple novell ou ucla).
A partir de ce point l'administrateur du domaine peut continuer la structure hiérarchique et prolonger le nom
de sous-domaine qui peut devenir par exemple : messagerie.service_technique.novell.com pour une société
commerciale ou sectionA.lettres.ucla.edu pour un département d'une université. Le niveau le plus bas de la
hiérarchie apparaît au début du nom de domaine.
L'implémentation de DNS utilisée sur les ordinateurs Unix est appelée BIND21 et le deamon serveur named.
Les serveurs DNS peuvent aussi être implémentés sur système d'exploitation NetWare ou Windows NT 4
Server.
X- A- 3-IX- A- 3- Exemple d'utilisation de DNS

DNS Légende
53 Serveur DNS au Requête
UDP Réponse
niveau racine
IP
Physique

3 4
1 2  6 5

Serveur DNS
du domaine Serveur DNS
7 de Dubois
Serveur Web
8 www.dubois.fr
Figure IX-2 : Fonctionnement DNS.
-1- L'utilisateur tape l'URL dans le navigateur Web de sa station http://www.dubois.fr. Un programme
nommé résolveur de nom va interroger le serveur DNS de la zone de l'utilisateur pour connaître
l'adresse IP correspondant à www.dubois.fr.
-2- Une requête est envoyée par le résolveur au serveur DNS. Ce serveur de noms de domaine ne
connaît pas l'adresse IP. Il va donc interroger le serveur de nom du niveau racine.
-3- Le serveur DNS de la zone de l'utilisateur envoie une requête au serveur DNS du niveau racine.
-4- Ce serveur ne connaît pas non plus l'adresse IP. Il interroge le serveur DNS du domaine dubois.fr
-5- Ce serveur DNS renvoie une réponse qui contient l'adresse IP. Elle est mise en cache dans le
serveur DNS du niveau racine.
-6- Ce serveur renvoie la réponse vers le serveur DNS demandeur. Celui-ci met l'adresse dans un
cache pour éviter d'autres requêtes ultérieures
-7- L'adresse IP demandée est fournie au résolveur de la station utilisateur qui la met aussi en cache.
-8- La connexion est établie à travers le réseau Internet vers le serveur Web .

20 NISC = Network Information Systems Center


21 BIND = Berkeley Internet Domain Name
22
X- A- 4-IX- A- 4- Désignation des serveurs DNS sur les stations IP
Dans les stations PC sous Windows 95/98 ou NT, pour utiliser le service DNS, il faut dans la configuration des
propriétés de la pile IP, déclarer le nom de la station, le domaine où elle se trouve et l'adresse IP du ou des
serveurs DNS qu'elle doit contacter pour la recherche des adresses IP.

Figure IX-3 : Configuration de DNS sur une station NT ou 95.

X-B- IX-B- NFS


X- B- 1-IX- B- 1- Principes
NFS (Network File System) est une application qui permet à une machine d'exporter son système de fichiers
(tout ou partie) vers le réseau. La base de NFS a été développée par SUN Microsystems dans les années 80.
Il est devenu un standard dans le monde Unix. Pour pouvoir avoir accès aux fichiers exportés à partir d'un
autre ordinateur, il faut qu'il soit équiper d'un client NFS.
La machine qui exporte ses fichiers est souvent un ordinateur sous Unix, mais les clients peuvent être des
machines Unix ou Macintosh ou des PC sous DOS, Windows 9x ou NT.

Serveur Système export etc bin


UNIX de
Serveur fichiers alain pierre michel
NFS NFS
Système de
fichiers exportés

/ C E:
:
usr etc bin Dos Win alain michel
export pierre
Ordinateur sous alain michel PC Sous DOS , Montage du répertoire
Unix avec client Windows ou OS2 NFS exporté
pierre
NFS avec client NFS
Montage distant
Figure IX-4 : Exportation NFS.
La figure ci-dessus montre un répertoire export exporté par le serveur NFS d'un ordinateur tournant sous
UNIX.
L'ordinateur client UNIX voit ce répertoire comme une extension de son propre système de fichiers UNIX.
La station PC monte le répertoire exporté pour le faire apparaître comme une unité de logique DOS-Windows
E:.

23
X-C- IX-C- TFTP
TFTP22 est un protocole qui est une version allégée de FTP. Il utilise UDP comme protocole de transport.
Celui-ci n'étant pas fiable, TFTP se sert de son propre système d'accusé de réception pour assurer une bonne
qualité de transmission.
TFTP est utilisé principalement pour charger à partir d'un serveur TFTP, le système d'exploitation d'ordinateurs
sans disque ou de terminaux X-Windows par exemple. Il est aussi utilisé pour assurer le mise à jour des OS
des matériels réseaux (hubs, ponts, commutateurs, routeurs) contenus dans des mémoires non volatiles, mais
réinscriptibles.

Routeur Cisco
Ancienne TFTP TFTP
version de EEPROM xxxx 69 Fichier
l'IOS Cisco UDP UDP contenant
Client IP IP la nouvelle
TFTP version de
Physique Paquets de Physique
512 octets l'IOS Cisco

Figure IX-5 : TFTP.


Le logiciel TFTP client est souvent implanté en ROM. Sa simplicité permet d'obtenir une taille de programme
compatible avec la capacité de stockage des ROMs.
X-D- IX-D- SNMP
SNMP23 est un protocole qui permet la gestion cohérence d'un inter-réseau et la surveillance des éléments du
réseau. Les éléments du réseau sont les stations, les serveurs, les routeurs, les hubs, etc.
La gestion du réseau repose sur 3 entités :
 le ou les managers SNMP qui sont installés dans une ou plusieurs NMS (Network Management
Station) et les agents SNMP qui sont installés dans les éléments du réseau à gérer.
 une base de données informationnelle de gestion (MIB24) qui définit les variables utilisées dans
chaque élément du réseau. Chaque variable est repérée par un Objet identifier unique.
 les différents types d'objets (Counter , String, ...)

Serveur SNMP
xxx
Agent
Agent Routeur Snmp
UDP
Snmp IP
Physique Agent Hub
Snmp

Station de gestion de
réseau NMS SNMP
Agent 161
Pont
Snmp UDP
IP
Physique

Figure IX-6 : Agents et Manager SNMP.

22 TFTP= Trivial File Transfert Protocol.


23 SNMP=Simple Network Management Protocol
24 MIB : Management Information Base.

24
A partir de la station de gestion, l'administrateur du réseau peut consulter ou modifier la configuration des
éléments du réseau. Cette fonction est réalisée grâce à une procédure du type requête-réponse.

Réponse Requête GET


Agent Station de gestion
Snmp de réseau SNMP
Composant NMS
réseau managé.

Figure IX-7 : Requête – Réponse SNMP.


Les agents sont par ailleurs capables d’envoyer des messages (Traps) pour prévenir l’administrateur des
problèmes survenant sur les composants du réseau.

Trap Alarme

Agent Seuil de Trap: Station de gestion


Seuil d’Alarme: Message
Snmp Niveau 4
Niveau 2 de réseau SNMP d'alarme
NMS
Composant réseau
managé

Figure IX-8 : Traps SNMP.


Les traps sont envoyés vers la station de management ou dans des trames broadcast à partir d’un certain
seuil de gravité déterminé par l’administrateur (noté de 0 à 7).
Une fois arrivés sur la station de gestion, les traps sont enregistrés dans un fichier d’événements. Si leur
niveau de gravité dépasse un certain seuil fixé au préalable, ils déclenchent une alarme qui peut être un signal
sonore, un affichage sur l’écran, l’envoi d’un message sur le réseau ou sur un système de mobile (pager ou
téléphone) ou même l'exécution de n'importe quel programme.

25
XI -X - Fichiers associés à TCP/IP
TCP/IP utilise 4 fichiers de base de données pour convertir des données internes, telles que les adresses IP,
en noms plus faciles à utiliser. Le contenu de ces fichiers une fois lu, est placé en mémoire cache pour éviter
des accès répétitifs aux disques. Ces fichiers, en mode texte, se trouvent en général dans le répertoire \etc
des hôtes TCP/IP.
XI-A- X-A- Fichier Hosts
Ce fichier, que l'on écrira avec un éditeur de texte simple, contient des entrées qui permettent de rendre une
adresse IP équivalent à un ou plusieurs noms.
La syntaxe est la suivante :
adresse_IP nom_d'hôte [alias [...]]
L'adresse_IP est donnée en notation décimale point ou en valeur hexadécimale commençant par 0x.
Le nom_hôte est le nom du système associé à l'adresse IP. Ce nom ne doit pas contenir d'espace et doit être
unique.
L'alias est un autre nom qui désigne le système ou une autre manière de l'écrire (Majuscules-minuscules ou
abréviations).
Exemple de fichier \etc\hosts : Les lignes précédées de # sont des commentaires.

#
# Mapping of host names and host aliases to IP Addresses
#
127.0.0.01 loopback lb localhost # loopback address
#
# exemples d'adresses, de noms d'hôtes et d'alias
126.0.0.1 Mugix MUGIX mugix mu
126.0.0.2 Jarrix JARRIX jarrix ja
126.0.2.1 GEMINI gemini gem
126.0.2.2 APOLLO apollo apo APO Apo
Figure X-1 : Exemple de fichiers hosts.

XI-B- X-B- Fichier Networks


Le fichier \etc\networks contient les informations sur les réseaux de l'inter-réseau.
La syntaxe est la suivante :
nom_réseau numéro_réseau [/masque_réseau] [alias [...]]
Le nom_réseau est le nom du réseau. Il ne peut contenir d'espace, de tabulation ou le symbole #. Il doit être
unique.
Le numéro_réseau est l'adresse IP donnée au réseau.
Le masque_réseau est le masque de sous-réseau du réseau. Ce champ est facultatif
L'alias est un autre nom donné au réseau. Il peut y avoir jusqu'à 10 alias pour le même réseau.
Exemple de fichier \etc\networks :

#
# Networks numbers
#
loopback 127 # réseau fictif interne pour bouclage
#
# réseaux de l'inter-réseaux
angers 126 ang #réseau local afpa angers
greno 123 gre #réseau local afpa grenoble
Figure X-2 : Exemple de fichiers networks.

26
XI-C- X-C- Fichier Protocol
Le fichier \etc\protocol contient des informations sur les protocoles connus utilisés sur l'inter-réseau. Chaque
ligne fournit des informations sur un protocole.
La syntaxe est la suivante :
nom_protocole numéro_protocole [alias [...]]
Le nom_protocole est le nom du protocole associé au numéro qui suit.
Le numéro_protocole est le numéro du protocole.
L'alias est un autre nom donné au protocole.
Exemple de fichier \etc\protocol :
# internet (IP) protocols
ip 0 IP # protocol internet
icmp 1 ICMP #protocol de message d'erreurs dans l'inter-réseau
igmp 2 IGMP # protocol multicast
ggp 3 GGP # gateway-gateway protocol
tcp 6 TCP # protocol de transmission
udp 17 UDP # user datagram protocol
Figure X-3 : Exemple de fichier \etc\protocol.
XI-D- X-D- Fichier Services
Le fichier \etc\services contient des informations sur les services utilisés sur l'inter-réseau IP. La syntaxe est
la suivante :
nom_service numéro_port/nom_protocole [alias [...]]
Le nom_service est le nom de service associé au port dont le nom ou le numéro suit. Ces services sont des
services des couches session, présentation ou application, tels Telnet, FTP, TFTP ou SMTP.
Le numéro_port est le numéro de port utilisé par le service.
Le nom_protocole désigne le protocole auquel le service est lié. Il s'agit, en général, d'un protocole du niveau
transport comme TCP ou UDP.
L'alias est un autre nom donné au service
Exemple de fichier \etc\service
TCP Ports #UDP ports
# Service Name Port/Protocol Aliases # Service Name Port/Protocol Aliases
echo 7/tcp echo 7/udp
discard 9/tcp sink null discard 9/udp sink null
systat 11/tcp users systat 11/udp users
daytime 13/tcp daytime 13/udp
netstat 15/tcp netstat 15/udp
qotd 17/tcp quote qotd 17/udp quote
chargen 19/tcp ttytst source chargen 19/udp ttytst
ftp-data 20/tcp source
ftp 21/tcp time 37/udp timserver
telnet 23/tcp rlp 39/udp resource
smtp 25/tcp mail name 42/udp nameserver
time 37/tcp timserver whois 43/udp nicname
name 42/tcp nameserver nameserver 53/udp domain
whois 43/tcp nicname bootps 67/udp bootp
nameserver 53/tcp domain bootpc 68/udp
apts 57/tcp tftp 69/udp
apfs 59/tcp sunrpc 111/udp
rje 77/tcp netrjs erpc 121/udp
finger 79/tcp ntp 123/udp
link 87/tcp ttylink statsrv 133/udp
hostnames 101/tcp hostname profile 136/udp
iso-tsap 102/tcp tsap snmp 161/udp
x400 103/tcp snmp-trap 162/udp
x400-snd 104/tcp at-echo 204/udp
pop-2 109/tcp pop postoffice
Figure X-4 : Ports TCP et UDP.

27
XII -XI - Résolution de noms d'hôtes IP

Problème : Comment résoudre la correspondance entre les noms des ordinateurs en réseau et leur adresse
IP ?

XII-A- XI-A- Les noms NetBIOS


Ce sont des noms utilisés sur le réseau pour identifier à l'aide de NetBIOS les ordinateurs connectés au réseau
Microsoft. Ces noms d'ordinateurs sont entrés au moment de l'installation de Windows for Workgroup,
Windows 95(98) ou Windows NT. Ces noms doivent être uniques sur le réseau (ce qui pose des problèmes
sur les grands réseaux). Ils ne doivent pas dépasser 15 caractères et ne pas comporter certains caractères.
Les noms NetBIOS peuvent être modifiés dans le panneau de configuration.
Ces noms NetBIOS sont particulièrement utilisés dans la recherche des ressources dans les réseaux Microsoft
en utilisant la convention UNC (Universal Naming Convention).

Par exemple, la recherche d'un fichier sur un réseau utilise une UNC composée de 3 parties :
Un nom d'ordinateur NetBIOS précédé de \\
Un nom de partage situé sur l'ordinateur (option)
Un nom de répertoire ou de fichier au format MS-DOS situé dans le partage.

Exemple : \\berlioz\serv_nt4

XII-B- XI-B- II- Noms de domaines

XII- B- 1-XI- B- 1- Domaines Windows NT

Les Domaines Windows NT correspondent à un ensemble d'ordinateurs en réseau pour lesquels une base
de données d'authentification a été créée (SAM = Security Account Manager). Ce concept est spécifique à
Windows NT. Les noms de domaine sont créés au moment de l'installation du premier serveur NT dans un
domaine. Ce serveur est nommé Contrôleur Principal de Domaine (CPD).

XII- B- 2-XI- B- 2- Domaines Internet


Les Domaines DNS sont des zones dans une structure hiérarchisée de l'Internet qui correspondent à des
serveurs gérés par le même administrateur. Les serveurs de noms de Domaines DNS de l'Internet dialoguent
entre eux et permettent de fournir à un client de l'Internet l'adresse IP de n'importe quel serveur du réseau.
Les noms de domaine se présentent sous la forme :

microsoft.com ou ibm.com

Les noms des serveurs de l'Internet sont associés aux noms de domaines et se présentent sous la forme :

www.microsoft.com www.ibm.com

___________

28
XII-C- XI-C- Correspondance entre les noms des ordinateurs et les adresses IP
XII- C- 1-XI- C- 1- Solution de départ, le fichier Hosts

Pour de petits réseaux non connectés sur l'Internet, la correspondance entre les noms des ordinateurs et les
adresses IP peut être résolue localement grâce à une table consignée dans un fichier nommé hosts sur
chaque ordinateur. Cette méthode ne peut plus être utilisée lorsque le nombre d'ordinateurs sur le réseau
devient important, car tout ajout d'un nouvel ordinateur sur le réseau doit entraîner une mise à jour du fichier
hosts dans chaque ordinateur. De plus, ce système ne résout pas les problèmes de correspondance entre
les noms de serveurs sur Internet et leur adresse IP.

N.B. Le nom d'ordinateur donné dans le fichier hosts est purement local à l'ordinateur où il se trouve et ne
correspond pas forcément au vrai nom de l'ordinateur.

XII- C- 2-XI- C- 2- Solution pour Internet, DNS

Domain Name System assure la correspondance entre le nom Internet complet d'un ordinateur
(nom de serveur + nom de domaine) et son adresse IP.

Ravel.afpa.edu correspond à 126.0.6.3

Pour utiliser ce service sur une station de travail Win95 ou NT, dans la fenêtre TCP/IP, il faut sélectionner
l'onglet DNS et indiquer l'adresse du serveur DNS primaire.
Dans chaque domaine Internet, il existe un ou plusieurs serveurs de Noms de Domaine. Ces serveurs
contiennent une table de correspondance entre les noms des ordinateurs de la zone et leur adresse IP. Ces
tables sont maintenues manuellement par l'administrateur de la zone.

XII- C- 3-XI- C- 3- Solutions sur un réseau avec NT

LMHOSTS
lmosts à l'instar du fichier hosts est un fichier qui contient une table de correspondance statique entre les
noms NetBIOS des ordinateurs du réseau et leur adresse IP. Cette table doit être maintenue manuellement
et ne peut donc être utilisée que sur de petits réseaux.
Cependant, sur certains OS, il est possible d'utiliser un fichier lmhosts partagé, se trouvant sur un autre
ordinateur. Dans ce cas, il est possible de gérer ce fichier d'une manière centralisée.

WINS
Windows Internet Name Service utilise une couche NetBIOS au-dessus de TCP/IP pour établir des
correspondances entre les adresses IP et les noms des ordinateurs NT ou 95.

Ravel correspond à 126.0.6.3

Le service WINS tourne un ou plusieurs serveurs NT du réseau.


Les noms des ordinateurs et les adresses correspondantes sont contenus dans une base de données sur le
serveur WINS. Cette base de données dynamique est mise à jour automatiquement sans intervention humaine
(contrairement à DNS). Cette base de données est plate et ne possède donc pas de niveaux hiérarchiques à
l'opposé de DNS.
Pour qu'une station client puisse utiliser le service de résolution d'adresses WINS, il faut dans la fenêtre
TCP/IP utiliser l'onglet WINS et indiquer au moins l'adresse IP du serveur WINS (serveur primaire). S'il existe
plus d'un serveur WINS, on peut entrer une deuxième adresse IP (serveur secondaire).
Si la case "Activer la résolution DNS pour Windows" est cochée, les noms d'ordinateurs NetBIOS sont
d'abord recherchés dans le serveur DNS. En effet, il peut exister un lien entre les serveurs DNS et WINS.
C'est-à-dire que si un nom d'ordinateur n'est pas trouvé dans le serveur DNS, il est recherché dans le serveur
WINS.
Si la case "Activer la recherche de clé LMHOSTS", le système recherche des correspondances entre le nom
d'ordinateurs et les adresses IP dans le fichier lmhosts.

29
XIII -XII - Protocole IP
XIII-A- XII-A- IP et les réseaux physiques
Le protocole IP permet d’avoir une vue globale de l’inter-réseau sans tenir compte des différents types de
réseaux physiques qui le constituent. Les protocoles TCP et UDP ne dialoguent qu’avec IP sans voir les
réseaux physiques. Les datagrammes IP peuvent être encapsulés dans des trames Ethernet, Token-Ring ou
des paquets X25 ou même des liaisons séries asynchrones en utilisant un protocole de transports sur ce type
de liaison comme PPP25.
IP est aussi utilisable sur des liaisons spécialisées ou des réseaux de type Frame Relay ou ATM 26.

Hôte
Couches supérieures et
applications
IP Couche réseau
Niveau 3

Carte série Carte série


Carte réseau Carte réseau Synchrone Asynchrone
Ethernet Token-Ring X25 PPP

Réseau
Réseau Ethernet Token- TRANSPAC RTC
Ring

Figure XII-1 : IP et les réseaux physiques.

XIII-B- XII-B- Fragmentation


IP génère des paquets de taille variable en fonction du nombre d’octets de données à transporter et de la
MTU27 du réseau physique. La MTU d’un réseau Ethernet est de 1500 octets, alors que celle d’un réseau
Token-Ring à 16 Mbps est de 17940 octets. Il se peut donc qu’un paquet IP encapsulé dans une trame Token-
Ring soit fragmenté en plusieurs paquets IP pour être véhiculé ensuite dans une trame Ethernet ou des
paquets X25.
MTU TR1 > MTU Eth1 ==> Fragmentation MTU ETH1 < MTU TR2 ==> Réassemblage

TR1 TR2

Routeur 1 ETH1 Routeur 2

Figure XII-2 MTU, Fragmentation et Réassemblage.

25 PPP= Point To Point Protocol.


26 ATM = Asynchronous Transfert Mode
27 MTU= Maximum Transmission Unit. Taille maximum d’une trame sur un réseau physique

30
XIII-C- XII-C- Datagramme
IP travaille en mode datagramme sans connexion, c’est-à-dire que chaque paquet IP est véhiculé dans un
internet de manière indépendante. Il se peut donc que plusieurs paquets successifs empruntent des chemins
différents.

Datagramme 1

Datagramme 2

Datagramme 3

Figure XII-3 : Datagrammes IP.


L’ordre d’arrivée des datagrammes peut être différent de celui de départ. On dit que le protocole IP n’assure
pas le séquencement, ni d’ailleurs la fiabilité de la transmission (pas d’accusé de réception, ni de checksum
sur les données transportées). Ces fonctions, si elles sont nécessaires pour les applications qui utilisent IP
doivent être assurées par le protocole de la couche supérieure à IP. TCP assure le séquencement des
paquets, les accusés de réception et la checksum.
XIII-D- XII-D- Format de l’en-tête
Le paquet comporte un en-tête renfermant entre autres, les adresses IP Source et Destination. L’en-tête est
suivi d’un champ comprenant les données envoyées par les couches supérieures de la pile. Ce paquet sera
ensuite encapsulé dans une trame du réseau physique utilisé.

32 bits

Version IHL Type of Service Total Length

DM
Identification O Fragment Offset
F F

En-tête
Time to Live Protocol Header checksum

Source Address

Destination Address
Zone
Options Padding optionnelle
Données des

supérieures
couches

Data

Figure XII-4 : Format de l'en-tête IP.

31
Octets Nom du champ Signification
1 Version Ce champ est formé par les 4 bits de poids fort du premier octet. Il indique la
version de IP utilisée. La valeur actuelle est 4 (O1OO). Elle passera à 6 lorsque
la version IPV6 sera opérationnelle.
1 IHL Internet Header Length = Longueur de l'en-tête IP. On y trouve une valeur qui
indique la longueur de l'en-tête en multiple de 32 bits. Par exemple si la valeur
est 0101 (5), cela veut dire que l'en-tête mesure 5 fois 32 bits, soit 20 octets. Ce
champ est indispensable, car la longueur de l'en-tête varie s'il y a des options à
la fin de l'en-tête standard.
2 TOS TOS= Type of Service. Ce champ informe les routeurs des réseaux de la qualité
de service désirée. Il est divisé en 6 parties.
1- 'Precedence' : Les 2 bits de poids fort de l'octet indique la 'préséance', c'est
à dire en fait l'importance du paquet IP et la priorité que l'on doit lui accordé.
La valeur par défaut de ce champ peu utilisé est 0.
2- Délai : 0= normal, 1= Elevé.
3- Débit : 0= normal, 1= Elevé.
4- Fiabilité : 0 = Normale, 1= Elevée.
5- Coût: 0= Normal, 1= Elevé.
6- Ce bit doit être à 0.
Le TOS est peu utilisé, mais il est fonctionnel. Les valeurs du TOS sont gérées
par les couches supérieures.
3-4 Total Length Ce champ indique la longueur totale du paquet IP.
5-6 Identification Ce champ indique le numéro du paquet émis par la couche réseau d'un nœud.
Le compteur compte de 0 à 65535, puis repasse à 0.
7-8 Fragment Offset Si le bit DF (Don't Fragment) de ce champ est à 1, cela signifie que le
datagramme IP ne doit pas être fragmenté. Il peut être utilisé par exemple, par
des terminaux sans mémoire de masse qui chargent leur OS à l'aide du
protocole TFTP. En effet le logiciel contenu en ROM est incapable d'assurer le
réassemblage des datagrammes.
Le bit MF (More Frags) est mis à 1 tant que tous les fragments d'un même
datagramme ne sont pas arrivés. Le dernier fragment à donc ce bit MF à 0.
Dans le cas de datagrammes non fragmentés, ce bit est évidemment à 0.
Les autres bits de ce champ indiquent la position des données par rapport à leur
position dans le datagramme d'origine.
9 TTL Time To Live : Ce champ représente en secondes la durée de vie d'un
datagramme IP. La valeur de départ est de 60. A chaque passage dans un
routeur la valeur est décrémentée d'une seconde (pour simplifier le travail).
Lorsque la valeur atteint 0, le routeur qui reçoit le paquet le détruit et envoie un
paquet ICMP sur le réseau. Ce mécanisme a pour but d'éviter que des
datagrammes dont l'adresse est erronée tournent sans fin dans l'internet.
10 Protocol On trouve dans ce champ le code du protocole utilisé au-dessus de IP. Si la
valeur est 6, le protocole qui utilise IP est TCP. Si la valeur est 17, il s'agit d'UDP.
Si la valeur est 1, d'ICMP.
11-12 Header Checksum Ce champ contient une checksum sur 16 bits des octets de l'en-tête IP.
13-16 Source Address Ce champ contient l'adresse du nœud qui a émis le datagramme IP.
17-20 Dest. Address Ce champ contient l'adresse du nœud de destination
20 + Options Ce champ de longueur variable, mais toujours multiple de 32 bits est utilisé
multiple parfois pour définir des informations concernant la sécurité ou le routage
de 32
bits
Figure XII-5 : Signification des champs de l'en-tête IP.

32
Exemple
Cette zone affiche le nom
des différents champs de
l'en-tête Ethernet, ainsi
que les valeurs
correspondantes.

Cette zone affiche le nom


des différents champs de
l'en-tête IP, ainsi que les
valeurs correspondantes.

Cette zone affiche le nom


des différents champs de
l'en-tête TCP, ainsi que les
valeurs correspondantes.

Cette zone affiche les données transportées par le paquet


TCP en hexa dans la partie gauche, et en ASCII dans la partie
droite.

Figure XII-6 : Trame Ethernet avec Datagramme IP affichée sur un analyseur de protocole.

La case de gauche contient les octets de la


Figure XII-7 : La même trame non décodée, affichée en hexadécimal. trame (préambule et FCS non inclus). La case
à droite contient les mêmes octets, mais affichés
en ASCII. Les caractères non imprimables sont
remplacés par des points.
EXERCICE :
Dans l'en-tête Ethernet, quelles sont les 2 adresses MAC en hexa? : .......................... , .......................
Dans l'en-tête Ethernet, quel est le code du protocole et quel est ce protocole : ................ , ....................
La trame capturée et analysée ici, est-elle du type Ethernet II ou du type 802.2 ? : ......................................
Dans l'en-tête IP, quelles sont les adresses IP source et destination en notation décimale point et en hexa?
Source en décimal ........................... Source en Hexadécimal ............................
Destination en décimal ............................ Destination en hexadécimal ............................
Quel est le protocole indiqué dans cet en-tête ? : ............................................................
Quelle est la longueur de l'en-tête en mots de 32 bits et le nombre d'octets correspondants : ......... , .........
Quel est le numéro de ce datagramme IP ? : ...............
L'en-tête IP possède-t-il un champ 'Options' ? : .........................

XIV -XIII - Les protocoles de transport TCP et UDP


Le tableau ci-dessous permet de comparer les 2 protocoles de transport. On utilise l'un ou l'autre de ces
protocoles en fonction du niveau de fiabilité réclamée par l'application dont les données sont véhiculées par
le protocole de transport.
Caractéristiques UDP TCP
Longueur de l'en-tête 8 octets 20 octets
Etablissement d'une connexion Non Oui
Séquencement / Perte Non Oui
Accusé de réception Non Oui

33
Contrôle de flux Non Oui
Multiplexage Non Oui
Contrôle d'erreur Non (Oui en option) Oui

XIV-A- XIII-A- UDP


XIV- A- 1-XIII- A- 1- Généralités
UDP (RFC 768 de 1980) permet des échanges de paquets de données individuels. Chaque datagramme UDP
est encapsulé dans un datagramme IP. Celui-ci sera positionné dans une trame conforme au réseau physique
utilisé.
Contrairement à TCP, UDP, comme IP, est un protocole sans connexion et non fiable. UDP n’assure pas les
accusés de réception. Il ne gère pas le séquencement des messages, ni le contrôle de flux. Il peut donc y
avoir perte des données ou duplication ou deséquencement. Les fonctions de contrôle doivent donc être
assurées par les applications utilisant UDP si nécessaire.
UDP est efficace pour des applications qui utilisent la diffusion (pas de temps de connexion)
Il utilise comme TCP un système d'identification des applications, basé sur des numéros de ports.
Les applications qui utilisent UDP sont :
 TFTP Port 69
 DNS Port 53
 SNMP Ports 161-162
 RIP Port 0208
XIV- A- 2-XIII- A- 2- En-tête

32 bits

Port Source Port Destination

Longueur Checksum

Octets de données

Octets de données

Figure XIII-1 : En-tête UDP.


Octet Champ Rôle
1 et 2 Port Numéro de l'application qui émet les données qui sont transportées par le message
Source UDP.
3et 4 Port Numéro de l'application à laquelle les données sont destinées
Destination
5 et 6 Longueur Longueur du message UDP en octets.
7 et 8 Checksum Le champ Checksum est utilisé de façon facultative. Sa valeur est souvent à 0000.
Pour qu'il soit réellement fonctionnel, il faut que l'application qui utilise UDP en fasse
la demande expresse.
Figure XIII-2 : Signification des champs de l'en-tête UDP.

34
Exercice

En-tête En-tête
....................... .......................

Données de l'application En-tête


....................... .......................

Figure XIII-3 : Analyse de la même trame, mais non décodée.

EXERCICE : Complétez les bulles. En vous aidant de la page précédente, indiquez quelle est la valeur du port
correspondant à l'application SNMP destination dans l'en-tête UDP?. : .....................

Décodage de l'en-
tête Ethernet

Décodage de
l'en-tête IP

Décodage de l'en-tête UDP


Port Source (2 octets)
Port Destination (2 octets)
Longueur (2 octets)
Checksum (2 octets)

Champs concernants
l'application SNMP

Figure XIII-4 : Analyse et décodage d'une trame contenant un datagramme UDP.

35
XIV-B- XIII-B- •TCP
XIV- B- 1-XIII- B- 1- Généralités
Pour la transmission de suites de données très longues comme des fichiers par exemple, on met en œuvre
un protocole plus fiable nommé TCP (RFC 793 de 1981) qui utilise des circuits virtuels. Ce sont des
connexions full-duplex entre les 2 applications dialoguant sur les 2 ordinateurs. Avant de commencer une
transaction, le protocole à chaque extrémité du circuit virtuel ouvre une connexion. Chaque connexion
correspond à un port qui comporte un numéro alloué de manière dynamique côté client et de manière bien
définie côté serveur. Les segments TCP comportent un en-tête et un champ de données. L’ensemble est
passé à la couche IP qui y ajoute l’en-tête IP, puis le tout est inséré dans une trame.
XIV- B- 2-XIII- B- 2- Format de l'en-tête

32 bits

Source Port Destination Port

Sequence Number

Acknowledgement Number

Reserved U A P R S F
Data R C S S Y I Window
Offset G K H T N N

Checksum Urgent Position

Options Padding

DATA

DATA

Figure XIII-5 : Format messages TCP.


Octets Champ Rôle
1 et 2 Source port Numéro de l'application qui émet le paquet TCP.
3 et 4 Destination Port Numéro de l'application à laquelle le paquet est destiné.
5à8 Sequence Number Numéro du premier octet de données transporté dans le paquet.
9 à 12 Ack. Number Numéro du prochain octet attendu en provenance de la couche TCP distante.
Ce champ est équivalent à un accusé de réception dans un paquet
transportant des données.
13 et 14 Data Offset et Flags Ce champ contient la longueur de l'en-tête TCP exprimé en mots de 32 bits.
Cette information est nécessaire car il peut exister un champ "options"
supplémentaire.
Flags
ACK : Ce bit à 1 indique que le paquet TCP est un accusé de réception.
SYN : Ce bit à 1 est utilisé lors de l'établissement d'une connexion.
FIN : Ce bit à 1 est utilisé au moment de la fermeture de la connexion.
RST : Ce bit à 1 indique qu'il y a réinitialisation de la connexion suite à erreurs
irrécupérables.
PSH : Ce bit à 1 impose la remise immédiate des données à la couche
supérieure.

URG : Ce bit à 1 indique que des données urgentes sont placées dans le
paquet. Dans ce cas, le champ "Urgent Position" est valide et contient un
pointeur qui permet de déterminer la longueur de ces données. Ce type de
36
flag est utilisé par exemple au cours d'une session Telnet pour envoyer une
commande de contrôle au serveur Telnet
15 et 16 Window Ce champ contient le nombre d'octets que la session TCP peut encore
recevoir sans accusé de réception. Lorsque la valeur atteint 0, l'émetteur ne
doit plus émettre. Ce champ permet le contrôle de flux.
17 et 18 Checksum Checksum du paquet TCP y compris l'en-tête.
19 et 20 Urgent position Ce pointeur de données urgentes est valide si le flag URG=1.
Figure XIII-6 : Champs de l'en-tête TCP.
XIV- B- 3-XIII- B- 3- Fonctionnalités TCP
 Accusé de réception
La fiabilité de la transmission est assurée par l'utilisation d'accusé de réception. Le flag ACK est alors
positionné à 1. Le champ Achnowledgement Number est aussi utilisé pour les accusés de réception. Il permet
de connaître le numéro du prochain octet attendu par une session TCP et par conséquent le numéro du dernier
octet reçu.
 Séquencement et Détection de pertes de données
Les champs Sequence Number et Acknowledgement Number permettent aussi de s'assurer que les octets
arrivent dans l'ordre correct. Ils permettent aussi de détecter si des octets ont été perdus.

SeqN 1000, AckN 0000


Noeud A Nœud B
1
SeqN 0000, AckN 1501
TCP 2 TCP
IP SeqN 1501, AckN 551 N IP
3
SeqN 551, AckN 2001
4
Figure XIII-7 : Utilisation des champs Sequence Number et Ack Number
1- La couche TCP du nœud A émet un paquet avec un Sequence Number à 1000, ce qui veut dire que le
premier octet de ce paquet est le numéro 1000. La valeur de Ack Number est de 0000, ce qui veut dire que la
couche TCP de A attend le premier octet en provenance de la couche TCP de B.
2- La couche TCP de B émet un paquet avec Seq Number à 0000, ce qui veut dire que le numéro du premier
octet de données est 0000. La valeur de Ack Number est 1501, ce qui veut dire que la couche TCP de B a
bien reçu les 1500 premiers octets en provenance de A et attend le numéro 1501 et suivants.
3- La couche TCP de A, envoie les octets à partir du numéro 1501. La valeur de Ack Number est 551, ce qui
veut dire que A a bien reçu les octets jusqu'à 550 en provenance de B et attend le numéro 551 et suivants.
4- La couche TCP de B envoie les octets à partir de 551. Elle attend l'octet 2001, ce qui veut dire qu'elle a
bien reçue les octets jusqu'à 2000 inclus.
Ce mécanisme permet d'accuser réception des octets reçus et de vérifier que l'ordre est respecté. Ainsi B
attend l'octet 1501 et qu'il reçoit 2001, cela veut dire qu'il y a deséquencement ou perte d'octets.
 Contrôle de flux
Le champ Windows permet d'indiquer à l'émetteur combien d'octets il peut encore envoyer sans accusé de
réception. Lorsque la valeur de la fenêtre atteint 0, l'émetteur doit interrompre l'envoi des données. Il peut
recommencer le transfert lorsque la valeur de la fenêtre est différente de 0. Ce champ permet donc le contrôle
de flux.

37
 Multiplexage

Appli 1 Appli 2 Appli 3 Appli 1 Appli 1 Appli 2


1501 1589 1602
80 21 21 TCP TCP
TCP
@ IP @ IP
126.0.1.23 126.0.2.66
@ IP Physique Physique
126.0.0.1

Physique
3
2
1
Figure XIII-8 : Multiplexage TCP.
TCP peut servir plusieurs applications dans un même nœud. C'est le multiplexage TCP. Chaque extrémité de
la liaison se caractérise par une adresse IP et un numéro de port.
Par exemple l'application 1 dans le nœud dont l'adresse IP est 126.0.0.1 est l'extrémité 126.0.0.1,80 de la
connexion avec l'application 2 du nœud 126.0.2.66. Cette autre extrémité est dont notée 126.0.2.66,1602.

 Connexions
TCP établit une connexion avant de transmettre des données. Cette opération est relativement longue, car
elle nécessite l'envoi de plusieurs paquets de dialogue entre les 2 couches TCP qui veulent établir la
connexion.
Chaque connexion est symbolisée par les valeurs des 2 extrémités. Ainsi la connexion 1 est définie par :
(126.0.01,80,126.0.2.66.1602)

38
XIV- B- 4-XIII- B- 4- Exemple TCP

Figure XIII-9 : Trame Ethernet avec un paquet TCP.

Figure XIII-10 : Même trame non décodée.

EXERCICE :

Quelle est l'adresse MAC de la station source ? : ...................................................


Dans la figure ci-dessus, entourez les octets correspondants aux en-têtes Ethernet, IP, TCP et ceux de
l'application.
Dans l'en-tête IP, quel est le code du protocole TCP? : .....................
Dans la zone TCP, tracez un trait vertical pour séparer les différents champs.
Quelle est la longueur en nombre de mots de 32 bits, puis en octets du segment TCP? : ............., ..............
Pour quelle application, TCP est-il employé ? : .....................................................
En vous aidant de la figure précédente, quels sont les codes des applications FTP client et serveur dans l'en-
tête TCP? : ............................

39
XV -XIV - Protocoles de résolution d’adresses IP
XV-A- XIV-A- ARP (Protocole code 0806)
Une adresse IP est liée à une adresse physique en utilisant le protocole ARP28 (RFC 826 de 1982). Pour
trouver l’équivalence entre une adresse physique inconnue et une adresse IP connue, une station diffuse un
paquet ARP contenant une adresse IP destination ainsi qu’une adresse physique source et une adresse IP
source. La station destination renvoie un paquet contenant son adresse physique et son adresse IP. Une table
de correspondance entre les adresses physiques et les adresses IP, est mise à jour dans chaque station.
@IP 126.0.2.55
@IP 126.0.1.23 @IP 126.0.2.43 @IP 126.0.1.12
Quelle est l'@ Mon @ MAC est
MAC du nœud 08 25 66 AD FE AB
dont l'@ IP est
126.0.2.555 ?

Requête ARP dans une trame Ethernet Broadcast

Réponse avec l'adresse MAC demandée


Figure XIV-1 : Requête et réponse ARP.
Supposons qu'un utilisateur sur la station dont l'adresse IP est 126.0.1.23 ouvre une première session Telnet
sur le serveur UNIX dont l'adresse IP est 126.0.2.25. La station doit envoyer une trame Ethernet pour ouvrir
la session Telnet, mais elle ne connaît pas l'adresse MAC du serveur. Elle va dont envoyer une trame Ethernet
Broadcast avec une requête ARP. Cette requête est reçue par tous les nœuds du réseau, mais seul celui dont
l'adresse IP correspond à celle indiquée dans la requête va répondre. Dans cette réponse ARP on trouve
l'adresse MAC du serveur demandée par la station.
Pour éviter que ce processus ne se renouvelle à chaque ouverture de session avec le serveur, son adresse
MAC et mise dans un cache qui reste valide jusqu'à expiration d'un délai fixé par le système d'exploitation.

C:\>arp -a
Interface : 125.0.0.1 on Interface 2
Adresse Internet Adresse physique Type
125.0.0.2 00-10-7b-3c-3b-70 dynamique
Figure XIV-2 Contenu d'un cache ARP.
XV- A- 1-XIV- A- 1- Format d'un paquet ARP

@ Eth @ Eth Type de Type de T T @ Eth @ IP


Dest Source
Type matériel protocole
OP @ Eth @ IP
M P Emetteur Emetteur Cible Cible
6 6 2 2 2 1 1 2 6 4 6 4
En-tête Ethernet Requête / Réponse ARP
Figure XIV-3 : Format d'un paquet ARP.
Le champ type de l'en-tête Ethernet contient la valeur 0806 qui correspond à ARP.
Dans le paquet ARP qui peut être une Requête ou une Réponse :
 Type de matériel : indique le type de trame physique. La valeur est 1 pour Ethernet.
 Type de protocole : indique le protocole utilisé dans le système d'adressage. La valeur est 0800 pour IP.
 TM= Taille matériel : longueur des adresses MAC utilisées. 6 octets pour Ethernet.
 TP = Taille protocole : longueur des adresses utilisées dans le protocole. 4 octets pour IP.
 OP = Opération : est à 1, s'il s'agit d'une requête ARP. Est à 2, s'il s'agit d'une réponse ARP.
 @ Eth Emetteur : adresse Ethernet de l'émetteur.
 @ IP de l'émetteur.
 @ Eth Cible : adresse Ethernet de la cible. Ce champ n'est pas rempli dans la requête, puisqu'il s'agit de
l'information recherchée. Par contre, ce champ est rempli dans la réponse ARP.
 @ IP cible.

28 ARP = Address Resolution Protocol.


40
XV- A- 2-XIV- A- 2- Exemple ARP

Figure XIV-4 : Requête ARP.

Figure XIV-5 : Réponse ARP.


EXERCICE : Dans l'en-tête Ethernet, :
- quelle est la particularité de l'adresse de destination MAC ? .................................
- notez le code du type de protocole : ................................................
Dans le paquet ARP requête :
- quel est le code correspondant au type de trame Ethernet ? : .............
- quel est le code correspondant au protocole IP ?: ................................
- quelles sont les longueurs indiquées pour les adresses "physiques" et les adresses "protocole"? : .... , .....
- quelle est l'adresse Ethernet cible figurant dans la requête ARP ? : ..........................................
- comparez-la avec celle figurant dans l'en-tête Ethernet . ............................................................................
- pourquoi la première trame comporte-t-elle des FF après le paquet ARP requête ? .............................
.............................................................................................................................................................
Dans le paquet ARP réponse :
- quelle est l'adresse Ethernet objet de la demande figurant dans la réponse ARP ? : ..................................

41
XV-B- XIV-B- RARP (Protocole code 8035)
XV- B- 1-XIV- B- 1- Rôle de RARP
Le protocole RARP29 (RFC 903 de 1984), permet au contraire d'ARP, à une station sans disque ou à un
Terminal X30 de connaître son adresse IP à partir d’une table de correspondance des adresses physiques et
IP maintenue à jour sur un serveur RARP. Lorsqu’une machine veut connaître son adresse IP, elle envoie un
paquet de "requête" RARP contenant son adresse physique et le serveur RARP lui répond en lui envoyant un
paquet RARP réponse contenant l’adresse IP. Pour que le protocole puisse être utilisé, il faut que le réseau
comporte au moins un serveur RARP. Celui-ci utilise une table normalement contenue dans le fichier
/etc/ethers sous UNIX. Le protocole TFTP est ensuite utilisé pour charger le logiciel dans le terminal à partir
du serveur.
Station Table Serveur RARP
sans disque @MAC @IP Ton @IP est
Quelle est 126.0.2.3 !
mon @ IP ? xxxxxxxx 126.0.2.3
xxxxxxxx 126.0.5.9
xxxxxxxx 126.0.1.1
Requête RARP en mode broadcast

Réponse RARP
Figure XIV-6 : Requête et réponse RARP.
Supposons que la station sans disque ne puisse pas stocker son adresse IP. Au démarrage, le logiciel contenu
dans la ROM de Boot va envoyer une requête RARP dans une trame broadcast. Le serveur RARP consulte
la table de correspondance entre les adresses MAC et les adresses IP, établie manuellement par
l’administrateur. Il retourne l’adresse IP de la station dans une réponse RARP.
XV- B- 2-XIV- B- 2- Format RARP

@ Eth @ Eth Type de Type de


Type matériel protocole T T OP @ Eth @ IP @ Eth @ IP
Dest Source M P Emetteur Emetteur Cible Cible
6 6 2 2 2 1 1 2 6 4 6 4

En-tête Ethernet Requête / Réponse RARP


Figure XIV-7 : Format paquet RARP.
Le format d'un paquet RARP est identique à celui d'un paquet ARP. Cependant la valeur du champ type de
l'en-tête Ethernet n'est pas O806, mais 8035.
Dans le paquet RARP qui peut être une Requête ou une Réponse :
 Type de matériel indique le type de trame physique. La valeur est 1 pour Ethernet.
 Type de protocole indique le protocole utilisé dans le système d'adressage. La valeur est 0800 pour
IP.
 TM= Taille matériel = longueur des adresses MAC utilisées. 6 octets pour Ethernet.
 TP = Taille protocole = longueur des adresses utilisées dans le protocole. 4 octets pour IP.
 OP = Opération ; est à 3, s'il s'agit d'une requête RARP. Est à 4, s'il s'agit d'une réponse RARP.
 @ Eth émetteur : adresse Ethernet de l'émetteur.
 @ IP de l'émetteur : ce champ est vide dans la requête et contient la valeur donnée par le serveur
dans le paquet de réponse.
 @ Eth cible : adresse Ethernet de l'émetteur. Ce champ n'est pas rempli dans la requête. Contient
l'adresse Ethernet du serveur RARP dans la réponse.
 @ IP cible : ce champ est vide dans la requête et contient l'adresse IP du serveur dans la réponse.
RARP ne franchit pas les routeurs. Ce protocole est donc abandonné actuellement au profit de protocoles de
configuration IP comme BootP ou DHCP.

29 RARP = Reverse Address Resolution Protocol = Protocole de résolution d'adresse inverse.


30 Terminal X = Terminal X Windows connecté à un serveur Unix graphique.

42
XVI -XV - Protocoles de configuration IP automatique
Lorsque les réseaux deviennent très importants, il devient fastidieux de configurer IP sur chaque ordinateur.
D’autre part l’usage de plus en plus répandu d’ordinateurs portables interdit sur ces machines des
configurations fixes. Il faut qu’au cours des déplacements les ordinateurs portables puissent acquérir une
configuration IP (adresse et masque) de manière automatique. L’IETF 31 a développé plusieurs protocoles pour
configurer automatiquement les ordinateurs sur les réseaux TCP/IP dont BOOTP32 et DHCP33
XVI-A- XV-A- BOOTP
BOOTP (RFC 951 de 1985 et 1532 de 1993) est un protocole dont le rôle est le même que celui de RARP,
mais contrairement à ce dernier, il fonctionne sur les réseaux comportant des routeurs. BOOTP peut être
considéré comme une amélioration de RARP et permet d'obtenir des adresses IP pour des stations sans
disques ou des terminaux X à partir d'une table, gérée manuellement, existant sur un serveur BOOTP. Le
protocole de transport de BOOTP est UDP.

En-tête En-tête En-tête Requête ou Réponse


Ethernet IP UDP BOOTP
Figure XV-1 : Positionnement de BOOTP dans une trame Ethernet.
Le client BOORP qui désire connaître son adresse IP, envoie une requête dans un paquet UDP.. Le serveur
lorsqu’il reçoit la requête consulte la table des adresses et renvoie une réponse BOOTP dans un paquet UDP.
Si le serveur DHCP est sur un autre réseau, un agent de relais BOOTP doit être installé sur une station d'un
des réseaux.
BootP Cl
Serveur 68
UDP
DHCP
IP BootP Cl
68
Table Physique
Réponse BOOTP UDP
d’adresses IP
Requête BOOTP
BootP S BootP Cl Physique
67 68
UDP UDP Routeur
IP IP Agent de
Physique Physique relais BOOTP

Figure XV-2 : Requête et réponse BOOTP.


En utilisant conjointement BOOTP et le protocole de transfert de fichiers simplifié TFTP, on peut obtenir le
chargement dans la mémoire de la station ou du terminal du logiciel nécessaire à son fonctionnement. Ce
logiciel est stocké dans un répertoire particulier pour chaque station du serveur BOOTP.

Client 1 Requête BOOTP Serveur


BOOTP Réponse BOOTP 2 BOOTP

Client 3 Requête TFTP Serveur


TFTP Réponse TFTP 4 TFTP
UDP UDP
IP IP
Physique Physique

Figure XV-3 : Association de BOOTP et TFTP.

31 IETF = Internet Engineering Task Force.


32 BOOTP= Boot Protocol.
33 DHCP = Dynamic Host Configuration Protocol.

43
XVI-B- XV-B- DHCP
Le protocole DHCP est une amélioration de BOOTP. Il permet d’allouer des adresses selon plusieurs
méthodes et il permet comme BOOTP le chargement de fichiers à partir du serveur. Ce protocole est routable,
si on installe un agent de relais DHCP dans les routeurs.
Allocation d’adresses
L’allocation des adresses peut se faire de 3 manières différentes :
 Allocation manuelle : C’est l’administrateur qui établit, à la main, une correspondance entre l’adresse
MAC de l’ordinateur client DHCP et son adresse IP
 Allocation automatique : Une adresse est attribuée automatiquement à un ordinateur possédant un
client DHCP. L’adresse IP est attribuée au cours de la première requête du client et elle est
définitivement attribuée à l’ordinateur.
 Allocation dynamique : Cette méthode permet d’attribuer de manière temporaire une adresse IP à
un ordinateur qui possède un client DHCP. C’est cette méthode qui est utilisée par les fournisseurs
de services Internet pour les clients se connectant par l’intermédiaire du RTC. Cette méthode est aussi
très pratique lorsqu’il existe de nombreux ordinateurs portables qui se connectent sur un réseau, puis
sur un autre. Un système de gestion de durée des "Baux" permet de limiter la durée d’utilisation d’une
adresse par un ordinateur.

Serveur DHCP
Plage des adresses qui
seront allouées de
manière dynamique

Masque de sous-réseau

Plages des adresses


pouvant être exclues à
l’intérieur de la réserve
d’adresses

Durée de vie des


adresses allouées
dynamiquement

Figure XV-4 : Panneau de configuration d'un serveur DHCP sous NT4.

Si au cours de la
configuration du protocole
TCP/IP sur un ordinateur
avec OS Microsoft, on
coche cette case, le client
DHCP est activé et
l’ordinateur demandera
son adresse IP à un
serveur DHCP.

Figure XV-5 : Déclaration du client DHCP dans un ordinateur avec OS Microsoft.

44
XVII -XVI - Routage
Le terme routage désigne la transmission de datagramme à partir d'un nœud d’un réseau vers un autre nœud
situé sur le même réseau ou sur un réseau différent. Ce terme désigne aussi le cheminement qui est établi
pour transmettre un datagramme IP de son origine vers son point de destination en utilisant les adresses IP
contenues dans le datagramme. Un routeur est une machine qui possède au minimum 2 interfaces différentes
connectées sur des réseaux différents.
XVII-A- XVI-A- Table de routage
Le fonctionnement du routage nécessite la présence de tables de routage dans les routeurs pour déterminer
le chemin à emprunter pour envoyer un datagramme IP d'une machine à une autre à travers l'internet.
La table de routage contient les informations suivantes :
 l'adresse IP de destination. Cette adresse peut être une adresse machine ou une adresse réseau
suivant la valeur d'un flag H faisant lui-même partie de la table.
 l'adresse IP du routeur suivant (next hop router) ou l'adresse du réseau qui lui est directement
connecté s'il n'y a plus d'autres réseaux.
 des flags. (opion)
 le nom de l'interface réseau à laquelle il faut envoyer le datagramme pour qu'il soit transmis.
La constitution de cette table est réalisée :
 une seule fois par constitution d'un fichier ou par lancement au démarrage d'une commande
particulière (route sous Unix) à l'aide de protocole de routage. On parle alors de routage statique.
 avec une remise à jour permanente réalisée par des protocoles spécialisés IGP comme RIP34,
HELLO, OSPF35 ou EGP comme BGP36. On parle alors de routage dynamique.
Les protocoles de type IGP (Interior Gateway Protocol) sont utilisés entre routeurs d'un même internet, alors
que les protocoles de type EGP (Exterior Gateway Protocol) sont utilisés pour des routeurs d'internets
différents.
Destination Gateway Flags RefCnt Use Interface
125.0.25.36 125.0.1.220 UGH x xxxxxx eth0
125.0.25.75 125.0.1.220 UGH x xxxx eth0
127.0.0.1 127.0.0.1 UH x xxxx lo0
125.0.1.10 125.0.1.12 U x xxx eth0
default 125.0.1.220 UG x xxxx eth0
126.0.0.0 125.0.1.220 UG x xxxx eth0
Figure XVI-1 : Exemple de table de routage de Soleil 125.0.1.12 obtenue avec la commande "netstat".
 la première colonne contient les adresses des machines reconnues par les protocoles de routage. 127.0.0.0
est l'adresse de test de l'ordinateur SOLEIL. L'adresse "default" est l'adresse par défaut du routeur connecté
au réseau 125, permettant la connexion aux autres réseaux.
 la seconde colonne comporte les adresses des routeurs à emprunter.
 la troisième colonne comporte des flags. U (Up) indique que la route est en service. G (Gateway) indique
que la route passe par un routeur. H indique que l'adresse de la première colonne est une adresse machine
complète.
 Refcnt est le compteur de connexions utilisant la route et Use le nombre d'octets transportés
 Interface indique le nom de l'interface machine utilisée sur SOLEIL.
XVII-B- XVI-B- Routeur IP
Le routeur IP effectue les traitements suivants :
 Recherche dans la table de routage de l'adresse de destination complète de la machine. Si elle est trouvée,
le datagramme lui est expédiée directement ou à travers un autre routeur. Dans le cas où cette adresse n'est
pas trouvée, il passe à la phase suivante.
 Recherche de l'adresse du réseau correspondant à l'adresse de destination. Si elle est trouvée, le
datagramme est expédié. Sinon, le routeur passe à la phase suivante.
 Recherche d'une adresse de routage par défaut qui doit correspondre à l'adresse d'un routeur connecté au
réseau. Si aucune adresse n'est trouvée, un message est délivré.

34 RIP = Routing Information Protocol


35 OSPF = Open Shortest Path First Protocol
36 BGP = Border Gateway Protocol

45
XVII-C- XVI-C- Direct
Le routage direct est la transmission d’un datagramme d’une station à une autre à l’intérieur d’un même
réseau.

Jupiter Apollon
00 80 45 56 96 23 00 80 45 3F DA EE
126.0.25.36 126.0.25.75

En-tête En-tête Data


Ethernet IP

126.0.25.75
00 80 45 3F DA EE

Figure XVI-2 : Routage direct ; Exemple.


Lorsque la couche IP reçoit les données à transmettre, elle cherche dans la table de routage si la station de
destination est sur le même réseau ou si le datagramme doit transiter par un routeur. Dans l'exemple, la
machine destination étant sur le même réseau, le datagramme est passé à la couche liaison qui trouve dans
le cache ARP l'adresse physique de destination et l'incorpore dans l'en-tête Ethernet.
XVII-D- XVI-D- Indirect
Le routage indirect fait apparaître la notion de routeur. Quand un datagramme est envoyé d’un réseau vers
un autre réseau, les parties “réseau” des adresses IP Source (125) et Destination (126) sont différentes. Dans
ce cas, la station émettrice envoie le paquet au routeur qui relie les 2 réseaux en utilisant l’adresse physique
de ce dernier. Le routeur utilise l’adresse IP pour reconnaître le réseau et la station auxquels il doit envoyer
ce paquet. Chaque routeur possède pour chacun des réseaux sur lequel il est connecté, une cache ARP entre
les adresses IP et les adresses Physiques.
Réseau 193.252.36
193.252.36.1.
E1 00 503623 45 AF BD Table de routage du routeur
@IP Rés dest Interface Apollon
125.0.0.0 E0 En-tête En-tête
ROUTEUR Ethernet IP
Data
126.0.0.0 E1
00 50 23 45 AF BD 193.252.36.0 E1 126.0.25.75
E0 00 80 45 3F DA EE
126.0.25.36 00 80 45 3F DA EE 126.0.25.75
00 80 45 AB 46 FA
E1 126.0.25.223
Réseau 126
Table de routage Venus
@IP Rés dest Interface
En-tête En-tête
Data Vénus 125.0.0.0 E0
Ethernet IP
126.0.0.0 E1
126.0.25.75 193.252.36.0 E1
00 80 45 65 96 23 E0 125.0.1.220 Réseau 125
00 80 45 56 96 23

Soleil Uranus
00 80 45 FD 0A AA 00 80 45 3F BF DA
125.0.1.12 125.0.1.10
Figure XVI-3 : Routage sur un internet.
Le routeur est la machine Vénus. Il comporte 2 cartes réseau, donc 2 adresses MAC et 2 adresses IP
comportant des numéros de réseaux différents. Supposons que la machine Soleil veuille envoyer un
datagramme IP vers la machine Apollon. La couche IP recherche l'adresse IP de destination dans la table de
routage et déterminer le routeur auquel il faut transmettre le paquet. Le processus suivant est utilisé (comme
page précédente) :
-1- Recherche de l'adresse IP destination complète, si elle existe dans la table, pour déterminer
l'adresse du prochain routeur sur le chemin emprunté pour atteindre la destination.
-2- Si l'adresse complète n'est pas trouvée, la couche IP essaye d'utiliser l'adresse réseau destination
(126) et le routeur correspondant.
-3- Si l'adresse réseau destination n'est pas non plus trouvée dans la table, IP utilise l'adresse du
routeur par défaut (125.0.1.220).
 En utilisant le contenu du cache ARP présent dans Soleil, la couche IP envoie le datagramme dans une
trame Ethernet avec comme adresse destination MAC celle du routeur Vénus connectée au réseau 125
(00 80 45 56 96 23). L'adresse de destination IP est celle d’Apollon. Dans le routeur, IP analyse l'adresse
de destination IP. Après consultation des tables de routage et du cache ARP, une trame Ethernet avec
l'adresse MAC d'Apollon (00 80 45 3F DA EE) est envoyée sur le réseau 126 avec comme adresse de
destination IP 126.0.25.75.

46
XVIII -XVII - Protocoles de routage
Pour assurer le routage dynamique et mettre à jour automatiquement les tables de routage, IP utilise 2 grands
types de protocoles : les protocoles de passerelles intérieurs (IGP = Interior Gateway Protocol) et les
protocoles de passerelles extérieurs (EGP = Exterior Gateway Protocol). Les IGP sont utilisés à l'intérieur des
inter-réseaux ayant une administration commune appelée systèmes autonomes. Les protocoles de types
EGP sont utilisés entre les systèmes autonomes. Le mot Gateway peut être traduit par passerelle ou routeur.

Système Protocole de Système


autonome type EGP autonome
utilisant des utilisant des
protocoles de protocoles de
type IGP type IGP
Figure XVII-1 : Protocoles IGP et EGP.

XVIII-A- XVII-A- Protocoles de passerelles intérieurs de type IGP


Les protocoles de type IGP sont au nombre de 2 :
 le protocole RIP = Routing Information Protocol
 et un protocole plus récent le protocole OSPF = Open Shortest Path First Protocol.
XVIII- A- 1-XVII- A- 1- RIP
RIP (RFC 1058 de 1988) utilise des requêtes et des réponses pour échanger avec les routeurs voisins des
chemins pour compléter ou mettre à jour les tables de routage. C'est un protocole du type "à vecteurs de
distance", c'est-à-dire qu'il établit les chemins en tenant compte du nom minimum de routeurs à traverser. Un
champ dans ce message RIP, appelé métrique, indique le nombre de sauts (routeurs) qu'il faut faire pour
atteindre la machine de destination. La valeur maximale est de 15. RIP 2 (RFC 1388 de 1993) est une version
plus récente et améliorée de RIP.
XVIII- A- 2-XVII- A- 2- OSPF
OSPF (RFC 1247 de 1991) est un autre protocole utilisé dans les systèmes autonomes, mais qui n'utilise pas
la notion de compteurs de sauts. C'est un protocole du type "à état de liaison", c'est-à-dire que les chemins
sont établis en tenant compte du coût minimum pour les établir. Le coût est calculé en fonction de plusieurs
paramètres, dont le débit des lignes utilisées. Ainsi une ligne WAN à un coût supérieur à un réseau LAN.
Chaque chemin est entré dans la table de routage avec son coût. Le routeur sélectionne le chemin qui possède
le coût le moins élevé.
XVIII-B- XVII-B- Protocoles de passerelles extérieurs de type EGP
IP comporte 2 protocoles de passerelle extérieurs : le protocole EGP (Exterior Gateway Protocol) et le
protocole BGP ( Border Gateway Protocol), plus récent qui devrait remplacer le premier.

47
XIX -XVIII - Protocole de gestion des erreurs ICMP
ICMP (Internet Control Message Protocol RFC 792 de 1981) est un protocole qui permet l'envoi des messages
d'erreur.
Message ICMP
Type Code Somme de
En-tête En-tête 8 bits 8 bits contrôle
Contenu du message
Ethernet IP

Figure XVIII-1 : Format du message ICMP.


Le champ type indique le type de message contenu dans le paquet. Dans chaque type, il peut exister un sous-
type indiqué par le contenu du champ code. Par exemple, le type 3 indique que la destination est inaccessible.
Le code 0 précise qu'il s'agit d'un réseau inaccessible. Les combinaisons type + code indiquent s'il s'agit d'une
requête ou d'une réponse.
Le champ somme de contrôle est une Checksum.
Les messages ICMP sont utilisés par exemple par l'application Ping pour tester les liaisons. Ils sont générés
aussi pour obtenir un masque de sous-réseau, pour obtenir l'heure courante sur une autre machine, pour
signaler des ports, des machines ou des réseaux inaccessibles et d'une manière plus générale pour prévenir
de toute erreur survenant sur le réseau.

XX -XIX - Protocoles de lignes séries


Le protocole IP est prévu pour fonctionner sur des réseaux LAN. Dans le cas de liaisons séries, 2 protocoles
en capsulant les paquets IP sont utilisés : SLIP et plus récemment PPP.
XX-A- XIX-A- SLIP
SLIP (Serial Line Internet Protocol RFC 1055 de 1988) permet l'encapsulation de datagrammes IP sur des
liaisons séries. Il n'assure aucun adressage, ni séquencement, ni détection ou correction d'erreur. Il permet le
transport d'un point à un autre sur une ligne série de paquet IP encadrés de délimiteurs. Il est très utilisé pour
les liaisons entre les particuliers et le réseau Internet par RTC et modems.

0xC0 Paquet IP 0xC0

Figure XIX-1 : Format d'une trame SLIP.


SLIP est un protocole orienté caractères, c'est-à-dire que les contrôleurs de communication recherchent des
caractères de contrôle (comme 0xC0) dans les données transmises. Si le code C0 du délimiteur existe à
l'intérieur du paquet IP, il pourrait être confondu avec le caractère de fin de trame SLIP. Il est donc remplacé
par 2 octets de valeur 0xDB et 0xDC. Ces 2 octets sont remplacés par la valeur 0xC0 à la réception de la
trame.
Il existe une variante de SLIP qui est CSLIP. Cette autre version compresse une partie de la trame SLIP et
permet d'améliorer le débit apparent sur la liaison série.
XX-B- XIX-B- PPP
Protocole PPP (Point To Point Protocol RFC 1331 DE 1992)
Ce protocole plus évolué que SLIP est en passe de le remplacer. Il utilise une variante d'HDLC pour assurer
une liaison point à point fiable. Pour assurer la détection et la correction d'erreur, un champ FCS est présent
dans la trame et des procédures de retransmission sont prévues.

Adresse Contrôle Protocole


0x7E
0xFF 0x03 0x0000 Paquet IP FCS 0x7E

Figure XIX-2 : Format d'une trame PPP.


Des protocoles peuvent être utilisés pour assurer avant transmission des négociations entre les couches des
stations d'extrémité. Un ensemble de protocoles est utilisé à cet usage et porte le nom de NCP (Network
Control Protocol). Le code du protocole utilisé à un moment de la négociation figure dans le champ "Protocole"
de la trame PPP. Les en-têtes PPP peuvent être compressés ainsi que les en-têtes TCP/IP (Méthode Van
Jacobson) en utilisant le protocole de négociation IPCP (Internet Protocol Control Protocol). Les champs
"Adresse" et "Contrôle" étant inutiles la liaison établie, le format de la trame après compression devient :
48
Protocole
0x7E
0x0000 Paquet IP FCS 0x7E

Figure XIX-3 : Format d'une trame PPP avec compression des en-têtes.
Le protocole PPP est très utilisé par les logiciels permettant la connexion à des serveurs Internet au moyen
de liaisons séries composées de modems et de lignes téléphoniques commutées.

XXI -XX - Outils de maintenance


Pour assurer la maintenance des réseaux et matériels fonctionnant sous TCP/IP, il existe un certain nombre
d'outils logiciels. Ces outils existent pour tous les systèmes d'exploitation UNIX, NetWare et Microsoft. La
syntaxe utilisée ci-après est celui de l'outil Microsoft.
XXI-A- XX-A- Ping
C'est l'outil de maintenance IP de base. Il envoie un message ICMP dans un paquet IP. Ce message doit être
retourné par le nœud dont l'adresse est indiquée derrière la commande. Des paramètres permettent de
modifier la taille des paquets envoyés, leur nombre, le délai les séparant. Si la trame envoyée n'est pas
retournée dans un temps imparti, il y a time out et affichage d'un message d'erreur.
 En tapant Ping 127.0.0.1, la carte réseau n'est pas testée, les différentes couches de la pile IP le sont.
 En tapant Ping, suivi de l'adresse IP de l'ordinateur sur lequel est exécuté le test, on teste la pile IP et
la carte réseau qui est en mode bouclage.
 En tapant Ping, suivi d'une adresse IP d'un nœud du réseau existant et fonctionnel, on doit obtenir
des messages qui affichent le temps mis pour exécuter l'aller-retour entre l'ordinateur local et le
distant. Un pourcentage d'erreur est affiché éventuellement.

C:\>ping -n 10 -l 500 126.0.0.1

Pinging 126.0.0.1 avec 500 octets de données :

Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127


Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127

Figure XX-1 : Exemple de commande Ping.

XXI-B- XX-B- Tracert


Cet outil est connu sous le nom de Trace route sous Unix. Il permet de suivre le chemin emprunté sur un
internet pour atteindre un nœud distant. Le logiciel affiche plusieurs durées qui ont été nécessaires pour que
les paquets atteignent un nœud déterminé. La ligne se termine par le nom DNS du nœud.

C:\>tracert www.renault.fr

Trace l'itinéraire vers www.renault.fr [194.51.107.102]


avec un maximum de 30 tronçons :

1 150 ms 141 ms 140 ms 192.168.12.1


2 130 ms 140 ms 140 ms AUB5.rain.fr [195.101.8.1]
3 140 ms 140 ms 141 ms AUBG2-p0-2.rain.fr [194.250.89.133]
4 140 ms 141 ms 140 ms ARC5-POS-6-0-0.rain.fr [194.51.221.78]
5 140 ms 141 ms 140 ms Sgip2.rain.fr [195.101.10.22]
6 141 ms 150 ms 140 ms styx.sgip.fr [194.206.15.194]
49
7 160 ms 150 ms 150 ms www.renault.fr [194.51.107.102]

Routage terminé.

Figure XX-2 : Tracert sur www.renault.fr.

50
Des logiciels graphiques reprennent cet outil pour tracer une carte du chemin emprunté pour atteindre le nœud
cible.

Figure XX-3 : Utilisation de Tracert dans le logiciel graphique Visualroute.

XXI-C- XX-C- Ipconfig


Sos NT cette commande avec l'option /all affiche la configuration réseau et TCP/IP de l'ordinateur.

C:\>ipconfig /all
Configuration IP de Windows NT
Nom d'hôte . . . . . . . . . . . . : al_sta
Serveurs DNS . . . . . . . . . . . :
Type de nœud. . . . . . . . . . . : Hybride
Id d'étendue NetBIOS . . . . . . . :
Routage IP activé. . . . . . . . . : Oui
WINS Proxy activé. . . . . . . . . : Non
Résolution NetBIOS utilisant DNS . : Oui

Ethernet carte El90x1 :


Description. . . . . . . . . . . . : 3Com 3C90x Ethernet Adapter
Adresse physique . . . . . . . . . : 00-A0-24-A6-D1-22
DHCP activé. . . . . . . . . . . . : Non
Adresse IP . . . . . . . . . . . . : 125.0.0.1
Masque de sous-réseau. . . . . . . : 255.0.0.0
Passerelle par défaut. . . . . . . : 125.0.0.2
Serveur WINS primaire. . . . . . . : 126.0.0.1

Figure XX-4 : Résultat de la commande IPconfig sous Windows NT.

Cette commande est remplacée par utilitaire WINIPCFG sous Windows 95.

51
XXI-D- XX-D- Netstat
Netstat.exe affiche de nombreuses statistiques sur les protocoles et les connexions réseau. Cette commande
possède de nombreux paramètres qui donnent des résultats très différents.

C:\>netstat –e
Statistiques interfaces
Reçu Envoyé
Octets 13542338 544425
Paquets unicast 9774 6648
Paquets non-unicast 70 70
Rejets 0 0
Erreurs 0 0
Protocoles inconnus 0

C:\>netstat -n
Connexions actives
Proto Adresse locale Adresse extérieure Etat
TCP 125.0.0.1:139 126.0.0.1:1042 ETABLIE
TCP 125.0.0.1:1025 126.0.0.1:139 ETABLIE
TCP 125.0.0.1:1031 126.0.0.1:139 ETABLIE
TCP 127.0.0.1:1026 127.0.0.1:1030 ETABLIE
TCP 127.0.0.1:1030 127.0.0.1:1026 ETABLIE
Figure XX-5 : Résultats de la commande Netstat avec 2 options différentes

XXI-E- XX-E- Arp


La commande arp -a permet d'obtenir le contenu du cache ARP.

C:\>arp -a

Interface : 125.0.0.1 on Interface 2


Adresse Internet Adresse physique Type
125.0.0.2 00-10-7b-3c-3b-70 dynamique
Figure XX-6 : Résultats de la commande arp -a.
____________________________
Bibiographie
Nom de l'ouvrage Auteur Editeur Commentaires
TCP/IP Karnjit S. S&SM Très bon ouvrage sur la théorie et les
Le Macmillan 199x Siyan ISBN : 2-7440-0391-3 concepts de TCP/IP. Rappels sur les
Web : http://www.ssm.fr
réseaux. Une référence. Questions de
révisions à chaque chapitre.
TCP/IP Règles et W. R. Addison- Wesley France Bon ouvrage plus ancien que le
protocoles Kernighan ISMN 2-87908-82-7 précédent. Questions de révision à
chaque chapitre.
TCP/IP Rob Campus Press Cet ouvrage est destiné aux personnes
Préparation au MCSE Scrimger ISBN : 2-7440-0598-3 voulant se présentant au MCSE. Pas de
Examen 70-059 & Kelli Web : théorie sur TCP/IP, uniquement la mise en
Adam http://www.campuspress.fr œuvre de TCP/IP sur les produits
Microsoft et NT en particulier.
TCP/IP Craig Collection L'expert de Pas beaucoup de théorie, mais parle de la
Zacker Sybex mise en oeuvre de TCP/IP sur les produits
ISBN : 2-7361-3102-9 Microsoft et Novell.
Web : http://www.sybex.fr

TCP / IP

52
XXII -XXI - TCP/IP et les réseaux
XXII-A- XXI-A- Pourquoi un protocole ?
Un protocole de communication est un ensemble de règles permettant à plusieurs ordinateurs,
éventuellement sur des réseaux physiques différents et utilisant des OS différents, de dialoguer entre eux.
Ainsi grâce à TCP/IP, des ordinateurs sous UNIX et sur un réseau Ethernet peuvent dialoguer avec des
ordinateurs sous NT sur un réseau Token-Ring.
TCP/IP peut fonctionner :
- sur des réseaux locaux physiques de type Ethernet, Fast Ethernet, Token-Ring, FDDI
- sur des réseaux de type WAN comme ATM, LAPB ou des liaisons par RTC ou LS.
XXII-B- XXI-B- Rappel du modèle OSI de l’ISO
XXII- B- 1-XXI- B- 1- Les couches
Le modèle OSI37 de l’ISO38 permet de définir un modèle pour des ordinateurs communicants. Tout ordinateur
conforme à ce modèle peut dialoguer avec ces homologues en utilisant le même "langage" et les mêmes
méthodes de communication.
 Le modèle est composé de 7 couches.
 Chaque couche assure une fonction bien déterminée.
 Chaque couche utilise les services de la couche inférieure. Par exemple la couche Réseau utilise les
services de la couche Liaison qui utilise elle-même les services de la couche Physique.
 Chaque couche possède un point d'entrée pour les services offerts, nommé SAP =Service Access Point.
Ainsi la couche Session possède un point d'accès SSAP et la couche Transport un point d'accès TSAP.
 Chaque couche d'un ordinateur dialogue avec la couche homologue d'un autre ordinateur en utilisant un
protocole spécifique à la couche (Données de protocole = PDU =Protocol Data Unit).

Ordinateur Ordinateur
A Data Data B

Application
Application A A Application
Protocol Data Unit
ASAP ASAP
P Presentation P
Présentation Protocol Data Unit Présentation
SSAP SSAP
Session
Session S Protocol Data Unit S Session
TSAP TSAP
Transport
Transport T Protocol Data Unit T Transport
NSAP NSAP
Network
Réseau N Protocol Data Unit N Réseau
LSAP Data Link LSAP
Liaison L Protocol L Liaison
Data Unit
PSAP PSAP
Physique Bits Physique

Média
Figure XXI-1 : Modèle OSI de l'ISO.

37 OSI = Open System Interconnection = Interconnexion des systèmes ouverts.


38 ISO = International Organization of Standards.
53
XXII- B- 2-XXI- B- 2- Rôle des couches

La couche Application fournit les services de communication aux applications


utilisateurs. Par exemple les services de transferts de fichiers, gestion de message
Application pour les applications de messagerie, accès à des bases de données
ASAP
La couche Présentation gère la représentation des données. La couche
Présentation utilise un langage commun compréhensible par tous les nœuds du
Présentation réseau.
La couche Session gère les connexions entre les applications homologues sur les
SSAP
machines en réseau. Elle assure l’initialisation et la clôture des sessions ainsi que
Session les reprises en cas d’incident.
TSAP
La couche Transport garantit que les données reçues sont strictement conformes
à celles qui ont été émises. Cette couche assure le multiplexage sur une seule
Transport liaison physique et la remise des données à l’application par un numéro de port.
NSAP La couche Réseau assure le cheminement des données sous forme de paquets
dans l’internet. Ceci est réalisé par un système d’adressage spécifique à cette
Réseau couche et utilisé par les routeurs de l’internet.
LSAP
La couche Liaison prend en charge les données de la couche Physique. Elle gère
des trames (Ethernet, Token-Ring, PPP,…), les adresses du réseau Physique, la
Liaison méthode d’accès au réseau physique et contrôle la validité des trames transmises.
La couche Physique transmet et reçoit des bits sur le média sous forme d’un signal
PSAP
électrique. Elle assure l’encodage et désencodage de ces bits.
Physique

Figure XXI-2 : Le rôle des couches du modèle OSI de l'ISO.


XXII- B- 3-XXI- B- 3- Les sous couches de l’IEEE
Le monde des réseaux locaux possède un organisme de standardisation qui lui est propre. Il s’agit de l’IEEE39.
Cet organisme gère les couches qui sont exclusives aux réseaux locaux. L’IEEE divise en deux la couche
liaison de données du modèle OSI de l’ISO. Ces deux sous-couches sont :
 La couche MAC -- Media Access Control
Cette couche concerne les méthodes d'accès au support du réseau local. Ainsi Ethernet correspond
à la norme IEEE 802.3, alors que Token-Ring est concernée par la norme IEEE 802.5
 La couche LLC -- Logical Link Control
Tous les types de réseaux définis au niveau de la sous-couche MAC possèdent une interface
commune avec la couche Réseau, c’est-à-dire avec les protocoles utilisés sur le réseau. Ceci permet
d’utiliser n’importe quel protocole avec n’importe quel type de réseau physique. Cette couche est
responsable de la transmission des données entre les nœuds du réseau. Elle fournit des services de
datagramme en mode connecté ou non connecté ou des services de circuits virtuels.

o Dans le mode datagramme, les paquets générés par la couche contiennent une adresse source et
une adresse destination. Aucun chemin n'est établi par avance et les paquets peuvent passer par
des chemins différents. Aucune vérification n’est assurée tant qu’au séquencement des paquets à leur
arrivée.
o Dans le mode circuit virtuel, une connexion est établie entre les nœuds communicants ainsi qu’un
contrôle du séquencement et de la validité des trames transmises. Un contrôle de flux est aussi
assuré.
La couche LLC peut assurer trois types de services aux couches supérieures:
 Type 1 : Service de datagramme sans accusé de réception en mode point à point, multipoint
ou diffusion.
 Type 2 : Services de circuits virtuels. Assure les services de séquencement, de contrôle de
flux et de correction d’erreur.
 Type 3 : Service de datagramme avec accusé de réception.

39 IEEE Institute of Electrical and Electronic Engineers.


54
ISO IEEE

Application
Protocoles
des
Présentation
couches
supé-
rieures
Session

Transport
IEEE 802.2
Type 1 : Mode datagramme sans accusé de réception.
LLC Type 2 : Mode avec circuit virtuel.
Réseau LLC Type 3 : Mode datagramme avec accusé de réception.
MAC MAC MAC
MAC CSMA CD Token Bus Token Ring
Liaison MAC
802.3

802.5
802.4
UTP Coaxial Paires
Couche 10 ou 100 Mbps 1 5 et 10 Mbps torsadées
Physique Physique Physique Coaxial Fibre optique 4 ou 16 Mbps
Fibre Optique 5 10 20 Mbps

Figure XXI-3 : Sous-couches IEEE par rapport aux couches ISO

XXII-C- XXI-C- TCP/IP et le modèle DoD


TCP/IP est antérieur au modèle de l’ISO. Il est conforme au modèle DoD40 . Ce modèle comporte 4 couches.

Data Data
Messages
Application A A Application
Segments
Hôte à hôte T T Hôte à hôte
Datagramme
Internet N N Internet
Trame
L L
Accès réseau Bits
Accès réseau

Figure XXI-4 : Modèle DoD.

ISO DoD

Application
Présentation Application
Session

Transport Hôte à hôte


Réseau Internet
Liaison
Accès réseau
Physique

Figure XXI-5 : Comparaison modèle OSI et modèle DoD.

40 DoD = Department of Defence.


55
XXIII -XXII - Historique de TCP/IP
La nécessité de relier entre eux des réseaux de types différents, a conduit un organisme de la Défense
américaine DARPA411, à la fin des années 60, à créer un protocole ou plus exactement une suite de
protocoles dénommée TCP/IP42. Les protocoles TCP et IP définissent un ensemble de formats et de règles
pour l’émission et la réception de données indépendamment des types de réseau physique et d’ordinateurs
utilisés. Les protocoles TCP/IP fortement implantés dans l’environnement UNIX, bien que non conformes au
modèle de l’OSI, sont devenus des standards de fait.
Le réseau qui utilise TCP/IP est un réseau à commutation de paquets. Ce type de réseau transmet des
informations sous forme de petits groupes d’octets appelés Paquets. Si un fichier doit être transmis, il est
d’abord fragmenté en paquets à l’émission puis, le fichier est réassemblé en regroupant les paquets à la
réception.

XXIV -XXIII - Inter-réseaux et Routage IP


119.0.0.36 Réseau
Réseau
36 Ethernet 2
Ethernet 1 119.0.0.0
125.0.0.25 120.0.0.0
25
119.0.0.51
125.0.0.66 120.0.0.2
Réseau Routeur
Token Ring 3
115.0.0.168
125.0.0.0
Routeur
1 Routeur Réseau
2 WAN
120.0.0.99 115.0.0.154

PPP

115.0.0.0

Figure XXIII-1 : Un inter-réseau ou internet IP.

Dans la figure ci-dessus, imaginons que le nœud 25 du réseau Token-Ring désire envoyer des données au
nœud 36 du réseau Ethernet 2. Le type de trame, la méthode d’accès, le système d’adressage et le débit du
réseau Token-Ring sont incompatibles avec ceux du réseau Ethernet. Les données ne peuvent être
transmises en l’état. Elles doivent, grâce aux routeurs du réseau, changer de type de trame à chaque nouveau
type de réseau.
Un système d’adressage, indépendant du type de réseau physique, doit être utilisé pour désigner de façon
unique chaque nœud sur l’inter-réseau. Le protocole IP possède ce type d’adressage composé d’une adresse
réseau (NetID= Network ID ) et d’une adresse nœud (HostID = Host ID) sur chaque réseau.
Par exemple, 125, 120, 115 et 119 désignent respectivement les adresses réseaux des réseaux Token-Ring,
Ethernet 2, la liaison asynchrone en PPP43 et Ethernet 1.
L’adresse 125.0.0.25 désigne l’adresse du nœud 25 sur le réseau 125. L’adresse 119.0.0.36 désigne le nœud
36 sur le réseau 119 Ethernet 2.
Chaque routeur est équipé d’au moins 2 interfaces réseaux. Des tables de routage internes à chaque routeur
permettent de connaître le chemin à emprunter pour transporter des données d’un nœud à un autre. Lorsque
le paquet IP arrive dans une trame Token-Ring dans le routeur 1 à destination du nœud 36 du réseau Ethernet
2, celui-ci lit l’adresse IP de destination, et repositionne le paquet IP dans une trame Ethernet. Lorsque la
trame parvient au routeur 2, le paquet est positionné dans des trames PPP. Puis lorsqu'il arrive au routeur 3,
il est repositionné dans une trame Ethernet. L’adresse IP de destination n’a pas changé pendant tout le
parcours, par contre, les adresses physiques (MAC) ont été modifiées sur chaque réseau.

41 DARPA = Defence Advanced Research Projects Agency


42 TCP = Transmission Control Protocol IP= Internet Protocol
43 PPP = Point to Point Protocol

56
XXV -XXIV - Couches
XXV-A- XXIV-A- TCP/IP et les modèles ISO et DoD
La suite des protocoles appelée aussi pile de protocoles44 IP ne correspond pas au modèle OSI de l’ISO,
celui-ci a été normalisé en 1979, il est donc postérieur à la création de TCP/IP.
La pile de protocoles IP correspond au modèle DoD (Department of Defence). Le dessin suivant montre
l’équivalence entre ces couches et les différents protocoles de la pile. Les protocoles correspondant aux
couches 6 et 7 ISO sont des applications de transmissions qui s'appuient sur TCP/IP. Les couches 1 et 2
dépendent du type de réseau utilisé.
Tous les standards (normes) de la communauté Internet sont publiés sous forme de RFC45. Chacune est
identifiée par un numéro et décrit le fonctionnement d'un protocole de la pile TCP/IP ou d'un matériel comme
par exemple les routeurs IP.

OSI Pile de protocoles TCP/IP DoD


Applica
tion Telnet BOOTP
HTTP & FTP SMTP DNS SNMP NFS TFTP DHCP Application
Présenta-
tion Rlogin
80 23 21 25 53 161 69
Session Transport User Hôte à
Control Datagram Hôte
Transport
TCP UDP
Protocol Protocol

ICMP Internet IGMP Internet


Réseau
ARP
IP Protocol
RARP
X25-3
Paquets
Accès
Liaison SLIP / PPP
802.2 X25-2
Ligne
réseau
Trames
asynchrone
téléphonique
Physique 802.3 802.4 802.5 X25-1 ou RNIS
Autres Bits
Ethernet Bus à Jeton Token Ring

Figure XXIV-1 : TCP /IP et les couches OSI.


Protocoles réseau
IP Internet Protocol Fournit les services de communication d'inter-réseau aux clients de la couche
4.
Address Resolution
ARP Protocole permettant de faire correspondre une adresse IP à une adresse
Protocol Physique.
RARP Reverse ARP Protocole inverse faisant correspondre une adresse Physique à une adresse
IP.
ICMP Internet Control Contrôle la transmission des messages d’erreur et des messages entre
Message Protocol hôtes, passerelles ou routeurs.
IGMP Internet Group Permet d'envoyer des datagrammes à un groupe de machines grâce à un
Management Protocol adressage multicast.
Figure XXIV-2 : Protocoles réseau.

44 Protocol Stack
45 RFC = Request For Comments
57
Protocoles transport

TCP Transmission Control Protocole orienté connexion, fiable et à flot de données.


Protocol
UDP User Datagram Protocole sans connexion, orienté transaction sans accusé de réception,
Protocol parallèle à TCP.
Figure XXIV-3 : Protocoles de transport.

Applications au-dessus de TCP/IP

HTTP HyperText Transfert Service de distribution de pages en hypertexte sur des serveurs WEB.
Protocol
Telnet Telecommunications Fournit un service d’émulation de Terminal.
Network
Rlogin Remote Login Commande Unix permettant la connexion des terminaux à d'autres serveurs
Unix du réseau.
FTP File Transfert Protocol Permet l'échange de fichiers complets entre ordinateurs.
SMTP Simple Mail Transfer Offre une fonction importante de messages de texte entre hôtes.
Protocol
DNS Domain Name Service Propose des services de répertoires. DNS est un service complexe qui
permet d'associer un nom et une adresse.
SNMP Simple Network Protocole de management de réseau.
Management Protocol
NFS Network File System Système de fichiers en réseau.
TFTP Trivial File Transfert Protocole simplifié de transfert de fichiers utilisé principalement par les
Protocol clients sans disque.
BOOTP Bootstrap Protocol Protocoles fournissant une adresse IP de façon dynamique au démarrage
Dynamic Host des stations.
DHCP Configuration Protocol
Figure XXIV-4 : Couches 6 et 7. Applications utilisées avec TCP / IP.

58
XXVI -XXV - Fonctionnement de la pile de protocoles IP
Hôte source Hôte destination
Application Messages ou flot (stream) Application

Transport Segments UDP ou TCP Transport

internet Datagrammes ou Paquets IP internet

Accès Accès
Réseau Réseau
Trames du Réseau Physique

Réseau Physique

Figure XXV-1 : Fonctionnement de TCP/IP.


Les applications développées pour TCP/IP utilisent généralement plusieurs des protocoles de la suite. Elles
communiquent avec la couche transport, elle-même communiquant avec les couches inférieures, pour aboutir
au support physique qu’est le réseau. A destination, les couches inférieures repassent les informations aux
couches supérieures pour aboutir à l’application de l’hôte destination.
Chaque couche de la pile remplit une fonction bien spécifique. Une couche quelconque rend des Services à
la couche qui lui est immédiatement supérieure. Chaque couche de même niveau dans les ordinateurs
Source et Destination dialogue avec son homologue. Ce dialogue est décrit dans le protocole correspondant
à la couche. Par exemple IP pour la couche internet (ou réseau) et TCP pour la couche transport.
XXVI-A- XXV-A- Encapsulation
Dans l'ordinateur qui émet des données, les couches communiquent avec les couches homologues de l’autre
ordinateur. Chaque couche ajoute des informations nommées en-têtes, destinées à communiquer avec la
couche homologue située dans l'ordinateur de l'autre extrémité. Chaque nouveau paquet ainsi formé est inséré
dans un paquet de la couche inférieure. Cette opération s'appelle encapsulation.

Données utilisateur

Application
En-tête Données utilisateur
applicatif

En-tête Données applicatives


TCP TCP

Segment TCP
En-tête En-tête Données applicatives
IP
IP
TCP
Paquet IP
En-tête En-tête En-tête Données applicatives FCS Driver
Ethernet IP TCP Ethernet
14 20 20 4
Trame Ethernet
46 à 1500 octets Ethernet

Figure XXV-2 : Encapsulation.


 Les données de l'application, avec leur en-tête sont passées à la couche TCP qui rajoute le sien.
L'ensemble est appelé segment TCP.
 L'ensemble des données qu'envoie IP à la couche Ethernet est appelé datagramme IP.
 L'ensemble de bits structuré envoyé sur le réseau est une trame Ethernet.
L'ensemble des données inclus dans IP aurait pu être un datagramme UDP, si l'application utilisait ce type
de protocole plutôt que TCP.
TCP et UDP utilisent des numéros de ports sur 16 bits pour connaître l'application qui leur a passé des
données.

59
Les protocoles ARP, RARP, ICMP et IGMP attaquent directement le datagramme IP. Le champ type de cette
trame permet de savoir quel est le protocole utilisé dans le champ de données.
XXVI- A- 1-XXV- A- 1- Encapsulation IP dans les diverses trames Ethernet
Le standard réseau Ethernet d'origine a été repris et modifié par le Comité 802 de l'IEEE. Il existe donc
plusieurs définitions de types de trames Ethernet. Quel que soit le type de trame, il faut cependant que les
paquets IP puissent y être encapsulés. Dans la norme de l'IEEE la couche liaison est divisée en 2 sous-
couches :
 la couche MAC (802.3) qui correspond à la gestion de CSMA/CD et à l'interfaçage avec la couche
physique.
 la couche LLC (802.2) qui définit le contrôle de la liaison. Cette fonction est commune a tous les
types de réseaux physiques.
La trame Ethernet_802.2 définie par l'IEEE contient des champs supplémentaires par rapport à la trame
Ethernet. Ce sont les champs DSAP et SSAP (Destination et Source Service Access Point). Le champ
contrôle contient la valeur 03 en hexadécimal.
Dans la trame Ethernet_SNAP, les 3 octets du champ Org sont à 0. Le champ type contient la valeur qui est
contenue dans le champ Type de la trame Ethernet. Cette valeur représente le code du protocole utilisé dans
le champ de données de la trame Ethernet.
Encapsulation Trame Ethernet II RFC 894
Adresse Adresse type FCS
Destination Source
Données
6 6 2 46-1500 4
type
0800
Datagramme IP
2 46-1500
type Requête/réponse PAD
0806 ARP
2 28 18
type Requête/réponse PAD
8035 RARP
2 28 18
Figure XXV-3 : Encapsulation de IP dans des trames Ethernet II.

Encapsulation Trame IEEE 802.2 / 802.3 RFC 1042

802.3 MAC 802.2 LLC 802.2 SNAP

Adresse Adresse Longueur DSAP SSAP Ctrl Org code type


Destination Source AA AA 03 00
Données FCS

6 6 2 1 1 1 3 2 33-1492 4

type
0800 Datagramme IP
2 38-1492
type Requête/réponse PAD
0806 ARP
2 28 10
type Requête/réponse PAD
8035 RARP
2 28 10

Figure XXV-4 : : Encapsulation de IP dans des trames Ethernet 802.2.

60
XXVI-B- XXV-B- Multiplexage et Démultiplexage
XXVI- B- 1-XXV- B- 1- Multiplexage
Le champ "Type" dans une trame Ethernet permet d'indiquer le code des différents types de protocoles (IP,
ARP et RARP). De même au niveau IP, le champ "Type" de l’en-tête IP, permet de transporter TCP ou UDP.
Enfin au niveau transport, les numéros de ports indiquent les applications concernées. Cette propriété de
mélanger les protocoles est appelée multiplexage

HTTP FTP Telnet SNMP TFTP HTTP FTP Telnet SNMP TFTP

TCP UDP TCP UDP

IP IP
Ordinateur Ordinateur
A ETHERNET B ETHERNET

Réseaux

Figure XXV-5 : Multiplexage.


XXVI- B- 2-XXV- B- 2- Démultiplexage
A l'inverse lorsqu'une machine reçoit une trame Ethernet, les données applicatives doivent remonter jusqu'aux
couches supérieures en traversant les couches basses. A chaque niveau, l'en-tête correspondant à la couche
est interprété pour savoir à quel protocole ou applications les données doivent être remises. L'en-tête n'est
pas transmis à la couche supérieure.

application application application application application application

N° de ports N° de ports Le démultiplexage au


niveau des applications est
assuré grâce aux numéros
TCP UDP de ports.

Code 6 Code 17 Le démultiplexage à ce


niveau est assuré grâce au
ICMP IGMP
Code 1 Code 2 code contenu dans le champ
IP 'protocole' de l'en-tête IP.

ARP RARP
Code 0806 Code 0800 Code 8035 Le démultiplexage à ce niveau
Driver est assuré grâce au code
Ethernet contenu dans le champ 'Type'
de l'en-tête Ethernet.
Trame Ethernet

Figure XXV-6. Démultiplexage IP.


 La reconnaissance des datagrammes IP, ARP ou RARP est assurée par les codes 0800, 0806 et 8035
contenus dans le champ 'type' de la trame Ethernet.
 La reconnaissance des messages ICMP et IGMP est assurée par les codes 1 et 2 dans le champ type de
l'en-tête IP. Les valeurs 6 et 17 indiquent qu'un segment TCP ou UDP suit l'en-tête IP.
 Les numéros de ports contenus dans les en-têtes TCP et UDP permettent de connaître l'application à
laquelle il faut restituer les données.
Chaque application côté serveur utilise un numéro de port "bien connu" (well-know). Ainsi, l'application Telnet
serveur utilise en principe le port TCP 23 et FTP le port TCP 21, alors que TFTP serveur utilise le port UDP
69. Les numéros de port côté serveur sont compris entre 1 et 1023.
Les applications côté client utilisent des "ports éphémères" dont les numéros sont compris entre 1024 et
5000. La gestion de ces numéros de ports est complètement transparente pour les utilisateurs.
La liste des Ports TCP et UDP est contenue dans le fichier Services des ordinateurs travaillant sous IP.

61
XXVII -XXVI - Adresses IP
Au niveau de la couche Liaison, les nœuds du réseau communiquent avec les autres stations en utilisant des
adresses qui dépendent du type de réseau utilisé. Un nœud peut être un micro-ordinateur, un serveur de
fichier, une imprimante réseau ou n’importe quel périphérique utilisant TCP/IP. Chaque nœud possède une
adresse physique ou adresse MAC46.
Dans les réseaux Ethernet et Token-Ring, l’adresse physique est contenue dans une ROM sur chaque
interface réseau. Toutes les adresses sont différentes et comportent 6 octets. Cette adresse est déterminée
par le constructeur de l’interface selon un plan de numérotation à l'échelle mondiale.
Dans le réseau X25, l’adresse déterminée par le concessionnaire du réseau comporte au maximum 15 chiffres
décimaux.
Dans le réseau LocalTalk d'Apple, l’adresse comporte un octet pour déterminer le numéro du réseau et 2 pour
déterminer le numéro de la station.
XXVII-A- XXVI-A- Généralités
Les adresses IP au contraire sont des adresses logiques. Elles sont indépendantes du type de réseau utilisé.
Dans la version 4 de IP, elles comportent toujours 32 bits, dont une partie identifie le réseau (NetID), l’autre
le nœud sur ce réseau (HostID).
XXVII- A- 1-XXVI- A- 1- Types d'adresses
 Unicast : Adresse permettant l'adressage d'une seule machine.
 Multicast : Adresse correspondant à un groupe de machines.
 Broadcast : Adresse correspondant à toutes les machines d'un réseau.
XXVII-B- XXVI-B- Représentation des adresses IP
La représentation de cette adresse se fait dans une notation “décimale pointée” (dotted-decimal notation),
c’est-à-dire que chaque octet de l’adresse est représenté par un nombre décimal, séparé du suivant par un
point. Par exemple :

Adresse IP sur 32 bits ou 4 octets


7E 2F 00 0A Adresse en hexadécimal
0111 1110 0010 1111 0000 0000 0000 1010 Adresse en binaire

126. 047. 000. 010 Adresse en notation décimale pointée

Figure XXVI-1 : Adresses IP. Notation décimale pointée.

Parfois, la représentation se fait en Hexadécimal de la façon suivante : Øx7E.Øx2F.Øx00.Øx0A

XXVII-C- XXVI-C- Classes d’adresses


Il existe 5 classes d’adresses IP.
XXVII- C- 1-XXVI- C- 1- Classe A
Dans cette classe, l'adresse réseau est définie sur 7 bits et l'adresse hôte sur 24 bits.

7 bits 24 bits

0 Net ID Host ID

Figure XXVI-2 : Adressage IP Classe A.


XXVII- C- 2-XXVI- C- 2- Classe B
Dans cette classe, l’adresse réseau est sur 14 bits et l’adresse hôte sur 16 bits.
14 bits 16 bits

10 Net ID Host ID
46MAC = Medium Access Control
62
Figure XXVI-3 : Adressage IP Classe B.
XXVII- C- 3-XXVI- C- 3- Classe C
Dans cette classe l’adresse du réseau est codifiée sur 21 bits et l’adresse hôte sur 8 bits
21 bits 8 bits

110 Net ID Host ID

Figure XXVI-4 : Adressage IP Classe C.


Si les réseaux doivent être connectés à Internet les adresses des réseaux IP sont fournies par L'InterNIC47
ou son représentant en France, le NIC France.

Pour faciliter le routage les adresses IP de classe C correspondent à des emplacements géographiques :
Adresses Zone géographique
192.0.0 à 193.255.255 Adresses allouées avant la répartition géographique. Elles correspondent donc à
plusieurs régions.
194.0.0 à 195.255.255 Europe
198.0.0. à 199.255.255 USA
200.0.0 à 201.255.255 Amériques centrale et du Sud
202.0.0 à 203.255.255 Pacifique

XXVII- C- 4-XXVI- C- 4- Classe D


Dans cette classe l’adresse du réseau est codifiée sur 28 bits et sert à diffuser des trames vers des groupes
de stations.

28 bits

1110 Adresse Multicast

Figure XXVI-5 : Adressage IP classe D


XXVII- C- 5-XXVI- C- 5- Classe E
Cette classe est réservée à un usage futur.

27 bits

11110 Réservé

Figure XXVI-6 : Adressage IP Classe E.

XXVII- C- 6-XXVI- C- 6- Identification des classes d'adresses


Selon la valeur des bits du premier octet représentant l'adresse réseau IP, il est facile de déterminer la classe
utilisée.
Classe Gamme en notation décimale Premier octet en binaire Nb de réseaux NB de noeuds
A 0.0.0.0 à 127.255.255.255 0 0000000 et 0 1111111 126 16 777 214
B 128.0.0.0 à 191.255.255.255 10 000000 et 10 111111 16383 65534
C 192.0.0.0 à 223.255.255.255 110 00000 et 110 11111 2 097 151 254
D 224.0.0.0 à 239.255.255.255 1110 0000 et 1110 1111
E 240.0.0.0 à 247.255.255.255 11110 000 et 11110 111
Figure XXVI-7 : Gammes d'adresses IP en fonction des classes.
XXVII- C- 7-XXVI- C- 7- Adresses Privées
Pour les réseaux non connectés à l’Internet, les administrateurs décident de la classe et de l’adresse NetID.
Cependant pour des évolutions possibles, il est fortement recommandé de servir des adresses non utilisées
sur Internet. Ce sont les adresses privées suivantes en classe A, B et C :

47 InterNic = International Network Information Center.


63
Tranches d’adresses IP privées Nombre de réseaux privés
10.0.0.0 à 10.255.255.255 1 réseau de classe A
172.16.0.0 à 172.31.255.255 16 réseaux de classe B
192.168.0.0 à 192.168.255.255. 256 réseaux de classe C
Figure XXVI-8 : Adresses privées
XXVII- C- 8-XXVI- C- 8- Adresses spéciales
Les règles concernant les adresses IP prévoient un certain nombre d’adresses spéciales :
 Adresses Réseaux : Dans ces adresses, la partie réservée à l’adresse station est à 0. Par exemple,
126.0.0.0 représente l’adresse réseau et non l’adresse d’un hôte.
 Adresses Broadcast à diffusion dirigée : Dans ces adresses, la partie “adresse Station” a tous ses bits à 1.
Par exemple, 126.255.255.255 est une adresse de broadcast sur le réseau 126. Les routeurs peuvent
transmettre cette trame vers le réseau 126.
 Adresses Broadcast à diffusion limitée. Dans ces adresses tous les bits sont à 1. (255.255.255.255) à.
Cette trame est limitée au réseau de l’hôte qui l’envoie.
 Adresses pour la maintenance ou adresses “Loopback” : 127.0.0.1 (Ping sur la station pour vérifier le
fonctionnement de la pile IP locale).
 Adresses réservées : Ce sont les adresses dont le numéro de réseau n'est composé que de 0 ou de 1.

64
XXVIII -XXVII - Réseaux et sous-réseaux
Un réseau peut être divisé en sous-réseaux afin de pouvoir :
- éviter le gaspillage des adresses nœuds d’un réseau
- utiliser des supports physiques différents.
- réduire le trafic sur le réseau.
- isoler une partie du réseau en cas de défaillance d'un composant du réseau.
- augmenter la sécurité.
Chaque sous-réseau est relié à un autre par un routeur.
Exemple :

Sous-réseau 1
Routeur
Réseau
195.123.125.0 Sous-réseau 2
Internet

Sous-réseau 3

Figure XXVII-1 : Sous-réseaux.


Dans la figure ci-dessus, le routeur est connecté à Internet par un réseau de classe C 195.123.125.0. Il est
donc possible d’utiliser 256 (- 2) adresses pour les nœuds. Cependant si tous les nœuds sont sur le même
réseau, celui-ci risque d’être chargé. On répartit les nœuds sur 3 réseaux que l’on connecte à un routeur.
Chacun de ces réseaux devant avoir une adresse distincte, on crée des adresses de sous-réseaux pour
chacun d’eux.
XXVIII-A- XXVII-A- Masques de sous-réseaux
La notion de sous-réseaux était inexistante au début de IP. Elle est apparue avec la RFC 950 vers 1985.
L’adressage de sous-réseaux va se faire avec des bits normalement réservés à l’adressage des nœuds.

Net ID Host ID

Numéro de réseau Numéro de Numéro Adresse IP


sous-réseau d’hôte

Routeur

Figure XXVII-2 : Numérotation des sous-réseaux.


Pour indiquer le nombre de bits pris sur la partie HostID comme numéro de sous-réseau, on va utiliser un
masque de sous-réseaux. Ce masque indique par des bits à 1 le nombre de bits de l’adresse IP qui
correspondent à l’adresse réseau et à l’adresse sous-réseaux. Les bits à 0 du masque indiquent les bits de
l’adresse IP qui correspondent à l’HostID.

65
Net ID Host ID

Numéro de réseau Numéro de Numéro Adresse IP


sous-réseau d’hôte

Masque de
11111111 11111111 11111111 1111 0000 sous-réseau

Figure XXVII-3 : Masque de sous-réseau.


Dans l’exemple ci-dessus, l’adresse IP est une adresse de classe C. On désire créer 16 sous-réseaux. Il est
donc nécessaire d’utiliser 4 bits de la partie HostID pour indiquer le numéro de sous-réseau.
Le masque comporte 28 bits à 1, c’est à dire :
 24 bits correspondant à la partie NetID de l’adresse et 4 bits pour indiquer les bits de l’adresse IP qui
doivent être interprétés comme étant l’adresse de sous-réseaux.
 4 bits à 0, indiquent les bits de l’adresse IP qui doivent être interprétés comme des adresses de
nœuds.
Les masques de sous réseaux sont à entrer dans chaque ordinateur travaillant en IP. Les valeurs des masques
se rentrent la plupart du temps en notation décimale pointée. Pour illustrer l’exemple ci-dessus, voici comment
il conviendrait d’indiquer à une station NT, son adresse IP et son masque de sous-réseau.

124

Figure XXVII-4 : Entrées de l'adresse IP et du masque de sous-réseau.

Adresse IP décimale 195 123 125 124


Adresse IP binaire 11000011 01111011 01111101 0111 1100
ET logique
Masque en binaire 11111111 11111111 11111111 1111 0000
Masque en décimal 255 255 255 240

11000011 01111011 01111101 0111


Adresse réseau 195 123 125 1100
Adresse sous-réseau 112
Adresse nœud 12
Figure XXVII-5 : Calcul de l'adresse de sous-réseau et de l'adresse nœud.
Dans cet exemple, le masque de sous-réseau comporte 28 bits. L’adresse IP 195.123.125.124 est une
adresse de classe C.
Les 24 premiers bits du masque correspondent au NetID.
Les 4 bits suivants à 1 dans le masque indiquent qu’il faut interpréter les 4 premiers bits du dernier octet
comme une adresse de sous-réseau et non comme une adresse HostID. Les 4 bits à 0 du masque indiquent
qu’il faut interpréter les 4 derniers bits du dernier octet de l’adresse IP comme une adresse nœud.
On calcule l’adresse du sous-réseau en tenant compte du poids binaire de chaque bit. Ici, (128 x 0) + (1 x 64)
+ (1 x 32) + (1 x 16)= 112. L’adresse nœud correspond aux 4 derniers bits de l’adresse IP (12).

66
XXVIII-B- XXVII-B- Exemple en classe B

Masque--> 11111111 . 11111111 . 1111 0000 . 00000000 ID ss-réseau ID nœud


Adresses IP

129.047.192.254 10000001 . 00101111 . 1100 0000 . 11111110


129.047.193.001 10000001 . 00101111 . 1100 0001 . 00000001
129.047.192.001 10000001 . 00101111 . 1100 0000 . 00000001
129.047.128.001 10000001 . 00101111 . 1000 0000 . 00000001
129.047.129.001 10000001 . 00101111 . 1000 0001 . 00000001
129.047.128.254 10000001 . 00101111 . 1000 0000 . 11111110
Figure XXVII-6 : Exemple de masque de sous-réseaux avec des adresses de classe B.

Quelle est la valeur du masque en décimal. ? …………………………………………………..


Quel est pour toutes les adresses IP le numéro de réseau ? …………………………………..
Complétez le tableau en rentrant les adresses de sous-réseaux et les adresses nœud pour chaque adresse
IP .
XXVIII-C- XXVII-C- Exemple en classe C
Un masque de sous-réseau est 255.255.255.240
Quelle est la classe des adresses IP qui sont utilisées dans le tableau ci-dessous ? ..................................
En face des adresses IP suivantes, indiquez l'ID sous-réseau puis l'ID nœud :

Adresse IP ID sous-réseau ID nœud


195.252.13.33
195.252.13.66
195.252.13.47
Figure XXVII-7 : Exemple de masque de sous-réseau en classe C.

XXIX -XXVIII - Les services d’application utilisant TCP


Des applications réseau sont directement liées à la pile de protocole TCP/IP et la version "client" de ces
applications est souvent livrée avec la pile de protocoles. Ces applications permettent par exemple le transfert
de fichier (FTP), l'émulation de terminal en réseau (Telnet), l'affichage de page HTML (serveur et navigateur
WEB), fonctions de nommage (DNS), …
Suivant les cas et le besoin de fiabilité des applications, elles utilisent soit le protocole TCP, soit le protocole
UDP comme protocole de transport.
XXIX-A- XXVIII-A- Ping
Ping (Packet Internet Grouper) est une application qui permet de vérifier le bon fonctionnement des
composants d'un réseau utilisant TCP/IP. Elle permet par essais successifs de tester la pile IP et l'interface
réseau de l'ordinateur sur lequel on se trouve, puis de tester les liaisons avec les autres machines du réseau.
Cette application utilise le protocole ICMP véhiculé par IP.

Commande Ping avec paramètres demandant 5 envois de


trames d'une longueur de 1000 octets. vers la machine dont
@IP est 126.0.0.1
Statistiques de fin. Les
trames ont mis en
moyenne 14 ms pour
faire l'aller et retour entre
les 2 machines. Tous les
paquets ont été
retransmis.

Figure XXVIII-1 : Commande Ping.

67
XXIX-B- XXVIII-B- FTP
FTP (port 21) est une application qui permet d'assurer le transfert de fichiers, sans erreur, entre un micro-
ordinateur et un hôte ou entre 2 hôtes. Un certain nombre de commandes propres à cette application
permettent des transferts uniques ou multiples de fichiers dans les 2 sens (à l'alternat).
FTP cl FTP Svr
xxx FTP 21
TCP TCP
Client
IP IP FTP
Physique Système Physique Serveur
de fichiers
Système
Interface PUT, SEND ou MPUT de fichiers
TCP/IP
Terminal TCP/IP

GET, RECV ou MGET

Connexion TCP
sur réseau

Figure XXVIII-2 : FTP.


Il existe une application FTP en mode client côté utilisateur. Dans l'autre ordinateur, une application FTP
serveur tourne en tâche de fond.
Lance le FTP client (local)
Lance le FTP serveur (distant) et ouvre une
connexion avec l'hôte Gemini.

Entrée du nom de connexion et du mot de passe

Transfert d'un fichier vers l'hôte.

Le système renvoie un message, précédé de son code (150), suivi du nom du fichier, de l'adresse IP destination et du port FTP.

Le message de code 226 indique que le transfert est terminé


Cette commande met fin à la connexion avec gemini

Cette commande met fin au FTP local


Prompt Unix

Figure XXVIII-3 : Commandes FTP.

XXIX-C- XXVIII-C- Telnet


Telnet (port 23) est un protocole qui permet d'émuler à partir d'un micro-ordinateur un Terminal connecté
sur un Hôte à travers le réseau. Le type de terminal émulé peut être choisi dans une liste qui comporte toujours
les terminaux VT100 ou VT220. Il existe de nombreuses versions de Telnet. Le Telnet client peut tourner
sous système d'exploitation DOS, Windows ou Unix. Le Telnet Serveur (Telnet deamon = telnetd) tourne en
général sous Unix. Au fur et à mesure que l'utilisateur tape les caractères au clavier, ils sont reçus par le
serveur Telnet et transmis à Unix comme s'il s'agissait d'un terminal local en mode asynchrone connecté par
une liaison série.

Telnet Telnet
xxx CLIENT
23
TCP Telnet TCP
IP IP Serveur
Login
Physique Telnet
Physique
TCP/IP
Driver de
terminal Driver
TCP/IP
Pseudo terminal

Connexion TCP
sur réseau
68
Figure XXVIII-4 : Telnet.

Figure XXVIII-5 : Connexion à un serveur Telnet sous Unix .

XXIX-D- XXVIII-D- Les commandes R* d’Unix Berkeley


Unix standard intègre dans ses commandes un ensemble appelé commandes r. Ces commandes permettent
à partir d'un terminal connecté à un ordinateur sous Unix d'effectuer des opérations sur un autre ordinateur
Unix du réseau.

Commande Fonction
rlogin Permet une connexion sur l'ordinateur spécifié.
rexec Permet d'exécuter une commande sur l'ordinateur distant
rsh Permet d'exécuter un shell sur un ordinateur distant.
rcp Permet la copie de fichiers entre machines distantes.
rwho Affiche les utilisateurs connectés sur le réseau.
rwall Transmet un message aux utilisateurs connectés aux machines indiquées.
ruptime Affiche des informations sur les ordinateurs du réseau.
Figure XXVIII-6 : Commandes r*

XXIX-E- XXVIII-E- WWW


Le Wide World Web est l'ensemble des serveurs qui stockent des documents au format HTML48 (et autres)
sur Internet. Pour assurer le dialogue entre les clients Web (les navigateurs Web) et les serveurs, on utilise le
protocole HTTP49 qui s'appuie sur TCP et IP.

http cl CLIENT http svr


xxx 80 Serveur
Web
TCP TCP WEB
(Navigateur)
IP IP
Port xxxx Port 80
Physique Physique

TCP TCP
- HTTP – TCP - IP IP
IP
sur le réseau

Figure XXVIII-7 : Liaison WWW.

48 HTML = Hypertext Markup Language


49 HTTP = Hypertext Transfer Protocol.
69
XXIX-F- XXVIII-F- Les protocoles de messagerie SMTP, POP et IMAP4
La messagerie est un des services d'Internet les plus utilisés et les plus pratiques. Plusieurs protocoles sont
utilisés pour la transmission des messages.
XXIX- F- 1-XXVIII- F- 1- SMTP
Le protocole SMTP50 permet d'envoyer les messages en ASCII vers le serveur du provider51 auquel on est
raccordé
Lorsque l'utilisateur A veut envoyer un message, il le compose tout d'abord en utilisant un utilitaire de
messager, (Outlook, Outlook Express, Message Composer, Eudora ou autre). Le message composé est
d'abord envoyé vers une boîte d'envoi locale. Puis, le message est acheminé vers le serveur du provider à
l'aide du protocole SMTP. Pour envoyer des messages non textuels (images, documents Word, programmes),
on est obligé d'utiliser des utilitaires pour rendre la transmission compatible avec SMTP qui ne supporte que
l'ASCII. Ces utilitaires sont UUENCODE / UUDECODE ou plus récemment MIME 52.

50 SMTP= Simple Mail Transfert Protocol.


51 Provider= Fournisseur de services Internet.
52 MIME= Multipurpose Internet Mail Extensions.

70
XXIX- F- 2-XXVIII- F- 2- POP et IMAP4
Le message est ensuite acheminé vers le serveur sur lequel est connecté le destinataire. Celui-ci n'étant pas
forcément relié en permanence à ce serveur, il existe une boîte aux lettres personnelle dans laquelle seront
stockés tous les messages non lus.
Le destinataire consulte sa boîte aux lettres et récupère ses messages grâce au protocole POP3 53. Un
protocole plus récent IMAP454 est parfois utilisé. Il possède l'avantage de permettre la consultation des
messages sur le serveur sans forcement les rapatrier dans la station.

Le destinataire
L'utilisateur A
Serveur de Serveur de va lire son
envoie le
messagerie messagerie message sur le
message
SMTP Internet POP3 serveur POP3

RTC RTC

SMTP SMTP POP3


SMTP Boîte aux POP3
25 110
TCP lettres du TCP
IP destinataire IP
Physique Physique

Figure XXVIII-8 : Messagerie Internet.

XXX -XXIX - Services d'applications utilisant UDP


XXX-A- XXIX-A- DNS
DNS55 est un service qui permet sur un réseau IP et plus particulièrement sur Internet de résoudre le problème
de nommage des ordinateurs. En effet, il est plus facile pour l'utilisateur d'utiliser pour se connecter à un
serveur Web par exemple, une adresse du type www.amora.fr, que de taper une adresse IP difficile de
mémoriser. Le rôle de DNS est donc de faire une équivalence entre un nom de machine et son adresse IP.
Pour ce faire, on utilise :
o un système de nommage des ordinateurs qui est normalisé et hiérarchisé de manière à ce que chaque
ordinateur de l'Internet porte un nom unique.
o des serveurs de noms DNS qui comportent dans des bases de données le nom des ordinateurs et
l'adresse IP correspondante.
XXX- A- 1-XXIX- A- 1- Système de nommage hiérarchisé
L'espace de noms du DNS est organisé d'une façon hiérarchique à la manière d'un système de fichiers DOS
ou UNIX.

Racine

Domaines
premier arpa com edu gov int mil net org ae fr us zw
niveau

Emirats France Etats- Zimbabwe


Domaines Arabes Unis
deuxième comp1 comp2 comp3
niveau

Domaines
troisième market paye compta
niveau
53 POP3= Post Office Protocol Version 3.
54 IMAP4= Internet Message Access Protocol Rev4.
55 DNS = Domain Name System. Nom de domaine pleinement qualifié
serv2.paye.comp2.com.
Domaines
71
quatrième Serv1 Serv2
niveau
Domaines génériques Domaines géographiques
Figure XXIX-1 : DNS.
L'arbre démarre par une racine puis, à chaque niveau, on trouve des nœuds qui permettent l'apparition de
nouvelles branches de l'organisation hiérarchique. Chaque nœud de la figure représente un domaine qui
possède un label qui peut comporter jusqu'à 63 caractères.
Le nom de domaine d'un nœud quelconque de l'arbre est la liste des labels permettant d'atteindre la racine.
On commence par écrire le label de plus bas niveau et on termine par celui du plus haut niveau. Chaque label
est séparé du suivant par un point.
Si le nom de domaine se termine par un point, c'est un nom de domaine absolu ou nom de domaine
pleinement qualifié. (FQDN= Fully Qualified Domain Name).
Un nom de domaine doit être unique, mais il peut exister des labels identiques à des niveaux différents. Les
domaines de niveau supérieur com (commercial), edu (éducation), gov (gouvernemental), int (international),
mil, (militaire), net (réseau) et org (autres organisations) sont appelés domaines génériques. Ceux qui au
même niveau représentent un nom de pays ( fr, us, ...) sont appelés domaines géographiques.
XXX- A- 2-XXIX- A- 2- Serveurs de noms de domaine
Une zone est une partie de l'arbre DNS administrée séparément. Chaque zone doit posséder des serveurs
de noms. Pour chaque machine de la zone, l'administrateur doit entrer dans le serveur de noms, l'adresse IP
de cette machine et le nom de domaine. Si un serveur de noms ne contient pas le nom demandé par un
ordinateur, il doit être capable d'interroger les autres serveurs de noms des niveaux supérieurs. Tout nom
demandé et trouvé par un serveur de noms est mis en mémoire cache. Ceci évite des demandes répétées.
Pour le réseau mondial INTERNET, le NISC56 attribue des noms de domaines en respectant des conventions
propres à cet organisme. Chaque société ou chaque université peut recevoir un nom de domaine de haut
niveau (com pour une société commerciale et edu pour un établissement d'éducation par exemple) et un nom
de sous domaine propre à la société ou à l'université (par exemple novell ou ucla).
A partir de ce point l'administrateur du domaine peut continuer la structure hiérarchique et prolonger le nom
de sous-domaine qui peut devenir par exemple : messagerie.service_technique.novell.com pour une société
commerciale ou sectionA.lettres.ucla.edu pour un département d'une université. Le niveau le plus bas de la
hiérarchie apparaît au début du nom de domaine.
L'implémentation de DNS utilisée sur les ordinateurs Unix est appelée BIND57 et le deamon serveur named.
Les serveurs DNS peuvent aussi être implémentés sur système d'exploitation NetWare ou Windows NT 4
Server.
XXX- A- 3-XXIX- A- 3- Exemple d'utilisation de DNS

DNS Légende
53 Serveur DNS au Requête
UDP Réponse
niveau racine
IP
Physique

3 4
1 2  6 5

Serveur DNS
du domaine Serveur DNS
7 de Dubois
Serveur Web
8 www.dubois.fr
Figure XXIX-2 : Fonctionnement DNS.

56 NISC = Network Information Systems Center


57 BIND = Berkeley Internet Domain Name
72
-1- L'utilisateur tape l'URL dans le navigateur Web de sa station http://www.dubois.fr. Un programme
nommé résolveur de nom va interroger le serveur DNS de la zone de l'utilisateur pour connaître
l'adresse IP correspondant à www.dubois.fr.
-2- Une requête est envoyée par le résolveur au serveur DNS. Ce serveur de noms de domaine ne
connaît pas l'adresse IP. Il va donc interroger le serveur de nom du niveau racine.
-3- Le serveur DNS de la zone de l'utilisateur envoie une requête au serveur DNS du niveau racine.
-4- Ce serveur ne connaît pas non plus l'adresse IP. Il interroge le serveur DNS du domaine dubois.fr
-5- Ce serveur DNS renvoie une réponse qui contient l'adresse IP. Elle est mise en cache dans le
serveur DNS du niveau racine.
-6- Ce serveur renvoie la réponse vers le serveur DNS demandeur. Celui-ci met l'adresse dans un
cache pour éviter d'autres requêtes ultérieures
-7- L'adresse IP demandée est fournie au résolveur de la station utilisateur qui la met aussi en cache.
-8- La connexion est établie à travers le réseau Internet vers le serveur Web .

73
XXX- A- 4-XXIX- A- 4- Désignation des serveurs DNS sur les stations IP
Dans les stations PC sous Windows 95/98 ou NT, pour utiliser le service DNS, il faut dans la configuration des
propriétés de la pile IP, déclarer le nom de la station, le domaine où elle se trouve et l'adresse IP du ou des
serveurs DNS qu'elle doit contacter pour la recherche des adresses IP.

Figure XXIX-3 : Configuration de DNS sur une station NT ou 95.

XXX-B- XXIX-B- NFS


XXX- B- 1-XXIX- B- 1- Principes
NFS (Network File System) est une application qui permet à une machine d'exporter son système de fichiers
(tout ou partie) vers le réseau. La base de NFS a été développée par SUN Microsystems dans les années 80.
Il est devenu un standard dans le monde Unix. Pour pouvoir avoir accès aux fichiers exportés à partir d'un
autre ordinateur, il faut qu'il soit équiper d'un client NFS.
La machine qui exporte ses fichiers est souvent un ordinateur sous Unix, mais les clients peuvent être des
machines Unix ou Macintosh ou des PC sous DOS, Windows 9x ou NT.

Serveur Système export etc bin


UNIX de
Serveur fichiers alain pierre michel
NFS NFS
Système de
fichiers exportés

/ C E:
:
usr etc bin Dos Win alain michel
export pierre
Ordinateur sous alain michel PC Sous DOS , Montage du répertoire
Unix avec client Windows ou OS2 NFS exporté
pierre
NFS avec client NFS
Montage distant
Figure XXIX-4 : Exportation NFS.
La figure ci-dessus montre un répertoire export exporté par le serveur NFS d'un ordinateur tournant sous
UNIX.
L'ordinateur client UNIX voit ce répertoire comme une extension de son propre système de fichiers UNIX.
La station PC monte le répertoire exporté pour le faire apparaître comme une unité de logique DOS-Windows
E:.

74
XXX-C- XXIX-C- TFTP
TFTP58 est un protocole qui est une version allégée de FTP. Il utilise UDP comme protocole de transport.
Celui-ci n'étant pas fiable, TFTP se sert de son propre système d'accusé de réception pour assurer une bonne
qualité de transmission.
TFTP est utilisé principalement pour charger à partir d'un serveur TFTP, le système d'exploitation d'ordinateurs
sans disque ou de terminaux X-Windows par exemple. Il est aussi utilisé pour assurer le mise à jour des OS
des matériels réseaux (hubs, ponts, commutateurs, routeurs) contenus dans des mémoires non volatiles, mais
réinscriptibles.

Routeur Cisco
Ancienne TFTP TFTP
version de EEPROM xxxx 69 Fichier
l'IOS Cisco UDP UDP contenant
Client IP IP la nouvelle
TFTP version de
Physique Paquets de Physique
512 octets l'IOS Cisco

Figure XXIX-5 : TFTP.


Le logiciel TFTP client est souvent implanté en ROM. Sa simplicité permet d'obtenir une taille de programme
compatible avec la capacité de stockage des ROMs.
XXX-D- XXIX-D- SNMP
SNMP59 est un protocole qui permet la gestion cohérence d'un inter-réseau et la surveillance des éléments du
réseau. Les éléments du réseau sont les stations, les serveurs, les routeurs, les hubs, etc.
La gestion du réseau repose sur 3 entités :
 le ou les managers SNMP qui sont installés dans une ou plusieurs NMS (Network Management
Station) et les agents SNMP qui sont installés dans les éléments du réseau à gérer.
 une base de données informationnelle de gestion (MIB60) qui définit les variables utilisées dans
chaque élément du réseau. Chaque variable est repérée par un Objet identifier unique.
 les différents types d'objets (Counter , String, ...)

Serveur SNMP
xxx
Agent
Agent Routeur Snmp
UDP
Snmp IP
Physique Agent Hub
Snmp

Station de gestion de
réseau NMS SNMP
Agent 161
Pont
Snmp UDP
IP
Physique

Figure XXIX-6 : Agents et Manager SNMP.

58 TFTP= Trivial File Transfert Protocol.


59 SNMP=Simple Network Management Protocol
60 MIB : Management Information Base.

75
A partir de la station de gestion, l'administrateur du réseau peut consulter ou modifier la configuration des
éléments du réseau. Cette fonction est réalisée grâce à une procédure du type requête-réponse.

Réponse Requête GET


Agent Station de gestion
Snmp de réseau SNMP
Composant NMS
réseau managé.

Figure XXIX-7 : Requête – Réponse SNMP.


Les agents sont par ailleurs capables d’envoyer des messages (Traps) pour prévenir l’administrateur des
problèmes survenant sur les composants du réseau.

Trap Alarme

Agent Seuil de Trap: Station de gestion


Seuil d’Alarme: Message
Snmp Niveau 4
Niveau 2 de réseau SNMP d'alarme
NMS
Composant réseau
managé

Figure XXIX-8 : Traps SNMP.


Les traps sont envoyés vers la station de management ou dans des trames broadcast à partir d’un certain
seuil de gravité déterminé par l’administrateur (noté de 0 à 7).
Une fois arrivés sur la station de gestion, les traps sont enregistrés dans un fichier d’événements. Si leur
niveau de gravité dépasse un certain seuil fixé au préalable, ils déclenchent une alarme qui peut être un signal
sonore, un affichage sur l’écran, l’envoi d’un message sur le réseau ou sur un système de mobile (pager ou
téléphone) ou même l'exécution de n'importe quel programme.

76
XXXI -XXX - Fichiers associés à TCP/IP
TCP/IP utilise 4 fichiers de base de données pour convertir des données internes, telles que les adresses IP,
en noms plus faciles à utiliser. Le contenu de ces fichiers une fois lu, est placé en mémoire cache pour éviter
des accès répétitifs aux disques. Ces fichiers, en mode texte, se trouvent en général dans le répertoire \etc
des hôtes TCP/IP.
XXXI-A- XXX-A- Fichier Hosts
Ce fichier, que l'on écrira avec un éditeur de texte simple, contient des entrées qui permettent de rendre une
adresse IP équivalent à un ou plusieurs noms.
La syntaxe est la suivante :
adresse_IP nom_d'hôte [alias [...]]
L'adresse_IP est donnée en notation décimale point ou en valeur hexadécimale commençant par 0x.
Le nom_hôte est le nom du système associé à l'adresse IP. Ce nom ne doit pas contenir d'espace et doit être
unique.
L'alias est un autre nom qui désigne le système ou une autre manière de l'écrire (Majuscules-minuscules ou
abréviations).
Exemple de fichier \etc\hosts : Les lignes précédées de # sont des commentaires.

#
# Mapping of host names and host aliases to IP Addresses
#
127.0.0.01 loopback lb localhost # loopback address
#
# exemples d'adresses, de noms d'hôtes et d'alias
126.0.0.1 Mugix MUGIX mugix mu
126.0.0.2 Jarrix JARRIX jarrix ja
126.0.2.1 GEMINI gemini gem
126.0.2.2 APOLLO apollo apo APO Apo
Figure XXX-1 : Exemple de fichiers hosts.

XXXI-B- XXX-B- Fichier Networks


Le fichier \etc\networks contient les informations sur les réseaux de l'inter-réseau.
La syntaxe est la suivante :
nom_réseau numéro_réseau [/masque_réseau] [alias [...]]
Le nom_réseau est le nom du réseau. Il ne peut contenir d'espace, de tabulation ou le symbole #. Il doit être
unique.
Le numéro_réseau est l'adresse IP donnée au réseau.
Le masque_réseau est le masque de sous-réseau du réseau. Ce champ est facultatif
L'alias est un autre nom donné au réseau. Il peut y avoir jusqu'à 10 alias pour le même réseau.
Exemple de fichier \etc\networks :

#
# Networks numbers
#
loopback 127 # réseau fictif interne pour bouclage
#
# réseaux de l'inter-réseaux
angers 126 ang #réseau local afpa angers
greno 123 gre #réseau local afpa grenoble
Figure XXX-2 : Exemple de fichiers networks.

77
XXXI-C- XXX-C- Fichier Protocol
Le fichier \etc\protocol contient des informations sur les protocoles connus utilisés sur l'inter-réseau. Chaque
ligne fournit des informations sur un protocole.
La syntaxe est la suivante :
nom_protocole numéro_protocole [alias [...]]
Le nom_protocole est le nom du protocole associé au numéro qui suit.
Le numéro_protocole est le numéro du protocole.
L'alias est un autre nom donné au protocole.
Exemple de fichier \etc\protocol :
# internet (IP) protocols
ip 0 IP # protocol internet
icmp 1 ICMP #protocol de message d'erreurs dans l'inter-réseau
igmp 2 IGMP # protocol multicast
ggp 3 GGP # gateway-gateway protocol
tcp 6 TCP # protocol de transmission
udp 17 UDP # user datagram protocol
Figure XXX-3 : Exemple de fichier \etc\protocol.
XXXI-D- XXX-D- Fichier Services
Le fichier \etc\services contient des informations sur les services utilisés sur l'inter-réseau IP. La syntaxe est
la suivante :
nom_service numéro_port/nom_protocole [alias [...]]
Le nom_service est le nom de service associé au port dont le nom ou le numéro suit. Ces services sont des
services des couches session, présentation ou application, tels Telnet, FTP, TFTP ou SMTP.
Le numéro_port est le numéro de port utilisé par le service.
Le nom_protocole désigne le protocole auquel le service est lié. Il s'agit, en général, d'un protocole du niveau
transport comme TCP ou UDP.
L'alias est un autre nom donné au service
Exemple de fichier \etc\service
TCP Ports #UDP ports
# Service Name Port/Protocol Aliases # Service Name Port/Protocol Aliases
echo 7/tcp echo 7/udp
discard 9/tcp sink null discard 9/udp sink null
systat 11/tcp users systat 11/udp users
daytime 13/tcp daytime 13/udp
netstat 15/tcp netstat 15/udp
qotd 17/tcp quote qotd 17/udp quote
chargen 19/tcp ttytst source chargen 19/udp ttytst
ftp-data 20/tcp source
ftp 21/tcp time 37/udp timserver
telnet 23/tcp rlp 39/udp resource
smtp 25/tcp mail name 42/udp nameserver
time 37/tcp timserver whois 43/udp nicname
name 42/tcp nameserver nameserver 53/udp domain
whois 43/tcp nicname bootps 67/udp bootp
nameserver 53/tcp domain bootpc 68/udp
apts 57/tcp tftp 69/udp
apfs 59/tcp sunrpc 111/udp
rje 77/tcp netrjs erpc 121/udp
finger 79/tcp ntp 123/udp
link 87/tcp ttylink statsrv 133/udp
hostnames 101/tcp hostname profile 136/udp
iso-tsap 102/tcp tsap snmp 161/udp
x400 103/tcp snmp-trap 162/udp
x400-snd 104/tcp at-echo 204/udp
pop-2 109/tcp pop postoffice
Figure XXX-4 : Ports TCP et UDP.

78
XXXII -XXXI - Résolution de noms d'hôtes IP

Problème : Comment résoudre la correspondance entre les noms des ordinateurs en réseau et leur adresse
IP ?

XXXII-A- XXXI-A- Les noms NetBIOS


Ce sont des noms utilisés sur le réseau pour identifier à l'aide de NetBIOS les ordinateurs connectés au réseau
Microsoft. Ces noms d'ordinateurs sont entrés au moment de l'installation de Windows for Workgroup, Windows
95(98) ou Windows NT. Ces noms doivent être uniques sur le réseau (ce qui pose des problèmes sur les grands
réseaux). Ils ne doivent pas dépasser 15 caractères et ne pas comporter certains caractères.
Les noms NetBIOS peuvent être modifiés dans le panneau de configuration.
Ces noms NetBIOS sont particulièrement utilisés dans la recherche des ressources dans les réseaux Microsoft
en utilisant la convention UNC (Universal Naming Convention).

Par exemple, la recherche d'un fichier sur un réseau utilise une UNC composée de 3 parties :
Un nom d'ordinateur NetBIOS précédé de \\
Un nom de partage situé sur l'ordinateur (option)
Un nom de répertoire ou de fichier au format MS-DOS situé dans le partage.

Exemple : \\berlioz\serv_nt4

XXXII-B- XXXI-B- II- Noms de domaines

XXXII- B- 1-XXXI- B- 1- Domaines Windows NT

Les Domaines Windows NT correspondent à un ensemble d'ordinateurs en réseau pour lesquels une base
de données d'authentification a été créée (SAM = Security Account Manager). Ce concept est spécifique à
Windows NT. Les noms de domaine sont créés au moment de l'installation du premier serveur NT dans un
domaine. Ce serveur est nommé Contrôleur Principal de Domaine (CPD).

XXXII- B- 2-XXXI- B- 2- Domaines Internet


Les Domaines DNS sont des zones dans une structure hiérarchisée de l'Internet qui correspondent à des
serveurs gérés par le même administrateur. Les serveurs de noms de Domaines DNS de l'Internet dialoguent
entre eux et permettent de fournir à un client de l'Internet l'adresse IP de n'importe quel serveur du réseau.
Les noms de domaine se présentent sous la forme :

microsoft.com ou ibm.com

Les noms des serveurs de l'Internet sont associés aux noms de domaines et se présentent sous la forme :

www.microsoft.com www.ibm.com

___________

79
XXXII-C- XXXI-C- Correspondance entre les noms des ordinateurs et les adresses IP
XXXII- C- 1-XXXI- C- 1- Solution de départ, le fichier Hosts

Pour de petits réseaux non connectés sur l'Internet, la correspondance entre les noms des ordinateurs et les
adresses IP peut être résolue localement grâce à une table consignée dans un fichier nommé hosts sur chaque
ordinateur. Cette méthode ne peut plus être utilisée lorsque le nombre d'ordinateurs sur le réseau devient
important, car tout ajout d'un nouvel ordinateur sur le réseau doit entraîner une mise à jour du fichier hosts
dans chaque ordinateur. De plus, ce système ne résout pas les problèmes de correspondance entre les noms
de serveurs sur Internet et leur adresse IP.

N.B. Le nom d'ordinateur donné dans le fichier hosts est purement local à l'ordinateur où il se trouve et ne
correspond pas forcément au vrai nom de l'ordinateur.

XXXII- C- 2-XXXI- C- 2- Solution pour Internet, DNS

Domain Name System assure la correspondance entre le nom Internet complet d'un ordinateur
(nom de serveur + nom de domaine) et son adresse IP.

Ravel.afpa.edu correspond à 126.0.6.3

Pour utiliser ce service sur une station de travail Win95 ou NT, dans la fenêtre TCP/IP, il faut sélectionner
l'onglet DNS et indiquer l'adresse du serveur DNS primaire.
Dans chaque domaine Internet, il existe un ou plusieurs serveurs de Noms de Domaine. Ces serveurs
contiennent une table de correspondance entre les noms des ordinateurs de la zone et leur adresse IP. Ces
tables sont maintenues manuellement par l'administrateur de la zone.

XXXII- C- 3-XXXI- C- 3- Solutions sur un réseau avec NT

LMHOSTS
lmosts à l'instar du fichier hosts est un fichier qui contient une table de correspondance statique entre les noms
NetBIOS des ordinateurs du réseau et leur adresse IP. Cette table doit être maintenue manuellement et ne peut
donc être utilisée que sur de petits réseaux.
Cependant, sur certains OS, il est possible d'utiliser un fichier lmhosts partagé, se trouvant sur un autre
ordinateur. Dans ce cas, il est possible de gérer ce fichier d'une manière centralisée.

WINS
Windows Internet Name Service utilise une couche NetBIOS au-dessus de TCP/IP pour établir des
correspondances entre les adresses IP et les noms des ordinateurs NT ou 95.

Ravel correspond à 126.0.6.3

Le service WINS tourne un ou plusieurs serveurs NT du réseau.


Les noms des ordinateurs et les adresses correspondantes sont contenus dans une base de données sur le
serveur WINS. Cette base de données dynamique est mise à jour automatiquement sans intervention humaine
(contrairement à DNS). Cette base de données est plate et ne possède donc pas de niveaux hiérarchiques à
l'opposé de DNS.
Pour qu'une station client puisse utiliser le service de résolution d'adresses WINS, il faut dans la fenêtre TCP/IP
utiliser l'onglet WINS et indiquer au moins l'adresse IP du serveur WINS (serveur primaire). S'il existe plus d'un
serveur WINS, on peut entrer une deuxième adresse IP (serveur secondaire).
Si la case "Activer la résolution DNS pour Windows" est cochée, les noms d'ordinateurs NetBIOS sont
d'abord recherchés dans le serveur DNS. En effet, il peut exister un lien entre les serveurs DNS et WINS. C'est-
à-dire que si un nom d'ordinateur n'est pas trouvé dans le serveur DNS, il est recherché dans le serveur WINS.
Si la case "Activer la recherche de clé LMHOSTS", le système recherche des correspondances entre le nom
d'ordinateurs et les adresses IP dans le fichier lmhosts.

80
XXXIII -XXXII - Protocole IP
XXXIII-A- XXXII-A- IP et les réseaux physiques
Le protocole IP permet d’avoir une vue globale de l’inter-réseau sans tenir compte des différents types de
réseaux physiques qui le constituent. Les protocoles TCP et UDP ne dialoguent qu’avec IP sans voir les réseaux
physiques. Les datagrammes IP peuvent être encapsulés dans des trames Ethernet, Token-Ring ou des
paquets X25 ou même des liaisons séries asynchrones en utilisant un protocole de transports sur ce type de
liaison comme PPP61.
IP est aussi utilisable sur des liaisons spécialisées ou des réseaux de type Frame Relay ou ATM 62.

Hôte
Couches supérieures et
applications
IP Couche réseau
Niveau 3

Carte série Carte série


Carte réseau Carte réseau Synchrone Asynchrone
Ethernet Token-Ring X25 PPP

Réseau
Réseau Ethernet Token- TRANSPAC RTC
Ring

Figure XXXII-1 : IP et les réseaux physiques.

XXXIII-B- XXXII-B- Fragmentation


IP génère des paquets de taille variable en fonction du nombre d’octets de données à transporter et de la MTU63
du réseau physique. La MTU d’un réseau Ethernet est de 1500 octets, alors que celle d’un réseau Token-Ring
à 16 Mbps est de 17940 octets. Il se peut donc qu’un paquet IP encapsulé dans une trame Token-Ring soit
fragmenté en plusieurs paquets IP pour être véhiculé ensuite dans une trame Ethernet ou des paquets X25.
MTU TR1 > MTU Eth1 ==> Fragmentation MTU ETH1 < MTU TR2 ==> Réassemblage

TR1 TR2

Routeur 1 ETH1 Routeur 2

Figure XXXII-2 MTU, Fragmentation et Réassemblage.

61 PPP= Point To Point Protocol.


62 ATM = Asynchronous Transfert Mode
63 MTU= Maximum Transmission Unit. Taille maximum d’une trame sur un réseau physique

81
XXXIII-C- XXXII-C- Datagramme
IP travaille en mode datagramme sans connexion, c’est-à-dire que chaque paquet IP est véhiculé dans un
internet de manière indépendante. Il se peut donc que plusieurs paquets successifs empruntent des chemins
différents.

Datagramme 1

Datagramme 2

Datagramme 3

Figure XXXII-3 : Datagrammes IP.


L’ordre d’arrivée des datagrammes peut être différent de celui de départ. On dit que le protocole IP n’assure
pas le séquencement, ni d’ailleurs la fiabilité de la transmission (pas d’accusé de réception, ni de checksum
sur les données transportées). Ces fonctions, si elles sont nécessaires pour les applications qui utilisent IP
doivent être assurées par le protocole de la couche supérieure à IP. TCP assure le séquencement des paquets,
les accusés de réception et la checksum.
XXXIII-D- XXXII-D- Format de l’en-tête
Le paquet comporte un en-tête renfermant entre autres, les adresses IP Source et Destination. L’en-tête est
suivi d’un champ comprenant les données envoyées par les couches supérieures de la pile. Ce paquet sera
ensuite encapsulé dans une trame du réseau physique utilisé.

32 bits

Version IHL Type of Service Total Length

DM
Identification O Fragment Offset
F F

En-tête
Time to Live Protocol Header checksum

Source Address

Destination Address
Zone
Options Padding optionnelle
Données des

supérieures
couches

Data

Figure XXXII-4 : Format de l'en-tête IP.

82
Octets Nom du champ Signification
1 Version Ce champ est formé par les 4 bits de poids fort du premier octet. Il indique la
version de IP utilisée. La valeur actuelle est 4 (O1OO). Elle passera à 6 lorsque
la version IPV6 sera opérationnelle.
1 IHL Internet Header Length = Longueur de l'en-tête IP. On y trouve une valeur qui
indique la longueur de l'en-tête en multiple de 32 bits. Par exemple si la valeur
est 0101 (5), cela veut dire que l'en-tête mesure 5 fois 32 bits, soit 20 octets. Ce
champ est indispensable, car la longueur de l'en-tête varie s'il y a des options à
la fin de l'en-tête standard.
2 TOS TOS= Type of Service. Ce champ informe les routeurs des réseaux de la qualité
de service désirée. Il est divisé en 6 parties.
1- 'Precedence' : Les 2 bits de poids fort de l'octet indique la 'préséance', c'est à
dire en fait l'importance du paquet IP et la priorité que l'on doit lui accordé.
La valeur par défaut de ce champ peu utilisé est 0.
2- Délai : 0= normal, 1= Elevé.
3- Débit : 0= normal, 1= Elevé.
4- Fiabilité : 0 = Normale, 1= Elevée.
5- Coût: 0= Normal, 1= Elevé.
6- Ce bit doit être à 0.
Le TOS est peu utilisé, mais il est fonctionnel. Les valeurs du TOS sont gérées
par les couches supérieures.
3-4 Total Length Ce champ indique la longueur totale du paquet IP.
5-6 Identification Ce champ indique le numéro du paquet émis par la couche réseau d'un nœud.
Le compteur compte de 0 à 65535, puis repasse à 0.
7-8 Fragment Offset Si le bit DF (Don't Fragment) de ce champ est à 1, cela signifie que le
datagramme IP ne doit pas être fragmenté. Il peut être utilisé par exemple, par
des terminaux sans mémoire de masse qui chargent leur OS à l'aide du
protocole TFTP. En effet le logiciel contenu en ROM est incapable d'assurer le
réassemblage des datagrammes.
Le bit MF (More Frags) est mis à 1 tant que tous les fragments d'un même
datagramme ne sont pas arrivés. Le dernier fragment à donc ce bit MF à 0.
Dans le cas de datagrammes non fragmentés, ce bit est évidemment à 0.
Les autres bits de ce champ indiquent la position des données par rapport à leur
position dans le datagramme d'origine.
9 TTL Time To Live : Ce champ représente en secondes la durée de vie d'un
datagramme IP. La valeur de départ est de 60. A chaque passage dans un
routeur la valeur est décrémentée d'une seconde (pour simplifier le travail).
Lorsque la valeur atteint 0, le routeur qui reçoit le paquet le détruit et envoie un
paquet ICMP sur le réseau. Ce mécanisme a pour but d'éviter que des
datagrammes dont l'adresse est erronée tournent sans fin dans l'internet.
10 Protocol On trouve dans ce champ le code du protocole utilisé au-dessus de IP. Si la
valeur est 6, le protocole qui utilise IP est TCP. Si la valeur est 17, il s'agit d'UDP.
Si la valeur est 1, d'ICMP.
11-12 Header Checksum Ce champ contient une checksum sur 16 bits des octets de l'en-tête IP.
13-16 Source Address Ce champ contient l'adresse du nœud qui a émis le datagramme IP.
17-20 Dest. Address Ce champ contient l'adresse du nœud de destination
20 + Options Ce champ de longueur variable, mais toujours multiple de 32 bits est utilisé
multiple parfois pour définir des informations concernant la sécurité ou le routage
de 32
bits
Figure XXXII-5 : Signification des champs de l'en-tête IP.

83
Exemple
Cette zone affiche le nom
des différents champs de
l'en-tête Ethernet, ainsi
que les valeurs
correspondantes.

Cette zone affiche le nom


des différents champs de
l'en-tête IP, ainsi que les
valeurs correspondantes.

Cette zone affiche le nom


des différents champs de
l'en-tête TCP, ainsi que les
valeurs correspondantes.

Cette zone affiche les données transportées par le paquet


TCP en hexa dans la partie gauche, et en ASCII dans la partie
droite.

Figure XXXII-6 : Trame Ethernet avec Datagramme IP affichée sur un analyseur de protocole.

La case de gauche contient les octets de la


Figure XXXII-7 : La même trame non décodée, affichée en hexadécimal.
trame (préambule et FCS non inclus). La case
à droite contient les mêmes octets, mais affichés
en ASCII. Les caractères non imprimables sont
remplacés par des points.
EXERCICE :
Dans l'en-tête Ethernet, quelles sont les 2 adresses MAC en hexa? : .......................... , .......................
Dans l'en-tête Ethernet, quel est le code du protocole et quel est ce protocole : ................ , ....................
La trame capturée et analysée ici, est-elle du type Ethernet II ou du type 802.2 ? : ......................................
Dans l'en-tête IP, quelles sont les adresses IP source et destination en notation décimale point et en hexa?
Source en décimal ........................... Source en Hexadécimal ............................
Destination en décimal ............................ Destination en hexadécimal ............................
Quel est le protocole indiqué dans cet en-tête ? : ............................................................
Quelle est la longueur de l'en-tête en mots de 32 bits et le nombre d'octets correspondants : ......... , .........
Quel est le numéro de ce datagramme IP ? : ...............
L'en-tête IP possède-t-il un champ 'Options' ? : .........................

XXXIV -XXXIII - Les protocoles de transport TCP et UDP


Le tableau ci-dessous permet de comparer les 2 protocoles de transport. On utilise l'un ou l'autre de ces
protocoles en fonction du niveau de fiabilité réclamée par l'application dont les données sont véhiculées par le
protocole de transport.
Caractéristiques UDP TCP
Longueur de l'en-tête 8 octets 20 octets
Etablissement d'une connexion Non Oui
Séquencement / Perte Non Oui
Accusé de réception Non Oui
Contrôle de flux Non Oui

84
Multiplexage Non Oui
Contrôle d'erreur Non (Oui en option) Oui

XXXIV-A- XXXIII-A- UDP


XXXIV- A- 1-XXXIII- A- 1- Généralités
UDP (RFC 768 de 1980) permet des échanges de paquets de données individuels. Chaque datagramme UDP
est encapsulé dans un datagramme IP. Celui-ci sera positionné dans une trame conforme au réseau physique
utilisé.
Contrairement à TCP, UDP, comme IP, est un protocole sans connexion et non fiable. UDP n’assure pas les
accusés de réception. Il ne gère pas le séquencement des messages, ni le contrôle de flux. Il peut donc y avoir
perte des données ou duplication ou deséquencement. Les fonctions de contrôle doivent donc être assurées
par les applications utilisant UDP si nécessaire.
UDP est efficace pour des applications qui utilisent la diffusion (pas de temps de connexion)
Il utilise comme TCP un système d'identification des applications, basé sur des numéros de ports.
Les applications qui utilisent UDP sont :
 TFTP Port 69
 DNS Port 53
 SNMP Ports 161-162
 RIP Port 0208
XXXIV- A- 2-XXXIII- A- 2- En-tête

32 bits

Port Source Port Destination

Longueur Checksum

Octets de données

Octets de données

Figure XXXIII-1 : En-tête UDP.


Octet Champ Rôle
1 et 2 Port Numéro de l'application qui émet les données qui sont transportées par le message
Source UDP.
3et 4 Port Numéro de l'application à laquelle les données sont destinées
Destination
5 et 6 Longueur Longueur du message UDP en octets.
7 et 8 Checksum Le champ Checksum est utilisé de façon facultative. Sa valeur est souvent à 0000. Pour
qu'il soit réellement fonctionnel, il faut que l'application qui utilise UDP en fasse la
demande expresse.
Figure XXXIII-2 : Signification des champs de l'en-tête UDP.

85
Exercice

En-tête En-tête
....................... .......................

Données de l'application En-tête


....................... .......................

Figure XXXIII-3 : Analyse de la même trame, mais non décodée.

EXERCICE : Complétez les bulles. En vous aidant de la page précédente, indiquez quelle est la valeur du port
correspondant à l'application SNMP destination dans l'en-tête UDP?. : .....................

Décodage de l'en-
tête Ethernet

Décodage de
l'en-tête IP

Décodage de l'en-tête UDP


Port Source (2 octets)
Port Destination (2 octets)
Longueur (2 octets)
Checksum (2 octets)

Champs concernants
l'application SNMP

Figure XXXIII-4 : Analyse et décodage d'une trame contenant un datagramme UDP.

86
XXXIV-B- XXXIII-B- •TCP
XXXIV- B- 1-XXXIII- B- 1- Généralités
Pour la transmission de suites de données très longues comme des fichiers par exemple, on met en œuvre un
protocole plus fiable nommé TCP (RFC 793 de 1981) qui utilise des circuits virtuels. Ce sont des connexions
full-duplex entre les 2 applications dialoguant sur les 2 ordinateurs. Avant de commencer une transaction, le
protocole à chaque extrémité du circuit virtuel ouvre une connexion. Chaque connexion correspond à un port
qui comporte un numéro alloué de manière dynamique côté client et de manière bien définie côté serveur. Les
segments TCP comportent un en-tête et un champ de données. L’ensemble est passé à la couche IP qui y
ajoute l’en-tête IP, puis le tout est inséré dans une trame.
XXXIV- B- 2-XXXIII- B- 2- Format de l'en-tête

32 bits

Source Port Destination Port

Sequence Number

Acknowledgement Number

Reserved U A P R S F
Data R C S S Y I Window
Offset G K H T N N

Checksum Urgent Position

Options Padding

DATA

DATA

Figure XXXIII-5 : Format messages TCP.


Octets Champ Rôle
1 et 2 Source port Numéro de l'application qui émet le paquet TCP.
3 et 4 Destination Port Numéro de l'application à laquelle le paquet est destiné.
5à8 Sequence Number Numéro du premier octet de données transporté dans le paquet.
9 à 12 Ack. Number Numéro du prochain octet attendu en provenance de la couche TCP distante.
Ce champ est équivalent à un accusé de réception dans un paquet
transportant des données.
13 et 14 Data Offset et Flags Ce champ contient la longueur de l'en-tête TCP exprimé en mots de 32 bits.
Cette information est nécessaire car il peut exister un champ "options"
supplémentaire.
Flags
ACK : Ce bit à 1 indique que le paquet TCP est un accusé de réception.
SYN : Ce bit à 1 est utilisé lors de l'établissement d'une connexion.
FIN : Ce bit à 1 est utilisé au moment de la fermeture de la connexion.
RST : Ce bit à 1 indique qu'il y a réinitialisation de la connexion suite à erreurs
irrécupérables.
PSH : Ce bit à 1 impose la remise immédiate des données à la couche
supérieure.

URG : Ce bit à 1 indique que des données urgentes sont placées dans le
paquet. Dans ce cas, le champ "Urgent Position" est valide et contient un
pointeur qui permet de déterminer la longueur de ces données. Ce type de

87
flag est utilisé par exemple au cours d'une session Telnet pour envoyer une
commande de contrôle au serveur Telnet
15 et 16 Window Ce champ contient le nombre d'octets que la session TCP peut encore
recevoir sans accusé de réception. Lorsque la valeur atteint 0, l'émetteur ne
doit plus émettre. Ce champ permet le contrôle de flux.
17 et 18 Checksum Checksum du paquet TCP y compris l'en-tête.
19 et 20 Urgent position Ce pointeur de données urgentes est valide si le flag URG=1.
Figure XXXIII-6 : Champs de l'en-tête TCP.
XXXIV- B- 3-XXXIII- B- 3- Fonctionnalités TCP
 Accusé de réception
La fiabilité de la transmission est assurée par l'utilisation d'accusé de réception. Le flag ACK est alors positionné
à 1. Le champ Achnowledgement Number est aussi utilisé pour les accusés de réception. Il permet de connaître
le numéro du prochain octet attendu par une session TCP et par conséquent le numéro du dernier octet reçu.
 Séquencement et Détection de pertes de données
Les champs Sequence Number et Acknowledgement Number permettent aussi de s'assurer que les octets
arrivent dans l'ordre correct. Ils permettent aussi de détecter si des octets ont été perdus.

SeqN 1000, AckN 0000


Noeud A Nœud B
1
SeqN 0000, AckN 1501
TCP 2 TCP
IP SeqN 1501, AckN 551 N IP
3
SeqN 551, AckN 2001
4
Figure XXXIII-7 : Utilisation des champs Sequence Number et Ack Number
1- La couche TCP du nœud A émet un paquet avec un Sequence Number à 1000, ce qui veut dire que le
premier octet de ce paquet est le numéro 1000. La valeur de Ack Number est de 0000, ce qui veut dire que la
couche TCP de A attend le premier octet en provenance de la couche TCP de B.
2- La couche TCP de B émet un paquet avec Seq Number à 0000, ce qui veut dire que le numéro du premier
octet de données est 0000. La valeur de Ack Number est 1501, ce qui veut dire que la couche TCP de B a bien
reçu les 1500 premiers octets en provenance de A et attend le numéro 1501 et suivants.
3- La couche TCP de A, envoie les octets à partir du numéro 1501. La valeur de Ack Number est 551, ce qui
veut dire que A a bien reçu les octets jusqu'à 550 en provenance de B et attend le numéro 551 et suivants.
4- La couche TCP de B envoie les octets à partir de 551. Elle attend l'octet 2001, ce qui veut dire qu'elle a bien
reçue les octets jusqu'à 2000 inclus.
Ce mécanisme permet d'accuser réception des octets reçus et de vérifier que l'ordre est respecté. Ainsi B attend
l'octet 1501 et qu'il reçoit 2001, cela veut dire qu'il y a deséquencement ou perte d'octets.
 Contrôle de flux
Le champ Windows permet d'indiquer à l'émetteur combien d'octets il peut encore envoyer sans accusé de
réception. Lorsque la valeur de la fenêtre atteint 0, l'émetteur doit interrompre l'envoi des données. Il peut
recommencer le transfert lorsque la valeur de la fenêtre est différente de 0. Ce champ permet donc le contrôle
de flux.

88
 Multiplexage

Appli 1 Appli 2 Appli 3 Appli 1 Appli 1 Appli 2


1501 1589 1602
80 21 21 TCP TCP
TCP
@ IP @ IP
126.0.1.23 126.0.2.66
@ IP Physique Physique
126.0.0.1

Physique
3
2
1
Figure XXXIII-8 : Multiplexage TCP.
TCP peut servir plusieurs applications dans un même nœud. C'est le multiplexage TCP. Chaque extrémité de
la liaison se caractérise par une adresse IP et un numéro de port.
Par exemple l'application 1 dans le nœud dont l'adresse IP est 126.0.0.1 est l'extrémité 126.0.0.1,80 de la
connexion avec l'application 2 du nœud 126.0.2.66. Cette autre extrémité est dont notée 126.0.2.66,1602.

 Connexions
TCP établit une connexion avant de transmettre des données. Cette opération est relativement longue, car elle
nécessite l'envoi de plusieurs paquets de dialogue entre les 2 couches TCP qui veulent établir la connexion.
Chaque connexion est symbolisée par les valeurs des 2 extrémités. Ainsi la connexion 1 est définie par :
(126.0.01,80,126.0.2.66.1602)

XXXIV- B- 4-XXXIII- B- 4- Exemple TCP

Figure XXXIII-9 : Trame Ethernet avec un paquet TCP.

89
Figure XXXIII-10 : Même trame non décodée.

EXERCICE :

Quelle est l'adresse MAC de la station source ? : ...................................................


Dans la figure ci-dessus, entourez les octets correspondants aux en-têtes Ethernet, IP, TCP et ceux de
l'application.
Dans l'en-tête IP, quel est le code du protocole TCP? : .....................
Dans la zone TCP, tracez un trait vertical pour séparer les différents champs.
Quelle est la longueur en nombre de mots de 32 bits, puis en octets du segment TCP? : ............., ..............
Pour quelle application, TCP est-il employé ? : .....................................................
En vous aidant de la figure précédente, quels sont les codes des applications FTP client et serveur dans l'en-
tête TCP? : ............................

90
XXXV -XXXIV - Protocoles de résolution d’adresses IP
XXXV-A- XXXIV-A- ARP (Protocole code 0806)
Une adresse IP est liée à une adresse physique en utilisant le protocole ARP64 (RFC 826 de 1982). Pour trouver
l’équivalence entre une adresse physique inconnue et une adresse IP connue, une station diffuse un paquet
ARP contenant une adresse IP destination ainsi qu’une adresse physique source et une adresse IP source. La
station destination renvoie un paquet contenant son adresse physique et son adresse IP. Une table de
correspondance entre les adresses physiques et les adresses IP, est mise à jour dans chaque station.
@IP 126.0.2.55
@IP 126.0.1.23 @IP 126.0.2.43 @IP 126.0.1.12
Quelle est l'@ Mon @ MAC est
MAC du nœud 08 25 66 AD FE AB
dont l'@ IP est
126.0.2.555 ?

Requête ARP dans une trame Ethernet Broadcast


Réponse avec l'adresse MAC demandée
Figure XXXIV-1 : Requête et réponse ARP.
Supposons qu'un utilisateur sur la station dont l'adresse IP est 126.0.1.23 ouvre une première session Telnet
sur le serveur UNIX dont l'adresse IP est 126.0.2.25. La station doit envoyer une trame Ethernet pour ouvrir la
session Telnet, mais elle ne connaît pas l'adresse MAC du serveur. Elle va dont envoyer une trame Ethernet
Broadcast avec une requête ARP. Cette requête est reçue par tous les nœuds du réseau, mais seul celui dont
l'adresse IP correspond à celle indiquée dans la requête va répondre. Dans cette réponse ARP on trouve
l'adresse MAC du serveur demandée par la station.
Pour éviter que ce processus ne se renouvelle à chaque ouverture de session avec le serveur, son adresse
MAC et mise dans un cache qui reste valide jusqu'à expiration d'un délai fixé par le système d'exploitation.

C:\>arp -a
Interface : 125.0.0.1 on Interface 2
Adresse Internet Adresse physique Type
125.0.0.2 00-10-7b-3c-3b-70 dynamique
Figure XXXIV-2 Contenu d'un cache ARP.
XXXV- A- 1-XXXIV- A- 1- Format d'un paquet ARP

@ Eth @ Eth Type de Type de T T @ Eth @ IP


Type matériel protocole OP @ Eth @ IP
Dest Source M P Emetteur Emetteur Cible Cible
6 6 2 2 2 1 1 2 6 4 6 4
En-tête Ethernet Requête / Réponse ARP
Figure XXXIV-3 : Format d'un paquet ARP.
Le champ type de l'en-tête Ethernet contient la valeur 0806 qui correspond à ARP.
Dans le paquet ARP qui peut être une Requête ou une Réponse :
 Type de matériel : indique le type de trame physique. La valeur est 1 pour Ethernet.
 Type de protocole : indique le protocole utilisé dans le système d'adressage. La valeur est 0800 pour IP.
 TM= Taille matériel : longueur des adresses MAC utilisées. 6 octets pour Ethernet.
 TP = Taille protocole : longueur des adresses utilisées dans le protocole. 4 octets pour IP.
 OP = Opération : est à 1, s'il s'agit d'une requête ARP. Est à 2, s'il s'agit d'une réponse ARP.
 @ Eth Emetteur : adresse Ethernet de l'émetteur.
 @ IP de l'émetteur.
 @ Eth Cible : adresse Ethernet de la cible. Ce champ n'est pas rempli dans la requête, puisqu'il s'agit de
l'information recherchée. Par contre, ce champ est rempli dans la réponse ARP.
 @ IP cible.

64 ARP = Address Resolution Protocol.

91
XXXV- A- 2-XXXIV- A- 2- Exemple ARP

Figure XXXIV-4 : Requête ARP.

Figure XXXIV-5 : Réponse ARP.


EXERCICE : Dans l'en-tête Ethernet, :
- quelle est la particularité de l'adresse de destination MAC ? .................................
- notez le code du type de protocole : ................................................
Dans le paquet ARP requête :
- quel est le code correspondant au type de trame Ethernet ? : .............
- quel est le code correspondant au protocole IP ?: ................................
- quelles sont les longueurs indiquées pour les adresses "physiques" et les adresses "protocole"? : .... , .....
- quelle est l'adresse Ethernet cible figurant dans la requête ARP ? : ..........................................
- comparez-la avec celle figurant dans l'en-tête Ethernet . ............................................................................
- pourquoi la première trame comporte-t-elle des FF après le paquet ARP requête ? .............................
.............................................................................................................................................................
Dans le paquet ARP réponse :
- quelle est l'adresse Ethernet objet de la demande figurant dans la réponse ARP ? : ..................................

92
XXXV-B- XXXIV-B- RARP (Protocole code 8035)
XXXV- B- 1-XXXIV- B- 1- Rôle de RARP
Le protocole RARP65 (RFC 903 de 1984), permet au contraire d'ARP, à une station sans disque ou à un
Terminal X66 de connaître son adresse IP à partir d’une table de correspondance des adresses physiques et
IP maintenue à jour sur un serveur RARP. Lorsqu’une machine veut connaître son adresse IP, elle envoie un
paquet de "requête" RARP contenant son adresse physique et le serveur RARP lui répond en lui envoyant un
paquet RARP réponse contenant l’adresse IP. Pour que le protocole puisse être utilisé, il faut que le réseau
comporte au moins un serveur RARP. Celui-ci utilise une table normalement contenue dans le fichier /etc/ethers
sous UNIX. Le protocole TFTP est ensuite utilisé pour charger le logiciel dans le terminal à partir du serveur.
Station Table Serveur RARP
sans disque @MAC @IP Ton @IP est
Quelle est 126.0.2.3 !
mon @ IP ? xxxxxxxx 126.0.2.3
xxxxxxxx 126.0.5.9
xxxxxxxx 126.0.1.1
Requête RARP en mode broadcast

Réponse RARP
Figure XXXIV-6 : Requête et réponse RARP.
Supposons que la station sans disque ne puisse pas stocker son adresse IP. Au démarrage, le logiciel contenu
dans la ROM de Boot va envoyer une requête RARP dans une trame broadcast. Le serveur RARP consulte la
table de correspondance entre les adresses MAC et les adresses IP, établie manuellement par l’administrateur.
Il retourne l’adresse IP de la station dans une réponse RARP.
XXXV- B- 2-XXXIV- B- 2- Format RARP

@ Eth @ Eth Type de Type de


Type matériel protocole T T OP @ Eth @ IP @ Eth @ IP
Dest Source M P Emetteur Emetteur Cible Cible
6 6 2 2 2 1 1 2 6 4 6 4

En-tête Ethernet Requête / Réponse RARP


Figure XXXIV-7 : Format paquet RARP.
Le format d'un paquet RARP est identique à celui d'un paquet ARP. Cependant la valeur du champ type de
l'en-tête Ethernet n'est pas O806, mais 8035.
Dans le paquet RARP qui peut être une Requête ou une Réponse :
 Type de matériel indique le type de trame physique. La valeur est 1 pour Ethernet.
 Type de protocole indique le protocole utilisé dans le système d'adressage. La valeur est 0800 pour
IP.
 TM= Taille matériel = longueur des adresses MAC utilisées. 6 octets pour Ethernet.
 TP = Taille protocole = longueur des adresses utilisées dans le protocole. 4 octets pour IP.
 OP = Opération ; est à 3, s'il s'agit d'une requête RARP. Est à 4, s'il s'agit d'une réponse RARP.
 @ Eth émetteur : adresse Ethernet de l'émetteur.
 @ IP de l'émetteur : ce champ est vide dans la requête et contient la valeur donnée par le serveur
dans le paquet de réponse.
 @ Eth cible : adresse Ethernet de l'émetteur. Ce champ n'est pas rempli dans la requête. Contient
l'adresse Ethernet du serveur RARP dans la réponse.
 @ IP cible : ce champ est vide dans la requête et contient l'adresse IP du serveur dans la réponse.
RARP ne franchit pas les routeurs. Ce protocole est donc abandonné actuellement au profit de protocoles de
configuration IP comme BootP ou DHCP.

65 RARP = Reverse Address Resolution Protocol = Protocole de résolution d'adresse inverse.


66 Terminal X = Terminal X Windows connecté à un serveur Unix graphique.

93
XXXVI -XXXV - Protocoles de configuration IP automatique
Lorsque les réseaux deviennent très importants, il devient fastidieux de configurer IP sur chaque ordinateur.
D’autre part l’usage de plus en plus répandu d’ordinateurs portables interdit sur ces machines des
configurations fixes. Il faut qu’au cours des déplacements les ordinateurs portables puissent acquérir une
configuration IP (adresse et masque) de manière automatique. L’IETF67 a développé plusieurs protocoles pour
configurer automatiquement les ordinateurs sur les réseaux TCP/IP dont BOOTP 68 et DHCP69
XXXVI-A- XXXV-A- BOOTP
BOOTP (RFC 951 de 1985 et 1532 de 1993) est un protocole dont le rôle est le même que celui de RARP,
mais contrairement à ce dernier, il fonctionne sur les réseaux comportant des routeurs. BOOTP peut être
considéré comme une amélioration de RARP et permet d'obtenir des adresses IP pour des stations sans
disques ou des terminaux X à partir d'une table, gérée manuellement, existant sur un serveur BOOTP. Le
protocole de transport de BOOTP est UDP.

En-tête En-tête En-tête Requête ou Réponse


Ethernet IP UDP BOOTP
Figure XXXV-1 : Positionnement de BOOTP dans une trame Ethernet.
Le client BOORP qui désire connaître son adresse IP, envoie une requête dans un paquet UDP.. Le serveur
lorsqu’il reçoit la requête consulte la table des adresses et renvoie une réponse BOOTP dans un paquet UDP.
Si le serveur DHCP est sur un autre réseau, un agent de relais BOOTP doit être installé sur une station d'un
des réseaux.
BootP Cl
Serveur 68
UDP
DHCP
IP BootP Cl
68
Table Physique
Réponse BOOTP UDP
d’adresses IP
Requête BOOTP
BootP S BootP Cl Physique
67 68
UDP UDP Routeur
IP IP Agent de
Physique Physique relais BOOTP

Figure XXXV-2 : Requête et réponse BOOTP.


En utilisant conjointement BOOTP et le protocole de transfert de fichiers simplifié TFTP, on peut obtenir le
chargement dans la mémoire de la station ou du terminal du logiciel nécessaire à son fonctionnement. Ce
logiciel est stocké dans un répertoire particulier pour chaque station du serveur BOOTP.

Client 1 Requête BOOTP Serveur


BOOTP Réponse BOOTP 2 BOOTP

Client 3 Requête TFTP Serveur


TFTP Réponse TFTP 4 TFTP
UDP UDP
IP IP
Physique Physique

Figure XXXV-3 : Association de BOOTP et TFTP.

67 IETF = Internet Engineering Task Force.


68 BOOTP= Boot Protocol.
69 DHCP = Dynamic Host Configuration Protocol.

94
XXXVI-B- XXXV-B- DHCP
Le protocole DHCP est une amélioration de BOOTP. Il permet d’allouer des adresses selon plusieurs méthodes
et il permet comme BOOTP le chargement de fichiers à partir du serveur. Ce protocole est routable, si on
installe un agent de relais DHCP dans les routeurs.
Allocation d’adresses
L’allocation des adresses peut se faire de 3 manières différentes :
 Allocation manuelle : C’est l’administrateur qui établit, à la main, une correspondance entre l’adresse
MAC de l’ordinateur client DHCP et son adresse IP
 Allocation automatique : Une adresse est attribuée automatiquement à un ordinateur possédant un
client DHCP. L’adresse IP est attribuée au cours de la première requête du client et elle est
définitivement attribuée à l’ordinateur.
 Allocation dynamique : Cette méthode permet d’attribuer de manière temporaire une adresse IP à un
ordinateur qui possède un client DHCP. C’est cette méthode qui est utilisée par les fournisseurs de
services Internet pour les clients se connectant par l’intermédiaire du RTC. Cette méthode est aussi
très pratique lorsqu’il existe de nombreux ordinateurs portables qui se connectent sur un réseau, puis
sur un autre. Un système de gestion de durée des "Baux" permet de limiter la durée d’utilisation d’une
adresse par un ordinateur.

Serveur DHCP
Plage des adresses qui
seront allouées de
manière dynamique

Masque de sous-réseau

Plages des adresses


pouvant être exclues à
l’intérieur de la réserve
d’adresses

Durée de vie des


adresses allouées
dynamiquement

Figure XXXV-4 : Panneau de configuration d'un serveur DHCP sous NT4.

Si au cours de la
configuration du protocole
TCP/IP sur un ordinateur
avec OS Microsoft, on
coche cette case, le client
DHCP est activé et
l’ordinateur demandera
son adresse IP à un
serveur DHCP.

Figure XXXV-5 : Déclaration du client DHCP dans un ordinateur avec OS Microsoft.

95
XXXVII -XXXVI - Routage
Le terme routage désigne la transmission de datagramme à partir d'un nœud d’un réseau vers un autre nœud
situé sur le même réseau ou sur un réseau différent. Ce terme désigne aussi le cheminement qui est établi pour
transmettre un datagramme IP de son origine vers son point de destination en utilisant les adresses IP
contenues dans le datagramme. Un routeur est une machine qui possède au minimum 2 interfaces différentes
connectées sur des réseaux différents.
XXXVII-A- XXXVI-A- Table de routage
Le fonctionnement du routage nécessite la présence de tables de routage dans les routeurs pour déterminer le
chemin à emprunter pour envoyer un datagramme IP d'une machine à une autre à travers l'internet.
La table de routage contient les informations suivantes :
 l'adresse IP de destination. Cette adresse peut être une adresse machine ou une adresse réseau
suivant la valeur d'un flag H faisant lui-même partie de la table.
 l'adresse IP du routeur suivant (next hop router) ou l'adresse du réseau qui lui est directement
connecté s'il n'y a plus d'autres réseaux.
 des flags. (opion)
 le nom de l'interface réseau à laquelle il faut envoyer le datagramme pour qu'il soit transmis.
La constitution de cette table est réalisée :
 une seule fois par constitution d'un fichier ou par lancement au démarrage d'une commande
particulière (route sous Unix) à l'aide de protocole de routage. On parle alors de routage statique.
 avec une remise à jour permanente réalisée par des protocoles spécialisés IGP comme RIP70,
HELLO, OSPF71 ou EGP comme BGP72. On parle alors de routage dynamique.
Les protocoles de type IGP (Interior Gateway Protocol) sont utilisés entre routeurs d'un même internet, alors
que les protocoles de type EGP (Exterior Gateway Protocol) sont utilisés pour des routeurs d'internets
différents.
Destination Gateway Flags RefCnt Use Interface
125.0.25.36 125.0.1.220 UGH x xxxxxx eth0
125.0.25.75 125.0.1.220 UGH x xxxx eth0
127.0.0.1 127.0.0.1 UH x xxxx lo0
125.0.1.10 125.0.1.12 U x xxx eth0
default 125.0.1.220 UG x xxxx eth0
126.0.0.0 125.0.1.220 UG x xxxx eth0
Figure XXXVI-1 : Exemple de table de routage de Soleil 125.0.1.12 obtenue avec la commande "netstat".
 la première colonne contient les adresses des machines reconnues par les protocoles de routage. 127.0.0.0
est l'adresse de test de l'ordinateur SOLEIL. L'adresse "default" est l'adresse par défaut du routeur connecté
au réseau 125, permettant la connexion aux autres réseaux.
 la seconde colonne comporte les adresses des routeurs à emprunter.
 la troisième colonne comporte des flags. U (Up) indique que la route est en service. G (Gateway) indique
que la route passe par un routeur. H indique que l'adresse de la première colonne est une adresse machine
complète.
 Refcnt est le compteur de connexions utilisant la route et Use le nombre d'octets transportés
 Interface indique le nom de l'interface machine utilisée sur SOLEIL.
XXXVII-B- XXXVI-B- Routeur IP
Le routeur IP effectue les traitements suivants :
 Recherche dans la table de routage de l'adresse de destination complète de la machine. Si elle est trouvée,
le datagramme lui est expédiée directement ou à travers un autre routeur. Dans le cas où cette adresse n'est
pas trouvée, il passe à la phase suivante.
 Recherche de l'adresse du réseau correspondant à l'adresse de destination. Si elle est trouvée, le
datagramme est expédié. Sinon, le routeur passe à la phase suivante.
 Recherche d'une adresse de routage par défaut qui doit correspondre à l'adresse d'un routeur connecté au
réseau. Si aucune adresse n'est trouvée, un message est délivré.

70 RIP = Routing Information Protocol


71 OSPF = Open Shortest Path First Protocol
72 BGP = Border Gateway Protocol

96
XXXVII-C- XXXVI-C- Direct
Le routage direct est la transmission d’un datagramme d’une station à une autre à l’intérieur d’un même réseau.

Jupiter Apollon
00 80 45 56 96 23 00 80 45 3F DA EE
126.0.25.36 126.0.25.75

En-tête En-tête
Data
Ethernet IP

126.0.25.75
00 80 45 3F DA EE

Figure XXXVI-2 : Routage direct ; Exemple.


Lorsque la couche IP reçoit les données à transmettre, elle cherche dans la table de routage si la station de
destination est sur le même réseau ou si le datagramme doit transiter par un routeur. Dans l'exemple, la
machine destination étant sur le même réseau, le datagramme est passé à la couche liaison qui trouve dans le
cache ARP l'adresse physique de destination et l'incorpore dans l'en-tête Ethernet.
XXXVII-D- XXXVI-D- Indirect
Le routage indirect fait apparaître la notion de routeur. Quand un datagramme est envoyé d’un réseau vers un
autre réseau, les parties “réseau” des adresses IP Source (125) et Destination (126) sont différentes. Dans ce
cas, la station émettrice envoie le paquet au routeur qui relie les 2 réseaux en utilisant l’adresse physique de
ce dernier. Le routeur utilise l’adresse IP pour reconnaître le réseau et la station auxquels il doit envoyer ce
paquet. Chaque routeur possède pour chacun des réseaux sur lequel il est connecté, une cache ARP entre les
adresses IP et les adresses Physiques.
Réseau 193.252.36
193.252.36.1.
E1 00 5036
23 45 AF BD Table de routage du routeur
@IP Rés dest Interface Apollon
125.0.0.0 E0 En-tête En-tête
ROUTEUR Ethernet IP
Data
126.0.0.0 E1
193.252.36.0 E1 126.0.25.75
E0 00 50 23 45 AF BD 00 80 45 3F DA EE
00 80 45 3F DA EE
126.0.25.36 126.0.25.75
00 80 45 AB 46 FA
E1 126.0.25.223
Réseau 126
Table de routage Venus
@IP Rés dest Interface
En-tête En-tête
Data Vénus 125.0.0.0 E0
Ethernet IP
126.0.0.0 E1
126.0.25.75 193.252.36.0 E1
00 80 45 65 96 23 E0 125.0.1.220 Réseau 125
00 80 45 56 96 23

Soleil Uranus
00 80 45 FD 0A AA 00 80 45 3F BF DA
125.0.1.12 125.0.1.10
Figure XXXVI-3 : Routage sur un internet.
Le routeur est la machine Vénus. Il comporte 2 cartes réseau, donc 2 adresses MAC et 2 adresses IP
comportant des numéros de réseaux différents. Supposons que la machine Soleil veuille envoyer un
datagramme IP vers la machine Apollon. La couche IP recherche l'adresse IP de destination dans la table de
routage et déterminer le routeur auquel il faut transmettre le paquet. Le processus suivant est utilisé (comme
page précédente) :
-1- Recherche de l'adresse IP destination complète, si elle existe dans la table, pour déterminer
l'adresse du prochain routeur sur le chemin emprunté pour atteindre la destination.
-2- Si l'adresse complète n'est pas trouvée, la couche IP essaye d'utiliser l'adresse réseau destination
(126) et le routeur correspondant.
-3- Si l'adresse réseau destination n'est pas non plus trouvée dans la table, IP utilise l'adresse du
routeur par défaut (125.0.1.220).
 En utilisant le contenu du cache ARP présent dans Soleil, la couche IP envoie le datagramme dans une
trame Ethernet avec comme adresse destination MAC celle du routeur Vénus connectée au réseau 125
(00 80 45 56 96 23). L'adresse de destination IP est celle d’Apollon. Dans le routeur, IP analyse l'adresse
de destination IP. Après consultation des tables de routage et du cache ARP, une trame Ethernet avec
l'adresse MAC d'Apollon (00 80 45 3F DA EE) est envoyée sur le réseau 126 avec comme adresse de
destination IP 126.0.25.75.

97
XXXVIII -XXXVII - Protocoles de routage
Pour assurer le routage dynamique et mettre à jour automatiquement les tables de routage, IP utilise 2 grands
types de protocoles : les protocoles de passerelles intérieurs (IGP = Interior Gateway Protocol) et les protocoles
de passerelles extérieurs (EGP = Exterior Gateway Protocol). Les IGP sont utilisés à l'intérieur des inter-réseaux
ayant une administration commune appelée systèmes autonomes. Les protocoles de types EGP sont utilisés
entre les systèmes autonomes. Le mot Gateway peut être traduit par passerelle ou routeur.

Système Protocole de Système


autonome type EGP autonome
utilisant des utilisant des
protocoles de protocoles de
type IGP type IGP
Figure XXXVII-1 : Protocoles IGP et EGP.

XXXVIII-A- XXXVII-A- Protocoles de passerelles intérieurs de type IGP


Les protocoles de type IGP sont au nombre de 2 :
 le protocole RIP = Routing Information Protocol
 et un protocole plus récent le protocole OSPF = Open Shortest Path First Protocol.
XXXVIII- A- 1-XXXVII- A- 1- RIP
RIP (RFC 1058 de 1988) utilise des requêtes et des réponses pour échanger avec les routeurs voisins des
chemins pour compléter ou mettre à jour les tables de routage. C'est un protocole du type "à vecteurs de
distance", c'est-à-dire qu'il établit les chemins en tenant compte du nom minimum de routeurs à traverser. Un
champ dans ce message RIP, appelé métrique, indique le nombre de sauts (routeurs) qu'il faut faire pour
atteindre la machine de destination. La valeur maximale est de 15. RIP 2 (RFC 1388 de 1993) est une version
plus récente et améliorée de RIP.
XXXVIII- A- 2-XXXVII- A- 2- OSPF
OSPF (RFC 1247 de 1991) est un autre protocole utilisé dans les systèmes autonomes, mais qui n'utilise pas
la notion de compteurs de sauts. C'est un protocole du type "à état de liaison", c'est-à-dire que les chemins
sont établis en tenant compte du coût minimum pour les établir. Le coût est calculé en fonction de plusieurs
paramètres, dont le débit des lignes utilisées. Ainsi une ligne WAN à un coût supérieur à un réseau LAN.
Chaque chemin est entré dans la table de routage avec son coût. Le routeur sélectionne le chemin qui possède
le coût le moins élevé.
XXXVIII-B- XXXVII-B- Protocoles de passerelles extérieurs de type EGP
IP comporte 2 protocoles de passerelle extérieurs : le protocole EGP (Exterior Gateway Protocol) et le protocole
BGP ( Border Gateway Protocol), plus récent qui devrait remplacer le premier.

98
XXXIX -XXXVIII - Protocole de gestion des erreurs ICMP
ICMP (Internet Control Message Protocol RFC 792 de 1981) est un protocole qui permet l'envoi des messages
d'erreur.
Message ICMP
Type Code Somme de
En-tête En-tête 8 bits 8 bits contrôle
Contenu du message
Ethernet IP

Figure XXXVIII-1 : Format du message ICMP.


Le champ type indique le type de message contenu dans le paquet. Dans chaque type, il peut exister un sous-
type indiqué par le contenu du champ code. Par exemple, le type 3 indique que la destination est inaccessible.
Le code 0 précise qu'il s'agit d'un réseau inaccessible. Les combinaisons type + code indiquent s'il s'agit d'une
requête ou d'une réponse.
Le champ somme de contrôle est une Checksum.
Les messages ICMP sont utilisés par exemple par l'application Ping pour tester les liaisons. Ils sont générés
aussi pour obtenir un masque de sous-réseau, pour obtenir l'heure courante sur une autre machine, pour
signaler des ports, des machines ou des réseaux inaccessibles et d'une manière plus générale pour prévenir
de toute erreur survenant sur le réseau.

XL -XXXIX - Protocoles de lignes séries


Le protocole IP est prévu pour fonctionner sur des réseaux LAN. Dans le cas de liaisons séries, 2 protocoles
en capsulant les paquets IP sont utilisés : SLIP et plus récemment PPP.
XL-A- XXXIX-A- SLIP
SLIP (Serial Line Internet Protocol RFC 1055 de 1988) permet l'encapsulation de datagrammes IP sur des
liaisons séries. Il n'assure aucun adressage, ni séquencement, ni détection ou correction d'erreur. Il permet le
transport d'un point à un autre sur une ligne série de paquet IP encadrés de délimiteurs. Il est très utilisé pour
les liaisons entre les particuliers et le réseau Internet par RTC et modems.

0xC0 Paquet IP 0xC0

Figure XXXIX-1 : Format d'une trame SLIP.


SLIP est un protocole orienté caractères, c'est-à-dire que les contrôleurs de communication recherchent des
caractères de contrôle (comme 0xC0) dans les données transmises. Si le code C0 du délimiteur existe à
l'intérieur du paquet IP, il pourrait être confondu avec le caractère de fin de trame SLIP. Il est donc remplacé
par 2 octets de valeur 0xDB et 0xDC. Ces 2 octets sont remplacés par la valeur 0xC0 à la réception de la trame.
Il existe une variante de SLIP qui est CSLIP. Cette autre version compresse une partie de la trame SLIP et
permet d'améliorer le débit apparent sur la liaison série.
XL-B- XXXIX-B- PPP
Protocole PPP (Point To Point Protocol RFC 1331 DE 1992)
Ce protocole plus évolué que SLIP est en passe de le remplacer. Il utilise une variante d'HDLC pour assurer
une liaison point à point fiable. Pour assurer la détection et la correction d'erreur, un champ FCS est présent
dans la trame et des procédures de retransmission sont prévues.

Adresse Contrôle Protocole


0x7E
0xFF 0x03 0x0000 Paquet IP FCS 0x7E

Figure XXXIX-2 : Format d'une trame PPP.


Des protocoles peuvent être utilisés pour assurer avant transmission des négociations entre les couches des
stations d'extrémité. Un ensemble de protocoles est utilisé à cet usage et porte le nom de NCP (Network Control
Protocol). Le code du protocole utilisé à un moment de la négociation figure dans le champ "Protocole" de la
trame PPP. Les en-têtes PPP peuvent être compressés ainsi que les en-têtes TCP/IP (Méthode Van Jacobson)

99
en utilisant le protocole de négociation IPCP (Internet Protocol Control Protocol). Les champs "Adresse" et
"Contrôle" étant inutiles la liaison établie, le format de la trame après compression devient :

Protocole
0x7E
0x0000 Paquet IP FCS 0x7E

Figure XXXIX-3 : Format d'une trame PPP avec compression des en-têtes.
Le protocole PPP est très utilisé par les logiciels permettant la connexion à des serveurs Internet au moyen de
liaisons séries composées de modems et de lignes téléphoniques commutées.

XLI -XL - Outils de maintenance


Pour assurer la maintenance des réseaux et matériels fonctionnant sous TCP/IP, il existe un certain nombre
d'outils logiciels. Ces outils existent pour tous les systèmes d'exploitation UNIX, NetWare et Microsoft. La
syntaxe utilisée ci-après est celui de l'outil Microsoft.
XLI-A- XL-A- Ping
C'est l'outil de maintenance IP de base. Il envoie un message ICMP dans un paquet IP. Ce message doit être
retourné par le nœud dont l'adresse est indiquée derrière la commande. Des paramètres permettent de modifier
la taille des paquets envoyés, leur nombre, le délai les séparant. Si la trame envoyée n'est pas retournée dans
un temps imparti, il y a time out et affichage d'un message d'erreur.
 En tapant Ping 127.0.0.1, la carte réseau n'est pas testée, les différentes couches de la pile IP le sont.
 En tapant Ping, suivi de l'adresse IP de l'ordinateur sur lequel est exécuté le test, on teste la pile IP et
la carte réseau qui est en mode bouclage.
 En tapant Ping, suivi d'une adresse IP d'un nœud du réseau existant et fonctionnel, on doit obtenir des
messages qui affichent le temps mis pour exécuter l'aller-retour entre l'ordinateur local et le distant. Un
pourcentage d'erreur est affiché éventuellement.

C:\>ping -n 10 -l 500 126.0.0.1

Pinging 126.0.0.1 avec 500 octets de données :

Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127


Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127
Réponse de 126.0.0.1 : octets=500 temps<10ms TTL=127

Figure XL-1 : Exemple de commande Ping.

XLI-B- XL-B- Tracert


Cet outil est connu sous le nom de Trace route sous Unix. Il permet de suivre le chemin emprunté sur un internet
pour atteindre un nœud distant. Le logiciel affiche plusieurs durées qui ont été nécessaires pour que les paquets
atteignent un nœud déterminé. La ligne se termine par le nom DNS du nœud.

C:\>tracert www.renault.fr

Trace l'itinéraire vers www.renault.fr [194.51.107.102]


avec un maximum de 30 tronçons :

1 150 ms 141 ms 140 ms 192.168.12.1


2 130 ms 140 ms 140 ms AUB5.rain.fr [195.101.8.1]
3 140 ms 140 ms 141 ms AUBG2-p0-2.rain.fr [194.250.89.133]

100
4 140 ms 141 ms 140 ms ARC5-POS-6-0-0.rain.fr [194.51.221.78]
5 140 ms 141 ms 140 ms Sgip2.rain.fr [195.101.10.22]
6 141 ms 150 ms 140 ms styx.sgip.fr [194.206.15.194]
7 160 ms 150 ms 150 ms www.renault.fr [194.51.107.102]

Routage terminé.

Figure XL-2 : Tracert sur www.renault.fr.

101
Des logiciels graphiques reprennent cet outil pour tracer une carte du chemin emprunté pour atteindre le nœud
cible.

Figure XL-3 : Utilisation de Tracert dans le logiciel graphique Visualroute.

XLI-C- XL-C- Ipconfig


Sos NT cette commande avec l'option /all affiche la configuration réseau et TCP/IP de l'ordinateur.

C:\>ipconfig /all
Configuration IP de Windows NT
Nom d'hôte . . . . . . . . . . . . : al_sta
Serveurs DNS . . . . . . . . . . . :
Type de nœud. . . . . . . . . . . : Hybride
Id d'étendue NetBIOS . . . . . . . :
Routage IP activé. . . . . . . . . : Oui
WINS Proxy activé. . . . . . . . . : Non
Résolution NetBIOS utilisant DNS . : Oui

Ethernet carte El90x1 :


Description. . . . . . . . . . . . : 3Com 3C90x Ethernet Adapter
Adresse physique . . . . . . . . . : 00-A0-24-A6-D1-22
DHCP activé. . . . . . . . . . . . : Non
Adresse IP . . . . . . . . . . . . : 125.0.0.1
Masque de sous-réseau. . . . . . . : 255.0.0.0
Passerelle par défaut. . . . . . . : 125.0.0.2
Serveur WINS primaire. . . . . . . : 126.0.0.1

Figure XL-4 : Résultat de la commande IPconfig sous Windows NT.

Cette commande est remplacée par utilitaire WINIPCFG sous Windows 95.

102
XLI-D- XL-D- Netstat
Netstat.exe affiche de nombreuses statistiques sur les protocoles et les connexions réseau. Cette commande
possède de nombreux paramètres qui donnent des résultats très différents.

C:\>netstat –e
Statistiques interfaces
Reçu Envoyé
Octets 13542338 544425
Paquets unicast 9774 6648
Paquets non-unicast 70 70
Rejets 0 0
Erreurs 0 0
Protocoles inconnus 0

C:\>netstat -n
Connexions actives
Proto Adresse locale Adresse extérieure Etat
TCP 125.0.0.1:139 126.0.0.1:1042 ETABLIE
TCP 125.0.0.1:1025 126.0.0.1:139 ETABLIE
TCP 125.0.0.1:1031 126.0.0.1:139 ETABLIE
TCP 127.0.0.1:1026 127.0.0.1:1030 ETABLIE
TCP 127.0.0.1:1030 127.0.0.1:1026 ETABLIE
Figure XL-5 : Résultats de la commande Netstat avec 2 options différentes

XLI-E- XL-E- Arp


La commande arp -a permet d'obtenir le contenu du cache ARP.

C:\>arp -a

Interface : 125.0.0.1 on Interface 2


Adresse Internet Adresse physique Type
125.0.0.2 00-10-7b-3c-3b-70 dynamique
Figure XL-6 : Résultats de la commande arp -a.
____________________________
Bibiographie
Nom de l'ouvrage Auteur Editeur Commentaires
TCP/IP Karnjit S. S&SM Très bon ouvrage sur la théorie et les
Le Macmillan 199x Siyan ISBN : 2-7440-0391-3 concepts de TCP/IP. Rappels sur les
Web : http://www.ssm.frréseaux. Une référence. Questions de
révisions à chaque chapitre.
TCP/IP Règles et W. R. Addison- Wesley France Bon ouvrage plus ancien que le précédent.
protocoles Kernighan ISMN 2-87908-82-7 Questions de révision à chaque chapitre.
TCP/IP Rob Campus Press Cet ouvrage est destiné aux personnes
Préparation au MCSE Scrimger ISBN : 2-7440-0598-3 voulant se présentant au MCSE. Pas de
Examen 70-059 & Kelli Web : théorie sur TCP/IP, uniquement la mise en
Adam http://www.campuspress.fr œuvre de TCP/IP sur les produits Microsoft
et NT en particulier.
TCP/IP Craig Collection L'expert de Pas beaucoup de théorie, mais parle de la
Zacker Sybex mise en oeuvre de TCP/IP sur les produits
ISBN : 2-7361-3102-9 Microsoft et Novell.
Web : http://www.sybex.fr

Le cahier des charges fonctionnel d'une application


informatique Internet

103
Résumé : L'usage d'un cahier des charges fonctionnel peut-il apporter une
réponse à la crise structurelle qui paralyse actuellement l'informatique Internet ?
Propositions concernant l'objet, le contenu et les particularités du CdCF d'une
application informatique complexe sur Internet.

XLII -XLI - I. L’antichambre du cahier des charges


La crise actuelle de l’informatique Internet n’est pas seulement la fin logique d’une bulle spéculative.
C’est aussi une crise structurelle qui présente certaines analogies avec celle de 19911995, et qui pose,
une fois de plus, le problème de la relation, volontiers conflictuelle, entre demandeur et concepteur de
réalisation informatique.
A ses débuts, l’informatique Internet n’était qu’un sous-ensemble de l’informatique générale. Actuellement,
ce serait plutôt un rejeton en train d’absorber son géniteur. En effet, secteur par secteur, les différentes
fonctionnalités informatiques des entreprises migrent vers ce vecteur pour le transfert de l’information. Le
phénomène se déclenche lorsque le besoin se fait sentir d’impliquer des acteurs géographiquement
distants, intéressés par une diffusion quasi-instantanée de l’information.
Au fur et à mesure de ce glissement, les applications Web gagnent en complexité. A partir d'un seuil, on
doit les concevoir, les développer,les monter en exploitation, en assurer la maintenance avec la rigueur
suivie dans les chantiers d' informatique générale (en y ajoutant, bien sûr, le respect des contraintes qui
sont propres à Internet).
Mais, apparemment, ce principe n'était pas évident pour ceux qui alimentèrent le rêve spéculatif : Comment
a-t-on pu en arriver là ?
La décennie 1985-1995 fut l’ère des méthodologies (Merise, OMT, UML etc.). En tout cas, le principe
du recours à une méthode était admis lorsque, vers 1996, le Web explosa sous le double coup de boutoir
de Microsoft, qui imposa ses serveurs tournant sur PC, et de la montée en puissance au grand galop
desdits PC qui se mirent à attaquer le monopole détenu jusque là par d’UNIX.
L'appel d'air fit s'engouffrer des débutants à peine formés, mais rejeta beaucoup de développeurs
informatiques chevronnés, jugés trop vieux (que l'on affecta au Bug de l'An 2000, censé les occuper pour
quinze ans).

... Et tout le monde se retrouva à la case départ des jeunes années 80, improvisant, bidouillant,
rafistolant comme au bon vieux temps. Oubliées les méthodologies ...
Il faut tout de même reconnaître que celles-ci avaient donné des verges pour se faire battre ! Elles avaient
une image de pesanteur et de coût prohibitif.
En fait, leur drame est de pas avoir été appliquées par les acteurs prévus : Elles avaient été conçues
comme un outil de dialogue, à parité, entre utilisateurs et informaticiens. Or ces derniers étaient trop
souvent amenés à conduire seuls l’analyse, faute d’un goût prononcé pour le dialogue - peut-être - , mais
aussi parce que le formalisme de représentation des traitements (en particulier le MCT/MOT, selon le
vocabulaire Merisien) était illisible pour les utilisateurs, qui ne pouvaient donc pas donner leur
indispensable validation.
En parallèle (1990 - 2000) se développèrent d’autres thèmes porteurs, tels que les structures
clients/serveur (promises à un bel avenir), l’ « orienté Objet » (expression dont on usa et abusa). Puis dans
un cadre beaucoup plus vaste, la « démarche Qualité » et les efforts de normalisation.
L’AFNOR publia en 1991 une série de normes centrées sur l’ « analyse de la valeur » : X 50-100, X 50-
151, X 50-152, X 50-153. La seconde de cette série est axée sur le "cahier des charges fonctionnel"
(abréviation : "CdCF"), et fit figure de référence en la matière.

Cet effort de normalisation se voulait très général : Il ne faut pas perdre de vue que le précurseur de ce
mouvement était le BTP. Beaucoup restait à faire pour que le secteur de l’informatique puisse en tirer un
profit direct. Mais il avait le mérite d’identifier certaines préoccupations majeures qui apparaissent d’une
actualité urgente aujourd’hui, en cette phase de crise, tant la relation entre demandeurs et prestataires
ressemble aujourd’hui, dans le domaine Internet, à un conte du folklore russe intitulé :
« Va je ne sais où, rapporte moi je ne sais quoi ».

104
XLIII -XLII - II. Du « besoin » à l’ « attente »
L’idée directrice est que :
 le cahier des charges est l’oeuvre du demandeur
Le demandeur se trouve donc réinvesti dans ses responsabilités et cela avant tout contact avec un
prestataire. Par ailleurs, il n'est astreint aucun formalisme graphique.
 Ce demandeur identifie, et exprime par écrit, ses besoins en termes fonctionnels, Il précise
les contraintes et leurs limites (leur « flexibilité »).
Il formule son besoin en terme de résultat attendu, et ne se prononce pas sur le choix des moyens. Il
sort ainsi son besoin des limbes de l’inconscient, et en fait une « attente» dont les contours sont précis,
et qui servira de cadre à un engagement réciproque (le futur document contractuel).
 Il élabore ainsi un document qui permettra un appel d’offres, donc une compétition équitable,
 Il précise les critères d’appréciation qui orienteront son choix parmi les propositions qui seront
soumises
La norme invite donc à agir dans le cadre d’une certaine éthique professionnelle.
 Ce document est conçu pour servir de cadre de réponse aux candidats, Ce qui devrait faciliter la
comparaison de leurs propositions.

Il s’agit donc d’anticiper sur la future relation contractuelle, en permettant à chacun de prendre conscience,
le plus tôt possible, de ses responsabilités,

III. Un « cahier des charges » en informatique Internet, pour quoi faire ?

Pour le demandeur :

il s’agit de gagner du temps, de travailler efficacement et d’éviter les déceptions.


Il est certain que l’élaboration d’un cahier des charges est une astreinte : Il va falloir poser un regard lucide
sur l’existant de l’entreprise, se documenter sur les possibilités d’un secteur parfois mal connu, identifier
les besoins et les améliorations possibles, concilier les opinions, formaliser par écrit ce qui est le début
d’un engagement, prendre le risque de l’erreur.
La tentation est grande de l’esquiver. Mais le simple fait de s’engager sur des bases floues risque
d’occasionner :
 Une multiplication des entretiens avec les candidats, redites, perte de temps, voire un harcèlement
téléphonique pour obtenir les éléments nécessaires à la réponse,

 L’influence des candidats cherchant à vendre un produit préexistant, qui n’est pas nécessairement
adapté au contexte, ou « poussant à la dépense », La sélection du candidat final sur des critères
irrationnels ,

 Des lacunes dans le document contractuel ultérieur (qui sera probablement rédigé par le prestataire

sélectionné), d’où un risque de tensions et de difficultés juridiques, Une sous-estimation de

l’engagement financier , une dérive du calendrier, Sur le plan qualitatif, un résultat décevant et ne

permettant pas d’évolution .

En somme, en voulant faire l’économie de cette phase, on favorise l’installation d’une situation de
dépendance vis à vis du prestataire, et on ne fait que retarder un travail d’investigation qui se révélera,
de toute façon, inévitable.

Pour le prestataire :

c’est le moyen de disposer d’emblée d’un maximum d’éléments lui permettant :


 d’estimer s’il est possible d’installer une relation fructueuse avec le demandeur .
En clair : Ce dernier marie-t-il harmonieusement exigence, lucidité, raison et correction (… et si possible
solvabilité) ?

 de vérifier si la tâche correspond à son propre créneau , et à ses disponibilités.

105
 de démontrer qu’il est apte à comprendre une problématique complexe à partir d’un document écrit,

 de faire valoir ses compétences et ses expériences en ce domaine,

 de chiffrer sa prestation ,
Et c’est là la pierre d’achoppement : Aussi surprenant que cela paraisse, en informatique, un
développement original (par opposition à un logiciel simplement adapté au nouveau contexte) est une
opération souvent difficile à chiffrer , sauf à disposer d’un descriptif précis.
... Tout ceci, en y consacrant le moins de temps possible, sachant que ce travail ne lui sera peut-être
jamais rémunéré, et en espérant qu’il ne s’agit pas d’un « faux appel d’offres » (l’heureux élu est déjà
choisi, la procédure ne sert qu’à donner une apparence d’objectivité).

XLIV -XLIII - IV. Le contenu (généralités)


La Norme utilise à plusieurs reprises le terme d’ «analyse fonctionnelle». Mais il s’agit là d’une
terminologie très générale. Cette notion a donc été parfois été confondue avec le sens qu'a cette
expression dans le cadre précis de l’analyse informatique, et en particulier dans sa phase «conceptuelle»,
ce qui est en partie un contresens, puisqu’un cahier des charges n’a pas lieu de modéliser les données.
En revanche, il reprend une grande idée de l’approche « top - down » des méthodologies, qui consiste à
commencer par considérer la chose comme une « boîte noire » : On identifie ce qui rentre et ce qui sort de
la boîte, mais on ignore délibérément ce qui s’y passe, du moins durant les premières phases.
Idéalement, le cahier des charges devrait donc préciser l’amont et l’aval des traitements :
 Evidemment le « Quoi ? » limité aux aspect fonctionnels (ce qu’on appelle les « règles de gestion »),
les exigences de qualité, les aspects quantitatifs, l’intégration dans un existant éventuel, voire le
contexte juridique, humain etc.).

 Mais également le « Qui ? »(les différents publics destinataires des pages), le « Pourquoi ? », le «
Quand ? », le « Où ? ».

Attention : ces questions ne correspondent pas à la typologie classique de Merise, par exemple. Ainsi le «
Quoi ? » ne recouvre pas, ici, la notion de MCD. En revanche, il présente bien des analogies avec le
domaine des MCT / MOT.
En bref, il faut exposer à peu près « Tout » … à deux exceptions près, de taille : le «Comment ?» et le
«Combien ?» (budget) qui sont - et c’est le but du jeu - à la charge du candidat.
Ajoutons au lot du prestataire - ce qui est moins évident - un regard critique sur la faisabilité de
l'opération, une identification des risques voire des mises en garde éventuelles, comme le ferait - dans un
autre contexte - un bon avocat, un bon médecin, un bon architecte, parfois au risque de perdre un client

XLV -XLIV - V. Les particularités du contexte Internet


Remarque : La liste de points énumérés ci-après ne prétend aucunement à l’exhaustivité. La question est plutôt de
déterminer le degré de précision du cahier des charges.

Il s’agit, en somme, de tester les compétences du candidat sans lui imposer une charge de travail
excessive. Il peut donc parfois être utile d’omettre certains points délibérément, permettant ainsi
d’apprécier ses réactions, son aptitude à l’identification des problèmes et son expérience du métier.
Inversement, dans certains cas, il se peut que le demandeur soit amené à empiéter sur le terrain des
prestataires.
Contexte juridique :

Comme pour toute application informatique, il peut être judicieux de préciser un cadre juridique concernant
les règles de propriété sur la future application (afin d’éviter que dans le cas d’un produit coûteux,
réalisé « sur mesure », il ne soit ultérieurement revendu aux concurrents du demandeur), et certains points
de déontologie (confidentialité, concurrence déloyale etc.).
Il ne faut pas non plus perdre de vue l’évolution du contexte juridique concernant Internet, en particulier en
matière de droits d’auteur pour les images, les sons, les textes, les règles de dépôt des noms de
domaine et les responsabilités..
Dans tous les cas, s’il y a lieu à dépôt d’un nom de domaine , préciser les rôles (le dépôt doit-il être
effectué par le prestataire ? y a-t-il lieu à recherche d’antériorité, à dépôt d’un nom de marque auprès de
l’INPI ? Qui se chargera de surveiller les dates d’échéance etc.). Il faut souligner le danger qu'il y a à ne
pas surveiller l'échéance des noms de domaines (surtout les ".com"), certains sites n'hésitant pas à diffuser
la liste des noms susceptibles de tomber prochainement dans le domaine public : En fait, le droit d'usage
d'un nom de domaine n'est que "loué" (comme un nom de marque, d'ailleurs, mais à échéance plus brève).

106
Ne pas oublier, non plus, que la déclaration à la CNIL (Commission nationale Informatique et Liberté) est
obligatoire dès que des données personnelles figurent dans un fichier informatique quel qu'il soit (cela n'a
rien de particulièrement "Internet", mais là, ça ce voit !). Compter un délai de deux mois (sous toute
réserve) pour la réponse.
Rapport entre la nouvelle application et l’existant

 S’il l’informatique Internet est appelée à s’articuler avec un système Informatique existant , donner
des informations sur ce dernier (système d’exploitation, langages, gestionnaire de base de données,
structure de la base de données, interfaces, logiciels etc.)

 Si le futur site est appelé à remplacer un système existant non-informatique de traitement de


l’information (courrier, documents imprimés, téléphone etc.), préciser ses règles de gestion.

 Si le futur site est appelé à remplacer un système existant informatique , prévoir un descriptif (ce
qui permettra de chiffrer la «reprise» des données existantes, qui peut, dans certains cas, représenter
un poste important du budget).

 S’il s’agit d’une refonte de site Internet , exposer les motifs de l’insatisfaction.

Et d’une manière générale :


 Préciser le rôle des différents acteurs par rapport à la future application (en particulier, concernant
les droits d’accès aux informations de la base de données), et s’il y a lieu, l’évolution de leurs
responsabilités.

 Présenter de manière comparative les aspects quantitatifs .

Hébergement :

Il appartient, en principe, au candidat de faire des suggestions pour le choix de l’hébergeant et de présenter
son coût, les caractéristiques du serveur hôte, les services proposés : En effet, si le prestataire est familier
de l’hébergeant retenu, certains aspects peuvent être facilités.
(Remarque : Si le site est situé à l’étranger, prévoir éventuellement l’impact sur la gestion des dates,
tels que décalage horaire, gestion des dates « mm/jj/aa » etc. ). Ceci étant, il se peut que le
demandeur souhaite imposer un hébergeant.

Par ailleurs, les exigences en matière de disponibilité du site doivent rester vraisemblables : Il est normal
qu’un serveur soit arrêté périodiquement pour des maintenances (actuellement, on ne peut
raisonnablement demander une disponibilité du serveur supérieure à 95% du temps total)
Accessibilité aux pages / sécurité :

Les distinctions Internet / Extranet / Intranet ont perdu de leur netteté. Ceci dit, on
utilise fréquemment « Internet » pour désigner des pages accessibles par tous, alors que ce mot désigne,
en fait, une réalité très vaste constitué d’un ensemble de protocoles (le
Web : "http", les transferts de fichiers : "ftp", email etc.)
Du coup « Extranet » est censé désigner les pages réservées à un public restreint
(abonnés à un service, par exemple) filtré par mot de passe, et « Intranet » des sites à usage exclusif de
l'entreprise, et en principe hébergés sur un serveur installé dans ses locaux (mais ce dernier point est de
moins en moins vrai).
En fait, le principal intérêt de cette distinction est que dans un contexte Intranet, le navigateur est imposé,
ce qui élimine les questions de compatibilités. De plus, si, dans ce contexte, le serveur est physiquement
local, les risques d'intrusions sont relativement limités.
Toujours est-il que les règles d’ accessibilité des pages doivent être détaillées.
Le nombre des intervenants en mise à jour de la base de données doit également être précisé :
Suivant les cas, les problèmes de concurrence d’accès doivent être gérés, ou non, au niveau des
développements.

Sans forcer le trait, le contexte Internet est plus vulnérable que celui de l’informatique générale. La plupart
des sites ne justifient pas de stratégies draconiennes de protection (des règles de bon sens - en particulier

107
au niveau de la programmation - suffisent en général) mais il faut mentionner l'existence éventuelle de
données particulièrement sensibles.
Autre distinction : Un site est en général permanent, mais un site temporaire ou périodique (le temps
d’un salon, par exemple) peut également représenter une formule intéressante, car peu coûteuse (en
raison d’une présentation, en général, plus « standard »).
Choix du gestionnaire de la base de données

Le gestionnaire de base de données est en principe suggéré par le prestataire, mais le demandeur peut
avoir une opinion sur la question : On peut observer des souhaits insistants pour des gestionnaires de gros
calibre (SQL server, pour citer un exemple du contexte Windows), alors que ce type de choix a des
conséquences budgétaires notables au niveau de l’hébergement, des développements et de la
maintenance.
Il faut garder à l’esprit qu’un temps de réponse Internet dépend, comme toute chaîne, de son maillon le
plus faible, et que la qualité de la programmation et le respect de quelques principes simples jouent, en
fait, un rôle essentiel dans ce mécanisme.
Langage de développement :

Là encore, il s’agit d’un point qui est théoriquement du ressort du prestataire. Mais rien n’empêche un
demandeur d’exprimer ses préférences (dans le souci, par exemple, d’assurer la meilleure cohérence
possible entre gestionnaire de base de données et langage).
Structure de la base de données :

Cette question relève typiquement de la réponse des candidats. Néanmoins, le point est mentionné
pour mémoire, car la première tâche à laquelle s’attelleront les candidats sera probablement de tenter
une ébauche de la structure de la base.

Il faut percevoir que la part occupée par les traitements dits « de gestion de la base de données »
représentent la part immergée de l’iceberg, soit facilement les 3/4 de la totalité d’un budget. Il s’agit des
traitements de création / modification / suppression des enregistrements permettant d’actualiser à
distance et instantanément les informations consultables sur les pages « publiques » du site (les références
d’un catalogue, par exemple).
La qualité d’une application informatique dépend, en très grande partie, de ces programmes qui sont longs
et rébarbatifs à écrire et nécessitent des procédures de tests très soigneuses. Dans les produits bon
marché, cette phase est bâclée. Le risque est alors que la base se pollue insidieusement.
Or, en informatique Internet on a plus spécialement tendance à se focaliser sur les pages publiques
(de consultation des données), en sous-estimant l’importance de cette «arrière-boutique» (le «back-
office» pour les anglicistes).

En simplifiant, le coût de cette part des développements est pratiquement proportionnel au nombre de
tables de la base, et dépend également du nombre et de la nature des contrôles effectués sur les
champs de saisie. Pour établir son devis, le candidat doit évaluer approximativement ces données, et
donc disposer d’emblée d’informations relativement complètes.
nombre des langues :

Il faut prévoir qui se chargera des traductions, ce qui reste une question classique.
Mais il faut également percevoir le moment où le nombre des langues risque de bousculer la structure
même des développements.
En effet, pour faire au plus simple, les libellés à traduire peuvent être « statiques » (en clair : écrits
directement dans le code HTML, sans recours à la programmation). On peut alors se contenter de dupliquer
simplement les pages dans les différentes langues, tout en gardant à l’esprit que s'il faut modifier des
pages, il faudra reporter les modifications, manuellement, sur les pages jumelles des autres langues.
En revanche, si les pages sont nombreuses et si le site est multilingue, on peut préférer opter pour une
formule « dynamiques » (concrètement, les libellés, eux-mêmes, sont stockés dans une base de données,
et utilisés sous forme de variables). Les pages n'ont alors pas lieu d'être dupliquées (ce qui simplifie la
maintenance), mais si la mise en page est très précise, elle risque d’être bousculée par le volume du texte,
extensible selon les langues.
navigation

La qualité de la navigation (l’enchaînement, interactif ou non, des pages du site) est l’une des
composantes essentielles de l’efficacité d’une application Internet.

108
L’ergonomie a pour rôle de réussir un compromis harmonieux entre la limpidité de chaque page et un accès
aussi rapide que possible à l’information recherchée. Le travail préparatoire consiste donc à classer
hiérarchiquement des informations en fonction des intentions supposées des visiteurs.
Sur le plan technique la mise au point de la navigation suppose une bonne perception des possibilités
offertes par les découpes de fenêtres (les "frames") et les fenêtres secondaires (fréquemment dénommées
"pop-up").
En contrepartie, la multiplication des pages peut alourdir notablement le budget. En effet (et c’est une
particularité de l’ informatique Internet) la transmission des informations d’un écran à l’autre (ou la
conservation d’informations persistantes au cours d’une même session) peut nécessiter des procédés
acrobatiques si la navigation impose, par exemple, de pouvoir passer de n’importe quelle page à n’importe
quelle autre.
Dans tous les cas, le dialogue serait grandement simplifié si le demandeur était en mesure de fournir, dès
le cahier des charges, une représentation très schématique des pages, permettant au moins d’apprécier
la répartition des zones de saisie, page par page, et les enchaînements entre les différentes pages.

Aspects graphiques :

Si le cahier des charges prévoit des réalisations graphiques, préciser s’il existe déjà une charte graphique
ou si elle doit être élaborée par le prestataire. Dans ce cas, les intentions du demandeurs devraient être
précisées (pour éviter, par exemple, une dérive coûteuse vers une utilisation d’animations qui ne
correspondrait pas au style de site attendu. Idem pour la sonorisation du site).
Si la mise au point graphique n’a pas lieu d’être réalisée par ce prestataire, il faudra tenir compte du fait
que l’articulation entre développements informatiques et réalisations graphiques n’est pas
nécessairement une opération simple, et qu’elle peut révéler des difficultés imprévues, surtout dans le cas
d’une exceptionnelle densité d’information (situation aggravée par l’interdiction des barres de défilement
sur les pages, par exemple)
Exigences en matière de compatibilités :

Comme dans toute application informatique, l’usage des champs de saisie doit toujours être contrôlé. Mais
dans le cadre d’Internet, ces contrôles revêtent une importance particulière (du fait de l’ouverture des pages
au public), et, pour des raisons de confort de l’utilisateur, il est bien préférable que ces contrôles soient
écrits en Javascript, chaque fois que c’est possible.
Or, en cas de développements Javascript importants (qu’il s’agisse de contrôles de saisie ou d’un autre
usage), trop d’exigences en matière de compatibilité peut pénaliser lourdement le budget, en provoquant
une multiplication des tests et des corrections. En effet, l’exécution de ce langage dépend de
l'équipement matériel du visiteur : éditeur et version du navigateur, système d’exploitation (Mac ou PC,
voire UNIX), sans compter le problèmes de variation de mise en page suivant la résolution de l’écran (800
x 600 pixels ou 1024 x 800 pixels).
D’une manière générale, plus le Javascript sera écrit de manière correcte mais rudimentaire, plus il a
des chances d’être largement compatible.
Tests

Les développeurs sont responsables de la qualité des tests «unitaires» (c’est à dire au niveau d’un
traitement pris isolément) et d’ «intégration» (qui ont pour objet de vérifier l’enchaînement des traitements).
Mais le demandeur doit être conscient que ses propres équipes doivent participer aux tests «utilisateurs»,
car ils pratiqueront les traitement selon une démarche qui leur est propre, que l’on ne peut demander aux
informaticiens car ce n’est pas leur métier.
A l’occasion de ces tests, des dysfonctionnements inattendus peuvent être provoqués ce qui est normal,
et doit donc avoir été prévu dans le budget.
On observe, dans la pratique, que cette phase est souvent esquivée par tout le monde !

Le prestataire, bien sûr, craint la détection d’erreur de programmation, (ou d'analyse, ce qui est plus grave),
Mais le demandeur également - qui doit y affecter un budget-temps de son propre personnel - craint de
devoir reconnaître des lacunes au niveau de la définition du chantier.
Il faut admettre que cette phase inconfortable est indispensable, d'autant plus qu'elle prépare la phase
finale de validation. Il est donc préférable qu’ elle soit explicitement prévue.
Transferts de fichiers

Après la mise en place définitive du site, le client disposera-t-il du FTP (protocole de transfert de fichiers,
qu’ils s’agisse des programmes ou des données) ? Si oui, quand le mot de passe lui sera-t-il remis ?
En principe cette opération a lieu après la validation et le règlement du solde du budget.

109
Elle n'a de raison d'être que si le site est installé sur un serveur distant (ce qui est le cas le plus fréquent),
et c'est là un élément important de l'autonomie du demandeur.
Remise des sources des programmes :

Toujours dans le cas où le site est installé sur un serveur distant, il peut être préférable de prévoir
explicitement une remise du texte des programmes après la validation finale (sous la forme d’un CD-Rom,
par exemple).
En effet, si le prestataire disparaît, ou si un conflit survient avec lui, la récupération des programmes via le
FTP peut être une opération aléatoire.
Référencement

Si le placement dans les extractions des moteurs de recherche est un point important pour le demandeur,
les pages-pivôt du site devront satisfaire à certaines contraintes techniques (mots-clés, descriptifs etc.). Il
convient également de définir les rôles pour les opérations de déclaration auprès des moteurs de
recherche.
Aide aux utilisateurs :

Il peut être prévu un manuel (pour les traitements de gestion de la base de données), ou quelques heures
de formation sur place du personnel, ou une hot line.
Ces solutions sont « classiques ». Mais une solution plus «Internet» peut consister à intégrer l’aide aux
pages mêmes du site.
Maintenance et évolution :

Les conditions de la maintenance et de l’évolution doivent être particulièrement prises en compte, car, dans
le contexte Internet plus qu’ailleurs, la pérennité des prestataires fait figure d’illusion (et cette remarque ne
préjuge en rien de leur qualité).
La maintenance sera simplifiée si :

 Les traitements sont rédigés de manière modulaire, structurée et bien documentée (c’est là un vœu
formulé dans toutes les branches de l’informatique, mais il peut être bon de le rappeler)

 Les traitements sont écrits en «mode natif», plutôt qu’à l’aide de générateurs de source. Bien
entendu, cette position est à nuancer en fonction du générateur, mais il est certain que le mode natif
est moins "propriétaire".

XLVI -XLV - VI. Organisation générale


Echelonnement des développements :

110
Un site Internet complet peut, dans certains cas, être une vaste opération, longue et coûteuse.
Mais, avantage du contexte Internet, les développements peuvent être livrés de manière
échelonnée. Il est probable qu’à ces occasions, des bifurcations s’avéreront
nécessaires, des idées nouvelles se grefferont.

On ne peut que suggérer de ne pas surcharger les premiers développements, mais de procéder
par étapes distinctes, en procédant par cercles concentriques à partir d’un noyau simple mais
très bien conçu, tout en anticipant sur les évolutions ultérieures.

Il est d’ailleurs probable que le prestataire se chargera de faire des suggestions de fonctionnalités
périphériques : moteurs de recherche intégré au site, forum, gestion d’emails, traitements
statistiques etc. La question sera de savoir s’il s’agit là de conseils judicieux, ou d’une incitation
à la dépense.
Echéances de l’opération en cours :

S’il n’y a aucune contrainte particulière concernant la date de mise en service, il vaut mieux laisser
le candidat apprécier le délai nécessaire (La qualité du travail ne gagne rien à une réalisation
dans l’urgence). Ce point pourra d’ailleurs être un bon argument de négociation budgétaire.
En revanche, si des dates de l’échéancier sont réellement impératives, il convient de le
préciser.
Ceci étant, il est indispensable de prévoir dès le début le principe de jalons de
validation :

 Pour le demandeur , c’est l’assurance de l’exécution normale d’une livraison étagée.


 En retour c’est, pour le prestataire, l’assurance d’un engagement contractuel de la part du
demandeur et il est souhaitable que ces jalons correspondent à un règlement partiel des
engagements financiers.

Structure des équipes de développement et méthodes de travail

Certains demandeurs expriment, dès la rédaction du CdDF, des souhaits concernant l’équipe de
développement .
Mais il faut souligner que son importance numérique ne joue pas nécessairement un rôle
positif, car la coordination des travaux de développeurs différents constitue, en soi, une tâche
difficile.

Mais pour un site complexe, un concepteur très qualifié doit impérativement initier le travail
(notamment au moment de la mise au point de la structure de la base de données et du
découpage en traitements). Mais la présence à plein temps de ce type de profil est difficile à
exiger de petites structures.
De même pour les graphistes : il est fréquent qu’il s’agisse de free-lance, et cela ne constitue pas
un point négatif.
En revanche, il est de première importance que des informations soient fournies sur les
méthodes qui sont suivies (en particulier au niveau de la conception et des protocoles de tests).

Par ailleurs, le regroupement des opérations par lots cohérents peut amener à répartir
la tâche entre plusieurs prestataires en fonction de leurs spécialités respectives. L’usage de
l’Internet (comme mode de communication entre eux) leur permettant d’articuler leurs travaux
avec une relative souplesse.
En marge, concernant l’exigence de «références», il faut reconnaître que cette pratique, très
anglo-saxonne, suppose un certain «fair-play» ...

XLVII -XLVI - VII. Le déroulement d'un appel d'offres


Traditionnellement, le mécanisme de l’appel d’offres se décompose en :
 L’appel à candidature, avec envoi d’un document succinct, (souvent appelé lui-même «appel
d’offre», par extension),
 L’envoi du cahier des charges aux candidats,
 La réponse des candidats, sous la forme d’une proposition chiffrée,
 Les entretiens, au cours desquels le cahier des charges peut être ajusté en fonction des
suggestions des candidats,
 La sélection du candidat, La signature du document contractuel.

Mais l’usage de l’Internet permet d’alléger cette procédure en mettant en ligne directement et
sans frais le texte intégral du cahier des charges (sous réserve de dispositions confidentielles,
bien entendu).
Tandis que les candidats peuvent, eux-mêmes, transmettre leur proposition par email sous la
forme de documents joints visualisables à l’écran, qu’ils n’envoient sous forme imprimée qu’en
cas de pré-sélection.
Autre possibilité de réponse : créer des pages Internet et fournir l’adresse au demandeur. L’intérêt
de cette formule est d’en permettre l’actualisation de manière permanente et instantanée.

XLVIII -XLVII - VIII. Conclusion


L’informatique, et Internet plus encore, est une science bien trop récente pour que l’on ait le recul
nécessaire à l’analyse du cycle de ses crises.
Mais il semble bien qu’un point soit annonciateur des périodes de trouble : Lorsque la formulation
des demandes dérape systématiquement vers une sur-estimation des besoins technologiques,
et à une sous-estimation dramatique des besoins en analyse préalable.
Cela peut être le signe que le terrain devient favorable à un certain charlatanisme.
Le mouvement actuel, cherchant à promouvoir l’usage du cahier des charges, tend à déplacer
au maximum le travail d’analyse vers l’amont, à le mettre à la charge du demandeur lui-même.
Mais, si les demandeurs, dans le cadre des méthodologies «classiques», n’étaient pas parvenus
à faire valoir leur voix alors qu’ils étaient censés collaborer avec les développeurs, il leur sera
difficile d'y parvenir une fois laissés à eux-mêmes dans le cadre d'un cahier des charges.
Le plus surprenant de la situation est que, concernant une possibilité de réalisations très
prometteuses, capable de réellement stimuler un marché en plein marasme, mais nécessitant un
minimum de documentation et d’expérience, les ouvrages sont rares, et Internet lui-même n’est
pas d’un grand secours.
Les hésitations seraient d’autant plus dommages que, pour une personne expérimentée,
l’élaboration du cahier des charges d’un site Web représente, d’habitude, entre deux jours et
une semaine de travail.

Il peut être tentant de s’adresser à un conseil extérieur. La question sera alors de s’assurer de
sa compétence … et de beaucoup de qualités qui relèvent de l’éthique professionnelle. Vaste
domaine qui va de l’objectivité à la discrétion !

Internet Information
Server
(IIS 5.0)
Introduction

Introduction IIS est un ensemble de services TCP/IP dédiés à l'Internet.


Il comprend les serveurs suivants:
Modifications de
Windows 2000  Web, FTP, Gopher, SMTP, NNTP, et les outils d'administration
Server après
associés.
installation de IIS
Configuration
Modification de Windows 2000 Server après l'installation de IIS 5.0
Les services
FTP
 Création d'un répertoire \Inetpub dans lequel seront stockés dans différents
Les services répertoires (Wwwroot pour le WEB, Ftproot pour le FTP) les fichiers des
Web différents sites créés. Configuration des permissions sur ces répertoires.
Répertoire
virtuel FTP  Création de deux comptes. Le compte
Répertoire IUSR_NomMachine est le compte qui sera utilisé pour désigner l'utilisateur
virtuel Web anonymous et permettre la gestion des permissions pour ses accès.
Les types mime
 Installation de différents services:
Sauvegarde d'un
serveur
Redémarrage d'un
serveur

RETOUR Service de publication Worls Wide Web: démon


Web,
 Service de publication FTP: démon FTP,
 Service IIS Admin: Service nécessaire à l'administration de IIS y compris
via le réseau,
 Indexe de contenu: Service d'indexation des répertoires des sites installés
(accès plus rapide),
 ...
Installation des outils d'administration de IIS et
création des raccourcis correspondants dans les outils d'administration et au
sein du gestionnaire d'ordinateur.
Configuration de IIS 5.0

L'administration de IIS 5.0 est réalisée via le Gestionnaire des services Internet, c'est à
dire la MMC (Microsoft
Management Console) munie du snap-in iis.msc,

Fenêtre du Gestionnaire des Services Internet

Menu contextuel du gestionnaire des Services


Internet

Menu contextuel associé à un serveur


Menu contextuel associé à un site FTP

Menu contextuel associé à un site Web

Menu contextuel associé à un site Web Trois sites sont installés

localement:

 le site FTP par défaut, le site


WEB par défaut,
 le site WEB d'administration
(Administrateur des Services
Internet via HTML).

Site FTP par défaut: Vide

Site Web par défaut: Site FrontPage

Possibilité de connexion sur un serveur IIS distant.


Si le composant a été installé, il est aussi possible de réaliser l'administration des
service WEB via Internet depuis un navigateur.

XLIX -XLVIII - Les services FTP


Après sélection des propriétés d'un site FTP.
Attribution de l'adresse IP à laquelle sera associé le site FTP parmi toutes
celles définies sur l'hôte et le port TCP sur lequel le site FTP est installé
(port FTP standard: 21).
Configuration du nombre de connexions simultanées pouvant être gérées
ainsi que du délai de déconnexion automatique en cas d'inactivité
Configuration de la gestion (intervalles de temps, localisation) et des
informations enregistrées
(clients, fichiers téléchargés, quantités d'informations, ...) dans le journal de log du site
FTP
Sessions en cours sur le site FTP et cloture éventuelle

Comptes de connexion anonyme et d'administration

Messages de connexion et de déconnexion


Répertoire de base: Soit un répertoire local, soit un répertoire réseau.
Lecture seule ou lecture/écriture

Sécurité d'accés implantée sur un répertoire


en fonction de l'adresse ou d'une classe d'adresses
L -XLIX - Les services WEB

Attribution de l'adresse IP à laquelle sera associé le site Web parmi toutes celles définies sur l'hôte
et le port TCP sur lequel le site Web est installé (port Web standard: 80).
Configuration du nombre de connexions simultanées pouvant être gérées ainsi que du délai de
déconnexion automatique en cas d'inactivité
Configuration de la gestion (intervalles de temps, localisation) et des informations enregistrées
(clients, fichiers téléchargés, quantités d'informations, ...) dans le journal de log du site FTP
Configuration avancée du site

Comptes des opérateurs du site


Performances du site
Filtres ISAPI
Répertoire de base: Soit un répertoire local, soit un répertoire réseau,
soit une URL.
Accès en lecture seule ou lecture/écriture.
Journalisation et/ou indexation.
Exploration

Documents de base lorsqu'aucun fichier explicite

Messages d'erreur
Extensions serveur

Paramètres de contrôle d'accès et types mime


Les types MIME
Sécurités d'accès au répertoire
Filtrage IP sur des adresses, des classes d'adresse ou des noms de domaine
Authentification

LI -L - Création d'un nouveau site FTP


Plusieurs sites FTP peuvent être ébergés sur le même serveur FTP. La différenciation entre les sites est réalisée
soit par l'adresse IP sur lequel le site est installé (plusieurs adresses IP et donc noms IP sont disponibles si
plusieurs cartes réseau sont installées), soit par le port TCP sur lequel le site répond. Le port standard du FTP
est le port 21. C'est celui qui est utilisé implicitement si aucun port n'est indiqué explicitement. Les ports de 0 à
1023 sont standardisés et non utilisables. Les ports de 1024 à 65535 sont libres.
Nom du site dans le Gestionnaire des Services Internet

Choix de l'adresse IP associé au site

(parmi celles disponibles sur l'hôte)


Choix du port TCP associé au site
(Port FTP standard : 21)

Chemin d'accès au répertoire local associé au site

Contrôle d'accès
Fin de la création

Résultat de la création

LII -LI - Création d'un nouveau site WEB


Plusieurs sites WEB peuvent être ébergés sur le même serveur FTP. La différenciation entre les sites est
réalisée soit par l'adresse IP sur lequel le site est installé (plusieurs adresses IP et donc noms IP sont
disponibles si plusieurs cartes réseau sont installées), soit par le nom d'entête utilisé par le client WEB, soit par
le port TCP sur lequel le site répond. Le port standard du WEB est le port 80. C'est celui qui est utilisé
implicitement si aucun port n'est indiqué explicitement. Les ports de 0 à 1023 sont standardisés et non
utilisables. Les ports de 1024 à 65535 sont libres.
Nom du site dans le Gestionnaire des Services Internet
Choix de l'adresse IP associé au site (parmi celles disponibles sur l'hôte)

Choix du port TCP associé au site


(Port Web standard : 80)

Choix du nom d'entête auquel répondra le site


Chemin d'accès au répertoire local associé au site

Contrôle d'accès

Fin de la création
Résultat de la création

Propriétés avancées du site Web créé

Site créé en accès depuis Internet Explorer (vide)


LIII -LII - Création d'un répertoire virtuel FTP
Un répertoire virtuel est un répertoire créé et géré logiciellement par le serveur FTP au sein de l'arborescence
des répertoires physiques existant dans le répertoire de base. Cet "alias" peut correspondre à un répertoire de
la machine locale ou à un répertoire partagé sur un autre ordinateur.

Nom du répertoire virtuel sur le site FTP

Répertoire local correspondant


Contrôle d'accès

Création d'un répertoire virtuel (alias) FTP

Résultat dans le Gestionnaire des Services Internet

LIV -LIII - Création d'un répertoire virtuel Web


Un répertoire virtuel est un répertoire créé et géré logiciellement par le serveur WEB au sein de l'arborescence
des répertoires physiques existant dans le répertoire de base. Cet "alias" peut correspondre à un répertoire de la
machine locale, à un répertoire partagé sur un autre ordinateur ou une redirection vers un autre site WEB.
Nom du répertoire virtuel sur le site Web

Répertoire local correspondant


Contrôle d'accès

Création d'un répertoire virtuel (alias) Web


Résultat dans le Gestionnaire des Services Internet
Les types MIME

LV -LIV - Sauvegarde d'un serveur

Gestion de plusieurs sauvegardes


LVI -LV - Redémarrage d'un serveur

Demande de redémarrage

Redémarrage en cours

Internet Information Server


(IIS 6.0)
LVII -LVI - Introduction Introduction
ModificationsIIS est un ensemble de services TCP/IP dédiés à l'Internet. de Windows

2003 Il comprend les services suivants:


Server après Web, installation FTP,

de IIS SMTP,


Configuration NNTP,
Les services
FTP et les outils d'administration associés.
Les services
Web La version 6.0 de IIS est installée avec Windows 2003 Serve Les types (version 5.0 avec
Windows 2000, version 4.0 avec Windows N mime 4.0).

LVIII -LVII - Création Modification de Windows 2003 Server après


l'installation
Site FTP IIS 6.0
Répertoire
virtuel FTP Création d'un répertoire \Inetpub dans lequel seront Site Web stockés dans différents
Répertoire
répertoires (wwwroot pour le W ftproot pour le FTP, mailroot pour le mail, ...) les fichiers virtuel
Web des différents services gérés.
Sauvegarde Configuration des permissions sur ces répertoires. d'un serveur Création de deux comptes.
Le compte IUSR_NomMachin Redémarrage est le compte qui sera utilisé pour désigner l'utilisateur d'un
serveur anonymous et permettre la gestion des permissions pour accès.
Sécurisation et Installation de différents services et démarrage de ces contrôle services:
d'accès
¡ Service de publication World Wide Web: démon Web
¡ Service de publication FTP: démon FTP,

RETOUR Simple Mail Transfer Protocol (SMTP): démon SMTP

¡ Service d'administration IIS: Service nécessaire à l'administration de IIS y


compris via le réseau,

¡ ...
Installation
des outils d'administration de IIS et créatio des raccourcis correspondants
dans les outils d'administration et au sein du gestionnaire d'ordinateur.

Configuration de IIS 6.0

L'administration de IIS 6.0 est réalisée via le Gestionnaire d services Internet, c'est à dire la
MMC (Microsoft Managemen
Console) munie du snap-in iis.msc,

Fenêtre du Gestionnaire des Services Internet


Menu contextuel du Gestionnaire
des Services Internet

Menu contextuel associé à un serveur

Menu contextuel associé à la clé "sites FTP" d'un serveur

Menu contextuel associé à la clé "sites Web" d'un serveur


Menu contextuel associé à un site FTP

Menu contextuel associé à un site Web doté des


extensions Frontpage Les sites installés par défaut sont:

le site FTP par défaut si le service FTP est installé, le site WEB par défaut si le
service Web est installé, le site WEB d'"Administration de Microsoft SharePoint"
les extensions Frontpage sont installées, le site WEB
d'"Administration" si le site web d'administration à distance est installé.

D'autres sites pourront être installés.


Site FTP par défaut: Vide (ici arrêté)

Site Web par défaut: Site FrontPage (ici arrêté)

LIX -LVIII - Les services FTP


Après sélection des propriétés d'un site FTP.
Attribution de l'adresse IP à laquelle sera associé le site FTP parmi toutes
celles définies sur l'hôte et le port TCP sur lequel le site FTP est installé
(port FTP standard: 21).
Configuration du nombre de connexions simultanées pouvant être gérées
ainsi que du délai de déconnexion automatique en cas d'inactivité
Configuration de la gestion (intervalles de temps, localisatio et des informations enregistrées
(clients, fichiers téléchargés, quantités d'informations, ...) dans le journal de log du site FTP
sous
..\WINDOWS\system32\LogFiles\MSFTPSVC1\exjjmmaa.l
Sessions en cours sur le site FTP et cloture éventuelle
Comptes de connexion anonyme et d'administration

Messages de connexion et de déconnexion


Répertoire de base: Soit un répertoire local, soit un répertoire réseau.
Lecture seule ou lecture/écriture
Sécurité d'accés implantée sur un répertoire en fonction de l'adresse ou d'une
classe d'adresses

LX -LIX - Les services WEB

Attribution de l'adresse IP à laquelle sera associé le site Web parmi toutes celles
définies sur l'hôte et le port TCP sur lequel le site Web est installé (port Web standard:
80).
Configuration du nombre de connexions simultanées pouvant être gérées ainsi que du
délai de déconnexion automatique en cas d'inactivité
Configuration de la gestion (intervalles de temps, localisatio et des informations enregistrées
(clients, fichiers téléchargés, quantités d'informations, ...) dans le journal de log du site Web
sous
..\WINDOWS\system32\LogFiles\W3SVC1\exjjmmaa.log
Configuration avancée du site
Performances du site
Filtres ISAPI
Répertoire de base: Soit un répertoire local, soit un répertoire réseau, soit
une URL.
Accès en lecture seule ou lecture/écriture.
Journalisation et/ou indexation.
Exploration
Documents de base lorsqu'aucun fichier explicite
Messages d'erreur
Extensions serveur
Paramètres de contrôle d'accès et types mime
Contrôle d'accès
Les types MIME
Sécurités d'accès au répertoire
Filtrage IP sur des adresses, des classes d'adresse ou des noms de domaine

Authentification
Extension du serveur BITS

LXI -LX - Création d'un nouveau site FTP


Plusieurs sites FTP peuvent être ébergés sur le même serveur FTP. La différenciation entre les sites
est réalisée soit par l'adresse IP sur lequel le site est installé (plusieurs adresses et donc noms IP sont
disponibles si plusieurs cartes réseau so installées ou si une même carte en possède plusieurs), soit
par port TCP sur lequel le site répond.
Le port standard du FTP est le port 21. C'est celui qui est util implicitement si aucun port n'est indiqué
explicitement. Les ports 0 à 1023 sont standardisés et ne doivent pas être utilis Les ports 1024 à 65535
sont libres pour peu qu'ils ne soient p déjà utilisés par un autre service sur le serveur.
Nom du site dans le Gestionnaire des Services Internet
Choix de l'adresse IP associé au site
(parmi celles disponibles sur l'hôte) et du port TCP associé au site
(Port FTP standard : 21)

Chemin d'accès au répertoire local associé au site


Choix du mode d'isolation (ici, pas d'isolation, voir plus loin

Contrôle d'accès
Fin de la création L'isolation

IIS offre trois possibilités pour gérer l'affectation du répertoire de base implicite lors de l'ouverture d'une
session FTP par un utilisateur.
Dans les trois cas, l'utilisateur ne pourra parcourir que ce répertoire, ses sous-répertoires réels et
virtuels. Il ne pourr pas remonter dans l'arborescence physique.

1. Répertoire de base: La racine du site.


2. Répertoire de base: Un répertoire particulier sous la rac du site.
3. Répertoire de base: Le répertoire de base tel que config dans Active Directory.
Création d'un site avec isolation des utilisateurs
Oblibgation de créer l'arborescence de répertoires
sur le shéma suivant:

"Répertoire de base"\LocalUser\Public
pour les connexions anonymous
"Répertoire de base"\UserDomain\UserName pour les connexions non anonymous

Création d'un site avec isolation des utilisateurs


en utilisant Active Directory
Pour chaque utilisateur définition dans Active Directory
des deux propriétés FTPRoot et FTPDir qui sont utilisées
pour indiquer le répertoire de base de l'utilisateur.
Deux instructions en ligne de commandes:

iisftp /SetADProp Einstein FTPRoot I:\Utilisateurs\


iisftp /SetADProp Einstein FTPDir Einstein
Dans les propriétés d'un tel site,
disparition de l'onglet "Comptes de sécurité"
car il n'y a plus de connexion anonyme
et "Répertoire de base" car ces informations
sont extraites de Active Directory
LXII -LXI - Création d'un site sur une autre adresse IP
Résultat des créations

LXIII -LXII - Connection sur ces sites au moyen de Internet


Explorer

Connection au site par défaut

Connection au site sur le port 2121

Anonymous
Authentifié

Connections anonymous et authentifiée au site sur le port 21


Connection authentifiée au site sur le port 2123

Connection au site sur l'adresse 172.20.129.116 (achille)

LXIV -LXIII - Création d'un répertoire virtuel FTP


Un répertoire virtuel est un répertoire créé et géré logiciellement par le serveur FTP au sein de
l'arborescence de répertoires du site FTP. Le repertoire virtuel ne correspond p à un répertoire existant
physiquement à cette endroit dans l'arborescence de répertoires du répertoire de base du site e
n'apparaitra pas dans un client FTP.
Cet "alias" est "mappé" soit sur un répertoire de la machine locale soit sur un répertoire partagé d'un
autre ordinateur.

Nom du répertoire virtuel sur le site FTP


Répertoire local correspondant
Contrôle d'accès

Création d'un répertoire virtuel (alias) FTP


Résultat dans le Gestionnaire des Services Internet
Propriétés d'un répertoire virtuel FTP
(noter la possibilité de configurer des restrictions d'accès
spécifiques)
Résultat dans Internet Explorer

Création d'un répertoire physique vide portant le même nom que le répertoire virtuel à la même place
pour rendre visible son existence dans un client FTP
(Le démon FTP bascule sur le répertoire virtuel et pas sur le répertoire vide)

LXV -LXIV - Création d'un nouveau site WEB


Plusieurs sites WEB peuvent être ébergés sur le même serveu FTP.
La différenciation entre les sites est réalisée soit par l'adres IP sur lequel le site est installé (plusieurs
adresses IP et donc noms IP sont disponibles si plusieurs cartes réseau sont installées ou qu'une carte
possède plusieurs adresses IP), soit par le nom d'entête utilisé par le client WEB, soit par le port TCP
sur lequel le site répond. Le port standard du WEB est le port 80. C'est celui qui est utilisé implicitement
si aucun port n'est indiqué explicitement. Les ports 0 à 1023 sont standardisés et ne doivent pas être
utilisés. Les ports 1024 à 65535 sont libres pour peu qu'ils ne soient pas déjà utilisés p un autre service
sur le serveur.

Nom du site dans le Gestionnaire des Services Internet


Choix de l'adresse IP associé au site
(parmi celles disponibles sur l'hôte) du port TCP associé au site
(Port Web standard : 80 déjà utilisé pour le site par défaut choix du port 8080)
et du nom d'entête auquel répondra le site

Chemin d'accès au répertoire local associé au site


Contrôle d'accès

Fin de la création
Résultat de la création

Propriétés avancées du site Web créé


Message d'erreur en cas d'accès depuis Internet Explorer car l'exploration de répertoire est
interdite et il n'y a pas de fichier par défaut à la racine

Configuration de l'autorisation d'exploration


Résultat dans Internet Explorer

Résultat dans Internet Explorer avec un fichier nommé Default.htm à la racine du répertoire
de base
LXVI -LXV - Création de plusieurs serveurs Web virtuels sur un
même serveur
Création d'un site sur une adresse IP
Création d'un site associé à un nom d'entête
Configuration complémentaire dans les propriétés avancées
d'identification du site
LXVII -LXVI - Résultat dans le gestionnaire IIS

Site par défaut

Site sur le port 8080


Site sur l'adresse 172.20.129.116 (achille dans le DNS)

Site sur l'entête diogene ou diogene.w2k3.univ-fcomte.fr


LXVIII -LXVII - (nom référencé dans le DNS)
Résultats dans Internet Explorer réation d'un
répertoire virtuel Web
Un répertoire virtuel est un répertoire créé et géré logiciellement par le serveur WEB au sein de
l'arborescence d répertoires physiques existant dans le répertoire de base. Ce "alias" peut correspondre
à un répertoire de la machine locale un répertoire partagé sur un autre ordinateur ou une redirect vers
un autre site WEB.
Nom du répertoire virtuel sur le site Web
Répertoire local correspondant

Contrôle d'accès
Création d'un répertoire virtuel (alias) Web

Résultat dans le Gestionnaire des Services Internet

Résultat dans Internet Explorer avec un fichier Default.ht


Les types MIME

LXIX -LXVIII - Sauvegarde d'un serveur


Gestion de plusieurs sauvegardes

Warning de restauration

LXX -LXIX - Redémarrage d'un serveur


Demande de redémarrage

Redémarrage en cours

LXXI -LXX - Sécurisation et contrôle d'accès sites Web et FTP


Chapitre 2

Utiliser l’environnement de travail de l’éditeur

LXXII -LXXI - Avec DreamWeaver ( payant )


L’éditeur proposé est Dreamweaver .

La prise en mains de Dreamweaver peut se faire par les tutoriels de DreamWeaver et la multitude
d’exemples qui sont proposés.

LXXIII -LXXII - NVU : pour les pages HTML


Manuels utilisateurs

LXXIV -LXXIII - APTANA : HTML, CSS, Javascript ( et même php ! )


Chapitre 3

Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision A Concevoir une application hypermédia

Technologie Internet

Activité Définir le système de navigation de l’application

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre de :

 Définir le graphe de navigation de l’application


Précisions sur les
objectifs visés par
l’activité

DESCRIPTION DE L’ACTIVITE

Exercices 1 : Architecturer l’information

A partir du cahier des charges qui définit le contenu et les objectifs de l’application
hypermédia , il s’agit de structurer la navigation logique dans le site .

Une fois en possession du contenu, ou du moins quand vous en


avez une idée précise, l’étape suivante consiste à l’organiser
afin qu’il soit facilement et intuitivement accessible par les
visiteurs.
Pour les gros sites, l’organisation est souvent gérée par un
spécialiste en architecture de l’information.
Elle peut aussi être mise au point par une équipe de designers
en accord avec le client.
Même pour les sites personnels, l’organisation des contenus est
importante.

C’est le moment de faire des listes et des esquisses au crayon.


Mettez à plat tout ce que vous voulez inclure dans le site.
Hiérarchisez le tout par ordre d’importance, de temps de
production, de catégories, etc.
Choisissez ce qui doit figurer sur la page d’accueil, séparez les
contenus par sections.
Réfléchissez à la manière dont les internautes s’attendent à
trouver l’information et concevez le site en fonction de leurs
attentes.
Le résultat de cette phase d’architecture peut être un schéma
(souvent appelé plan du site) qui dévoile la « forme » globale
du site. Il s’agit souvent d’une représentation sous forme de
graphe reliant les pages par des flèches

Les pages sont représentées par des rectangles, des flèches


indiquent les liens entre les pages ou les sections.
Le plan du site donne aux designers un aperçu de son ampleur
et de la relation entre les sections, il fournit aussi une aide à la
conception de la navigation.

Le point d’entrée est la page d’accueil à partir de laquelle il


sera possible d’accéder via des liens hypertextes , des images
réactives ou de boutons.

Exercice :

Une association de randonnées pédestres Les Joyeux Randonneurs de l’ATLAS désire


proposer des activités à ses adhérents. Ces activités consistent en des balades ou des
randonnées sur une demi-journée, une journée ou plusieurs journées. L’association
souhaite donc :
- proposer ses activités pour des personnes non adhérentes et permettre à
celles-ci de s’inscrire en ligne grâce à un formulaire de saisie . Toute
personne inscrite dee cette manière est appelée contact. Un contact aura
la possibilité de devenir adhérent en réglant une cotisation
- tout contact non adhérent pourra à tout moment se désinscrire
- Chaque contact aura la possibilité de faire des suggestions en lignes pour
proposer des activités

Travail demandé :

Imaginez les pages web qui seraient nécessaires pour proposer une navigation sur le site
de l’association.

Faites un graphe de navigation ou un plan de site de l’application.


DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Application s hypermédias

Précision A Concevoir une application hypermédia

Technologie Internet

Activité Définir la structure des pages pour la navigation

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre de :

 Proposer une structure homogène des pages du site


Précisions sur les
objectifs visés par
l’activité

Exercices 1 : structurer les pages de l’application

Le système de navigation fournit les relations entre les sous-ensembles de contenu (les
rubriques du site web) . Il s’agit maintenant de structurer de manière homogène les pages
de l’application en prévoyant les moyens possibles pour réaliser les enchainements

En règle générale, nous aurons une partie en-tête , une partie menu à gauche , une partie
contenu à droite et une partie pied de page .

La partie en-tête fournit les éléments généraux de l’application : le nom de l’application,


un logo , etc

La partie menu fournit les éléments qui permettent qui permettent de naviguer : liens,
boutons
La partie contenu contient la rubrique de la page , c'est-à-dire l’information utile

La partie pied de page contient la date de mise à jour de la page, le webmaster à contacter
, etc

On parle aussi de gabarit des pages . Ceci sera réalisé techniquement par des tableaux,
des cadres ou mieux par des feuilles de style.

Exercice

Reprendre l’exercice de l’activité précédente et imaginez la structure type des pages du


site des Joyeux Randonneurs de l’ATLAS !.
Chapitre 4

Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision B Ecrire du code HTML

Technologie HTML

Activité Créer une page simple avec HTML

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre de :

 Structurer un document HTML


Précisions sur les  Présenter du texte dans un document HTML
objectifs visés par
 Utiliser des liens hypertextes dans un document HTML
l’activité

DESCRIPTION DE L’ACTIVITE

Exercice 1 : Premier document HTML

1. Utiliser un simple éditeur de texte


2. Créer le document suivant

<html>
<head>
<title>Document Html minimum</title>
</head>
<body>
</body>
</html>
Vous remarquerez que les balises sont en minuscule comme il est
désormais préconisé dans l’utilisation « moderne » de html ou xhtml.
- Enregistrer le document avec l'extension .html ou .htm, soit
Premier.html ou Premier.htm
-Ouvrir le document dans un navigateur
- Admirer votre premier document Html , qui est … vide !

Exercice 2 : Afficher du texte


3. rajouter des éléments de texte dans le document
<html>
<head>
<title>Document Html avec texte brut</title>
</head>
<body>
Bonjour de la part de Mohamed !
</body>
</html>

4. rajouter un paragraphe

<html>
<head>
<title>Document Html avec texte brut</title>
</head>
<body>
Bonjour de la part de Mohamed !
<p>Ceci est un paragraphe</p>
Ceci n’est pas un paragraphe
<p align="center">Ceci est un paragraphe centré</p>
</body>
</html>

5. rajouter des balises d’en-tête

<h1>Ceci est une balise d'en-tête H1</h1>


<h2>Ceci est une balise d'en-tête H2</h2>

Voir le chapitre Règles générales pour HTML dans l’aide


selfhtml du dossier HTML/XHTML, ainsi que le chapitre
Eléments pour structurer le texte dans le même dossier.
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision B Ecrire du code HTML

Technologie HTML

Activité Intégrer des éléments multimédia

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 D’intégrer des images


Précisions sur les  D’intégrer des images comme lien hypermédia
objectifs visés par
 D’utiliser des images réactives ( mappées )
l’activité
 D’intégrer des fichiers sons
 D’intégrer des vidéos

Exercice 3 : Utiliser les liens hypertexte

1. créer un second document Page2.html


2. ajouter un lien hypertexte dans le fichier Premier.html

<a href="Page2.html">Page2.html</a>
3. exécuter Premier.html
4. cliquer sur le lien hypertexte . Que se passe t-il ?

Voir le chapitre Liens dans l’aide l’aide selfhtml du


dossier HTML/XHTML

DESCRIPTION DE L’ACTIVITE

Exercice 1 : intégrer une image dans un document HTML

6. Utiliser un simple éditeur de texte


7. Créer un nouveau document
8. récupérer une image au format jpg (extension jpg / jpeg )
9. utiliser la balise <img>

<html>
<head>
<title>Affichage d’une image</title>
</head>
<body>
<img src="mas_ombre.jpg"></img>
</body>
</html>

Exercice 2 : Utiliser une image comme lien hypermédia

10.rajouter une ancre contenant l’image cliquable


<html>
<head>
<title>Lien sur une image</title>
</head>
<body>
<a href="page2.html"><img src="mas_ombre.jpg"></img></a>
</body>
</html>

Voir le chapitre Règles généralespour HTML dans l’aide


selfhtml du dossier HTML/XHTML

Exercice 3 : Intégrer une image mappée

Il s’agit d’utiliser des zones d’une seule image pour déclencher des liens vers
d’autres documents HTML. L’image est découpée en plusieurs zones qui peuvent
être de forme différente : polygonale, rectangulaire, circulaire

Nous allons utiliser l’image legumes.gif fournie dans les ressources pour accéder
à d’autres pages. Cette image est découpée en 3 zones : une zone en polygone
qui contient l’image d’un petit pois, une zone rectangulaire qui contient une tomate
et une zone circulaire qui contient la carotte.

Le clic sur le polygone déclenche l’affichage de la page pois.html, le clic sur la


zone rectangulaire l’affichage de la page tomate.html, le clic sur la zone
circulaire l’affichage de la page carotte.html.
La difficulté consiste à définir exactement les coordonnées des zones
concernées, un outil de définition des zones est donc nécessaire.

5. créer 3 documents pois.html, tomate.html , carotte.html


6. créer un document legumes.html et tapez le code suivant
dans le corps du document <body>

<h1>Image réactive légumes</h1>


<map name="legumes2" id="legumes">
<area shape="poly"
coords="56,5,45,32,18,32,39,52,30,80,56,64,85,82,76,
51,97,33,68,31,58,4,55,5"
href="pois.html" alt="pois" />

<area shape="rect"
coords="127,9,196,79,5,45,32,18,32,39,52,30,80,56,6
4,85,82,76,51,97,33,68,31,58,4,55,5"
href="tomate.html" alt="tomate" />

<area shape="circle" coords="270,46,37"


href="carottes.html" alt="carottes" />
<area shape="circle" coords="277,41,28"
href="#carottes.html">
</map>
<p><img src="legumes.gif" width="330" heigth="90"
usemap="#legumes2"/></p>

7. exécuter legumes.html
8. cliquer sur les zones réactives . Que se passe t-il ?

voir le chapitre Graphiques dans l’aide l’aide selfhtml du


dossier HTML/XHTML
Exercice 4 : Intégrer de la vidéo

Il existe de multiples façons d'arriver à ses fins. La première est d'utiliser tout
simplement un lien vers le fichier. Elle est cependant peu efficace, car le film ne
s'intègre pas à la page.

Pour ce faire, nous utilisons la balise <embed>. En yindiquant le type de la vidéo, le


navigateur trouvera automatiquement le plugin approprié. Si ce dernier n'est pas
installé, Mozilla Firefox affiche une fenêtre permettant de le rechercher, alors qu'Internet
Explorer 7, ne fera rien du tout ! A priori,
Internet Explorer 6, respecte le paramètre pluginspage (mais la version 7 du navigateur
l'ignorera la plupart du temps).

Voici le code à indiquer pour forcer l'utilisation de certains plugins courants :

Windows Media Player :

<embed type="application/x-mplayer2" src="animation.avi" />

Quicktime :

<embed type="video/quicktime" src=" animation.mov" controller="true" width="300"


height="300"/>

_Real Player :
<embed type="audio/x-pn-realaudio-plugin" src=" animation.rm" height="200px"
width="200px" controls="all" console="video"/>

Une solution plus universelle existe. Elle consiste à convertir la vidéo en FLV (avec Riva
Encoder ou FFmpeg, par exemple). Ce format est celui utilisé par Flash pour les vidéos.
Un simple lecteur, comme Flash FLV Player, permettra alors de relire le fichier. Voici un
exemple de code permettant de lire une vidéo FLV à partir de ce lecteur :

<p id="player">
<a href="http://www.macromedia.com/go/getflashplayer">Téléchargez Flash</a>
pour voir cette vidéo.</p>
<script type="text/javascript">
var so = new SWFObject('flvplayer.swf','player','400','400','7');
so.addParam("allowfullscreen","true");
so.addVariable("file","video.flv");
so.addVariable("displayheight","300");
so.write('player');
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision B Ecrire du code HTML

Technologie HTML

Activité Utiliser des tableaux

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 De définir un tableau par la balise <table>


Précisions sur les  De manipuler les cellules d’un tableau <td>
objectifs visés par
l’activité

DESCRIPTION DE L’ACTIVITE

Exercice 1 : Attributs d’un tableau balise <table>

En Html, les tableaux servent non seulement à aligner des chiffres mais surtout à placer
des éléments à l'emplacement que vous souhaitez. L'usage des tableaux est donc très
fréquent.

Néanmoins, il est aujourd’hui conseillé d’utiliser plutôt les feuilles de style pour
placer les éléments sur une page HTML.

Un tableau est composé de lignes et de colonnes qui forment les cellules du tableau.

Les balises de base sont donc :

Définition du tableau <table></table> Début et fin de tableau


Définition d'une ligne <tr></tr> Début et fin de ligne
Définition d'une cellule <td></td> Début et fin de cellule

11.Créer un tableau avec 2 lignes, 3 colonnes et une bordure


de 2 pixels

<table border= "2 ">


<tr><td>1</ td >< td >2</ td ></ tr >
<tr>< td >3</ td >< td >4</ td ></ tr >
</table>

Il y a encore trois éléments (définis par défaut mais modifiables) :

L'espace entre les cellules ou <table cellspacing=?>


l'épaisseur des lignes du quadrillage
L'enrobage des cellules ou <table cellpadding=?>
l'espace entre le bord et le contenu
La largeur de la table en pixels ou en <table width=?>
pourcentage <table width=%>

<table border= "2 " cellspacing="10" cellpadding ="10">


<tr><td>1</ td >< td >2</ td ></ tr >
<tr>< td >3</ td >< td >4</ td ></ tr >
</table>

Voir le chapitre Tableaux dans l’aide selfhtml du dossier


HTML/XHTML

Exercice 2 : Les cellules d’un tableau

Avant toutes choses, les cellules peuvent contenir tous les éléments Html suivants :

 du texte

 des images

 des liens

 des arrière-plans

 et même des tableaux

Découvrons les balises.

Largeur d'une cellule <td width=?> en pixels


<td width=%> en pourcentage
Fusion de lignes <td rowspan=?>
Fusion de colonnes <td colspan=?>

Je veux un tableau centré qui occupe 60% de la fenêtre avec, sur une ligne, trois colonnes
égales.

Exemple :

<center><table width=60% border=1>


<tr>
<td>cellule1</TD>
<td>cel. 2</TD>
<td>3</TD>
</tr>
</table></center>

Pas brillant! Et avec la balise de largeur de la cellule?


<center><table width=60% border=1>
<tr>
<td width=33%>cellule1</td>
<td width=33%>cel. 2</td>
<td width=34%>3</td>
</tr>
</table></center>

Impeccable! Prenons le même tableau mais avec 2 lignes.


<center><table width=60% border=1>
<tr>
<td width=33%>cellule1</td>
<td width=33%>cel. 2</td>
<td width=34%>3</td>
</tr>

<tr>
<td width=33%>cellule1</td>
<td width=33%>cel. 2</td>
<td width=34%>3</td>
</tr>
</table></center>

Je souhaite que la première ligne prenne toute la largeur de la ligne. La première cellule
doit donc déborder sur 3 cellules horizontales.

<center><table width=60% border=1>


<tr>
<td colspan=3>cellule 1</td>
</tr>
<tr> < td width=33%>cellule 1</ td > < td width=33%>cel 2</ td >
< td width=34%>3</ td > </tr>
</ table ></center>

Dans le même style, je souhaite que la première colonne prenne toute la hauteur de la
colonne. La première cellule doit donc déborder sur 2 cellules verticales.
<center><table width=60% border=1>
<tr>
<td width=33% rowspan=2>cellule 1</td >
<td width=33%>cel 2</td >
<td width=34%>3</ td >
</tr>
<td>
< td width=33%>cel 2</td >
< td width=34%>3</td >
</tr>
</ table ></ center >

Voir le chapitre Tableaux dans l’aide selfhtml du dossier


HTML/XHTML
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision B Ecrire du code HTML

Technologie HTML

Activité Utiliser des cadres de page ( frames )

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 de diviser un document HTML en cadres


Précisions sur les  d’utiliser un cadre comme cible d’un lien hypertexte
objectifs visés par
l’activité

Exercice 1 : Diviser un document en cadres

Les cadres permettent de diviser l'affichage du navigateur en différentes parties. Chaque


partie peut avoir son propre contenu défini dans un document HTML.

Il est aujourd’hui conseillé d’utiliser plutôt les feuilles de style pour décomposer un
document en plusieurs parties, aussi la présentation des cadres sera-t-elle
succincte

Pour diviser l'écran en plusieurs fenêtres, les balises sont peu nombreuses :
Zone avec des fenêtres
<frameset> Début de zone avec des fenêtres
Fin de zone avec des fenêtres
</frameset>
Agencement des fenêtres
< frameset rows="..."> Fenêtres horizontales
< frameset cols="..."> Fenêtres verticales

Il faut employer les balises suivantes :


<html>
<head></head>
<frameset rows="30%,70%">
<frame>
<frame>
</frameset>
</html>
Attention! <frameset></frameset> remplace <body></body>

L'attribut rows="hauteur1,hauteur2,...,hauteurN" définit la hauteur des différentes fenêtres


en cas de division horizontale.

La hauteur s'exprime en pixels ou en %. Dans ce cas, on veillera à ce que le total soit


égal à100%.

<frameset cols="30%,70%">
<frame>
<frame>
</frameset>

L'attribut cols="largeur1,largeur2,...,largeurN" définit la largeur des différentes fenêtres en


cas de division verticale.

La largeur s'exprime en pixels ou en %. Dans ce cas, on veillera à ce que le total soit égal
à100%.

On peut combiner les deux techniques précédentes :

<frameset cols="30%,70%">
<frame>
< frameset cols="30%,70%">
< frame >
< frame >
</ frameset >
</ frameset >

Pour l'instant, nos frames sont vides. On va donc les compléter par des attributs de la
balise :

<frame .src="URL ou adresse du document à afficher dans la fenêtre">

On construit 3 fichiers Html élémentaires que l'on place dans le même répertoire que le
fichier de frames :

A.html, B.html, C.html

<frameset rows="30%,70%">
<frame SRC="A.html">
< frameset COLS="30%,70%">
< frame src="B.html">
< frame src="C.html">
</ frameset >
</ frameset >
Les ascenseurs, comme à la fenêtre A, apparaissent automatiquement. Par l'attribut de
la balise <frame> scrolling="yes/no/auto" vous pouvez indiquer si la fenêtre doit ou non
posséder une barre de défilement.

Voir le chapitre Cadres dans l’aide selfhtml du dossier


HTML/XHTML

Exercice 2 : Utiliser un cadre comme cible d’un lien hypertexte

Un autre attribut de cette balise <frame> est name="nom". name indique le nom de la
fenêtre de telle sorte que cette frame puisse être utilisée comme cible d'un lien hypertexte.
Ainsi, je voudrais faire un lien sur B pour afficher le contenu de ce lien (prenons le fichier
A.htm pour éviter de l'encodage) dans C.

Le fichier de frames devient :

<frameset rows="30%,70%">
<frame src="A.htm">
< frameset cols="30%,70%">
<frame src="B.htm">
< frame src="C.htm" name="fenetreC">
</ frameset >
</ frameset >
Et on met un lien vers A.htm dans le fichier B.htm en désignant comme cible la frame C.

<a href="A.htm" target="fenetreC</a>

L'attribut target peut aussi prendre certaines valeurs prédéfinies :

 _blank qui indique au browser qu'il doit créer une nouvelle fenêtre afin d'y
afficher le fichier. Dans ce cas, vous ouvrez en fait un nouveau browser.

 _self qui indique que le fichier sera chargé dans la même fenêtre que celle
dans laquelle se trouve le lien.

 _top qui implique l'affichage du fichier sur toute la surface de la fenêtre du


browser.

Voir le chapitre Cadres dans l’aide selfhtml du dossier


HTML/XHTML
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision B Ecrire du code HTML

Technologie HTML

Activité Créer un formulaire HTML de synthèse

Phase d’apprentissage ENTRAINEMENT

Cette activité d’apprentissage doit vous permettre:

 D’intégrer dans un formulaire les principaux objets graphiques


Précisions sur les étudiés dans l’activité précédente concernant les formulaires.
objectifs visés par
l’activité

Exercice 1 : Créer un formulaire dans un document HTML

Le but de cet apprentissage est de créer un formulaire d’enregistrement des


coordonnées d’un contact.

Voir le formulaire page suivante


L’environnement technique peut être Java, DOT NET, PHP, etc
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision B Ecrire du code HTML

Technologie HTML

Activité Créer et utiliser une feuille de style

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 De connaître les différentes manières de définir des styles


Précisions sur les  De définir des styles et de les appliquer à un élément de
objectifs visés par document HTML
l’activité
 de positionner des blocs avec des styles
 De mettre en page sur plusieurs colonnes avec des css

Exercice 1 : Les 4 manières de définir des styles

Il existe un langage qui permet de définir la façon de présenter les éléments contenus
dans une page HTML ; différentes possibilités sont offertes . Aujourd’hui, il est
incontournable de définir les styles par des feuilles de styles externes, ce qui offre le
maximum de souplesse pour faire évoluer la présentation d’un site Internet. Par ailleurs,
ces feuilles de style externes permettent aussi de réaliser des positionnements de blocs
qui remplacent l’ancienne technique basée sur des tableaux.

Les 4 manières de définir des styles sont les suivantes :

1. L'instruction style en tant qu'élément :

<style type="text/css">
Définition des styles …..
</style>

2. L'élément link pour établir un lien vers une feuille de style externe (fichier texte avec
l'extension .css) :

<link title="test" type="text/css" rel="stylesheet"


href="mafeuille.css">

Note : Le fichier .css ne doit pas contenir de code html.

3. L'instruction style en tant qu'attribut :

<p style="font-size: 12pt; color: green">


LXXIV.A.1.1LXXIII.A.1.1 Exemple de style en tant qu’élément

<html>
<head>
<style type="text/css">
<!--
h1
{
font-size: 12pt;
color: green
}
//-->
</style>
</head>
<body>
<h1>Essai de style </h1>
</body>
</html>

Tester cet exemple.

Voir le dossier Feuilles de style CSS dans l’aide selfhtml

Exercice 2 : Créer une première feuille de style

Reprendre l’exemple précédent

1. Créer une feuille de style style1.css


2. tapez le code suivant dans cette feuille :

h1
{
font-size: 12pt;
color: green
}

3. créer un document html avec une balise h1

4. Lier ce document à la feuille de style style1.css

Dans l’en-tête <head> rajouter la balise de lien vers la


feuille de style :

<link type="text/css" rel="stylesheet"


href="mafeuille.css">
5. tester le fonctionnement du document html lié à la feuille
de style
6. modifier la couleur de h1 dans la feuille de style (mettre
red par exemple au lieu de green)
7. tester à nouveau : que se passe-t-il ?

Exercice 3 : Utilisation de l’attribut class

Comme nous l'avons vu plus haut, on peut redéfinir la présentation d'une balise ( <h1>
dans l’exercice précédent ), mais si vous voulez qu’un style s’applique à plusieurs
éléments , alors l'élément class peut être utilisé.

Exemple avec un élément class dans un style interne:

Nous créons une classe test utilisée dans l’exemple avec des balises h2 et h4. Le même
style est appliqué à ces balises si elles possèdent l’attribut class=test. La classe est
identifiée par .test dans la balise de style , comme elle le serait dans la feuille de style.

<html>
<head>
<style type="text/css">
.test
{
font-size: 12pt;
color: red;
}
</style>
</head>
</body>
<h2 class="test">Titre défini avec un attribut
class</h2>
<h2>Titre normal de niveau 2</H2>
<h3>Titre normal</h3>
<h4 class="test"> Titre h4 défini avec un attribut
class »
<body>
<html>

Externalisez la définition de la classe test dans la


feuille de style style1.css.

Exercice 4 : Utilisation de l’attribut id

L’attribut ID peut être aussi utilisé pour identifier de manière unique un élément dans un
document.

En effet, on opte pour une ID de préférence lors d'un script Javascript., comme nous le
verrons plus loin.

Notez dans ce cas la manière d’écrire l’ID dans la définition du style :


#test

Exemple :

<html>
<head>
<style type="text/css">
<!--
#test
{
font-size: 10pt;
color: red
}
//-->
</style>
</head>
</body>
<H2 id="test">Titre défini avec un ID</H2>
<H2>Titre normal de niveau 2</H2>
<body>
<html>

Externalisez la définition de l’id dans la feuille de


style style1.css.

Exercice 5 : Le flux et le positionnement


LXXIV.A.1.2LXXIII.A.1.2 La structure des éléments d’un document HTML

La bonne compréhension de la structure des éléments est indispensable. Elle


aura de nombreuses applications par la suite.

Les éléments HTML ont chacun une structure particulière. Il en existe deux
familles : les éléments de type bloc et les éléments au fil du texte, dits en ligne
(ou inline). Ce type dictera tous leurs comportements : positionnement,
affichage, etc.

La distinction fondamentale est assez claire. Les blocs distinguent des parties
entières comme des titres, des paragraphes, des listes, des citations, etc. Les
éléments en ligne sont prévus pour enrichir localement des portions de texte
(lien hypertexte, renforcement, etc.).

Il en découle des spécificités d’affichage que nous détaillerons dans la partie


consacrée au positionnement.
.- Même si dans le code HTML ils sont écrits côte à côte, les éléments de type
bloc sont par défaut placés l’un sous l’autre par le navigateur. Exemples : une
suite de paragraphes (balise <p>) ou les éléments d’une liste (balise <li>).

- Les éléments en ligne s’appliquent à des portions de texte, comme des


groupes de mots dans une phrase. Par exemple : le renforcement d’une partie
de texte à l’aide de la balise <strong>..
LXXIV.A.1.3LXXIII.A.1.3 Contenus autorisés selon les types
de balises

Ces deux familles de balises diffèrent également par les contenus qu’elles
acceptent, en dehors du texte à proprement parler :

• Un élément bloc peut contenir un (ou plusieurs) éléments bloc et/ou en ligne,
à l’exception des éléments de paragraphe <p> et des titres <h1>, <h2>…,
limités aux contenus en ligne.
• Un élément en ligne ne peut renfermer que d’autres éléments en ligne.

Il existe aussi deux sortes d’éléments en ligne : « remplacés » et « non


remplacés ».

• Seuls les éléments remplacés acceptent des attributs de dimensions


(height,width). Il s’agit des éléments <img>, <input>, <textarea>, <select> et
<object>.
• Les autres n’ont pas de dimension à proprement parler, et n’occupent que la
place nécessaire à leur contenu. C’est le cas des éléments <strong>, <em>,
<a>, etc.

Une mise en page se fera donc préférentiellement à l’aide de balises de type


bloc. La plus indiquée pour cet usage est <div> (« division ») : c’est une balise
générique servant de conteneur neutre.

Voici une illustration de notre propos :

<div><p>Paragraphe 1</p><p>Paragraphe 2</p></div>

La balise de bloc <div> englobe les deux blocs de paragraphe, ce qui est
autorisé. En revanche, ce qui suit est invalide :

<span><p>par 1</p><p>par 2</p></span>

En effet, la balise en ligne <span> ne peut contenir des blocs tel le


paragraphe (<p>).
LXXIV.A.1.4LXXIII.A.1.4 Principales balises en ligne
LXXIV.A.1.5LXXIII.A.1.5

LXXIV.A.1.6LXXIII.A.1.6 Principales balises de type bloc


LXXIV.A.1.7LXXIII.A.1.7 Positionnement par les styles
Un des avantages des feuilles de styles, c'est le positionnement des éléments (bloc de
textes, images ...) au pixels près !!
Pour placer un élément, il existe deux types de positionnement

a ) Le flux normal

il s’agit de l’état naturel d’une page Web :

- un élément est positionné le plus en haut et à gauche possible


- Si d’autres éléments s’ajoutent, ils sont placés à sa droite jusqu’à ce qu’il n’y ait plus de
place
- s’il n’y a plus de place, les éléments glissent une ligne plus bas complètement à gauche

Illustrons ceci par l’affichage de 3 boîtes sous forme de div :


Les styles sont ici incorporés au document HTML, mais vous pouvez évidemment les
externaliser dans une feuille de style (excellent exercice !).
LXXIV.A.1.8LXXIII.A.1.8 3 boîtes dans le flux normal

<head>
<title>Petites boîtes – Flux normal - div</title>
<style type="text/css">
body {
color: black;
background-color: gray;
padding: 0;
margin:0;
}
div {
background-color: white;
padding: 10px;
border: 1px solid black;
margin: 5px;
}
</style>
</head>

<body>
<div>Boîte 1</div>
<div>Boîte 2</div>
<div>Boîte 3</div>
</body>

Les blocs div sont placés les uns au dessous des autres. Chaque bloc impose sa longueur
et prend la longueur disponible de son parent, c'est-à-dire body.
Si l’on réduit chacun des blocs div avec l’attribut width ( par exemple de 20% ), les boîtes
sont toujours les unes en dessous des autres car la balise div intègre un saut de ligne .
On parle aussi de position :static

b ) Le positionnement absolu ( hors du flux )

C'est le positionnement le plus rencontré.

Le placement d'un objet s'effectue à l'aide d'une boîte indépendante du reste du


contenu de la page où l'on insère du texte ou des images.
L’élément est totalement sorti du flux et les autres éléments de la page se
comportent comme s’il n’était pas là.
LXXIV.A.1.9LXXIII.A.1.9 2 boîtes dans le flux normal et une boîte en positionnement
absolu

La boîte 1 va se retrouver à droite du document, les boîtes 2 et 3 remontent vers


le haut.

<head>
<title>Petites boîtes - position:absolute</title>
<style type="text/css">
body {
color: black;
background-color: gray;
padding: 0;
margin:0;
}
div {
width: 20%;
background-color: white;
padding: 10px;
border: 1px solid black;
margin: 5px;
}
#autre {
position: absolute;
top: 25px;
right: 25px;
background-color: #f3c600;
}
</style>
</head>
<body>
<div id="autre">Boîte 1</div>
<div>Boîte 2</div>
<div>Boîte 3</div>
</body>

c ) Le positionnement relatif ( en décalé )

Le positionnement relatif réalise 2 choses :

- il déplace la boîte par rapport à sa position dans le


flux
- il marque l’emplacement d’origine comme étant
protégé

Les autres éléments se comportent comme si l’élément


se trouvait toujours à son emplacement d’origine
dans le flux normal.
LXXIV.A.1.10LXXIII.A.1.10 2 boîtes dans le flux normal et une boîte en
positionnement relatif

<head>
<title>Petites boîtes - position:relative</title>
<style type="text/css">
body {
color: black;
background-color: gray;
padding: 0;
margin:0;
}
div {
width: 20%;
background-color: white;
padding: 10px;
border: 1px solid black;
margin: 5px;
}
#autre {
position: relative;
top: 25px;
right: 25px;
background-color: #f3c600;
}
</style>
</head>

<body>
<div id="autre">Boîte 1</div>
<div>Boîte 2</div>
<div>Boîte 3</div>
</body>

Les boîtes 2 et 3 restent inchangées. Un élément


positionné obtient ses coordonnées par l’intermédiaire
des propriétés top, right, bottom et left.

- top: 25px tire la boîte vers le bas . 25 pixels sont


insérés au-dessus de la position normale de la boîte
- right: 25px pousse la boîte vers la gauche, de telle
sorte qu’elle disparaît partiellement . 25 pixels sont
insérés à droite de la position d’origine.
Toutes ces informations sont relatives à la position
d’origine.

Exercice 6 : mise en page sur 2 colonnes de


largeur fixe

Nous allons créer une mise en page à l’aide de styles pour


obtenir un menu de navigation à gauche du document et
le contenu dans la colonne de droite, avec un en-tête et
un pied de page.
LXXIV.A.1.11LXXIII.A.1.11 Structuration du document

- un paragraphe h1 qui contient l’en-tête ( on aurait pu mettre l’en-tête dans


le bloc global sous forme de div … )

- un bloc div dont l’ID est global contient les autres blocs : blocmenu et
contenu et dont la largeur est de 750 pixels

- un bloc dont l’ID est blocmenu contient le menu à gauche, sous forme de
liste à puce contenant des liens hypertextes. Ce bloc a une largeur fixe de 150
pixels

- un bloc dont l’ID est contenu contient le contenu du document, ici un texte
sans signification.

- un paragraphe dont l’ID est pied contient le pied de page. On aurait pu


faire aussi un bloc div à l’intérieur du bloc global
LXXIV.A.1.12LXXIII.A.1.12 Le code html du document
LXXIV.A.1.13LXXIII.A.1.13
<html>
<!-- date de creation: 12/03/2008 -->
<!-- gabarit à 2 colonnes et de largeur fixe -->
<head>
<title>Gabarit à 2 colonnes de longueur fixe</title>
<link rel="stylesheet" type="text/css" href="gabar2c_lf.css">
<body>
<h1>en-tete de page</h1>
<div id="global">
<div id="blocmenu">
<p>Bloc menu</p>
<p>largeur fixe : 150px</p>
<ul id="menu">
<li><a href="#">lien1</a></li>
<li><a href="#">lien2</a></li>
<li><a href="#">lien3</a></li>
<li><a href="#">lien4</a></li>
<li><a href="#">lien5</a></li>
</ul>
</div>

<div id="contenu">
<p>Bloc contenu</p>
<p> largeur fixe : 600px</p>
<p>
fjefjkùzlkfjùlkzfejdddddddddddddddddddddddddk*mlk*mkd*mml*kkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkzzzzzzzzzzzzzzzzzzzzzz </p>
</div>
<p id="pied">Pied de page</p>
</div>
</body>
</html>
LXXIV.A.1.14LXXIII.A.1.14 La feuille de style gabar2c_lf.css

/* auteur: xxxxxxx */
/* date de creation: 12/03/2008 */
body
{
margin:0;
padding:0;
}
p
{
margin:0 0 1em 0;
}
h1
{
height : 50px;
width: 750px;
background-color: #4c4e00;
color: white;
margin:0;
}
#global
{ /* c'est ici que nous définissons
la largeur générale du document */
width:750px;
background-color:#666600;
}
#blocmenu
{
float:left;
width:150px;
background-color:#666600;
color:white;
}
#blocmenu p
{
margin-left:1em;
}
#blocmenu ul
{
margin:0: 0 1em 0;
}
#blocmenu li
{
list-style-type:none;
margin:0: 0 0 1em ;
}
#blocmenu li a
{
color:white;
text-decoration:none;
}
#blocmenu li a:hover
{
text-decoration:underline;
}
#contenu
{
margin-left:150px;
background-color: #eaeae9;
}
#contenu p
{
margin:0 0 0 1em;
}
#pied
{
clear:both;
width:750px;
background-color: #cccc00;
margin:0
}
Exercice :
Créer les deux fichiers html et feuille de style et testez.
Réduisez ou augmenter la taille du navigateur : que
constatez vous ?

Exercice 7 : mise en page sur 2 colonnes avec


largeur adaptable

Nous allons enlever la définition de la largeur dans le


bloc global, pour h1 qui contient l’en-tête et l’ID pied
pour le pied de page . La largeur va s’adapter à la
dimension de l’écran.

Nous allons copier les deux fichiers précédents ( html et


css ) sous un autre nom pour garder la version de
départ.

h1
{
height : 50px;
/* width: 750px; */
background-color: #4c4e00;
color: white;
margin:0;
}
#global
{ /* pas de largeur définie */
/* width:750px; */
background-color:#666600;
}
#pied
{
clear:both;
/* width:750px ; */
background-color: #cccc00;
margin:0
}
Tester le fonctionnement , réduisez ou augmentez la
taille de la fenêtre : que se passe –t-il ?

Lien utile :

http://css.alsacreations.com/Modeles-de-mise-en-page-en-CSS
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 D’intégrer du code javascript dans un document HTML


Précisions sur les  D’écrire dynamiquement dans la page HTML affichée
objectifs visés par
l’activité

Chapitre 5

DESCRIPTION DE L’ACTIVITE

Exercice 1 : Premier script Javascript

Il faut bien débuter un jour, alors allons-y ! Avec un script simple :

alert("C'est mon 1er script");

Ce qui a pour effet d’afficher un message d’alerte :


1. Créez une page HTML vide.

2. Avant la balise </HEAD>, écrivez les balises d’ouverture et de


fermeture d’un script Javascript :

<script language="JavaScript">
<!-- Debut script

// Fin script -->


</script>

Les commentaires <!-- et // --> sont indispensables afin que les


navigateurs ne supportant pas Javascript ne retournent pas une
erreur ("Debut script" et "Fin script" sont optionnels).

3. Intégrer votre instruction dans le script :

<script language="JavaScript">
<!-- Debut script

alert("C'est mon 1er script");

// Fin script -->


</script>

Voici à quoi doit ressembler votre page HTML :

<html>
<head>
<title>mon 1er script</title>

<script language="JavaScript">
<!-- Debut script

alert("C'est mon 1er script");

// Fin script -->


</script>

</head>
<body>

</body>
</html>
4. Afficher votre page dans un navigateur

Exercice 2 : écrire dans la page html

On va continuer dans la même veine, mais avec quelques difficultés.

document.write("C'est mon 2ème script");

Ce qui a pour effet d’écrire dans la page Web : « C’est mon 2ème
script »

Voici votre page Web avec le script :

<html>
<head>
<title>mon 2ème script</title>

<script language="JavaScript">
<!-- Debut script

document.write("C'est mon 2ème script");

// Fin script -->


</script>
</head>
<body>
</body>
</html>

Afficher-la dans un navigateur et vous aurez une ligne simple qui


affiche « C’est mon 2ème script »
Exercice 3 : intégrer des balises HTML

Vous pouvez intégrer des balises HTML dans votre texte, ce qui vous
permet de choisir la police, la couleur, de centrer...( bien qu’il soit
préférable de traiter les présentations par des feuilles e style ! )

1er essai

Choisissons la police Arial en gras, une couleur bleue et de centrer le


tout. Notre instruction document.write devient :

document.write("<center><font face="Arial"
color="#0000ff"><b>C'est mon 2ème script
</b></font></center>");

(tout est sur la même ligne, mais pour des raisons d’affichage la ligne
est coupée)

Essayez d’intégrer cette instruction à la place de la précédente, ça


donne une erreur :-(

Pourquoi ?

document.write (comme alert, d’ailleurs) a comme argument une


chaîne de caractères délimitée par des guillemets ("). Si vous rajoutez
d’autres guillemets ("), Javascript ne comprend plus où commence et
où finit la chaîne.

Comment faire ?

Remplacer les guillemets (") à l’intérieur de la chaîne par des


apostrophes (’) :

document.write("<center><font face='Arial'
color='#0000ff'><b>C'est mon 2ème
script</b></font></center>");

Et là, ça marche ! Ca donne la même chose que l’image en haut.


Guillemets et apostrophes sont interchangeables

document.write('<center><font face="Arial"
color="#0000ff"><b>C'est mon 2ème
script</b></font></center>');

On a interverti guillemets (") et apostrophes (’) et - en théorie - le


résultat devrait être le même.

En théorie, seulement, car il y a un problème avec l’apostrophe de


"C’est". Pour remédier à ça on doit remplacer ’ par \’ :

document.write('<center><font face="Arial" color="#0000ff">


<b>C\'est mon 2ème script</b></font></center>');

Et là, on obtient le résultat précédent.

De même, on aurait pu écrire :

document.write("<center><font face=\"Arial\"
color=\"#0000ff\">
<b>C'est mon 2ème script</b></font></center>");
Règle usuelle pour les chaînes de caractères

On utilise en général la 1ère forme :

document.write("<center><font face='Arial'
color='#0000ff'><b>C'est mon 2ème
script</b></font></center>");

Soit des guillemets (") pour délimiter la chaîne et des apostrophes (’)
à l’intérieur, surtout à cause des nombreuses apostrophes (’) du
français. Mais sachez que les deux sont interchangeables.

Voir le chapitre Règles générales pour Javascript dans le


dossier javascript/DOM de l’aide selfhtml
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Les bases du langage

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 De déclarer et utiliser des variables


Précisions sur les  D’utiliser des opérateurs
objectifs visés par
l’activité

Exercice 1 : Déclaration des variables

Les variables peuvent se déclarer de deux façons :


 soit de façon explicite. On dit à Javascript que ceci est une variable. La
commande qui permet de déclarer une variable est le mot var. Par exemple :

var Numero = 1 ;
var Prenom = "Abdelilah" ;

 soit de façon implicite. On écrit directement le nom de la variable suivi de la


valeur que l'on lui attribue et Javascript s'en accommode. Par exemple :

Numero = 1 ;
Prenom = "Rachid" ;
Attention! la façon dont on déclare la variable aura une grande importance pour la
"visibilité" de la variable dans le programme Javascript.

Voir à ce sujet, la distinction entre variable locale et variable globale dans le Javascript
avancé de ce chapitre.

Pour la clarté de votre script et votre facilité, on ne peut que conseiller d'utiliser à chaque
fois le mot var pour déclarer une variable.

Javascript utilise 4 types de données :

Type Description
Des nombres Tout nombre entier ou avec virgule tel
que 22 ou 3.1416
Des chaînes de caractères Toute suite de caractères comprise entre
guillemets telle que "suite de caractères"
Des booléens Les mots true pour vrai et false pour faux
Le mot null Mot spécial qui représente pas de valeur

Notons aussi que contrairement au langage C ou C++, Il ne faut pas déclarer le type de
données d'une variable. On n'a donc pas besoin de int, float, double, char et autres long
en Javascript.

Exercice :

Nous allons employer la méthode write() pour afficher des variables. On définit une
variable appelée texte qui contient une chaîne de caractères "Mon chiffre préféré est "
et une autre appelée variable qui est initialisée à 7.

<body>
<script language="Javascript">
<!—
document.write("<h1>Variables en JS</h1>") ;
var texte = "Mon chiffre préféré est le "
var variable = 7
document.write(texte + variable);
//-->
</script>
</ body >

Voir le chapitre Variables et valeurs dans le dossier


javascript/DOM de l’aide selfhtml

Exercice 2 : les opérateurs

Opérateurs de calcul

Signe Signification Exemple Résultat


+ addition x+3 14
- soustraction x-3 8
* multiplication x*2 22
/ par division x /2 5.5
% reste de la division x%5 1
par
= affectation x=5 5

Opérateurs de comparaison
Signe Nom Exemple Résultat

== Egal x==11 true


< Inférieur x<11 false
<= Inférieur ou égal x<=11 true
> Supérieur x>11 false
=< Supérieur ou x>=11 true
égal
!= Différent x!=11 false

Opérateurs d’affectation
On appelle ainsi les opérateurs qui réalisent une affectation directe ou par un calcul
dans la variable située à gauche du signe .

Dans les exemples suivants x vaut toujours 11 et y aura comme valeur 5.


Signe Description Exemple Signification x
= x=y x=y 5
+= plus égal x += y x=x+y 16
-= moins égal x -= y x=x-y 6
*= multiplié égal x *= y x=x*y 55
/= divisé égal x /= y x=x/y 2.2

Opérateurs logiques

Signe Nom Exemple Signification


&& et (condition1) && condition1 et
(condition2) condition2
|| ou (condition1) || condition1 ou
(condition2) condition2

Opérateurs d’incrémentation/décrémentation
Ces opérateurs vont augmenter ou diminuer la valeur de la variable d'une unité. Ce qui
sera fort utile, par exemple, pour mettre en place des boucles.
Dans les exemples x vaut 3.

Signe Description Exemple Signification Résultat


x++ incrémentation y = x++ Y = X+1 4
x-- décrémentation y= x-- Y = x-1 2

Exercice :
Tester des exemples d’opérations avec les différents
opérateurs :
- calculs
- affectation
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Structures de contrôle : alternatives et répétitives

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 De programmer des alternatives


Précisions sur les  De programmer des répétitives
objectifs visés par
l’activité

- incrémentation/Décrémentation
pour les opérateurs logiques, nous les étudierons plus loin
avec les structures de contrôle SI …ALORS SINON
ou TANT QUE
Voir le chapitre Opérateurs dans le dossier
javascript/DOM de l’aide selfhtml

Variables locales et globales

Les variables déclarées tout au début du script, en dehors et avant toutes fonctions (voir
plus loin...), seront toujours globales, qu'elles soient déclarées avec var ou de façon
contextuelle. On pourra donc les exploiter partout dans le script.

Dans une fonction, une variable déclarée par le mot clé var aura une portée limitée à
cette seule fonction. On ne pourra donc pas l'exploiter ailleurs dans le script. D'où son
nom de locale. Par contre, toujours dans une fonction, si la variable est déclarée
contextuellement (sans utiliser le mot var), sa portée sera globale.
Nous reviendrons sur tout ceci dans l'étude des fonctions

DESCRIPTION DE L’ACTIVITE
Exercice 1 : structure alternative SI … ALORS … SINON

A un moment ou à un autre de la programmation, on aura besoin de tester une


condition. Ce qui permettra d'exécuter ou non une série d'instructions.
Dans sa formulation la plus simple, l'expression if se présente comme suit

if ( condition vraie )
{
// instructions si c’est vrai
}

Ainsi, si la condition est vérifiée, les instructions s'exécutent. Si elle ne l'est pas, les
instructions ne s'exécutent pas et le programme passe à la commande suivant
l'accolade de fermeture.

De façon un peu plus évoluée, il y a l'expression if...else

if ( condition vraie )
{
// instructions si c’est vrai
}

else
{
// instructions si c’est faux
}
Si la condition est vérifiée (true), le bloc d'instructions 1 s'exécute. Si elle ne l'est pas
(false), le bloc d'instructions 2 s'exécute.

Dans le cas où il n'y a qu'une instruction, les accolades sont facultatives.


Grâce aux opérateurs logiques "et" et "ou", l'expression de test pourra tester une
association de conditions.
Ainsi if ((condition1) && (condition2)), testera si la condition 1 et la condition 2 est
réalisée. Et if ((condition1) || (condition2)), testera si une au moins des conditions
est vérifiée.
qui contient une chaîne de caractères "Mon chiffre préféré est " et une autre appelée
variable qui est initialisée à 7.

Exercice :

Algorithme :

- Mettre 5 dans une variable


- Si le contenu de la variable est supérieur à 5, écrire « La valeur est
supérieur à 5 »
- Si le contenu est égal à 5 écrire « La valeur est égale à 5 »
- Sinon, écrire « La valeur est inférieure à 5 »

Voir le chapitre Instructions conditionnelles dans le


dossier javascript/DOM de l’aide selfhtml
Exercice 2 : Structure répétitive while

LXXIV.A.1.15LXXIII.A.1.15 Cette instruction correspond à


l’instruction algorithmique TANT QUE

L'instruction while permet d'exécuter une instruction (ou un groupe d'instructions) un


certain nombre de fois.

while (condition vraie){


continuer à faire quelque chose
}

Aussi longtemps que la condition est vérifiée, Javascript continue à exécuter les
instructions entre les accolades. Une fois que la condition n'est plus vérifiée, la
boucle est interrompue et on continue le script.

Prenons un exemple.

compt=1;
while (compt<5)
{
document.write ("ligne : " + compt + "<br>");
compt++;
}
document.write("fin de la boucle");

Exercice :

Réaliser une répétitive qui affiche le carré des 10 premiers


nombres entiers

Exercice 3 : Structure répétitive for


LXXIV.A.1.16LXXIII.A.1.16 Cette instruction correspond à
l’instruction algorithmique POUR
Cette structure est intéressante lorsque l’on peut se baser
sur un nombre d’itérations basé sur un compteur.

Syntaxe
for ( <variable=valeur initiale ;<condition logique d’arrêt>;
<incrément de la variable>)
{

Exemple

for(var i = 10; i <= 36; i++)

Exercice

Réaliser l’exercice précédent avec une structure for.

Voir le chapitre Boucles dans le dossier


javascript/DOM de l’aide selfhtml
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Créer et utiliser les tableaux en javascript

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 De créer et utiliser un tableau à une dimension en javascript


Précisions sur les  De créer et utiliser un tableau à 2 dimensions en javascript
objectifs visés par
l’activité

Exercice 1 : Création et utilisation d’un tableau à une dimension

Remarque : on suppose que l’apprentissage de l’algorithmique est réalisé.

L'objet Array (ou tableaux) est une liste d'éléments indexés dans lesquels on pourra
ranger (écrire) des données ou aller reprendre ces données (lire).

Pour faire un tableau, il faut procéder en deux étapes :

 d'abord construire la structure du tableau. A ce stade, les éléments du


tableau sont vides.

 ensuite affecter des valeurs dans les cases ainsi définies.

On commence par définir le tableau :

nom_du_tableau = new Array (100) ou

nom_du_tableau = new Array (x);

où 100 ou x représente le nombre d'éléments du tableau.

Ensuite, on va «écrire dans le tableau :

nom_du_tableau[i] = "elément";
où i est un nombre compris entre 0 et x moins 1.

Exemple : un carnet d'adresse avec 3 personnes


construction du tableau :
carnet = new Array(3);

ajout des données :

carnet[0]="Ahmed";
carnet[1]="Abdel";
carnet[2]="Rachid";

Attention : le premier élément du tableau commence à 0 !

pour accéder au deuxième élément :

carnet[1] . Exemple : document.write(carnet[2]).

L’intérêt des tableaux est de pouvoir effectuer des itérations :

for (var=i; i<3; i++)


{
document.write(carnet[i]).
}

la propriété length permet de connaitre la dilmansion du tableau.


.
Exercice :

Algorithme :

- créer un tableau qui contient les 10 premiers nombres entiers de 1 à


10 par une répétitive for
- afficher par document.write le carré de ces 10 nombres entiers en
explorant le tableau par une répétitive for

Voir le chapitre Array dans référence objet du


dossier javascript/DOM de l’aide selfhtml

Exercice 2 : Utilisation d’un tableau à deux dimensions

On peut créer des tableaux à deux dimensions (et plus encore) par un petit artifice
de programmation.

On déclare d'abord un tableau à 1 dimension de façon classique :

nom_du_tableau = new Array (x);

Ensuite, on déclare chaque élément du tableau comme un tableau à 1 dimension :

nom_du_tableau[i] = new Array(y); ( T pour Taille )

exemple pour un tableau de 3 sur 3 :

Tarif T. Small T. Médium T. Large


Chemises 120 125 130
Polos 80 85 90
Tee-shirts 50 52 54

Création en javascript :

nom = new Array(3);


nom[0] = new Array(4);
nom[1] = new Array(4);
nom[2] = new Array(4);

// remplissage du tableau
nom[0][0]="Chemises";
nom[1][0]="Polos";
nom[2][0]="Tee-shirt"
nom[0][1]="120"; nom[0][2]="125"; nom[0][3]="130";
nom[1][1]="80"; nom[1][2]="85"; nom[1][3]="90";
nom[2][1]="50"; nom[2][2]="52"; nom[2][3]="54";

exploration du tableau :
for ( var i = 0; i<3; i++)
{
for ( var j = 0; j<4; j++)
{
document.write(nom[i][j] + " ");
}
document.write("<br>");}

Tester cet exemple.


DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Créer et utiliser les fonctions en javascript

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 De créer et utiliser une fonction en javascript


Précisions sur les
objectifs visés par
l’activité

Exercice 1 : Création d’une fonction interne au document HTML

Remarque : on suppose que le principe des fonctions est acquis dans


l’apprentissage de l’algorithmique.

Une fonction est un groupe de ligne(s) de code de programmation destiné à exécuter


une tâche bien spécifique et que l'on pourra, si besoin est, utiliser à plusieurs
reprises.

De plus, l'usage des fonctions améliorera grandement la lisibilité de votre script.

En Javascript, il existe deux types de fonctions :

 les fonctions propres à Javascript. On les appelle des "méthodes". Elles


sont associées à un objet bien particulier comme c'était le cas de la
méthode alert() avec l'objet window.

 les fonctions écrites par vous-même pour les besoins de votre script.

Il est judicieux de placer toutes les déclarations de fonction dans l'en-tête de votre
page c.-à-d .dans la balise <HEAD> ...</HEAD>. Vous serez ainsi assuré que vos
fonctions seront déjà prises en compte par l'interpréteur avant qu'elles soient
appelées dans le <BODY>.

Pour déclarer ou définir une fonction, on utilise le mot (réservé) function.

La syntaxe d'une déclaration de fonction est la suivante :


function nom_de_la_fonction(arguments)
{
... code des instructions ...
}
Le nom de la fonction suit les mêmes règles que celles qui régissent le nom de
variables (nombre de caractères indéfini, commencer par une lettre, peuvent inclure
des chiffres...)

. Pour rappel, Javascript est sensible à la case. Ainsi fonction() ne sera pas égal à
Fonction(). En outre, Tous les noms des fonctions dans un script doivent être
uniques.

La mention des arguments est facultative mais dans ce cas les parenthèses doivent
rester. C'est d'ailleurs grâce à ces parenthèses que l'interpréteur Javascript distingue
les variables des fonctions.

Lorsqu’une accolade est ouverte, elle doit impérativement, sous peine de message
d'erreur, être refermée. Prenez la bonne habitude de fermer directement vos
accolades et d'écrire votre code entre elles.

Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la
composent. Ce n'est que lors de l'appel de la fonction que le code de programme
est exécuté.

Exemple de fonction dans l’en-tête du document:

<head>
<script language=javascript >
function message()
{
document.write("Bienvenue à ma page");
}
</script>
</head>

Avec passage de paramètre :

function message(texte) {
document.write(texte);}

Avec retour explicite

function message2(texte)
{
return texte + texte ;
}

Exercice fonction carre:

Créer une fonction qui admet un paramètre correspondant à un nombre et


renvoie le carré de ce nombre.

Voir le chapitre les fonctions dans références du


langage du dossier javascript/DOM de l’aide
selfhtml
Exercice 2 : Utilisation d’une fonction

Définir des fonctions c’est bien, les utiliser c’est mieux !

Une fonction peut être appelée

- du corps du document (c’est ce qu nous faisons pour


l’instant )
- par un événement déclenché sur un objet graphique
- par une autre fonction

dans le cas de notre fonction message de l’exercice 1 ,


l’appel serait (script à placer dans <body>)

<script language=javascript>
message() ;
</script>

Ou avec passage de paramètre :


<script language=javascript>
zonetexte = "salam " ;
message(zonetexte) ;
<body>

Ou avec récupération de la valeur de retour :

<script language=javascript>
zonetexte = "salam " ;
zoneretour = message2(zonetexte) ;
document.write(" Retour fonction " +
zoneretour) ;
</script

Avec les fonctions, le bon usage des variables locales et globales prend toute son
importance.

Une variable déclarée dans une fonction par le mot clé var aura une portée limitée à
cette seule fonction. On ne pourra donc pas l'exploiter ailleurs dans le script. On
l'appelle donc variable locale.

function cube(nombre) {
var cube = nombre*nombre*nombre}

Ainsi la variable cube dans cet exemple est une variable locale. Si vous y faites
référence ailleurs dans le script, cette variable sera inconnue pour l'interpréteur
Javascript (message d'erreur).

Si la variable est déclarée contextuellement (sans utiliser le mot var), sa portée sera
globale -- et pour être tout à fait précis, une fois que la fonction aura été exécutée--.

function cube(nombre)
{
cube = nombre*nombre*nombre
}

La variable cube déclarée contextuellement sera ici une variable globale.

Les variables déclarées tout au début du script, en dehors et avant toutes fonctions,
seront toujours globales, qu'elles soient déclarées avec var ou de façon contextuelle
sans var.

<script language="javascript">
var cube=1
function cube(nombre) {
cube = nombre*nombre*nombre }
</script>
La variable cube sera bien globale.

Pour la facilité de gestion des variables, on ne peut que conseiller de les déclarer en
début de script (comme dans la plupart des langages de programmation). Cette
habitude vous met à l'abri de certaines complications.

Exercice :

Utilisez la fonction carre définie à l’exercice 1.


DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Manipuler les formulaires HTML avec javascript

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 D’obtenir les données saisies dans un formulaire html


Précisions sur les  De valider les données d’un formulaire html
objectifs visés par
l’activité

Exercice 1 : Informations sur le formulaire

Définissons le vocabulaire que nous utiliserons. Un formulaire est l'élément Html


déclaré par les balises <form></form>. Un formulaire contient un ou plusieurs
éléments que nous appellerons des contrôles (widgets). Ces contrôles sont
notés par exemple par la balise <input type= ...>.

Il faut noter qu'en Javascript, l'attribut NAME="nom_du_formulaire" a toute son


importance pour désigner le chemin complet des éléments. En outre, les
attributs ACTION et METHOD sont facultatifs pour autant que vous ne faites pas
appel au serveur.
LXXIV.A.1.17LXXIII.A.1.17 Informations sur un formulaire

Pour connaître le nombre de formulaires d’un document :

document.write("nombre de formulaires du document " +


document.forms.length);

Pour connaître le nombre d’éléments du formulaire :

document.write("nombre d'éléments du formulaire " +


document.forms[0].length);

Exercice :

Créer un formulaire contenant quelques éléments . Tester la fonction length


comme ci-dessus sur le formulaire et le document .
LXXIV.A.1.18LXXIII.A.1.18 Placer le script dans le corps du
document (balise body)
LXXIV.A.1.19LXXIII.A.1.19
Exercice 2 : Manipuler les éléments d’un formulaire

LXXIV.A.1.20LXXIII.A.1.20 Lire une valeur dans une zone


de texte

<head>
<script language="javascript">
function controle(form1) {
var test = document.form1.input.value;
alert("Vous avez tapé : " + test); }
</script>
</head>
<body>
<form name="form1">
<input type="text" name="input" value=""><br>
<input type="button" name="bouton"
value="Contrôler" onClick="controle(form1)">
</form>
</body>

Lorsqu'on clique le bouton "contrôler", Javascript appelle la fonction controle() à


laquelle on passe la référence du formulaire dont le nom ( attribut name ) est form1.

Vous noterez l’utilisation de l’événement Click sur le bouton .

Cette fonction controle() définie dans les balises <HEAD> affecte à la variable test,
la valeur de la zone de texte. Pour accéder à cette valeur, on note le chemin complet
de celle-ci

Dans lle document présent, il y a l'objet formulaire appelé form1 qui contient le
contrôle de texte nommé input et qui a comme propriété l'élément de valeur value.

Ce qui donne document.form1.input.value.

LXXIV.A.1.21LXXIII.A.1.21 Ecrire une valeur dans une


zone de texte
<HEAD>
<SCRIPT LANGUAGE="javascript">
function afficher(form2) {
var testin =document. form2.input.value;
document.form2.output.value=testin ;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="form2">
<INPUT TYPE="text" NAME="input" VALUE=""> Zone de
texte d'entrée <BR>
<INPUT TYPE="button" NAME="bouton" VALUE="Afficher"
onClick="afficher(form2)"><BR>
<INPUT TYPE="text" NAME="output" VALUE=""> Zone de
texte de sortie
</FORM>
</BODY>

Lorsqu'on clique le bouton "Afficher", Javascript appelle la fonction afficher() à


laquelle on passe le formulaire dont le nom est cette fois form2 comme argument.

Cette fonction afficher() définie dans les balises <HEAD> prend dans la variable
testin, la valeur de la zone de texte d'entrée.

A l'instruction suivante, on dit à Javascript que la valeur de la zone de texte output


comprise dans le formulaire nommé form2 est celle de la variable testin.

A nouveau, on a utilisé le chemin complet pour arriver à la propriété valeur de l'objet


souhaité soit en Javascript document.form2.output.value.

Manipuler les boutons radio

Les boutons radio sont utilisés pour noter un choix, et seulement un seul, parmi un
ensemble de propositions
Prop
Propriété Description

name indique le nom du contrôle. Tous les boutons portent le


même nom.
index l'index ou le rang du bouton radio en commençant par
0.
checked indique l'état en cours de l'élément radio
defaultchecked indique l'état du bouton sélectionné par défaut.
value indique la valeur de l'élément radio.

Exemple de boutons radio:

<HEAD>
<SCRIPT language="javascript">

function choixprop(form3) {

if (form3.choix[0].checked)
{ alert("Vous avez choisi la proposition " + form3.choix[0].value) };

if (form3.choix[1].checked)
{ alert("Vous avez choisi la proposition " + form3.choix[1].value) };

if (form3.choix[2].checked)
{ alert("Vous avez choisi la proposition " + form3.choix[2].value) };
}

</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix :
<FORM NAME="form3">
<INPUT TYPE="radio" checked NAME="choix" VALUE="1">Choix numéro 1<BR>
<INPUT TYPE="radio" NAME="choix" VALUE="2">Choix numéro 2<BR>
<INPUT TYPE="radio" NAME="choix" VALUE="3">Choix numéro 3<BR>
<INPUT TYPE="button"NAME="but" VALUE="Quel et votre choix ?"
onClick="choixprop(form3)">
</FORM>
</BODY>

Manipuler les cases à cocher

Les boutons case à cocher sont utilisés pour noter un ou plusieurs choix (pour
rappel : avec les boutons radio un seul choix) parmi un ensemble de propositions. A
part cela, sa syntaxe et son usage est tout à fait semblable aux boutons radio sauf
en ce qui concerne l'attribut name qui doit être différent d’une cas à l’autre.

Propriété Description
name indique le nom du contrôle. Toutes les cases à
cocher portent un nom différent.
checked indique l'état en cours de l'élément case à
cocher.
defaultchecked indique l'état du bouton sélectionné par défaut.
value indique la valeur de l'élément case à cocher.

Exemple de cases à cocher

<head>
<script language="javascript">

function reponse(form4) {
if ( (form4.check1.checked) == true &&
(form4.check2.checked) == true &&
(form4.check3.checked) == false &&
(form4.check4.checked) == true)

{ alert("C'est la bonne réponse! ") }


else
{alert("Désolé, continuez à chercher.")}
}
</SCRIPT>
</HEAD>

<BODY>

Entrez votre choix :


<FORM NAME="form4">
<INPUT TYPE="CHECKBOX" NAME="check1" VALUE="1">
Choix numéro 1<BR>
<INPUT TYPE="CHECKBOX" NAME="check2" VALUE="2">
Choix numéro 2<BR>
<INPUT TYPE="CHECKBOX" NAME="check3" VALUE="3">
Choix numéro 3<BR>
<INPUT TYPE="CHECKBOX" NAME="check4" VALUE="4">
Choix numéro 4<BR>
<INPUT TYPE="button"NAME="but" VALUE="Corriger"
onClick="reponse(form4)">
</FORM>
</BODY>
Manipuler les listes de sélection

Le contrôle liste de sélection vous permet de proposer diverses options sous la forme
d'une liste déroulante dans laquelle l'utilisateur peut cliquer pour faire son choix. Ce
choix reste alors affiché.

La boite de la liste est crée par la balise <SELECT> et les éléments de la liste par
un ou plusieurs tags <OPTION>. La balise </SELECT> termine la liste.

Propriété Description
Name indique le nom de la liste déroulante.
length indique le nombre d'éléments de la liste. S'il est
indiqué dans le tag <SELECT>, tous les éléments
de la liste seront affichés. Si vous ne l'indiquez
pas un seul apparaîtra dans la boite de la liste
déroulante.
selectedIndex indique le rang à partir de 0 de l'élément de la
liste qui a été sélectionné par l'utilisateur.
defaultselected indique l'élément de la liste sélectionné par
défaut. C'est lui qui apparaît alors dans la petite
boite
.
Exemple de liste de sélection

<HEAD>
<script language="javascript"> function liste(form5) {
alert("L\'élément " + (form5.list.selectedIndex + 1)); }
</SCRIPT>
</HEAD>
<BODY>
Entrez votre choix : <FORM NAME="form5">
<SELECT NAME="list">
<OPTION VALUE="1">Elément 1
<OPTION VALUE="2">Elément 2
<OPTION VALUE="3">Elément 3
</SELECT>
<INPUT TYPE="button"NAME="b" VALUE="Quel est
l'élément retenu?" onClick="liste(form5)"> </FORM>
</BODY>

Manipuler l’objet Textaera : saisie de texte multiligne

L'objet textarea est une zone de texte de plusieurs lignes.


La syntaxe Html est :
<FORM>
<TEXTAREA NAME="nom" ROWS=x COLS=y>
texte par défaut
</TEXTAREA>
</FORM>

où ROWS=x représente le nombre de lignes et COLS=y représente le nombre de


colonnes affichées et non pas la taille du texte !.

L'objet textarea possède plusieurs propriétés :

Propriété Description
name Indique le nom du contrôle par lequel on pourra
accéder.
defaultvalue Indique la valeur par défaut qui sera affichée dans
la zone de texte.
value Indique la valeur en cours de la zone de texte. Soit
celle tapée par l'utilisateur ou si celui-ci n'a rien
tapé, la valeur par défaut.

En Javascript, on utilisera \r\n pour passer à la ligne.


Comme par exemple dans l'expression

document.Form.Text.value = "ligne1\r\nligne2\r\nligne3".

Afficher le contenu par javascript :

function afficherarea(form3)
{
var testarea =document.form3.txta.value;
alert(testarea);
}

modifier le contenu par javascript :

function modifierarea(form3)
{
document.form3.txta.value= "ligne1\r\nligne2\r\nligne3";
}

Manipuler l’objet Reset


Le contrôle Reset permet d'annuler les modifications apportées aux contrôles d'un
formulaire et de restaurer les valeurs par défaut.

La syntaxe Html est :

<INPUT TYPE="reset" NAME="nom" VALUE "texte">

où VALUE donne le texte du bouton.

Une seule méthode est associée au contrôle Reset, c'est la méthode onClick(). Ce
qui peut servir, par exemple, pour faire afficher une autre valeur que celle par défaut

Manipuler l’objet Submit

Le contrôle Submit a la tâche spécifique de transmettre toutes les informations


contenues dans le formulaire à l'URL désignée dans l'attribut ACTION du tag
<FORM>.

la syntaxe Html est :

<INPUT TYPE="submit" NAME="nom" VALUE "texte">

où VALUE affiche le texte du bouton.

Une seule méthode est associée au contrôle Submit, c'est la méthode onClick().

On va déclencher les contrôles de formulaire sur l’événement Click du bouton Submit


en appelant une fonction de contrôle.

Voir le chapitre les forms dans références objet du


dossier javascript/DOM de l’aide selfhtml
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Gérer le dialogue utilisateur : fenêtres javascript

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:

 Utiliser la barre d’atat de l’objet window


Précisions sur les  Manipuler des fenêtres avec javascript
objectifs visés par
l’activité

Exercice 1 : Barre d’état de l’objet Window

Utilisation de la barre d'état

Avec Javascript, la barre d'état (petite bande située au bas de la fenêtre du browser et qui vous inform
l'état des transferts et des connections) peut être utilisée pour afficher des messages de votre cru.

Les propriétés mises en œuvre sont

Propriété Description
status valeur du texte affiché dans la barre d'état de la fenêtre.
defaultStatus valeur par défaut qui s'affiche dans la barre d'état.

Généralement, cet événement est mis en œuvre par un onmouseOver() sur un lien hypertexte

Exercice
<head>
<title>Barre d'Etat</title>
</head>
<body>
<form name="formulaire">
<input type="text" name=saisie maxlength=40 size=40 value="entrez un texte">
<input type="button" value="changer status" onclick="dercarstatus()">
</form>

<script language="javascript">

function dercarstatus()
{
chaine = new String();
chaine = document.formulaire.saisie.value;
chaine = "le dernier caractere est : " + chaine.charAt(chaine.length - 1);
window.status= chaine;
}
</script>
</body>

Exercice bis

Quand la souris passe sur le lien, le message Page suivante apparaît dans la barre d’état ; quand la
quitte le lien, le texte s’efface.

<head>
<title>Barre d'Etat</title>
</head>

<body>
<a href="Page.htm"
onmouseover="self.status='Page suivante'; return true"
onmouseout="self.status=''; return true">
Survolez-moi SVP</a>

</body>

Voir le chapitre window dans références objet du dossier


javascript/DOM de l’aide selfhtml

Exercice 2 : Ouvrir une nouvelle fenêtre

La méthode open() de l’objet window permet d’ouvrir une nouvelle fenêtre.

La syntaxe est :

[window.]open("URL","nom_de_la_fenêtre","caractéristiques_de_la
fenêtre")

 URL est l'URL de la page que l'on désire afficher dans la nouvelle fenêtre. Si on ne dési
afficher un fichier htm existant, on mettra simplement ''".

 caractéristiques_de_la_fenêtre est une liste des caractéristiques de la fenêtre suivante que l'o
à la suite, séparées par des virgules et sans espaces ni passage à la ligne.

Caractéristique Description
toolbar=yes ou no Affichage de la barre d'outils
location=yes ou non Affichage de champ d'adresse (ou de
localisation)
directories=yes ou no Affichage des boutons d'accès rapide
status=yes ou no Affichage de la barre d'état
menubar=yes ou no Affichage de la barre de menus
scrollbars=yes ou no Affichage des barres de défilement.
resizable=yes ou no Dimensions de la fenêtre modifiables
width=x en pixels Largeur de la fenêtre en pixels
height=y en pixels Hauteur de la fenêtre en pixels

Ouverture par un bouton (avec code dans le onClick)

Nous allons ouvrir un petite fenêtre qui affiche le fichier test.htm avec un bouton dans la page.

Fichier test.htm :
<HTML>
<BODY>
<H1>Ceci est un test</HI>
<FORM>
<INPUT TYPE="button" value= " Continuer "
onClick="self.close()">
</FORM>
</BODY>
</HTML>

où self.close() fermera la fenêtre courante, c.-à-d. la nouvelle fenêtre test.htm

Dans la page de départ :


<FORM>
<INPUT TYPE ="button" value="Ouvrir une nouvelle fenêtre"
onClick="open('test.htm', 'new',
'width=300,height=150,toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no')">
(sans espaces ni passage à la ligne)
</FORM>
Ouverture par un bouton (avec appel d'une fonction)

Dans la page de départ :

<SCRIPT LANGUAGE="javascript">
<!--
function new_window() {
xyz="open('test.htm', 'new',
'width=300,height=150,toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no')">
// sans espaces ni passage à la ligne
}
// -->
</SCRIPT>
<FORM>
<INPUT TYPE ="button" value="Ouvrir une nouvelle fenêtre"
onClick="new_window()">
</FORM>

Fermeture automatique après x secondes


Avec ce script, sans intervention de l'utilisateur, la nouvelle fenêtre se ferme de façon automatique a
secondes. En cliquant sur le bouton, l'utilisateur interrompt prématurément le compteur et ferme la fe
Avec ce système, on est certain que le nouvelle fenêtre sera fermée.

La page test.htm devient testc.htm

<HTML>
<BODY onLoad='compt=setTimeout("self.close();",4000)'>
<H1>Ceci est un test</H1>
<FORM>
<INPUT TYPE="button" value=" Continuer "
onClick="clearTimeout(compt);self.close();">
</FORM>
</BODY>
</HTML>

Dans la page de départ :


<FORM>
<INPUT TYPE ="button" value="Ouvrir une nouvelle fenêtre"
onClick="open('testc.htm', 'new',
'width=300,height=150,toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=no,resizable=no')">
(sans espaces ni passage à la ligne)
</FORM>
Ecrire dans la nouvelle fenêtre
On passe par l'ouverture d'une nouvelle fenêtre par l'appel d'une fonction.
Dans la page de départ :

<SCRIPT LANGUAGE="Javascript">
<!--
function opnw(){ msg=window.open("","","width=300,height=50,
toolbar=no,
location=no,directories=no,
status=no,menubar=no,scrollbars=no,resizable=no");

// écriture dans la nouvelle fenêtre

msg.document.write('<HTML> <BODY>' +
'<CENTER><H1>Ceci est un test</H1></CENTER>' +
-->
</SCRIPT>
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Utiliser les objets prédéfinis :

Phase d’apprentissage BASE

Cette activité d’apprentissage doit vous permettre:


Précisions sur les
objectifs visés par  utiliser l’objet string
l’activité  utiliser l’objet Date
 Utiliser l’objet Navigator

Exercice 1 : utiliser l’objet string

Quelques propriétés et méthodes de string

Propriété ou méthode Description


Length ( propriété ). C'est un entier qui indique la
longueur de la chaîne de
caractères
indexOf() Méthode qui renvoie la position
d'une chaîne partielle à partir
d'une position déterminée
substring(x,y) Méthode qui renvoie un string
partiel situé entre la position x
et la position y-1.
toLowerCase() Transforme toutes les lettres en
minuscules..
toUpperCase() Transforme toutes les lettres en
Majuscules

La méthode indexOf()

Cette méthode renvoie la position, soit x, d'un string partiel (lettre unique, groupe
de lettres ou mot) dans une chaîne de caractères en commençant à la position
indiquée par y. Cela vous permet, par exemple, de voir si une lettre, un groupe de
lettres ou un mot existe dans une phrase.
variable="chaîne_de_caractères";
var="string_partiel";
x=variable.indexOf(var,y);

où y est la position à partir de laquelle la recherche (de gauche vers la droite) doit
commencer. Cela peut être tout entier compris entre 0 et la longueur - 1 de la
chaîne de caractères à analyser.
Si y n'est pas spécifié, la recherche commencera par défaut à la position 0.

Si le string partiel n'est pas trouvé dans la chaîne de caractères à analyser, la


valeur retournée sera égale à -1.

Quelques exemples :

variable="Javascript"
var="script" ;
x=variable.indexOf(var,0); // x vaut 4
variable="Casablanca"
var="@"
x=variable.indexOf(var); // x vaut -1

La méthode substring()
La méthode substring() est du même genre que indexOf(), que nous venons
d'étudier. Elle sera particulièrement utile, par exemple, pour extraire différentes
données dans une chaîne de caractères.

variable = "chaîne de caractères"


resultat=variable.substring(x,y)

où resultat est un sous ensemble de la chaîne de caractère (ou de la variable).

Les x et y sont des entiers compris entre 0 et la longueur moins 1 de la chaîne de


caractères.

Si x est inférieur à y, la valeur retournée commence à la position x et se termine à


la position Y-1.

Si x est supérieur à y, la valeur retournée commence à la position y et se termine


à la position X-1.

Vous souhaitez sûrement quelques exemples :

str="Javascript";
str1=str.substring(0,4);
str2="Javascript".substring(0,4);
str3=str.substring(6,9);
Les résultats sont :
str1="Java"; soit les positions 0,1,2 et 3.
str2="Java"; soit les positions 0,1,2 et 3.
str3="rip"; soit les positions 6,7 et 8
La méthode toLowerCase()
Cette méthode affiche toutes les majuscules d'une chaîne de caractères variable2
en minuscules.
variable2="chaîne de caractères";
variable1=variable2.toLowerCase();

Exemple :
str="JavaScript";
str1=str.toLowerCase();
str2="JavaScript".toLowerCase();
Le résultat sera :
str1="javascript";
str2="javascript";
La méthode toUpperCase()
Cette méthode affiche toutes les minuscules d'une chaîne de caractères variable2
en majuscules.
variable2="chaîne de caractères";
variable1=variable2.toUpperCase();
Exemple :
str="JavaScript";
str3=str.toUpperCase();
str4="JavasScript".toUpperCase();
Le résultat sera :
str3="JAVASCRIPT"; str4="JAVASCRIPT";

Exercice : tester les exemples précédents, ajoutez


vos propres recherches.

Voir le chapitre string dans références objet du


dossier javascript/DOM de l’aide selfhtml

Exercice 2 : utiliser l’objet date

Quelques propriétés et méthodes de date


Date();
Cette méthode renvoie toutes les informations "date et heure" de l'ordinateur de
l'utilisateur.

variable=new Date();
Ces informations sont enregistrées par Javascript sous le format :

"Fri Dec 17 09:23:30 1998"


Attention ! La date et l'heure dans Javascript commence au 1e janvier 1970. Toute
référence à une date antérieure donnera un résultat aléatoire.

La méthode new Date() sans arguments renvoie la date et l'heure courante.

Pour introduire une date et une heure déterminée, cela se fera sous la forme suivante
:

variable=new Date("Jan 1, 2000 00:00:00");

Toutes les méthodes suivantes vous faciliterons la tâche pour accéder à un point
précis de cette variable (en fait un string) et pour modifier si besoin en est le format
d'affichage.
getYear()
variable_date=new Date();
an=variable_date.getYear();

Retourne les deux derniers chiffres de l'année dans variable_date.


Comme vous n'avez que deux chiffres, il faudra mettre 19 ou 20 en préfixe soit
an="19"+variable_date.getYear(); ou an="20"+ variable_date.getYear();

getMonth()
variable_date=new Date();
mois=variable_date.getMonth();
Retourne le mois dans variable_date sous forme d'un entier compris entre 0 et 11 (0
pour janvier, 1 pour février, 2 pour mars, etc.). Soit ici 11 (le mois moins 1).
getDate()
variable_date=new Date();
jourm=variable_date.getDate();

Retourne le jour du mois dans variable_date sous forme d'un entier compris entre 1
et 31.

Eh oui, ici on commence à 1 au lieu de 0 (pourquoi???).

A ne pas confondre avec getDay() qui retourne le jour de la semaine.


getDay()
variable_date=new Date();
jours=variable_date.getDay();

Retourne le jour de la semaine dans variable_date sous forme d'un entier compris
entre 0 et 6 (0 pour dimanche, 1 pour lundi, 2 pour mardi, etc.).
getHours()
variable_date=new Date();
hrs=variable_date.getHours();

Retourne l'heure dans variable_date sous forme d'un entier compris entre 0 et 23.
getMinutes()
variable_date=new Date();
min=variable_date.getMinutes();

Retourne les minutes dans variable_date sous forme d'un entier compris entre 0 et
59.

getSeconds()
variable_date=new Date();
sec=variable_date.getSeconds();

Retourne les secondes dans variable_date sous forme d'un entier compris entre 0
et 59.

Un script qui donne simplement l'heure.


<HEAD>
<SCRIPT LANGUAGE="Javascript">
<!--
function getDt(){
dt=new Date();
cal=""+ dt.getDate()+"/"+(dt.getMonth()+1)
+ +dt.getYear();
hrs=dt.getHours();
min=dt.getMinutes();
sec=dt.getSeconds();
tm=" "+((hrs<10)?"0":"") +hrs+":";
tm+=((min<10)?"0":"")+min+":";
tm+=((sec<10)?"0":"")+sec+" ";
document.write(cal+tm);
}
// -->
</SCRIPT>
</HEAD>
<BODY >
<SCRIPT LANGUAGE="Javascript">
<!--
getDt();
// -->
</SCRIPT>
</BODY>

Voir le chapitre Date dans références objet du


dossier javascript/DOM de l’aide selfhtml

Exercice 3 : utiliser l’objet Navigator


Avec l'objet Navigator, on aura la possibilité d'identifier le browser (ainsi que la
version de celui-ci) utilisé par le lecteur. Ce qui en maintes occasions sera très utile
sinon indispensable pour assurer la compatibilité de vos pages. Les propriétés sont
peu nombreuses mais au combien intéressantes quoique parfois un peu obscures.
navigator.appCodeName
Retourne le nom de code du navigateur.

Cette propriété renvoie toujours "Mozilla". "Mozilla" est un nom de code de Netscape
qui l'a utilisé en premier. Microsoft (pour une raison que je vous laisse deviner) l'a
également repris. On ne pourra donc pas utiliser cette propriété pour différencier un
navigateur de Netscape ou de Microsoft.

document.write("Le code name de votre browser est " +navigator.appCodeName);

navigator.appName
Retourne le nom ou la marque du browser soit "Netscape", soit "Microsoft Internet
Explorer"

Cette propriété sera plus utile pour faire la différence entre la famille Netscape (
Firefox, …) et la famille Microsoft du browser.

document.write("Le nom ou la marque du browser est " +navigator.appName);

navigator.appVersion
Renvoie des informations concernant la version du navigateur, le système
d'exploitation de l'utilisateur, un code de nationalité de la version (avec des
variantes).
navigator.userAgent
Renvoie également des informations (sur le header envoyé dans le protocole HTTPd
du server de votre visiteur).

document.write("Le browser a comme user-agent name "+navigator.userAgent);

Exercice afficher les propriétés du navigateur (voir l’aide) . Tester avec


plusieurs navigateurs différents.

Voir le chapitre Navigator dans références objet du


dossier javascript/DOM de l’aide selfhtml
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision C Développer des scripts clients

Technologie Javascript

Activité Validation d’un formulaire avec javascript :

Phase d’apprentissage ENTRAINEMENT

Cette activité d’apprentissage doit vous permettre:


Précisions sur les
objectifs visés par
 Valider un formulaire HTML avec javascript
l’activité

Exercice 1 : Contrôler les données d’un formulaire

Exemple

Code source

<html>

<head>
<title>JavaScript - Contrôle Formulaire</title>
<script language="JavaScript">
function verifForm(Formulaire) {
if(Formulaire.txtSaisie.value == "")
{alert("La saisie est obligatoire")};
else
{alert("Vous avez saisi: '" + Formulaire.txtSaisie.value +"'")};
}
</script>

</head>

<body>
Saisissez un texte puis pressez le bouton 'Contrôle'<br>
<form>
<input type="text" name="txtSaisie" size=20>
<input type="button" value="Contrôler" onClick="verifForm(this.form)">
</form>
</body>
</html>

Cahier des Charges du formulaire Contact


Réaliser un formulaire "Contact.htm" correspondant au modèle ci-dessous, avec les
contraintes suivantes :
 Le formulaire, une fois contrôlé sera envoyé grâce à la méthode "Post" à
destination d'un Email.
 La "Société" doit comporter au moins 1 caractère.
 La "Personne à contacter" doit comporter au moins 1 caractère.
 Le "Code postal" doit comporter 5 caractères numériques.
 La "Ville" doit comporter au moins 1 caractère.
 Le Email doit comporter au moins le caractère "@".
Le champ "Environnement technique" est une liste déroulante dans laquelle on peut
choisir les techniques utilisées pour le projet proposé, ainsi qu'une zone de texte qui
reçoit la sélection.

Il est bien entendu que nous pouvons rajouter des informations manuelles dans la zone
de texte.

La valeur "Choisissez" ne doit pas s'afficher dans la zone de texte si elle a été
sélectionnée.
Traitement de l’environnement technique
Chapitre 6

Activité d’apprentissage
Module TDI-23 Applications hypermédias

Précision D Développer une application hypermédia avec un éditeur wisywig

Technologie HTML-CSS-Javascript

Activité

Phase d’apprentissage ENTRAINEMENT

Cette activité d’apprentissage doit vous permettre:

 De créer des pages html, feuilles de style et du code javascript


Précisions sur les avec un éditeur wisywig
objectifs visés par
l’activité

DESCRIPTION DE L’ACTIVITE

Exercice :

Reprendre les exemples mis en œuvre dans les activités précédentes avec
un éditeur wisywig.

.
DESCRIPTION DE L’ACTIVITE
Activité d’apprentissage
Module TDI-23 Application hypermédia

Toutes les
Précision
précisions

Activité D-002 Technologie Web

Activité

Phase Apprentissage Transfert

Dans cette activité de transfert vous allez exercer les opérations


suivantes :
 Conception de la navigation
Précisions sur les  Conception de la structure des pages
objectifs visés par  Définition de la charte graphique
l’activité  Création de la feuille de style
 Réalisation des pages HTMl
 Programmation du code javascript
 Test dans différents navigateurs

1. Présentation de l'Activité de transfert


1.1. Contexte
Une société souhaite créer un intranet pour gérer les demandes de congés de son personnel.

Le service de gestion du personnel vous demande, en tant que spécialiste des applications hypermédia,
de réaliser une maquette de cette application. Il n’y aura pas de développement côté serveur, aussi
faudra-t-il simuler les réponses de la future application grâce à HTML.

L’application est destinée a être utilisée par :

 le responsable du personnel
 les salariés de l’entreprise

Chaque salarié possède une adresse email dans la société.

L’accès à cette application sera protégé, c'est-à-dire que chaque utilisateur devra s’authentifier par un
code utilisateur ( userID ) et un mot de passe ( password) .

1.2. Fonctionnalités attendues

1.2.1. Pour le responsable du personnel

 Consulter les congés acceptés d’un salarié


 consulter les demandes de congé d’un salarié
 valider la demande de congé d’un salarié , qui devient dès lors un congé
accepté
 refuser la demande de congé d’un salarié
 modifier la demande de congé : date début, date de fin, type de congé

1.2.2. Pour chaque salarié


 Consulter ses congés acceptés
 saisir une demande de congé
 consulter ses demandes de congés

1.3. Contraintes techniques


 HTML
 Feuille de style CSS
 Validation des formulaires par javascript
 Possibilité de fonctionner correctement sur plusieurs navigateurs Les données

1.4. Personne : responsable ou salarié


 matricule de la personne dans l’entreprise
 nom
 prénom
 date de naissance
 date d’entrée dans l’entreprise
 adresse : rue, code de la ville , ville
 grade : manager, employé
 emploi : chef de service, directeur, secrétaire, programmeur , etc
 service dans l’entreprise : direction, service comptabilité, etc
 téléphone dans la société
 téléphone GSM

1.5. Congé ( accepté )


 date de début de congé
 date de fin de congé
 type de congé : congé payé, récupération, etc etc

1.6. Demande de congé


 date de la demande de congé
 date de début demandée de congé
 date de fin demandée de congé
 type de congé demandé

2. Exigences du service du personnel


2.1. Sur la navigation
L’architecture de navigation se basera sur les principes suivants :

 Un bloc d’en-tête couvrant toute la largeur de la page , contenant le logo de


l’entreprise à gauche
 Un bloc menu à gauche permettant de sélectionner les traitements
 Un bloc de contenu à droite qui contiendra l’information et/ou les formulaires
HTML
 Un bas de page ou pied de page contenant les informations sur le webmestre
à contacter, la date de dernière mise à jour.
2.2. Sur la présentation graphique
Harmoniser la présentation d’une page à l’autre : toujours le même style pour les mêmes éléments !

2.3. Sur les contrôles de formulaire


Les données saisies devront être contrôlées et les messages d’anomalie les plus clairs possibles.

3. Démarche de réalisation du projet


3.1. Conception de la navigation

Réaliser un graphe de navigation. Le sommet du graphe est évidemment la page d’accueil. Toutes les
pages doivent permettre de revenir à cette page.

3.2. Définir la structure type des pages

Il s’agit de structurer logiquement les pages en blocs : en-tête de page , menu, contenu, pied de page
avec leur positionnement respectif.

Ceci se fera par la création d’un gabarit basé sur des blocs <div> comme il été vu dans une activité
d’apprentissage précédente.

3.3. Définir la charte graphique : styles

il s’agit de définir quels sont les styles à appliquer :


 aux éléments html
 aux blocs de structure : en-tete, menu, contenu, pied de page
 aux identifiants ID
 aux classes regroupant plusieurs éléments

3.4. Créer la feuille de style

Appliquer les règles définies dans le paragraphe précédent en créant une feuille de style CSS

3.5. Créer les pages html en appliquant la feuille de style

3.6. Créer les scripts nécessaires en javascript

3.7. Tester dans différents navigateurs

Vous aimerez peut-être aussi