IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment limiter la bande passante d'un programme qu'on écrit sous windows ?


Sujet :

C++

  1. #1
    Membre averti Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 344
    Points
    344
    Par défaut Comment limiter la bande passante d'un programme qu'on écrit sous windows ?
    Bonjour,

    j'ai un collègue qui a le souci suivant :

    Un appareil va être relié au réseau en 56K. Derrière ça, un point d'accès WiFi. Deux unités doivent se connecter en WiFi et envoyer des données.

    Le hic c'est que les deux unités n'ont pas connaissance l'une de l'autre et ne peuvent donc pas se partager intelligemment la ressource que constitue la bande passante avec une astuce du style découpage temporel. Le point d'accès n'est pas configurable non plus.
    Sur chaque unité tourne un programme sur XP embedded je crois ... pas sûr non plus. Actuellement, apparemment la première unité qui se connecte mange toute la bande passante.

    Y'a-t-il une manière logicielle de limiter la bande passante dans le programme (on a les sources) ?

    Merci de vos éclairements.
    Lorsque vous avez trouvé solution à votre problème, n'oubliez pas de cliquer en bas de la page
    Besoin d'un photographe de mariage : http://www.triangle-photo.fr

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par MacPro Voir le message
    Bonjour,

    j'ai un collègue qui a le souci suivant :

    Un appareil va être relié au réseau en 56K. Derrière ça, un point d'accès WiFi. Deux unités doivent se connecter en WiFi et envoyer des données.

    Le hic c'est que les deux unités n'ont pas connaissance l'une de l'autre et ne peuvent donc pas se partager intelligemment la ressource que constitue la bande passante avec une astuce du style découpage temporel. Le point d'accès n'est pas configurable non plus.
    Sur chaque unité tourne un programme sur XP embedded je crois ... pas sûr non plus. Actuellement, apparemment la première unité qui se connecte mange toute la bande passante.

    Y'a-t-il une manière logicielle de limiter la bande passante dans le programme (on a les sources) ?

    Merci de vos éclairements.
    VLAN + QoS ? Ca devrauit permettre d'avoir un contrôle externe à l'application (ce qui est logique, puisqu'il y a plusieurs applications).

    Encore que sous Windows, je ne sache pas comment on fait. Quoi qu'il en soit, on est complètement en dehors de l'idée même de forum C++. C'est une question système, ou peut-être une question réseau, mais pas une question C++.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par MacPro Voir le message
    Y'a-t-il une manière logicielle de limiter la bande passante dans le programme (on a les sources) ?
    Oui mais ce n'est pas la méthode que je préconiserais. Un programme n'a normalement pas à se soucier de la bande passante qu'il a derrière. C'est à la limite le rôle du système qui héberge le programme mais surtout des équipements réseau, ils sont là pour gérer et optimiser cette bande passante, c'est leur boulot.

    Citation Envoyé par Emmanuel Deloget Voir le message
    C'est une question système, ou peut-être une question réseau, mais pas une question C++.
    Tout à fait.

    Maintenant, si tu veux absolument le faire par ton programme, le problème est assez simple.

    Tu dois avoir une fonction UNIQUE d'envoi de données. Dans cette fonction tu comptes le nombre d'octets à envoyer et le nombre d'octets envoyés lors de la dernière seconde (ou minute ou heure suivant ton besoin). Si ta bande passante allouée est dépassée, tu fais une pause ou tu rejettes le paquet ou encore tu le mets dans une queue pour le traiter plus tard.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre averti Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 344
    Points
    344
    Par défaut
    Salut, merci de ta réponse. J'ai hésité à le mettre ailleurs mais puisque les programmes à limiter en bande passante sont écrits en C++ alors voilà pourquoi j'ai posté ici.
    Lorsque vous avez trouvé solution à votre problème, n'oubliez pas de cliquer en bas de la page
    Besoin d'un photographe de mariage : http://www.triangle-photo.fr

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Oui mais ce n'est pas la méthode que je préconiserais. Un programme n'a normalement pas à se soucier de la bande passante qu'il a derrière. C'est à la limite le rôle du système qui héberge le programme mais surtout des équipements réseau, ils sont là pour gérer et optimiser cette bande passante, c'est leur boulot.
    Le truc étant que l'agorithme best-effort de Windows semble être assez... idiot. C'est le premier qui prends la connexion qui est prioritaire, et la connexion n'est pas du tout partagée équitablement entre deux programmes de même priorité utilisant une même bande passante.

    Du coup...

    Citation Envoyé par ram-0000 Voir le message
    Maintenant, si tu veux absolument le faire par ton programme, le problème est assez simple.

    Tu dois avoir une fonction UNIQUE d'envoi de données. Dans cette fonction tu comptes le nombre d'octets à envoyer et le nombre d'octets envoyés lors de la dernière seconde (ou minute ou heure suivant ton besoin). Si ta bande passante allouée est dépassée, tu fais une pause ou tu rejettes le paquet ou encore tu le mets dans une queue pour le traiter plus tard.
    Si demain, une décision impose l'utilisation de 4 programmes en parallèle, alors les paramètres de l'algo sont à revoir. Même problème si un autre programme tente d'accéder à la ressource réseau - il peut tout à coup décider de prendre la part allouée à une application. C'est pour ça qu'on gère généralement la QoS à l'extérieur des programmes - ça permet de "redonner à l'OS" (pas tout à fait vrai, mais bon) la primeur sur ce genre de choix, et donc d'avoir un contrôle plus fin sur ce qui se passe.

    Un programme comme Traffix Shapper XP prends tout ça à sa charge, ne nécessite aucune modif de code, et reste à u nprix abordable (gratuit) cf. http://bandwidthcontroller.com/trafficShaperXp.html.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  6. #6
    Membre averti Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Points : 344
    Points
    344
    Par défaut
    Merci beaucoup les gars. Je pense que je vais lui indiquer vos réponses et lui dire de jeter un coup d'oeil sur Traffix Shapper XP ou netlimiter ou bien d'essayer de comprendre ce qui se passe par là du coté des LSP.
    Lorsque vous avez trouvé solution à votre problème, n'oubliez pas de cliquer en bas de la page
    Besoin d'un photographe de mariage : http://www.triangle-photo.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. limiter la bande passante
    Par imeys dans le forum Administration
    Réponses: 2
    Dernier message: 19/06/2006, 21h06
  2. Programmation sockets : limiter la bande passante
    Par e-t172 dans le forum Développement
    Réponses: 2
    Dernier message: 14/12/2005, 15h22
  3. [Stratégie] Limiter la bande passante
    Par Neuromancer dans le forum Développement
    Réponses: 7
    Dernier message: 17/01/2005, 15h29
  4. Appication Client/serveur : Limiter la bande passante ?
    Par souch dans le forum Web & réseau
    Réponses: 8
    Dernier message: 25/07/2004, 14h53
  5. Limiter la bande passante
    Par naili dans le forum Réseau
    Réponses: 3
    Dernier message: 15/01/2004, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo