Les Réseaux

Transcription

Les Réseaux
Les Réseaux
Par THOREZ Nicolas
VI - Description des protocoles de la couche Transport
TCP, UDP, ports, well-known ports, /etc/services
Le protocole IP renvoie vers 2 protocoles pour le transport de l'information : TCP et UDP.
Ils définissent les méthodes de communication entre les applications émettrices et les
applications réceptrices. Ces protocoles sont accompagnés par le port de communication utilisé
pour la connexion, cependant, ce port n'est pas du tout déterminé par les protocoles TCP/UDP.
Les ports sont définis par les programmes utilisés, ceux qui émettent une information. Certains
ports (les well-known ports ou ports bien connus) sont normalisés par l'IANA afin d'assurer la
bonne communication entre les applications standarts.
Exemple de well-known ports selon les besoins de communication :
Besoin
Protocole Applicatif
Port
HTTP
80
HTTPS
443
SMTP
25
POP3
110
IMAP4
143
FTP
20, 21
TFTP
69
NFS
2049
SMB/CIFS
445/UDP
Telnet
23
SSH
22
RDP
3389
VNC
5900, 5800 (Java)
SQLServer
1433
MySQL
3306
NIS
67
LDAP
389
Publication
Messagerie
Transfert de fichiers
Terminal à distance
Base de données
Authentification
Ces ports et bien d'autres sont connus par le système via le fichier services,
C:\Windows\System32\drivers\etc\services dans Windows et /etc/services dans Linux. Ce fichier
est éditable par les outils de traitement de texte (notepad, nano, etc) afin de permettre à
l'utilisateur ou l'administrateur selon les droits de rajouter des ports spécifiques. Certaines
applications non-standard utilisent des ports qui leurs sont propres et qui sont définis par les
programmateurs lors de la conception des applications.
De ces faits, lorsque qu'une application émet une information, elle fournit au protocole IP :
–
type de protocole de transport
–
–
port à utiliser
données à envoyer
Un paquet est ensuite construit selon les informations transmises au protocole IP.
Le datagramme UDP
IP
Emet.
...
ARP
IP
Dest.
Port
Emet.
UDP
Port
Dest.
IP
Payload
UDP
UDP (User Datagram Protocol) est un protocole ''connectionless''. Il n'y a aucun échange
préalable entre l'émetteur et le récepteur pour vérifier la présence sur le réseau et l'activité du
récepteur. UDP est un protocole simple et léger qui est surtout utilisé lorsqu'il n'y a aucun
besoin de contrôle des données (émission de requêtes simples et courtes plutôt que de
données longues et complexes).
UDP
Appli.
Emet.
Appli.
Dest.
écoute sur le port
UDP/xxxx
Le segment TCP
IP
Emet.
...
ARP
IP
Dest.
Port
Emet.
TCP
IP
Port
Dest.
Flag
Payload
TCP
TCP (Transmission Control Protocol) vérifie la disponibilité du récepteur et établie un lien
avec afin d'envoyer des données. Il fragmente l'information en petites trames et les numérote
avant de les envoyer. A la fin de l'envoi, l'émetteur envoie une séquence de fin. Le récepteur
compte les trames reçus pour reconstituer la trame complète, redemande les trames
manquantes ou envoie un signal d'accord si toutes les données sont reçues.
L'établissement de la connection se fait en 3 temps (Three-way Handshake), la
déconnexion en 4 temps.
Dest. est-il là?
oui
Envoi de données
Appli.
Emet.
Donnée 1
Donnée 2
.......
Donnée X
Fin des données
ok
Three-way Handshake
Chaque bloc TCP contient un Flag déterminant la nature du signal :
Appli.
Dest.
écoute sur le port
TCP/xxxx
•
•
•
•
•
•
URG : Signale la présence de données URGentes
ACK : Signale que le paquet est un accusé de réception (ACKnowledgement)
PSH : Données à envoyer tout de suite (PuSH)
RST : Rupture anormale de la connexion (ReSeT)
SYN : Demande de SYNchronisation ou établissement de connexion
FIN : Demande la FIN de la connexion
Pour connaitre les ports ouverts sur son poste, on peut utiliser la commande DOS : netstat.
La commande netstat
La commande netstat affiche les statistiques de protocole et les connexions TCP/IP
actuelles du poste.
Usage:
netstat option
Option:
-?
-a
-n
-p Protocole
-o
affiche
affiche
affiche
affiche
affiche
l'aide
toutes les connexions et tous les ports d'écoute
les adresses et les ports en format numérique
les connexions pour le protocole spécifié (TCP/UDP)
le n° de processus à l'origine de la connexion
Récapitulatif et schéma d'un transport de données en TCP/IP
–
–
–
–
–
–
–
L'application A sur le poste E doit émettre une donnée à l'application B sur le poste D.
L'application A crée une donnée à envoyer, charge en entête son port et le port de
l'application réceptrice. Elle fournit aussi le choix du protocole de transport (UDP pour
l'exemple). Elle fournit le tout au protocole IP.
IP construit une entête avec IP E, IP D et protocole utilisé, l'ajoute au payload application
et l'envoie au protocole ARP.
ARP détermine les adresses MAC E et MAC D, crée l'entête et spécifie la nature du
payload (ici IP).
Le paquet est émis sur le réseau.
IP du poste D récupère le paquet sur le réseau. Il détermine le mode de transport utilisé
(TCP ou UDP?) et transmet le payload au protocole concerné (TCP dans notre cas).
TCP analyse le port indiqué dans le paquet et transmet le payload à l'application
concerné (ici Application B).
Poste E
Poste R
-------------------
-------------------
Application A
Application B
Transmission de données du point de vue de l'utilisateur
Appli A
Appli B
Payload
Payload
Entête UDP
Quel port? Port B!
Transfert vers Appli B
Port A|Port B
+
Payload
Port A|Port B
Transmission à IP
IP E|IP R|UDP
+
+
Payload
TCP ou UDP? UDP!
Transfert vers UDP...
Payload
IP E|IP R|UDP
+
Payload
Récupération par IP
Transmission à ARP
MAC E|MAC R|IP
+
Payload
Paquet
Émission sur le réseau
Transmission de données du point de vue technique