Protocoles de transport - Plan. Protocoles de transport - Plan. Problématique. Le système de communication



Documents pareils
Couche Transport TCP et UDP

UDP/TCP - Protocoles transport

Le protocole TCP. Services de TCP

Introduction. Adresses

Architecture TCP/IP. Protocole d application. client x. serveur y. Protocole TCP TCP. TCP routeur. Protocole IP IP. Protocole IP IP.

Présentation du modèle OSI(Open Systems Interconnection)

Rappels réseaux TCP/IP

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

Systèmes et Réseaux (ASR 2) - Notes de cours Cours 14

Master e-secure. VoIP. RTP et RTCP

L3 informatique Réseaux : Configuration d une interface réseau

Introduction aux Technologies de l Internet

Devoir Surveillé de Sécurité des Réseaux

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

La couche réseau Le protocole X.25

Réseaux IUP2 / 2005 IPv6

Plan. Programmation Internet Cours 3. Organismes de standardisation

Couche application. La couche application est la plus élevée du modèle de référence.

18 TCP Les protocoles de domaines d applications

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Réseaux Internet & Services

Réseaux et protocoles Damien Nouvel

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

GENERALITES. COURS TCP/IP Niveau 1

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

Algorithmique et langages du Web

Chapitre : Les Protocoles

Algorithmique des Systèmes Répartis Protocoles de Communications

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

Niveau Transport "Transport Layer" I) Problèmes et solutions au niveau transport II) Exemple des protocoles et services de transport dans l INTERNET

Internet Protocol. «La couche IP du réseau Internet»

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

Firewall. Souvent les routeurs incluent une fonction firewall qui permet une première sécurité pour le réseau.

Configuration automatique

La collecte d informations

Liste des ports. 1 sur 6

TCP/IP Internet/Intranet/Extranet

Les Réseaux Privés Virtuels (VPN) Définition d'un VPN

Sécuriser son réseau. Sécuriser son réseau Philippe Weill (IPSL/LATMOS) Frédéric Bongat (SSI/GOUV/FR)

Cisco Certified Network Associate

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Le Multicast. A Guyancourt le

Christian CALECA TCP/IP

2. DIFFÉRENTS TYPES DE RÉSEAUX

Services Réseaux - Couche Application. TODARO Cédric

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Mr. B. Benaissa. Centre universitaire Nâama LOGO

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Internet et Multimédia Exercices: flux multimédia

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

Administration UNIX. Le réseau

NOTIONS DE RESEAUX INFORMATIQUES

