Learning Platform
Глоссарий Troubleshooting
Урок 01.02 · 18 мин
Начальный
NetworkingCourse structureRoadmap

Обзор курса — 17 модулей и сквозной нарратив

Этот урок — карта курса. Вы увидите, что лежит в каждом из 17 модулей, как они складываются в общую историю и почему именно такой порядок. Это полезно прочитать сейчас, прежде чем нырять в детали: когда понимаешь, куда движешься, легче сохранять мотивацию на сложных уроках.

Курс построен вокруг одной сквозной идеи: проследить путь одного запроса от момента, когда вы нажали Enter в терминале, до момента, когда сервер ответил, и обратно. Каждый модуль — это один слой этого пути. К концу курса вы будете в деталях понимать, что происходит на каждом этапе.


Сквозной нарратив — путь запроса

Всё, что вы изучите, можно уложить в одну историю. Допустим, вы запустили curl https://api.github.com/users/torvalds. Вот что происходит дальше, и что покрывает каждый модуль.

Жизненный цикл одного HTTPS-запроса
1. Существует сетьМодуль 02 -- что такое сеть в принципе, хосты, links, пакеты. Зачем internet, чем packet switching лучше circuit switching
2. Layered модельМодуль 03 -- OSI, TCP/IP, encapsulation. Зачем сети делятся на слои, что на каком слое работает
3. Link layerМодуль 04 -- Ethernet-кадры, MAC-адреса, ARP, switches. Как байты ходят внутри одной локальной сети
4. IP addressingМодуль 05 -- IPv4, subnetting, CIDR, private ranges, IPv6, DHCP. Как машины получают адреса и как считаются подсети
5. IP routingМодуль 06 -- routing tables, traceroute, NAT, обзор OSPF/BGP. Как пакет находит путь от вашей машины до сервера на другом континенте
6. UDPМодуль 07 -- connectionless transport, datagrams. Зачем нужен UDP, когда он лучше TCP
7. TCPМодуль 08 -- TCP во всех деталях: handshake, ACKs, retransmission, sliding window, congestion control. Самый длинный модуль
8. DNSМодуль 09 -- DNS-иерархия, records, резолв, TTL, DoH/DoT. Как имя превращается в IP-адрес
9. HTTPМодуль 10 -- HTTP/1.1/2/3, headers, cookies, caching. Самый используемый прикладной протокол
10. TLSМодуль 11 -- зачем шифровать, TLS 1.3 handshake, сертификаты, PKI, debugging
11. SocketsМодуль 12 -- Berkeley sockets API, TCP/UDP-серверы на Python, threads/async/epoll
12. LB & proxiesМодуль 13 -- load balancing (L4 vs L7), reverse proxy (NGINX), алгоритмы балансировки
13. SecurityМодуль 14 -- атаки, DDoS, firewalls, VPN. Что бывает плохо в сети и как защититься
14. TroubleshootingМодуль 15 -- сводный модуль по инструментам: ping, dig, curl, ss, tcpdump, Wireshark. Систематический подход к диагностике
15. CapstoneМодуль 16 -- собрать всё вместе. Построить мини-инфраструктуру, разобрать pcap своего трафика, написать runbook

Идея в том, что каждый последующий модуль опирается на предыдущие. Когда вы дойдёте до модуля 10 про HTTP, вы уже знаете про TCP (модуль 8), на котором HTTP работает. И знаете про DNS (модуль 9), который превращает имя в IP. Поэтому HTTP перестаёт быть магией — вы видите, как всё складывается.


Модули с нуля до базы сети

Первые два модуля — введение в концепции, без которого нельзя двигаться дальше.

Модуль 02 — What is a network. Базовые сущности. Что такое сеть, что такое хост, что такое пакет. Краткая история: телеграф, телефон, ARPANET, internet. Почему internet — packet switched, в отличие от телефонии (circuit switched). Что такое internet физически: ISP, IXP, AS, BGP. После модуля 02 у вас есть mental model «откуда взялся интернет и что это вообще такое».

