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

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

Transport Layer1 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.

Présentations similaires


Présentation au sujet: "Transport Layer1 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."— Transcription de la présentation:

1 Transport Layer1 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

2 Transport Layer2 Adresse IP

3 Transport Layer3 Origine de TCP/IP

4 Transport Layer4 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 à lexistant r Déploiement rapide r Devient standard de fait r Internet r Le Web

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

6 Transport Layer6

7 7 Larchitecture Internet

8 Transport Layer8 Larchitecture TCP/IP Larchitecture TCP/IP contient trois niveaux protocolaires : -Le niveau IP (Internet Protocol) qui est un niveau paquet. -Le niveau TCP (Transmission Control Protocol) qui regroupe les niveaux message et session. -Le niveau applicatif qui regroupe les niveaux présentation et application. Il est à noter que larchitecture TCP/IP sappuie sur des niveaux trames quelconque.

9 Transport Layer9 Réseau R1 Protocole d'accès à R1 Protocole IP Transport Réseau R2 Protocole d'accès à R2 Protocole IP Transport R1R2 Protocole IP Machine AMachine DPasserelle Architecture TCP-IP Applications standards Applications standards

10 Transport Layer10 Bordure du réseau : services r 2 types de services de transport fournis par Internet (et, plus généralement, les réseaux TCP/IP) : m Service orienté connexion m Service sans connexion r Lors de la création d'une application Internet, le développeur doit choisir l'un de ces services.

11 Transport Layer11 Bordure du réseau : service en mode connecté Objectif : Transfert de données entre terminaux r Handshake : établissement de la connexion avant le transfert de données m Échange de messages de contrôle Comme dans les protocoles humains m Pourquoi orienté connection ? Seuls les hôtes connaissent cette connexion, les routeurs l'ignorent Allocation des ressources et définition détats dans les deux hôtes r TCP - Transmission Control Protocol m Service en mode connecté sur Internet

12 Transport Layer12 Flashback Protocoles réseau : r Relient des machines r Toutes les communications sur Internet sont gouvernées par des protocoles r Les machines qui communiquent doivent utiliser le même protocole Connexion TCP req. Connection TCP réponse.

13 Transport Layer13 Bordure du réseau : service en mode connecté Service TCP [RFC 793] r 3-way handshake r Transfert de données fiable m transmission de tous les flots d'octets sans erreur et dans lordre m acquittements et retransmissions r Contrôle de flot: m Lémetteur ne submerge pas le récepteur : adaptation du débit d'émission r Contrôle de congestion : m Pour éviter de saturer les buffers des routeurs m Lémetteur réduit son débit démission quand le réseau est congestionné m Alerte pour les hôtes : plus d'acquittement des données

14 Transport Layer14 Bordure du réseau : service en mode connecté r Transport fiable, contrôle de flux et de congestion non obligatoires dans un service orienté connexion m Service orienté connexion : handshake m TCP = service de transport en mode connecté d'Internet fournit des fonctionnalités supplémentaires r Au niveau de l'application : m Connaissance des services fournis m Aucune idée de la façon dont ce service est fourni Architecture en couches

15 Transport Layer15 Bordure du réseau : service en mode non connecté Objectif : Transfert de données entre terminaux m Lobjectif ne change pas r Service en mode non connecté sur Internet = UDP - User Datagram Protocol [RFC 768] m Pas d'établissement de connexion Données émises immédiatement m Transfert de données non fiable Pas d'acquittement : on ignore si les paquets sont arrivés ou non m Pas de contrôle de flux Pas de limitation du débit d'émission m Pas de contrôle de congestion Pas de limitation du débit d'émission

16 Transport Layer16 Bordure de réseau : service en mode non connecté Applications utilisant TCP : r HTTP (WWW) r FTP (transfert de fichiers) r Telnet (login distant) r SMTP ( ) Applications utilisant UDP : r Streaming d'audio et de vidéo r Visioconférence r Téléphonie sur Internet

17 Transport Layer17 Rôle du transport

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

