Вы можете использовать nmap для сканирования хостов, чтобы увидеть, есть ли у них служба, прослушивающая определенный порт.
Существует очень мало обстоятельств, при которых UDP предпочтительнее TCP:
- UDP не очень хорошо работает для двусторонней связи. Вы должны создать свою собственную ассоциацию запрос / ответ. Даже когда вы отправляете данные в одном направлении, вы часто хотите, чтобы получатель подтвердил это, то есть данные, отправленные в другом направлении.
- UDP не надежен. Если пакет потерян или продублирован, это сложно.
- UDP путешествует по пакетам. Если ваш пакет слишком большой и систематически отбрасывается, это сложно.
- UDP вводит некоторые проблемы безопасности, такие как упрощение распределенного отказа в обслуживании. По этой причине многие брандмауэры блокируют или строго ограничивают его.
- Немногие протоколы используют TCP, поэтому закрытые по умолчанию брандмауэры просто не пропускают ни одного из них (кроме DNS, который они жестко ограничивают).
- UDP не управляет перегрузкой. Если вы затопите сеть, ваши пакеты будут отброшены случайным образом. TCP, с другой стороны, ограничит дебет тем, что может выдержать сеть.
Вы можете отправить пакет UDP на компьютер и посмотреть, если что-то ответит, конечно. Вы можете даже отправить широковещательную рассылку UDP и посмотреть, как далеко она идет, или отправить многоадресную рассылку UDP и надеяться, что она прибудет.
Существует два требования к сетевому пакету (UDP или TCP) для запуска действия на целевом компьютере. Во-первых, все маршрутизаторы и брандмауэры на пути пакета должны пропустить пакет до места назначения. Во-вторых, на целевом компьютере должно быть приложение, которое слушает. Это может быть ваш синхронизатор, или инициатор службы, такой как inetd, или сервер для протокола более высокого уровня, в который синхронизатор встроит такие, как HTTP (S) или SSH.
Если ваши пакеты заблокированы брандмауэром, то в принципе нет способа обойти это. В противном случае брандмауэр просто не выполняет свою работу. Конечно, на практике у брандмауэров есть дыры, например, UPnP (). Скорее всего, вы сможете обойти брандмауэр по TCP (особенно по HTTPS, который брандмауэры обычно не могут блокировать выборочно, поэтому необходимо пропустить, чтобы разрешить просмотр веб-страниц), чем по UDP.
Если на порте назначения ничего не прослушивается, вы снова не сможете взять под контроль целевую машину, чтобы она выполняла ваше приложение. (Это было бы воплощением небезопасности, как некоторые старые непропатченные версии Windows.) Это преимущество совмещения по сравнению с обычным универсальным протоколом, таким как SSH: вам просто нужно включить одну службу, а затем вы можете делать с ней все, что хотите, включая синхронизацию файлов.