2010-11-03 5 views
0

Je vais développer une application Android qui transfère le fichier musical, échange de contacts, chat vocal, chat de texte, etc. via le WiFi. Quel protocole conviendra à mon application UDP ou TCP. Parce que les deux protocoles ont des mérites et des démérites. U peut me donner quelques suggestions, il sera utile pour moi ..Quel est le meilleur protocole TCP ou UDP?

Merci à l'avance

Répondre

7

Si vous ne savez pas ce qui est le mieux pour votre application, vous devez utiliser TCP. Quand vous comprendrez mieux le TCP et ses limites, vous voudrez peut-être vous plonger dans le monde mystérieux d'UDP.

+0

Bon pour répondre directement au cas le plus courant! – Guillaume

+0

UDP: Si vous avez besoin de demander, vous ne pouvez pas vous le permettre. – configurator

1

TCP. UDP ne fournit pas de transfert fiable, ce qui semble essentiel pour les applications que vous décrivez. Par exemple, si vous échangez des coordonnées et que la moitié d'un numéro de téléphone n'est pas reçu à l'autre extrémité - ce qui est très possible avec UDP, comment vous en sortiriez-vous?

0

Vous devez utiliser TCP, car vous voulez vous assurer que vos paquets arrivent réellement.

TCP a un peu de temps de traitement et de bande passante mais s'assure que vos paquets arrivent vraiment et renvoie ceux qui n'ont pas été rapportés pour être arrivés.

UDP est le plus couramment utilisé dans les scénarios où l'arrivée de tous les paquets n'est pas critique, par ex. si vous mettez à jour les données de mouvement dans un jeu d'action comme un tireur de première personne. Mais même alors, j'utiliserais TCP ces jours-ci.

2

Si l'on était le meilleur (universellement), l'autre n'existerait plus ...

Si vous voulez vous assurer que les données que vous envoyez est vraiment correct livré au client: utilisation TCP.

Si vous êtes l'application est la performance critique et/ou est un facteur bandwith limitant et les paquets de données sont de petite taille (tenir dans un cadre), utilisez UDP. Dans votre cas, j'utiliserais TCP/IP, car pour le streaming ou les big data, il est nécessaire que toutes les images arrivent dans la bonne séquence (ou puissent être commandées par le client).

1

TCP:

Ce protocole est le plus couramment utilisé, la raison est la fiabilité de la livraison de paquets, comme chaque paquet est garanti pour arriver à sa destination. il est plus couramment utilisé pour des choses comme le streaming des médias, où vous ne souhaitez pas disposer de données dernières/

Avec TCP, ses légèrement plus lent que UDP et a plus de fonctionnalités:

  • transfert de données Ordonné - l'hôte de destination réarrange en fonction du numéro de séquence
  • retransmission de paquets perdus - tout flux cumulatif non reconnu est retransmis
  • transfert de données sans erreur (la somme de contrôle dans UDP est optionnelle)
  • contrôle du flux - limite la vitesse d'un émetteur transfe rs données pour garantir une livraison fiable.Le récepteur indique continuellement à l'expéditeur la quantité de données pouvant être reçue (contrôlée par la fenêtre coulissante). Lorsque le tampon de l'hôte de réception se remplit, l'accusé de réception suivant contient un 0 dans la taille de la fenêtre, pour arrêter le transfert et permettre le traitement des données dans le tampon.
  • contrôle Congestion

Source @Wikipeida > Transmission Control Protocol -> Data transfer

TCP serait le plus meilleur choix pour commencer avec comme le plus de commentaires et a une plus large gamme de fonctionnalités

0

L'application que vous parlez A propos a un large éventail d'exigences en termes de mise en réseau. Vous voudrez peut-être envisager d'utiliser:

  • TCP: pour le retard des besoins tolérants par exemple transfert de fichiers/messages en temps différé
  • UDP: pour des besoins d'intolérance au retard, par ex. voix

Avec TCP, retransmission est intégrée ce que vous n'obtenez pas avec UDP. Vous ne voulez pas retransmettre des paquets vocaux (par exemple).

Questions connexes