La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

INFO 3020 Introduction aux réseaux d’ordinateurs Philippe Fournier-Viger Département d’informatique, U.de M. Bureau D216,

Présentations similaires


Présentation au sujet: "INFO 3020 Introduction aux réseaux d’ordinateurs Philippe Fournier-Viger Département d’informatique, U.de M. Bureau D216,"— Transcription de la présentation:

1 INFO 3020 Introduction aux réseaux d’ordinateurs Philippe Fournier-Viger Département d’informatique, U.de M. Bureau D216, philippe.fournier-viger@umoncton.ca Automne 2014

2 Introduction La semaine passée ◦ Chapitre 3 – couche application ◦ Quiz Chapitre 2 Cette semaine ◦ Chapitre 4 – couche transport  Mercredi  Quiz Chapitre 2 (fin)  Introduction à la couche transport  TCP  Jeudi  UDP  La détection d’erreurs dans TCP et UDP  Quiz chapitre 4

3 CHAPITRE 4 LA COUCHE TRANSPORT (MODÈLE OSI)

4 La couche « transport » Elle est globalement responsable du transfert de bout en bout des données entre applications ( erreurs, retransmissions, plusieurs applications, etc.). Les processus de la couche transport ◦ acceptent des données provenant de la couche application, ◦ les préparent pour la couche réseau.

5 La couche « transport » (suite) Rôles: permettre à de nombreuses applications de communiquer sur le réseau, ◦ au même moment, ◦ sur un même périphérique (multiplexage des conversations); optionnel: s’assurer que toutes les données sont reçues ◦ de façon fiable, ◦ dans l’ordre, et par l’application voulue. mécanismes de gestion des erreurs (détection, retransmission).

6 La couche « transport » (suite) Elle accepte les données provenant de plusieurs conversations. Elle les fait descendre vers les couches inférieures en morceaux (segmentation) qui peuvent faire l’objet d’un multiplexage sur le support. les couches inférieures ignorent que plusieurs applications envoient des données sur le réseau.

7 La couche « transport » (suite) la couche transport ignore ◦ sur quel support les conversations seront transmises, ◦ par quel chemin elles seront transmises. la couche transport identifie les applications grâce à des numéros de port (une adresse logique),

8 La couche « transport » (suite) la couche transport peut effectuer le contrôle des conversations: ◦ établissement d’une session, ◦ acheminement fiable, ◦ livraison des données dans un ordre défini, ◦ reconstitution des données segmentées, ◦ contrôle de flux.

9 Illustration

10 Besoins variés Un développeur choisi un protocole en fonction de la nature d’une application.

11 Besoins variés Un développeur choisi un protocole en fonction de la nature d’une application.

12 Besoins variés (suite) Exemples d’applications nécessitant une connexion fiable: ◦ courriels, ◦ pages Web, ◦ transfert de fichiers, ◦ bases de données,… Exemples d’applications pouvant tolérer la perte d’information: ◦ lecture vidéo, ◦ jeux vidéos en ligne, ◦ téléphonie, ◦ la synchronisation de l’heure, …

13 Prise en charge des communications fiables Périphériques émetteur et/ou receveur Le receveur: ◦ effectue le suivi des données reçues ◦ accuse réception des données reçues. L’émetteur ◦ effectuer le suivi des données transmises, ◦ retransmettre toute donnée n’ayant pas fait l’objet d’un reçu. Donc, le suivi se fait au niveau ◦ de l’hôte qui émet, ◦ de celui qui reçoit les données.

14 Cela demande l’utilisation de données de contrôle stockées dans les entêtes de chaque segment. Constitue une charge supplémentaire sur le réseau, Cela est un compromis acceptable (charge/fiabilité) pour certaines applications. Prise en charge des communications fiables (suite)

