Auteur Sujet: Pourquoi un Speedtest n'est pas un DoS  (Lu 1036 fois)

brupala et 11 Invités sur ce sujet

Leon

  • Abonné Bbox fibre
  • Modérateur
  • *
  • Messages: 6 708
Pourquoi un Speedtest n'est pas un DoS
« Réponse #36 le: Hier à 21:14:43 »
- Les algo de flow control TCP sont utiles tout le temps, et les effets se font sentir dès que l'application pourrait pousser/tirer plus de débit qu'il ne peut en passer sur la liaison, ce qui est très très fréquent:
Comment on peut pousser plus que la capacité de la liaison  ??
Comment on pourrait pousser plus que ne permet la liaison s'il n'y avait pas de flow control? C'est très simple. Internet c'est constitué de liaisons mises bout à bout qui ont chacune des débits très différents.
Il existe des liaisons à 400Gb/s ou 1Tb/s (entre gros routeurs) et des liaisons à 1Mb/s (un smartphone 4G/5G en limite de réception). Facteur 1 million entre les deux...

Exemple concret: un serveur connecté à 10Gb/s à Internet pourra pousser les 10Gb/s. Un accès FTTH 1Gb/s ne sait recevoir que 1Gb/s.
Le serveur sait pousser physiquement disons 8 ou 9Gb/s constants sans difficulté. En UDP (si aucun bridage routeur), tu sais pousser 8Gb/s vers le client 1Gb/s.
Donc la liaison entre les deux est limitée à 1Gb/s et ton flux UDP à 8Gb/s va saturer/DoS la connexion du client FTTH, la rendre inutilisable. Saturation du buffer de l'ONT qui va rejeter la majorité des paquets, grosse perte de paquets.
C'est bien pour ça qu'on a des bridages UDP sur certains accès FTTH (tous?) ou des serveurs (VPS, serveur dédié), pour éviter de pourrir, de faire du DoS avec de l'UDP, c'est très facile de faire du DoS avec de l'UDP.

En TCP, grâce au flow control naturel de TCP, toujours avec le même serveur et le même client, le débit s'adapte automatiquement au facteur limitant, donc à un peu moins de 1Gb/s dans notre exemple, même si le serveur sait pousser beaucoup plus. Et l'accès FTTH reste utilisable pour d'autres usages en parallèle, car le flow-control TCP va "respecter" les autres flux en parallèle qui passent par le lien à 1Gb/s.

Leon.
« Modifié: Hier à 22:30:16 par Leon »

brupala

  • Abonné Free fibre
  • *
  • Messages: 286
  • Tours (37)
Pourquoi un Speedtest n'est pas un DoS
« Réponse #37 le: Hier à 23:03:32 »
Comment on peut pousser plus que la capacité de la liaison  ?? Comment on pourrait pousser plus que ne permet la liaison s'il n'y avait pas de flow control? C'est très simple. Internet c'est constitué de liaisons mises bout à bout qui ont chacune des débits très différents.
Il existe des liaisons à 400Gb/s ou 1Tb/s (entre gros routeurs) et des liaisons à 1Mb/s (un smartphone 4G/5G en limite de réception). Facteur 1 million entre les deux...

Exemple concret: un serveur connecté à 10Gb/s à Internet pourra pousser les 10Gb/s. Un accès FTTH 1Gb/s ne sait recevoir que 1Gb/s.
Le serveur sait pousser physiquement disons 8 ou 9Gb/s constants sans difficulté. En UDP (si aucun bridage routeur), tu sais pousser 8Gb/s vers le client 1Gb/s.
Donc la liaison entre les deux est limitée à 1Gb/s et ton flux UDP à 8Gb/s va saturer/DoS la connexion du client FTTH, la rendre inutilisable. Saturation du buffer de l'ONT qui va rejeter la majorité des paquets, grosse perte de paquets.
C'est bien pour ça qu'on a des bridages UDP sur certains accès FTTH (tous?) ou des serveurs (VPS, serveur dédié), pour éviter de pourrir, de faire du DoS avec de l'UDP, c'est très facile de faire du DoS avec de l'UDP.

En TCP, grâce au flow control naturel de TCP, toujours avec le même serveur et le même client, le débit s'adapte automatiquement au facteur limitant, donc à un peu moins de 1Gb/s dans notre exemple, même si le serveur sait pousser beaucoup plus. Et l'accès FTTH reste utilisable pour d'autres usages en parallèle, car le flow-control TCP va "respecter" les autres flux en parallèle qui passent par le lien à 1Gb/s.