Модуль 03 — Network models. Зачем нужны модели OSI и TCP/IP. Семь слоёв OSI, четыре слоя TCP/IP, как они соотносятся. Encapsulation: что происходит с HTTP-запросом, когда он спускается через TCP, IP, Ethernet и улетает в кабель. Какие протоколы на каком слое. После модуля 03 вы понимаете, что networking — это слоёный пирог, и каждый слой делает свою часть работы.


Модули про слои

Модули 04-13 идут снизу вверх по слоям — сначала link layer, потом IP, потом транспорт, потом приложения.

Модуль 04 — Link layer. Ethernet-кадры, MAC-адреса, ARP, switches и VLANs. Это самый «железячный» модуль — здесь мы говорим про то, как байты летят внутри одной LAN. Что такое broadcast domain, чем switch отличается от hub, как сегментировать сеть на VLAN’ы. Полезно, чтобы понимать «почему мой VM из K8s видит только определённые сервисы».

Модуль 05 — IP addressing. IPv4-адрес: 32 бита, dotted decimal, классы (исторически). Subnetting и CIDR: как считать диапазоны вручную. Special-адреса: private ranges (10/8, 172.16/12, 192.168/16), loopback, broadcast. IPv6: зачем он, формат, преимущества, dual-stack. DHCP: как клиент получает IP в Wi-Fi (DORA, lease). Этот модуль — база для понимания всего сетевого. Без него Kubernetes Service IP, Docker bridge, AWS VPC subnet — всё магия.

Модуль 06 — IP routing. Routing tables, default gateway, longest prefix match. Traceroute: как мы видим путь пакета через интернет, что такое TTL. NAT во всех вариациях: full cone, restricted, symmetric, hole punching для p2p. Обзор протоколов маршрутизации: OSPF внутри autonomous system, BGP между ними. После этого модуля вы понимаете, как ваш пакет находит путь от Москвы до серверов AWS в Frankfurt.

Модули 07-08 — Transport. UDP сначала (он проще), потом TCP. UDP — модуль 07, всего 3 урока: connectionless, datagrams, юзкейсы (DNS, video streaming, QUIC, gaming). TCP — модуль 08, 5 уроков, самый большой по объёму: handshake, reliability через ACKs, sliding window, flow control, congestion control. После этих модулей вы понимаете, почему TCP «работает», что значит «retransmission» в Wireshark и почему сеть «тормозит» при потерях.


Модули про application layer

Модули 09-13 — про то, что лежит над транспортом и что вы используете ежедневно.

Модуль 09 — DNS. 5 уроков. DNS-иерархия (root -> TLDs -> authoritative). DNS-записи (A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, PTR). Полный путь резолва example.com через recursive resolver. Кэширование и TTL: где запрос кэшируется (browser, OS, resolver), что такое негативное кэширование. Современный DNS: DoH (DNS over HTTPS), DoT, DNSSEC. После этого модуля вы перестанете говорить «DNS не работает» — будете знать, на каком этапе резолва ошибка.

dig, ping, ss, nc, traceroute в Linux-командах

Модуль 10 — HTTP. 6 уроков. Анатомия запроса/ответа, методы, статус-коды, заголовки. State в stateless-протоколе: cookies, sessions, CORS. HTTP/2: бинарные фреймы, мультиплексирование, HPACK. HTTP/3: QUIC, отсутствие head-of-line blocking, connection migration. Caching: ETag, If-Modified-Since, Cache-Control. REST overview (с указанием rest-api-fundamentals для глубины).

HTTP-методы: глаголы протокола HTTP-кэширование: Cache-Control, ETag, conditional requests

Модуль 11 — TLS. 4 урока. Зачем шифровать: confidentiality, integrity, authentication. TLS 1.3 handshake пошагово с диаграммой. Сертификаты, CA, chain of trust, Let’s Encrypt. Debugging TLS: openssl s_client, SSL Labs, типичные ошибки (expired cert, name mismatch, untrusted CA).