15 Les deux principaux protocoles de la suite TCP-IP UDP (User Datagram Protocol) ◦ RFC 768 ◦ Les données encapsulées sont appelées des datagrammes. ◦ connexion « au mieux » ◦ Ex.: DNS, VoIP, vidéo ◦ en-tête de 8 octets par datagramme TCP (Tranmission Control Protocol) ◦ RFC 793 ◦ Les données encapsulées sont appelées des segments TCP. ◦ connexion fiable ◦ Ex.: FTP, HTTP, courriels ◦ en-tête de 20 octets par segment

16

17 Identification des conversations L’entête de chaque segment ou datagramme contient ◦ un numéro de port source: identifie l’application qui émet les données. ◦ un numéro de port de destination: identifie l’application qui reçoit les données. Pour une application serveur, les ports sont statiques. Pour une application client, les ports sont généralement attribués dynamiquement.

18 Identification des conversations (suite) Comment les ports sont choisis sur le client? en général générés aléatoirement, il ne faut pas choisir un port déjà utilisé par une autre application.

19 Identification des conversations (suite) Comment savoir le numéro de port sur le serveur? Plusieurs ports sont définis par défaut. Par exemple: HTTP port 80 SNTP port 123 FTPport 21 Telnet port 23 …

20 Attribution des numéros de ports un port est représenté par 16 bits ils sont attribués par l’Internet Assigned Numbers Authority (IANA).IANA ◦ 0 à 1023 - ports réservés: ports réservés à des services ou applications courantes. Ex.: FTP, HTTP, TELNET, SSH, … ◦ 1024 à 49151 - ports inscrits: ports réservés à des processus ou applications particulières qu’un utilisateur installe. ◦ Ex.: MSN (1863), … ◦ 49152 à 65535 - ports dynamiques ou privés: généralement utilisés par des applications clientes et affectés de façon dynamique, mais il y a des exceptions. L’IANA est aussi responsable des serveurs DNS racine 

21 Adresses des serveurs DNS racines

22 Attribution des numéros de ports (suite) Le processus d’inscription auprès de l’IANA est décrit dans le RFC 6335. Liste de ports utilisés par des applications ou protocoles: ◦ http://www.iana.org/assignments/service-names-port- numbers/service-names-port-numbers.xml http://www.iana.org/assignments/service-names-port- numbers/service-names-port-numbers.xml ◦ http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_ numbers http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_ numbers Parfois, il y a des utilisations non officielles de ports. Utiliser un port réservé est un risque de sécurité. ◦ Il peut être utile de choisir un port non standard ◦ ou d’utiliser un pare-feu. ◦ ex.: pour un serveur de fichier privé

23 Exemple – Attaque Netbios Sur Windows 98/Me, une faille dans le protocole Netbios permettait de découvrir le mot de passe des systèmes de fichiers partagés sur un hôte à l’aide d’un logiciel simple d’utilisation. Avec un logiciel balayeur de ports (scanner), un individu malintentionné pouvait découvrir rapidement des victimes parmi des plages d’adresses IP. ports ouverts, fermés, furtifs

24 Interface de connexion Interface de connexion (socket): l’ensemble formé de l’adresse IP et du numéro de port. Identifie de façon précise un processus s’exécutant sur un périphérique hôte précis. Ex.: Serveur Web avec une adresse IP 192.168.1.20. L’interface de connexion est: 192.168.1.20:80 Adresse IP Port HTTP

25 Pour voir les connexions TCP actives Sous Windows, taper netstat dans la console, affiche les connexions TCP. port de destination état de la connexion protocole port source adresse destination

26 netstat -b affiche le nom des programmes utilisant les connexions TCP.

27 netstat -a affiche les connexions TCP et les ports UDP sur lequels il y a écoute.

28 Segmentation et reconstitution Pourquoi la segmentation? ◦ le multiplexage des applications, ◦ s’assurer que les données respectent les limites du support (mémoire tampons limités des périphériques réseau…). En utilisant TCP: ◦ chaque segment est numéroté et l’ordre d’arrivé est garanti. ◦ retransmission en cas d’erreur… En utilisant UDP: ◦ les datagrammes ne sont pas numérotés, ◦ l’application qui reçoit doit tenir compte que l’ordre d’arrivé n’est pas garanti.

