réseaux haut débit : où est le maillon faiblepansiot/enseignement/rhd/haut-debit.pdf ·...
TRANSCRIPT
RHD 2009 1
Réseaux Haut Débit :où est le maillon faible ?
Années 1980LAN 10 Mb/s mais WAN ~ 100 Kb/s
Années 2000LAN 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 à 10GFibres noires pour Grilles de calcul (WDM)
RHD 2009 2
RHD 2009 3
•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 4
Haut Débit niveaux 2 et 3Commutateurs Giga ethernet
Catalyst 3560 24 10/100/1000T + 4 SFP :4800 $ (niveau 2) 7000 $ (niveau 2/3)
Routeurs haute performanceJuniper 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,500Cisco 12816 1280Gbps Switch Fabric Card $45,000Cisco 12000 1-Port 10GE Card, 1550nm $165,000
=> limiter le nombre de routeurs (VLAN)
RHD 2009 5
Comment commuter à haut-débit ?
accélérer le « routage »meilleurs algorithmes de « longest match »MPLS
accélérer la commutation elle-mêmeswitch 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 6
Switch simpleEx : routeur PC
architecture simpleaccès mémoire simultanésbus IO de débit > somme débits interfacesdouble copie des paquetscartes interfaces simplesprocess centraliséamélioré si DMA carte => mémoire
RHD 2009 7
cartes « intelligentes »
RHD 2009 8
Cartes intelligentes (2)buffers, FIB, calculs
distribués sur les cartesaccès direct carte à cartelimitation : accès au bus
débitconcurrence
CPUsignalisation (proto routage => RIB)contrôle cartes, charge FIBsopérations + complexes (tunnels, …)
RHD 2009 9
CEF cisco express forwarding
RHD 2009 10
dCEF Distributed CEF (doc cisco)
RHD 2009 11
Switch haute performance
RHD 2009 12
Switch haute performance(2)
« switch fabric »circuit de commutationcircuit à N entrées et N sortiesentrée (et sortie) des paquets en //
remarque : systèmes « crossbar » en téléphonie
plus simple si petits paquets de taille fixevoir ATM
que se passe-t-il si 2 paquets pour la même sortie (contention) ?
RHD 2009 13
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 14
N bus broadcast
Paquet contient adresse sortieAnalogue ethernet …
RHD 2009 15
switch et blocage
2 types de blocagedans le switchen sortie
Solutionssurcapacité du switch (ou switchs //)bufferscontrôle (arbitre => buffers en entrée)
RHD 2009 16
Switchs cascadés
Elément de base 2x2Si adresse 0 => haut
sinon bassi conflit :
buffer
-Eléments de basecascadés
-utilisent bitssuccessifs adresse
RHD 2009 17
Ex : Banyan (self routing)
contention interne ou en sortie possible
000
100
110001
X
RHD 2009 18
Solutions
Buffering dans cellules intermédiairescoûteux
réservation du cheminsolutions basées sur le tri des entréesBatcher Banyan : pas de contention interne
tri (Batcher sort)détection doublons (conflits de sortie : trap)
doublons réinjectés à l’entréemélange (shuffle exchange)Banyan
RHD 2009 19
Tri par fusion
31
46
2
5
7
8
1
34
6
2
57
8
2
4
5
6
2
3
4
5
7
6
RHD 2009 20
exemple composite
Batcher-Banyan
RHD 2009 21
Où mettre les buffers ?
en entrée ?
RHD 2009 22
Buffers en entrée
le switch n’a pas besoin d’être plus rapide que les liens desortie
arbitre gère les conflits de sortieproblè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ésmême si leur sortie est libre
RHD 2009 23
Buffers en sortie
RHD 2009 24
Buffers en sortie
Très courantpermet de gérer les flux concurrents
pour une sortie = utilisation lien sortantPas de HoL blockingBuffers doivent être rapides
pour ne pas bloquer les entréesau pire N fois vitesse de ligne
RHD 2009 25
Buffers partagés
adresses transmises par switchdonnées en mémoire double accès
RHD 2009 26
Solutions hybrides
buffers en entrée et en sortieet/ou dans la fabric
complexes à analyserutilisées en pratique
RHD 2009 27
Cas particulier : multicast
Eviter recopies multiplesbus en broadcast adaptésaugmente le risque de blocage dans les switchs
RHD 2009 28
RHD 2009 29
RHD 2009 30
Structure switch fabric cisco (12000)
RHD 2009 31
Files virtuelles en entrée=> évite HoL blocking
Possibilité de plusieurs switch fabricsfonctionnent en parallèleaugmentent débitEx : Cisco 12816 switch permet40 G Full Duplex sur chaque carte interface (slot)
16 slots => 1,28 Tb/sutilisé 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 32
Archi routeur ciscoFIB (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 33
Arrivée paquet cisco 12000engine 2
7 émission cellules vers fabric 1 par 16 requête fabric5 paquet fragmenté en cellules4 paquets dans CEF3 mise en file virtuelle 2 consultation CEF dans PSA (Packet Switching Asic)1 arrivée trame
RHD 2009 34
Emission paquet
8 arrivée des cellules
9 allocation buffer/réassemblage
10 mise en file de sortie (oudrop)
11 émission
RHD 2009 35
Haut débitEt la couche transport ?
limitations de TCP ?limitations des systèmes ?
RHD 2009 36
La couche transport
transport
réseau (A)
liaison liaison
réseau
liaison liaison
réseau réseau (B)
transport
physique physique physiquephysique
extrémité 1 lien 1 routeur 1 lien 2 routeur 2 lien 3 extrémité 2
sessionsession
service de bout en bout
RHD 2009 37
TCP (Transmission Control Protocol)Décrit dans les RFC 793, 1122, 1323, …
constante évolution Modèle de service TCP
orienté connexion, bidirectionnellefiable : gère les pertes, remet les données dans l’ordreassure un contrôle de flux entre émetteur et récepteurune 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 38
TCP : principes
un message TCP (segment) est transmis dans un paquet IPtout 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éesla 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 fragmentationla fragmentation ralentit beaucoup la transmission
TCP utilise une fenêtre d’anticipation en émissionfenê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 39
Format entête TCP
Données éventuelles (nb entier d’octets)
Options éventuelles + bourrage
Pointeur UrgentChecksum
Fenêtre WTaille entête et flags
Numéro Acquittement
Numéro Séquence
Port DestinationPort Source
bits 0 31
RHD 2009 40
Entête TCP : signification
taille de fenêtre W (16 bits) : contrôle de flux explicitesi = 0 : blocage de l’émetteursi > 0 : indique combien d’octets peuvent être
transmis à partir de N° Acquittementoption :
certaines options utilisées à la connexion (négociationdes capacités)
d’autres utilisées en cours de connexion
RHD 2009 41
Exemples d’options
MSS (Maximum Segment Size) : taille maximale quel’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 decongestion
Window scalepermet d’augmenter la taille de la fenêtre
Timestamp : horodatagePossibilité de retransmission sélective (SACK
accepted)
RHD 2009 42
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’acquittementsau rythme de lecture / écriture des applications
L’émetteur peut envoyer les octets compris entredernier N° ACK reçuetdernier N°ACK reçu + dernier W reçu
W permet donc au récepteur de ralentir émetteurW = « crédit émission »
RHD 2009 43
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 RTOtrès variable suivant connexion
principeRTT calculé pour chaque paquet acquitté : dernierRTTNouveauRTT = a*AncienRTT + (1-a)*dernierRTTRTO = b * NouveauRTT (0 < a < 1, b > 1)algo de Karn : ne pas tenir compte paquets retransmis
RHD 2009 44
Exemple échangeSyn, 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) S=251,A=1101,W=1000,(1500) (attente)S=2101,A=1751,W=4000,(1000) S=1751,A=2101,W=2000,(0)
S=3101,A=1751,W=4000,(1000) pertebloqué S=1751,A=2101,W=2000,(0) (pas accepté)
Retransmission timeout (RTO)S=2101,A=1751,W=4000,(1000)
X
RHD 2009 45
Contrôle de flux (1)
Débit avec TCP standardW < 64 Ko (souvent moins : paramètre
système)au plus W par RTTEx :
RTT = 1ms (LAN) Esplanade Illkirch ~0,8 ms64Ko /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 46
WscaleAnalyse 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 47
Contrôle de flux (2)
Emetteur bloqué dans 2 casW = 0 (récepteur saturé)
=> attendre de recevoir segment avec W >0
La fenêtre d’émission est pleineW octets envoyés et non encore acquittés
si perte d’un Ack : attendre Ack suivant (cumulatif)si perte données : attendre RTO et retransmettresi aucune erreur : attendre Ack (au plus RTT)
peut indiquer que W trop petit
RHD 2009 48
Contrôle de flux (3)
Exemple (Mac OS)paramètres TCP
sudo sysctl -a | grep net.inet.tcp.*spacenet.inet.tcp.sendspace: 32768net.inet.tcp.recvspace: 32768
fenêtres limitées à 32 KoRTT 1ms => ~256 Mb/sRTT 100 ms => 2,56 Mb/s
peut être changé, ex :sudo sysctl -w kern.ipc.maxsockbuf=2000000sysctl -w net.inet.tcp.sendspace=500000sysctl -w net.inet.tcp.recvspace=500000
RHD 2009 49
Contrôle de congestionDans 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’émissionperte (et retransmission)
interprété par TCP comme congestion dans le réseau=> TCP surveille les temporisateurs de retransmission pour
détecter une congestionTCP gère deux fenêtres :
« fenêtre de contrôle de flux » : relative à la capacité durécepteur (paramètre W)
« fenêtre de congestion » : relative à la capacité duréseau (paramètre CW)
=> le nombre d’octets qui peut être envoyé doit être leminimum de ces fenêtres
FE = min (W, CW)
RHD 2009 50
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 MSSalgorithme 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 congestionredémarre en slow start avec CW = 1
RHD 2009 51
Contrôle de congestion (3)
Tahoe (suite)Pour éviter les oscillations
quand la fenêtre CW atteint un seuil Son augmente CW de 1 par RTT (au lieu de 1 par ACK)augmentation linéairephase 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 CWS := CW/2CW := 1
RHD 2009 52
Pertes aux temps 4, 13, 24, 36
RHD 2009 53
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 timeoutFast recovery : ne pas repasser CW à 1S := CW/2 CW := S
évitement de congestion
si TimeoutS := CW/2CW := 1
slow start
RHD 2009 54
Perte et triple ACK au temps 4, 10,19,Timeout au temps 26
RHD 2009 55
Retransmission sélective
Nouveau mécanisme introduit RFC2018négocié à la connexion
option SACK_permitted
si récepteur détecte une perteN° Seq segment reçu > N° Seq segment attendurécepteur envoie Ack avec
option SACK : contient n fois (début, fin)indique réception de n blocs « isolés »
évite retransmission continuepermet de déclencher le fast retransmit/recovery
RHD 2009 56
Fenêtres : synthèseCôté émetteur
Ni DA S1 DE DA +FE
Ni : Numéro initial choisi par l’émetteurDA : dernier N° Ack reçuS1 : segment acquitté par SACKDE : dernier octet envoyéFE: fenêtre émission, min(W, CW)A chaque acquittement
DA avanceFE est recalculé
Envoyé Envoyé Peut être envoyéet acquitté non tous acquitté si DE < DA + FE
RHD 2009 57
Fenêtres : synthèse (2)Côté récepteur
Ni PA S1 S2 PA + W
Ni : Numéro initial choisi par l’émetteurPA : 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’applicationA chaque segment attendu reçu
PA avanceW est éventuellement recalculéAcquittement éventuellement envoyé
Reçu et Peuvent être acceptésacquitté
RHD 2009 58
TCP : conclusionProtocole stable
amélioration algo retransmission/congestion
Optimisation pour réseaux très haut débitWscale, SACK
Manque d’efficacité si réseau peu fiableperte ≠ congestionExemple : réseaux sans fil
RHD 2009 59
TCP et haut débitProblè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 WBP < MSS * C / (RTT * √p )où p est la probabilité de perte de paquetEx 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 60
TCP et haut débitfiabilitéRTT : limiter les routeurs : commutateurs
vitesse du signal : pas de gain possible (vitesse lumière)
Augmenter le MSSréseaux spécialisés avec MSS > 1500 octetsexemple myrinetproposition de jumbo frame (pb de compatibilité)
Améliorer retransmission TCP (dents de scie)A défaut
régler taille fenêtresouvrir connexions parallèles ( ~ multiplie le MSS)
RHD 2009 61
sourcesRenater
http://www.renater.fr/spip.php?rubrique12Switching
An engineering approach to computer networking, S. Keshav,Addison-Wesley
Architecture CRS1documentation ciscohttp://www.cisco.com/en/US/products/ps5763/index.html
TCPles RFC