Конечно. Поиск DNS использует UDP на уровне 4 непосредственно, не включая уровни 5-7 вообще. Я предполагаю, что Вы могли назвать DNS запросом "прикладного уровня", но нет никакой сессии или состояния, это действительно слишком тривиально для подсчета как таковым, по-моему.
Обновление:
Хорошо, я думаю, что вижу то, что Вы спрашиваете. Как насчет широковещательных сообщений DHCP, когда хост присоединяется к сети? Технически это - приложение клиента DHCP, делающее запрос, но это не (обязательно) инициируется пользователем.
Кроме того, когда интерфейс IPv4 прибудет онлайн, он сделает датчик ARP для проверки IP-адреса, с которым он настроен, уже не используется.
Еще глубже маршрутизаторы и переключатели будут обмениваться сообщениями BGP, когда они прибудут онлайн и регулярно, и я полагаю, что это происходит, даже если никакие конечные точки даже не соединены, например, два маршрутизатора, подключенные вместе и ни к чему иному.
Самой близкой вещью, которую я знаю, является этот проект, но я никогда не использовал. Я знаю, что лак имеет проверку бэкенда, возможно, Вы хотите смотреть на нем.
Я обнаружил, что Nginx потребовалось ~ 2 секунды для исчерпания попыток, если вы указали сотни экземпляров одного и того же бэкэнда:
server localhost:8080 max_fails=0;
server localhost:8080 max_fails=0;
server localhost:8080 max_fails=0;
server localhost:8080 max_fails=0;
(... э-э, повторите, если требуется!)
Да, ужасная путаница - но она добавляет некоторую стойкость ...
Еще хуже, вы можете использовать:
server localhost:8080 max_fails=0;
server localhost:80 backup;
Предполагая, что Nginx работает на порту 80, это будет пытаться непрерывно зацикливать запрос вокруг Nginx пока не ответит localhost: 8080. Т.е. повторять бесконечное (?) Количество раз с задержкой в ноль секунд.
Я вернусь к своей заполненной ячейке сейчас ....
Если в вашей установке nginx есть поддержка Lua, вы можете некоторое время удерживать клиента в режиме сна. Операция не блокирует и не блокирует воркер. Имейте в виду, что пользователя нельзя удерживать бесконечно, так как некоторые другие таймауты сокета / брандмауэра, связанные с сетью, могут, наконец, произойти.
server {
listen 8502;
location / {
#25 seconds sleep
content_by_lua_block {
ngx.sleep(25);
ngx.exit(ngx.HTTP_BAD_GATEWAY);
}
}
}
Затем в свой список восходящего потока вам нужно добавить указанный выше сервер в качестве резервного для хранения клиента.
upstream backend {
server 127.0.0.1:3001 fail_timeout=2s; #The backend
server 127.0.0.1:8502 backup; #Lua holding server in the event backend is restarting
}
И это должен быть включен в вашу спецификацию прокси-местоположения:
proxy_read_timeout 30; #Value must be higher than sleep in Lua
proxy_next_upstream error timeout http_502 http_504;