C5 Reseau TCP Applications LPSIL
C5 Reseau TCP Applications LPSIL
154
LPSIL ADMIN 2014– M.A. Peraldi-Frati - IUT Nice Côte d’Azur
Couche 3 : architecture simplifiée
Application DHCP ping traceroute
155
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
UDP (User Datagram Protocol) (2)
UDP est un protocole non orienté connexion, c'est-à-dire
qu’il n’offre pas de fonction de contrôle du bon
acheminement :
aucune vérification logicielle de la livraison des messages
pas de réassemblage des messages entrants
pas d‘accusé de réception
aucun contrôle de flux
Cependant, UDP offre l’avantage de nécessiter moins de
bande passante que TCP. Il peut donc être intéressant
d’utiliser ce protocole pour l’envoi de messages ne
nécessitant pas de contrôle de qualité.
156
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Connexion UDP
Un transfert UDP est caractérisé par :
@ IP source
@ IP destination
Port source
Port destination
Connexion à usage unique
Le port client est rendu après utilisation
Le port serveur attend un autre client
157
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Applications/protocole qui utilisent
UDP
Le protocole HTTP
Surcouche de UDP
Requête HTTP :
Le Client demande un port UDP
1843
Le Client envoie datagramme
IPclient:1843 IPserveur:80
Le Serveur envoie une réponse (page Web)
IPserveur:80 IPClient:1843
Le port 1843 est rendu à la machine Client
158
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Le protocole TCP
Transport Control Protocol
Communication en mode connecté
Ouverture d’un canal
Communication Full-Duplex
Fermeture du canal
La connexion sécurise la communication
Ordre garanti
Arrivée garantie
159
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Applications/protocoles qui utilisent
TCP
Quelques exemples
HTTP
SMTP
FTP
telnet, rlogin, ssh
Proportion de trafic TCP dans l’Internet (McCreary et Claffy,
2000)
91% des octets
83% des paquets
160
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Qu’offre TCP aux applications ?
Un canal transparent, sans erreurs et bidirectionnel (en mode full-
duplex) qui transporte une séquence d’octets
Protocole de bout en bout et de point à point
« Flot d’octets » (byte-stream)
Service fiable
Service orienté connexion
À chaque octet émis correspond un numéro de séquence
Numérotation des données envoyées ⇒ confirmation des données
reçues
161
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Service fiable
TCP suppose que la couche inférieur (IP) n’est pas fiable
Acquittement (acknowledgement) des données reçues
Retransmission des données perdues
Contrôle de flux
Ordonnancement des données qui arrivent « dans le désordre »
Écartement des données dupliquées
Vérification de l’intégrité des données (checksum)
162
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Service orienté connexion
Avant de pouvoir envoyer des données, il faut établir une
connexion
Mécanisme de signalisation : three-way handshake
Analogie : appel téléphonique
163
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Segments TCP et paquets IP
Unité d’information (PDU) = segment
Les données de l’application son coupées en blocs, transportés en segments TCP
Chaque segment TCP est « encapsulé » dans un
paquet IP
Paquet IP
Segment TCP
164
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
En-tête d’un segment TCP
0 3 4 9 10 15 16 31
N°de séquence
20 N°d’acquittement (acknowledgement)
octets
Long.
Réservé Drapeaux Taille de la fenêtre
en-tête
Données (s’il y en a)
165
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Drapeaux de l’en-tête TCP
Utilisés pour la signalisation
166
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Etablissement de connexion en 3 phases :
SYN, SYN-ACK, ACK
http://sebsauvage.net
167
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Ouverture de la connexion
client serveur
application :
ouverture
application : passive
ouverture SYN j
active
application :
FIN n fermeture
notifier
passive
fermeture à
l’application ACK n+1
Récepteur
1. Attendre un paquet
2. Envoyer confirmation
3. Retour à (1)
171
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Contrôle de flux dans TCP
« Fenêtre glissante »
Idée : l’émetteur peut envoyer des données sans avoir reçu de
confirmation de tout ce qu’il a déjà émis… tant que le
récepteur peut absorber les nouvelles données !
172
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Fenêtre glissante : évolution dans le temps
Le récepteur confirme l’arrivée de données ⇒ la fenêtre se ferme
Champ N° de ACK
Le récepteur lit des données (acquittées) ⇒ la fenêtre s’ouvre
Champ Taille de la fenêtre
Fermeture + ouverture = la fenêtre se déplace « vers la droite » (glisse)
se « réduit »
se ferme (shrinks) s’ouvre
fenêtre d'émission
Fenêtre utile
octet n° 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
174
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Fenêtre glissante : exemple
(cf. schéma précédent)
1 1024 1025 2048 2049 3072 3073 4096 4097 5120 5121 6144 6145 7168 7169 8192
données 4,5,6
fenêtre annoncée dans 7 ← glisse
ACK 7
fenêtre annoncée dans 8 ← se ferme
ACK 8
↓ s’ouvre, glisse
données 9
fenêtre annoncée dans 10
ACK 10
données 11,12,13
annoncée dans 14
ACK 14
données 15
175
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
A B
SYN 0
1
SYN 0, ACK 1, MSS=1024, fenêtre=4096
2 fenêtre
ouverture
ACK 1 initiale
3
[1, 1024]
4
[1025, 2048]
5
[2049, 3072]
6
ACK 2049, fenêtre =4096
7 glisse
ACK 3073, fenêtre =3072
8 se ferme
[3073, 4096]
9
transfert
de données ACK 4097, fenêtre =4096
10
s’ouvre,
glisse
[4097, 5120]
11
[5121, 6144]
12
[6145, 7168]
13
ACK 6145, fenêtre =4096
14
[7169, 8192]
15
176
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
IX: Les ports
177
LPSIL ADMIN 2014– M.A. Peraldi-Frati - IUT Nice Côte d’Azur
Les ports
Un port est un point d'entrée à un service sur un équipement
(pc, serveur,...) connecté à un réseau.
A partir d’une seule adresse IP, vous pouvez faire
plusieurs requêtes
178
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
L'utilité des ports
Programmes TCP/IP exécutés simultanément sur Internet.
Chacun de ces programmes travaille avec un protocole, toutefois
l'ordinateur doit pouvoir distinguer les différentes sources de
données.
Chacune de ces applications se voit attribuer une adresse unique
sur la machine, codée sur 16 bits : un port (la combinaison adresse
IP + port est alors une adresse unique au monde, elle est appelée
socket).
L'adresse IP identifie de façon unique un ordinateur sur le réseau
Le numéro de port indique l'application à laquelle les données sont
destinées.
Lorsque l'ordinateur reçoit des informations destinées à un port,
les données sont envoyées vers l'application correspondante.
179
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
L’utilité des ports
Il y a 65536 ports (16 bits) :
De 0 à 1023 : ports reconnus ou réservés («Well Known Ports»). De
manière générale, réservés aux processus système (démons) ou aux
programmes exécutés par des utilisateurs privilégiés.
180
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Les ports reconnus
21 : FTP
22 : SSH
23 : Telnet
25 : SMTP
53 : Domain Name System
68 : DHCP
80 : HTTP
110 : POP3
…
181
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Ports client-serveur
Un serveur possède des numéros de port fixes auxquels
l'administrateur réseau a associé des services.
182
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
X – Protocoles applicatifs et
d’administration réseaux
183
LPSIL ADMIN 2014– M.A. Peraldi-Frati - IUT Nice Côte d’Azur
Couche 3 : architecture simplifiée
Application DHCP ping traceroute
184
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
XI - Applications réseaux
185
LPSIL ADMIN 2014– M.A. Peraldi-Frati - IUT Nice Côte d’Azur
DHCP : Attribution d’adresses IP
Pour l’attribution dynamique des adresses IP, on utilise des
protocoles qui attribuent des IP aux hôtes :
BOOTP : Ce protocole permet à un équipement de récupérer son adresse
IP au démarrage. L’émetteur envoi un message de broadcast
(255.255.255.255) reçu par le serveur qui répond lui aussi par un broadcast
contenant l’adresse MAC de l’émetteur ainsi qu’une IP.
DHCP : Remplaçant de BOOTP, il permet l’obtention dynamique d’IP.
Lorsqu’un ordinateur entre en ligne, il communique avec le serveur qui
choisit une adresse et l’attribue à l’hôte. Avec le protocole DHCP, il est
également possible pour un ordinateur de récupérer sa configuration
complète (adresse, masque de sous réseau, etc.)
186
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Attribution d’adresses IP
On distingue 2 méthodes d’attribution des adresses IP pour
les hôtes :
Statique : chaque équipement est configuré avec une adresse
unique
Dynamique : on utilise des protocoles qui attribue
dynamiquement les adresses IP dès la connexion à partir d’un
pool d’adresses.
187
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
DHCP (Dynamic Host Configuration
Protocol)
Pour connecter une machine à l’Internet, DHCP configure
dynamiquement :
1. Une adresse IP unique dans le réseau local et appartenant au
même réseau logique que toutes les autres machines du
réseau,
2. L’adresse IP d’une passerelle qui permet d’accéder à
l’extérieur,
3. L’adresse IP d’un serveur DNS pour pouvoir résoudre les
noms des hôtes,
4. un masque de sous réseau, le même pour tous les hôtes du
réseau.
188
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Modèle de fonctionnement
189
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Messages DHCP
DHCPDISCOVER : localiser les serveurs DHCP disponibles
DHCPOFFER : réponse du serveur à un paquet DHCPDISCOVER, contenant les
premiers paramètres
DHCPREQUEST : requête diverse du client pour, par exemple, prolonger son bail
DHCPACK : réponse du serveur qui contient des paramètres et l'adresse IP du client
DHCPNAK : réponse du serveur pour signaler au client que son bail est échu ou si le
client annonce une mauvaise configuration réseau
DHCPDECLINE : le client annonce au serveur que l'adresse est déjà utilisée
DHCPRELEASE : le client libère son adresse IP
DHCPINFORM : le client demande des paramètres locaux
190
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Protocole ICMP
Internet Control Message Protocol (RFC 792)
But : échange de messages d’erreur et de demande d’information
Traités soit par IP, soit par une couche supérieure
Niveau 3, mais encapsulé dans des paquets IP
Champ Protocole = 1
Paquet IP
191
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Quelques types de messages ICMP
Type Code Description Demande Erreur
4 Port inaccessible
etc.
8 0 Demande d’écho
0 Durant le transit
1 Durant le réassemblage
192
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Commande ping
Basée sur les messages ICMP de type 8 (echo request) et 0 (echo reply)
Réception d’un message type 8 ⇒ émission d’un message type 0
Format des messages
0 7 8 15 16 23 24 31
Type (0 ou 8) 0 Checksum
(données optionnelles)
193
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
ping
194
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
tracert
Basé sur les messages ICMP de type 11 / code 0 (time exceeded) et type 3 / code 4 (port
unreachable)
Envoi de datagrammes UDP qui déclenchent ces messages d’erreur ICMP
Format des messages
0 7 8 15 16 23 24 31
Type Code Checksum
en-tête UDP
195
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
tracert : fonctionnement
Sens A → B : datagrammes UDP (avec N°port destination ≥ 33434)
A R1 R2 R3 B
TTL = 1
ICMP time expired
TTL = 2 TTL = 1
ICMP time expired
196
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
tracert
197
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
LPSIL ADMIN 2014-- IUT Nice Côte d’Azur
Nslookup – interrogation du serveur de
noms
199
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
FTP (File Transfer Protocol)
Permet le transfert de fichiers d'une machine (serveur) vers une autre (client).
Utilité :
stockage de fichiers
serveur
Utilisation
directement par l’utilisateur
ftp
par d’autres applications
200
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Commandes
get, mget
put, mput
lcd, cd
bin, ascii
quit, bye
ls
help
…
201
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Modèle de fonctionnement
Connexion de contrôle :
toutes les commandes et les codes de retour
(texte ASCII)
Utilisateur interface
Commandes Commandes
client serveur
Connexion de données :
toutes les données (contenu de fichiers)
202
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Modèle de fonctionnement
commandes de contrôle
codes de retour
Client Serveur
ACK
204
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Exemple d’utilisation
ACK
205
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Exemple d’utilisation
206
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Le client 82.122.178.21 écoute sur
le port 19*256+137 = 5001
Exemple d’utilisation
ACK
207
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Exemple d’utilisation
ACK
ACK
ACK 208
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Exemple d’utilisation
ACK
ACK
FIN
ACK ; FIN
ACK
209
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
TELNET
TELNET = protocole réseau
telnet = logiciel qui utilise le protocole TELNET
TELNET
permet de connecter un client (système composé d'un affichage et d'un
clavier) à un serveur (interpréteur de commandes)
TCP
Client Serveur
(interface pour commandes) (interpréteur de commandes)
210
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
TELNET
Port 23
Données et contrôle sur la même connexion TCP
Network Virtual Terminal (NVT)
Représentation virtuelle d’un terminal générique (clavier standard, taille
d’écran standard, etc.)
Négociation des options entre le client et le serveur (jeu des
caractères, mode ligne ou caractère, etc.)
211
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Commandes TELNET
Le caractère avec le code 255 signale une commande (IAC,
Interpret As Command)
Commandes :
247 (EL, Erase Line)
246 (EC, Erase Character)
243 (IP, Interrupt Process)
…
212
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Exemple connexion telnet
Z:\users>telnet if-4433.insa-lyon.fr
Login: SP1321
Password: ********
*===============================================================
Bienvenue à Microsoft Telnet Server.
*===============================================================
C:\>netstat
Connexions actives
C:\>exit
Z:\users>
213
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Aspects concernant l’utilisation du protocole
TELNET
Beaucoup des serveurs TCP ne parlent pas TELNET
telnet peut être utilisé, mais pas de commandes de contrôle
Exemple :
telnet www.wanadoo.fr 80
214
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
SSH
Secure Shell
Alternative à TELNET
Protocole permettant une communication sécurisée entre le
client et le serveur - les données sont cryptées
Port 22
215
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
HTTP (HyperText Transfer Protocol)
Le protocole de communication standard pour le Web
Port 80
Deux versions utilisées :
http 1.0
http 1.1
Références :
HTTP 1.0 : http://www.faqs.org/rfcs/rfc1945.html
HTTP 1.1 : http://www.faqs.org/rfcs/rfc2616.html
216
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Modèle de fonctionnement
Client HTTP Serveur HTTP
(Navigateur Web) (serveur Web)
requête
réponse
Transport
(d’habitude TCP)
HTTP 1.0 : une requête/réponse par connexion
HTTP 1.1 : plusieurs …
217
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Requête HTTP – format général
Ligne de requête
218
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
La ligne de requête
Méthode URI protocole CRLF
Protocole :
HTTP/1.0
HTTP/1.1
Méthode :
GET : Requête de la ressource
HEAD : Requête de l'en-tête de la ressource
POST : Envoi de données à un programme
PUT : Envoi de données à l'URL spécifié
DELETE : Suppression de la ressource
219
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Requête HTTP - exemple
GET /index.htm HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: fr
Accept-Encoding: gzip
User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;
SV1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)
Host: www.reuters.com
Connection: Keep-Alive
220
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Réponse HTTP
Ligne d’état
221
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Réponse HTTP - exemple
HTTP/1.1 200 OK
Server: Netscape-Enterprise/4.1
Date: Mon, 15 Nov 2004 10:42:39 GMT
Content-type: text/html
Content-Length: 1234
222
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur
Modèle de communication
Chaque site Web : plusieurs fichiers
HTTP 1.0 -> Problème de performance
224
LPSIL ADMIN 2014–
2014-- M.A.
IUT Nice
Peraldi-Frati
Côte d’Azur
- IUT Nice Côte d’Azur