Лекция 4. Основы компьютерных сетей
1. Зачем нужны компьютерные сети
1.1. От локальных к глобальным
Компьютерная сеть — это совокупность узлов (компьютеров, серверов, маршрутизаторов, IoT-устройств и т.д.), соединённых каналами связи и взаимодействующих по определённым правилам (протоколам).
По масштабу сети делятся на:
| Тип | Расшифровка | Масштаб | Пример |
|---|---|---|---|
| PAN | Personal Area Network | До нескольких метров | Bluetooth-наушники, смартфон ↔ ноутбук |
| LAN | Local Area Network | Здание, офис, кампус | Офисная сеть предприятия |
| MAN | Metropolitan Area Network | Город, регион | Городская сеть кабельного провайдера |
| WAN | Wide Area Network | Страна, континент, весь мир | Интернет |
1.2. Понятие протокола
Протокол — это набор формальных правил, определяющих:
- формат сообщений (какие поля, в каком порядке, какого размера);
- порядок обмена сообщениями (кто начинает, как подтверждается получение);
- действия при ошибках (повтор, уведомление, разрыв соединения).
Без стандартизированных протоколов устройства от разных производителей не смогли бы обмениваться данными. Протоколы организованы в стек уровней (layered model): каждый уровень решает свою задачу и предоставляет сервис вышестоящему.
2. Эталонная модель OSI
2.1. Общая характеристика
Модель OSI (Open Systems Interconnection) была разработана ISO в 1984 году. Она определяет 7 уровней, каждый из которых отвечает за определённый аспект сетевого взаимодействия. OSI — это эталонная (reference) модель: она используется для обучения и классификации, но реальные стеки протоколов (TCP/IP) не следуют ей дословно.
2.2. Семь уровней OSI
| № | Уровень | Назначение | Единица данных (PDU) | Примеры протоколов / технологий |
|---|---|---|---|---|
| 7 | Прикладной (Application) | Интерфейс между приложением и сетью | Данные (Data) | HTTP, HTTPS, FTP, SMTP, DNS, SSH |
| 6 | Представления (Presentation) | Кодирование, шифрование, сжатие данных | Данные | TLS/SSL, JPEG, ASCII, UTF-8 |
| 5 | Сеансовый (Session) | Установление, поддержание и завершение сеансов | Данные | NetBIOS, RPC, SOCKS |
| 4 | Транспортный (Transport) | Надёжная (или ненадёжная) доставка между процессами | Сегмент / Датаграмма | TCP, UDP, QUIC |
| 3 | Сетевой (Network) | Адресация и маршрутизация между сетями | Пакет (Packet) | IP (IPv4, IPv6), ICMP, ARP*, OSPF |
| 2 | Канальный (Data Link) | Передача кадров между соседними узлами, MAC-адресация | Кадр (Frame) | Ethernet (802.3), Wi-Fi (802.11), PPP |
| 1 | Физический (Physical) | Передача битов по среде | Бит (Bit) | Электрические сигналы, оптика, радиоволны |
*ARP часто относят к канальному/сетевому уровню — классификация неоднозначна.
2.3. Принцип инкапсуляции
При отправке данные «спускаются» по стеку: каждый уровень добавляет свой заголовок (а иногда и трейлер), оборачивая данные вышестоящего уровня. На принимающей стороне происходит обратный процесс — декапсуляция: заголовки последовательно снимаются.
Приложение: [Данные]Транспорт: [TCP-заголовок | Данные]Сеть: [IP-заголовок | TCP-заголовок | Данные]Канальный: [Ethernet-заголовок | IP-заголовок | TCP-заголовок | Данные | FCS]Физический: ...биты в среде передачи...3. Модель TCP/IP
3.1. Четыре уровня
Модель TCP/IP (она же модель DoD — Department of Defense) была разработана для сети ARPANET и стала основой современного Интернета. Она содержит 4 уровня:
| № | Уровень TCP/IP | Соответствие OSI | Ключевые протоколы |
|---|---|---|---|
| 4 | Прикладной (Application) | Прикладной + Представления + Сеансовый | HTTP, DNS, SMTP, FTP, SSH, TLS |
| 3 | Транспортный (Transport) | Транспортный | TCP, UDP, QUIC |
| 2 | Сетевой (Internet) | Сетевой | IPv4, IPv6, ICMP, ARP |
| 1 | Канальный (Network Access / Link) | Канальный + Физический | Ethernet, Wi-Fi, PPP |
3.2. Почему TCP/IP победил на практике
- Простота: 4 уровня вместо 7; чёткие, практически проверенные протоколы.
- Открытость: стандарты описаны в RFC (Request for Comments), доступных всем.
- Раннее внедрение: ARPANET, а затем Интернет, были построены на TCP/IP задолго до завершения стандартизации OSI.
- Масштабируемость: IP-протокол масштабируется от домашней сети до глобального Интернета.
- Программная доступность: стек TCP/IP реализован в ядре всех современных ОС (Linux, Windows, macOS, *BSD).
4. Физический и канальный уровень
4.1. Среды передачи
| Среда | Тип | Скорость | Дальность | Применение |
|---|---|---|---|---|
| Витая пара (UTP/STP) | Медь | до 10 Гбит/с (Cat6a) | до 100 м | Офисные LAN |
| Оптоволокно | Свет | до 400 Гбит/с и выше | до десятков км (одномод) | ЦОД, магистрали, WAN |
| Радио (Wi-Fi) | Радиоволны | до 9.6 Гбит/с (Wi-Fi 6) | до ~100 м (в помещении) | Беспроводные LAN |
| Коаксиальный кабель | Медь | до 10 Гбит/с (DOCSIS 3.1) | до нескольких км | Кабельное ТВ, устаревшие LAN |
4.2. Ethernet (IEEE 802.3)
Ethernet — доминирующая технология канального уровня для проводных локальных сетей.
- Использует CSMA/CD (Carrier Sense Multiple Access with Collision Detection) — механизм разрешения коллизий. В современных полнодуплексных коммутируемых сетях коллизии практически не возникают.
- Стандартный кадр Ethernet:
| Поле | Размер | Назначение |
|---|---|---|
| Преамбула + SFD | 8 байт | Синхронизация |
| MAC-адрес назначения | 6 байт | Куда доставить |
| MAC-адрес источника | 6 байт | Откуда отправлено |
| Тип / Длина (EtherType) | 2 байта | Протокол верхнего уровня (0x0800 = IPv4) |
| Данные (payload) | 46–1500 байт | Полезная нагрузка |
| FCS (CRC-32) | 4 байта | Контрольная сумма |
4.3. MAC-адрес
MAC-адрес (Media Access Control) — это 48-битный (6-байтовый) уникальный идентификатор сетевого интерфейса, записанный в прошивку (firmware) адаптера.
- Формат:
AA:BB:CC:DD:EE:FF(шесть пар шестнадцатеричных цифр). - Первые 3 байта — OUI (Organizationally Unique Identifier) — идентификатор производителя (назначается IEEE).
- Последние 3 байта — серийный номер интерфейса.
- Специальный адрес
FF:FF:FF:FF:FF:FF— широковещательный (broadcast): кадр доставляется всем устройствам в сегменте.
4.4. Коммутатор (switch) vs концентратор (hub)
| Характеристика | Концентратор (hub) | Коммутатор (switch) |
|---|---|---|
| Уровень OSI | 1 (Физический) | 2 (Канальный) |
| Обработка кадров | Пересылает на все порты | Пересылает только на нужный порт |
| Таблица MAC-адресов | Нет | Да (MAC address table) |
| Коллизии | Все порты в одном домене коллизий | Каждый порт — отдельный домен |
| Безопасность | Низкая (все видят трафик) | Выше (трафик изолирован) |
| Современное использование | Практически не применяется | Основа любой LAN |
Таблица MAC-адресов коммутатора: коммутатор запоминает, с какого порта пришёл кадр от определённого MAC-адреса, и в дальнейшем отправляет кадры для этого адреса только в соответствующий порт. Если MAC-адрес назначения неизвестен, кадр рассылается на все порты (flooding).
5. Сетевой уровень: протокол IP
5.1. IPv4
IPv4 (Internet Protocol version 4) — основной протокол сетевого уровня, обеспечивающий адресацию узлов и маршрутизацию пакетов.
- Адрес: 32 бита, записывается в виде четырёх десятичных октетов:
192.168.1.10. - Каждый октет — от 0 до 255.
- Общее число адресов: 2³² ≈ 4,3 миллиарда (недостаточно для современных потребностей).
5.2. Классы адресов (историческая система)
| Класс | Первый октет | Маска по умолчанию | Назначение |
|---|---|---|---|
| A | 1–126 | 255.0.0.0 (/8) | Крупные сети (до ~16 млн хостов) |
| B | 128–191 | 255.255.0.0 (/16) | Средние сети (до ~65 тыс. хостов) |
| C | 192–223 | 255.255.255.0 (/24) | Малые сети (до 254 хостов) |
| D | 224–239 | — | Multicast |
| E | 240–255 | — | Зарезервировано |
Адрес
127.x.x.x— loopback (localhost), не передаётся в сеть.
5.3. Маска подсети и CIDR
Классовая система была расточительной (организации получали целые блоки класса A или B). На смену пришла бесклассовая адресация — CIDR (Classless Inter-Domain Routing).
Маска подсети определяет, какая часть адреса — сеть, а какая — хост:
- Маска записывается в десятичном виде (
255.255.255.0) или в CIDR-нотации (/24, что означает 24 единичных бита слева). - Адрес сети = IP AND маска.
- Broadcast-адрес = адрес сети с единичными битами в хостовой части.
5.4. Пример расчёта
Дано: IP = 192.168.10.130, маска = 255.255.255.192 (/26)
Решение:
- Маска
/26означает 26 бит сети и 6 бит хоста. - Размер подсети: 2⁶ = 64 адреса.
- 130 / 64 = 2 (целая часть) → начало подсети: 2 × 64 = 128.
- Адрес сети:
192.168.10.128 - Broadcast:
192.168.10.191(128 + 64 − 1) - Диапазон хостов:
192.168.10.129–192.168.10.190(62 адреса)
5.5. Частные (приватные) IP-адреса
Для использования внутри локальных сетей зарезервированы блоки (RFC 1918):
| Диапазон | CIDR | Класс |
|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | A |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | B |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | C |
Эти адреса не маршрутизируются в глобальном Интернете. Для доступа в Интернет используется NAT (см. раздел 9).
6. IPv6
6.1. Зачем нужен IPv6
Адресное пространство IPv4 (4,3 млрд адресов) было исчерпано — IANA распределила последние блоки /8 в 2011 году. IPv6 решает эту проблему и вносит архитектурные улучшения.
6.2. Формат адреса
- 128 бит — записывается как 8 групп по 4 шестнадцатеричных цифры, разделённых двоеточиями:
2001:0db8:85a3:0000:0000:8a2e:0370:7334- Сокращения:
- Ведущие нули в группе можно опускать:
0db8→db8. - Одна непрерывная последовательность нулевых групп заменяется на
::(допускается один раз):
- Ведущие нули в группе можно опускать:
2001:db8:85a3::8a2e:370:73346.3. Основные отличия IPv6 от IPv4
| Характеристика | IPv4 | IPv6 |
|---|---|---|
| Длина адреса | 32 бита | 128 бит |
| Количество адресов | ~4,3 × 10⁹ | ~3,4 × 10³⁸ |
| Формат записи | Десятичный с точками | Шестнадцатеричный с двоеточиями |
| Заголовок | Переменной длины, с опциями | Фиксированный (40 байт), расширения — отдельные заголовки |
| Broadcast | Есть | Нет (заменён на multicast и anycast) |
| Автоконфигурация | DHCP | SLAAC (Stateless Address Autoconfiguration) + DHCPv6 |
| IPsec | Опционально | Встроен в стандарт |
| NAT | Широко используется | Не требуется (достаточно адресов) |
7. Маршрутизация
7.1. Основы
Маршрутизация — это процесс определения пути, по которому пакет должен пройти от отправителя к получателю через промежуточные сети.
Каждый маршрутизатор (а также каждый хост) имеет таблицу маршрутов — набор правил вида:
| Сеть назначения | Маска | Шлюз (next hop) | Интерфейс | Метрика |
|---|---|---|---|---|
| 192.168.1.0 | /24 | — (directly connected) | eth0 | 0 |
| 10.0.0.0 | /8 | 192.168.1.1 | eth0 | 10 |
| 0.0.0.0 | /0 | 192.168.1.1 | eth0 | 100 |
Последняя строка — маршрут по умолчанию (default route): если ни одно более конкретное правило не подходит, пакет отправляется на шлюз по умолчанию (default gateway) — обычно это ближайший маршрутизатор.
7.2. Принцип выбора маршрута
Маршрутизатор выбирает запись с наибольшим совпадением по длине префикса (longest prefix match). Например, для адреса 10.1.2.3:
- Запись
10.0.0.0/8подходит (8 бит совпали). - Запись
10.1.0.0/16подходит лучше (16 бит совпали) — она и будет выбрана.
7.3. Статическая vs динамическая маршрутизация
| Характеристика | Статическая | Динамическая |
|---|---|---|
| Настройка | Вручную администратором | Автоматически протоколами |
| Реакция на изменения | Требует ручного обновления | Адаптируется автоматически |
| Нагрузка на сеть | Нет служебного трафика | Обмен маршрутной информацией |
| Применение | Малые сети, резервные маршруты | Средние и крупные сети, Интернет |
| Примеры протоколов | — | OSPF, BGP, RIP, EIGRP |
8. DHCP — автоматическая настройка сети
8.1. Назначение
DHCP (Dynamic Host Configuration Protocol) позволяет узлам автоматически получать сетевые параметры при подключении к сети:
- IP-адрес
- Маска подсети
- Шлюз по умолчанию
- DNS-серверы
- Время аренды (lease time)
Без DHCP администратору пришлось бы вручную настраивать каждое устройство, что непрактично в сетях с десятками и сотнями хостов.
8.2. Процесс DORA
Взаимодействие клиента и DHCP-сервера проходит в 4 этапа (все сообщения передаются по UDP, порты 67/68):
| Шаг | Название | Направление | Описание |
|---|---|---|---|
| 1 | Discover | Клиент → Broadcast | Клиент отправляет широковещательный запрос «Есть ли DHCP-сервер?» |
| 2 | Offer | Сервер → Клиент | Сервер предлагает IP-адрес и параметры |
| 3 | Request | Клиент → Broadcast | Клиент принимает предложение и запрашивает именно этот адрес |
| 4 | Acknowledge | Сервер → Клиент | Сервер подтверждает выделение адреса |
После получения ACK клиент настраивает свой сетевой интерфейс и может работать в сети.
8.3. Аренда и продление
Адрес выдаётся на определённый срок (lease time). По истечении половины срока клиент отправляет запрос на продление (DHCP Request). Если сервер не отвечает, клиент повторяет попытку по истечении 87,5 % срока, а после истечения аренды — начинает процесс DORA заново.
9. NAT — Network Address Translation
9.1. Зачем нужен NAT
В IPv4 публичных адресов не хватает на все устройства. NAT позволяет целой локальной сети выходить в Интернет через один (или несколько) публичный IP-адрес, подменяя приватные адреса в заголовках пакетов.
9.2. Типы NAT
| Тип | Описание | Применение |
|---|---|---|
| Static NAT | Один приватный адрес ↔ один публичный адрес (1:1) | Серверы, которые должны быть доступны извне |
| Dynamic NAT | Пул приватных адресов ↔ пул публичных (N:M, M < N) | Организации с несколькими публичными IP |
| PAT / Masquerade | Множество приватных адресов → один публичный + разные порты (N:1) | Домашние роутеры, малый бизнес |
9.3. Как работает PAT (на примере домашнего роутера)
Рассмотрим типичную ситуацию: три устройства в домашней сети обращаются к веб-серверу в Интернете.
Шаг 1. Исходящий пакет:
| Поле | До NAT | После NAT |
|---|---|---|
| Src IP | 192.168.1.100 | 203.0.113.5 (публичный IP роутера) |
| Src Port | 50001 | 60001 (выбран роутером) |
| Dst IP | 93.184.216.34 | 93.184.216.34 |
| Dst Port | 80 | 80 |
Роутер сохраняет соответствие в NAT-таблице:
| Внутренний адрес:порт | Внешний порт |
|---|---|
| 192.168.1.100:50001 | 60001 |
| 192.168.1.101:50002 | 60002 |
| 192.168.1.102:50003 | 60003 |
Шаг 2. Ответный пакет: сервер отправляет ответ на 203.0.113.5:60001. Роутер находит запись в NAT-таблице и перенаправляет пакет на 192.168.1.100:50001.
Таким образом, множество устройств используют один публичный IP, различаясь по номерам портов.
10. ARP — Address Resolution Protocol
10.1. Зачем нужен ARP
Для отправки кадра на канальном уровне нужен MAC-адрес получателя. Но приложения и сетевой уровень оперируют IP-адресами. ARP обеспечивает преобразование IP-адреса → MAC-адрес в пределах одной локальной сети.
10.2. Как работает ARP
Ситуация: хост A (192.168.1.10) хочет отправить пакет хосту B (192.168.1.20) в той же подсети, но не знает его MAC-адрес.
- ARP-запрос (ARP Request): хост A отправляет широковещательный кадр (Dst MAC =
FF:FF:FF:FF:FF:FF):- «Кто имеет IP
192.168.1.20? Ответьте на MACAA:BB:CC:11:22:33» (MAC хоста A).
- «Кто имеет IP
- Все устройства в сегменте получают запрос, но только хост B (владелец
192.168.1.20) отвечает. - ARP-ответ (ARP Reply): хост B отправляет одноадресный (unicast) ответ хосту A:
- «
192.168.1.20— этоDD:EE:FF:44:55:66» (MAC хоста B).
- «
- Хост A сохраняет соответствие в ARP-таблице (ARP cache) и использует MAC-адрес для отправки кадра.
10.3. ARP-таблица
Каждый хост и маршрутизатор хранит кэш ARP-записей, чтобы не отправлять ARP-запрос при каждом обращении. Записи имеют время жизни (TTL): обычно 2–20 минут, после чего устаревают и удаляются.
Просмотр ARP-таблицы:
- Linux / macOS:
arp -aилиip neigh(Linux) - Windows:
arp -a
10.4. Безопасность ARP
ARP не имеет механизмов аутентификации, что делает его уязвимым:
- ARP-spoofing (ARP poisoning): злоумышленник отправляет ложные ARP-ответы, связывая свой MAC-адрес с IP-адресом жертвы (например, шлюза). Это позволяет перехватывать или модифицировать трафик (атака «человек посередине» / MITM).
- Защита: Dynamic ARP Inspection (DAI) на управляемых коммутаторах, статические ARP-записи, использование 802.1X.
11. ICMP — Internet Control Message Protocol
11.1. Назначение
ICMP (Internet Control Message Protocol) — это служебный протокол сетевого уровня, предназначенный для диагностики и уведомления об ошибках в IP-сетях. ICMP не передаёт пользовательские данные — он передаёт управляющие сообщения.
Примеры ICMP-сообщений:
| Тип | Код | Назначение |
|---|---|---|
| 0 | 0 | Echo Reply (ответ на ping) |
| 3 | 0 | Destination Network Unreachable |
| 3 | 1 | Destination Host Unreachable |
| 3 | 3 | Destination Port Unreachable |
| 8 | 0 | Echo Request (запрос ping) |
| 11 | 0 | Time Exceeded (TTL expired) |
11.2. Утилита ping
ping — это простейший инструмент диагностики сетевой доступности:
- Отправляет ICMP Echo Request (тип 8) на целевой адрес.
- Ожидает ICMP Echo Reply (тип 0).
- Измеряет время прохождения (Round-Trip Time, RTT) и считает потери.
$ ping 8.8.8.8PING 8.8.8.8: 56 data bytes64 bytes from 8.8.8.8: icmp_seq=0 ttl=118 time=12.3 ms64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=11.8 ms64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=12.1 ms- TTL (Time To Live): каждый маршрутизатор уменьшает TTL на 1. Когда TTL = 0, пакет отбрасывается и отправитель получает ICMP Time Exceeded.
- Потери пакетов: если Echo Reply не получен — узел недоступен, пакет потерян или заблокирован файрволом.
11.3. Утилита traceroute (tracert в Windows)
traceroute определяет маршрут пакета — последовательность маршрутизаторов на пути к цели.
Принцип работы:
- Отправляет пакет с TTL = 1. Первый маршрутизатор уменьшает TTL до 0, отбрасывает пакет и возвращает ICMP Time Exceeded — так мы узнаём его IP-адрес.
- Отправляет пакет с TTL = 2. Первый маршрутизатор пропускает, второй отбрасывает и отвечает ICMP Time Exceeded.
- Процесс повторяется с увеличением TTL, пока пакет не достигнет цели.
$ traceroute 8.8.8.8 1 192.168.1.1 1.2 ms 1.1 ms 1.0 ms 2 10.0.0.1 5.3 ms 5.1 ms 5.4 ms 3 72.14.204.68 8.7 ms 8.5 ms 8.9 ms 4 8.8.8.8 12.1 ms 12.0 ms 12.3 msВ Windows используется команда
tracert, которая по умолчанию отправляет ICMP Echo Request. В Linux/macOStracerouteпо умолчанию использует UDP-пакеты на высокие порты, но может использовать ICMP с флагом-I.
11.4. Практическое значение
| Инструмент | Что проверяет | Когда использовать |
|---|---|---|
ping | Доступность узла, RTT, потери | Быстрая проверка связи |
traceroute / tracert | Маршрут до узла, задержки на каждом хопе | Диагностика проблем маршрутизации |
Вместе эти инструменты позволяют локализовать проблему: если ping не проходит, traceroute покажет, на каком этапе маршрута происходит обрыв.
12. Вопросы для самопроверки
- Перечислите уровни модели OSI и укажите для каждого единицу данных (PDU) и примеры протоколов.
- Сколько уровней в модели TCP/IP? Как они соотносятся с моделями OSI?
- Что такое инкапсуляция? Опишите процесс инкапсуляции при отправке HTTP-запроса.
- Чем коммутатор (switch) отличается от концентратора (hub)? Почему коммутаторы полностью вытеснили хабы?
- Дано: IP-адрес
172.16.50.200, маска/20. Определите адрес сети, broadcast-адрес и диапазон хостов. - Назовите три основных отличия IPv6 от IPv4. Почему переход на IPv6 происходит медленно?
- Что такое шлюз по умолчанию? Что произойдёт, если он не настроен, а узел пытается обратиться к адресу в другой подсети?
- Опишите четыре этапа процесса DHCP (DORA). Почему сообщения Discover и Request отправляются широковещательно?
- Как работает PAT (Port Address Translation)? Объясните на примере, как три устройства в домашней сети могут одновременно обращаться к разным веб-сайтам через один публичный IP.
- Объясните принцип работы traceroute. Какой механизм протокола IP позволяет определять промежуточные маршрутизаторы?