2010-05-01 4 views
0

Actuellement, je travaille sur un projet de vidéoconférence. Pour cela, j'utilise pwnat pour la traversée nat. pwnat est basé sur le tunneling udp. J'utilise la connexion TCP pour la transmission de données.paket drop et splits dans le tunnel udp

Mon problème est que lorsque j'envoie un paquet, il n'atteint pas correctement son côté de destination. Parfois, il laisse tomber le paquet et plusieurs fois il casse le paquet en morceaux.

S'il vous plaît aidez-moi ..

Comment puis-je envoyer et recevoir un paquet en pièce unique. Ainsi, je peux dessiner l'image correctement et jouer le son.

Tout type d'aide sera appricié.

Merci d'avance

+0

Je suppose que le TCP tunnel avec UDP serait vaincre le point d'utiliser TCP et éliminer la possibilité de tout vrai protocole séquentiel, mais ce n'est qu'une supposition. –

Répondre

0

TCP n'a pas de concept de paquets. Un flux TCP est un flux continu d'octets - si vous voulez une structure dans ce flux d'octets, vous devez l'imposer vous-même, en mettant en place un mécanisme de cadrage. Un simple est le "préfixe de longueur" - lors de l'envoi d'une trame au niveau de l'application, vous envoyez d'abord la longueur de la trame, puis les données.

+0

Merci pour la réponse Je ne sais pas grand chose au sujet de la mise en réseau, parce que je consulte mes fichiers journaux. J'ai trouvé qu'avant d'envoyer des données, la longueur des données est de 16384 octets et à 11300 flux suivant de 5084 octets.Mais parfois, il reçoit des données de longueur complète de 16384 octets. cela peut être dû au fait que pwnat travaille sur udp sur tcp et qu'il est basé sur le concept de tunnellisation udp. –

+0

@SR Dusad: TCP ** n'a pas de concept de messages individuels dans un flux. Si vous envoyez 16384 octets, vous finirez par recevoir ces 16384 octets - mais vous pourriez les recevoir en n'importe quel nombre de morceaux, de n'importe quelle taille. Votre application doit gérer cela. – caf

+0

Merci caf: votre réponse m'aider beaucoup pour comprendre le concept –