Auteur Sujet: QoS : rendre prioritaire les paquets TCP ack sortants  (Lu 18058 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 271
    • Twitter LaFibre.info
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #24 le: 22 mai 2011 à 07:44:00 »
La freebox le fait d'office depuis pas mal d'années, çà change beaucoup la qualité du service.
Mais si tu upload pas, çà ne se voit pas. Le test est de simplement de downloader pendant que tu upload.
La Freebox priorise les ACK depuis plusieurs années ?
Je ne voit pas dans le menu de configuration une option a activer, normal ?

Mais une connexion TCP réellement utilisée dans les deux sens en même temps n'aura pas "ACK packet", elle ne sera donc pas "speed up"!

Pour moi, ça montre que c'est du bricolage.
C'est vrai mais dans la grande majorité des cas, c'est du http et tu n'utilise qu'un sens (a part faire des demande pour télécharger des images / pages).

corrector

  • Invité
QoS : rendre prioritaire les paquets TCP ack sortants : sur la Freebox?
« Réponse #25 le: 22 mai 2011 à 08:11:51 »
La Freebox priorise les ACK depuis plusieurs années ?
Je ne voit pas dans le menu de configuration une option a activer, normal ?
Je ne vois qu'une façon de tester : comparer
  • en parallèle : un télérapatriement par TCP et un téléversement par TCP
  • et un télérapatriement  + téléversement par TCP
sans protocole autour (netcat pur).

Je pense qu'il faut ressortir les bons vieux echo, discard et chargen.

C'est vrai mais dans la grande majorité des cas, c'est du http et tu n'utilise qu'un sens (a part faire des demande pour télécharger des images / pages).
À part quand le pipelining est mis en œuvre (ce qui pose parfois problème), HTTP n'utilise jamais qu'un sens à la fois.

IMAP est un protocole requête-réponse (donc conversation un sens à la fois) qui peut gérer plusieurs conversations dans la même connexion, donc peut utiliser les deux sens à la fois (ce qui a l'air de poser quelques problèmes avec le serveur IMAP préhistorique de Free!).

corrector

  • Invité
La description de match : c'est exactement ce que je supposais :
match TYPE VAL MASQ at OFF signifie en C :
bool test (char *p) // p pointe sur le début de paquet
{
  return (*(TYPE *) (p+OFF)) & MASQ == VAL;
}

L'exemple donné dans la doc correspond exactement :
Sauf que le commentaire "IP Total length 0x34 " est faux : en fait 0x34 n'apparait même pas dans le filtre!

Il faut traduire :
match u16 0x0000 0xffc0 at 2 en C :
(*(u16*)(p+2)) & 0xffc0 == 0x0000 or 0xffc0 égal ~ 0x3F en calculant en u16 (voir remarque)
donc
x & 0xffc0 = x & ~ 0x3F
= x / 0x40 * 0x40
donc les conditions suivantes sont équivalentes :
x & 0xffc0 == 0x0000x / 0x40 * 0x40 == 0x / 0x40 == 0x < 0x40or x = *(u16*)(p+2) correspond à la taille du paquet donc :
taille du paquet est < 0x40
Ce raisonnement, juste pour analyser une partie d'une commande "tc filter ... match", c'est quand même très laborieux.

Je trouve le système de filtrage de tc pénible à souhait, au contraire des filtres iptables.

En fait, plus je me documente sur les possibilités de discriminations IP de linux, plus je trouve que :
- c'est hyper compliqué;
- différents sous-systèmes semblent suivre une philosophie différente;
- du point de vue conception orientée vers l'administrateur, c'est zéro : plus abscons c'est difficile à imaginer;
- l'administrateur n'a aucun indice sur ce qui est efficace ou non (est-ce que beaucoup de règles iptables à la suite est efficace? on ne sait pas comment c'est implèmenté);
- dans le pur style linux, on aligne des règles à la suite au lieu de permettre des expressions complexes comme un véritable langage avec une grammaire récursive;
- la doc de chaque sous-système mentionne assez peu les autres; par exemple PREROUTING a lieu avant ou après l'examen des règles de routage pour un paquet généré localement? intuitivement il faut que ça soit après, mais ça n'est pas expliqué dans la doc de iptables;
- le comportement de la pile IP dépend de 42000 sysctl mal voir pas documentés du tout, ou documentés plusieurs fois avec une plage de valeurs permises différentes.

Je pense que le seule façon de débroussailler tout ça serait de tout décrire dans un formalisme rigoureux - si ce n'est pas déjà trop tard.

Les réponses a toutes les questions qu'on peut se poser doivent se trouver au beau milieu d'une discussion sur une de ML des dév. C'est là qu'est la vraie doc de linux.

Est-ce qu'une seule personne a une vision d'ensemble du circuit que peut faire une trame réseau dans un pont/routeur/... linux?

Je trouve ça vaguement monstrueux (dans le style de Firefox ou du C++).

corrector

  • Invité
Taille du tampon des modems
« Réponse #27 le: 23 mai 2011 à 06:53:33 »
En fait, le réel problème est que les routeurs adsl ont souvent un vilain défaut, ils mémorisent les paquets à èmettre pour en perdre le moins possible (jusqu'à plusieurs secondes).
Tous? Lesquels?

Quelqu'un a fait une étude?

jobarjo

  • réseau Quentiop (78)
  • Abonné KIWI fibre optique
  • *
  • Messages: 99
  • Futur ancien abonné Kiwi fibre optique
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #28 le: 23 mai 2011 à 12:51:46 »
@corrector

Ce problème se posait en effet il y a quelques années. Le symptome était simple, lorsqu'il y avait de l'upload (P2P ou autre), la ligne internet était inutilisable, aussi bien chez wanadoo (avec un modem speedtouch je crois à l'époque), que chez free avec leur freebox.

Le script wondershaper réglait efficacement ce problème.
Je suis d'accord avec vous que c'est une bidouille, mais je vous garantis que çà fonctionne parfaitement.

Il se trouve qu'après quelques années, ce script n'était plus nécéssaire chez free à la suite d'un update de leur part. Ils n'ont pas précisé quels algorithmes de QOS ils ont utilisés, mais le problème était réglé.
Maintenant, je ne sais pas si ce problème existe ou non chez les autres FAI. Peut être qu'ils l'ont tous réglé.

Ce sont les auteurs de wondershaper qui indiquent que la plupart des modems (peut être de l'époque?) ont ce problème. En effet, aux débuts de l'internet, et même de l'adsl, il n'était même pas autorisé de partager la ligne internet entre plusieurs utilisateurs chez la plupart des FAI. Cà explique pourquoi les fabricants choisissaient la bête FIFO pour perdre le moins de paquets possible.

Wondershaper est très vieux. Comme je l'ai dit, je pense qu'il existe d'autres solutions plus élégantes comme par exemple le SFQ qui fait simplement une queue par flow. Mais je ne l'ai pas testé, faute de besoin. De plus mixer des algorithmes de QOS les uns derriere les autres n'est pas trop utile.

corrector

  • Invité
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #29 le: 23 mai 2011 à 18:52:57 »
Le script wondershaper réglait efficacement ce problème.
pour un cas précis.

Il se trouve qu'après quelques années, ce script n'était plus nécéssaire chez free à la suite d'un update de leur part. Ils n'ont pas précisé quels algorithmes de QOS ils ont utilisés, mais le problème était réglé.
Ni même si une QOS quelconque était à l'œuvre, ou si autre chose que la QOS a été modifié.

Je ne possède pas de modem ADSL pour comparer les performances avec la Freebox.

Ce sont les auteurs de wondershaper qui indiquent que la plupart des modems (peut être de l'époque?) ont ce problème. En effet, aux débuts de l'internet, et même de l'adsl, il n'était même pas autorisé de partager la ligne internet entre plusieurs utilisateurs chez la plupart des FAI.
Je n'ai connaissance de ce genre de clause qu'avec un abonnement câble. De toute façon c'est parfaitement inapplicable : de l'extérieur, plusieurs PC derrière un SNAT apparaissent comme un seul PC.

Cà explique pourquoi les fabricants choisissaient la bête FIFO pour perdre le moins de paquets possible.
Je ne suis pas certain que la bête FIFO perde le moins de paquets, cela dépend de beaucoup de paramètres.

vivien

  • Administrateur
  • *
  • Messages: 47 271
    • Twitter LaFibre.info
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #30 le: 23 mai 2011 à 19:01:56 »
Je n'ai connaissance de ce genre de clause qu'avec un abonnement câble. De toute façon c'est parfaitement inapplicable : de l'extérieur, plusieurs PC derrière un SNAT apparaissent comme un seul PC.
Avant, avec Wanadoo il était interdit de partager sa connexion (c'était avant l’arrivée de la livebox)

corrector

  • Invité
Partage de connexion
« Réponse #31 le: 23 mai 2011 à 20:37:42 »
Avant, avec Wanadoo il était interdit de partager sa connexion (c'était avant l’arrivée de la livebox)
Comment ils contrôlaient ça?

vivien

  • Administrateur
  • *
  • Messages: 47 271
    • Twitter LaFibre.info
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #32 le: 23 mai 2011 à 21:15:23 »
C'est juste les CGV...

Par contre la déconnexion toutes les 24h pour éviter que l'ADSL ne concurrence les liaisons louées, ça elles étaient bien présentes.
Officiellement c'est pour éviter les connexions fantômes mais d'autres FAI arrivent très bien à ne pas provoquer ces déconnexions.

jobarjo

  • réseau Quentiop (78)
  • Abonné KIWI fibre optique
  • *
  • Messages: 99
  • Futur ancien abonné Kiwi fibre optique
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #33 le: 23 mai 2011 à 21:33:19 »
Mon cher corrector, vous êtes du genre "persévérant"   ;)

Voici l'email de juillet 2005 indiquant la prise en compte de la QoS upload:
Citer
From : Maxime Bizon
Date : Fri, 01 Jul 2005 19:49:07 +0200
User-Agent : Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Bonsoir,

Un nouveau firmware a été déployé pour les Freebox v3 et v4 des dégroupés et non dégroupés.

Au menu :

- correction du bug de débit apparaissant avec certains modèles de cartes Wifi (chipset TI).

- il est maintenant possible de rediriger des plages complètes de ports, l’interface de configuration du mode routeur a été mise à jour. L’interface sur le téléviseur les fait également apparaître.

- pour les _dégroupés uniquement_, les redirections en mode routeur fonctionnent désormais en interne.

- l’interface permettant de récuperer les informations techniques de la Freebox sur le téleviseur et maintenant disponible pour les non dégroupés.

- gestion de QOS en upstream, que ce soit en mode bridge ou en mode routeur. la Freebox procède désormais à une gestion intelligente du
traffic sortant. Le champ TOS des paquets émis est examiné, et chaque queue possède un gestionnaire intelligent et juste (SFQ). Ainsi un gros upload ne perturbe plus le surf.


- et... le Freeplayer ! Toutes les informations à ce sujet sont sur http://adsl.free.fr/tv/freeplayer/

Vous pouvez mettre à jour votre Freebox en redémarrant simplement celle-ci.


Maxime

Il semble même que le freebox soit sensible au champ TOS. De toute façon, ils étaient obligés de le gérer rien que pour le téléphone. Ils ont même mis beaucoup de temps je trouve, car avant cette modif, l'utilisation de la ligne avait un impact sur la qualité de la liaison téléphonique. (Je ne suis pas sur que la VOIP passe par son propre canal ATM)


Pour la clause de partage de la ligne, nous sommes d'accord, ce n'est pas vérifiable. Mais, même aujourd'hui, la plupart des contrats vous interdisent de revendre de la connectivité IP (avoir un hotspot par exemple pour revendre de l'internet à vos voisins ou à des passants). C'est invérifiable, mais il reste toujours des gens prêts à payer très cher juste pour retirer ce genre de clauses, et "être en règle".

corrector

  • Invité
QoS : rendre prioritaire les paquets TCP ack sortants
« Réponse #34 le: 26 mai 2011 à 05:48:03 »
Oui c'est vrai que j'avais pas pensé qu'un paquet avec le flag ACK pouvait contenir des données.
Tous les paquets sauf le premier d'une connexion TCP indiquent un numéro ACK.

Finalement, une solution plus "universelle" est de faire une queue par flow, et d'utiliser un algorithme comme le SFQ dans l'ONT (au niveau de la congestion)
Ce qui est plus propre.

Sinon, aucune réponse de kiwi sur le bug du port entrant à mes 2 emails. C'est très pénible d'accéder au service de 2 manières différentes selon que je sois à l'intérieur ou à l'extérieur de mon réseau. Impossible d'exploiter correctement la ligne internet avec la box.
Tu as quoi comme OS sur tes machines?

Est-ce que tu as un routeur entre la box et les autres machines?