Supposons qu'un bureau de personnes, ils veulent limiter les téléchargements HTTP à un maximum de 40% de bande passante de leur vitesse de connexion Internet afin qu'il ne bloque pas le reste du trafic.
Nous disons "ce n'est pas pris en charge dans votre pare-feu", et ils disent que la ligne inévitable "nous pouvions le faire avec notre Netgear / DLink / DrayTek".
En y réfléchissant, un téléchargement est comme ceci:
HTTP GET request
Server sends file data as TCP packets
Client acknowledges receipt of TCP packets
Repeat until download finished.
La vitesse est déterminée par la vitesse à laquelle le serveur vous envoie des données et la vitesse à laquelle vous les reconnaissez.
Donc, pour limiter la vitesse de téléchargement, vous avez deux choix:
1) Demandez au serveur de vous envoyer des données plus lentement - et je ne pense pas qu'il existe de fonctionnalité de protocole pour demander cela en TCP ou HTTP.
2) Reconnaissez les paquets plus lentement en limitant votre vitesse de téléchargement, et ruinez également votre vitesse de téléchargement.
Comment les appareils font-ils cette limitation? Existe-t-il une méthode standard?
la source
Réponses:
TCP lui-même implémente le contrôle de congestion.
Ces limiteurs de débit jetteront simplement les paquets au-delà de la limite. TCP gère cela, garantissant que tous les paquets arrivent et arrivent tous dans l'ordre; le client n'ACK pas pour les paquets abandonnés, et ils sont renvoyés par le serveur.
La pile TCP du serveur renverra les paquets, et il rappellera également un peu son débit d'envoi, car il suppose qu'il y a une congestion entre lui et le client. Cela accélérera jusqu'à ce que le limiteur de débit supprime à nouveau les paquets, etc.
la source
La meilleure description que j'ai jamais entendue qui donnait un sens à la méthode de limitation inhérente de TCP était hors d'un podcast Security Now récent . Pour citer Steve Gibson:
la source
3) Votre routeur / pare-feu place les données entrantes dans un compartiment QoS et ne vide ce compartiment qu'au taux que vous avez demandé. Les données entrantes s'adapteront à cette vitesse car les ordinateurs à l'intérieur ne verront que l'accusé de réception à cette vitesse. En outre, le paquet abandonné occasionnellement (délibérément) fonctionne très bien pour ralentir une connexion.
Lorsque vous essayez de trouver un périphérique qui gère cela, recherchez QoS (Quality of Service) dans la configuration / documentation. Les boîtes Linux (ou BSD) sont également pratiques pour cela.
la source
Vous utilisez un pare-feu ou un périphérique prenant en charge la limitation de la qualité de service (QoS).
Vous pouvez créer un système Linux pour servir de passerelle de bureau et lui faire utiliser la mise en forme du trafic pour y parvenir. Il suffit d'installer plusieurs cartes réseau et chaque machine pointe vers est une passerelle.
En prime, vous pouvez également configurer un serveur proxy pour faciliter le trafic. Quelque chose comme Squid. Il peut également y avoir des distributions d'appliance de routage clé en main.
la source
Le protocole HTTP ne fournit pas de fonctionnalités pour limiter la bande passante utilisée, et même si c'était le cas, ce serait un paramètre côté client, sur lequel les administrateurs réseau ne pourraient avoir aucun contrôle.
La limitation de la bande passante (également appelée «qualité de service») est généralement gérée sur des routeurs / pare-feu, qui gèrent tout le trafic entrant et sortant vers / depuis un réseau; ceux qui le prennent en charge vous permettent généralement de configurer des stratégies telles que «laissez n'importe quel ordinateur client utiliser au maximum 10% de toute la bande passante disponible» ou «donnez la priorité SMTP au FTP afin que les e-mails puissent circuler même lorsque quelqu'un effectue un téléchargement lourd ".
La manière exacte dont cela est accompli dépend du routeur / pare-feu utilisé, mais le moyen le plus simple consiste à simplement jeter les paquets qui dépassent les limites configurées; TCP veillera à ce qu'ils soient retransmis et pourra éventuellement passer à travers le goulot d'étranglement.
la source