• Aucun résultat trouvé

EETATDESECASESDE UATEDESERVCEETDECTREDETRAFCSUSUXEa e

N/A
N/A
Protected

Academic year: 2021

Partager "EETATDESECASESDE UATEDESERVCEETDECTREDETRAFCSUSUXEa e"

Copied!
77
0
0

Texte intégral

(1)

SERVICE ET DE CONTROLE DE TRAFIC SOUS LINUX

EmmanuelLo hin

1 er

(2)

1 QUALITE DE SERVICE DANS L'INTERNET 5 1.1 Avant propos . . . 5 1.2 Introdu tion . . . 5 1.3 Le modèle Intserv /RSVP . . . 6 1.3.1 RSVP . . . 7 1.4 Le modèle Diserv . . . 7 1.4.1 Ar hite ture Diserv . . . 7

1.4.2 Classi ationet onditionnement dutra . . . 9

1.4.3 LesPHB . . . 10

2 GESTION DES FILES & ORDONNANCEMENTS 11 2.1 Présentation . . . 11

2.2 Introdu tion . . . 11

2.3 Les ordonnan eurs . . . 12

2.3.1 FirstIn FirstOut (FIFO) . . . 12

2.3.2 PriorityQueuing . . . 12

2.3.3 RoundRobin . . . 13

2.3.4 Weighted FairQueuing. . . 13

2.3.5 Sto hasti FairQueuing . . . 14

2.4 Les Ar hite tures d'ordonnan ements . . . 14

2.4.1 Clark-Shenker-Zhang . . . 14

2.4.2 ClassBased Queuing . . . 14

2.5 Politiquede tra . . . 17

2.5.1 Lissagedu tra . . . 17

2.5.1.1 LeakyBu ket. . . 17

2.5.1.2 Token Bu ket. . . 17

2.5.2 Prévention dela ongestion . . . 17

2.5.2.1 Random EarlyDete tion . . . 18

2.5.2.2 WeightedRandomEarly Dete tion . . . 18

3 LINUX ET LA QoS 19 3.1 La ou he réseau dunoyau Linux . . . 19

(3)

3.1.2 So ket Buers. . . 19

3.1.3 Transmission des paquetsIP. . . 19

3.1.4 Leséléments de QoS . . . 20

3.2 Conguration . . . 21

3.3 Implémentation du ontrle de tra . . . 21

3.3.1 Introdu tion . . . 21

3.3.2 Prin ipe de base . . . 22

3.3.2.1 Le ontrle detra sousLinux. . . 22

3.4 Prin ipe desled'attentes . . . 23

3.4.1 Fon tionnement de laled'attente, étape par étape: . . . 27

3.5 Prin ipe des lasses . . . 29

3.5.1 Fon tionnement de l'instan iation en lasse despaquets . . . 31

3.6 Prin ipe desltresou lassiers . . . 31

3.7 Prin ipe de politiquede tra (poli ing) . . . 33

4 MISE EN OEUVRE DE LA QoS 35 4.1 Présentation dela plateformede test . . . 35

4.2 LinuxTra Control :t . . . 35

4.2.1 Installationet onguration . . . 35

4.2.2 Présentation. . . 38

4.3 LesQueuing Dis iplines . . . 39

4.3.1 s h_[p|b℄fifo. . . 39 4.3.2 s h_tbf . . . 40 4.3.3 s h_prio. . . 41 4.3.4 s h_ bq . . . 48 4.3.5 s h_sfq . . . 49 4.3.6 s h_red . . . 49 4.4 Les lasses . . . 49 4.4.1 La lasseCBQ . . . 49

4.4.1.1 Expli ationdesmots lés boundedetisolated. . . 50

4.5 Lesltres ou lassieurs . . . 51

4.5.1 Le lassieurroute . . . 52

4.5.2 Le lassieurfw . . . 52

4.5.3 Le lassieuru32 . . . 53

4.5.3.1 Filtragesurl'en-tête IPave u32:mat h ip . . . 54

4.5.3.2 Filtragesurl'en-tête TCPave u32 :mat h t p. . . 54

4.5.3.3 Filtragespé iques :mat h u32 | u16 | u8 . . . 54

4.5.4 poli e . . . 55

4.6 La ommandeestimator . . . 55

5 SCENARIOS DE TESTS 56 5.1 FluxTCP ordonnan és par CBQ . . . 56

(4)

5.3.1 Partage ave CBQ . . . 63

5.3.1.1 S ript de générationdu tra . . . 63

5.3.1.2 S ript d'ordonnan ement etrésultat . . . 63

5.3.2 Partage ave SFQ . . . 67

(5)

QUALITE DE SERVICE DANS

L'INTERNET

1.1 Avant propos

Cette partie a pour but de présenter su intement la théorie né essaire à la ompréhension

desmé anismes de QoSsousLinux. Elle n'est en au un asune présentation exhaustive.

1.2 Introdu tion

La onvergen e vers IPest de plus en plusomniprésente, que elasoient les opérateurs

télé-phoniquesqui veulent passerdeleurtraditionnelle ommutation de ir uit àdelavoiesurIPou

les grands ples multisites qui veulent passerde leurs liaisonsspé ialisées privées versun réseau

IP partagéave VPN .Enbref, toutlemonde veututiliserIP.

Le problème d'IP est qu'il soured'un léger handi ap. Contrairement à ATM, il traite tout

le monde de manière indiéren iée. Toutes les données traversant un réseau IP sont routées de

manière équivalente en best-eort.

A tuellement,leseulmoyenqu'ontlesISPdelimiterlabande passantedesutilisateursestde

vendre desservi es basés surles apa ités desinterfa es desutilisateurs ommeles modem33.6

et56 Kbpsou les 1à 3Mbps desmodems xDSL.

Le but a tuel de la QoS est de pouvoir donner la possibilité à l'utilisateur de payer une

onnexionplus hèreand'appré ierunequalitédetransmissionsupérieureà elled'unutilisateur

lambda. Le multimédiaest l'autre raison d'êtrede la QoS. Eneet, les appli ationsmultimédia

répondent à des exigen es stri tes en terme de délai et de bande passante que la QoS est en

mesured'orir.

Bienévidemment,laQoSasapropredénitionpour ha und'entrenous.Eneet,demanière

générale, on peut assimiler le servi e d'un grand restaurant supérieur à un fast-food, plus de

hoix,meilleurequalitédesproduits,meilleura ueil...,vouspayez plus herpourlerestaurant,

en revan he, pour un autre utilisateur; il pourra trouver la qualité de servi e d'un fast-food

(6)

Letempsdel'Internetéquitable estdon révoluetnouspouvonsdon onstaterl'arrivéed'un

système de astes ou de  ou hes so iales sur Internet ave eux qui auront payé et eux qui

n'auront paspayé.

Plusieurste hniquespermettantdegérerlabandepassanteandepouvoirgarantirdelaQoS

ont étéproposées par l'IETF (Internet EngineeringTaskFor e).

L'appro he Intserv

Dans le passé, une appro he ave servi es intégrés (via RSVP) avait été proposée par l'IETF.

Cetteappro he Intserv/RSVP nepossèda paslesu èses omptéduàunmanque de e queles

anglaisappelle s alability (littérallement lepassage àl'é helle). Cettete hnique deréservation

debout enbout édalapla e àune autre onnue sous lenomde ...

L'appro he Diserv

Servi esdiéren iés donnant la possibilité auxéléments a tifs du réseau un plus grand ontrle

surlagestionde labande passante.

Passonsmaintenant àuneprésentationplusexhaustive de esdeuxappro hes, ena entuant

notreétudesur Diserv.

1.3 Le modèle Intserv / RSVP

Lebut dugroupedetravailIntservdel'IETF estlatransformationdel'Interneta tuel enun

réseauà intégration de servi es.

L'ar hite ture Intserv s'organise autour du on ept de ot de données orrespondant à un

ensemble de paquets résultant d'une appli ation utilisatri e et ayant un besoin d'une ertaine

QoS.An de satisfairelaQoSrequise, Intservpropose d'ee tuer uneréservation desressour es

né essairesàl'établissementde elle- ivialeproto olederéservationderessour esnomméRSVP.

Le signal RSVP étant onstitué par l'information de ontrle de la QoS, elui- i propose des

dire tives an de mettre en pla e la réservation mais ne dit pas omment la mettre en pla e,

e domaine étant réservé aux routeursduréseau qui prennent en ompte lasignalisationRSVP.

Pour sefaire,les routeursdisposent de quatrefon tionsde ontrle du tra :

1. Leproto olederéservationderessour e:qui,defaçonimpli ite,signalisele heminàétablir

ensolli itant desréservations de bande passante sur haque routeurstraversésduréseau.

2. Le ontrle d'admission : permet d'autoriser l'arrivée d'un nouveau ot muni de sa QoS

sansperturberles QoSdesautres ots existant.

3. Les lassieurs de paquets :qui lassent les paquets de ots admis dans les lasses

spé i-ques.

4. L'ordonnan eurde paquets:qui détermine l'ordrede servi edespaquets.

(7)

1.3.1 RSVP

RSVPaété présenté en 1995 àInterop, une démonstrationmettant ens ène desordinateurs

re evant dusonetdesimages. Ilaétéprouvé que,àtraversunréseau Internet, même hargé, la

qualitédelatransmissiondelavidéoetdusonétaitbonnelorsquelesdonnéesétaienta heminées

via des sessions RSVP. Sansles mé anismes de réservation fournis par RSVP,les présentations

devenaient inintelligibles. Cetteperforman eétait dueàRSVP asso iéauxmé anismes

d'ordon-nan ement des ux implantés dans les routeurs. C'est à dire, Weight Fair Queuing hez Cis o

Systems, etClassBased Queuing hez BayNetworks.

L'IETF a onçu le proto ole RSVP pour la réservation de ressour e au sein d'un réseau

Internet.Ilpeutêtreutilisé pour assurerlaqualité deservi eetgérerlesressour esde transport

du réseau pour les sessionspoint à point (uni ast) etpoint à multipoint (multi ast). RSVP est

un systèmede ontrle et de signalisationqui donne lapossibilitéde réserver labande passante

né essaire au bon fon tionnement d'une appli ation. C'est un besoin qui tou he prin ipalement

lesuxmultimédias,plussensiblesauxaléasde l'a heminement quelesuxdedonnéespuresdu

fait deleurs ontraintestemporelles.

UnesessionRSVPestidentiéeparl'adressedudestinataireduotdedonnées(ils'agitd'une

adresse IPUni ast ou Multi ast), le numéro de portde destination etle proto ole utilisé (TCP

ouUDP).RSVPfon tionne ave troistypesd'éléments:l'expéditeur,leréseauetledestinataire.

L'expéditeur indique au réseau la ara tèristation du ux qu'il va envoyer. Le réseau enregistre

les demandes, les traite, notie au destinataire que des messages sont en route. Le destinataire

informe le réseau de e qu'il est apable de re evoir et du moment où la ré eption est a hevée.

C'est le destinataire du ot de données qui fait la demande de réservation en s'adressant à un

pro essus RSVP lo al. La requête formulée, RSVP la transporte de routeur en routeur dans le

sens inverse de elui que vont emprunterles données on ernées. Pour ette raison, e proto ole

n'agit jamais seul, mais s'appuie sur les proto oles de routage. Il peut être aussi asso ié ave

le proto ole IP Multi ast, mono ou multi emetteurs, lorsque des é hanges ont lieu au sein d'un

groupe d'ordinateursselon unmondeanalogue à eluiutilisé dansle asdelatélévision oude la

radio.

1.4 Le modèle Diserv

Au ontraire du modèle Intserv qui traite indépendamment haque ot, le modèle diserv

proposedeséparerletra par lasses.Nousavonsdon aaireàunegranularitémoinsnemais

quidevientenrevan hepluss alable.Eneet,lagranularitéduotimpliquelaréa tionen haine

suivante:plus il ya d'utilisateurs dansle réseau, plusil y ade ots, plus il ya de variables de

lassi ationsetd'ordonnan ementsdanslesrouteursàmaintenir, equiapour onséquen eune

hargeimportante au niveaudes routeursquideviennent alors demoinsen moinsperformants.

1.4.1 Ar hite ture Diserv

(8)

Snd1

Snd2

R1

R2

R3

R4

R7

R5

Rcv2

R6

Rcv1

classe A

R8

Fig. 1.1  Les noeuds R1, R2, R6, R8 sont des edges routers, les noeuds en gris sont des ore

routers

pluttquede lassede tra )Chaque lasseestidentiée parune valeur odéedansl'en-têteIP.

