Перейти к содержимому

Лекция 4. Основы компьютерных сетей


1. Зачем нужны компьютерные сети

1.1. От локальных к глобальным

Компьютерная сеть — это совокупность узлов (компьютеров, серверов, маршрутизаторов, IoT-устройств и т.д.), соединённых каналами связи и взаимодействующих по определённым правилам (протоколам).

По масштабу сети делятся на:

ТипРасшифровкаМасштабПример
PANPersonal Area NetworkДо нескольких метровBluetooth-наушники, смартфон ↔ ноутбук
LANLocal Area NetworkЗдание, офис, кампусОфисная сеть предприятия
MANMetropolitan Area NetworkГород, регионГородская сеть кабельного провайдера
WANWide 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 победил на практике

  1. Простота: 4 уровня вместо 7; чёткие, практически проверенные протоколы.
  2. Открытость: стандарты описаны в RFC (Request for Comments), доступных всем.
  3. Раннее внедрение: ARPANET, а затем Интернет, были построены на TCP/IP задолго до завершения стандартизации OSI.
  4. Масштабируемость: IP-протокол масштабируется от домашней сети до глобального Интернета.
  5. Программная доступность: стек 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:
ПолеРазмерНазначение
Преамбула + SFD8 байтСинхронизация
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)
Уровень OSI1 (Физический)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. Классы адресов (историческая система)

КлассПервый октетМаска по умолчаниюНазначение
A1–126255.0.0.0 (/8)Крупные сети (до ~16 млн хостов)
B128–191255.255.0.0 (/16)Средние сети (до ~65 тыс. хостов)
C192–223255.255.255.0 (/24)Малые сети (до 254 хостов)
D224–239Multicast
E240–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)

Решение:

  1. Маска /26 означает 26 бит сети и 6 бит хоста.
  2. Размер подсети: 2⁶ = 64 адреса.
  3. 130 / 64 = 2 (целая часть) → начало подсети: 2 × 64 = 128.
  4. Адрес сети: 192.168.10.128
  5. Broadcast: 192.168.10.191 (128 + 64 − 1)
  6. Диапазон хостов: 192.168.10.129192.168.10.190 (62 адреса)

5.5. Частные (приватные) IP-адреса

Для использования внутри локальных сетей зарезервированы блоки (RFC 1918):

ДиапазонCIDRКласс
10.0.0.0 – 10.255.255.25510.0.0.0/8A
172.16.0.0 – 172.31.255.255172.16.0.0/12B
192.168.0.0 – 192.168.255.255192.168.0.0/16C

Эти адреса не маршрутизируются в глобальном Интернете. Для доступа в Интернет используется 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
  • Сокращения:
    • Ведущие нули в группе можно опускать: 0db8db8.
    • Одна непрерывная последовательность нулевых групп заменяется на :: (допускается один раз):
2001:db8:85a3::8a2e:370:7334

6.3. Основные отличия IPv6 от IPv4

ХарактеристикаIPv4IPv6
Длина адреса32 бита128 бит
Количество адресов~4,3 × 10⁹~3,4 × 10³⁸
Формат записиДесятичный с точкамиШестнадцатеричный с двоеточиями
ЗаголовокПеременной длины, с опциямиФиксированный (40 байт), расширения — отдельные заголовки
BroadcastЕстьНет (заменён на multicast и anycast)
АвтоконфигурацияDHCPSLAAC (Stateless Address Autoconfiguration) + DHCPv6
IPsecОпциональноВстроен в стандарт
NATШироко используетсяНе требуется (достаточно адресов)

7. Маршрутизация

7.1. Основы

Маршрутизация — это процесс определения пути, по которому пакет должен пройти от отправителя к получателю через промежуточные сети.

Каждый маршрутизатор (а также каждый хост) имеет таблицу маршрутов — набор правил вида:

Сеть назначенияМаскаШлюз (next hop)ИнтерфейсМетрика
192.168.1.0/24— (directly connected)eth00
10.0.0.0/8192.168.1.1eth010
0.0.0.0/0192.168.1.1eth0100

Последняя строка — маршрут по умолчанию (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):

