Problèmes haut débit
Transcription
Problèmes haut débit
Réseaux Haut Débit : où est le maillon faible ? Années 1980 LAN 10 Mb/s mais WAN ~ 100 Kb/s Années 2000 LAN 100 M, 1G, 10G ou + , WAN 2,5Gb/s, 10G , … IEEE 802.3ba : étude de ethernet 40G (LAN) et 100G (WAN) Exemple Renater5 (ouvert 2008) Liaisons à 10G Fibres noires pour Grilles de calcul (WDM) RHD 2009 1 RHD 2009 2 •Haut débit : niveau physique • Niveau physique : fibre • 10 Giga et au delà • Multiplexage en longueur d’onde • WDM, DWDM • par exemple 10 Giga par λ • très grandes distances • câbles transocéaniques • => très grands progrès • pas le facteur limitatif RHD 2009 3 Haut Débit niveaux 2 et 3 Commutateurs Giga ethernet Catalyst 3560 24 10/100/1000T + 4 SFP : 4800 $ (niveau 2) 7000 $ (niveau 2/3) Routeurs haute performance Juniper M160 Chassis 50 000 $ carte OC192/sonet (1 port 10G) 335 000 $ carte routage 20 000 $ carte 2 ports 1 G 43 000 $ Cisco 12816 (jusqu’à 16 slots à 40G) Cisco 12816 chassis $217,500 Cisco 12816 1280Gbps Switch Fabric Card $45,000 Cisco 12000 1-Port 10GE Card, 1550nm $165,000 => limiter le nombre de routeurs (VLAN) RHD 2009 4 Comment commuter à haut-débit ? accélérer le « routage » meilleurs algorithmes de « longest match » MPLS accélérer la commutation elle-même switch fabric bus, cross connect, anneau, … sans blocage = la commutation interne ne ralentit pas pas toujours vérifié si on avait 24 ports 1G sur un bus à 10G ? nécessite que débit fabric >> ∑ débit lignes RHD 2009 5 Switch simple Ex : routeur PC architecture simple accès mémoire simultanés bus IO de débit > somme débits interfaces double copie des paquets cartes interfaces simples process centralisé amélioré si DMA carte => mémoire RHD 2009 6 cartes « intelligentes » RHD 2009 7 Cartes intelligentes (2) buffers, FIB, calculs distribués sur les cartes accès direct carte à carte limitation : accès au bus débit concurrence CPU signalisation (proto routage => RIB) contrôle cartes, charge FIBs opérations + complexes (tunnels, …) RHD 2009 8 CEF cisco express forwarding RHD 2009 9 dCEF Distributed CEF (doc cisco) RHD 2009 10 Switch haute performance RHD 2009 11 Switch haute performance(2) « switch fabric » circuit de commutation circuit à N entrées et N sorties entrée (et sortie) des paquets en // remarque : systèmes « crossbar » en téléphonie plus simple si petits paquets de taille fixe voir ATM que se passe-t-il si 2 paquets pour la même sortie (contention) ? RHD 2009 12 Ex : crossbar avec arbitre et buffer si plusieurs demandes pour même sortie arbitre sélectionne autres paquets : buffer coûteux NxN buffers RHD 2009 13 N bus broadcast Paquet contient adresse sortie Analogue ethernet … RHD 2009 14 switch et blocage 2 types de blocage dans le switch en sortie Solutions surcapacité du switch (ou switchs //) buffers contrôle (arbitre => buffers en entrée) RHD 2009 15 Switchs cascadés Elément de base 2x2 Si adresse 0 => haut sinon bas si conflit : buffer RHD 2009 -Eléments de base cascadés -utilisent bits successifs adresse 16 Ex : Banyan (self routing) 000 100 X 001 110 contention interne ou en sortie possible RHD 2009 17 Solutions Buffering dans cellules intermédiaires coûteux réservation du chemin solutions basées sur le tri des entrées Batcher Banyan : pas de contention interne tri (Batcher sort) détection doublons (conflits de sortie : trap) doublons réinjectés à l’entrée mélange (shuffle exchange) Banyan RHD 2009 18 Tri par fusion 1 3 4 6 1 2 2 4 3 2 3 4 4 5 5 2 5 7 5 6 7 6 8 6 7 8 RHD 2009 19 exemple composite Batcher-Banyan RHD 2009 20 Où mettre les buffers ? en entrée ? RHD 2009 21 Buffers en entrée le switch n’a pas besoin d’être plus rapide que les liens de sortie arbitre gère les conflits de sortie problème du Head of Line Blocking HoL si la tête de la file bloquée (= sortie occupée) => paquets suivants dans la file bloqués même si leur sortie est libre RHD 2009 22 Buffers en sortie RHD 2009 23 Buffers en sortie Très courant permet de gérer les flux concurrents pour une sortie = utilisation lien sortant Pas de HoL blocking Buffers doivent être rapides pour ne pas bloquer les entrées au pire N fois vitesse de ligne RHD 2009 24 Buffers partagés adresses transmises par switch données en mémoire double accès RHD 2009 25 Solutions hybrides buffers en entrée et en sortie et/ou dans la fabric complexes à analyser utilisées en pratique RHD 2009 26 Cas particulier : multicast Eviter recopies multiples bus en broadcast adaptés augmente le risque de blocage dans les switchs RHD 2009 27 RHD 2009 28 RHD 2009 29 Structure switch fabric cisco (12000) RHD 2009 30 Files virtuelles en entrée => évite HoL blocking Possibilité de plusieurs switch fabrics fonctionnent en parallèle augmentent débit Ex : Cisco 12816 switch permet 40 G Full Duplex sur chaque carte interface (slot) 16 slots => 1,28 Tb/s utilisé même pour ré-émission même carte (équitable) http://www.cisco.com/en/US/products/hw/routers/ps167/products_tech_note09186a00801e1dc1.shtml RHD 2009 31 Archi routeur cisco FIB (Forwarding base) distributed CEF (Cisco Express Forwarding) • paquets segmentés en cellules de 44 octets + entête pour fabric (analogue ATM) • RP (Route Processor) • reçoit/envoie messages routage • calcule RIB • envoie FIB/CEF aux cartes • rem : peux prendre du temps ~ centaines ms • le tout via fabric RHD 2009 32 Arrivée paquet cisco 12000 engine 2 7 émission cellules vers fabric 1 par 1 6 requête fabric 5 paquet fragmenté en cellules 4 paquets dans CEF 3 mise en file virtuelle 2 consultation CEF dans PSA (Packet Switching Asic) 1 arrivée trame RHD 2009 33 Emission paquet 8 arrivée des cellules 9 allocation buffer/réassemblage 10 mise en file de sortie (ou drop) 11 émission RHD 2009 34 Haut débit Et la couche transport ? limitations de TCP ? limitations des systèmes ? RHD 2009 35 La couche transport session session service de bout en bout transport transport réseau (A) réseau réseau réseau (B) liaison liaison liaison liaison physique physique physique physique extrémité 1 lien 1 routeur 1 lien 2 routeur 2 RHD 2009 lien 3 extrémité 2 36 TCP (Transmission Control Protocol) Décrit dans les RFC 793, 1122, 1323, … constante évolution Modèle de service TCP orienté connexion, bidirectionnelle fiable : gère les pertes, remet les données dans l’ordre assure un contrôle de flux entre émetteur et récepteur une connexion TCP est identifiée par deux extrémités (adresses des sockets émetteur et destinataire) les données sont véhiculées sous forme de flots d’octets pas de délimitation des messages de bout en bout équivalent d’un tube Unix il existe un service de données urgentes assure (implicitement) contrôle de congestion d’Internet RHD 2009 37 TCP : principes un message TCP (segment) est transmis dans un paquet IP tout octet de données transmis sur une connexion TCP est référencé par un n° de séquence (32 bits) un message TCP est formé d’un en-tête d’au moins 20 octets suivi éventuellement d’options et de données la taille d’un segment est limitée par : la charge utile d’IP (maximum 65 535 octets) le «Path MTU discovery » peut être mis en oeuvre par TCP pour éviter la fragmentation la fragmentation ralentit beaucoup la transmission TCP utilise une fenêtre d’anticipation en émission fenêtre de taille variable (contrôle de flux et congestion) et éventuellement en réception (SACK) l’entité réceptrice acquitte avec le n° du prochain octet attendu (ACK cumulatif) RFC 1106 implémente la retransmission sélective RHD 2009 38 Format entête TCP bits 0 31 Port Source Port Destination Numéro Séquence Numéro Acquittement Taille entête et flags Fenêtre W Checksum Pointeur Urgent Options éventuelles + bourrage Données éventuelles (nb entier d’octets) RHD 2009 39 Entête TCP : signification taille de fenêtre W (16 bits) : contrôle de flux explicite si = 0 : blocage de l’émetteur si > 0 : indique combien d’octets peuvent être transmis à partir de N° Acquittement option : certaines options utilisées à la connexion (négociation des capacités) d’autres utilisées en cours de connexion RHD 2009 40 Exemples d’options MSS (Maximum Segment Size) : taille maximale que l’entité TCP peut recevoir dans son tampon (minimum du MSS des deux extrémités). le MSS est l’unité de mesure de la fenêtre de congestion Window scale permet d’augmenter la taille de la fenêtre Timestamp : horodatage Possibilité de retransmission sélective (SACK accepted) RHD 2009 41 Transfert de données (1) Transfert bidirectionnel simultané Transfert de données la gestion des fenêtres d’anticipation est liée : aux réceptions d’acquittements au rythme de lecture / écriture des applications L’émetteur peut envoyer les octets compris entre dernier N° ACK reçu et dernier N°ACK reçu + dernier W reçu W permet donc au récepteur de ralentir émetteur W = « crédit émission » RHD 2009 42 Transfert de données (2) Fiabilité récepteur accepte dans l’ordre et acquitte émetteur arme délai de retransmission RTO associé au plus ancien octet non acquitté si RTO se déclenche : retransmission (continue) Efficacité dépend estimation RTO très variable suivant connexion principe RTT calculé pour chaque paquet acquitté : dernierRTT NouveauRTT = a*AncienRTT + (1-a)*dernierRTT RTO = b * NouveauRTT (0 < a < 1, b > 1) algo de Karn : ne pas tenir compte paquets retransmis RHD 2009 43 Exemple échange Syn, S=100,A=0,W=4000 Syn,Ack, S=250, A=101, W=2000 Ack, S=101,A=251,W=4000,(1000) S=1101,A=251,(1000) (attente) S=2101,A=1751,W=4000,(1000) S=3101,A=1751,W=4000,(1000) bloqué S=251,A=1101,W=1000,(1500) S=1751,A=2101,W=2000,(0) X perte S=1751,A=2101,W=2000,(0) (pas accepté) Retransmission timeout (RTO) S=2101,A=1751,W=4000,(1000) RHD 2009 44 Contrôle de flux (1) Débit avec TCP standard W < 64 Ko (souvent moins : paramètre système) au plus W par RTT Ex : RTT = 1ms (LAN) Esplanade Illkirch ~0,8 ms 64Ko /ms => 64 Mo/s ~500 Mb/s RTT = 640ms (satellite) 64 Ko / 640 ms ~800 Kb/s intérêt du paramètre Wscale (Window scale) Wscale = n => multiplie W par 2n RHD 2009 45 Wscale Analyse des flux Osiris <=> Renater - trace de 15’ - sur plus de 435 000 connexions - moins de 126 000 utilisent option wscale - 60 000 wscale > 0 RHD 2009 46 Contrôle de flux (2) Emetteur bloqué dans 2 cas W = 0 (récepteur saturé) => attendre de recevoir segment avec W >0 La fenêtre d’émission est pleine W octets envoyés et non encore acquittés si perte d’un Ack : attendre Ack suivant (cumulatif) si perte données : attendre RTO et retransmettre si aucune erreur : attendre Ack (au plus RTT) peut indiquer que W trop petit RHD 2009 47 Contrôle de flux (3) Exemple (Mac OS) paramètres TCP sudo sysctl -a | grep net.inet.tcp.*space net.inet.tcp.sendspace: 32768 net.inet.tcp.recvspace: 32768 fenêtres limitées à 32 Ko RTT 1ms => ~256 Mb/s RTT 100 ms => 2,56 Mb/s peut être changé, ex : sudo sysctl -w kern.ipc.maxsockbuf=2000000 sysctl -w net.inet.tcp.sendspace=500000 sysctl -w net.inet.tcp.recvspace=500000 RHD 2009 48 Contrôle de congestion Dans Internet, contrôle distribué dans les stations émettrices TCP s’en charge, en diminuant le débit des données émises =>TCP fait varier dynamiquement la taille de la fenêtre d’émission perte (et retransmission) interprété par TCP comme congestion dans le réseau => TCP surveille les temporisateurs de retransmission pour détecter une congestion TCP gère deux fenêtres : « fenêtre de contrôle de flux » : relative à la capacité du récepteur (paramètre W) « fenêtre de congestion » : relative à la capacité du réseau (paramètre CW) => le nombre d’octets qui peut être envoyé doit être le minimum de ces fenêtres FE = min (W, CW) RHD 2009 49 Contrôle de congestion (2) TCP basique (Tahoe, années 80) Débit initial : doit être faible (capacité réseau inconnue) La fenêtre de congestion CW est mesurée en MSS algorithme du « démarrage lent » (Jacobson 88) à l’établissement de la connexion, CW = 1 émetteur envoie un segment de taille maximum à chaque acquittement sans timeout, CW = CW +1 => à chaque RTT sans perte CW double (croissance exponentielle) CW est limité à W => si W faible CW n’augmente plus Lors d’une retransmission (Timeout) considère qu’il s’agit d’une congestion redémarre en slow start avec CW = 1 RHD 2009 50 Contrôle de congestion (3) Tahoe (suite) Pour éviter les oscillations quand la fenêtre CW atteint un seuil S on augmente CW de 1 par RTT (au lieu de 1 par ACK) augmentation linéaire phase d’évitement de congestion Calcul de S : initialement S = Wmax (64 Ko ou limite système) à chaque retransmission sur timeout (= congestion) on prend S égal à la moitié du dernier CW S := CW/2 CW := 1 RHD 2009 51 Pertes aux temps 4, 13, 24, 36 RHD 2009 52 Contrôle de congestion (4) Si perte, attente RTO : peu efficace « fast retransmit » (TCP Reno) Si 3 Ack dupliqués 3 paquets sont arrivés après un « trou » réseau congestionné mais « pas trop » fast retransmit (RFC 2581) retransmettre toiut de suite sans attendre timeout Fast recovery : ne pas repasser CW à 1 S := CW/2 CW := S évitement de congestion si Timeout S := CW/2 CW := 1 slow start RHD 2009 53 Perte et triple ACK au temps 4, 10,19,Timeout au temps 26 RHD 2009 54 Retransmission sélective Nouveau mécanisme introduit RFC2018 négocié à la connexion option SACK_permitted si récepteur détecte une perte N° Seq segment reçu > N° Seq segment attendu récepteur envoie Ack avec option SACK : contient n fois (début, fin) indique réception de n blocs « isolés » évite retransmission continue permet de déclencher le fast retransmit/recovery RHD 2009 55 Fenêtres : synthèse Côté émetteur Ni DA S1 DE Envoyé Envoyé et acquitté non tous acquitté DA +FE Peut être envoyé si DE < DA + FE Ni : Numéro initial choisi par l’émetteur DA : dernier N° Ack reçu S1 : segment acquitté par SACK DE : dernier octet envoyé FE: fenêtre émission, min(W, CW) A chaque acquittement DA avance FE est recalculé RHD 2009 56 Fenêtres : synthèse (2) Côté récepteur Ni Reçu et acquitté PA S1 S2 PA + W Peuvent être acceptés Ni : Numéro initial choisi par l’émetteur PA : Prochain attendu = dernier N° Ack envoyé W : Fenêtre réception (fonction des capacités) S1, S2 blocs reçus dans le désordre (SACK éventuel) non encore fournis à l’application A chaque segment attendu reçu PA avance W est éventuellement recalculé Acquittement éventuellement envoyé RHD 2009 57 TCP : conclusion Protocole stable amélioration algo retransmission/congestion Optimisation pour réseaux très haut débit Wscale, SACK Manque d’efficacité si réseau peu fiable perte ≠ congestion Exemple : réseaux sans fil RHD 2009 58 TCP et haut débit Problème des Long Fat Pipe Formule de Mathis (approchée, avec TCP Reno) calcul des « dents de scie » Si bande passante pas limitée par W BP < MSS * C / (RTT * √p ) où p est la probabilité de perte de paquet Ex MSS = 1500o, RTT = 100 ms, p = 1% BP < 1500 * 8 * C /(0,1 * racine (0,01)) = 1,2 Mb/s (en prenant C = 1) Si p = 0,0001, BP < 12 Mb/s RHD 2009 59 TCP et haut débit fiabilité RTT : limiter les routeurs : commutateurs vitesse du signal : pas de gain possible (vitesse lumière) Augmenter le MSS réseaux spécialisés avec MSS > 1500 octets exemple myrinet proposition de jumbo frame (pb de compatibilité) Améliorer retransmission TCP (dents de scie) A défaut régler taille fenêtres ouvrir connexions parallèles ( ~ multiplie le MSS) RHD 2009 60 sources Renater http://www.renater.fr/spip.php?rubrique12 Switching An engineering approach to computer networking, S. Keshav, Addison-Wesley Architecture CRS1 documentation cisco http://www.cisco.com/en/US/products/ps5763/index.html TCP les RFC RHD 2009 61