[ Sécurisation des canaux de communication

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

Dynamic Host Configuration Protocol

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Le service FTP. M.BOUABID, Page 1 sur 5

Présentation Internet

Les Réseaux sans fils : IEEE F. Nolot

Cours CCNA 1. Exercices

Réseaux grande distance

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Protocole de configuration dynamique des hôtes pour IPv6 (DHCPv6)

U.E. ARES - TD+TME n 1

TCP/IP. [ Les protocoles ] [ L'adresse IP ] [ Les sockets ] [ Mode connecté ] [ Mode non connecté ]

Configuration automatique

N o t i o n s d e b a s e s u r l e s r é s e a u x C h a p i t r e 2

Les Réseaux. les protocoles TCP/IP

Internet et Programmation!

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Sécurité des réseaux Firewalls

DIGITAL NETWORK. Le Idle Host Scan

Protocoles DHCP et DNS

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

1.Introduction - Modèle en couches - OSI TCP/IP

Introduction à l'analyse réseau Philippe Latu philippe.latu(at)linux-france.org

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Informatique Générale Les réseaux

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Network musical jammin

Réseaux. 1 Généralités. E. Jeandel

Protocole SIP et rc o d n o C ée yc L N E S ro P c a B

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

RTP et RTCP. EFORT

Master 1 ère année. UE Réseaux Avancés I. Corrections décembre Durée : 2h Documents autorisés

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Voix et Téléphonie sur IP : Architectures et plateformes

Transcription:

Protocoles de transport - Plan Protocoles de transport - Plan 1. Rôle du transport 2. Le protocole UDP 3. Le protocole 1. Rôle du transport 2. Le protocole UDP 3. Le protocole Kim Thai -1- Kim Thai -2- Problématique différentes technologies possibles pour connecter un ensemble de machines LAN WAN inter-réseaux service de remise de paquets de machine à machine comment passer de ce service à un canal de communication de à? application? réseau (internet) accès au réseau (host-to-network) Le système de communication applications transport IP IfR1 R1 R1 IfR1 IfR2 service fourni par IP système de communication vu par les protocoles de transport IP R2 R2 IP IfR2 IfR3 R3 R3 applications transport IP IfR3 routage à travers une interconnexion de réseaux fragmentation/réassemblage service non connecté, best effort Kim Thai -3- Kim Thai -4-

Challenges prendre en compte le service fourni par la couche réseau pertes de paquets déséquencements duplications erreurs MTU temps de traversée imprévisibles prendre en compte les besoins des applications garantie de remise des messages séquencement absence de duplications absence de messages erronés messages de lg quelconque synchronisation entre l'émetteur et le récepteur contrôle de flux par le récepteur sur l'émetteur support de plusieurs applications sur le même hôte Rôle de la couche transport transformer les propriétés pas toujours désirables du réseau en un service de haut niveau souhaité par les applications plusieurs déclinaisons de protocoles de transport UDP Kim Thai -5- Kim Thai -6- Protocoles de transport - Plan 1. Rôle du transport 2. Le protocole UDP le (dé)multiplexage la notion de port le datagramme UDP autres fonctions? 3. Le protocole Le protocole UDP User Datagram Protocol se contente d'étendre le service de remise d'hôte à hôte à un service de remise de à Problème plusieurs applications peuvent tourner simultanément sur un même hôte il faut donc pouvoir les identifier de façon non ambiguë introduction d'un niveau supplémentaire de multiplexage cf. le champ type d'ethernet qui identifie à qui doit être délivré le contenu du champ de données de la trame cf. le champ protocol de IP qui identifie à qui doit être délivré le contenu du champ de données du datagramme Kim Thai -7- Kim Thai -8-

Multiplexage/démultiplexage Problème comment identifier un (une application)? solution 0 on peut identifier directement un sur une machine par son pid (process identifier) malheureusement possible que si l'os est un OS distribué "fermé" qui alloue un pid unique à chaque Multiplexage/démultiplexage solution on peut identifier indirectement un par une référence abstraite (abstract locater) appelée port un source envoie un message sur son port un destinataire reçoit le message sur son port port ~ boîte aux lettres réalisation de la fonction de (dé)multiplexage champ port (de la) source du message champ port (de la) destination du message Kim Thai -9- Kim Thai -10- Multiplexage/démultiplexage champs port codés sur 16 bits 65 535 valeurs différentes insuffisant pour identifier tous les de tous les hôtes de l'internet les ports n'ont pas une signification globale signification restreinte à un hôte un est identifié par son port sur une machine donnée clé de démultiplexage de UDP = (port, hôte) Multiplexage/démultiplexage comment un connaît-il le port de celui à qui il souhaite envoyer un message? modèle de communication client/serveur une fois que le client a contacté le serveur, le serveur connaît le port du client comment le client connaît-il le port du serveur? le serveur accepte des messages sur un port connu de tous (well-known port) ex : pompiers : 18, police : 17, SAMU : 15 ex : DNS : 53, Telnet : 23, http : 80 Kim Thai -11- Kim Thai -12-

Numéros de port 3 catégories ports well-known : de 0 à 1023 alloués par l'iana sur la plupart des systèmes, ne peuvent être utilisés que par des système (ou root) ou des programmes exécutés par des utilisateurs privilégiés ports registered : de 1024 à 49 151 listés par l'iana sur la plupart des systèmes, peuvent être utilisés par des utilisateur ordinaires ou des programmes exécutés par des utilisateurs ordinaires ports dynamic/private : de 49 152 à 65 535 alloués dynamiquement Les ports well-known No port Mot-clé Description 7 ECHO Echo 11 USERS Active Users 13 DAYTIME Daytime 37 TIME Time 42 NAMESERVER Host Name Server 53 DOMAIN Domain Name Server 67 BOOTPS Boot protocol server 68 BOOTPC Boot protocol client 69 TFTP Trivial File Transfert Protocol 123 NTP Network Time Protocol 161 SNMP Simple Network Management Protocol Kim Thai -13- Kim Thai -14- Le datagramme UDP header Le checksum UDP calcul optionnel avec IPv4, obligatoire avec IPv6 data 0 16 31 source port message length fonctionnalités autres que le (dé)multiplexage? pas de contrôle de flux pas de fiabilité détection d'erreurs? fragmentation? destination port checksum Kim Thai -15- portée l'en-tête UDP le champ de données UDP un pseudo-header champ IP protocol (8 bits cadrés à droite sur 16 bits) champ IP @source (32 bits) champ IP @dest. (32 bits) champ UDP length (16 bits) UDP est indissociable de IP! Kim Thai -16-

Le checksum UDP algorithme de calcul principe le champ checksum est initialement mis à 0 la suite à protéger est considérée comme une suite de mots de 16 bits les mots de 16 bits sont additionnés un à un, modulo 65 535 le checksum est le complément à 1 (inverse bit àbit) de la somme trouvée le récepteur fait la somme modulo 65 535 de tous les mots concernés et vérifie qu'il obtient FF FF ou 00 00 implémentation logicielle simple moins puissant qu'un CRC Fragmentation en théorie les messages UDP peuvent être fragmentés par IP en pratique la plupart des applications utilisant UDP limitent leurs messages à 512 octets pas de fragmentation pas de risque de message incomplet Kim Thai -17- Kim Thai -18- Implémentation des ports port = référence abstraite l'implémentation diffère d'un OS à l'autre! en général, un port = une file de messages d'application d'application UDP d'application ports files arrivée de messages quand un msg arrive, UDP l'insère en fin de file si la file est pleine, le msg est rejeté quand le veut recevoir un msg, il le démultiplexage retire de la tête de la file si la file est vide, le se bloque jusqu'à ce qu'un msg soit disponible Kim Thai -19- Protocoles de transport - Plan 1. Rôle du transport 2. Le protocole UDP 3. Le protocole transport vs. liaison flux d'octets et segments le segment l'établissement de connexion la libération de connexion le contrôle de flux le contrôle d'erreur Kim Thai -20-

Le protocole Transmission Control Protocol offre un service de remise en mode connecté fiable full-duplex de flux d'octets met en œuvre des mécanismes de (dé)multiplexage gestion de connexions contrôle d'erreur contrôle de flux contrôle de congestion Comparaison avec une liaison de données 1. gestion des connexions la liaison est bâtie sur un canal physique reliant toujours les 2 mêmes ETTD supporte des connexions entre 2 s'exécutant sur des hôtes quelconques de l'internet phase d'établissement plus complexe 2. le RTT (Round Trip Time) est pratiquement constant sur une liaison varie en fonction de l'heure de la connexion et de la "distance" séparant les 2 hôtes dimensionnement du temporisateur de retransmission Kim Thai -21- Kim Thai -22- Comparaison avec une liaison de données 3. les unités de données ne se doublent pas sur le support de transmission peuvent se doubler et peuvent être retardés de façon imprévisible dans le réseau doit prévoir le cas de (très) vieux paquets réapparaissent 4. les buffers de réception sont propres à la liaison sont partagés entre toutes les connexions ouvertes doit adapter le mécanisme de contrôle de flux Comparaison avec une liaison de données 5. une congestion du lien sur une liaison de données ne peut pas se produire sans que l'émetteur ne s'en rende compte du réseau peut se produire va mettre en œuvre un contrôle de congestion Kim Thai -23- Kim Thai -24-

Byte-oriented est orienté flux d'octets le émetteur "écrit" des octets sur la connexion le récepteur "lit" des octets sur la connexion ne transmet pas d'octets individuels en émission bufferise les octets jusqu'à en avoir un nombre raisonnable fabrique un segment et l'envoie en réception vide le contenu du segment reçu sans un buffer de réception le destinataire vient y lire les octets à sa guise Kim Thai -25- Byte-oriented écrit des octets émetteur buffer d'émission transmet des segments récepteur lit des octets buffer de réception Kim Thai -26- Construction d'un segment Quand est-ce que décide d'envoyer un segment? 1. il a MSS (MaximumSize Segment) octets de données à envoyer MSS = MTU en-tête IP en-tête 2. le lui demande explicitement fonction push 3. le temporisateur expire pour éviter d'attendre trop longtemps MSS octets Le segment header data 0 4 8 16 19 24 31 data offset source port reserved checksum U R G sequence number acknowledgment number A C K P S H R S T S Y N F I N destination port window urgent pointer options padding Kim Thai -27- options Kim Thai -28-

Les champs de l'en-tête Les ports well-known source port : identifie le source sur la machine source destination port : identifie le destinataire sur la machine destinataire sequence number : N du 1er octet de données du segment (sauf si SYN=1 : ISN) acknowledgment number : acquitte tous les octets de données de N strictement inférieur data offset : lg de l'en-tête en mots de 32 bits reserved : 6 bits à 0 URG : mis à 1 pour signaler la présence de données urgentes ACK : mis à 1 pour indiquer que le champ acknowledment number est significatif PSH : mis à 1 pour signaler la fin d'un message logique (push) RST : mis à 1 pour réinitialiser la connexion (panne, incident, segment invalide) SYN : mis à 1 pour l'établissement de la connexion FIN : mis à 1 pour fermer le flux de données dans un sens window : # d'octets de données que le destinataire du segment pourra émettre checksum : obligatoire, calculé sur la totalité du segment et sur le pseudo en-tête urgent pointer : pointe sur la fin (comprise) des données urgentes options : MSS, padding : alignement de l'en-tête sur 32 bits 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 37 TIME Time 42 NAMESERVER Host Name Server 43 NICNAME Who Is 53 DOMAIN Domain Name Server 79 FINGER Finger 80 HTTP WWW 110 POP3 Post Office Protocol - Version 3 111 SUNRPC SUN Remote Procedure Call Kim Thai -29- Kim Thai -30- L'établissement de connexion en 3 phases (three-way handshake) L'établissement de connexion avec échange des ISN (Initial Sequence Number) CR CR 1 ère incarnation DT CC CC DT i DT 2 ème incarnation DT i stockée pour reséquencement puis délivrée considérée comme retransmission Kim Thai -31- Kim Thai -32-

L'établissement de connexion les 3 segments échangés participant actif (le client) SYN=1 SeqNum=x participant passif (le serveur) La libération de connexion les 2 sens de transmission sont fermés séparément (hôte A) FIN=1 SeqNum=x (hôte B) ACK=1 AckNum=y+1 SYN=1, ACK=1 SeqNum=y, AckNum=x+1 ACK=1 AckNum=x+1 FIN=1, ACK=1 SeqNum=y, AckNum=x+1 ACK=1 SeqNum=x+1, AckNum=y+1... Kim Thai -33- Kim Thai -34- Transfert de données assure un transfert de bout en bout fiable contrôle de flux contrôle d'erreur Le contrôle de flux une entité réceptrice dispose de ressources (buffers) en nombre limité la taille de la fenêtre reflète la disponibilité des buffers de réception une entité gère un nombre de connexions variable fenêtre dynamique progression de la fenêtre par acquittement et crédit champ window indique le # d'octets de données que l'entité est prête à recevoir E data (SeqNum) AckNum + Window R Kim Thai -35- Kim Thai -36-

Buffer d'émission en émission, un buffer stocke les données envoyées et en attente d'acquittement les données passées par le émetteur mais non encore émises émetteur LastByteAcked LastByteSent LastByteWritten Buffer d'émission remarque : on a toujours LastByteAcked <= LastByteSent <= LastByteWritten vérifie à tout moment que LastByteSent LastByteAcked <= AdvertisedWindow calcule une fenêtre effective EffectiveWindow <- AdvertisedWindow (LastByteSend LastByteAcked) en parallèle, doit s'assurer que le émetteur ne sature pas on buffer si le veut écrire y octets et que (LastByteWritten LastByteAcked) + y > MaxSendBuffer bloque l'écriture Kim Thai -37- Kim Thai -38- Buffer de réception en réception, un buffer stocke les données dans l'ordre non encore lues par le récepteur les données déséquencées LastByteRead récepteur Buffer de réception remarque : on a toujours LastByteRead < NextByteExpected <= LastByteReceived +1 vérifie à tout moment que MaxRcvBuffer >= LastByteReceived LastByteRead communique une fenêtre mise à jour AdvertisedWindow <- MaxRecvBuffer (LastByteReceived LastByteRead) au fur et à mesure que les données arrivent les acquitte si tous les octets précédents ont été reçus LastByteReceived glisse vers la droite rétrécissement possible de la fenêtre NextByteExpected LastByteReceived Kim Thai -39- Kim Thai -40-

Réouverture de fenêtre Problème la fenêtre peut avoir été fermée par le récepteur un ACK ne peut être envoyé que sur réception de données (approche smart sender/dumb receiver) comment l'émetteur peut-il se rendre compte de la réouverture de la fenêtre? solution lorsque l'émetteur reçoit une AdvertisedWindow à 0, il envoie périodiquement un segment avec 1 octet de données pour provoquer l'envoi d'un ACK Contrôle d'erreur repose sur le champ Checksum le champ SequenceNumber des acquittements positifs (dumb receiver pas d'acquittements négatifs) un temporisateur de retransmission des retransmissions RTT variable dimensionnement dynamique du temporisateur Kim Thai -41- Kim Thai -42- Dimensionnement du temporisateur algorithme initial 1. calcule une estimation du RTT par une moyenne pondérée entre l'estimation précédemment calculée et le dernier échantillon mesuré du RTT EstimatedRTT <- α EstimatedRTT + (1 α) SampleRTT SampleRTT est obtenu en mesurant le délai séparant l'émission d'un segment de la réception de son acquittement 0,8 < α < 0,9 2. calcule la valeur du temporisateur TimeOut <- min (UBOUND, max (LBOUND, β EstimatedRTT)) UBOUND est une limite supérieure sur le timer (p.e. 60 s) LBOUND est une limite inférieure sur le timer (p.e. 1 s) 1,3 <= β <= 2 Dimensionnement du temporisateur Problème un ACK n'acquitte pas une transmission, mais une réception transm. retransm. ACK SampleRTT trop grand transm. retransm. ACK SampleRTT trop petit Algorithme de Karn- Partridge ne mesurer SampleRTT que pour les segments envoyés une seule fois calcul de TimeOut à chaque retransmission, doubler la valeur de TimeOut, jusqu'à ce que la transmission réussisse pour les segments suivants, conserver la valeur du TimeOut, jusqu'à ce qu'un segment soit acquitté du 1er coup recalculer TimeOut à partir de EstimatedRTT Kim Thai -43- Kim Thai -44-