ХакерВы все правильно написали, но мне кажется, что, при этом, Вы очень сильно все усложнили.
Конечно же я понимаю, что могут быть различные вариации. Теперь по-порядку...
Хакер писал(а):С практической, как правильно подметил Алибек, если нам в интернете нужен какой-то ресурс, то надо его сразу и проверять.
А если нужен не один какой-то конкретный ресурс, а вообще интернет, как таковой и доступ к нему, когда имя запрашиваемого ресурса заранее неизвестно. Вот Вы пишите:
Хакер писал(а):Интернет это совокупность машин, это децентрализованная сеть, и непонятно, какая часть должна отвалиться, чтобы можно было сказать «интернета нет».
Тогда вопрос: ок, идем по плану
alibek и периодически запрашиваем адрес
http://captive.apple.com/generate_204 получаем
Success, а далее происходит, как Вы выразились «отвал» сайта
http://captive.apple.com, например, хакерская атака или просто электричество кончилось.

И вот в один прекрасный момент мы получаем
Null – значит интернета нет – именно так и сообщит моя программа. В тоже время, как Вы правильно заметили, – все остальные сайты НЕ подвергшиеся хакерской атаке или вовремя заплатившие за электричество поставщику электроэнергии, работают, как и обычно. Получаем ошибочное представление о, якобы, «пропавшем» интернете. Получается, что и так тоже действовать неправильно.
И еще вопрос: на кой хрен вообще админу, провайдеру или «дяде Пете», еще кому по списку... «резать» ICMP ??? На фига???
Ведь прога Ping для всех админов есть рабочий инструмент. А иначе, как он налаживает сеть, если не может проверить соединение???
Хакер писал(а):Если обывателю отрезать HTTP и HTTPS, а всё остальное оставить рабочим, обыватель будет уверен, что интернета нет. Хотя, если HTTP не трогать, но задавить DNS-трафик, у обывателя тоже почти все сайты перестанут открываться
Вам не кажется, что обывателю вообще по фиг, что и кто там отключит, когда у него на компе из всего того, что ему нужно в интернете,
90% станет НЕдоступным – это и есть отсутствие интернета
с точки зрения простого обывателя – именно к этому мы и стремимся. То есть, говоря простым языком: если по каким-либо причинам хотя бы большая половина >60% сайтов на компе простого обывателя перестанет открываться - это и будет означать однозначное – интернета НЕТ!
Значит вывод такой: чтобы реализовать все вышеописанное, нужен комплексный подход...
1) Запрос ресурса HTTP
2) Запрос ресурса HTTPS
3) Пинг DNS 1
4) Пинг DNS 2
5) Пинг DNS 3
Нет ответа по всем пунктам - ИНТЕРНЕТА НЕТ! Все!

Так годится???