О курсе
Курс «Компьютерные сети и сетевые технологии» знакомит с принципами устройства и работы сетей передачи данных — от сигнала в кабеле до протоколов, на которых построены веб-сервисы, облака и центры обработки данных. Курс рассчитан на читателя без предварительной подготовки в области сетей: каждое понятие вводится с нуля, но изложение доводится до уровня, на котором читатель способен самостоятельно читать стандарты (RFC, IEEE 802), проектировать адресацию и маршрутизацию небольшой организации, диагностировать неисправности по захвату трафика и осмысленно настраивать сетевые функции Linux.
Курс построен вокруг трёх идей. Первая — механизм прежде настройки: каждая технология рассматривается как решение конкретной задачи, с её допущениями, ограничениями и историей, поэтому знания не устаревают вместе с синтаксисом команд. Вторая — наблюдение: всякий изучаемый протокол читатель видит «в проводе», в захвате Wireshark и tcpdump, и сопоставляет байты с полями стандарта. Третья — эксперимент в воспроизводимой среде: учебные сети строятся на одном компьютере средствами ядра Linux (сетевые пространства имён, виртуальные интерфейсы, программные мосты), а сложные маршрутизаторы — в контейнерах FRRouting, поэтому каждую ситуацию из лекции можно воспроизвести, сломать и починить.
Что даёт курс
- понимание многоуровневой архитектуры сетей, модели OSI и TCP/IP, инкапсуляции; форматов основных протокольных единиц (Ethernet, ARP, IPv4, IPv6, ICMP, UDP, TCP, DHCP, DNS, HTTP, TLS, QUIC) на уровне полей заголовков и последовательности обмена;
- умение рассчитывать подсети, разрабатывать адресный план IPv4/IPv6 и план VLAN;
- понимание принципов коммутации и маршрутизации, алгоритмов Беллмана — Форда и Дейкстры, логики выбора маршрута в BGP; умение настраивать OSPF и BGP на маршрутизаторах FRRouting;
- понимание механизмов надёжной доставки и управления перегрузкой в TCP, причин задержек и потерь;
- умение строить учебные топологии средствами Linux и настраивать интерфейсы, мосты, VLAN, маршрутизацию, NAT и фильтрацию пакетов;
- умение захватывать и анализировать трафик в Wireshark и tcpdump, сопоставляя наблюдения со стандартами;
- представление о межсетевых экранах, VPN, оверлейных сетях, беспроводных сетях и сетях центров обработки данных;
- умение писать сетевые программы на Python с использованием сокетов;
- навык систематически локализовать неисправность по симптомам и документировать сеть;
- уверенное владение инструментами
ip,bridge,ss,tc,nft,ping,tracepath,mtr,tcpdump, Wireshark,dig,curl,openssl,vtyshи чтение RFC.
Связь с другими курсами
Курс опирается на базовые знания информатики, умение работать в командной строке и программировать на Python на базовом уровне. Специальной подготовки по сетям не требуется. Результаты курса используются в курсах «Облачные технологии» (сети контейнеров и оркестраторов), «Разработка Web-приложений» (HTTP, REST, TLS), в курсах по информационной безопасности, распределённым системам и Интернету вещей.
Темы курса
Каждая тема включает лекцию (вкладка «Теория»), лабораторную работу или практическое занятие и дополнительные материалы (вопросы для самопроверки, глоссарий, шпаргалка по инструментам, аннотированный список литературы и ресурсов).
| № | Тема | Раздел | Практика |
|---|---|---|---|
| 1 | Компьютерная сеть: основные понятия и метрики | Основы | ЛР 1 |
| 2 | Многоуровневая архитектура и инкапсуляция | Основы | ЛР 2 |
| 3 | Физический уровень: сигналы, среды и пределы скорости | Физический и канальный уровни | ПЗ 3, ЛР 3 |
| 4 | Канальный уровень и Ethernet | Физический и канальный уровни | ЛР 4 |
| 5 | Виртуальные локальные сети, связующее дерево и агрегирование каналов | Физический и канальный уровни | ЛР 5 |
| 6 | Адресация IPv4 и разбиение на подсети | Сетевой уровень | ПЗ 6, ЛР 6 |
| 7 | Протокол IP в работе: заголовок, ARP, ICMP, фрагментация | Сетевой уровень | ЛР 7 |
| 8 | Маршрутизация: принципы и статическая маршрутизация | Сетевой уровень | ЛР 8 |
| 9 | Динамическая маршрутизация внутри автономной системы: RIP и OSPF | Сетевой уровень | ЛР 9 |
| 10 | Междоменная маршрутизация и BGP | Сетевой уровень | ЛР 10 |
| 11 | IPv6 | Сетевой уровень | ЛР 11 |
| 12 | Транспортный уровень: UDP, TCP и сокеты | Транспортный уровень | ЛР 12 |
| 13 | TCP: надёжность, управление потоком и перегрузкой | Транспортный уровень | ЛР 13 |
| 14 | DHCP и трансляция сетевых адресов (NAT) | Сервисы и прикладной уровень | ЛР 14 |
| 15 | Система доменных имён DNS | Сервисы и прикладной уровень | ЛР 15 |
| 16 | HTTP и прикладные протоколы Веба | Сервисы и прикладной уровень | ЛР 16 |
| 17 | Защищённые соединения: криптография и TLS | Сервисы и прикладной уровень | ЛР 17 |
| 18 | Межсетевые экраны и сетевая безопасность | Безопасность и виртуальные сети | ЛР 18 |
| 19 | Туннелирование и виртуальные частные сети | Безопасность и виртуальные сети | ЛР 19 |
| 20 | Беспроводные и мобильные сети | Безопасность и виртуальные сети | ПЗ 20, ЛР 20 |
| 21 | Сети центров обработки данных и виртуализация сети | Безопасность и виртуальные сети | ЛР 21 |
| 22 | Мониторинг, диагностика и автоматизация сети | Эксплуатация | ЛР 22 |
Апокрифы
Отдельная вкладка курса — «Апокрифы»: нулевой модуль и одиннадцать тем о наступательной стороне сетей. Это не продолжение основной программы, а взгляд с другой стороны: как устроен приём, как его воспроизвести и как он выглядит для защитника. Материал рассчитан на читателя, который прошёл основную программу и умеет читать захват.
Нулевой модуль объясняет рамку: модель нарушителя, границы стенда, уровни воспроизводимости, пометки достоверности и формат журнала. Без него расхождение между стандартом и поведением ядра выглядит как ошибка курса. Каждая тема апокрифов состоит из теории, лабораторной работы и дополнительных материалов и построена по одной схеме: «Тень базового курса» (какой легитимный механизм лежит в основе), механизм до структур и полей, воспроизводимый код, раздел «Числа и пределы» и парный раздел «обнаружение и защита».
| № | Тема | Раздел |
|---|---|---|
| 0 | Как работать с апокрифами | Введение |
| 1 | Карта без единого пакета: разведка и сканирование | Разведка |
| 2 | Человек посередине на канальном уровне | Первый хоп |
| 3 | Двойной стек, двойные двери: IPv6, NDP и RA | Первый хоп |
| 4 | Пакет из ниоткуда: подделка пакетов и атаки на TCP/IP | Первый хоп |
| 5 | Отравленный кеш: DNS, туннели и C2 | Имена и каналы |
| 6 | Крот: туннели, пивоты и обход периметра | Имена и каналы |
| 7 | Угон префикса: BGP, утечки и обход RPKI | Инфраструктура |
| 8 | Тихий след: уклонение от IDS и анти-форензика | Инфраструктура |
| 9 | Эфир: беспроводные сети и их протоколы | За пределами провода |
| 10 | Домен и облако: сетевые векторы доверия | За пределами провода |
| 11 | Протоколы без защиты: АСУ ТП и IoT | За пределами провода |
Все работы выполняются в собственной виртуальной машине или в сетевых пространствах имён (unshare -rnm), которые не затрагивают основную сеть компьютера. Внешние адреса не используются: учебная инфраструктура описана доменами nsu.example и документационными адресами 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 и 2001:db8::/32. Часть лабораторных требует реального оборудования (Wi-Fi-адаптер, SDR) или эмуляторов (FRR, Containerlab); это указано в перечне оснащения каждой работы.
Учебная среда
Все лабораторные работы выполняются на компьютере под управлением Linux. Рекомендуемая платформа — Ubuntu 24.04 LTS: установленная на компьютер, в виртуальной машине (VirtualBox, VMware, Hyper-V, UTM) или в подсистеме WSL2 на Windows. Учебные топологии создаются скриптами из архивов окружения, которые прикладываются к лабораторным работам; запуск требует прав администратора (sudo) и не затрагивает основную сеть компьютера.
Набор пакетов устанавливается в первой лабораторной работе:
sudo apt update
sudo apt install -y iproute2 iputils-ping iputils-tracepath traceroute mtr-tiny \
tcpdump tshark wireshark ethtool bridge-utils iperf3 netcat-openbsd socat curl \
dnsutils dnsmasq nftables conntrack wireguard-tools openssl python3 python3-pip nmap
Для тем 9, 10 и курсового проекта дополнительно нужен Docker Engine с плагином Compose (в WSL2 — Docker Desktop с интеграцией WSL или Docker Engine внутри дистрибутива): в контейнерах запускаются маршрутизаторы FRRouting.
Минимальные требования: 4 ГБ ОЗУ (8 ГБ для работ с FRRouting), 10 ГБ свободного места, доступ в Интернет на этапе установки пакетов.
Как работать с материалами
Тема изучается в следующем порядке.
- Теория. Лекция читается целиком, с остановками на схемах и примерах команд. Числовые примеры полезно пересчитать самостоятельно. Ссылки в тексте вида ¹ ведут к списку литературы в конце темы: к первоисточникам (RFC, статьям) стоит обращаться, когда хочется понять, почему механизм устроен именно так.
- Дополнительно. Вопросы для самопроверки показывают, усвоен ли материал: если на вопрос не удаётся ответить своими словами, соответствующий раздел стоит перечитать. Глоссарий и шпаргалка нужны во время лабораторной работы.
- Лабораторная работа или практическое занятие. Главный принцип — предсказать, затем проверить: прежде чем выполнить команду или запустить захват, следует записать ожидаемый результат, а после — объяснить расхождение. Именно расхождения дают наибольший прирост понимания. Базовая часть работы составляет основу, продвинутая — углублённая, по желанию.
Темы следует проходить по порядку: каждая опирается на предыдущие. Если хочется сначала получить общую картину, минимальная траектория — темы 1, 2, 4, 6, 7, 8, 12, 14, 15, 16, 17 и 22.
Итоговые вопросы для самопроверки
Вопросы охватывают весь курс; вопросы второй половины опираются на материал первой: адресацию, маршрутизацию и путь пакета.
- Задержки в сети с коммутацией пакетов: составляющие, их зависимость от размера пакета и расстояния; произведение пропускной способности на задержку.
- Инкапсуляция в стеке TCP/IP. Принцип «из конца в конец» и его следствия для архитектуры Интернета.
- Теоремы Найквиста и Шеннона. Скорость передачи и полоса пропускания.
- Обучение коммутатора Ethernet. Лавинная рассылка и широковещательный домен.
- Протокол связующего дерева: выбор корневого моста, роли и состояния портов.
- CIDR и агрегирование маршрутов. Разбиение сети на подсети переменной длины.
- Отправка IP-пакета хостом: решение о шлюзе, ARP, таблица соседей.
- Фрагментация IPv4 и Path MTU Discovery. Причины «чёрных дыр» PMTUD.
- Правило наибольшего совпадения префикса. Устройство таблицы маршрутизации.
- Дистанционно-векторная маршрутизация и проблема счёта до бесконечности.
- Протокол OSPF: соседство, база состояния каналов, области.
- BGP: атрибуты, процесс выбора маршрута, политики; утечки и перехваты маршрутов, RPKI.
- Адресация IPv6 и автонастройка (SLAAC, DHCPv6). Neighbor Discovery.
- Установление и завершение TCP-соединения. Состояние TIME_WAIT.
- Вычисление RTO. Быстрая повторная передача. Управление потоком.
- Управление перегрузкой: медленный старт, AIMD, CUBIC, BBR. Bufferbloat.
- DHCP и NAPT. Влияние NAT на сквозную связность и методы его обхода.
- Разрешение имени в DNS. Кеширование, TTL, отравление кеша, DNSSEC.
- Эволюция HTTP: от HTTP/1.1 к HTTP/3 и QUIC.
- Рукопожатие TLS 1.3. Цепочка доверия сертификатов X.509.
- Межсетевой экран с отслеживанием состояния. Netfilter и nftables.
- Туннели и VPN: GRE, IPsec, WireGuard. Влияние туннелей на MTU.
- Множественный доступ в 802.11: CSMA/CA, скрытый узел, RTS/CTS.
- Сети центров обработки данных: топология leaf-spine, ECMP, оверлей VXLAN/EVPN; сети контейнеров (мосты, veth, overlay) и Kubernetes.
- Методология поиска неисправностей в сети. Средства мониторинга (SNMP, потоковая телеметрия, NetFlow/IPFIX).
- Автоматизация сети: конфигурация как код, NETCONF/YANG, идемпотентность и проверка изменений.
Рекомендуемая литература
Основная
- Kurose J. F., Ross K. W. Computer Networking: A Top-Down Approach. 8th ed. — Pearson, 2021. Русский перевод предыдущего издания: Куроуз Дж., Росс К. Компьютерные сети. Нисходящий подход. 6-е изд. — М.: Эксмо, 2016.
- Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: юбилейное издание. — СПб.: Питер, 2020.
- Tanenbaum A. S., Feamster N., Wetherall D. J. Computer Networks. 6th ed. — Pearson, 2021.
- Peterson L. L., Davie B. S. Computer Networks: A Systems Approach. — Открытое издание: book.systemsapproach.org.
Дополнительная
- Fall K. R., Stevens W. R. TCP/IP Illustrated, Volume 1: The Protocols. 2nd ed. — Addison-Wesley, 2011.
- Grigorik I. High Performance Browser Networking. — O'Reilly, 2013. Открытая версия: hpbn.co.
- Sanders C. Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems. 3rd ed. — No Starch Press, 2017.
- Peterson L., Brakmo L., Davie B. TCP Congestion Control: A Systems Approach. — Открытое издание: tcpcc.systemsapproach.org.
- Hall B. Beej's Guide to Network Programming. — Открытое издание: beej.us/guide/bgnet.
- Lyon G. F. Nmap Network Scanning. — Insecure.Com LLC, 2009. Открытая версия: nmap.org/book.
Интернет-ресурсы
- RFC Editor — официальный архив стандартов Интернета; IETF Datatracker — история и статус документов.
- Документация Wireshark и справочник фильтров отображения.
- Документация сетевой подсистемы ядра Linux и страницы руководства man7.org.
- Документация FRRouting.
- Блог Cloudflare и APNIC Blog — разборы реальных инцидентов и новых протоколов.
- RIPEstat, bgp.tools, PeeringDB — наблюдение за глобальной маршрутизацией.
- Julia Evans. Networking! ACK! и другие короткие иллюстрированные пособия по сетям.