Surveiller la perte de paquets UDP dans Windows Server, Java


Mon application Java reçoit des données via UDP. Il utilise les données pour une tâche d'exploration de données en ligne. Cela signifie qu'il n'est pas essentiel de recevoir chaque paquet, ce qui rend le choix d'UDP raisonnable en premier lieu. En outre, les données sont transférées sur LAN, de sorte que le réseau physique doit être raisonnablement fiable. Quoi qu'il en soit, je n'ai aucun contrôle sur le choix du protocole ou des données incluses.

Toujours, je suis préoccupé par la perte de paquets qui peut résulter d'une surcharge et long temps de traitement de l'application elle-même. Je voudrais savoir à quelle fréquence ces choses se produisent et combien de données sont perdues.

Idéalement, je cherche un moyen de surveiller la perte de paquets en continu dans le système de production. Mais une solution partielle serait également la bienvenue.

Je me rends compte qu'il est impossible de toujours connaître les pertes de paquets UDP (sans contrôle sur le contenu du paquet). Je pensais à quelque chose le long des lignes de paquets reçus par le système d'exploitation mais n'arrivant jamais à la application; ou peut-être une solution intelligente à l'intérieur de l'application, comme un thread de lecture rapide qui supprime les données lorsque son client est occupé.

Nous déployons sous Windows Server 2003 ou 2008.

Author: daphshez, 2009-06-05

2 answers

Le problème est qu'il n'y a aucun moyen de dire que vous avez perdu des paquets si vous comptez sur le format UDP.

Si vous avez besoin de connaître ce type d'informations, vous devez les construire dans le format que vous superposez à UDP (comme le numéro de séquence TCP). Si vous faites cela et que le format est simple, vous pouvez facilement créer des filtres dans NetMon ou WireShark de Microsoft pour enregistrer et suivre ces informations.

Notez également que l'implémentation du numéro de séquence TCP aide également pour détecter les paquets hors service prendre peut se produire lors de l'utilisation UDP.

 2
Author: Shane Powell, 2009-06-05 07:31:37

Si vous êtes préoccupé par la perte de paquets, utilisez TCP.

C'est une des raisons pour lesquelles il a été inventé.

 0
Author: Kekoa, 2009-06-05 07:30:47