Cette lassi ation doit sefairesur lesrouteursde bordures(edge router) àl'entrée duréseau.

L'ar hite turedesservi esdiéren iés proposéedansle[RFC2475℄ ontient deuxtypes

d'élé-mentsfon tionnels :

1. Lesélémentsdebordures(edgefun tions):ilssontresponsablesdela lassi ationdes

paquetsetdu onditionnementdutra .Enbordureduréseau, 'estàdireàl'arrivée

dupremierélémenta tif apabledetraiterle hampsDS(DS- apable),lespaquetsarrivant

ont dans leur hamp TOS (pour IPv4) ou Tra Class O tet (pour IPv6), une ertaine

valeur DS. La marquequ'un paquet reçoitidentie la lassede tra auquel il appartient.

Aprèssonmarquage, le paquetest envoyé dansleréseau ou jeté.

2. Les éléments du oeur du réseau ( ore fun tions) : ils sont responsables de l'envoi

uniquement.Quandunpaquet,marquédeson hampsDS,arrivesurunrouteurDS- apable,

elui- i est envoyé au pro hain noeud selon e que l'on appelle son Per Hop Behaviour

(PHB)asso iéàla lassedupaquet.Le PHBinuen elafaçon dont lesbuersdurouteur

et le lien sont partagés parmi les diérentes lasses de tra . Une hose importante dans

l'ar hite tureDSestquelesPHBrouteurssebasentuniquementsurlemarquagedepaquet,

'est à dire la lasse de tra auquel le paquet appartient; en au un as ils ne traiteront

diéremment despaquetsde sour esdiérentes.

Par exemple : Comme le montre la gure 1.1 page 9, le noeud R3 ne fait au unediéren e

(9)

Classification

Marquage

Paquets

Emission

Edge Router

Fig. 1.2 Arrivée despaquets dansunedge router.

