J'ai des clients qui ont besoin de se connecter à un seul processus serveur. J'utilise la découverte UDP pour que les clients trouvent le serveur. J'ai le client et le serveur échangent l'adresse IP et le numéro de port, de sorte qu'une connexion de TCP/IP puisse être établie après accomplissement de la découverte. De cette façon, la taille des paquets est maintenue petite. Je vois que cela peut se faire de deux façons en utilisant UDP:Découverte du serveur UDP - Les clients doivent-ils envoyer des multidiffusions pour trouver le serveur ou le serveur doit-il envoyer une balise régulière?
- Chaque client envoie son propre message de multidiffusion à la recherche du serveur auquel le serveur répond. Le client peut répéter l'envoi de ce message de multidiffusion à intervalles réguliers (dans le cas où le serveur est arrêté) jusqu'à ce que le serveur réponde.
- Le serveur envoie une balise de multidiffusion à intervalles réguliers. Les clients s'abonnent au groupe de multidiffusion et reçoivent ainsi le message de multidiffusion du serveur et terminent la découverte.
Dans 1. s'il y a beaucoup de clients alors il y aurait initialement beaucoup de messages de multidiffusion transmis (un de chaque client). Seul le serveur s'abonne et reçoit les messages de multidiffusion des clients. Une fois que le serveur a répondu au client, le client cesse d'envoyer le message de multidiffusion. Une fois que tous les clients ont terminé leur découverte du serveur, aucun autre message de multidiffusion n'est transmis sur le réseau. Cependant, si le serveur est hors service, chaque client enverra une balise de multidiffusion jusqu'à ce que le serveur soit de retour et puisse répondre.
Dans 2. seul le serveur soumettrait une balise de multidiffusion à intervalles réguliers. Ce message finirait par être routé vers tous les clients abonnés au groupe de multidiffusion. Une fois que les clients ont reçu le paquet, la prise d'écoute UDP du client est fermée et ils ne sont plus abonnés au groupe de multidiffusion. Cependant, le serveur doit continuer à envoyer la balise de multidiffusion, afin que les nouveaux clients puissent le découvrir. Il continuerait à envoyer la balise à intervalles réguliers, que les clients ne soient pas obligés de faire une découverte ou non. Donc, je vois les avantages et les inconvénients de toute façon. Il me semble que le n ° 1 entraînerait une charge plus lourde au départ, mais cette charge finit par diminuer jusqu'à zéro. Dans # 2 le serveur continuerait à envoyer une balise pour toujours.
UDP et multicast est un sujet relativement nouveau pour moi, donc je suis intéressé à trouver quelle serait l'approche préférée et qui se traduirait par moins de charge réseau.
Avez-vous explicitement décidé de ne pas utiliser les mécanismes de découverte de service standard? – Duck
Lorsque vous parlez de mécanismes de découverte de service standard, pourriez-vous clarifier ce que vous considérez comme tel. Je suis en train de «découvrir» quelles sont mes options et la meilleure approche à adopter. – Elan