1 / 115

les protocoles de transport TCP et UDP

les protocoles de transport TCP et UDP. PLAN. Origines de TCP-IP Les protocoles de transport Fonctions Ports UDP TCP Éléments de base de TCP Fiabilité Fenêtres Reprise sur erreurs Algorithmes de contrôle de congestion. Origine de TCP/IP. TCP-IP: origine. Commutation de paquets

Download Presentation

les protocoles de transport TCP et UDP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. les protocoles de transportTCP et UDP Transport Layer

  2. PLAN • Origines de TCP-IP • Les protocoles de transport • Fonctions • Ports • UDP • TCP • Éléments de base de TCP • Fiabilité • Fenêtres • Reprise sur erreurs • Algorithmes de contrôle de congestion Transport Layer

  3. Origine de TCP/IP Transport Layer

  4. TCP-IP: origine • Commutation de paquets • Approche « informatique » vs « télécom » • Expérimentations de chercheurs • Approche intégrée : des applications aux outils techniques • Approche de complémentarité par rapport à l’existant • Déploiement rapide • Devient standard de fait • Internet • Le Web Transport Layer

  5. Interconnexion de réseaux • Les réseaux d'entreprise • Les passerelles • Les protocoles • Les adresses • Le monde TCP-IP A B C Réseau 1 Réseau 3 P1 P2 Réseau 2 Réseau 4 D G E F Transport Layer

  6. Architecture TCP-IP Machine A Passerelle Machine D Applications standards Applications standards Transport Transport Protocole IP Protocole IP Protocole IP Protocole d'accès à R1 R1 R2 Protocole d'accès à R2 Réseau R1 Réseau R2 Transport Layer

  7. Rôle du transport Transport Layer

  8. Le principe du bout en bout • Pas d’intelligence dans le réseau • Traitement simple dans le réseau -> haut débit • Réseau généraliste -> évolution de l’utilisation du réseau • Pas de redondance de contrôle • Séparation des fonctions • Contrôle -> hôte • Acheminement -> routeur Bout en bout Hôte Hôte Protocole IP Routeur Protocole IP Transport Layer

  9. Fournissent une communication logique entre des processus applicatifs s’exécutant sur des hôtes différents transport protocols run in end systems transport vs network layer services: network layer: data transfer between end systems transport layer: data transfer between processes relies on, enhances, network layer services application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical logical end-end transport Services et protocoles de transport Transport Layer

  10. Principe du bout en bout • Service réseau • Modes d’acheminement • Circuit virtuel • Datagramme • Mode non connecté et sans garantie • Robustesse • Indépendance du fonctionnement • Le fonctionnement du système d’extrémité n’est pas lié à celui du réseau Transport Layer

  11. Fonction des protocoles de transport • Protocoles de bout en bout (pas comme à la couche réseau par exemple) • Service connecté ou non • fiabilité • performance • Transport d’un message d’un émetteur au récepteur • Indépendamment des réseaux qui véhiculent l’information • Pas de connaissance sur les réseaux traversés • « Interface » entre les applications et le réseau • S’appuie sur des protocoles (des couches basses) pour l’acheminement des données. • Deux protocoles principaux : • TCP : fiabilité, contrôle d’erreur, de flux, d’ordre • UDP : Vérification des erreurs Transport Layer

  12. Rôle du Transport • Général • Communication inter-process • Identification des points d‘extrémités • Bout en bout • A la demande de l'application • Contrôle des échanges • Corriger les défauts du service réseau • Compte rendu sur la performance de la communication • Construction du service attendu par les applications distinct de celui fourni par la couche réseau • Mode connecté fiable, sur un réseau datagramme non fiable • Séparation du service fourni par l’opérateur et offert à l’utilisateur Transport Layer

  13. Ports • Pour identifier une cible plus spécifique que l’adresse IP car les datagrammes sont destinés à des process et pas au système. • PID -> trop dynamique • par un point d’extrémité: • le port • n° de port sur 2 octets • Ceci est réalisé avec les ports • 16-bits qui identifient quel process est associé à quel datagramme. • Attachement du processus au port • Identification: (@ IP, n° port) • Deux types de ports : • well-known : appartiennent aux serveurs standards • Numéro impair entre 1 et 1023 • Utilisation d’un seul port sauf BOOTP (ports 67 et 68) • telnet utilise le port 23 • Permettent aux clients de trouver des serveurs sans information de configuration • ephemeral • Les clients utilisent des ports spécifiés dans les paquets UDP • Entre 1024 et 5000 habituellement • <transport protocol, IP address, port number> doit être unique. Transport Layer

  14. Recall: segment - unit of data exchanged between transport layer entities aka TPDU: transport protocol data unit M M M M application transport network application transport network application transport network H n Multiplexing/demultiplexing Demultiplexing: delivering received segments to correct app layer processes receiver P3 P4 application-layer data segment header P1 P2 segment H t M segment Transport Layer

  15. multiplexing/demultiplexing: based on sender, receiver port numbers, IP addresses source, dest port #s in each segment recall: well-known port numbers for specific applications Multiplexing: Multiplexing/demultiplexing gathering data from multiple app processes, enveloping data with header (later used for demultiplexing) 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format Transport Layer

  16. Source IP: C Dest IP: B source port: x dest. port: 80 Source IP: C Dest IP: B source port: y dest. port: 80 Source IP: A Dest IP: B source port: x dest. port: 80 source port:23 dest. port: x source port: x dest. port: 23 Multiplexing/demultiplexing: examples Web client host C server B host A port use: simple telnet app Web server B Web client host A port use: Web server Transport Layer

  17. TSAP/NSAP Host 1 Host 2 Application Serveur Couche transport TSAP m TSAP n La connexion transportcommence ici La connexion réseaucommence ici Couche réseau NSAP Couche liaison Couche physique Transport Layer

  18. Adressage TSAP • Transport Service Access Point • Identification des applications en communication • Ex : adresse IP + Port • Scénario de connexion • Serveur sur host2 associé au TSAP n • Client sur host1 s’associe localement au TSAP m (source) et demande le TSAP n sur host 2 (destination) • Établissement de la connexion réseau entre la source (host 1) et la destination (host 2) • Demande d’établissement d’une connexion au niveau transport entre TSAP n et TSAP m • Validation Transport Layer

  19. Etablissement en 3 étapes Entité de Entité de transport B transport A TPDU CR TPDU CC TPDU DT ou AK TPDU DT Problèmes de transport • Etablissement de connexion • Déséquencement entité de entité de transport B transport A TPDU demande de connexion TPDU de données TPDU confirmation de connexion Transport Layer

  20. Three Way handshake • Etablissement d’une connexion bidirectionnelle avec des numéros de séquence indépendants • Utilisation d’un échange de 3 TPDU • CONNECTION_REQUEST • Init. Envoie son numéro de séquence vers la destination • CONNECTION_ACCEPTED • Acquittement et envoi de numéro de séquence • DATA • Init. Acquitte avec les premières données vers le destinataire Transport Layer

  21. Problèmes de transport • Perte • Temporisateur de retransmission • Difficulté: dimensionnement Transport Layer

  22. ouverture d'une connexion entre A et B TPDU DT 0 TPDU AK 1 T1 TPDU DT 1 TPDU AK 2 fermeture de la connexion établissement d'une nouvelle connexion La TPDU DT 1 est reçue sans Non Détéctée Duplication erreur mais hors séquence TPDU DT 1 Elle est gardée en attente de TPDU DT 0 reséquencement La TPDU DT 0 ayant été reçue, TPDU AK 2 TPDU DT 1 l'acquittement peut se faire La seconde TPDU DT 1 est TPDU AK 2 Perte Non Détéctée détectée comme dupliquée . Elle est écartée mais acquittée . . Problèmes de transport • Etablissement de connexion • Survivance A B Transport Layer

  23. Etablissement d’une connexion : bilan • Envoi d’un CONNECTION_REQUEST TPDU, avec possibilité de • Perte • Mémorisation • Duplication • Eviter la duplication avec • Génération d’un nouveau TSAP à chaque connexion • Utilisation d’identificateurs uniques de connexion (état) • Élimination des anciens (=TTL mais circulaire) Transport Layer

  24. Pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged pkts range of sequence numbers must be increased buffering at sender and/or receiver Two generic forms of pipelined protocols: go-Back-N, selective repeat Pipelined protocols Transport Layer

  25. Sender: k-bit seq # in pkt header “window” of up to N, consecutive unack’ed pkts allowed Go-Back-N • ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK” • may deceive duplicate ACKs (see receiver) • timer for each in-flight pkt • timeout(n): retransmit pkt n and all higher seq # pkts in window Transport Layer

  26. GBN inaction Transport Layer

  27. receiver individually acknowledges all correctly received pkts buffers pkts, as needed, for eventual in-order delivery to upper layer sender only resends pkts for which ACK not received sender timer for each unACKed pkt sender window N consecutive seq #’s again limits seq #s of sent, unACKed pkts Selective Repeat Transport Layer

  28. Selective repeat: sender, receiver windows Transport Layer

  29. data from above : if next available seq # in window, send pkt timeout(n): resend pkt n, restart timer ACK(n) in [sendbase,sendbase+N]: mark pkt n as received if n smallest unACKed pkt, advance window base to next unACKed seq # receiver sender Selective repeat pkt n in [rcvbase, rcvbase+N-1] • send ACK(n) • out-of-order: buffer • in-order: deliver (also deliver buffered, in-order pkts), advance window to next not-yet-received pkt pkt n in [rcvbase-N,rcvbase-1] • ACK(n) otherwise: • ignore Transport Layer

  30. Selective repeat in action Transport Layer

  31. Example: seq #’s: 0, 1, 2, 3 window size=3 receiver sees no difference in two scenarios! incorrectly passes duplicate data as new in (a) Q: what relationship between seq # size and window size? Selective repeat: dilemma Transport Layer

  32. Protocoles de bout en bout : bilan • Réseau “best effort” sous jacent • Perte de paquets • Dé-séquencement • Limite la taille des paquets • Temps de transfert aléatoire • Services courants de bout en bout • Remise garantie des messages • Séquencement • Taille des messages quelconque • Synchronisation récepteur - émetteur • Plusieurs processus applicatif sur une même machine Transport Layer

  33. A B Numérotation séquentielle DT0 7 31 (modulo 2 ou 2 ) DT1 ACK2, CDT=3 Dernier octet acquité DT2 CDT Fenêtre DT3 DT4 Limite supérieure ACK5, CDT=0 de fenêtre ACK5, CDT=1 DT5 • • • Problèmes de transport • Contrôle de flux • Adaptatif: fenêtre à taille variable • Dissociation du rôle des ACK: • Contrôle d’erreur • Contrôle de flux Transport Layer

  34. utilisateur fournisseur utilisateur T_DATA.req DR t emporisateur de T_DATA.ind retransmission DC T_DATA.req Temporisateur T_DISC.req effacement de d’effacement AK absence de T_DATA.ind T_DISC.req connexion après le T_DISC.req effacement de connexion A B DT3 DT4 T_CLOSE.request CR5 T_CLOSE.indication Fermeture AK6 effective de la T_DATA.request demi-conexion DT8 T_CLOSE.request T_DATA.indication CR9 T_CLOSE.indication AK10 Problèmes de transport • Libération • Brutale • Ordonnée sur réseau non fiable Action synchronisée Transport Layer

  35. Terminaison de connexion • Symétrique • Terminaison indépendante des deux directions • Fin de connexion lorsque chaque extrémité à terminé • Asymétrique • Fin de connexion dès qu’une des extrémités le demande • Petres possibles car plus de données acceptées après le DR Transport Layer

  36. Connection request TPDU received Connection primitive executed Passive establishment pending Active establishment Pending Connection accepted TPDU received Connection primitive executed Establishment Disconnect request TPDU received Disconnect primitive executed Passive disconnectpending Active disconnect pending Disconnect primitive executed Disconnection request TPDU received IDLE Automate d’état IDLE Transitions déclenchées par des primitives locales ou des arrivées de TPDU Transport Layer

  37. UDP Transport Layer

  38. UDP • RFC 768 • Numéro de protocole 17 quand transporté par IP. • Interface d’application pour IP • Pas de fiabilité, contrôle de flux ou récupération sur erreur. • Aucun contrôle sur le flot -> simplicité • Peu d’overhead, mécanisme minimaliste • Mode datagramme, non connecté (orienté message) • “multiplexer/demultiplexer'' pour envoyer/recevoir des datagrammes, en utilisant des ports pour diriger ces datagrammes. • Qualité “best effort” • création d’un paquet et transmission immédiate au niveau IP • Attention : pas de contrôle de congestion Transport Layer

  39. “no frills,” “bare bones” Internet transport protocol “best effort” service, UDP segments may be: lost delivered out of order to app connectionless: no handshaking between UDP sender, receiver each UDP segment handled independently of others Why is there a UDP? no connection establishment (which can add delay) simple: no connection state at sender, receiver small segment header no congestion control: UDP can blast away as fast as desired UDP: User Datagram Protocol [RFC 768] Transport Layer

  40. Communication entre les couches process 1 process 2 process n port x port y port z UDP : démultiplexage de ports IP Transport Layer

  41. Datagrammes UDP (1) • Port Source • indique le numéro de port du processus émetteur, • toute réponse y est dirigée. • Port Destinataire • Longueur : • nombre d'octets dans le datagramme entier (avec en-tête). • >8 Transport Layer

  42. Datagrammes UDP (2) • Contrôle d’erreur • Optionnel en IPv4, obligatoire en IPv6 • Pseudo-header + en-tête + données • Pseudo-header: • @ IP source • @ IP destination • protocole Transport Layer

  43. Sender: treat segment contents as sequence of 16-bit integers checksum: addition (1’s complement sum) of segment contents sender puts checksum value into UDP checksum field Receiver: compute checksum of received segment check if computed checksum equals checksum field value: NO - error detected YES - no error detected. But maybe errors nonethless? More later …. UDP checksum Goal: detect “errors” (e.g., flipped bits) in transmitted segment Transport Layer

  44. Applications d’UDP • la signalisation de certains protocoles • Trivial File Transfer Protocol (TFTP) • Domain Name System (DNS) name server • Remote Procedure Call (RPC), utilisé par Network File System (NFS) • Network Computing System (NCS) • Simple Network Management Protocol (SNMP) • applications temps réel, visio et audio conférences • applications nécessitant transmission multipoint(multicast) exemple : applications du MBONE, sdr, tableau blanc, etc Transport Layer

  45. often used for streaming multimedia apps loss tolerant rate sensitive other UDP uses (why?): DNS SNMP reliable transfer over UDP: add reliability at application layer application-specific error recover! UDP: more 32 bits source port # dest port # Length, in bytes of UDP segment, including header checksum length Application data (message) UDP segment format Transport Layer

  46. TCP Transport Layer

  47. TCP • RFC 793 - Transmission Control Protocol • 90% du trafic • Principes • Bonne utilisation des ressources du réseau • Couche de transport des systèmes d’extrémités (i.e. utilisateurs des données) • Communication bidirectionnelle et point à point sur des réseaux hétérogènes • Transfert fiable de données ( UDP) • Contrôle de perte • Contrôle de flux • Contrôle de congestion: interaction hôte-réseau réactive et agréssive • TCP suppose que les couches de communication qui lui sont inférieures lui procurent un service de transmission de paquet simple, dont la qualité n'est pas garantie. • Mode connecté et commutation de paquets • Orienté flux d’octets: • application écrit des octets • TCP émet des segments • application lit des octets • Récepteur le plus simple possible -> complexité chez l’émetteur • interopérabilité maximum recherchée • Utilisé parTELNET, FTP, HTTP … Transport Layer

  48. Caractéristiques de TCP • Flot d’octets • Séquencés • Segmentation des données au niveau TCP • Circuit virtuel en mode connecté • La connexion est établie et considérée comme un circuit physique • fiabilité • Transfert bufferisé • Attendre d’avoir assez de données pour émettre (performance) • Full duplex • Pour les ACKs Application process Application process Octetslus Octets écrits … … TCP TCP Buffer émission Buffer réception … Segment Segment Segment T Segments transmis Transport Layer

  49. Caractéristiques de TCP • Numéros de séquence indépendants dans les 2 directions • Associés à chaque octets • Indique le numéro du premier octet transmis • Mots de 32 bits • Bouclage théorique en moins de 6 minutes à 100 Mbps mais en pratique, c’est beaucoup plus long ! • Utilisé pour les acquittements • Si N octets sont délivrés du paquet avec le numéro de séquence X, l’acquittement aura la valeur X+N (soit le numéro du prochain octet à recevoir) • Piggybacking • Les deux numéros sont présents dans les mêmes paquets Transport Layer

  50. Caractéristiques de TCP • Fiabilité • Numéro de séquence • Détection des pertes : • Aquittements positifs (ACK) du récepteur -> OK • Pas d’ACK -> timeout (temporisation) -> retransmission • ACK dupliqué • Réordonnancement des paquets au récepteur • Elimination des paquets dupliqués • Checksum • Retransmissions : • Selective repeat • Go back N • Contrôle de flux par annonce de fenêtres • Fenêtre modulée par le récepteur • Inclus dans l’ACK • Fenêtre qui indique le plus grand numéro de séquence pouvant être reçu • Erreur = congestion • Contrôle de congestion : adaptation à l’état d’occupation du réseau • Sans signalisation réseau • Orienté connexion Transport Layer

More Related