Модуль 12 — Sockets. 5 уроков. Berkeley sockets API: socket(), bind, listen, accept, connect, send, recv. Простой TCP-сервер и клиент на Python. UDP-вариант. Concurrency: threads vs async vs select/poll/epoll. Real-world либы: asyncio, twisted. После этого модуля вы можете написать свой mini-сервер и понимать, что делает FastAPI/aiohttp под капотом.

Модуль 13 — Load balancing & proxies. 4 урока. Зачем LB: scalability, redundancy, health checks. L4 (transport) vs L7 (HTTP) load balancing. Reverse proxy: NGINX/HAProxy, TLS termination, кэширование. Алгоритмы: round-robin, least-connections, weighted, consistent hashing для шардирования. Этот модуль особенно важен, если вы работаете с микросервисами или K8s.


Финальные модули

Модуль 14 — Network security. 4 урока. Общий ландшафт атак: MITM, ARP poisoning, DNS spoofing, sniffing. DDoS: volumetric vs protocol vs application, как защищаются (Cloudflare, AWS Shield). Firewalls: stateful vs stateless, iptables/nftables, security groups в облаке. VPN: IPsec vs WireGuard vs OpenVPN, split tunneling.

Модуль 15 — Troubleshooting. 5 уроков. Сводный модуль по инструментам. ping, traceroute, mtr — как читать output. DNS-диагностика: dig +trace, dig @8.8.8.8. Глубокий curl -v, --resolve, --trace. netstat/ss/lsof — смотрим соединения. tcpdump CLI и Wireshark GUI с фильтрами. Этот модуль — toolbox, который вы будете использовать на боевой работе ежедневно.

Модуль 16 — Capstone. 4 практических задания. Построить мини-инфраструктуру: своя DNS-зона + TLS-сертификат + HTTP-сервер + load balancer. Анализ pcap-файла своего трафика. Сборка HTTPS-сервера с self-signed cert на Python. Написать свой troubleshooting runbook.


Как складываются модули в последовательность

Модули не независимы — они образуют граф зависимостей. Часть можно проходить в любом порядке, часть — строго после предыдущих.

Граф зависимостей модулей
02-03 БазыМодули 02-03 обязательны для всех. Концептуальная база -- что такое сеть, что такое слои
04-06 IP-слойМодули 04-06 идут в порядке: link -> IP-addressing -> routing. Каждый следующий опирается на предыдущий
07-08 TransportМодули 07-08: UDP можно после 06, TCP -- после 06 и параллельно с 07. TCP большой, рассчитывайте 1-2 недели
09 DNSМодуль 09 после 08 (DNS использует UDP и TCP)
10-11 AppМодули 10 (HTTP) и 11 (TLS) идут после транспортных. HTTP опирается на TCP, TLS -- тоже на TCP. Можно проходить в порядке HTTP -> TLS или одновременно
12-13 AppsМодули 12 (sockets) и 13 (LB) -- после транспортных модулей. Полезно после HTTP
14 SecurityМодуль 14 после всех основных слоёв. Атаки -- это эксплуатация конкретных уязвимостей в конкретных слоях
15 ToolsМодуль 15 -- собрать toolbox. Полезен после всех остальных, но можно начинать пользоваться инструментами по ходу курса
16 CapstoneМодуль 16 -- финальная сборка. Требует знаний всех предыдущих модулей

В принципе, можно пропустить модуль 04 (link layer) и сразу читать модуль 05 (IP) — понимание не сильно пострадает, если вы не работаете с физическими сетями. Можно пропустить модуль 14 (security), если он вам сейчас не актуален, и вернуться позже. Но базовые модули 02-03, 05, 06, 08, 09, 10 — проходите в порядке.


Сквозные темы

