Você pode usar o nmap para verificar os hosts para ver se eles têm um serviço escutando em uma determinada porta.
Existem muito poucas circunstâncias nas quais UDP é preferível a TCP :
-
O
- UDP não funciona tão bem para comunicações bidirecionais. Você precisa criar sua própria associação de consulta / resposta. Mesmo quando você está enviando dados em uma direção, muitas vezes você quer que o destinatário reconheça, que é um dado enviado na outra direção.
- O UDP não é confiável. Se um pacote for perdido ou duplicado, difícil.
- O UDP viaja por pacote. Se o seu pacote é muito grande e é sistematicamente descartado, difícil.
- O UDP introduz alguns problemas de segurança, como facilitar a negação distribuída de serviços. Por esse motivo, muitos firewalls bloqueiam ou restringem severamente.
- Poucos protocolos usam TCP, portanto, os firewalls fechados por padrão simplesmente não deixam passar nada (além do DNS, que eles restringem strongmente).
- O UDP não faz gerenciamento de congestionamentos. Se você inundar a rede, seus pacotes serão descartados aleatoriamente. O TCP, por outro lado, restringirá o débito ao que a rede pode suportar.
Você pode enviar um pacote UDP para uma máquina e ver se algo responde, é claro. Você pode até mesmo enviar um UDP broadcast e ver até onde vai, ou enviar um UDP multicast e espero que chegue.
Existem dois requisitos para um pacote de rede (UDP ou TCP) para acionar uma ação na máquina de destino. Primeiro, todos os roteadores e firewalls no caminho do pacote devem deixar o pacote chegar ao destino. Em segundo lugar, deve haver um aplicativo escutando na máquina de destino. Este pode ser o seu sincronizador, ou um serviço de partida, como inetd , ou um servidor para um protocolo de alto nível que você sincronizador se integraria em HTTP (S) ou SSH .
Se os seus pacotes estão bloqueados por um firewall, então, em princípio, não há como contornar isso. Caso contrário, o firewall simplesmente não está fazendo seu trabalho. É claro que, na prática, os firewalls têm buracos, por exemplo, UPnP (). É mais provável que você seja capaz de ignorar um firewall sobre TCP (especialmente em HTTPS, que os firewalls geralmente não podem bloquear seletivamente, por isso é necessário permitir navegação na Web) do que em UDP.
Se não houver nada escutando na porta de destino, você não poderá assumir o controle da máquina de destino para executá-la. (Isso seria o epítome da insegurança, como algumas versões antigas do Windows não corrigidas.) Essa é uma vantagem de pegar carona em um protocolo generalista comum como o SSH: basta ativar um serviço e fazer o que quiser sobre ele, incluindo a sincronização de arquivos.