aggregate, déni par le [RFC 2475℄, préféré à lasse de tra . Le  omportement qui est déni

au noeud R3 agrègeles otsde même lassevers lemême noeud.

L'avantage de Diserv est qu'il n'y a plus né essité de maintenir un état des sour es et des

destinations dansles ore routers,d'oùune meilleures alability.

1.4.2 Classi ation et onditionnement du tra

La lassi ations'ee tuesuivantuneouplusieursvaleurs ontenuesdansl'en-têteIP(exemple:

adresse sour e - destination, port sour e - destination, proto ol ID, ...). Celle- i faite,elle dirige

lepaquet vers lafon tion demarquage appropriée ommele montrelagure 1.2page 9.

Une fois les paquetsmarqués, ils sont envoyés à leur destination puis à haque routeur

DS- apable, ils re oivent leservi easso iéà leur lasse.

Il n'est pas pré isé par le groupe de travail Diserv omment le lassi ateur est paramétré

pour ee tuer ette lassi ation, ouplus exa tement,qui leparamètre? Celadoitêtre fait

ma-nuellement, auxbon soinsdel'administrateurqui paramètreles tablesdemarquage despaquets

en fon tion d'une table d'adresse sour e, par exemple, donnée au edge router. Ou par le biais

d'unproto oledesignalisation...RSVPpourraitd'ailleurstrèsbienfairel'aaire,en eet,

elui- i n'étant pas un proto ole de signalisation propre à Intserv uniquement, on pourrait l'utiliser

an de signalerles lasses qu'auront lesrouteurs àtraiter.

En plus de ette lassi ation/marquage, un mé anisme de prolage du tra est déni par

le groupede travail Diserv.Ce tra prole a pour objetla prise en ompte dutaux d'arrivée

des paquets, an de ne pas dépasser le seuil maximum de paquets pouvant être envoyés sur le

réseau. Ainsi, un mé anisme de mesure du tra permet de savoir si le ot de paquets entrant

orrespond au prolde tra négo ié. Si e ot dépasse un ertainseuil, ertains paquetsseront

(10)

Classification

Paquets

Emission

Edge Router

Marquage

Lissage

Paquets jetés

Mesure

Fig. 1.3Classi ation, marquage et onditionnement du tra au niveaudu edge router

1.4.3 Les PHB

Passonsmaintenantàlapartie on ernantles ore routerDS- apable.LeRFC2475donnepour

dénition du PHB : Comportement de relayage observable à un noeud DS- apable appliqué à

unbehaviour aggregate parti ulier. ChaquePHB orrespond don àun traitement par lasse.

Le servi e de meilleur qualité pouvant être oert par un PHB porte le nom de expedited

fowarding ou premium servi e; il a pour but de garantir une bande passante ave des taux

de perte, de délai et de gigue faible. Ensuite, un ensemble de PHB a été regroupé sous le nom

d'assured forwarding. Cette famille de PHB est s indée en 4 lasses garantissant de fournir

(11)

GESTION DES FILES &

ORDONNANCEMENTS

2.1 Présentation

Cettepartie a pour but la présentation desdiérents a teurs d'ordonnan ement présents au

seindu odesour eLinux.Tousnesontpasen oreopérationnelset ertainsd'entreeuxpossèdent

despartiesdedéveloppementin omplètes. Lapremièreimplémentation datantdunoyau2.1.90 1

,

l'aventurene faitque ommen er ...

2.2 Introdu tion

Lagestion deslesest né essairepour équilibrer letra [RFC2309℄. Elle évitela

monopoli-sation de la queue par un seul ux. Une simple gestionde le n'évite pasque les queuessoient

pleines pour des périodes longues, alors que pour avoir de faibles délais il est souhaitable que

les queues ne soient pas trop hargées. En eet, de petites les d'attenteréduisent les délais de

transmission.L'obje tifdelabuerisationdansleréseauestavanttoutd'absorberdespointesde

tra sfugitives.Pour esraisonsdesmé anismessupplémentaires omplètentlasimplegestionde

led'attente desortie. L'obje tif de es mé anismes estde diminuerlenombre dedatagrammes

éliminés,dediminuerledélaideboutenbout,d'éviterleremplissagepermanentdeslesd'attente

et ela touten gardant une bonne utilisation duréseau.

Le[RFC2309℄dénitdeuxtypesd'algorithmesde ontrle de ongestion :lagestiondesles

et l'ordonnan ement. Le premier gère la taille de la le en éliminant des paquets si né essaire

tandis quele se onddétermine quel est lepro hain paquet àenvoyer sur lelien.Tousdeux sont

utilisés pour gérer labande passanteutilisée par lesotsde paquets.

1

(12)

Serveur

File d’attente de priorité haute

File d’attente de priorité basse

Classifier

Fig. 2.1 Priority Queuing

2.3 Les ordonnan eurs

2.3.1 First In First Out (FIFO)

C'est l'ordonnan ement par défaut, le plus simple qui soit. Les paquets sont mis dans la

le de sortie et servis dansl'ordre ave lequel ils ont été reçus par le ou les interfa es d'entrée.

C'estaussiladis ipline laplusrapideau pointde vuede lavitessedetransmissiondes paquets,

étant donné qu'elle n'ee tue au un traitement sur eux- i. Cette te hnique est susante dans

unréseau à forte apa ité aron peut onsidérer que lesles restant presque toujours vides, les

délais sont alors faibles voir insigniants. Par ontre, dans le as d'une rafale, la le d'attente

peut seretrouver en débordement etles paquetsarrivésaprès la rafale peuvent êtrejetés. Dans

e as,les paquetsjetés lesont de manière indiéren iée,sans prise en ompte dutype de tra

auquelils orrespondent.Enutilisantdesstratégiesdemiseenled'attentediéren iée, onpeut

permettre à ertains types de tra d'être privilègiés en detruisant ertains paquets plutt que

d'autres.

2.3.2 PriorityQueuing

C'est laforme primitive de ladiéren iation de servi e. Eneet,sous e type

d'ordonnan e-ment,lespaquetsarrivant surleliende sortiesont lassiésenune,deux, voire plusieurs lasses

surlaledesortie.La lassed'unpaquet dépend alorsd'un marquageexpli itesetrouvantdans

l'en-têtemême de elui- i. Par exemple, en prenant en ompte le hamps TOS d'IPv4,ou alors

en prenant en ompte les autres données présentent nativement dans l'en-tête omme l'adresse

sour e- destination, leportsour e - destination,ou unautre ritère.

Comme le montre la gure 2.1 page 12, haque lasse a sa propre le d'attente. Le serveur

hoisirad'abordunpaquetsetrouvant danslaled'attente hautepriorité,si elle- iestnonvide

avant eux setrouvant danslalebasse priorité.

La granularité de lassi ation sebasant surl'en-tête même du paquet estassez exible. En

revan he, e système implique une dégradation des performan es. Il peut y avoir un problème

(13)

Serveur

Classifier

Fig. 2.2 Weighted Fair Queuing

L'autreproblèmequiestsoulevépartouteslesdis iplinesnonFIFO,estqueletempsd'attente

danslesbuersrestant indéterminé, onne peutpas al ulerlagigue duréseaude bouten bout.

En eet, dans le asdu priority queuing par exemple, il estimpossible, au niveau du temps de

miseen attente danslesles,de déterminerau bout de ombiende temps unpaquet de priorité

basse va être servi, e servi e ne pouvant être fait que lorsque au un paquet ne se trouve en

priorité haute.

2.3.3 Round Robin

Delamême manièrequeladis iplinepriorityqueuing, lespaquetssont triéspar lasses dans

des les, ensuite, un tourniquet alterne les paquets à servir parmi les les présentes. Dans sa

forme la plus simple, ave deux lasses de paquets, on obtiendrait le tra suivant :paquet de

lasse 1transmis, suivid'un lasse 2,suivid'un lasse 1,suivid'un lasse2...

2.3.4 Weighted Fair Queuing

Lepartageéquitable pondéréestuneémulation duround robin bitàbit.Lespaquetsarrivant

sont lassiés puis mis dans leurs les d'attente respe tives et de la même manière quepour le

round robin, lespaquetssontservisde façon ir ulaire ommelemontrela gure2.2page 13.

Cemé anismedegestiondeslesd'attente (quipeut,parexemple,êtrepondéréparle hamp

IPPre eden e), permetuneallo ation debandepassanteplusoumoinsimportantepour haque

lasse. En eet, le tourniquet servant bit à bit, un poids va être donné pour la le de haute

priorité. Dans l'exemple de la gure 1.5: on sert 3 bits de la le de priorité haute, 2 bits de la

lede priorité intermédiaire et1bit dela lede prioritébasse.

Cemé anisme de tri estdépendant du onstru teur arle hamps IPPre eden e peut avoir

milles interprétations diérentes et don tout dépend de e qu'entend le onstru teur dans le

(14)

2.3.5 Sto hasti Fair Queuing

Dérivé de WFQ, qui limite le nombre de le d'attente en agrègeant les ots grâ e à un

pro essusaléatoire.SFQ estune solutionau problèmede s alability deWFQ.

2.4 Les Ar hite tures d'ordonnan ements

2.4.1 Clark-Shenker-Zhang

[CSZ92℄ propose une ar hite ture pour les réseaux de type ISPN 2

supportant deux types

distin tsde servi estemps réel :

1. Lesservi es garantis : 'estla forme traditionnelle des servi estemps réelsbornés par des

ontraintes de délai orrespondant au piredes as.

2. Les servi es prédi tifs :ils utilisent des mesures de performan e du réseau par le biais de

al uldebornesde délai d'a heminement de paquet.

Les on epts dé rits dans l'arti le s'intéresse tout parti ulièrement aux servi es prédi tifs ainsi

qu'aux paramètres d'installation passés entre le réseau et la sour e. Notamment, l'interfa e de

servi edoitin lure:

1. Une ara téristion de lasour e,

2. Unedes ription dela QoSqueleréseau esten mesured'orir.

La dernière pie e de ette ar hite ture est l'ordonnan eur de paquets utilisé, né essaire pour

répondreauxattentes dé rites i-dessus.

Selonlale turedu odesour enet/s hed/s h_ sz. et[CSZ92℄,l'idée prin ipaleestde réer

desotsWFQ pour haque servi esgarantis etd'allouer lereste de la bande passante à, e que

Alexey Kuznetsov appelle dans le ode de s h_ sz, un ow-0. Le ow-0 in luant le tra de

servi eprédi tifetletra best-eort. Ceotestgéréparunordonnan eurdeprioritéattribuant

labande passantehautepriorité autra prédi tif,lereste étantpartagé parletra best-eort.

[CSZ92℄ utilise une forme parti ulière de ara térisation de tra : le token bu ket (voir la

se tionsuivante).Cemé anismeest ara térisépar untauxr etune taillemaximumderafaleb.

Unesour e detra est onforme àun tokenbu ket(r,b) siilya toujoursassez dejetondansle

seau haque foisqu'unpaquet estgénéré.L'ar hite ture [CSZ92℄supposeégalement queles ots

soient passéspar un mé anismede ontrle d'admission àl'entréedu réseau.

2.4.2 Class Based Queuing

C'est une variation de WFQ, qui utilise également un tourniquet sur plusieurs les mais un

lassierenamont delabatteriedelevas'intéresser à lassier haquepaquetenfon tiondesa

lassedanssale orrespondante. Il n'y a don plusde lassi ation sur leot.Grâ e auround

robin ensortiedesles,onévitequ'uneseule lassedetra nemonopolisetoutesles ressour es.

Dans[CBQ℄, SallyFloydetVanJa obson proposentune ar hite turebaséesurlepartage de

lien(link sharing) .Ce dé oupagede labande passante peutêtre faiteen prenant en ompte :

(15)

Lien

audio

video

20%

ftp

telnet

mail

50%

20%

10%

0%

Fig.2.3 Partage de lien entreplusieurs lasses deservi es.

 La famille deproto oles utiliséssurlelien,

 Lestypesde tra s appli atifs(telnet, ftp,mail, ...),

 Lesdiérentes organisations partageant le lien.

Le but du link sharing est la lassi ation de es diérents types de tra an d'opérer à un

partage de labande passante entre estra s ommelemontre lagure2.3page 15.

Le but prin ipal du link-sharing est que haque lasse, ave une demande orrespondante à

sesbesoins,doitêtreen mesurede re evoirapproximativement sabande passanteallouéedurant

un ertainintervalledetemps orrespondantàune ongestionsurleréseau.Surlagure2.3page

15,le link-sharing nedonne au unegarantie de bande passante pour letra mail.

Lepartage peutégalement êtrehierar hisé,entrediversesorganisations parexemple, omme

lemontre lagure2.4page 16.

Unepartdelabandepassanteestdon attribuéeà haqueniveau.Lagestiondesqueuesmeten

oeuvrelesdiérentesvariantesdegestiondeslistesdepro essus:priorité,tempspartagé.Enfait,

pourles asextrêmesilestutiledepouvoir onsidérer qu'un ertaintypedetra estéliminable.

Les mé anismes de partage dans[CBQ℄ ne tentent pasde fournir un ontrle de ongestion au

niveau des feuilles de l'arbre ( orrespondant à une lasse de tra ). Ces mé anismes étant à

implémenter par l'ordonnan eur général à l'entrée du réseau. [WGC94℄ donne de plus amples

expli ationssur l'implémentation de es te hniquesd'où esttiréelagure2.5 page 16.

Uneautreappro he onsisteàralentirlesuxpluttqu'àgérerlesprioritésoulapénuriele as

é héant.Leralentissementse ommandeàl'aidedemessagesICMPderalentissementémisdepuis

unrouteurintermédiaireversl'émetteurinitialdumessage.Cesmessagesneremontent ependant

pas à l'appli ation etne sont don pas for ément suivisd'eet, d'où l'idée de tra shaper qui

diminue la taille de la fenêtre d'anti ipation dans l'en-tête TCP de façon à réduire le débit de

ertains ux.Le lassement destra ssefait selondiérents ritères : hamps TOS,adressesIP

sour e et/ou émetteurs,numérosde ports UDPou TCP qui permettent d'identier les ux. On

distinguelesappli ationsàtra tempsréeloulesappli ationsdutypemessagerieautra moins

urgent.Cesmodesdegestionsontplusoumoinsextensiblesàdesréseauximportants.Letra est

(16)

Lien

org A

org B

org C

ftp

mail

telnet

UDP

TCP

Fig. 2.4Partage hiérar hisé d'unlien.

Routing & class database

packet scheduler

packet classifier

output driver

Network management

Pkt In

Pkt Out

One file for each priority

(17)

2.5 Politique de tra

En omplément ou en alternative deste hniquesd'ordonnan ement présentées i-dessus, des

te hniques de ontrle etdelissage du tra permettent de ontrlerle volume detra entrant

dansleréseau ainsiqu'ave ledébit ave lequelil esttransmis.

Onpourrait donner omme dénition à la politique de tra :la spé i ation du taux ave

lequel un ot est autorisé à envoyer des paquets à l'intérieur d'un réseau. Pour se faire, trois

ritères importantssontà retenir:

1. Le débit moyen

2. Le débit rête

3. Lataille maximumdelarafale :elle limitelenombredepaquetsquipeuventêtre transmis

dansun intervalle de temps très ourt.

2.5.1 Lissage du tra

2.5.1.1 Leaky Bu ket

Letra entrant danslale(le seau)estrégulé pour sortiràdébit onstant surleréseau.La

tailleduseauetledébitensortiesont ongurablesparl'utilisateur.Latailleétantdéterminante

en e qui on erne les pertes de paquets (lorsque le seau est plein le tra entrant peut être

jeté).Le leaky bu ket est omposé d'un ompteur , d'unseuil t et d'untaux de vidage, le leaky

rate : r. Chaque fois qu'un paquet arrive dans le seau, le ompteur est in rémenté et e même

ompteurest dé rémenté par leleakyrate.Siun paquetarriveau moment ou =t;alors elui- i

est jeté.

2.5.1.2 Token Bu ket

Letra ne traverse pasdire tement leseau maisesttransmis surlabasede jetons présents

dans le seau. Un jeton orrespond à un nombre de bits donnée, le taux d'arrivée des jetons

orrespond au débitmoyen etlaprofondeur du seauàlataille de larafale.

Ce mé anisme permet à un tra en rafale d'être transmis tant qu'il ya des jetons dans la

led'attente, eux- i ayant pu êtrea umulés ensituation de réseau peu hargé.

2.5.2 Prévention de la ongestion

TCP etUDP ohabitent mal, UDPne possèdant pasde mé anisme de omportement

adap-tatif, la miseen route d'unalgorithme de ongestion avoidan e de TCP laisse pla e à une

aug-mentation de tra UDP.Ilexisteégalement unautreproblèmelorsquedespointsde ongestion

sedéveloppent unpeupartoutdansunréseau hargé; haqueuxTCP vadéte terdespertes et

engager un algorithmede ongestion avoidan e. Ainsi, de nombreux uxvont repasser en mode

slow start et tenter de réémettre les paquets perdus, e qui ne resolvera en rien la ongestion

déjà présente ar leredémmarrage desux se ferade manière syn hrone. Ce phénomène onnu

(18)

2.5.2.1 Random Early Dete tion

Cette méthode a pour vo ation la déte tion de la ongestion avant que ette dernière ne se

produise.Pour sefaire, onva:

1. soit jeter aléatoirement des paquetspar mesurepréventive anque TCP réduise sa

trans-mission.

2. soitutiliserleagECNpourindiqueràTCPquelespaquetsonttraverséunnoeud

onges-tionné.

Le seuilà partirduquel on ommen e à jeter les paquets, ainsique letaux de remplissage de la

le,doivent être onguré par l'administrateur.

Dans unrouteur, ela reviendrait àmesurer letaux d'o upation dela mémoire.

Le[RFC2309℄re ommandel'implantationsurlesrouteursdumé anismeREDetladénition

demé anismedegestion desuxnonrégulés. Le ouplagede l'algorithmeREDà unmé anisme

de gestion de priorité du type de elui dénit dans DiServ pour le hoix des datagrammes à

éliminerestévoqué.

2.5.2.2 Weighted RandomEarly Dete tion

Mêmete hniquequelapré édentemaisquipermetdedéterminerqueltra onjettegrâ eàla

priseen ompte du hampsIPPre eden epar lesrouteurset elaand'éviterlamonopolisation

des ressour es par ertaines lasses de tra . Cette pondération gérée via e hamp permet au

réseau de demander aux ux de tra moins prioritaires de s'adapter au prot du tra plus

(19)

LINUX ET LA QoS

3.1 La ou he réseau du noyau Linux

Cettepartie présente demanière su inte lafaçon dont la ou he réseau Linux travailleave

lesdonnées.Onpourraseréférerauxdo uments[HMO00℄et[Rus99℄and'obtenirdeplusamples

approfondissements.

3.1.1 IPv4 et Qos

Entre le noyau 2.0et 2.2, le  hier net/ipv4/ip_output. a été modié an que les en-têtes

despaquetsIPv4 puissent utiliserlesmé anismes de QoSgrâ e au hampTOS de IPv4.

3.1.2 So ket Buers

Linuxutilise lesso ketbuers ousk_buffspourpasserlesdonnéesentreles ou hes

proto o-laires etles driversdes artes réseaux. Le but de ette buerisation est la onnaissan e, par la

ou heen ours,de equiaétéajoutédansl'en-têtedudatagrammeparla ou hepré édente.La

stru ture dedonnéesk_buffs estvisibledansle hierin lude/linux/skbuff.h.Cettestru ture

possède un blo de données qui lui est asso ié, 4 pointeurs permettant des opérations sur es

so kets buers et 2 hamps de variables de longueurs. Elle donne la possibilité aux diérentes

ou hes de la pile TCP/IP de Linuxd'ajouter ou de retirer l'entête mis par les proto oles ainsi

quelamiseenqueuedesdonnéesappli atives.Deplusamplesrenseignementssur esmé anismes

sont disponiblesdans[Rus99℄.

3.1.3 Transmission des paquets IP

Dans tous les as, lorsque des données sont générées en vue d'être transmises surle réseau,

une stru ture sk_buff est onstruite an de ontenir les données et les divers en-têtes ajoutés

par les ou hes proto olaires que es mêmes données ont traversées. Il faut don donner ette

stru ture au périphérique de sortie an que le paquet soit transmis. Dans e as, IP a besoin

de onnaître le périphérique qu'il doit utiliser. IP utilise pour ela la table de routage an de

(20)

table de routage renvoie la stru ture rtable(Cf. in lude/net/route.h) qui va dé rire la route

à utiliser. Cela in lus l'adresse IP sour e à utiliser, l'adresse réseau de la stru ture devi e et,

dans ertain as, un entête ontenant l'adressematérielle déjà onstruite 1

.Cet entête ontenant

l'adresse matérielle ontient l'adresse sour e et destination physique de l'interfa e (dans le as

d'Ethernet 'estl'adresse MACqui est utilisée).

Nous nous sommes attardés sur la transmission des paquets ar 'est l'étape pré edant le

ontrle du tra sous Linux, de plus amples détails vous être donnés dans les paragraphes

suivants. Une expli ation détaillée des mé anismes de ré eption des paquets et du routage IP

sous Linux est diponible dans [Rus99℄. Un petit tour par le ode du noyau peut s'avérer utile

notamment pour omprendre l'implémentation du proto ole ARP, voir:

 ip_build_xmit()dans net/ipv4/ip_output.

 eth_rebuild_header()dansnet/ethernet/eth.

3.1.4 Les éléments de QoS

Element t keyword Filename prexKernel Filename prex t

Queuing dis ipline qdis s h_ q_

Class lass (s h_) (q_)

Filter filter ls_ f_

Le tableau i-dessusprésente les mots- lés utilisés omme nomde  hier ou omme nom de

fon tion pour lesélémentsde ontrle detra .

Sur maversion du noyau 2.2.13, le ode réside prin ipalement dans le répertoire net/s hed.

Lesordonnan eurset les lassi ateurs sedistinguent par leur nomquidébute par :

 ls:pour les lassier

 s h:pour less heduler

Lesinterfa esentreles élémentsde ontrlede tra du noyau etlesprogrammesutilisateurs

lesutilisant sont dé larés danslesheaders suivant :

 in lude/net/pkt_ ls.h

 in lude/net/pkt_s hed.h

Les mé anismes rtnetlink utilisés pour la ommuni ation entre les programmes utilisateur

de ontrle de tra etle noyau sont implémentés dans:

 in lude/net/rtnetlink.h

 net/ ore/rtnetlink.

rtnetlink est basé sur netlink et est une extension permettant de passer au travers de

l'interfa e so ketdesparamètres de QoSaunoyau.

Lesnetlink so ketssontutiliséespourtransférerdesinformationsentrelesmodulesdunoyau

et les appli ations utilisatri es, ette ommuni ation se fait au travers d'un lien bidire tionnel.

Elles sont onformes aux so kets de Berkerley. Une so ket linux peut être rée par la fon tion

suivante:

(21)

so k_fd = so ket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE)

Cette so keta pour domaine AF_NETLINK.Son type estSOCK_RAW.NETLINK_ROUTEfait partie de la

NETLINK_FAMILYqui sele tionnele moduledunoyau ave lequelnousallons ommuniquer.

Lesmembres de lafamille NETLINK_FAMILYsont :

 NETLINK_ROUTE:reçoitlesmiseàjour deroutageet peutêtreutiliséepourmodier latable

deroutageIPv4,l'adresseIP,lesparamètresdulien,leslesd'attentes,les lassesdetra ,

lesltres ...,

 NETLINK_FIREWALL:reçoitles paquetstraités parle odede rewallingd'IPv4,

 NETLINK_ARPD:utilisé pour lagestionde latable ARP,

 NETLINK_ROUTE6:envoieetreçoit desmisesà jour detable de routage IPv6,

 ...

d'autres fon tionssont dé rites beau oupplus endétail dans[DhS99℄.

3.2 Conguration

Le support de la QoS est disponible depuis les versions du noyau postérieures à 2.1.90. A

partir du noyau 2.2.1, elui- i possède un support pour les servi es diéren iés sous forme de

pat h disponible surle site ftpde l'EPFL 2

àl'adressesuivante:

ftp ://lr ftp.epfl. h/pub/linux/diffserv/pat hes/ds-X.pat h.gz

Le dernierpat h en dateétant :ds-4.pat h.gz

Cepat hestné essaireaunoyau2.2and'obtenirtouteslesfon tionnalitésdeQoSsupportées

par Linux.

La onguration dunoyau s'ee tuede lamanièresuivante :

1. Se pla er dans/usr/sr /linux

2. Dé ompresser lepat h:gunzip ds-4.pat h.gzet appliquer elui- iaunoyau :pat h -p0 <

ds-4.pat h

3. Tapermake x onfig (ou make menu onfigenmode texte)

4. Dans lemenu QoS and/or Fair Queuing,sele tionner toutesles options.

5. Faire un make dep; make lean; make bzlilo et redémarrer le système sur le nouveau

noyau frai hement ompilé.

3.3 Implémentation du ontrle de tra

3.3.1 Introdu tion

La partie on ernant le ontrle du tra et plusieurs outils de gestion de es ontrles ont

été implémentés par Alexey Kuznetsov (kuznetms2.inr.a .ru). Son travail est inspiré par les

on epts dé rits dans [CSZ92℄ mais il ouvre également les mé anismes requis pour supporter

l'ar hite ture Intservde l'IETFetplus ré emment Diserv.

(22)

Fig.3.1 Traitement despaquetsdu réseau.

3.3.2 Prin ipe de base

Les paquets entrant sont examinés an de déterminer si il sont destinés au noeud où ils se

trouvent.Si 'estle as,ilssontenvoyésaux ou hessupérieures(TCP,UDP)sinon,ilspassentpar

latablederoutageandedéterminerquelestlepro hainnoeudàatteindre.Une foisl'opération

faite,lerouteur envoielespaquetsversuneled'attentesurl'interfa edetransmission.C'estsur

ette interfa e que vont se jouer la QoS etle ontrle de tra du noyau Linux. Le ontrle de

tra étant implémenté justeavant quelepaquetsoit misdanslaled'attentemaintenue par le

périphérique desortie (Cf.s héma3.1page 22).

Le ontrle de tra peut,entre autredé ider sile paquet estmis dansune led'attente ou

si il est jeté ( e as peut survenir lorsque la le a atteint une taille limite ou si le tra ex ède

undébit seuil). Il peutégalement dé ider dansquel ordreles paquets vont être envoyés(an de

donnerlaprioritéà ertainots)ou retarderl'envoidepaquetsdanslebut delimiterletra en

sortie.

3.3.2.1 Le ontrle de tra sous Linux

Le onditionnement despaquetspar leLinuxTra Control(LTC)est ee tuéaprès queles

mé anismesde routage aient dé idéssurquelle interfa e lepaquetdoit sortir. Don ,il n'ya que

lespaquetssortant qui sont assujettisàun ontrle de tra .

Leséléments né essairesau LTC sont lessuivants:

 La queuing dis ipline :pourl'instant, lesdis iplines validessont CBQ, CSZ 3

,Priority.

 Les lasses :ellessont gérées parladis iplinedeled'attentedupériphérique.Une lasse

orrespondàunensemblederèglesmarquantlesdonnéespropresàune lasse.Onpourrait,

par exemple, avoir une lasselimitant letaux despaquetsà 1Mbps pendant lajournéeet

quipasse etauxà5 Mbpsdurant lanuit.Plusieurs queuingdis iplinepeuvent êtreliéesà

des lasses, 'estle aspour lesdis iplinesRED,SFQettokenbu ket.Pardéfaut,siau une

dis ipline n'est stipulée,on utilise FIFO.

 Les lassiersou ltres : ils dé rivent les paquets an de les organiser dansdes lasses

gérées pardesdis iplinesdeled'attente.Plusieurs ltressontdisponibles ommele

route-based lassier, RSVP Classier (un pour IPv4 et un pour IPv6), et le u32 lassier.

Les ltresde rewallingpeuvent être également utilisés, on pourraitdon utiliserip hains

3

(23)

omme lassier 4

.Leu32 lassier estplusperformantquelesroute lassiers qui lassent

lespaquets enfon tion de latablede routage.Lesu32 lassier sont utiliséspour fairede

la lassi ationbaséesurl'adresseIPdedestination,l'adresseIPsour e,leportTCP/UDP

de destination,leportTCP/UDP sour e,le hampTOS etProto ol.

 Poli ing:Lebutdelapoli ing,quel'onpeuttraduireparpolitiquedetra estdes'assurer

queletra n'ex èdepas ertaines bornes.

Chaque périphérique réseau possède une dis ipline de le d'attente qui lui est asso ié et

qui ontrle la façon dont les paquets mis en le d'attente sont traités. En amont des les, il

est possible d'utiliser un ltre qui lassiera les paquets en fon tion de la lasse auxquels ils

appartiennent. Sans mise en pla e d'ordonnan eurs ou de ltres quel onques, la dis ipline de

miseen led'attente par défaut estFIFO.

La gure 3.2 page 24 montre la relation existante entre les terminologies de l'IETF en e

qui on erne les modèles ar hite turaux Intserv etDiservet omment leséléments du ontrle

de tra Linux y sont relatés. Ce s héma nous montre omment a été intégré les diérentes

ar hite tures IntServ et DiServ au sein du noyau Linux. Ainsi, grâ e à ette implémentation,

unema hinefaisanto ede routeurpeutprendre pla eàdiversendroitsd'unear hite ture.En

eet, ette ma hine peut être,dansle asde l'ar hite ture DiServ,être ongurée en tant que

ore router ouedge router.

3.4 Prin ipe des le d'attentes

Ande larrier les termesutilisés nousallonsposer deuxdénitions :

1. Une le : estun ordonnan eur,un shaperouun dropper.

2. Une dis ipline de le d'attente : l'ensemble formé par une ou plusieurs le(s) et un

lassieur.

Il ya théoriquement 8 typesdeles supportées:

 CBQ:ClassBased Queue :s h_ bq

 CSZ:Clark-Shenker-Zhang :s h_ sz(voirremarque en 2.2.2)

 TBF:Token Bu kettFlow:s h_tbf

 FIFO :FirstInFirst Out :s h_fifo

 Priority :s h_prio

 TEQL :Tra Equalizer :s h_tql

 SFQ:Sto hasti Fair Queuing :s h_sfq

 RED :RandomEarlyDete tion :s h_red

 GRED: GeneralizedRED :donné en appliquant lepat h ds-3.pat h.gz

 DS_MARK:s h_dsmarkDiservMarker

4

(24)
(25)

Fig. 3.3 Exemple deles

Lesles sont identiéespar un handle omposé d'unnuméro majeuretd'unnuméro mineur

<major num :minor num> où le mineur est à 0 pour identier les les. Les lasses et les les

d'attentespeuventêtre ombinées,pour ertaines,ensemble. Cen'estpasle asduTokenBu ket

qui luine possède pasde lasse. Linuxest trèsexible en e qui on erne les ombinaisons entre

les lassesetleslesd'attentes.Ainsi,lehandleestutilisé lorsquedes lassessont asso iéesàdes

les.

La gure 3.3 page 25 donne un exemple de dis ipline de le d'attente. La dis ipline qui est

atta hée surl'interfa e estune PriorityQueuing, ette di ipline possède deux lassesde tra et

un ltre fait o e de lassieur entre la lasse haute priorité, servie par un token bu ket et la

lasse bassepriorité, utiliséepar défaut, serviepar FIFO.

Ainsi, l'ensemble formé par la "grand uvette" du s héma, symbolise la dis ipline de le

d'attenteasso iéeaupériphériquede sortie.An demieux omprendre, voi i unautreexemple :

supposons que nous her hions à obtenir le partage de lien hierar hique, sur une interfa e de

sortie, selon lemodèle présenté surlagure3.4page 26.

Pour ee tueruntelpartage,l'interfa ede sortiedevraêtre ongurée ommeill'estmontré

surlagure 3.5page 26.

Cettegurenousmontre l'implantation dupartage delienprésentésurlagure3.4page 26.

Nous avons deux instan iation de CBQ : la première (1 :0) orrespondant au tra des lasses

TCP (1 :1)etUDP(2:2), lase onde(2 :0) orrespond aupartage entre letra Telnet (2 :1)et

Mail(2 :2). Nousverronsdansunautre hapitre les ommandesà passerau noyau Linuxande

réaliserun teltype de partagede lien.

QuandunnoyauLinux, ompiléave lesoptions deQoS, estlan é;lafon tionnet_dev_init

(net/ ore/dev. ) appelle la fon tion pkts hed_init (net/s hed/s h_api. ) an d'initialiser le

ontrledetra dunoyau.Danspkts hed_init,touteslesdis iplinesdelesd'attentequiontété

hoisies et ompilées ave lenoyau sont initialisées. Les pointeurs t _ tl_qdis ,t _dump_qdis ,

t _ tl_t lass,t _dump_t lass,utiliséspourexé uterdesfon tionssurles lassesetleslessont

également initialisés.

Chaqueled'attentefournitunensemblede fon tionsde ontrle, elles- isontvisibles dans

stru t Qdis _opsdu  hier in lude/net/pkts hed.hprésenté i-dessous:

(26)

FTP

TELNET

TCP

UDP

Lien

Fig. 3.4 Exemple departage d'un lien

CBQ 1:0

Filtre

Filtre

Class 1:2

Class 1:1

FIFO

CBQ 2:0

FIFO

Class 2:1

Class 2:2

FIFO

(27)

stru t Qdis _ops *next;

stru t Qdis _ lass_ops * l_ops;

har id[IFNAMSIZ℄;

int priv_size;

int (*enqueue)(stru t sk_buff *, stru t Qdis *);

stru t sk_buff * (*dequeue)(stru t Qdis *);

int (*requeue)(stru t sk_buff *, stru t Qdis *);

int (*drop)(stru t Qdis *);

int (*init)(stru t Qdis *, stru t rtattr *arg);

void (*reset)(stru t Qdis *);

void (*destroy)(stru t Qdis *);

int (* hange)(stru t Qdis *, stru t rtattr *arg);

int (*dump)(stru t Qdis *, stru t sk_buff *);

};

1. enqueue : met un paquet dans une le d'attente en fon tion de sa lasse, si il y a. Cette

fon tion estpropre à haque le

2. dequeue : donne le pro hain paquet élligible à envoyer. Si la le est vide, ette fon tion

retourne NULL. Le paquet élu est déterminé par l'ordonnan eur de la dis ipline de le

d'attente.

3. requeue : remet un paquet élu dans sa le d'attente exa tement à la pla e qu'il o upait

auparavant.Cettefon tionestutiliséedansle asd'unproblèmematérielsurlepériphérique

de sortie.

4. drop:jette,retire un paquet delaqueue. C'est une fon tion trèssimple qui est né essaire

pour RED ou GRED. En eet, es deux derniers ont besoin de jeter des paquets dans

ertaines onditions ( f.le ode s h_red. etlapartie 1.6.2).

5. init: ongureetinitialise lalequivient d'être réée.

6. reset:toutes lesles sont remisesàzéro etles ompteurs sont stoppés.

7. destroy: omme sonnoml'indique, retireune dis iplinede led'attentedu périphérique.

8. hange: hange la onguration d'unedis ipline dele d'attente.

9. dump:utilisé pour lamaintenan e etlediagnostique.

3.4.1 Fon tionnement de la le d'attente, étape par étape :

Lorsqu'une dis ipline de le d'attente est réée pour un périphérique, un pointeur de la le

est maintenu danslastru ture suivante :(in lude/netdevi e.h)

stru t devi e

{

.

(28)

/* Proto ol spe ifi pointers */

void *atalk_ptr; /* AppleTalk link */

void *ip_ptr; /* IPv4 spe ifi data */

void *dn_ptr; /* DECnet spe ifi data */

stru t Qdis *qdis ;

stru t Qdis *qdis _sleeping;

stru t Qdis *qdis _list;

unsigned long tx_queue_len; /* Max frames per queue allowed */

.

.

.

};

Puisla ou heIPmetlesinformationsné essairesdansl'en-têtedupaquet(net/ipv4/ip_output. )

etappelle lafon tion dev_queue_xmit(net/ ore/dev. ) i dessous:

int dev_queue_xmit(stru t sk_buff *skb)

{

stru t devi e *dev = skb->dev;

stru t Qdis *q; #ifdef CONFIG_NET_PROFILE start_bh_atomi (); NET_PROFILE_ENTER(dev_queue_xmit); #endif start_bh_atomi (); q = dev->qdis ; if (q->enqueue) { q->enqueue(skb, q); qdis _wakeup(dev); end_bh_atomi (); . . . } . . };

Cettefon tion montre qu'avant d'envoyer lepaquet surl'interfa e de sortie(en utilisant une

fon tion se trouvant plus en avant dans le ode nommée hard_start_xmit) , le paquet est mis

dansla le maintenue par le périphérique (si la le existe!) Ainsi, omme il l'est montré sur la

gure3.1, le ontrle de tra est bienimplémenté justeavant quelepaquet soit envoyé surson

(29)

 La fon tionenqueue orrespondante àlale d'attenteatta hée à l'interfa e est invoquée.

 dev_queue_xmitappelle qdis _wakeup,ande onnaîtrelepériphérique desortiesurlequel

il faut envoyer le paquet qui vient d'être mis en le d'attente. La fon tion qdis _wakeup

estutilisée pour retirer lepaquet de sale ande l'envoyersurl'interfa e desortie. Cette

fon tionpeutêtreutiliséeparunwat hdog timerprésentdanslesordonnan eursCSZ,CBQ

ou TBF.

 qdis _wakeupappelle immédiatement qdis _restartqui estla fon tion prin ipale envoyer

lespaquets.

 qdis _restart tente d'obtenir un paquet de la le, si ela mar he, il invoque la fon tion

hard_start_xmitdu périphériquepour envoyer lepaquet.

 Sinon, lepaquet estremis danslaleave requeue.

A noter queqdis _wakeuppeutêtre être également invoqué par lale si elle- i se rend ompte

qu'unpaquetauraitduêtreenvoyéetque en'estpasle as,parexemple,surland'un ompteur

témoin.

3.5 Prin ipe des lasses

De la même manière que les les d'attente, les lasses (Class_ID) sont identiées par un

handledutype<majornum:minornum>,lemajeur orrespondant toujoursàl'instan iationde

lale asso iée àla lasse.

Les lasses sont identiables :

 soit par laClass_ID (detype u32)attribuée par l'utilisateurau travers de l'interfa e t ,

 soit par l'Internal_ID (de type unsigned long) attribué par la le. Cet ID est unique et

estdonné ave une le,il peutêtre unindex, unpointeur... 5

Dans le noyau, le seul moyen de faire référen e à une lasse est par son Internal_ID. Seules les

fon tions get et hange utilisent Class_ID. Plusieurs Class_ID peuvent être regroupés en un

unique Internal_ID, dans e asleClass_ID transporte desinformations additionnelles pour le

lassieurasso iéaux les. 6

Anoter quetoutes lesles d'attentesne supportentpasles lasses.Cellesqui lessupportent

sont :CBQ, DS_MARK, CSZetPRIO.

Il est également possible d'appliquer des politiques de tra (en anglais :poli ing) entre les

lassieurs et les ordonnan eurs. Ces poli ing sont utilisées pour que le tra n'ex ède pas

ertaines bornes...

De même que pour les les d'attentes, les lasses possèdent un ensemble de fon tions de

ontrle dénies dansin lude/net/pkts hed.h :

stru t Qdis _ lass_ops

5

Anoter:lavaleur0pourunInternal_IDapoursigni ation: lassenontrouvéelorsque ettevaleuraété

retournéeparlafon tionget.

6

Remarque:laraisondel'implémentationdesdeuxvariablesClassIDetInternalIDestdedonnerunefa ilité

denotationàl'utilisateur.Lapremièrevariableestusitéeparl'utilisateurqui rééses lassesasso iéesàsaleave

saproprenotation.Lenoyau,lui,utilisesaproprenotation orrespondante.Lorsdestestsetdel'implémentation

(30)

{

/* Child qdis manipulation */

int (*graft)(stru t Qdis *, unsigned long l, stru t Qdis *, stru t Qdis **);

stru t Qdis * (*leaf)(stru t Qdis *, unsigned long l);

/* Class manipulation routines */

unsigned long (*get)(stru t Qdis *, u32 lassid);

void (*put)(stru t Qdis *, unsigned long);

int (* hange)(stru t Qdis *, u32, u32, stru t rtattr **, unsigned long *);

int (*delete)(stru t Qdis *, unsigned long);

void (*walk)(stru t Qdis *, stru t qdis _walker * arg);

/* Filter manipulation */

stru t t f_proto ** (*t f_ hain)(stru t Qdis *, unsigned long);

unsigned long (*bind_t f)(stru t Qdis *, unsigned long, u32 lassid);

void (*unbind_t f)(stru t Qdis *, unsigned long);

/* rtnetlink spe ifi */

int (*dump)(stru t Qdis *, unsigned long, stru t sk_buff *skb, stru t t msg*);

};

1. graft: atta he une nouvelle le à une lasse et retourne la le pré edemment utilisée. Si

au unelen'aétédénie, lafon tion atta he ladis iplineFIFOà la lasse.

2. leaf:retourne la led'une lasse.

3. get:permetd'obtenirl'Internal_ID par laClass_ID.Cettefon tionin rémenteun

omp-teurd'utilisation des lasses:ref ntsila lasse maintient untel typede ompteur.

4. put:est utilisé lorsqu'une lasse pré edemment référen épar getestdéréféren é. Sirf nt

estprésent,il estdé rémenté.

5. hange: hangelespropriétésdela lasse.Egalementutilisépour réerdenouvelles lasses.

6. delete:supprime une lasse si elle- i n'est pas en ours d'utilisation. Cette fon tion

dé-terminel'utilisation dela lasseen regardant le ompteur: ref ntetsi elui- iest àzéro,

désa tive etsupprime la lasse.

7. walk:fon tion de diagnostique.

8. t f_ hain: ettefon tionestutiliséepourretournerlepointeursurlalistedeltresasso iés

àune lasse. Eneet, haque lasse estasso iéeave une listede ltres ontenant tous les

ltrespouvantidentierlespaquetsappartenantà elle- i.Despaquetsayantdespropriétés

diérentes, omme une adresse sour e diérente, peuvent être regroupés dans la même

lasse.Ainsi, il peutyavoirplusieurs ltres asso iés à une lasse.

9. bind_t f : ette fon tion atta he un ltre à une lasse. Cette fon tion est similaire à la

fon tion get dans le sens où elle possède un ompteur d'utilisation des ltres : filters.

Celuiestin rémentéà haque appeldela fon tionbind_t f. 7

10. unbind_t f:déta heunltredesa lasseetdé rementele ompteurd'utilisationdesltres.

11. dump_ lass:fon tion de diagnostique.

(31)

3.5.1 Fon tionnement de l'instan iation en lasse des paquets

Les lasses sont séle tionnées dans la fon tion enqueue de la dis ipline de le d'attente par

appel de t _ lassify (in lude/net/pkt_ ls.h) qui retourne une stru ture stru t t f_result

(in lude/net/pkt_ ls.h) ontenant leClass_ID etselon[Alm99℄ probablement l'Internal_ID.

La valeurretournée par t _ lassifyest soit :

 soit -1:TC_POLICE_UNSPEC,

 soit ladé isionpolitiquedu ltre.

Lesvaleursderetoursontdé laréesdansin lude/linux/pkt_ ls.h.dontvoi iunepartie du ode

i-dessous: . . . stru t t _poli e { __u32 index; int a tion; #define TC_POLICE_UNSPEC (-1) #define TC_POLICE_OK 0 #define TC_POLICE_RECLASSIFY 1 #define TC_POLICE_SHOT 2 __u32 limit; __u32 burst; __u32 mtu; stru t t _ratespe rate;

stru t t _ratespe peakrate;

};

.

.

.

3.6 Prin ipe des ltres ou lassiers

Lesltres sont utiliséspour lasser les paquetsen se basant sur ertaines valeursde hamps

ontenusdansl'en-têtede elui- i.Exemple,le hampTOSdansIPV4,lesadressesIP,lenuméro

deport,...Unltre estutilisélorsquelafon tion demiseenled'attente:enqueueestinvoquée.

Les dis iplines de les d'attente utilisent les ltres pour mettre les paquets entrant dans leurs

lasses respe tives. Cesles d'attente possèdent don enamont des lassiersqui permettent de

distinguer les uxde plusieurs lassesde paquets.

Lesltres/ lassier ont au nombrede 5:

 ls_rsvp: lassierRSVP IPv4,

(32)

Queuing discipline/Classes

Filtre de priorité 1

Filtre de priorité 2

Element C

Element A

Element B

Fig. 3.6Organisation desltres

 ls_route: lassier sebasantsur ladé isionde routage appliquée aupaquet,

 ls_u32 : lassiersebasant surles ontenus hampsde l'en-têtedu paquet.

Les ltres sont organisés dans une lter_list. Une stru ture : stru t t f_proto ontenue dans

in lude/net/pkt_ ls.hestutiliséepourreprésenterlalter_list.Lesltressont lassésparordre

roissant de priorité etles entrées dansla lter_list sont marquées par le proto ole ave lequel

elle s'applique.

Lesltresserépartissent suivant deuxtypes:

1. Les ltres generiques : Une instan e de ltre par di ipline de le d'attente est susante

pour haque lasse. Ces ltres utilisent le Class_ID setrouvant dansl'en-tête du paquet.

CetIDaétépré edemment sto ké:soitpar lafon tiondemarquagedu odederewalling

deLinuxdansle as dultre ls_fwd,soit par lemarquage delafon tion deroutage dans

le asdultre ls_route.

2. Les ltres spe iques : Il y a une instan e de ltres par lasse, 'est la as pour tous les

autres ltres.

Commenouslemontrelagure3.6page 32,lare her hedansleltres'ee tueparordre de

priorité.Onpar oursd'abordlesélémentsdelapriorité1,puis2,...Lalter_listétant ordonnée

dansl'ordre roissant despriorités. Le hire1 orrespondant àlapriorité laplus haute.

La liste des fon tions on ernant les ltres est spé iée dans stru t t f_proto_ops dans

in lude/net/pkt_ ls.h.

stru t t f_proto_ops

(33)

har kind[IFNAMSIZ℄;

int (* lassify)(stru t sk_buff*, stru t t f_proto*, stru t t f_result *);

int (*init)(stru t t f_proto*);

void (*destroy)(stru t t f_proto*);

unsigned long (*get)(stru t t f_proto*, u32 handle);

void (*put)(stru t t f_proto*, unsigned long);

int(* hange)(stru t t f_proto*, unsigned long, u32 handle, stru t rtattr **, unsigned long *);

int (*delete)(stru t t f_proto*, unsigned long);

void (*walk)(stru t t f_proto*, stru t t f_walker *arg);

/* rtnetlink spe ifi */

int (*dump)(stru t t f_proto*, unsigned long, stru t sk_buff *skb, stru t t msg*);

};

1. lassify : ette fon tion est utilisée pour mettre un paquet dans une lasse en se

ba-sant sur ertaines propriétés de elui- i. Lerésultat de toute lassi ation doitêtre

a om-pagnée des quatre valeurs suivante : TC_POLICE_OK, TC_POLICE_RECLASSIFY,

TC_POLICE_SHOT, TC_POLICE_UNSPEC 8

. (les mé anismes de poli age sont

expli-qués ense tion 3.7).

2. init:initialisation desparamètres du ltre.

3. destroy : fon tion utilisée pour retirer un ltre. Si le ltre est enregitré ave des lasses,

ettefon tionferaappelàunbind_t f(Cf.3.5).Ilenlèveégalement touslespoli er quiont

étéatta hésà lale.

4. get:retournel'Internal_ID dultre.L'Internal_ID estunevariablede32bitsreferençant

les élementsde lalter_list.

5. put :est invoqué lorsqu'un élément d'un ltre pré edemment reféren é par get n'est plus

utilisé depuis un ertain temps.

6. hange : ongure un nouveau ltre ou hange les propriétés d'un ltre existant. Cette

fon tion enregistre l'addition d'un nouveau ltre ou d'un élement du ltre à une lasse

grâ e àlafon tion bind_t f.

7. delete :supprime un élément du ltre au ontraire de destroy qui détruit le ltre

entiè-rement.Sil'élement était enregistréave une lasse, lefon tion unbind_t fsupprime alors

etenregistrement.

8. walk&dump:fon tionsd'itérationet dediagnostique.

3.7 Prin ipe de politique de tra (poli ing)

Le but de la poli ing est de s'assurer que le tra n'ex ède pas ertaines bornes. En fait, le

ontrle detra sousLinuxpossèdeunedénitionassez large omprenant touttypede ontrle

de tra dépendant du volume de tra . Il existe quatre types de mé anisme de politique de

tra .

(34)

1. Celledé idée par les ltres.

2. Lerefus demettre unpaquet dansune led'attente.

3. De lasserunpaquet d'une led'attente.

4. Retirerunpaquet de lalean d'enmettre unautre.

La fon tion lassify d'un ltre peut retourner 3 types de valeurs, elles- i sont dé larées dans

in lude/linux/pkt_ ls.h:

1. TC_POLICE_OK :pasdetraitement spé ique.

2. TC_POLICE_RECLASSIFY : les paquets séle tionnés par un ltre mais dépassant une

ertainebornesont re lassiés.

3. TC_POLICE_SHOT :les paquetssele tionnés par un ltre mais dépassant une ertaine

bornesont supprimés.

Lesltres ls_rsvp, ls_rsvp6 et ls_u32 supportent les politiques de tra . Il est né essaire

également que les ordonnan eurs prennent en ompte es hamps, 'est le as de s h_ bq mais

pas elui des h_prio.

Les ltres peuvent utiliser la fon tion t f_poli e ontenue dans net/s hed/poli e. et qui

détermine si le ot est onforme à un token bu ket. Plusieurs dé isions sont alors possible en

fon tiondu résultatdutoken bu ket, [Alm99℄nousdonne unpanel despossibilitésde gestiondu

(35)

MISE EN OEUVRE DE LA QoS

4.1 Présentation de la plateforme de test

Les héma4.1page 36 présente laplateforme utiliséepour les tests.

Hylaspossède également deuxalias sursa arte :192.168.1.10 et192.168.1.100. Ces aliasIP

ont été dénis an d'ee tuer des testssur la lassi ation des paquets faitespar des ltres. Le

routeur :Youpiet lesdeuxma hines HylasetLy os,sontreliés par un HUB8 ports 10Mb/s.

Le système Linux installé sur le routeur Youpi provient d'une Sla kware 7.0 possédant un

noyau 2.2.13.

Comme indiqué dans l'aide de la onguration du noyau la fon tion de routage est a tivée

grâ e à la ompilation du module : CONFIG_IP_ADVANCED_ROUTER=yet par le positionnement à 1

du ag deroutage dans :

/pro /sys/net/ipv4/ip_forward

Lesdeux artesréseauxsont dé larées dansleLilo grâ eà la ommande:

append=ether=11,0x1000,eth0 ether=15,0x320,eth1

pour de plus amples informations sur ette ommande se référer au Multi-Ethernet-HOWTO

disponible surftp://ftp.lip6.fr

Lestestsee tuéssur ette plateformeont étéfaitsà l'aided'ungénérateurdetra nommé

BENCH. Une présentation de elui- iest diponible enannexe.

4.2 Linux Tra Control : t

4.2.1 Installation et onguration

Ré upérerlepa kage iproute2à l'adressesuivante:ftp://ftp.inr.a .ru/ip-routing/

Ladernièreversionendateà ejourestiproute2-2.2.4-now-ss000305.tar.gz(5mars2000),

and'êtresûrdenepassetromper,vouspouveztélé hargeriproute2- urrent.tar.gzquipointe

dire tement surla dernièreversiond'iproute2.

Jusqu'à etteversion,and'utilisersansproblème epa kage,ilm'aéténé essaired'appliquer

(36)

192.168.1.2/24

192.168.2.3/24

HYLAS

AMD K6 2 300 - 32Mo

192.168.1.1/24

192.168.1.10/24

192.168.1.100/24

LYCOS

Pentium 100 - 48Mo

192.168.2.4/24

YOUPI

Fig.4.1 Plateforme de test

bien que elui- i date du 17 mars 1999, son appli ation for ée m'a permis de orriger des bugs

surl'appli ation de ltres.

Avantde ompiler iproute2,veillez àavoir ompilévotrenoyauLinuxave toutes lesoptions

on ernant la QoS,sinon,la ompilation d'iproute2vousrenverra uneerreur.

#

# Code maturity level options #

# CONFIG_EXPERIMENTAL=y # # Networking options # # CONFIG_PACKET=y CONFIG_NETLINK=y CONFIG_RTNETLINK=y CONFIG_NETLINK_DEV=y CONFIG_FIREWALL=y CONFIG_FILTER=y CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_RTNETLINK=y CONFIG_NETLINK=y

(37)

CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_TOS=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_LARGE_TABLES=y CONFIG_IP_ROUTE_NAT=y CONFIG_IP_PNP=y CONFIG_IP_PNP_BOOTP=y CONFIG_IP_PNP_RARP=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_NETLINK=y CONFIG_NETLINK_DEV=y CONFIG_IP_ROUTE_FWMARK=y CONFIG_IP_TRANSPARENT_PROXY=y CONFIG_IP_MASQUERADE=y CONFIG_IP_MASQUERADE_ICMP=y CONFIG_IP_MASQUERADE_MOD=y CONFIG_IP_MASQUERADE_IPAUTOFW=m CONFIG_IP_MASQUERADE_IPPORTFW=m CONFIG_IP_MASQUERADE_MFW=m CONFIG_IP_ROUTER=y CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_IP_ALIAS=y CONFIG_ARPD=y CONFIG_SYN_COOKIES=y CONFIG_INET_RARP=m CONFIG_SKB_LARGE=y CONFIG_IPV6=m CONFIG_IPV6_EUI64=y CONFIG_IPV6_NO_PB=y

# CONFIG_IPX is not set

# CONFIG_ATALK is not set

# CONFIG_X25 is not set

# CONFIG_LAPB is not set

# CONFIG_BRIDGE is not set

# CONFIG_LLC is not set

# CONFIG_ECONET is not set

# CONFIG_WAN_ROUTER is not set

# CONFIG_NET_FASTROUTE is not set

# CONFIG_NET_HW_FLOWCONTROL is not set

# CONFIG_CPU_IS_SLOW is not set

#

(38)

CONFIG_NET_SCHED=y CONFIG_NETLINK=y CONFIG_RTNETLINK=y CONFIG_NET_SCH_CBQ=y CONFIG_NET_SCH_CSZ=y CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_RED=y CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TEQL=y CONFIG_NET_SCH_TBF=y CONFIG_NET_QOS=y CONFIG_NET_ESTIMATOR=y CONFIG_NET_CLS=y CONFIG_NET_CLS_ROUTE4=y CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=y CONFIG_NET_CLS_U32=y CONFIG_NET_CLS_RSVP=y CONFIG_NET_CLS_RSVP6=y CONFIG_NET_CLS_POLICE=y 4.2.2 Présentation

t estun programmeutilisateur permettant de réer etd'asso ierdesles àune interfa e de

sortie. C'estun touten un, ilest utilisé pour installerdivers types deles,asso ier des lasses à

esles,mettre enpla e lesltres de lassi ation.

Il faitpartie dupa kage iproute2 ontenant également d'autresutilitairestelqueip

permet-tantnotamment d'ee tuer de l'IP aliasing oude l'IP tunneling.

Sa syntaxe estlasuivante:

t [ OPTIONS ℄ OBJECT COMMAND | help

ave :

OBJECT = qdis | lass | filter

OPTIONS = -s[tatisti s℄ | -d[etails℄ | -r[aw℄

 qdis :estutilisé pour réer unequeuing dis ipline

 lass :estutilisé pour dénirdes lasses

 filter: permetde mettreen pla e desltres

Lesoptions :

 -s permet d'avoir les statistiques de sortie des paquets sur l'interfa e et au travers des

diérentesqueuing dis ipline asso iéeà elle- i,

 -d permet d'obtenir tous les détails on ernant l'interfa e et les paramètres passés aux

(39)

t peut être assez dile à appréhender. En eet,en as d'erreur le noyau retourne simplement

unentierindiquantlesu èsoul'é he dela ommande.Don ,àpartsivousavezfaituneerreur

dansl'orthographe des ommandes,les seuleserreursque vousretourna t sont lessuivantes:

 RTNETLINK answers :No su h file or dire tory: 'estle assivousréféren ezune qdis ,

unparent, une lassequi n'existepas...

 RTNETLINK answers:File exists: 'estle asinverse, 'estquevousréféren ezquelque hose

quiexiste déjà.Par exemple,vous réezune queuing dis iplineCBQ enroot, puisun TBF

en root aussi. Pour le TBF, vous obtiendrez e message d'erreur puisque vous avez une

dis iplinede ledéjà atta hée àlara ine.

 RTNETLINK answers : Invalid argument : 'est une erreur de paramètres. Exemple, vous

dénissezun CBQ ave une option perturb.Or ette option faitpartie du SFQ et nondu

CBQ.

4.3 Les Queuing Dis iplines

t qdis [ add | del | repla e | hange | get ℄ dev STRING

[ handle QHANDLE ℄ [ root | ingress | parent CLASSID℄

[ estimator INTERVAL TIME_CONSTANT ℄

[ [ QDISC_KIND ℄ [ help | OPTIONS ℄ ℄

t qdis show [ dev STRING ℄ [ ingres ℄

ave :

QDISC_KIND = [p|b℄fifo | tbf | prio | bq | red | et .

 [ add | del | repla e | hange | get ℄ :sont les diérentes opérations disponibles

asso- iéesaux dis ipline de le d'attente. Pour de plus amplesrenseignements voir le Chapitre

3.

 dev STRING:Interfa esurlaquelleonatta helaqueuingdis ipline:eth0, eth1, ppp0, ...

 [ handle QHANDLE ℄ :nombre majeur hoisipar l'utilisateur an deréféren er lale.

 [ root | ingress | parent CLASSID℄:permetd'atta herune dis iplineàlara ine de

l'in-terfa e (root)ou àune autre leparente.

 [ estimator INTERVAL TIME_CONSTANT ℄:voirlase tion 4.6.

Ces dénitionssont aussivalidesen equi on erne les lassesetles ltresetdon neseront pas

redénies.

4.3.1 s h_[p|b℄fifo

Usage:t qdis ... [p|b℄fifo [limit NUMBER℄

Commeill'est indiquédanslenomde ette dis ipline,les paquetsnere oivent au un

traite-ment spé ique. Ilssont toutsimplement FirstIn FirstOut.

Cettedis iplinene gère pasles lasses.

(40)

jetons

Buffer

Rate : taux de regénération des

Limit

Fig. 4.2Token Bu ket

 [limit NUMBER℄: orrespond àlalongueur delaleexpriméeenpaquetsou enbytesselon

que l'ona hoisipfifoou bfifo.

4.3.2 s h_tbf

Usage :t qdis ... tbf limit BYTES burst BYTES[/BYTES℄ \

rate KBPS [ mtu BYTES[/BYTES℄ ℄ [ peakrate KBPS ℄ [ laten y TIME ℄

Cettedis iplinenegèrepasles lasses, 'estàdirequ'endénissantleTBF ommedis ipline

de le d'attente ra ine de l'interfa e de sortie, et vu que elle- i ne sait pas gérer de lasse de

tra ,touslespaquetssortantserontalors soumisàson ontrle.Anoterquelavaleurdu burst

estlimitéeà 640 Kbit.

La syntaxe utiliséepour atta herun TBF sureth1par exemple estlasuivante:

t qdis add dev eth1 root handle 1 : tbf rate 64kbit buffer 1

5kb limit 10kb

Le Token Bu ket Filter estune mise en led'attente simple.Elle nefait que passerles paquets

entrant ave un tauxde transfert dont les bornes limitessont xéespar l'administrateur.

Comme nous le montre la gure 4.2 page 40, l'implémentation d'un TBF onsiste en un

tampon(buffer,seau), onstamment remplipar desjetons,ave undébit spé ique(rate, débit

de jeton). Le paramètre le plus important du tampon est sa taille, qui est le nombre de jetons

qu'ilpeutsto ker.

Chaquejetonarrivantlaissesortirunpaquetdedonnéesentrantdelaled'attente.Cepaquet

estalorsea éduseau.L'asso iationde etalgorithmeave lesdeuxuxdejetonsetdedonnées,

nousdonne troiss énarios possibles:

 Lesdonnées arrivent dansleTBFave un débitégal audébit desjetonsentrants. Dans e

as, haquepaquet entrant a sonjeton orrespondant etpasselale d'attente sansdélai.

(41)

UDP1

UDP2

UDP3

Y

X

2.5000

3.0000

3.5000

4.0000

4.5000

5.0000

5.5000

6.0000

6.5000

7.0000

7.5000

8.0000

0.0000

5.0000

10.0000

15.0000

20.0000

25.0000

30.0000

Fig. 4.3  Génération de 3 ux UDP à des taux respe tif de 500, 1000 et 1500 paquets par

se onde.

 Les données arrivent dans le TBF ave un débit plus petit que le débit des jetons. Seuls

quelquesjetonssontsupprimésquandlespaquetsdedonnéessortentdelaled'attente.Les

jetons s'a umulent don jusqu'àatteindre lataille du tampon.Lesjetons sauvéspeuvent

être utilisés pour envoyer des données ave un débit supérieur au débit des jetons, si de

ourtesrafalesde donnéesarrivent.

 Les données arrivent dans leTBF ave un débit plus grand que ledébit des jetons.Dans

e as, un dépassement de ltre a lieu. Les données entrantes peuvent être envoyées sans

perte jusqu'à e que les jetons a umulés soient utilisés. Après,les paquetsau dessous de

lalimite sont jetés.

La gure 4.3 page 41 nous présente 3 ux UDP générant des paquets d'une taille de 1024

o tetsàdestauxrespe tifsde500paquetsparse onde puisau boutde 10se ondesà1000 pkt/s

etenn, aubout de 10nouvellesse ondes1500 pkt/s. A noterqu'UDP n'aa uséau une perte

de paquetsdurant ette générationde tra . En utilisant unTBF atta hé à l'interfa e desortie

du routeur parla ommandesuivante :

t qdis add dev eth0 root tbf limit 10000 rate 5.461Mbit burst 640Kb

Ave untauxduTBF orrespondantaudébitduuxUDP2,onobtientlesrésultatsprésentéssur

lagure 4.4page 42 etlagure4.5 page 43qui illustrebien le omportement duTBF expliqué

plus haut.

4.3.3 s h_prio

Usage:t qdis ... prio bands NUMBER priomap P1 P2...

(42)

UDP1

UDP2

UDP3

Y

X

2.5000

3.0000

3.5000

4.0000

4.5000

5.0000

5.5000

6.0000

6.5000

7.0000

0.0000

10.0000

20.0000

30.0000

40.0000

Figure

Fig. 1.1  Les noeuds R1, R2, R6, R8 sont des edges routers, les noeuds en gris sont des 
ore
Fig. 1.2  Arrivée des paquets dans un edge router.
Fig. 1.3  Classi
ation, marquage et 
onditionnement du tra
 au niveau du edge router
Fig. 2.2  Weighted F air Queuing
+7

Références

Documents relatifs

Animateur/trice : Angélique BRICOD &amp; Nicolas SATRE Publics : Enfants &amp; Seniors. Phase 2 :

Après avoir résolu les inéquations nécessaires, établir le tableau de signe des expressions suivantes :

Des piles au magnésium équipent certains gilets de sauvetage, mais aussi

Conception de serveurs d’applications ouverts (P2P)A Peer-to-Peer Replica Location ServiceBased on A Distributed Hash Table ReplicaLocation Service GIGGLE(GIGascaleGlobal

par un ordinateur soit inni, toute opération alulable peut être engendrée à partir d'un ensemble. ni p ar un nombre ni de

Langage mahine.- L'instrution en langage symbolique n'est là que pour nous aider à s'en

de mémoire vive et, d'autre part, le transfert d'une valeur d'un registre vers un élément.. de mémoire vive, ou

(pour Integer DIVision), où le dividende de 16 bits (resp. 32 bits) est plaé dans l'aumulateur. AX (resp. AX et DX, e dernier ontenant le mot de poids fort) et le diviseur de 8