les protocoles de transport TCP et UDP Transport

  • Slides: 115
Download presentation
les protocoles de transport TCP et UDP Transport Layer 1

les protocoles de transport TCP et UDP Transport Layer 1

PLAN r Origines de TCP-IP r Les protocoles de transport m Fonctions m Ports

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

Origine de TCP/IP Transport Layer 3

Origine de TCP/IP Transport Layer 3

TCP-IP: origine r Commutation de paquets r Approche « informatique » vs « télécom

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

Interconnexion de réseaux r Les réseaux r r d'entreprise Les passerelles Les protocoles Les

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

Architecture TCP-IP Machine A Passerelle Machine D Applications standards Transport Protocole IP Protocole d'accès

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

Rôle du transport Transport Layer 7

Rôle du transport Transport Layer 7

Le principe du bout en bout r Pas d’intelligence dans le réseau m Traitement

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

Services et protocoles de transport r Fournissent une d en d- network data link

Services et protocoles de transport r Fournissent une d en d- network data link physical po s an tr rt m en r al r network data link physical ic r network data link physical g lo r 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 application transport network data link physical relies on, enhances, network layer services Transport Layer 9

Principe du bout en bout r Service réseau m Modes d’acheminement • Circuit virtuel

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

Fonction des protocoles de transport r Protocoles de bout en bout (pas comme à

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

Rôle du Transport r Général Communication inter-process m Identification des points d‘extrémités m Bout

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

Ports r Pour identifier une cible plus spécifique l’adresse IP car les datagrammes sont

Ports r Pour identifier une cible plus spécifique l’adresse IP car les datagrammes sont destinés à des process et pas au système. m m PID -> trop dynamique par un point d’extrémité: • le port • n° de port sur 2 octets r Ceci est réalisé avec les ports m 16 -bits qui identifient quel process est associé à quel datagramme. m Attachement du processus au port m Identification: (@ IP, n° port) r Deux types de ports : m well-known : appartiennent aux serveurs standards • • m 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 13

Multiplexing/demultiplexing Recall: segment - unit of data exchanged between transport layer entities m aka

Multiplexing/demultiplexing Recall: segment - unit of data exchanged between transport layer entities m aka TPDU: transport protocol data unit application-layer data segment header segment Ht M Hn segment P 1 M application transport network P 3 Demultiplexing: delivering received segments to correct app layer processes receiver M M application transport network P 4 M P 2 application transport network Transport Layer 14

Multiplexing/demultiplexing Multiplexing: gathering data from multiple app processes, enveloping data with header (later used

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

Multiplexing/demultiplexing: examples host A source port: x dest. port: 23 server B source port:

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

TSAP/NSAP Host 1 Host 2 Application TSAP n La connexion transport commence ici La

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

Adressage TSAP r Transport Service Access Point m Identification des applications en communication m

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

Problèmes de transport r Etablissement de connexion m Déséquencement Etablissement en 3 étapes entité

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

Three Way handshake r Etablissement d’une connexion bidirectionnelle avec des numéros de séquence indépendants

Three Way handshake r Etablissement d’une connexion bidirectionnelle avec des numéros de séquence indépendants r Utilisation d’un échange de 3 TPDU m 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 20

Problèmes de transport r Perte m Temporisateur de retransmission • Difficulté: dimensionnement Transport Layer

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

Problèmes de transport r Etablissement de connexion Survivance TPDU DT 0 TPDU AK 1

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

Etablissement d’une connexion : bilan r Envoi d’un CONNECTION_REQUEST TPDU, avec possibilité de m

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

Pipelined protocols Pipelining: sender allows multiple, “in-flight”, yet-tobe-acknowledged pkts m m range of sequence

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

Go-Back-N Sender: r k-bit seq # in pkt header r “window” of up to

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

GBN in action Transport Layer 26

GBN in action Transport Layer 26

Selective Repeat r receiver individually acknowledges all correctly received pkts m buffers pkts, as

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

Selective repeat: sender, receiver windows Transport Layer 28

Selective repeat: sender, receiver windows Transport Layer 28

Selective repeat sender data from above : receiver pkt n in [rcvbase, rcvbase+N-1] r

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

Selective repeat in action Transport Layer 30

Selective repeat in action Transport Layer 30

Selective repeat: dilemma Example: r seq #’s: 0, 1, 2, 3 r window size=3

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

Protocoles de bout en bout : bilan r Réseau “best effort” sous jacent m

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

Problèmes de transport r Contrôle de flux m Adaptatif: fenêtre à taille variable A

Problèmes de transport r Contrôle de flux m Adaptatif: fenêtre à taille variable A Numérotation séquentielle (modulo 2 7 ou 231) DT 0 B DT 1 Dernier octet acquité CDT Fenêtre ACK 2, CDT=3 DT 2 DT 3 DT 4 Limite supérieure de fenêtre ACK 5, CDT=0 ACK 5, CDT=1 DT 5 r Dissociation du rôle des ACK: m Contrôle d’erreur m Contrôle de flux • • • Transport Layer 33

Problèmes de transport r Libération m Brutale utilisateur fournisseur Action synchronisée sur réseau non

Problèmes de transport r Libération m Brutale utilisateur fournisseur Action synchronisée sur réseau non fiable utilisateur temporisateur de retransmission T_DATA. req T_DATA. ind T_DATA. req DC effacement de connexion T_DISC. req absence de T_DATA. ind après le T_DISC. req m Ordonnée DR A AK Temporisateur d’effacement de connexion B DT 3 T_CLOSE. request Fermeture effective de la demi-conexion T_DATA. indication T_CLOSE. indication DT 4 CR 5 T_CLOSE. indication AK 6 DT 8 CR 9 T_DATA. request T_CLOSE. request AK 10 Transport Layer 34

Terminaison de connexion r Symétrique m Terminaison indépendante des deux directions m Fin de

Terminaison de connexion r Symétrique m Terminaison indépendante des deux directions m Fin de connexion lorsque chaque extrémité à terminé r Asymétrique m 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 35

Automate d’état Connection request TPDU received Connection primitive executed IDLE Passive establishment pending Active

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

UDP Transport Layer 37

UDP Transport Layer 37

UDP r RFC 768 r Numéro de protocole 17 quand transporté par IP. r

UDP r RFC 768 r Numéro de protocole 17 quand transporté par IP. r Interface d’application pour IP r Pas de fiabilité, contrôle de flux ou récupération r r r r 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 Transport Layer Attention : pas de contrôle de congestion 38

UDP: User Datagram Protocol r “no frills, ” “bare bones” Internet transport protocol r

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

Communication entre les couches process 1 port x process 2 process n port y

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

Datagrammes UDP (1) r Port Source m indique le numéro de port du processus

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

Datagrammes UDP (2) r Contrôle d’erreur m Optionnel en IPv 4, obligatoire en IPv

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

UDP checksum Goal: detect “errors” (e. g. , flipped bits) in transmitted segment Sender:

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

Applications d’UDP r la signalisation de certains protocoles r Trivial File Transfer Protocol (TFTP)

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

UDP: more r often used for streaming multimedia apps m loss tolerant m rate

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

TCP Transport Layer 46

TCP Transport Layer 46

TCP r RFC 793 - Transmission Control Protocol r 90% du trafic r Principes

TCP r RFC 793 - Transmission Control Protocol r 90% du trafic r Principes m Bonne utilisation des ressources du réseau m m 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. m m m 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 r Utilisé par. TELNET, FTP, HTTP … Transport Layer 47

Caractéristiques de TCP m m La connexion est établie et considérée comme un circuit

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

Caractéristiques de TCP r Numéros de séquence indépendants dans les 2 directions m Associés

Caractéristiques de TCP r Numéros de séquence indépendants dans les 2 directions m Associés à chaque octets • Indique le numéro du premier octet transmis m Mots de 32 bits • Bouclage théorique en moins de 6 minutes à 100 Mbps mais en pratique, c’est beaucoup plus long ! m 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) m Piggybacking • Les deux numéros sont présents dans les mêmes paquets Transport Layer 49

Caractéristiques de TCP r Fiabilité m m m Numéro de séquence Détection des pertes

Caractéristiques de TCP r Fiabilité m m m 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 r Contrôle de flux par annonce de fenêtres m m 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 r Contrôle de congestion : adaptation à l’état d’occupation du réseau m Sans signalisation réseau r Orienté connexion Transport Layer 50

Caractéristiques de TCP r Multiplexage m Pour permettre à plusieurs tâches d'une même machine

Caractéristiques de TCP r Multiplexage m Pour permettre à plusieurs tâches d'une même machine de communiquer simultanément via TCP, le protocole définit un ensemble d'adresses et de ports pour la machine. m Une "socket" est défini par l'association des adresses Internet source, destinataire, ainsi que les deux numéros de port à chaque extrémité. Une connexion nécessite la mise en place de deux sockets. Une socket peut être utilisée par plusieurs connexions distinctes. m L'affectation des ports aux processus est établie par chaque ordinateur. Transport Layer 51

Segments r Les octets de données sont accumulés jusqu’au moment où TCP décide d’envoyer

Segments r Les octets de données sont accumulés jusqu’au moment où TCP décide d’envoyer un segment r Découpage en segment indépendant du découpage au niveau application r MSS = longueur maximale d’un segment Application Buffer d’émission TCP header IP header TCP IP Transport Layer 52

Sockets r Deux process communiquent par des sockets TCP qui fournissent aux process un

Sockets r Deux process communiquent par des sockets TCP qui fournissent aux process un flux de données full duplex. r Ports éphémères r Port = TCP TSAP = numéro sur 16 bits m m Valeur locale 0 à 255 : well-known 0 à 1023 : ports système 1024 à 65536 : ports utilisateurs r Une socket TCP : m Triplet <TCP, IP address, port number>. r Une connexion TCP : m 2 sockets <TCP, local IP address, local port, remote IP address, remote port>. Transport Layer 53

BSD Sockets r Primitives pour TCP utilisées par les UNIX BSD SOCKET (création d’un

BSD Sockets r Primitives pour TCP utilisées par les UNIX BSD SOCKET (création d’un nouveau point terminal) m BIND (attache une adresse à la socket) m LISTEN (acceptation des connexions avec file d’attente) m ACCEPT (acceptation bloquante) m CONNECT (établissement actif de connexion) m SEND (envoi de données sur une connexion) m RECEIVE (réception de données d’une connexion) m CLOSE (terminaison d’une connexion) m r Serveur : SOCKET -> BIND -> LISTEN -> ACCEPT … [SEND, RECEIVE]… -> CLOSE r Client : SOCKET –> BIND -> CONNECT … [SEND, Transport Layer RECEIVE]…-> CLOSE 54

Communication entre applications process 1 port x Données TCP header port: x Données process

Communication entre applications process 1 port x Données TCP header port: x Données process 2 connexion port y socket TCP connexion TCP fiable IP TCP Adresse IP IP paquets IP non fiable Hôte 1 Transport Layer Hôte 2 55

Problèmes pour TCP r Connexion avec des hôtes différents m Établissement et libération de

Problèmes pour TCP r Connexion avec des hôtes différents m Établissement et libération de connexion r RTT variable m adaptation de la temporisation r Survivance de paquets (très long délai de transfert) m Attention aux arrivées de très vieux paquets r Capacité de stockage dynamique des extrémités m “Apprendre” les ressources disponibles r Capacité de la route varie dans le réseau Transport Layer m Ajuster le débit d’émission à la bande passante 56

Vie d’une Connexion r Si deux processus désirent communiquer, établissement d’une connexion TCP r

Vie d’une Connexion r Si deux processus désirent communiquer, établissement d’une connexion TCP r Internet => best effort m on utilise donc une méthode d'initialisation par négociation bilatérale basée sur une horloge pour les numéros de séquence. r A la fin de la connexion m Fermeture qui libère les ressources r 3 phases m Ouverture d’une connexion m Transfert de données m Fermeture de la connexion Transport Layer 57

Établissement d’une connexion r Appel OPEN passif (serveur)/actif (client) r Fermeture d’une connexion avec

Établissement d’une connexion r Appel OPEN passif (serveur)/actif (client) r Fermeture d’une connexion avec le bit FIN (à faire dans les deux sens) Process 1 Active OPEN Send SYN, seq=n Process 2 Passive open attend une requête active Receive SYN Send SYN, seq=m, ACK=n+1 Receive SYN+ACK Send ACK=m+1 Transport Layer 58

Connexion TCP r Trois phases m Etablissement de la connexion m Transfert des informations

Connexion TCP r Trois phases m Etablissement de la connexion m Transfert des informations avec • Contrôle de flux • Contrôle de congestion m Libération de la connexion Transport Layer 59

Etablissement de la connexion TCP r Procédure à trois échanges m Three way handshake

Etablissement de la connexion TCP r Procédure à trois échanges m Three way handshake r ISN (Initial Sequence Number) m Numéro de séquence du premier octet d’information transporté m Le premier octet transporté est alors ISN+1 m ISN est généralement dérivé de l’horloge de l’hôte Transport Layer 60

Exemple Transport Layer 61

Exemple Transport Layer 61

Libération de la connexion r Normale m Fin demandée par l’une des extrémités (flag

Libération de la connexion r Normale m Fin demandée par l’une des extrémités (flag FIN=1) r Terminaison brutale • Envoi de la primitive ABORT (flag RST=1) • Toutes les transmissions ou réceptions sont interrompues et les tampons sont vidés Transport Layer 62

Automate TCP CLOSED Listen/- Close/- LISTEN SYN/SYN+ACK Send/SYN RST/SYN RCVD SYN/SYN+ACK CLOSE/FIN FIN WAIT

Automate TCP CLOSED Listen/- Close/- LISTEN SYN/SYN+ACK Send/SYN RST/SYN RCVD SYN/SYN+ACK CLOSE/FIN FIN WAIT 1 ACK/FIN WAIT 2 Close/- ACK/- Connect/SYN Simultaneous open ESTABLISHED SYN SENT SYN+ACK/ACK FIN/ACK FIN+ACK/ACK FIN/ACK CLOSING CLOSE WAIT ACK/- CLOSE/FIN LAST ACK TIME WAIT ACTIVE CLOSE PASSIVE CLOSE Timeout/CLOSED ACK/- Transport Layer 63

Transfert de données r Segmentation m Découpage du flux en segments selon la MTU

Transfert de données r Segmentation m Découpage du flux en segments selon la MTU locale m Numérotation des octets m Gel du numéro de séquence pendant MSL (Maximum Segment Lifetime) r Contrôle de perte (fiabilité) m Acquittement positif m Protection par temporisateur de retransmission chez l'émetteur uniquement r Contrôle de flux (optimisation des ressources disponibles) m fenêtres à taille variable m Progression par acquittement et crédit : fenêtres glissantes Data (Sequence Number) Sender Receiver Acknowledgement + Advertised Window Transport Layer 64

Fiabilité : stop and wait r Envoi d’un paquet et attendre un acquittement avant

Fiabilité : stop and wait r Envoi d’un paquet et attendre un acquittement avant d’envoyer un nouveau paquet. r Si timeout, alors retransmission r Fiabilité vs. utilisation de la bande passante Lancer nam ici émetteur Envoi du paquet 1 récepteur Data ACK Réception ACK Envoi paquet 2 Réception paquet 1 Envoi ACK 1 Data Transport Layer 65

Contrôle de flux TCP Fenêtre annoncée Transmis et acquitté Transmis non acquitté Non transmissible

Contrôle de flux TCP Fenêtre annoncée Transmis et acquitté Transmis non acquitté Non transmissible r Basé sur la fenêtre glissante m Pointeur de début de fenêtre m Pointeur indiquant la partie transmise et non acquittée m Pointeur indiquant la fin de la fenêtre m Envoi de données urgentes toujours possible Transport Layer 66

Fenêtre d’émission r F=min (cwnd, W) m Cwnd est une variable maintenue par la

Fenêtre d’émission r F=min (cwnd, W) m Cwnd est une variable maintenue par la source • Tient compte de la congestion du réseau m. W : fixé par la destination, champ fenêtre annoncé • Tient compte de la capacité du récepteur Transport Layer 67

Fenêtres r But : optimiser les ressources m Contrôle de flux et contrôle de

Fenêtres r But : optimiser les ressources m Contrôle de flux et contrôle de congestion r L’émetteur peut envoyer n paquets dans une fenêtre de taille n sans recevoir d’ACK. r L’émetteur fait glisser la fenêtre sur réception d’un ACK. r Fenêtre effective = Fenêtre annoncée - (octets transmis - octets non acquittés) r Arrêt de la transmission quand fenêtre effective=0 émetteur récepteur DATA 1 DATA 2 DATA 3 DATA 4 DATA 5 ACK 2 DATA 6 1 2 3 4 5 6 7 8 9 fenêtre glissante Transport Layer 68

Silly window syndrome r L’émetteur a beaucoup de données à transmettre r Petite fenêtre

Silly window syndrome r L’émetteur a beaucoup de données à transmettre r Petite fenêtre annoncée => émission de petits segments r Solution pour le récepteur m Annoncer des fenêtres par tranches plus larges (MSS par exemple) r Solution pour l’émetteur m Retarder l’envoi de petits segments m Soit PUSH positionné soit on a au moins ½ de la fenêtre à envoyer Transport Layer 69

Fiabilité avec Go-back-N r Fenêtre d’anticipation r Détection d’erreurs par l’émetteur r Retransmission continue

Fiabilité avec Go-back-N r Fenêtre d’anticipation r Détection d’erreurs par l’émetteur r Retransmission continue (go-back-n) ou sélective (stockage en désordre) A DT 0 B DT 1 ACK 2 DT 3 DT 4 ACK 3 DT 3 • • • Transport Layer 70

La reprise sur erreurs émetteur r Exemples m Paquet 2 perdu: T • ACK

La reprise sur erreurs émetteur r Exemples m Paquet 2 perdu: T • ACK 3 non reçu par S, • W reste en 1 • R aquitte 3, 4, 5 avec un ACK 2 • Timout sur S, retransmission • ACK 6 envoyé par R m Paquet 2 arrivé et ACK perdu • ACK 3 non reçu mais ACK 4 reçu • ACK 4 acquitte tous les paquets avant 4 • S fait glisser sa fenêtre au paquet 4 récepteur DATA 1 DATA 2 DATA 3 DATA 4 DATA 5 ACK 2 DATA 2 ACK 6 récepteur émetteur DATA 1 DATA 2 DATA 3 DATA 4 DATA 5 ACK 2 ACK 3 ACK 4 Transport Layer 71

Exemple de reprise sur erreurs Sender Segment 1 (seq. 1000) Receiver Receives 1000, send

Exemple de reprise sur erreurs Sender Segment 1 (seq. 1000) Receiver Receives 1000, send ACK 1500 Segment 2 (seq. 1500) Segment 3 (seq. 2000) Receives ACK 1500 Slide the window Segment 4 (seq. 2500) Waiting for ACK Receives one of the frames and replies with ACK 1500 Receive ACK 1500 which does not slide the window Timeout -> retransmission Of segment 2 Transport Layer 72

TCP: retransmission scenarios Host A , 8 byt e s data ACK X =100

TCP: retransmission scenarios Host A , 8 byt e s data ACK X =100 loss Seq=9 2 , 8 byt e s data Seq= 100, 2 tes da ta 0 byte s data 0 10 = K 120 = C K A AC Seq=9 2, 8 by tes da ta 20 100 lost ACK scenario 2, 8 by K=1 AC = ACK time Host B Seq=9 Seq=100 timeout Seq=92 timeout Seq=9 2 timeout Host A Host B time premature timeout, cumulative ACKs Transport Layer 73

TCP ACK generation [RFC 1122, RFC 2581] Event TCP Receiver action in-order segment arrival,

TCP ACK generation [RFC 1122, RFC 2581] Event TCP Receiver action in-order segment arrival, no gaps, everything else already ACKed delayed ACK. Wait up to 500 ms for next segment. If no next segment, send ACK in-order segment arrival, no gaps, one delayed ACK pending immediately send single cumulative ACK out-of-order segment arrival higher-than-expect seq. # gap detected send duplicate ACK, indicating seq. # of next expected byte arrival of segment that partially or completely fills gap immediate ACK if segment starts at lower end of gap Transport Layer 74

Conséquences de ces mécanismes r Fiabilité des transmissions r Bonne utilisation de la bande

Conséquences de ces mécanismes r Fiabilité des transmissions r Bonne utilisation de la bande passante r Contrôle de flux orienté récepteur : la taille de la fenêtre varie au cours de la connexion Transport Layer 75

Temporisateurs de TCP r Temporisateur de retransmission r Temporisateur de peristence m Pour débloquer

Temporisateurs de TCP r Temporisateur de retransmission r Temporisateur de peristence m Pour débloquer la situation après une fenêtre d’émission réduite à zéro et une ouverture perdue r Temporisateur d’inactivité m Vérifie la présence de l’autre extrémité r Temporisateur de déconnexion m Deux fois la durée de vie des paquets Transport Layer 76

TCP et Long Fat Networks r Performance maximum si l’émetteur toujours en activité m

TCP et Long Fat Networks r Performance maximum si l’émetteur toujours en activité m Eviter l’épuisement de la numérotation en séquence m Eviter la fermeture de la fenêtre m • • durée de rebouclage > MSL Seq number: 32 bits • fenêtre annoncée ≥ bande passante * RTT • Window: 16 bits -> soit 64 Ko • RTT (Round Trip Time) = temps entre émission d’un segment et réception de l’ACK correspondant • bande passante * RTT = capacité de mémorisation du réseau Cas des Long Fat Networks: r Extension TCP pour les LFNs m m facteur d’échelle sur la fenêtre d’émission ajout d’une estampille temporelle sur 32 bits (RFC 1323) Transport Layer 77

Ajustement des timeouts : Contrôle d’erreur r Délais variables sur Internet m Distance m

Ajustement des timeouts : Contrôle d’erreur r Délais variables sur Internet m Distance m Temps de traversée du réseau (charge, saturation des liens …) r Le timeout est calculé en fonction de l’estimation du RTT (Round Trip Time) r Log du moment où un paquet est envoyé et quand il est acquitté r Moyenne pondérée des RTT mesurés r Permet de trouver une valeur de timeout pour le segment suivant Transport Layer 78

Ajustement des timeouts: Contrôle d’erreur r Temporisateur de retransmission adaptatif m Mesure de RTT

Ajustement des timeouts: Contrôle d’erreur r Temporisateur de retransmission adaptatif m Mesure de RTT et en déduire une estimation Algorithme Err = Sample. RTT - Est. RTT = Est. RTT + (d x Err) Var = Var + d(|Err| - Var) Prise en compte de la variance Temporisateur = m x Est. RTT + f x Var Où m = 1 et f = 4 r Mesure du RTT m Cas d’erreurs m Actions: • pas de mesure de RTT quand il y a eu une retransmission • Doublement de la valeur du temporisateur après chaque Transport Layer retransmission 79

TCP Round Trip Time and Timeout Q: how to set TCP timeout value? r

TCP Round Trip Time and Timeout Q: how to set TCP timeout value? r longer than RTT note: RTT will vary r too short: premature timeout m unnecessary retransmissions r too long: slow reaction to segment loss m Q: how to estimate RTT? r Sample. RTT: measured time from segment transmission until ACK receipt m ignore retransmissions, cumulatively ACKed segments r Sample. RTT will vary, want estimated RTT “smoother” m use several recent measurements, not just current Sample. RTT Transport Layer 80

TCP Round Trip Time and Timeout Estimated. RTT = (1 -x)*Estimated. RTT + x*Sample.

TCP Round Trip Time and Timeout Estimated. RTT = (1 -x)*Estimated. RTT + x*Sample. RTT r Exponential weighted moving average r influence of given sample decreases exponentially fast r typical value of x: 0. 1 Setting the timeout r Estimted. RTT plus “safety margin” r large variation in Estimated. RTT -> larger safety margin Timeout = Estimated. RTT + 4*Deviation = (1 -x)*Deviation + x*|Sample. RTT-Estimated. RTT| Transport Layer 81

TCP congestion control: r “probing” for usable bandwidth: m m m ideally: transmit as

TCP congestion control: r “probing” for usable bandwidth: m m m ideally: transmit as fast as possible (Congwin as large as possible) without loss increase Congwin until loss (congestion) loss: decrease Congwin, then begin probing (increasing) again r two “phases” m slow start m congestion avoidance r important variables: m Congwin m threshold: defines threshold between two slow start phase, congestion control phase Transport Layer 82

Contrôle de congestion r Congestion m Goulot d'étranglement Réseau 1 Routeur Réseau 2 Datagrammes

Contrôle de congestion r Congestion m Goulot d'étranglement Réseau 1 Routeur Réseau 2 Datagrammes en attente de relayage routeur Réseau 3 temps de transfert • Effondrement des performances Réponses: - niveau réseau: gestion des ressources - niveau transport: adaptation du débit trafic offert Transport Layer 83

Causes/costs of congestion: scenario 1 r two senders, two receivers r one router, infinite

Causes/costs of congestion: scenario 1 r two senders, two receivers r one router, infinite buffers r no retransmission r large delays when congested r maximum achievable throughput Transport Layer 84

Causes/costs of congestion: scenario 2 r one router, finite buffers r sender retransmission of

Causes/costs of congestion: scenario 2 r one router, finite buffers r sender retransmission of lost packet Transport Layer 85

Causes/costs of congestion: scenario 2 = l (goodput) out in r “perfect” retransmission only

Causes/costs of congestion: scenario 2 = l (goodput) out in r “perfect” retransmission only when loss: r always: r l l > lout in retransmission of delayed (not lost) packet makes l in l (than perfect case) for same out larger “costs” of congestion: r more work (retrans) for given “goodput” r unneeded retransmissions: link carries multiple copies of pkt Transport Layer 86

Causes/costs of congestion: scenario 3 r four senders r multihop paths r timeout/retransmit Q:

Causes/costs of congestion: scenario 3 r four senders r multihop paths r timeout/retransmit Q: what happens as l in and l increase ? in Transport Layer 87

Causes/costs of congestion: scenario 3 Another “cost” of congestion: r when packet dropped, any

Causes/costs of congestion: scenario 3 Another “cost” of congestion: r when packet dropped, any “upstream transmission capacity used for that packet wasted! Transport Layer 88

Approaches towards congestion control Two broad approaches towards congestion control: End-end congestion control: r

Approaches towards congestion control Two broad approaches towards congestion control: End-end congestion control: r no explicit feedback from network r congestion inferred from end-system observed loss, delay r approach taken by TCP Network-assisted congestion control: r routers provide feedback to end systems m single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) m explicit rate sender should send at Transport Layer 89

Contrôle de congestion TCP r Conservation des paquets m Ne pas injecter un nouveau

Contrôle de congestion TCP r Conservation des paquets m Ne pas injecter un nouveau paquet tant qu’un vieux n’est pas sorti du réseau • nombre de paquets en transit constant m Synchronisation sur les acquittements: autosynchronisation r Trouver le point de synchronisation m Utilisation d’une fenêtre dynamique: fenêtre de contrôle de congestion (cwnd) r Détection de la congestion m Pertes généralement dues à la congestion r Guérison de la congestion m Diminution du débit à la source pour diminuer la Transport Layer congestion 90

Contrôle de congestion r Principe m Trouver le point d’équilibre: “additive increase” • Augmenter

Contrôle de congestion r Principe m Trouver le point d’équilibre: “additive increase” • Augmenter la fenêtre de contrôle de congestion m Détection de la congestion par l’indication de la perte d’un paquet m Suppression de congestion en réduisant la fenêtre r Algorithme m m phase 1: slow start • Après une perte détectée par expiration de temporisation phase 2: congestion avoidance En cas de perte: réduction de la taille de la fenêtre et récupération Récupération : fast recovery • Après une perte détectée par retransmission rapide (fast retransmit) Transport Layer 91

Algorithmes de contrôle de congestion et gestion des fenêtres r Slow Start r Multiplicative

Algorithmes de contrôle de congestion et gestion des fenêtres r Slow Start r Multiplicative decrease r Fast recovery r RED r Delayed ACK r etc. Transport Layer 92

Slow Start r Fenêtre glissante et taille variable de la fenêtre r Croissance exponentielle

Slow Start r Fenêtre glissante et taille variable de la fenêtre r Croissance exponentielle de la taille de la fenêtre (x 2 à chaque fois que les paquets sont transmis correctement) m Augmentation acquittement de 1 segment à chaque r Lancer nam ici Transport Layer 93

Congestion avoidance r Pour stopper l’augmentation trop rapide (le slow start est exponentiel) r

Congestion avoidance r Pour stopper l’augmentation trop rapide (le slow start est exponentiel) r À partir d’un seuil : augmentation de 1 segment à chaque RTT r Le seuil vaut la moitié de la fenêtre lors de la dernière congestion Transport Layer 94

Congestion avoidance r Initialisation avec cwnd=1 et ssthresh=65536 r TCP envoie moins de min(cwnd,

Congestion avoidance r Initialisation avec cwnd=1 et ssthresh=65536 r TCP envoie moins de min(cwnd, fenêtre de réception) r Congestion => ssthresh = max(fenêtre/2, 2). r Si timeout (cad perte), alors cwnd=1 r Nouvel ACK => grandir cwnd Si cwnd<=ssthresh alors slow start jusque cwnd = cwnd avant congestion /2 m Sinon Congestion avoidance (croissance linéaire de la taille de la fenêtre) m r Avant ces mécanismes : simple-pre-vj. nam r Lancer nam (multiplicative decrease) ici r Lancer simple. avi ici ou nam (simple. nam) Transport Layer 95

TCP et grands RTTs r Avec Congestion avoidance, la taille de la fenêtre augmente

TCP et grands RTTs r Avec Congestion avoidance, la taille de la fenêtre augmente de 1 à chaque RTT r Croissance moins rapide si le RTT est grand r Lancer biais. avi Transport Layer 96

Fast recovery r Empêche le slow start après la congestion r Slow start utilisé

Fast recovery r Empêche le slow start après la congestion r Slow start utilisé en cas de perte de paquets (expiration de timer) Transport Layer 97

Fast retransmit r Modification de congestion avoidance m m 3 DUPACKs -> paquet supposé

Fast retransmit r Modification de congestion avoidance m m 3 DUPACKs -> paquet supposé perdu et donc retransmission Après la transmission, tout continue normalement (on attend pas d’ACK) r Si 3 DUPACKs m Sshthresh = ½ min(cwnd, fenêtre récepteur) m Retransmettre le segment perdu m Cwnd+=3 taille de segment m Autre DUPACK -> cwnd +=taille de segment et transmet un paquet m Acquittement de nouvelles données -> cwnd = ssthresh r Lancer nam ici Transport Layer 98

RED (Random Early Detection) r Dans les routeurs r Congestion imminente -> notification à

RED (Random Early Detection) r Dans les routeurs r Congestion imminente -> notification à la source en perdant un paquet r La congestion est calculée en mesurant la taille moyenne des queues dans les routeurs r Lancer nam ici r Comparaison avec drop tail Transport Layer 99

Delayed ACKs r Possibilité d’acquitter plusieurs paquets d’un coup r Lancer nam ici Transport

Delayed ACKs r Possibilité d’acquitter plusieurs paquets d’un coup r Lancer nam ici Transport Layer 100

Contrôle de congestion r Evolution de cwnd Transport Layer 101

Contrôle de congestion r Evolution de cwnd Transport Layer 101

TCP Congestion Avoidance Congestion avoidance /* slowstart is over */ /* Congwin > threshold

TCP Congestion Avoidance Congestion avoidance /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 1 perform slowstart 1: TCP Reno skips slowstart (fast recovery) after three duplicate ACKs Transport Layer 102

Segment TCP r Port source (16 bits) : le numéro de port de la

Segment TCP r Port source (16 bits) : le numéro de port de la source. r Port Destination (16 bits) : Le numéro de port du destinataire. r Numéro de séquence (32 bits) : Le numéro du premier octet de données par rapport au début de la transmission (sauf si SYN est marqué). Si SYN est marqué, le numéro de séquence est le numéro de séquence initial (ISN) et le premier octet à pour numéro ISN+1. r Accusé de réception (32 bits) : si ACK est marqué ce champ contient le numéro de séquence du prochain octet que le récepteur s'attend à recevoir. Une fois la connexion établie, ce champ est toujours renseigné. Transport Layer 103

Segment TCP r Header length (4 bits): La taille de l'en-tête TCP en nombre

Segment TCP r Header length (4 bits): La taille de l'en-tête TCP en nombre de mots de 32 bits. Il indique là ou commence les données. L'en-tête TCP, dans tous les cas à une taille correspondant à un nombre entier de mots de 32 bits. r Réservé (6 bits) : réservés pour usage futur. Doivent nécessairement être à 0. r Bits de contrôle (6 bits - de gauche à droite): - URG: Pointeur de données urgentes significatif - ACK: Accusé de réception significatif - PSH: Fonction Push - RST: Réinitialisation de la connexion - SYN: Synchronisation des numéros de séquence - FIN: Fin de transmission r Fenêtre (16 bit): le nombre d'octets à partir de la position marquée Transport Layer 104 dans l'accusé de réception que le récepteur est capable de recevoir.

Segment TCP r En-tête de 20 octets (+ options) = IP r Zéro ou

Segment TCP r En-tête de 20 octets (+ options) = IP r Zéro ou plus octets de données r Taille des segments décidés par TCP m Taille max = max (65535 o avec entête TCP, MTU) r Un segment doit tenir dans le MTU m Pour IPv 4, la MTU minimale est 556 octets (payload TCP de 536 octets) Transport Layer 105

Versions de TCP r Unix m BSD 4. 2 (1983) 1ére souche TCP/IP largement

Versions de TCP r Unix m BSD 4. 2 (1983) 1ére souche TCP/IP largement disponible m BSD 4. 3 Tahoe (1988), slow start, congestion avoidance m BSD 4. 3 Reno (1990), fast recovery m BSD 4. 3 Vegas (1990), Estimateur de BP Transport Layer 106

AIMD TCP congestion avoidance: r AIMD: additive increase, multiplicative decrease m m increase window

AIMD TCP congestion avoidance: r AIMD: additive increase, multiplicative decrease m m increase window by 1 per RTT decrease window by factor of 2 on loss event TCP Fairness goal: if N TCP sessions share same bottleneck link, each should get 1/N of link capacity TCP connection 1 TCP connection 2 bottleneck router capacity R Transport Layer 107

Why is TCP fair? Two competing sessions: r Additive increase gives slope of 1,

Why is TCP fair? Two competing sessions: r Additive increase gives slope of 1, as throughout increases r multiplicative decreases throughput proportionally equal bandwidth share Connection 2 throughput R loss: decrease window by factor of 2 congestion avoidance: additive increase Connection 1 throughput R Transport Layer 108

TCP latency modeling Q: How long does it take to Notation, assumptions: receive an

TCP latency modeling Q: How long does it take to Notation, assumptions: receive an object from a r Assume one link between client and server of rate R Web server after sending r Assume: fixed congestion a request? r TCP connection establishment r data transfer delay window, W segments r S: MSS (bits) r O: object size (bits) r no retransmissions (no loss, no corruption) Two cases to consider: r WS/R > RTT + S/R: ACK for first segment in window returns before window’s worth of data sent r WS/R < RTT + S/R: wait for ACK after sending Transport Layer window’s worth of data sent 109

TCP latency Modeling Case 1: latency = 2 RTT + O/R K: = O/WS

TCP latency Modeling Case 1: latency = 2 RTT + O/R K: = O/WS Case 2: latency = 2 RTT + O/R + (K-1)[S/R + RTT - WS/R] Transport Layer 110

TCP Latency Modeling: Slow Start r Now suppose window grows according to slow start.

TCP Latency Modeling: Slow Start r Now suppose window grows according to slow start. r Will show that the latency of one object of size O is: where P is the number of times TCP stalls at server: - where Q is the number of times the server would stall if the object were of infinite size. - and K is the number of windows that cover the object. Transport Layer 111

TCP Latency Modeling: Slow Start (cont. ) Example: O/S = 15 segments K =

TCP Latency Modeling: Slow Start (cont. ) Example: O/S = 15 segments K = 4 windows Q=2 P = min{K-1, Q} = 2 Server stalls P=2 times. Transport Layer 112

TCP Latency Modeling: Slow Start (cont. ) Transport Layer 113

TCP Latency Modeling: Slow Start (cont. ) Transport Layer 113

Conclusion et synthèse r Protocoles de transport => de bout-en-bout m multiplexing/demultiplexing m reliable

Conclusion et synthèse r Protocoles de transport => de bout-en-bout m multiplexing/demultiplexing m reliable data transfer m flow control m congestion control r Principalement deux protocoles de transport m UDP : non fiable, seulement vérification des erreurs m TCP : fiable, contrôle de congestion, reprise sur erreurs (ACK + timeout)… r Implémentés partout Cours suivant : r On quitte la bordure du réseau (couches application et transport). . . r. . . pour entrer au coeur du réseau. Transport Layer 114

Chapter 3: Summary r principles behind transport layer services: r instantiation and implementation in

Chapter 3: Summary r principles behind transport layer services: r instantiation and implementation in the Internet m UDP m TCP Transport Layer 115