29 LE PROTOCOLE TCP (TRANSMISSION CONTROL PROTOCOL)

30 Communication TCP Établissement d’une connexion dans les deux directions. La source envoie des données. La destination envoie des reçus pour les données qu’elle reçoit. La source retransmet les données pour lesquelles elle n’a pas reçu de reçu. La connexion est éventuellement fermée.

31 TCP Le protocole TCP créé une charge plus importante que UDP sur le réseau, car connexions, retransmissions, messages plus volumineux… supporte la communication bidirectionnelle (« full-duplex »). supporte l’envoi de flux d’octets.

32 TCP – le format Format des segments TCP:

33 TCP – le format (suite) Port source: le port du processus qui a émis le message. (16 bits) Port de destination: le port du processus qui recevra le message. Numéro d’ordre: indique le numéro du premier octet de ce segment (32 bits). Exception si SYN=1. Numéro de reçu: prochain octet que le destinataire s’attend à recevoir.

34 TCP – le format (suite) Longueur d’E-T: la taille de l’en-tête en terme de nombre de mots de 32 bits (4 bits). Réservé: pour un usage futur (6 bits) Bits de contrôle: pour la gestion de la session et le traitement des segments (6 bits). ◦ URG: Urgent Pointer field significant ACK: Acknowledgment field significant PSH: Push Function RST: Reset the connection SYN: Synchronize sequence numbers FIN: No more data from sender

35 TCP – le format (suite) Taille de la fenêtre: Ce champs spécifie le numéro de l’octet jusqu’à lequel l’émetteur peut recevoir des données (16 bits). La taille de la fenêtre est dynamique. Somme de contrôle: un code de détection d’erreurs (16 bits)

36 TCP – le format (suite) Pointeur d’urgence: seulement utilisé avec l’indicateur URG. (16 bits) Options (taille variable): information facultatives. Données: données de la couche application.

37 Processus serveur TCP Les ports des services sont choisis par l’administrateur. On ne peut pas utiliser le même port pour deux services. Un port « ouvert »: la couche transport accepte et traite les segments adressé à ce port. Pour améliorer la sécurité d’un serveur, autoriser seulement les ports nécessaires.

38 Illustration Serveur Web et courriel Client 1Client 2

39 Établissement d’une connexion TCP Trois opérations à effectuer: ◦ vérifier que le périphérique est présent sur le réseau, ◦ s’assurer que le périphérique est actif sur le réseau et accepte les requêtes sur le port voulu par le client, ◦ informe le périphérique de destination de l’intention d’établir une connexion Les bits de contrôles sont utilisés pour indiquer l’état de l’établissement de la connexion.

40 Établissement d’une connexion TCP (suite) Trois étapes (« Three-way handshake »): 1. Le client envoie au serveur un segment contenant un numéro d’ordre initial aléatoire faisant office de requête afin d’établir une session (SYN). 2. Le serveur répond par un segment contenant un numéro de reçu égal au numéro d’ordre reçu plus 1, ainsi que son propre numéro d’ordre de synchronisation (SYN+ACK). 3. Le client initiant la session répond par un numéro de reçu égal au numéro d’ordre reçu plus un. Ceci achève le processus d’établissement de la connexion (ACK).

41 Établissement d’une connexion TCP (suite) ACK: Acknowledgment field significant SYN: Synchronize sequence numbers

42 Établissement d’une connexion TCP (suite) ACK: Acknowledgment field significant SYN: Synchronize sequence numbers

43 Établissement d’une connexion TCP (suite) ACK: Acknowledgment field significant SYN: Synchronize sequence numbers

44 Capture avec Wireshark – étape 1

45 Capture avec Wireshark – étape 2

