Il mio obiettivo: scrivere un programma in cui due computer sulla stessa LAN si vedono e possono parlare direttamente tra loro senza server o account. Ogni cliente deve essere strong come ogni altro cliente e mantenere la propria lista di quali clienti sono online. (Ho intenzione di utilizzare l'hostname computer con hash con gli indirizzi IP per mantenere le voci univoche).
Il mio design: voglio ottenere ogni client un elenco di ogni altro client attualmente sulla LAN. Ciò significa che i messaggi di trasmissione periodici a tutti i client sulla rete e i periodi di timeout per i client in modo che l'elenco venga tagliato dei client offline.
Il mio problema: che richiede un pedaggio sulla rete, per trasmettere a tutti i clienti. Se ci sono 2 programmi client su una rete con 300 computer, si tratta di 298 computer che non hanno alcun utilizzo per i pacchetti che stanno ricevendo. Inoltre non so quale porta usare. Inoltre, la trasmissione in rete è obsoleta in IPV6 e non voglio strutturare questa parte del codice in un modo obsoleto.
La mia ricerca: Potrei usare IP Multicasting per inviare segnali solo ai clienti interessati (quelli che eseguono il mio programma). Inviare regolarmente segnali ogni 60 secondi non dovrebbe essere troppo dispendioso se non si passa a programmi non interessati.
Il multicast specifico per l'origine è una cattiva scelta per me perché nessuna fonte può essere stabilita in anticipo. Avrei bisogno di eseguire il multicasting Sparse o Dense.
Voglio solo confermare che sono sulla buona strada, che usare Multicasting è il miglior protocollo possibile per mantenere i miei clienti sulla stessa pagina.
Ecco un'ultima avvertenza. Diciamo che tutti i client cablati si trovano su una LAN che contiene un router wifi, in modo tale che il router wifi esegua un servizio di instradamento DHCP e packet solo per client abilitati alla rete wifi. Quale tecnica sarebbe più ragionevole multicastare attraverso un gap di rete come questo (e non fino a Internet globale)?