Обзор курса — 17 модулей и сквозной нарратив
Этот урок — карта курса. Вы увидите, что лежит в каждом из 17 модулей, как они складываются в общую историю и почему именно такой порядок. Это полезно прочитать сейчас, прежде чем нырять в детали: когда понимаешь, куда движешься, легче сохранять мотивацию на сложных уроках.
Курс построен вокруг одной сквозной идеи: проследить путь одного запроса от момента, когда вы нажали Enter в терминале, до момента, когда сервер ответил, и обратно. Каждый модуль — это один слой этого пути. К концу курса вы будете в деталях понимать, что происходит на каждом этапе.
Сквозной нарратив — путь запроса
Всё, что вы изучите, можно уложить в одну историю. Допустим, вы запустили curl https://api.github.com/users/torvalds. Вот что происходит дальше, и что покрывает каждый модуль.
Идея в том, что каждый последующий модуль опирается на предыдущие. Когда вы дойдёте до модуля 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.
Как складываются модули в последовательность
Модули не независимы — они образуют граф зависимостей. Часть можно проходить в любом порядке, часть — строго после предыдущих.
В принципе, можно пропустить модуль 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 покажет, что в нём под капотом. Это упражнение помогает понять, где у вас сильные стороны и где — белые пятна.