19 Transport Layer19 Services et protocoles de transport r Fournissent une communication logique entre des processus applicatifs sexécutant sur des hôtes différents r transport protocols run in end systems r transport vs network layer services: r network layer: data transfer between end systems r transport layer: data transfer between processes m 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

20 Transport Layer20 Principe du bout en bout r Service réseau m Modes dacheminement Circuit virtuel Datagramme m Mode non connecté et sans garantie r Robustesse m Indépendance du fonctionnement Le fonctionnement du système dextrémité nest pas lié à celui du réseau

21 Transport Layer21 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 dun message dun émetteur au récepteur m Indépendamment des réseaux qui véhiculent linformation Pas de connaissance sur les réseaux traversés r « Interface » entre les applications et le réseau r Sappuie sur des protocoles (des couches basses) pour lacheminement des données. r Deux protocoles principaux : m TCP : fiabilité, contrôle derreur, de flux, dordre m UDP : Vérification des erreurs

22 Transport Layer22 Rôle du Transport r Général m Communication inter-process m Identification des points dextrémités m Bout en bout r A la demande de l'application m Contrôle des échanges m Corriger les défauts du service réseau m Compte rendu sur la performance de la communication 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 lopérateur et offert à lutilisateur

23 Transport Layer23 Ports r Pour identifier une cible plus spécifique que ladresse IP car les datagrammes sont destinés à des process et pas au système. m PID -> trop dynamique m par un point dextré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 Numéro impair entre 1 et 1023 Utilisation dun seul port sauf BOOTP (ports 67 et 68) telnet utilise le port 23 Permettent aux clients de trouver des serveurs sans information de configuration m ephemeral Les clients utilisent des ports spécifiés dans les paquets UDP Entre 1024 et 5000 habituellement doit être unique.

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

25 Transport Layer25 Multiplexing/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 gathering data from multiple app processes, enveloping data with header (later used for demultiplexing) source port #dest port # 32 bits application data (message) other header fields TCP/UDP segment format Multiplexing:

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

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

28 Transport Layer28 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 host2 associé au TSAP n m Client sur host1 sassocie 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 dune connexion au niveau transport entre TSAP n et TSAP m m Validation

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

30 Transport Layer30 Three Way handshake r Etablissement dune connexion bidirectionnelle avec des numéros de séquence indépendants r Utilisation dun é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

31 Transport Layer31 Problèmes de transport r Perte m Temporisateur de retransmission Difficulté: dimensionnement

32 Transport Layer32 Problèmes de transport r Etablissement de connexion m Survivance AB 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 TPDU DT 1 La TPDU DT 1 est reçue sans erreur mais hors séquence Elle est gardée en attente de reséquencement Duplication Non Détéctée. TPDU DT 0 TPDU AK 2 TPDU DT 1.. La seconde TPDU DT 1 est détectée comme dupliquée Elle est écartée mais acquittée TPDU AK 2 La TPDU DT 0 ayant été reçue, l'acquittement peut se faire Perte Non Détéctée

33 Transport Layer33 Etablissement dune connexion : bilan r Envoi dun CONNECTION_REQUEST TPDU, avec possibilité de m Perte m Mémorisation m Duplication r Eviter la duplication avec m Génération dun nouveau TSAP à chaque connexion m Utilisation didentificateurs uniques de connexion (état) m Élimination des anciens (=TTL mais circulaire)

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

35 Transport Layer35 Go-Back-N Sender: r k-bit seq # in pkt header r window of up to N, consecutive unacked pkts allowed r ACK(n): ACKs all pkts up to, including seq # n - cumulative ACK m 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

36 Transport Layer36 GBN in action

37 Transport Layer37 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 unACKed pkt r sender window m N consecutive seq #s m again limits seq #s of sent, unACKed pkts

38 Transport Layer38 Selective repeat: sender, receiver windows

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

40 Transport Layer40 Selective repeat in action

41 Transport Layer41 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?

42 Transport Layer42 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 machine

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

