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

Réseau C Discussion :

mesure de débit


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut mesure de débit
    Bonjour,
    Voilà je réalise une application en c avec laquelle je doit mesurer des débits. Je souhaite faire quelque chose qui resemble un peu au débit que l'on voit dans emule ou un client torrent comme azureus. J'aimerai savoir comment cela marche et qu'elle est le principe de fonctionnement de ces débits.

    J'ai essayer pour ma part de faire ceci pour vous expliquer un peu le principe:
    1° capture de temp
    nRead = receive de mon socket
    2° capture de temp
    mon débit est égale à = nRead / (2° - 1°)

    Le problème avec c'est façon de faire dépend de la résolution de la fonction qui capture le temp. Il m'arrive tout le temps d'avoir (2°-1°) = 0 car je reçoit tres peu de données. C'est pourquoi j'aimerai savoir comment fait la mule ou autre pour donner un débit moyen et/ou instantanée.

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Par défaut
    Moi je verrais le truc comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Server         Client
    ------         ------
                    initialize sizeToSend
    :1             time1
    wait          send file
    recv file     wait
    end recv    wait
    send ok     time2
    goto 1       speed = sizeSend / (time2 - time1)
    Ensuite la moyenne pourrait etre calculé comme suit: (calcul peut précis)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(mean == 0)
            mean = speed;
    else{
            mean += speed;
            mean /= 2;
    }
    Pour calculer la vitesse moyenne, ce serait peut etre plus réaliste de mettre en mémoire plusieurs vitesses par exemple 10 et ensuite de faire leur moyenne.

    De plus pour avoir une vitesse réaliste il faut envoyer de gros fichier, il faudrait faire varier leur taille entre 100kB et 1MB.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut
    oulala oulala 100kB à 1MB, je ne peut pas générer autant de données. Les trames que j'envoie font a tout cassé 20 à grand maxi 30 octets. De plus je souhaite pouvoir avoir un débit d'un flux de donnée en temp réel. De plus si je vous dit que je fait des mesures depuis un module GPRS (c'est à dire que l'on paye au volume de données 5Mo = 5 euro), on a vite fait de changer de carte sim.

    N'y a t'il pas un autre moyen de procéder pour faire ces mesures? Merci.

  4. #4
    Membre expérimenté Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Par défaut
    20 ou 30 octets ? On est pas du tout dans les memes cas d'utilisation que ceux que tu cites alors.

    Tu as vu ce que te font les programmes que tu cites au depart (les premieres secondes, voir la premiere minute) ? Ou meme ton navigateur quand tu demarres un telechargement ? Ils t'indiquent des valeurs fantaisistes qui peu a peu convergent vers la valeur reelle. Et pourtant ils fonctionnent sur des lignes 56K, 512K voir plus, donc en quelques secondes ils ont envoyés bien plus que 20 ou 30 octets !

    Franchement j'ai du mal a voir comment tu veux calculer un débit avec des messages de 20 ou 30 octets...J'ignore la vitesse d'un lien GPRS mais c'est surement bien plus rapide que 20B/s (impossible de faire de la communication vocale en 20B/s) donc le temps que tu demarres ta mesure, c'est quasiment deja fini.

    Quelle est l'utilité de cette mesure ? Peut etre y a t il un autre moyen de faire ce que tu souhaites

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Par défaut
    Le but de mon programme est plutôt simple, j'ai une trame de données 20 à 30 octets (dedans il y a divers paramètre provenant d'un bus CAN ). J'envoie de manière répété cette trame au travers de socket pour avoir un flux de donnée en temps réel. Et je cherche a avoir le débit de ce flux de données. Comme je travail avec du GRPS, connaître le débit est important suivant ou se trouve le module GPRS.

    voici un peu le principe de mon débit :
    do
    1° capture ma trame
    2° je l'envoie
    while (tant que j'ai pas dit stop)

    et c'est à la réception que je veut pouvoir avoir le débit réel et/ou moyen

    En tout cas merci de votre aide

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    eh ben dans ton message envoyé tu ajoutes le timestamp d'envoi....

    Tu as donc 2 parties dans ton message :

    timestamp
    trame

    quand tu lis, tu décodes, et tu fais la différence avec le timestamp d'envoi..

    Mais vu la granularité du temps et la vitesse des réseaux et la petite taille de tes paquets, ça va t'obliger à coder un timestamp au moins à la milliseconde, mais plus vraisemblablement à la microseconde...

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

Discussions similaires

  1. [winpcap] probleme de mesure de débit
    Par boboss123 dans le forum Réseau
    Réponses: 0
    Dernier message: 14/06/2012, 17h30
  2. [Web/Reseaux] Mesure du Débit Internet
    Par Pasqualini dans le forum C++Builder
    Réponses: 7
    Dernier message: 05/12/2011, 18h46
  3. mesurer le Débit d'une connexion avec EJB
    Par EJB_Problem dans le forum Java EE
    Réponses: 0
    Dernier message: 12/04/2011, 17h00
  4. [mrtg] mesure du débit en temps réel
    Par nuxia dans le forum Réseau
    Réponses: 1
    Dernier message: 25/03/2008, 09h58
  5. applet qui mesure le débit
    Par mdlleréseau dans le forum Applets
    Réponses: 1
    Dernier message: 12/02/2008, 14h24

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