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 :

mode udp ou tcp problème


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut mode udp ou tcp problème
    Bonjour a tous.

    Voila , je vais faire au plus vite :

    problème : je veu faire une application client serveur par internet, au cours de mes étude j'ai beaucoup utilisé le mode udp. j'ai deja conçus l'application quand je configure pour envoyer les donnée sur ma propre machine cela fonctione mais lorsque je veu les envoyer a un amis par internet cela ne fonctione pas.

    question :
    - le mode udp n'est pas le meilleur moyen d'envoyer des données par internet ?
    - quel mode conseillez vous ?

    merci pour vos réponse et explication sur le sujet

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut re
    je pense que je n'utilise pas le bon mode de connexion.

    le TCP permet lui de contrôler la réception d'après ce que j'ai compris.

    qu'es ce que vous en pensez ?

  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 : 62
    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
    Par défaut
    Le mode TCP est un mode connecté, le mode UDP est un mode non connecté.
    En TCP tu as la garantie que le paquet arrive à destination et s'il n'arrive pas, tu as la garantie de le savoir. En UDP, tu ne PEUX pas savoir si le paquet est arrivé.

    Le mode TCP te permet du controle de flux avec la notion de fenetre d'envoi. Ceci n'existe pas en UDP.

    Le mode TCP te garantie que les paquets arriveront dans le même ordre que lors de l'envoi. En UDP, un paquet peut en "doubler" un autre (suivant les caprices du routage).

    Un socket TCP consomme plus de ressources sur une machine (contexte à maintenir, buffer de réception pour réorganiser les données, ...). Un socket UDP en consomme moins.

    Au niveau programmation, le socket UDP est plus facile à gérer que le socket TCP (bien que la difficulté ne soit pas beaucoup plus grande).

    TCP est plutôt utilisé pour l'échange de données (FTP, Telnet, WWW, ...) et pour les protocoles dans lesquels la notion de session et d'identification/authentification a un sens.

    UDP est plutôt utilisé pour la notification ou les protocoles très simples (SNMP, Syslog, Time, ...)

    Ceci dit, il y a des protocoles complexes implémentés sur UDP (NFS par exemple)

    Voila, tout cela, c'est des généralités et chacuns des points que j'ai dit possède son contre exemple. Maintenant, tu peux choisir TCP ou UDP.
    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 confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 76
    Par défaut re:
    merci ram_0000 je vais utiliser TCP alors.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    En TCP tu as la garantie que le paquet arrive à destination et s'il n'arrive pas, tu as la garantie de le savoir.
    C'est même encore pire... et résumé en une seule phrase: "TCP assure que *tous* les paquets arrivent *dans le même ordre* que leur envoi".
    Sinon, il y a erreur de connection et celle ci est interrompue.
    La seule garantie inexistante concerne le délai d'acheminement.

    La façon dont c'est implémenté (au dessus de IP) n'a que peu d'interêt pour cette discussion.

    UDP est juste une surcouche au dessus de IP (rajout des ports TCP/IP).
    UDP ne garantie rien *du tout* (ni la réception, ni l'ordre, ni même le délai d'acheminement).

    UDP c'est du "fire and forget" particulièrement adapté à tout ce qui est 'temps réel'. Et le programmeur a la charge des algorightmes de: rejet des vieux paquets (j'en ai déjà vu arriver avec 1 minute de retard) ou des paquets déjà reçus (ça peut arriver !) acknowledgement des paquets 'importants' (et renvoi si pas de ack), bufferisation des paquets "en avance"... etc...

    TCP c'est du "open and don't care", particulièrement adapté à la transmission de fichiers. Le programmeur n'a rien a faire, sauf gérer la connection.

    Pour tester UDP, il faut impérativement un "proxy UDP" (un programme qui renvoit vers un serveur/port donné tout ce qu'il recoit sur un port), éventuellement "defaillant" (qui de temps en temps simule une mauvaise connection).
    Si tu utilises l'interface de loopback, alors les paquets arriveront toujours, et toujours dans le même ordre ! Ca ne sert a rien, c'est comme écrire un unit-test pour vérifier que 2+2 == 4 !

    Pour tester TCP, on peut parfaitement utiliser l'interface de loopback (puisque c'est justement la couche en dessous qui gère les données), a condition de bien simuler des 'pertes' de connection intempestive.

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

Discussions similaires

  1. Port Scanner UDP/TCP Problèmes
    Par SmoZy dans le forum Réseau/Web
    Réponses: 19
    Dernier message: 18/06/2014, 16h29
  2. exemple mfcsoc mais en mode UDP
    Par doommick31 dans le forum MFC
    Réponses: 1
    Dernier message: 04/05/2007, 08h05
  3. Socket : UDP ou TCP
    Par lafracas dans le forum Développement
    Réponses: 2
    Dernier message: 10/04/2006, 22h43
  4. code c pour sockets (udp vers tcp et inversement)
    Par HiT dans le forum Développement
    Réponses: 11
    Dernier message: 19/11/2005, 18h03
  5. [Stratégie] Choix UDP ou TCP
    Par Yevetrovitch dans le forum Développement
    Réponses: 17
    Dernier message: 08/02/2005, 10h32

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