Сеть и протоколы
Когда сервис недоступен или тормозит, худшее — перезапускать всё подряд наугад. «Сайт лежит» — это не одна поломка, а десяток возможных, сложенных стеком от физического линка вверх через IP, маршрутизацию, DNS и транспортный порт до самого приложения. Быстро чинит тот инженер, который проходит эти слои по порядку, изолируя каждый, а не гадает. А эта методика хороша ровно настолько, насколько глубоко вы знаете протоколы под ней: нужно понимать, что упавший ping не доказывает, что хост лёг, что резолвер может отдавать устаревшую запись, которую авторитетный сервер уже заменил, и что SYN без SYN-ACK значит совсем не то же, что SYN-ACK с последующим RST.
Вторая половина — HTTP и TLS на проводе. 502 против 503 против 504 — каждый называет свою поломку апстрима; ошибка сертификата — это либо разорванная цепочка, либо несовпадение имени хоста, либо истёкший срок; а redirect-петля за прокси, терминирующим TLS, почти всегда сводится к тому, что приложение доверяет не той схеме. Читайте это правильно — и сообщение об ошибке само скажет, чья это вина, ещё до того как вы что-то тронете.
Карта темы
- Диагностика сети — послойная методика снизу вверх (link → IP → routing → DNS → transport → app), что на самом деле говорят
ping/traceroute/dig/ss/tcpdump, и дерево решений по связности. - HTTP и TLS — методы и идемпотентность, тройка
502/503/504, заголовки, важные за прокси, рукопожатие TLS и валидация сертификата, SNI/HSTS/терминация, и HTTP/1.1 → HTTP/2 → HTTP/3.
Частые ошибки и ловушки
| Ошибка | Последствие |
|---|---|
| «Ping не проходит, значит хост лёг» | ICMP часто фильтруется, а TCP-порты открыты — вы хороните живой хост |
| Верить резолверу больше, чем авторитетному серверу | Гоняетесь за маршрутизацией или приложением, а виновата устаревшая запись в кэше |
Считать CLOSE_WAIT и TIME_WAIT одним и тем же | Упускаете, что гора CLOSE_WAIT — это ваше приложение течёт сокетами |
Читать 502, 503, 504 как одну «ошибку бэкенда» | Чините таймаут, когда бэкенд упал, — или наоборот |
| Забыть, что TLS терминировался на прокси | Приложение видит plain HTTP, «редиректит на HTTPS» и зацикливается |
| Проверять сертификат как «только срок» | Неверное имя хоста (SAN) или отсутствующий промежуточный сертификат тоже валят валидацию |
Значение для собеседований
Здесь проверяют, вы диагностируете или гадаете. Сильный сигнал — методика: «пошёл бы по слоям — link, IP, routing, DNS, порт, потом приложение — и изолировал, где ломается». Дальше проверяют ловушки: почему упавший ping не доказательство, что значат многие сокеты в CLOSE_WAIT, и точную разницу между 502 и 504. По протоколам смотрят, можете ли вы назвать, что именно проверяет валидация сертификата (цепочка до доверенного корня, имя хоста/SAN, срок) и почему сервису за прокси, терминирующим TLS, нужно сообщать исходную схему через X-Forwarded-Proto.