46 Capture avec Wireshark – étape 3

47 Connexion TCP - sécurité Pour plus de sécurité: ◦ refuser l’établissement de sessions TCP; ◦ autoriser uniquement l’établissement de sessions pour des services spécifiques; ◦ autoriser uniquement le trafic faisant déjà partie de sessions établies.

48 Fermeture d’une connexion TCP Une connexion peut être fermée par le client ou le serveur. 2 étapes: « Two-way handshake » Processus pour une communication dans les 2 sens: 1. L’hôte A envoie un segment avec l’indicateur FIN. 2. L’hôte B envoie un segment avec l’indicateur ACK. 3. L’hôte B envoie un segment avec l’indicateur FIN. 4. L’hôte A envoie un segment avec l’indicateur ACK. La connexion est fermée!

49 Fermeture d’une connexion TCP (suite) Une variante: 1. L’hôte A envoie un segment avec l’indicateur FIN. 2. L’hôte B envoie un segment avec les indicateurs ACK et FIN. 3. L’hôte A envoie un segment avec l’indicateur ACK.

50 Fermeture d’une connexion TCP

51

52

53 Réassemblage des segments chaque segment TCP a un numéro de séquence. si les segments n’arrivent pas dans le bon ordre, ils sont gardés en mémoire dans un tampon en attendant que les autres segments arrivent, puis réordonnés. Illustration 

54 Réassemblage des segments Les segment TCP peuvent prendre différents chemins Les segment TCP sont réordonnés à la destination Les données sont divisés en segments Les segments arrivent désordonnés car ils ont pris différents chemins Les segments sont réordonnés selon l’ordre original

55 Confirmation des segments reçus – fenêtre de taille 1 segment 1 ACK 2 segment 2 ACK 3 segment 3 ACK 4 Le numéro d’ordre est un nombre d’octets Les accusés de réceptions dans TCP sont des reçus prévisionnels. Ils indique le numéro du prochain segment attendu AB

56 Confirmation des segments reçus – fenêtre de taille 3 segment 1 segment 2 segment 3 ACK 4 segment 4 segment 5 segment 6 ACK 7 AB

57 Retransmission des segments perdus segment 1 segment 2 segment 3 ACK 4 segment 4 segment 5 segment 6 ACK 4 Le segment numéro 4 est perdu! Dépendant du protocole utilisé, l’ordinateur A va seulement renvoyer 4 ou bien renvoyer 4, 5 et 6 après avoir reçu ACK4. En général, la deuxième façon est employée. AB Reçu sélectif…

58 Retransmission des segments perdus Le processus de retransmission n’est pas spécifié dans le RFC. Typiquement l’émetteur va conserver les segments envoyés pour un certain temps et va les retransmettre si aucune confirmation n’est reçue. Lorsqu’une confirmation est reçue, les segments correspondant sont effacés de la mémoire.

59 Gestion de flux Le champs Taille de fenêtre dans l’en-tête TCP précise la quantité de données pouvant être transmise avant qu’il ne soit nécessaire de recevoir un reçu. TCP s’efforce de gérer le taux de retransmission de façon à ce que toutes les données soient reçues et que les retransmissions soient limitées au maximum. Un hôte réduira la taille de fenêtre s’il y a perte à cause d’un encombrement. Si un certains temps s’écoule sans problème, alors la fenêtre pourra être agrandie à nouveau. Plus de détails dans le RFC 2581.

60

61 Communication sur un même port Un serveur peut recevoir plusieurs conversations sur un même port si elles sont destinées au même logiciel. Comment le serveur détermine à quelle conversation les segments TCP appartiennent t-il ?

62 Références Chapitre 4 de CCNA Exploration 1


Télécharger ppt "INFO 3020 Introduction aux réseaux d’ordinateurs Philippe Fournier-Viger Département d’informatique, U.de M. Bureau D216,"

Présentations similaires


Annonces Google