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 :

Forcer l'envoi de données sur le réseau.


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut Forcer l'envoi de données sur le réseau.
    Bonjour,

    J'aimerai savoir si il est possible de forcer l'envoi de données lorsqu'on utilise des sockets stream.
    Je sais déja qu'il est possible de désactiver l'algorithme de Nagle avec l'option TCP_NODELAY, mais ce n'est pas exactement ce que je veut faire.

    Donc, est il possible de faire plusieurs write sur une socket, et a un moment, de forcer l'envoi de ces données sans prendre en compte le délai de quelques microsecondes imposé par Nagle en utilisation classique?

    PS: tout cela sur linux 2.6 ou plus grand...

  2. #2
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 851
    Points : 2 293
    Points
    2 293
    Par défaut
    Ta question m'a interloqué car je ne me l'étais jamais posée. En effet, soit j'utilisais directement TCP_NODELAY soit je ne m'en servais pas. Après quelques recherches, je suis tombé sur un topic qui en parlait. Apparemment ce ne serait pas possible mais je vais quand même continuer à chercher car la réponse m'intéresse.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    La question reste ouverte, personnellement, je ne voie pas pourquoi il serait impossible de faire ça puisque l'algorithme de Nagle le fait lui même tout seul...

    Une Idée, une direction?

  4. #4
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 851
    Points : 2 293
    Points
    2 293
    Par défaut
    Les seules pistes que j'ai pu "trouver" (au final je n'ai jamais réellement trouvé exactement ce que tu veux) parlent des sockets RAW. Je crains que tu ne doivent gérer cela par toi-même...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Je n'est toujours pas résolu ce problème, personne ne sait au moins si c'est possible?

  6. #6
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 601
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    En fait la question qui se pose est :

    pourquoi aurais-tu besoin de faire ça ? (en dehors du challenge théorique)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Et bien pour des basses raisons de performances.
    Cela permet de faire des échanges de questions / réponses très rapide (un protocole home-made et donc forcement sur des paquets de petite taille puisque l'on n'envoie quasiment rien) suivi d'un envoi massif de données et donc sur des paquets de grande taille.

    Bref, si je désactive NAGLE, la phase protocolaire est rapide, mais l'échange de données l'est moins... (en plus cela augmente la charge de la pile réseau a cause du nombre de paquets).
    Au contraire si je laisse NAGLE activé, la phase protocolaire est lente (très lente) mais l'échange de données est rapide et le nombre de paquets est petit.

    Le fait de pouvoir "Flusher" le buffer de la pile tcp permettrais donc alors d'avoir les avantages cumulés des deux phases et de n'utiliser qu'un nombre minimum de paquets (donc moins d'overhead).

  8. #8
    Expert éminent sénior

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 601
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Honnetement, je pense que ca doit venir d'autre part.

    J'ai deja eu l'occasion de faire ce genre de protocole, et je n'ai jamais ete limite.

    J'ai plutot l'impression que c'est l'encodage/decodage des donnees qui est a revoir.

    Un peu de code en exemple de tes problemes ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    ingenieur calcul haute performance
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingenieur calcul haute performance
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Honnetement, je pense que ca doit venir d'autre part.

    J'ai deja eu l'occasion de faire ce genre de protocole, et je n'ai jamais ete limite.

    J'ai plutot l'impression que c'est l'encodage/decodage des donnees qui est a revoir.
    Je pense que l'on ne se comprend pas bien.
    Je n'ai pas de probleme majeur avec l'implementation que j'ai developée.....
    Mon application fonctionne bien, je cherche juste une solution a un probleme technique qui permettrai de pousser les machines de calculs dans leurs retranchements.

    Donc la chose qui m'interese est simplement la PERFORMANCE RESEAU, et également le challenge théorique.

    Cordialement.

Discussions similaires

  1. Créer une base de donnée sur un réseau
    Par mohamed2006 dans le forum Débuter
    Réponses: 3
    Dernier message: 08/03/2007, 00h09
  2. Réponses: 3
    Dernier message: 21/11/2006, 18h59
  3. [VBA Excel]Envoie de données sur port serie
    Par Farbin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/08/2006, 09h05
  4. envoi de données sur un même port
    Par manaboko dans le forum Développement
    Réponses: 7
    Dernier message: 05/10/2005, 16h53
  5. [PHP-JS] Envoi de données sur une même page...
    Par dudux dans le forum Langage
    Réponses: 8
    Dernier message: 14/09/2005, 14h51

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