44 Transport Layer44 Problèmes de transport r Libération m Brutale m Ordonnée Temporisateur deffacement effacement de connexion DR DC AK temporisateur de retransmission effacement de connexion utilisateur fournisseur T_DATA.ind T_DISC.req T_DATA.req absence de T_DATA.ind après le T_DISC.req Action synchronisée sur réseau non fiable AB DT3 AK6 DT8 AK10 DT4 CR5 T_CLOSE.request T_CLOSE.indication Fermeture effective de la demi-conexion CR9 T_CLOSE.request T_CLOSE.indication T_DATA.indication T_DATA.request

45 Transport Layer45 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 quune des extrémités le demande Petres possibles car plus de données acceptées après le DR

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

47 Transport Layer47 UDP

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

49 Transport Layer49 UDP: User Datagram Protocol [RFC 768] 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 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

50 Transport Layer50 Communication entre les couches process 1process nprocess 2 UDP : démultiplexage de ports port xport yport z IP

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

52 Transport Layer52 Datagrammes UDP (2) r Contrôle derreur m Optionnel en IPv4, obligatoire en IPv6 m Pseudo-header + en-tête + données m IP IP destination protocole

53 Transport Layer53 UDP checksum Sender: r treat segment contents as sequence of 16-bit integers r checksum: addition (1s 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 …. Goal: detect errors (e.g., flipped bits) in transmitted segment

54 Transport Layer54 Applications dUDP 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

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

56 Transport Layer56 TCP

57 Transport Layer57 TCP r RFC Transmission Control Protocol r 90% du trafic r Principes m Bonne utilisation des ressources du réseau m Couche de transport des systèmes dextré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 Mode connecté et commutation de paquets m Orienté flux doctets: application écrit des octets TCP émet des segments application lit des octets m Récepteur le plus simple possible -> complexité chez lémetteur interopérabilité maximum recherchée r Utilisé parTELNET, FTP, HTTP …

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

59 Transport Layer59 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, cest 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, lacquittement 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

60 Transport Layer60 Caractéristiques de TCP r Fiabilité m Num é ro de s é quence m D é tection des pertes : Aquittements positifs (ACK) du r é cepteur -> OK Pas d ACK -> timeout (temporisation) -> retransmission ACK dupliqu é m R é ordonnancement des paquets au r é cepteur m Elimination des paquets dupliqu é s m Checksum m Retransmissions : Selective repeat Go back N r Contrôle de flux par annonce de fenêtres m Fenêtre modulée par le récepteur m Inclus dans lACK 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 doccupation du réseau m Sans signalisation réseau r Orienté connexion

61 Transport Layer61 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. 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.

62 Transport Layer62 Segments r Les octets de données sont accumulés jusquau moment où TCP décide denvoyer un segment r Découpage en segment indépendant du découpage au niveau application r MSS = longueur maximale dun segment Application TCP IP Buffer démission TCP header IP header

63 Transport Layer63 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 Valeur locale m 0 à 255 : well-known m 0 à 1023 : ports système m 1024 à : ports utilisateurs r Une socket TCP : m Triplet. r Une connexion TCP : m 2 sockets.

64 Transport Layer64 BSD Sockets r Primitives pour TCP utilisées par les UNIX BSD m SOCKET (création dun nouveau point terminal) m BIND (attache une adresse à la socket) m LISTEN (acceptation des connexions avec file dattente) 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 dune connexion) m CLOSE (terminaison dune connexion) r Serveur : SOCKET -> BIND -> LISTEN -> ACCEPT … [SEND, RECEIVE]… -> CLOSE r Client : SOCKET –> BIND -> CONNECT … [SEND, RECEIVE]…-> CLOSE

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

66 Transport Layer66 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 m Ajuster le débit démission à la bande passante

67 Transport Layer67 Vie dune Connexion r Si deux processus désirent communiquer, établissement dune connexion TCP r Internet => best effort 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 dune connexion m Transfert de données m Fermeture de la connexion

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

