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