370 likes | 584 Views
Les Réseaux Informatiques. Couche Transport Protocoles UDP & TCP. Laurent JEANPIERRE 2005 - 2006. Contenu du cours. Introduction Notion de port Protocole UDP Protocole TCP Mode connecté, accusés de réception Notion de fenêtrage Notion de segments, N° de séquence L’entête TCP.
E N D
Les Réseaux Informatiques Couche Transport Protocoles UDP & TCP Laurent JEANPIERRE 2005 - 2006 Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
Rôle des couches OSI (4) • Couche transport • Communication de bout en bout • Abstraction de la structure du réseau • Donnée Message • Multiplexage • 1 machine n services • 1 servicen machines Transport Réseau LLC MAC Couche Physique Département Informatique
Rôle des couches OSI (4) • Couche transport • UDP • Non connecté • Rapide • Aucune garantie • TCP • Connecté • Messages remis dans le bon ordre • Aucun message perdu • Aucun message abîmé Transport Réseau LLC MAC Couche Physique Département Informatique
Fondations et Besoins • La couche Réseau permet • Envoi de données de taille quelconque • Adressage unique des machines • Contact d’une machine arbitraire (routage) • MAIS • Aucune garantie d’arrivée • Aucun respect de l’ordre des paquets • Une seule connexion par machine Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
Notion de port • 1 port 1 point d’accès dans 1 machine • « adresse » de service • Numéro sur 16 bits (0 65535) • Deux classes de ports • 0 1023 : Ports réservés « well known ports» www.iana.org/assignments/port-numbers • 1024 65535 : Ports libres (ou presque) • Pas d’utilisation précise (quoique…) • Souvent alloués à la demande, par l’O.S. Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
User Datagram Protocol • Un transfert UDP est caractérisé par : • Machine source • Machine destination • Port source • Port destination • Connexion à usage unique • Le port client est rendu après utilisation • Le port serveur attend un autre client Département Informatique
Exemple • Le protocole HTTP • Surcouche de UDP (ou de TCP…) • Requête HTTP : • Le Client demande un port UDP • 1843 • Le Client envoie datagramme • IP client : 1843 IP serveur : 80 • Le Serveur envoie une réponse (page Web) • IP serveur : 80 IP Client : 1843 • Le port 1843 est rendu à la machine Client Département Informatique
Trame UDP Entête UDP : • Port source (16 bits) • Port destination (16 bits) • Longueur totale (16 bits) • Entête : 8 octets • Données : 0 65527 octets • Somme de contrôle (16 bits) • Entête UDP + Données UDP • Pseudo-entête IP (…) Département Informatique
8 octets 20 octets 8 octets 1472 octets 8 octets 20 octets 1480 octets Trame UDP (2) Entête Ethernet Entête IP Entête UDP Données Entête Ethernet Entête IP Données Département Informatique
Bilan UDP • Protocole léger • 8 octets pour 64Ko • Ports clients à usage unique • 1 Port serveur sert plusieurs clients • Multiplexage temporel • Aucune garantie • D’ordre • D’arrivée Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
Le protocole TCP • Transport Control Protocol • Communication en mode connecté • Ouverture d’un canal • Communication Full-Duplex • Fermeture du canal • La connexion sécurise la communication • Ordre garanti • Arrivée garantie Département Informatique
Arrivée garantie • Comment savoir si un paquet arrive ? • Accusé de réception Machine 1 Machine 2 Envoi de message Réception Accuse réception Reçoit accusé Envoi suite du message Trop long ! Ré-envoi du message Réception Accuse réception Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
Utilisation du réseau • Gaspillage de bande passante ! • Envoi de données • Attente • Envoi d’acknowledge • Attente • … • On peut faire mieux ! • fenêtrage Département Informatique
Fenêtres TCP • Idée : prendre de l’avance sur les réponses • fenêtre glissante D 0 D 1 D 2 D 3 D 4 D 5 Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
Notion de segments • UDP gère des messages • TCP gère une communication • Echange soutenu entre deux machines • Durée importante (millisecondes jours) • Messages Flux de données • Taille inconnue à l’avance • segmentation à la volée • TCP gère des segments de 64K (ou moins) Département Informatique
Réception des segments • Ressemble à la fragmentation IP • Ordre nécessaire pour recomposer le message • IP ne garantit pas l’ordre • Chaque paquet est routé séparément • Certains routeurs équilibrent la charge des réseaux • routes différentes pour paquets successifs • Problème de la perte de trames • trou dans la séquence ( retransmission) • Fenêtre glissante retard d’un segment (ou +) • les segments sont reçus en désordre Département Informatique
Notion de séquence • Introduction d’un « numéro de segment » • introduit un ordre sur les segments • permet d’accuser réception d’un segment • permet de détecter les trames perdues • Un même numéro ne doit pas être réutilisé • Risque de confusion • 32 bits (>4 milliards) • durée de vie limitée (2 minutes) Département Informatique
Choix du numéro de séquence • Rappel : • Donne un numéro d’octet • Spécifique à une connexion donnée • Mêmes IPs • Mêmes ports • Unique par période de 2 minutes • Choix basé sur l’horloge de la machine • +1 toutes les 4 ms Département Informatique
Numéros de séquence (2) • Numéro initial variable • Comment identifier le premier segment ? • Synchronisation nécessaire • Elément essentiel de l’ouverture de connexion • « three-way handshaking » • Synchro, Séq = xxx • Synchro, Séq = yyy; Ack xxx+1 • Ack yyy+1 Département Informatique
Contenu du cours • Introduction • Notion de port • Protocole UDP • Protocole TCP • Mode connecté, accusés de réception • Notion de fenêtrage • Notion de segments, N° de séquence • L’entête TCP Département Informatique
Longueur de l’entête En mots de 32 bits Entête TCP Port Source Port Destination Numéro de séquence Numéro d’acknowledge Réservé Drapeaux Long Urgent Acknowledge Push Reset Synchro Fin Département Informatique
Entête TCP Port Source Port Destination Numéro de séquence Numéro d’acknowledge Long Réservé Drapeaux Taille de fenêtre Somme de contrôle d’erreurs Pointeur Urgent Options Département Informatique
Bilan Une connexion TCP : • Ouverture de connexion • Synchronisation • Acknowledge Synchronisation • Envoi de trames selon fenêtre disponible • Si accusé réception • décaler la fenêtre • Si TimeOut • ré-envoyer le segment fautif • Envoi trame de fin • Accuse réception de la trame de fin Département Informatique
TCP Avancé • Acknowledges cumulés • Acquitte le prochain octet attendu • N’acquitte pas les trames après un ‘trou’ • Fenêtre de congestion • Adapte la fenêtre au réseau • Si reçoit tous acknowledges, Fenêtre += 1 • Si retransmission, Fenêtre /= 2 • Démarrage lent • Initialement, Fenêtre = 1 Département Informatique
Exemple : Envoi unilatéral de segments de 1Ko D1 : Séq=1565 ACK 124 D3 : Séq=3565 ACK 124 TimeOut D1 D1 : Séq=1565 ACK 124 D0 : Séq=565 ACK 124 D2 : Séq=2565 ACK 124 SYN Séq=564 ................ ACK 1565 SYN Séq=123 ACK 565 ACK 3565 Département Informatique
Conclusion • La couche 4 améliore les services de couche 3 • UDP • Multiplexage de services • Protocole très léger • TCP • Multiplexage de services • Full-Duplex • Service garanti • Acknowledges arrivée garantie des segments • Séquençage ordre garanti des segments • Acknowledges cumulés pas trop de gaspillage Département Informatique