Sans vouloir engager un troll pro/anti-DPI (je pense que maintenant on connait 
les arguments de chaque partie par coeur), c'est dommage d'utiliser le DPI pour 
ce genre d'usages. C'est ce qui pousse les développeurs à tout faire passer au 
dessus d'HTTP, et qui va pousser bientôt à obfusquer son trafic pour le faire 
passer pour un protocole plus priorisé. Si ça se trouve on sera bientôt obligés 
de déployer iodine partout...

Il y a ici une solution qui va dans le bon sens et qui permet aux utilisateurs 
et aux développeurs de prendre leurs responsabilités, ce serait dommage que de 
telles propositions partent à la poubelle parce que certains opérateurs se 
croient plus malins. L'intelligence dans le réseau on ne peut pas dire que cela 
ait déjà marché...

Cordialement
Emmanuel Thierry


Le 21 déc. 2012 à 12:06, Thomas Mangin <thomas.man...@exa-networks.co.uk> a 
écrit :

> Je ne peux pas parler du marché français :-D mais ...
> 
> Sur le marché anglais les chances d'une remise sont IMHO quasi nulles. Quasi 
> tous les FAI avec plus de quelques milliers de lignes utilisateurs utilisent 
> du DPI pour réguler le trafic de leurs clients. 
> 
> Il y a 5  ans les courbes de trafic des FAI "eyeballs" avaient cette forme de 
> cloche, que l'on retrouve toujours chez les fournisseurs de transit. Depuis, 
> les lignes ont de plus en plus tendance a être utilise a' 100% 100% du temps 
> et le DPI est utilisé pour faire passer en priorité les protocoles temps 
> réels ou importants ( voip, email , ... ). Le P2P  ( qui a dit Youtube !! ?? 
> ) est ce qui passe normalement a la poubelle le plus rapidement et rempli ce 
> qui n'est pas utilisé par les autres protocoles.
> 
> Il semblerait que LEDBAT offre une solution intéressante et moins chère au 
> même problème de gestion de capacité ... mais avec moins de contrôle pour le 
> FAI.
> 
> Comme la plupart des solutions DPI peuvent être utilisées pour faire de 
> l'interception légale de trafic et comme les demandes d'interception ne 
> disparaitront pas même si tous les clients d'un FAI utilisant LEDBAT, un FAI 
> ne peut pas espérer faire des économies en remplaçant son DPI par un LEDBAT 
> cote client.
> 
> je te souhaite donc bonne chance pour obtenir cette réduction .... 
> Qui sait, mon analyse est peut-être totalement fausse ou le père Noel 
> écoutera peut-etre ta demande ...
> 
> Thomas
> 
> On 20 Dec 2012, at 08:42, Stephane Bortzmeyer <bortzme...@nic.fr> wrote:
> 
>> La question qui tue : qui ici est prêt à faire une réduction de tarifs
>> à ses clients pour des applications « gentilles », qui utiliseraient
>> cet algorithme LEDBAT pour ne pas charger le réseau ?
>> 
>> http://www.bortzmeyer.org/6817.html
>> 
>> ----------------------------
>> 
>> Auteur(s) du RFC: S. Shalunov (BitTorrent Inc), G. Hazel (BitTorrent Inc), 
>> J. Iyengar (Franklin and Marshall College), M. Kuehlewind (University of 
>> Stuttgart)
>> 
>> 
>> 
>> ----------------------------
>> 
>> 
>> Alors que tant d'efforts de recherche ont été dépensés pour faire des 
>> réseaux informatiques et des protocoles qui permettent d'aller *plus 
>> vite*, d'attendre moins longtemps avant de voir la page d'accueil de 
>> TF1, le groupe de travail LEDBAT <http://tools.ietf.org/wg/ledbat> 
>> ("Low Extra Delay Background Transport ") de l'IETF travaillait à un 
>> tout autre projet : un protocole de transport de données qui aille 
>> *moins vite*, de façon à être un bon citoyen du réseau, à n'utiliser 
>> celui-ci que lorsqu'il est vide et qu'on peut donc faire passer ses 
>> bits sans gêner personnne. Ce RFC décrit l'*algorithme* LEDBAT, un 
>> algorithme « développement durable ».
>> 
>> LEDBAT n'est donc pas un protocole complet, mais un algorithme de 
>> contrôle de la *fenêtre de congestion*, ce mécanisme par lequel les 
>> protocoles de transport évitent de saturer le réseau. Le plus connu et 
>> le plus utilisé de ces mécanismes est celui de TCP (RFC 5681) et ses 
>> objectifs sont d'utiliser le réseau à fond et d'assurer une relative 
>> égalité entre les flots de données qui se concurrencent sur ce réseau. 
>> LEDBAT, au contraire, vise avant tout à *céder* la place aux autre 
>> flots, non-LEDBAT.
>> 
>> Mais pourquoi diable voudrait-on être si généreux ? Cela peut être 
>> parce qu'on estime les autres flots plus importants : si je télécharge 
>> Plus belle la vie pendant que je passe un coup de téléphone via SIP, je 
>> souhaite que le téléchargement ne prenne pas de capacité si SIP en a 
>> besoin (c'est la différence entre applications d'« arrière-plan » comme 
>> le transfert de gros fichiers et d'« avant-plan » comme un coup de 
>> téléphone ou une session SSH interactive). Ou bien cela peut être pour 
>> profiter de réductions offertes par le réseau : après tout, un routeur 
>> ou une fibre optique ne coûtent pas plus cher à l'usage, que les octets 
>> circulent ou pas (contrairement à un autoroute ou une voie ferrée). Il 
>> serait donc logique que les transports « charognards », comme LEDBAT, 
>> qui n'utilisent la capacité réseau que lorsque personne n'en veut, 
>> reçoivent une récompense financière, par exemple une réduction des prix 
>> (parlez-en à votre FAI).
>> 
>> Pour les détails sur les motivations de LEDBAT et les raisons pour 
>> lesquelles des technqiues comme le "shaping" ne conviennent pas, voir 
>> le premier RFC du groupe LEDBAT, le RFC 6297. Ici, je vais me focaliser 
>> sur l'algorithme spécifié par LEDBAT et qui répond au cahier des 
>> charges : céder la place le plus vite possible.
>> 
>> Le principe de cet algorithme est simple : utiliser les variations du 
>> temps de voyage des paquets pour détecter l'approche de la congestion 
>> et refermer alors la fenêtre de transmission. TCP utilise 
>> essentiellement le taux de pertes de paquets comme indicateur (ou les 
>> marques ECN du RFC 3168). Les routeurs ayant des tampons 
>> d'entrée-sortie, lorsque la ligne de sortie est saturée, les paquets 
>> commencent à s'entasser dans ce tampon. Lorsqu'il est plein, le routeur 
>> jette des paquets (et TCP va alors réagir). On voit que l'augmentation 
>> du temps de voyage (dû au séjour dans le tampon) *précède* la perte de 
>> paquets. En réagissant dès cette augmentation, LEDBAT atteint son 
>> objectif de céder la place à TCP. (À noter qu'il existe des variantes 
>> de TCP qui utilisent également le temps de voyage comme indicateur de 
>> l'approche de la congestion, par exemple TCP Vegas, documenté dans 
>> « "TCP Vegas: New techniques for congestion detection and avoidance 
>> <http://www.cs.umd.edu/class/spring2010/cmsc711/vegas.pdf>" » de 
>> Brakmo, L., O'Malley, S., et L. Peterson, mais voir le RFC 6297 pour un 
>> tour d'horizon général.)
>> 
>> Où est-ce que LEDBAT va être mis en œuvre ? Cela peut être dans un 
>> protocole de transport, par exemple comme une extension de TCP, ou bien 
>> dans l'application. LEDBAT est un algorithme, pas un protocole précis. 
>> Il peut être utilisé dans plusieurs protocoles, du moment que ceux-ci 
>> permettent l'estampillage temporel des paquets, pour que les deux 
>> machines qui communiquent puissent mesurer le temps de voyage (section 
>> 4.1).
>> 
>> La section 2 décrit l'algorithme exact. LEDBAT a une fenêtre de 
>> congestion, notée cwnd qui indique combien d'octets l'émetteur peut 
>> envoyer avant un nouvel accusé de réception. L'émetteur met dans chaque 
>> paquet le moment où il a envoyé ce paquet. Le récepteur regarde 
>> l'heure, en déduit le temps de voyage (aller simple, puisque 
>> l'encombrement n'est pas forcément le même dans les deux sens, une 
>> mesure aller-retour ne servirait pas à grand'chose) et retransmet cette 
>> indication à l'émetteur. Lorsque celui-ci voit le temps de voyage 
>> augmenter (signe que les tampons des routeurs se remplissent), il 
>> diminue la fenêtre de congestion. L'émetteur notamment utilise deux 
>> paramètres, TARGET et GAIN. TARGET est l'augmentation du temps de 
>> voyage en dessous de laquelle LEDBAT ne fait rien. GAIN (qui vaut entre 
>> 0 et 1) indique le facteur d'échelle entre l'augmmentation du temps de 
>> voyage et la réduction de la fenêtre de congestion. Plus il est élevé, 
>> plus LEDBAT réagit rapidement et vigoureusement. Un GAIN de 1 est 
>> équivalent à TCP Reno. À noter qu'on pourrait avoir deux valeurs de 
>> GAIN, une pour augmenter la fenêtre de congestion et une pour la 
>> diminuer. En mettant un GAIN plus grand pour la diminution de la 
>> fenêtre, on garantit que LEDBAT cédera très vite la place dès le plus 
>> petit signal d'un ralentissement. (Pour les amateurs de pseudo-code, 
>> une description de l'algorithme avec cette technique figure dans le 
>> RFC.)
>> 
>> Bien sûr, le temps de voyage varie pour tout un tas de raisons et il 
>> n'est pas forcément souhaitable de refermer la fenêtre de congestion à 
>> chaque dérapage. LEDBAT filtre donc les "outliers" à l'aide d'une 
>> fonction FILTER() qui fait partie des paramètres de l'algorithme (elle 
>> n'est pas imposée par le RFC, on peut tester plusieurs mécanismes de 
>> filtrage des données.) Un filtre sommaire est NULL (aucun filtrage, on 
>> accepte toutes les mesures). Un autre plus sophistiqué est EWMA 
>> ("Exponentially-Weighted Moving Average"). Un bon filtre résiste au 
>> bruit inévitable, mais reste sensible aux signaux indiquant une vraie 
>> congestion.
>> 
>> Le temps de voyage se décompose en temps de transmission sur le câble 
>> (qui dépend de la vitesse du médium, par exemple 100 Mb/s pour du Fast 
>> Ethernet), temps de propagation (lié à la vitesse de la lumière), temps 
>> d'attente dans les tampons et temps de traitement à la destination. 
>> Tous ces temps sont constants ou presque, à l'exception du temps 
>> d'attente dans les tampons. Ce sont donc ses variations qui déterminent 
>> l'essentiel des variations du temps de voyage. Pour estimer ce temps 
>> d'attente dans les tampons, LEDBAT calcule un *temps de base* (section 
>> 3.1.1) qui est le temps de voyage minimum observé. Il permet de 
>> connaître la valeur minimale en dessous de laquelle le temps de voyage 
>> ne pourra pas descendre. Les calculs de fenêtre de congestion se font à 
>> partir de (temps de voyage - temps de base), une grandeur qui part donc 
>> de zéro (les méthodes du RFC 6298 peuvent être utiles ici). 
>> L'algorithme de LEDBAT est linéaire : la fenêtre est réduite ou 
>> agrandie proportionnellement à cette grandeur, le facteur de 
>> proportionnalité étant le paramètre GAIN. Autre intérêt du concept de 
>> temps de base : en cas de changement de la route pendant la session 
>> (par exemple, panne d'un lien et re-routage par un chemin plus long), 
>> la mesure du temps de base pendant les N dernières secondes permettra 
>> de voir que le trajet a changé et que les calculs doivent utiliser le 
>> nouveau temps de base. (Le choix de N est un compromis : trop petit et 
>> le temps de base va varier souvent, trop grand et il retardera le 
>> moment où on détecte un changement de chemin.)
>> 
>> Avec son mécanisme de réduction de la fenêtre de congestion dès que le 
>> temps de voyage augmente, LEDBAT ne pousse normalemeent jamais jusqu'au 
>> point où il y aura des pertes de paquets. Néanmoins, celles-ci peuvent 
>> quand même survenir, et LEDBAT doit alors se comporter comme TCP, en 
>> refermant la fenêtre (section 3.2.2).
>> 
>> La section 4 du RFC discute ensuite de différents points intéressants 
>> de LEDBAT. Par exemple, LEDBAT est efficace pour céder rapidement à TCP 
>> lorsque celui-ci transfère de grandes quantités de données. Mais cela 
>> laisse le problème des applications qui envoient peu de données mais 
>> sont très sensibles à la latence, comme la voix sur IP. Si la 
>> conversation téléphonique envoie peu de données, il n'y aura jamais de 
>> remplissage des tampons, donc pas d'augmentation du temps d'attente 
>> dans ceux-ci donc LEDBAT se croira tranquille et enverra autant de 
>> données qu'il veut. Au moment où un des interlocuteurs parlera, ses 
>> paquets se trouveront donc peut-être coincés derrière un paquet LEDBAT. 
>> La seule protection contre ce problème est le paramètre TARGET qui ne 
>> doit donc pas être mis trop haut. La norme G.114 de l'UIT suggère 150 
>> ms comme étant le maximum de retard tolérable pour le transport de la 
>> voix. LEDBAT doit donc choisir ses paramètres pour réagir avant les 150 
>> ms. Le RFC recommande 100 ms pour le paramètre TARGET qui indique 
>> l'augmentation de délai de voyage à partir de laquelle LEDBAT réagit. 
>> (Ce paramètre TARGET détermine le temps maximal d'attente 
>> supplémentaire dû à LEDBAT.)
>> 
>> Autre point subtil, la compétition entre flots LEDBAT. On sait que TCP 
>> assure la « justice » entre flots TCP : si trois flots sont en 
>> compétition, chacun aura un tiers de la capacité. LEDBAT, lui, cède à 
>> TCP. Si un flot LEDBAT et un flot TCP sont en compétition, TCP aura 
>> toute la capacité. Mais si deux flots LEDBAT parallèles se 
>> concurrencent ? L'algorithme de LEDBAT ne garantit *pas* de justice. En 
>> général, c'est le flot le plus récent qui va gagner : arrivant tard, 
>> dans un réseau déjà bien encombré, il mesure un temps de base très 
>> élevé et ne voit donc pas d'augmentation due au temps d'attente dans 
>> les tampons, et ne réduit donc pas sa fenêtre de congestion 
>> (« "Rethinking Low Extra Delay Background Transport Protocols 
>> <http://arxiv.org/abs/1010.5623>" » de Carofiglio, G., Muscariello, L., 
>> Rossi, D., Testa, C., et S. Valenti). Pour corriger cet effet, on ne 
>> peut compter que sur le bruit : de temps en temps, les tampons se 
>> videront, le temps de voyage diminuera, et le récent arrivé corrigera 
>> sa mauvaise estimation du temps de base.
>> 
>> La section 5 du RFC considère les points qui sont encore ouverts à 
>> expérimentation. Après tout, un protocole comme LEDBAT est quelque 
>> chose de très nouveau dans le zoo de l'Internet. Par exemple, l'effet 
>> de changement de routes pendant une session LEDBAT, modifiant le temps 
>> de base, n'est pas encore vraiment bien connu. Quant à la valeur des 
>> paramètres comme TARGET ou GAIN, elle aura certainement besoin d'être 
>> ajustée à la lumière de l'utilisation réelle. Enfin, le filtre des 
>> mesures, qui permet d'éliminer les mesures jugées anormales, et évite 
>> donc à LEDBAT d'ajuster brusquement sa fenêtre de congestion pour rien, 
>> aura certainement besoin de réglages, lui aussi.
>> 
>> Et la sécurité de LEDBAT ? La section 6 rappelle que, même si un 
>> attaquant arrive à tromper LEDBAT sur les valeurs du temps de voyage, 
>> dans le pire des cas, il ne pourra pas le faire se comporter de manière 
>> plus gloutonne que TCP. Par contre, il pourra faire une attaque par 
>> déni de service en lui faisant croire que le délai de voyage a augmenté 
>> et que LEDBAT devrait ralentir. Pour l'instant, il n'y a pas de 
>> mécanisme contre cela.
>> 
>> Le bon fonctionnement de LEDBAT dépend de bonnes mesures. Les fanas de 
>> métrologie seront donc ravis de l'annexe A, qui parle des causes 
>> d'erreur dans les mesures. Le principal problème est que, pour mesurer 
>> les temps de voyage aller-simple dont a besoin LEDBAT, il faut des 
>> horloges à peu près synchronisées. Si l'émetteur met dans le paquet une 
>> heure de départ à 13 heures, 37 minutes et 56,789 secondes, que le 
>> récepteur mesure une arrivée à 13 heures, 37 minutes et 57,123 secondes 
>> et que le récepteur a 0,5 secondes de retard sur l'émetteur, il 
>> mesurera un temps de voyage de 0,334 secondes (alors qu'il est en fait 
>> de 0,834 secondes). Reprenant le vocabulaire de NTP (RFC 5905), on peut 
>> dire qu'il y a deux sources de problèmes, l'*écart* des horloges par 
>> rapport à une référence et le *décalage* (la variation de l'écart). 
>> L'écart entraine une erreur fixe dans la mesure du temps (comme dans 
>> notre exemple ci-dessus). Mais LEDBAT n'utilise pas directement le 
>> temps mais la différence entre temps actuel et temps de base. Cette 
>> erreur s'annule donc et l'écart des horloges par rapport au temps 
>> correct n'est donc pas importante pour LEDBAT.
>> 
>> Plus embêtant est le décalage puisque lui ne s'annulera pas. Si 
>> l'horloge du récepteur bat plus vite que celle de l'émetteur, il aura 
>> toujours l'impression d'un réseau très encombré, puisque ses mesures de 
>> temps de voyage seront toujours supérieures au temps de base qu'il 
>> avait mesuré avant. Heureusement, alors que des écarts énormes sont 
>> souvent vus sur l'Internet (il est fréquent de voir plusieurs minutes, 
>> voire plusieurs heures de différence entre une machine et le temps 
>> UTC), les décalages sont typiquement bien plus petits. Les mesures 
>> citées par le RFC 5905 indiquent des décalages courants de 100 à 200 
>> ppm, soit 6 à 12 ms d'erreur accumulée par minute. Comme une machine 
>> LEDBAT limite sa mémoire (paramètre BASE_HISTORY, pour lequel le RFC 
>> recommande actuellement une valeur de dix minutes), et n'utilise donc 
>> que des mesures récentes pour évaluer le temps de base, le problème 
>> reste donc limité.
>> 
>> Si malgré tout, le problème se pose, il n'affectera que le cas où le 
>> récepteur a une horloge plus rapide, et en déduira donc à tort qu'il 
>> doit ralentir. Dans le cas inverse (horloge du récepteur plus lente), 
>> l'émetteur aura simplement l'impression que le temps de base augmente.
>> 
>> Pour corriger ce problème de décalage, on peut imaginer d'envoyer les 
>> estampilles temporelles dans les deux sens, pour que chaque machine 
>> puisse calculer ce que devrait voir l'autre, pour pouvoir détecter 
>> qu'un pair a une mauvaise mesure. Ensuite, l'émetteur pourrait corriger 
>> ses propres calculs por s'adapter à ce récepteur erroné. Il peut même 
>> calculer si le décalage est constant (horloge battant trop vite ou trop 
>> lentement, mais à une fréquence constante).
>> 
>> Et question mises en œuvre effectives ? LEDBAT a été testé dans des 
>> logiciels comme uTorrent Transport Protocol library 
>> <http://github.com/bittorrent/libutp>. Il est l'algorithme utilisé par 
>> le microTP de BitTorrent (voir la documentation officielle de µTP 
>> <http://www.utorrent.com/help/documentation/utp>).
>> 
>> 
>> ---------------------------
>> Liste de diffusion du FRnOG
>> http://www.frnog.org/
>> 
> 
> 
> ---------------------------
> Liste de diffusion du FRnOG
> http://www.frnog.org/


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à