69 Transport Layer69 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

70 Transport Layer70 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 dinformation transporté m Le premier octet transporté est alors ISN+1 m ISN est généralement dérivé de lhorloge de lhôte

71 Transport Layer71 Exemple

72 Transport Layer72 Libération de la connexion r Normale m Fin demandée par lune 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

73 Transport Layer73 Automate TCP CLOSED LISTEN Listen/- Close/- RST/- SYN/SYN+ACKSimultaneous open ESTABLISHED ACK/- SYN+ACK/ACK CLOSE/FIN FIN WAIT 1 FIN WAIT 2 CLOSING TIME WAIT ACTIVE CLOSE FIN/ACK FIN+ACK/ACK ACK/- FIN/ACK ACK/- CLOSE WAIT LAST ACK PASSIVE CLOSE CLOSE/FIN FIN/ACK SYN RCVDSYN SENT Connect/SYN Close/- Send/SYN SYN/SYN+ACK ACK/- CLOSED Timeout/-

74 Transport Layer74 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) Acknowledgement + Advertised Window SenderReceiver

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

76 Transport Layer76 Contrôle de flux TCP 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 Transmis et acquitté Transmis non acquitté Non transmisNon transmissible Fenêtre annoncée

77 Transport Layer77 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

78 Transport Layer78 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 dACK. r Lémetteur fait glisser la fenêtre sur réception dun 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 émetteurrécepteur DATA 6 DATA 1 DATA 2 DATA 3 DATA 4 DATA fenêtre glissante ACK2

79 Transport Layer79 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 lenvoi de petits segments m Soit PUSH positionné soit on a au moins ½ de la fenêtre à envoyer

80 Transport Layer80 Fiabilité avec Go-back-N r Fenêtre danticipation r Détection derreurs par lémetteur r Retransmission continue (go-back-n) ou sélective (stockage en désordre) AB ACK2 DT2 DT3 DT4 ACK3 DT0 DT1 DT3

81 Transport Layer81 La reprise sur erreurs r Exemples m Paquet 2 perdu: 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 émetteurrécepteur DATA 1 DATA 2 DATA 3 DATA 4 DATA 5 ACK2 T DATA 2 ACK6 émetteur récepteur DATA 1 DATA 2 DATA 3 DATA 4 DATA 5 ACK2 ACK3 ACK4

82 Transport Layer82 SenderReceiver Segment 1 (seq. 1000) 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 Receive ACK 1500 which does not slide the window Timeout -> retransmission Of segment 2 Receives one of the frames and replies with ACK 1500 Exemple de reprise sur erreurs

83 Transport Layer83 TCP: retransmission scenarios Host A Seq=92, 8 bytes data ACK=100 loss timeout time lost ACK scenario Host B X Seq=92, 8 bytes data ACK=100 Host A Seq=100, 20 bytes data ACK=100 Seq=92 timeout time premature timeout, cumulative ACKs Host B Seq=92, 8 bytes data ACK=120 Seq=92, 8 bytes data Seq=100 timeout ACK=120

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

85 Transport Layer85 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

86 Transport Layer86 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 dinactivité m Vérifie la présence de lautre extrémité r Temporisateur de déconnexion m Deux fois la durée de vie des paquets

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

88 Transport Layer88 Ajustement des timeouts : Contrôle derreur 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 lestimation 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

89 Transport Layer89 Ajustement des timeouts: Contrôle derreur r Temporisateur de retransmission adaptatif m Mesure de RTT et en déduire une estimation r Mesure du RTT m Cas derreurs m Actions: pas de mesure de RTT quand il y a eu une retransmission Doublement de la valeur du temporisateur après chaque retransmission Algorithme Err = SampleRTT - EstRTT EstRTT = EstRTT + ( x Err) Var = Var + (|Err| - Var) Prise en compte de la variance Temporisateur = x EstRTT + x Var Où = 1 et = 4

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