ШагНазваниеНаправлениеОписание
1DiscoverКлиент → BroadcastКлиент отправляет широковещательный запрос «Есть ли DHCP-сервер?»
2OfferСервер → КлиентСервер предлагает IP-адрес и параметры
3RequestКлиент → BroadcastКлиент принимает предложение и запрашивает именно этот адрес
4AcknowledgeСервер → КлиентСервер подтверждает выделение адреса

После получения 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 IP192.168.1.100203.0.113.5 (публичный IP роутера)
Src Port5000160001 (выбран роутером)
Dst IP93.184.216.3493.184.216.34
Dst Port8080

Роутер сохраняет соответствие в NAT-таблице:

Внутренний адрес:портВнешний порт
192.168.1.100:5000160001
192.168.1.101:5000260002
192.168.1.102:5000360003

Шаг 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-адрес.

  1. ARP-запрос (ARP Request): хост A отправляет широковещательный кадр (Dst MAC = FF:FF:FF:FF:FF:FF):
    • «Кто имеет IP 192.168.1.20? Ответьте на MAC AA:BB:CC:11:22:33» (MAC хоста A).
  2. Все устройства в сегменте получают запрос, но только хост B (владелец 192.168.1.20) отвечает.
  3. ARP-ответ (ARP Reply): хост B отправляет одноадресный (unicast) ответ хосту A:
    • «192.168.1.20 — это DD:EE:FF:44:55:66» (MAC хоста B).
  4. Хост 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-сообщений:

ТипКодНазначение
00Echo Reply (ответ на ping)
30Destination Network Unreachable
31Destination Host Unreachable
33Destination Port Unreachable
80Echo Request (запрос ping)
110Time Exceeded (TTL expired)

11.2. Утилита ping

ping — это простейший инструмент диагностики сетевой доступности:

  1. Отправляет ICMP Echo Request (тип 8) на целевой адрес.
  2. Ожидает ICMP Echo Reply (тип 0).
  3. Измеряет время прохождения (Round-Trip Time, RTT) и считает потери.
$ ping 8.8.8.8
PING 8.8.8.8: 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=118 time=12.3 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=11.8 ms
64 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 определяет маршрут пакета — последовательность маршрутизаторов на пути к цели.

Принцип работы:

  1. Отправляет пакет с TTL = 1. Первый маршрутизатор уменьшает TTL до 0, отбрасывает пакет и возвращает ICMP Time Exceeded — так мы узнаём его IP-адрес.
  2. Отправляет пакет с TTL = 2. Первый маршрутизатор пропускает, второй отбрасывает и отвечает ICMP Time Exceeded.
  3. Процесс повторяется с увеличением 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/macOS traceroute по умолчанию использует UDP-пакеты на высокие порты, но может использовать ICMP с флагом -I.

11.4. Практическое значение

ИнструментЧто проверяетКогда использовать
pingДоступность узла, RTT, потериБыстрая проверка связи
traceroute / tracertМаршрут до узла, задержки на каждом хопеДиагностика проблем маршрутизации

Вместе эти инструменты позволяют локализовать проблему: если ping не проходит, traceroute покажет, на каком этапе маршрута происходит обрыв.


12. Вопросы для самопроверки

  1. Перечислите уровни модели OSI и укажите для каждого единицу данных (PDU) и примеры протоколов.
  2. Сколько уровней в модели TCP/IP? Как они соотносятся с моделями OSI?
  3. Что такое инкапсуляция? Опишите процесс инкапсуляции при отправке HTTP-запроса.
  4. Чем коммутатор (switch) отличается от концентратора (hub)? Почему коммутаторы полностью вытеснили хабы?
  5. Дано: IP-адрес 172.16.50.200, маска /20. Определите адрес сети, broadcast-адрес и диапазон хостов.
  6. Назовите три основных отличия IPv6 от IPv4. Почему переход на IPv6 происходит медленно?
  7. Что такое шлюз по умолчанию? Что произойдёт, если он не настроен, а узел пытается обратиться к адресу в другой подсети?
  8. Опишите четыре этапа процесса DHCP (DORA). Почему сообщения Discover и Request отправляются широковещательно?
  9. Как работает PAT (Port Address Translation)? Объясните на примере, как три устройства в домашней сети могут одновременно обращаться к разным веб-сайтам через один публичный IP.
  10. Объясните принцип работы traceroute. Какой механизм протокола IP позволяет определять промежуточные маршрутизаторы?