Кроме модулей есть несколько тем, которые проходят через весь курс.

Wireshark и tcpdump. Появляются в модуле 08 (TCP), потом всё чаще. К модулю 16 вы должны быть с этими инструментами на «ты». Это сложно поначалу — много фильтров и опций — но без них не разобраться с реальными проблемами.

Python для сетевого программирования. Появляется в модуле 12 (sockets), но используется и раньше: например, в модуле 9 (DNS) мы делаем DNS-запросы через dnspython, в модуле 10 (HTTP) — через requests и httpx. К концу курса у вас должен быть рабочий toolkit Python-библиотек.

Современные технологии: IPv6, QUIC, DoH. Проходят красной нитью. Мы не игнорируем IPv6 как «что-то экспериментальное», а сразу говорим: вот IPv4, вот IPv6, на практике используется dual-stack. Аналогично HTTP/3 не появляется в одном уроке как «новость», а упоминается в TCP-модуле как «вот эту проблему HTTP/3 решает иначе через QUIC».

Облачный networking. AWS, GCP, Azure — везде сети устроены поверх Linux networking. Когда вы изучаете IPsec, мы упомянем AWS VPN. Когда L4 LB — AWS NLB. Когда L7 LB — AWS ALB. Это контекст для тех, кто работает в облаках, а сейчас это большинство Junior DE.


Попробуй сам

Откройте config.json курса и посмотрите, как лежат модули в файловой системе.

# Перейдите в курс
cd /path/to/learning-platform-engine/content/courses/networking-fundamentals

# Посмотрите структуру модулей
ls src/content/course/
# 00-course-intro     08-transport-tcp
# 01-getting-started  09-dns
# 02-what-is-network  10-http
# ... и так далее

# Откройте config.json -- здесь метаданные курса
cat config.json | head -30

# Посмотрите README, если он есть
cat README.md 2>/dev/null || echo 'README пока не создан'

Просто посмотрите на список — это карта вашего путешествия. Когда поймёте, что вы уже умеете на работе, попробуйте сопоставить с модулями. Если вы дебажили DNS, значит, в модуле 9 будет много знакомого. Если писали async-сервер на FastAPI — модуль 12 покажет, что в нём под капотом. Это упражнение помогает понять, где у вас сильные стороны и где — белые пятна.


Проверка знанийKnowledge check
Junior смотрит на список 17 модулей и думает: 'мне нужно дебажить только HTTP API, давайте я перепрыгну сразу на модули 10 и 11, остальное пропущу'. Хороший это план или нет, и почему?
ОтветAnswer
План плохой, но не катастрофический. Проблема: модули 10 (HTTP) и 11 (TLS) опираются на знания нижних слоёв. Когда в модуле 11 будет описываться, как HTTP-запрос идёт по сети, вы упрётесь в термины TCP-handshake, IP-маршрутизация, DNS-резолв -- если их не понимаете, материал превратится в магию. Конкретные примеры: (1) Чтобы дебажить 'почему один и тот же запрос работает у меня и не работает в проде', нужно понимать DNS (модуль 09) -- может быть, в проде другой resolver и другой IP. (2) Чтобы понять, что значит 'TLS handshake занимает 1 секунду', нужно знать про TCP RTT и congestion control (модуль 08). (3) Чтобы прочитать сообщение 'Connection reset by peer', нужно знать про TCP RST-флаг. Если совсем нет времени -- можно поверхностно прочитать модули 02, 03, 05, 06, 08 (главные), а 04 (link layer) и 14 (security) пропустить. Но прыжок прямо к HTTP -- это как читать продвинутую главу учебника без введения. Будет фрустрация. Лучше потратить лишнюю неделю на base, и потом всё остальное пойдёт легко. Это инвестиция, которая окупается на каждом следующем networking-связанном курсе (rest-api, kubernetes).

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Какой блок модулей курса предоставляет фундамент DE, который НЕ рекомендуется пропускать?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3