Leon.
On tourne vraiment en rond avec ces explications qui n'en sont pas:
Une liaison c'est une chaine et son débit total est celui du maillon le plus faible, donc le dernier lien dans ton exemple (très répandu effectivement).
Bien sûr le serveur peut pousser 10 fois  plus, mais sur d'autres connexions tcp et sur d'autres clients.
Après, le flow control TCP ne gère que sa propre connexion, il ne s'occupe pas des connexions voisines, juste de ce qui est disponible pour lui sur la ligne et si effectivement d'autres l'occupent aussi, il devra réduire son flux, non pas pour protéger les autres, mais parce que les autres ne lui laissent pas la place, et si ta connexion baisse trop, les autres prendront la place si ils en ont besoin, il peinera à la reprendre, c'est le multiplexage statistique, ou dans le cas d'un arbre gpon, temporel dynamique (à un moindre degré car l'OLT va garder plus d'opportunités à chacun).
Quand à UDP, si il envoie 10 fois plus que le dernier lien peut supporter, 90% des paquets passeront à la poubelle  au niveau des files d'attente du dernier routeur, qui ne peut pas empiler indéfiniment, soit ils ne comportent pas d'information importante et ça fera des trous dans de la voix ou de la pixelisation sur une vidéo, soit l'appli devra refaire une requête pour ce qui est perdu en espérant que ça passe, bien sûr les autres connexions tcp ou autres ne passeront pas non plus, donc DOS, plouf  :-\
Il vaut donc mieux qu'un émetteur UDP soit réglé par l'appli qui l'utilise et suspende ses envois en attendant des acquittements applicatifs (je pense à un transfert TFTP par exemple) car la plupart des connexions UDP sauf streaming RTP c'est une requête et on attend une réponse avant d'en envoyer une autre, en évitant les réponses trop longues .

nicox11

  • Abonné MilkyWan
  • *
  • Messages: 234
  • Toulouse (31)
Pourquoi un Speedtest n'est pas un DoS
« Réponse #38 le: Aujourd'hui à 10:50:45 »
Il est assez dur de t'expliquer car tu pars avec trop d'apriori.

Pour une affirmation fausse :
Citer
Comment on peut pousser plus que la capacité de la liaison  ??

Tu vois tout le texte de Leon nécessaire à t'expliquer pourquoi oui on peut.
Sauf que tes posts sont remplis d’apriori, souvent faux.

Si tu veux vraiment comprendre, laisse tout tes aprioris de côté et pose toi la question du comment.
Pour chaque élément que où tu émets l'hypothèse, vérifie si c'est vraiment le mécanisme que tu imagines derrière.

Car ça risque de prendre du temps de t'expliquer si à chaque fois tu poses des bases fausses.

Quelques éléments à revoir sur tes derniers posts où tu as l'air sur de toi sans vraiment savoir l'élément sous jacent:

Citer
Bien sûr le serveur peut pousser 10 fois  plus, mais sur d'autres connexions tcp et sur d'autres clients.
=> tu sembles pas avoir bien compris le poste de Leon. Tu peux envoyer 10 fois plus qu'une liaison d'un client. Exemple plus tôt de vivien sur le DOS de 20G vers un client. La deuxième partie de ton affirmation est donc fausse. Sauf que tu as l'air sur de toi sur ce point.


Citer
juste de ce qui est disponible pour lui sur la ligne et si effectivement d'autres l'occupent aussi, il devra réduire son flux
Affirmation, pose toi la question du comment derrière. Quel mécanisme est utilisé ?

Citer
non pas pour protéger les autres, mais parce que les autres ne lui laissent pas la place
Comment ?

Citer
et si ta connexion baisse trop, les autres prendront la place si ils en ont besoin, il peinera à la reprendre
Comment et pourquoi ?

Citer
c'est le multiplexage statistique, ou dans le cas d'un arbre gpon, temporel dynamique (à un moindre degré car l'OLT va garder plus d'opportunités à chacun).
Je connais moins le gpon mais ça parait confus aussi.

Tu dois te poser la question du comment pour chaque affirmation que tu donnes.
J'ai l'impression que tu affirmes des choses sans vraiment savoir le mécanisme technique sous jacent.
Si tu ne sais pas décrire précisément le mécanisme qui appui tes affirmations, c'est qu'il y a des chances que tes affirmations sont fausses.


brupala

  • Abonné Free fibre
  • *
  • Messages: 286
  • Tours (37)
Pourquoi un Speedtest n'est pas un DoS
« Réponse #39 le: Aujourd'hui à 12:39:12 »
Il est assez dur de t'expliquer car tu pars avec trop d'apriori.

Pour une affirmation fausse :
Tu vois tout le texte de Leon nécessaire à t'expliquer pourquoi oui on peut.
Sauf que tes posts sont remplis d’apriori, souvent faux.
.......

C'est encore plus difficile d'expliquer quand on se contente de porter un jugement sans aucun argument autre que "puisqu'on te le dit" :o
Personne ne pourra me faire croire qu'envoyer 10 Gbit/s sur une ligne qui est physiquement à 1 Gbit/s est possible, même si tous les liens avant sont à 40 Gbit/s. ça pourrait l'être en 10 fois plus de temps, bien sûr, si on avait une bufferisation gigantesque et des attentes d'acquitement tout autant énormes, mais ça n'existe pas à  grande échelle, le débordement passe à la poubelle, plouf....