Réseaux Informatiques Réseaux A Réseaux Informatiques (2 ème partie)
Couche 4 - Transport Objectifs Transférer des informations : - entre deux applications - indépendamment du (ou des) réseaux traversés - de manière fiable et économique La qualité des protocoles réseau n'est pas toujours la même : X25 = contrôle des erreurs IP = sans contrôle d'erreurs
Couche 4 - Transport
Couche 4 - Transport Fonctions Transport de bout à bout Transparence de l'information Qualité de service Adressage
Couche 4 - Transport Types de protocoles Sans connexion Les messages sont transmis aux applications sans vérifier: - si elles sont actives - laquelle les récupère - les erreurs d'acheminement ==> exemple de protocole : UDP Orienté connexion Les messages sont transmis aux applications - après une pseudo connexion entre applications - en contrôlant les erreurs d'acheminement ==> exemple de protocole : TCP
Protocole TCP 1 - TCP - Généralités
TCP (Transport Control Protocol) - Objectifs Protocole TCP TCP (Transport Control Protocol) - Objectifs Service en mode connecté ==> garantie de non perte de messages ainsi que de l'ordonnancement Transport fiable de la technologie TCP/IP : Adresse les processus (N° Port) Fiabilise IP (Connexion et acquittements) Optimise les ressources (Fenêtres variables)
Protocole TCP 2 - TCP – Les ports Les adresses IP désignent des machines. Un processus doit adresser un autre processus. L'adressage d’un processus est un dispositif indépendant du système d'exploitation car : les processus sont créés et détruits dynamiquement, on identifie les destinations selon les services offerts et pas selon les processus qui les mettent en oeuvre, un processus peut assurer plusieurs services.
TCP – Quelques N° de Port Protocole TCP TCP – Quelques N° de Port No port Mot-clé Description 20 FTP-DATA File Transfer [Default Data] 21 FTP File Transfer [Control] 23 TELNET Telnet 25 SMTP Simple Mail Transfer 42 NAMESERVER Host Name Server 53 DOMAIN Domain Name Server 80 HTTP WWW 110 POP3 Post Office Protocol - Version 3
Protocole TCP 3 - TCP – Fiabilisation TCP doit assurer un transport fiable des datagrammes IP : service en mode connecté garantie de non perte de messages ainsi que de l'ordonnancement
Protocole TCP TCP - Acquittements Source Réseau Destination Emission de Mi Temporisation armée Mi n‘est pas reçu Ai non envoyé Ai n’est pas reçu Tempo. echue Réemission de Mi Réception de Mi Emission de Ai Réception de Aj
Protocole TCP TCP - Connexion Une connexion TCP est établie en trois temps de manière à assurer la synchronisation nécessaire entre les extrémités: TCP source TCP destination Syn seq=x Syn seq=y,ack=x+1 Ack y+1
Protocole TCP TCP - Déconnexion Une connexion TCP est libérée en un processus dit "trois temps modifié": TCP source TCP destination Fin seq=x ack=(x+1) + fin Applicatif -> close Fin seq=y ack=x+1 Ack y+1
Protocole TCP 4 - TCP – Optimisation L’acquittement simple pénalise la vitesse des échanges il faut attendre un acquittement avant d'émettre le message suivant. La technique du fenêtrage permet l'émission de N messages avant d’attendre un acquittement.
Protocole TCP TCP – Segmentation Les données transmises à TCP constituent un flot d'octets de longueur variable. TCP divise ce flot de données en segments en utilisant un mécanisme de fenêtrage. S e g m e n t CECI EST UN FLOT DE DONNEES A TRANSMETTRE … Longueur Début
Protocole TCP TCP – Exemple de fenêtrage TCP source TCP destination Segment initial 300 Fenêtre initiale 900 Seq=1 Lg=300 Expedie 3x300 c Seq=301 Lg=300 Seq=601 Lg=300 Accuse réception 900 car. et demande modification fenêtre Ack=901 Fen=500 Seq=901 Lg=250 Modifie longueur segment Seq=1151 Lg=250 Ack=1401 Fen=600
Protocole TCP 5 - TCP – Le Segment TCP Segment = unité de transfert du protocole TCP . = Un format unique PORT SOURCE PORT DESTINATION NUMERO SEQUENCE NUMERO ACQUITTEMENT LONGUEUR RESERVE CODES FENETRE CONTROLE ERREUR POINTEUR URGENCE OPTIONS EVENTUELLES PADDING DONNEES
TCP/IP : Récapitulatif Protocole TCP TCP/IP : Récapitulatif DNS Application Ouvrir :ww.dest.fr Ecrire(f,message) Adresse IP de ww.dest.fr ? L’adresse est : 111.111.111.111 Envoyer : message à ww.dest.fr N°port= 21 IP ww.dest.fr = 111.111.111.111 adresse locale = 111.111.111.222 ROUTAGE Choix destinataire --> dest |Adr1|adr2|...|20,21,message| Envoyer '20,21,message' a ww.dest.fr Socket N° port=20 Adresse mac de 111.111.111.111? Message pour ww.dest.fr n° port =21 ARP Adresse = dest TCP |20|21|message| Envoyer à dest 'Adr1,adr2,...,20,21,message' HDLC Mise en forme trame |F|dest|controle|adr1,adr2,...,20,21,message|bce|F||erreurs|F| Réseau
5 - UDP (User Datagram Protocol) – Un autre protocole Protocole UDP 5 - UDP (User Datagram Protocol) – Un autre protocole Protocole de transport sans connexion de service applicatif. Principales caractéristiques : émission de messages sans établissement de connexion au préalable arrivée des messages et ordonnancement non garantis - émission d'un message se fait sur la base d'un port source et un port destinataire
Couches 5-6-7 Présentation Couches 5 à 7 = couches hautes : - ne s'occupent pas de transmission de données - règlent les échanges entre applications - prennent en charge les différences syntaxiques qui existent dans les données - défissent les caractéristiques des applications réseaux Il s'agit de définir les fonctions du système à mettre en oeuvre, pour utiliser des applications, dans un environnement réseau.
Couche 5 - Session Objectif Objectif : mise en place et contrôle du dialogue entre tâches distantes Fonctions : connexion et déconnexion des tâches simuler le mode à l'alternat (jeton) - mettre en place des procédures de reprise (synchronisation)
Couche 6 - Présentation Objectif Objectif = Présenter l'information aux applications de façon à résoudre les différences syntaxiques tout en préservant la signification sémantique. Principales fonctions - présentation des données transférées entre les applications - structure des données (fichier virtuel et terminal virtuel) - syntaxe des actions effectuées (syntaxe abstraite) - codage de l'information - codage de base de l'information (ascii, ebcdic) - optimisation des temps --> compression des données - sécurité --> cryptage des données
Couche 6 - Présentation Quelques protocoles ASN-1 Abstract Syntax Notation 1 (Syntaxe Abstraite Numéro 1) XDR (External Data Representation) Compression des données (Huffman, pkzip, arj, mnp5, jpeg, mpeg, …) Cryptage des données (DES, RSA, …)
Couche 7 - Application Donne aux utilisateurs le moyen d'accéder à l'environnement OSI: - Fournit des services directement utilisables par les applications - transfert de fichiers - consultation d'annuaires - diffusion de pages - Définit des standards pour que les applications commercialisées adoptent les mêmes principes (spécifications)
Couche 7 - Application Mode non connecté - traitement de type différé - Messagerie électronique (X400 , X500, SMTP) - Conférences à distance - ... Mode connecté - traitement en temps réel - Transfert de fichiers (FTP, FTAM) - Accès aux fichiers (NFS) Diffusion de pages (HTTP)
Couche 7 - Application Exemple : X400 – X500 X400 = Norme pour la structure et la transmission des messages électroniques X500 = annuaire réparti · X500 définit l'annuaire comme une structure hiérarchisée d'ordinateurs qui communiquent entre-eux par le protocole X400 · L'utilisateur connaît le nom à chercher et le soumet à X500 · X500 utilise X400 pour rechercher l'information Exemple d'applications : Pages jaunes, Identification , localisation de documents (DNS)
Messagerie SMTP Objectif SMTP (Simple Mail Transfer Protocol) = protocole standard permettant de transférer le courrier d'un serveur à un autre en connexion point à point. Principales caractéristiques : - protocole fonctionnant en mode connecté, - message encapsulé dans une trame TCP/IP, - courrier remis directement au serveur de courrier du destinataire, - commandes du protocole sont textuelles , - port par défaut = 25
Messagerie SMTP Schéma SMTP Serveur Serveur POP Message Bal Dest. Emetteur Destinataire
Protocole HTTP Objectif Objectif Protocole de niveau application pour la transmission de documents distribués et multimédia à travers un système d'information multi-utilisateurs. HTTP à été utilisé à l'initiative du Word-Wide Web dès 1990.
Protocole HTTP Schéma général Requête = URL Client Serveur WWW Document HTML Protocole HTTP
Protocole HTTP Le document Un document WWW est un document hypertexte: - Certains groupes de mots sont des liens vers d'autres documents. - Les liens vers d'autres documents sont mis en évidence (soulignés, inverse vidéo, couleur). - Les liens entraînent vers d’autres documents hypertexte qui sont soit stockés localement, soit sur un autre ordinateur de l’Internet. La vision du monde de l'information est un graphe
Protocole HTTP L’adresse L'URL "http" est utilisé pour localiser une ressource réseau via le protocole HTTP. Syntaxe : "http:" "//" host [ ":" port ] [ chemin ]
Langage HTML (Hyper Text Markup Language). Protocole HTTP Langage HTML (Hyper Text Markup Language). - Généré par les serveurs et interprété par les clients . - Il offre les fonctions de base pour permettre un affichage agréable (paragraphes, listes, indentations, titres de paragraphe, styles et polices de caractères, insertion d'images, ...) en restant très simple. HTML inclut évidemment les liens hypermédia. Exemple : <P>Réalisé par <A HREF="http://www.garcia.fr/">Francis GARCIA</A> dans le cadre du <A HREF="http://www.reseaux-a.fr/">cours Réseaux A</A>. </P>
Protocole HTTP Processus d ’échange Serveur HTTP Client 1 Fils 1 Serveur HTTP 1 – Demande connexion 2 – Acceptation Client 1 3 – Fils Fils 1 4 – Echange (HTML) Client 2 Fils 2
Protocole HTTP Le cache Un cache est un espace de stockage local destiné à enregistrer les réponses et le sous-système contrôlant ces enregistrements, leur relecture et leur effacement. Un cache enregistre des réponses dans le but de diminuer le temps d'accès et la charge du réseau lors de requêtes identiques ultérieures.
Protocole NFS Objectif Partager les répertoires de machines . Ces répertoires sont ensuite, accessibles à des clients qui supportent le protocole NFS (Dos, OS/2, Unix..)) Principe Un serveur NFS "exporte" des disques ou une arborescence pour les clients NFS. Un client "monte" des disques exportés par un serveur.
Protocole NFS Exemple : Schéma NFS Schéma Système fichier de B Unité physique Système fichier de B Machine A (client NFS) Machine B (serveur NFS) Unité virtuelle de A Fichiers NFS
Protocole NFS Architecture NFS XDR RPC TCP ou UDP NFS est capable de fonctionner avec des machines hétérogènes (représentation différente des nombres, etc. XDR Pour transmettre des données, l’expéditeur les convertit de son format local au format XDR ; le récepteur réalise la conversion inverse : du format XDR vers son format local. Les routines de conversion sont locales. RPC RPC gére automatiquement - la vérification de la présence du serveur, la présence du service demandé - la transmission de la requête du client vers le serveur, - l’appel de la procédure distante - l’expédition du résultat du serveur vers le client TCP ou UDP Il existe des implémentations de NFS utilisant des réseaux autres que TCP/IP
Interface Socket - Présentation Les services réseaux Interface Socket - Présentation Application Point Comm. Interface Socket TCP UDP IP
Interface Socket - Présentation Les services réseaux Interface Socket - Présentation Socket = Fichier de communication mode FIFO Utilisable avec TCP ou UDP Accessible par un n° Port + adresse IP Mode d’utilisation = Création Affectation numéro (Traitements …) Fermeture
Interface Socket - Création Sock = socket (af, type, protocole) Les services réseaux Interface Socket - Création Sock = socket (af, type, protocole) famille Type de service TCP-IP---> AF_INET SOCK_STREAM IPPROTO_TCP TCP SOCK_DGRAM IPPROTO_UDP UDP 0 (défaut)
Interface Socket - Affectation Numéro Les services réseaux Interface Socket - Affectation Numéro int bind ( sock, p_adresse, lg ) descripteur de la socket longueur de la structure adresse pointeur en mémoire sur l'adresse struct sockaddr_in { short sin_family; -- AF-INET ushort sin_port; -- n° de port struct in_addr sin_addr; -- @ IP char sin_zero [8]; -- Huit 0}
Interface Socket - Fermeture Les services réseaux Interface Socket - Fermeture int close (sock ) descripteur de la socket
Interface Socket - Utilisation Les services réseaux Interface Socket - Utilisation Communication entre 2 ou plusieurs processus Client – Serveur 2 modes de communication : Datagramme (UDP) Connecté (TCP)
Interface Socket - Datagramme Les services réseaux Interface Socket - Datagramme Pas d'établissement de connexion Serveur Client Socket () Bind () Socket () Bind () recvfrom() sendto() sendto() close() close ()
Interface Socket - Connecté Les services réseaux Interface Socket - Connecté Serveur Socket() Bind() Listen() Accept() Read() Write() Close() Client Socket() Bind() Connect() Write() Read() Close() Attente connexion Connexion établie