91 Transport Layer91 TCP Round Trip Time and Timeout EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT r Exponential weighted moving average r influence of given sample decreases exponentially fast r typical value of x: 0.1 Setting the timeout EstimtedRTT plus safety margin large variation in EstimatedRTT -> larger safety margin Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x*|SampleRTT-EstimatedRTT|

92 Transport Layer92 TCP congestion control: r two phases m slow start m congestion avoidance r important variables: Congwin threshold: defines threshold between two slow start phase, congestion control phase rprobing for usable bandwidth: 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

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

94 Transport Layer94 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

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

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

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

98 Transport Layer98 Causes/costs of congestion: scenario 3 Another cost of congestion: r when packet dropped, any upstream transmission capacity used for that packet was wasted!

99 Transport Layer99 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 Two broad approaches towards congestion control:

100 Transport Layer100 Contrôle de congestion TCP r Conservation des paquets m Ne pas injecter un nouveau paquet tant quun vieux nest pas sorti du réseau nombre de paquets en transit constant m Synchronisation sur les acquittements: auto- synchronisation r Trouver le point de synchronisation m Utilisation dune 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 congestion

101 Transport Layer101 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 lindication de la perte dun paquet m Suppression de congestion en réduisant la fenêtre r Algorithme m phase 1: slow start Après une perte détectée par expiration de temporisation m phase 2: congestion avoidance m En cas de perte: réduction de la taille de la fenêtre et récupération m Récupération : fast recovery Après une perte détectée par retransmission rapide (fast retransmit)

102 Transport Layer102 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.

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

104 Transport Layer104 Congestion avoidance r Pour stopper laugmentation trop rapide (le slow start est exponentiel) r À partir dun seuil : augmentation de 1 segment à chaque RTT r Le seuil vaut la moitié de la fenêtre lors de la dernière congestion

105 Transport Layer105 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 m 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) r Avant ces mécanismes : simple-pre-vj.nam r Lancer nam (multiplicative decrease) ici Lancer nam (multiplicative decrease) ici r Lancer simple.avi ici ou nam (simple.nam) Lancer simple.avi ici

106 Transport Layer106 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 Lancer biais.avi

107 Transport Layer107 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)

108 Transport Layer108 Fast retransmit r Modification de congestion avoidance m 3 DUPACKs -> paquet supposé perdu et donc retransmission m Après la transmission, tout continue normalement (on attend pas dACK) 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 Lancer nam ici

109 Transport Layer109 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 Lancer nam ici r Comparaison avec drop tail

110 Transport Layer110 Delayed ACKs r Possibilité dacquitter plusieurs paquets dun coup r Lancer nam ici Lancer nam ici

111 Transport Layer111 Contrôle de congestion r Evolution de cwnd

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

113 Transport Layer113 Segment TCP Port source (16 bits) : le numéro de port de la source. Port Destination (16 bits) : Le numéro de port du destinataire. 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. 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é.

114 Transport Layer114 Segment TCP 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éservé (6 bits) : réservés pour usage futur. Doivent nécessairement être à 0. 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 Fenêtre (16 bit): le nombre d'octets à partir de la position marquée dans l'accusé de réception que le récepteur est capable de recevoir.

115 Transport Layer115 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 (65535o avec entête TCP, MTU) r Un segment doit tenir dans le MTU m Pour IPv4, la MTU minimale est 556 octets (payload TCP de 536 octets)

116 Transport Layer116 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

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

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

119 Transport Layer119 TCP latency modeling Q: How long does it take to receive an object from a Web server after sending a request? r TCP connection establishment r data transfer delay Notation, assumptions: r Assume one link between client and server of rate R r Assume: fixed congestion 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 windows worth of data sent r WS/R < RTT + S/R: wait for ACK after sending windows worth of data sent

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

121 Transport Layer121 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.

122 Transport Layer122 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.

123 Transport Layer123 TCP Latency Modeling: Slow Start (cont.)

124 Transport Layer124 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.

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


Télécharger ppt "Transport Layer1 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."

Présentations similaires


Annonces Google