Puoi usare nmap per scansionare gli host per vedere se hanno un servizio in ascolto su una determinata porta.
Esistono pochissime circostanze in cui UDP è preferibile a TCP :
- UDP non funziona così bene per le comunicazioni a due vie. Devi creare la tua associazione query / risposta. Anche quando si inviano dati in una direzione, spesso si desidera che il destinatario riconosca, che è un dato inviato nell'altra direzione.
- UDP non è affidabile. Se un pacchetto viene perso o duplicato, difficile.
- UDP viaggia per pacchetto. Se il tuo pacchetto è troppo grande e viene sistematicamente scartato, difficile.
- UDP introduce alcuni problemi di sicurezza, come semplificare la negazione del servizio distribuito. Per questo motivo molti firewall lo bloccano o lo limitano gravemente.
- Pochi protocolli utilizzano TCP, quindi i firewall chiusi per impostazione predefinita non ne consentono il passaggio (a parte il DNS, che vincolano strettamente).
- UDP non gestisce la congestione. Se si inonda la rete, i pacchetti verranno eliminati in modo casuale. TCP, d'altra parte, limiterà il debito a ciò che la rete può sopportare.
Puoi inviare un pacchetto UDP a una macchina e vedere se qualcosa risponde, ovviamente. Puoi persino inviare una trasmissione UDP e vedere fino a dove arriva, oppure inviare un multicast UDP e sperare che arrivi.
Esistono due requisiti per un pacchetto di rete (UDP o TCP) per attivare un'azione sul computer di destinazione. Innanzitutto, tutti i router e i firewall sul percorso del pacchetto devono aver lasciato passare il pacchetto alla destinazione. In secondo luogo, deve esserci un'applicazione in ascolto sul computer di destinazione. Questo potrebbe essere il tuo sincronizzatore, o un avviatore di servizio come inetd o un server per un protocollo di livello superiore che il sincronizzatore dovrebbe incorporare come HTTP (S) o SSH .
Se i tuoi pacchetti sono bloccati da un firewall, in linea di principio non c'è modo di aggirare il problema. Altrimenti il firewall non sta facendo il suo lavoro. Naturalmente, in pratica, i firewall hanno buchi, ad esempio UPnP (). È più probabile che tu sia in grado di bypassare un firewall su TCP (specialmente su HTTPS, che i firewall generalmente non possono bloccare in modo selettivo, quindi devi consentire l'autorizzazione alla navigazione web) che su UDP.
Se non c'è nulla in ascolto sulla porta di destinazione, di nuovo, non sarai in grado di assumere il controllo del computer di destinazione per farlo eseguire l'applicazione. (Sarebbe l'epitome dell'insicurezza, come alcune vecchie versioni senza patch di Windows.) Questo è un vantaggio di piggyback su un protocollo generalista comune come SSH: devi solo abilitare un servizio e quindi puoi fare quello che vuoi su di esso, compresa la sincronizzazione dei file.