assurer paquet de commande en UDP
im à l'aide de 2 ordinateurs avec une application pour envoyer et recevoir des datagrammes udp.
il n'y a pas de contrôle de flux ICMP (désactivé)
souvent quand j'envoie un fichier en tant que datagrammes udp via l'application, j'obtiens 2 paquets de modification de leur ordre et à cet effet, - packetloss.
est-il un moyen de assurez-vous de winsock et send() va envoyer les paquets de la même manière qu'ils arrivés là?
ou est l'OS le faire? ive désactivé et le type de pare-feu et il n'y a pas de commutateur matériel connecté entre les ordinateurs (ils sont câblés directement).
configuration des périphériques réseau nécessaire?
grâce
OriginalL'auteur Davidallencoe | 2010-09-19
Vous devez vous connecter pour publier un commentaire.
UDP est un protocole léger qui, par définition, ne gère pas les choses comme les paquets de séquençage. TCP est un meilleur choix si vous voulez robuste de livraison de paquets et le séquençage.
UDP est généralement conçu pour les applications où la perte de paquets est acceptable ou préférable pour le retard TCP qui contracte quand il a re-paquets de demande. UDP est donc couramment utilisé pour la diffusion multimédia en continu.
Si vous êtes limité à l'aide du protocole UDP que vous auriez à développer une méthode d'identification de la de la séquence de paquets et de remise en ordre.
OriginalL'auteur PaulG
UDP ne garantit pas que les paquets arrivent dans l'ordre. (Il ne prend même pas la garantie que vos paquets arriver à tous.) Si vous avez besoin de ce niveau de robustesse, vous êtes mieux avec le protocole TCP. Vous pouvez également ajouter des marqueurs de séquence pour votre datagrammes et les réarranger à l'autre extrémité, mais pourquoi réinventer la roue?
Ce n'est pas tellement une question de l'expéditeur de l'envoi de paquets dans le bon ordre pour que le récepteur puisse remonter dans le bon ordre. Comme je l'ai dit, ajouter les marqueurs de séquence à un certain niveau approprié.
UDP ne garantit qu'un paquet arrivera intact ou pas du tout (c'est à dire, il a une somme de contrôle) et il ajoute également des numéros de port raw IP. Il n'a pas de garantie de livraison ou de séquençage; ceux-ci sont ce que le protocole TCP ajoute (par gros crier un paquet jusqu'à l'autre extrémité dit qu'il est arrivé). Garanti correct dans l'ordre de livraison est également assez que vous pouvez prétendre que vous avez un flux de données (d'où le protocole TCP est un streaming socket, car c'est assez souvent que désiré).
OriginalL'auteur crazyscot
Il est appelé TCP.
Sinon, d'essayer fiable protocole UDP comme UDT. Je devine que vous pourriez être sur une petite plate-forme embarquée si vous voulez un plus compact protocole comme Bell Lab RUDP.
OriginalL'auteur Steve-o
Vous pouvez implémenter votre propre contrôle de flux en utilisant UDP:
Voir Protocole à fenêtre glissante pour plus de détails.
[Ce serait en plus de avoir un numéro de séquence dans les paquets que vous envoyez.]
OriginalL'auteur ChrisW