Сети с нуля 01. Что такое сеть: устройства, модель TCP/IP и OSI
Note
Материал сверен с первоисточниками (RFC и официальная документация Microsoft, Wireshark и др.; ссылки — в конце статьи). Примеры вывода — иллюстрации: на вашей системе значения и формат могут отличаться.
Вы пользуетесь сетью каждый день: открываете сайт, печатаете на сетевом принтере, подключаетесь к файловому серверу. Пока всё работает, об устройстве сети никто не думает. Когда ломается, непонятно, с чего начинать. Эта серия из двенадцати статей даёт основу, чтобы понимать, что происходит «под капотом», и находить причину неполадки.
Первая статья — общая картина, без адресов, масок и сложных команд. Мы разберём:
- что такое сеть, узел, протокол, клиент и сервер;
- какие бывают устройства и что делает каждое;
- что такое модели TCP/IP и OSI и почему говорят «второй уровень» и «третий уровень»;
- как данные «упаковываются» на пути из программы в кабель;
- в чём измеряют скорость, задержку и потери.
Сквозной пример всей серии — небольшая офисная сеть; её схема приведена ниже.
Что нужно знать заранее
Ничего. Достаточно уметь открыть командную строку Windows: она понадобится в конце статьи для короткого упражнения.
Сеть, узел и протокол
Компьютерная сеть — это система связи, которая соединяет компьютеры и другие устройства, чтобы они могли обмениваться данными. Устройство, подключённое к сети и имеющее в ней адрес, называют узлом. Конечное устройство, ради программ которого сеть и работает (компьютер, сервер, принтер), по-английски называют host, «хост». RFC 1122 (RFC — Request for Comments, «запрос комментариев»: нумерованные документы, в которых публикуют стандарты интернета) описывает хост как «конечного потребителя услуг связи». Коммутатор и маршрутизатор пересылают чужие данные и хостами в этом смысле не являются. В серии, когда речь о конечном устройстве, слова «узел» и «хост» — синонимы.
Чтобы устройства поняли друг друга, они должны «говорить на одном языке». Такой язык называется протоколом: это формальное описание формата сообщений и правил обмена ими. Протоколы описаны в документах RFC и в стандартах таких организаций, как IEEE (Institute of Electrical and Electronics Engineers, институт инженеров по электротехнике и электронике). Поэтому в одной сети спокойно работают устройства разных производителей: все следуют общим правилам.
Клиент и сервер
Большая часть сетевых приложений устроена по схеме «клиент — сервер». Клиент запрашивает услугу, сервер предоставляет ресурс. Браузер на PC1 — клиент, сайт отвечает ему как сервер.
Роль принадлежит не железу, а программе: один и тот же компьютер может быть сервером для одних программ и клиентом для других.
Локальные и глобальные сети
- LAN (Local Area Network, локальная сеть) — сеть на небольшой территории: офис, этаж, здание;
- WAN (Wide Area Network, глобальная сеть) — сеть, которая покрывает большую территорию: например, каналы между филиалами в разных городах или линия до провайдера.
Интернет — объединение огромного числа сетей, соединённых маршрутизаторами. (В английском «Internet» с заглавной буквы — глобальная сеть, а «internet» со строчной — любое объединение сетей; так различает их глоссарий RFC 1983.) Офисная локальная сеть при этом работает и без интернета: принтер и файловый сервер доступны, даже если провайдер отключил канал.
Устройства сети
На каждое устройство нам хватит одной-двух фраз, подробности — в следующих статьях.
| Устройство | Что делает | Подробнее |
|---|---|---|
| Сетевая карта (сетевой адаптер, NIC — Network Interface Card) | Подключает компьютер к среде передачи (кабелю или радиоканалу). У каждой карты есть аппаратный адрес — MAC-адрес (Media Access Control) | статья 02 |
| Коммутатор (switch) | Соединяет устройства одной локальной сети и пересылает данные тому порту, за которым находится получатель; решает по MAC-адресам | статья 02 |
| Маршрутизатор (router) | Соединяет разные сети и пересылает пакеты из одной в другую; решает по IP-адресам (IP — Internet Protocol) | статья 05 |
| Точка доступа Wi-Fi | Подключает беспроводные устройства к проводной сети | статья 12 |
| Межсетевой экран (firewall, брандмауэр) | Пропускает или блокирует трафик между сетями по правилам | MikroTik с нуля 04: Firewall для начинающих, Cisco с нуля 08: списки доступа (ACL) |
| Модем или оптический терминал (ONT — Optical Network Terminal) | Как правило, преобразует сигнал линии провайдера (телефонной, кабельной или оптической) в обычный Ethernet | — |
Различие между коммутатором и маршрутизатором стоит запомнить сразу: коммутатор работает внутри одной сети, маршрутизатор соединяет разные сети. В старых документах маршрутизатор называют также шлюзом (gateway), а устройство, работающее как коммутатор, — мостом (bridge).
Межсетевой экран ограничивает трафик между сетями и тем самым защищает «внутреннюю» сеть от «внешней». Он бывает отдельным устройством, функцией маршрутизатора или программой на компьютере (в Windows это брандмауэр).
Домашний «роутер», как правило, совмещает несколько устройств в одном корпусе: маршрутизатор, коммутатор, точку Wi-Fi и межсетевой экран. В серии «роутер» и «маршрутизатор» — синонимы. Шлюз (по умолчанию) — маршрутизатор, через который компьютеры сети выходят за её пределы; подробнее — в статье 05.
Наша учебная сеть
интернет
|
| 203.0.113.1 шлюз провайдера
|
[ RTR1 ] внешний адрес 203.0.113.2
| внутренний адрес 192.168.10.1
|
[ SW1 ]
+-----------+-----+-----+-----------+
| | | |
[ PC1 ] [ PC2 ] [ SRV1 ] [ PRN1 ]
.101 .102 .10 .50
Офисная сеть 192.168.10.0/24: цифры под устройствами
обозначают последнее число адреса в этой сети
Здесь RTR1 — роутер (он же шлюз), SW1 — коммутатор, PC1 и PC2 — рабочие компьютеры, SRV1 — сервер, PRN1 — сетевой принтер. Адреса пока воспринимайте как «номера»: как они устроены, разберёт статья 03. Внешние адреса в серии взяты из блоков, которые RFC 5737 зарезервировал для примеров в документации, поэтому они не принадлежат реальным узлам. Если провайдер подключает вас по оптике, перед RTR1 обычно стоит ONT; в нашей схеме провайдер отдаёт обычный Ethernet-кабель, и отдельного модема нет.
Модель TCP/IP: четыре уровня
Передача данных между программами — сложная задача: нужно найти нужный компьютер, договориться о соединении, довезти данные по конкретному кабелю или радиоканалу. Чтобы не решать всё сразу, задачу делят на уровни: каждый решает свою часть и пользуется услугами нижнего. Аналогия — доставка посылки: вы пишете письмо (прикладной уровень), транспортная служба решает, как гарантировать доставку (транспортный), диспетчеры выбирают маршрут между городами (сетевой), а водитель едет по конкретной дороге (канальный).
Рабочая модель интернета — TCP/IP (по названиям двух главных протоколов, TCP и IP; ещё её называют стеком протоколов интернета). Четыре уровня описаны в RFC 1122:
| Уровень TCP/IP | Задача | Примеры протоколов | Единица данных |
|---|---|---|---|
| Прикладной (application) | То, что нужно самой программе: веб, почта, разрешение имён | HTTP (HyperText Transfer Protocol), DNS (Domain Name System), SMTP (Simple Mail Transfer Protocol) | сообщение приложения |
| Транспортный (transport) | Связь между программами на двух узлах | TCP (Transmission Control Protocol), UDP (User Datagram Protocol) | сегмент TCP, датаграмма UDP |
| Сетевой, или «интернет» (internet) | Доставка данных от узла к узлу через несколько сетей | IP (Internet Protocol), ICMP (Internet Control Message Protocol), ARP (Address Resolution Protocol) | IP-пакет |
| Канальный (link) | Передача по конкретной сети между соседями | Ethernet, Wi-Fi | кадр |
Три замечания к таблице:
- Названия единиц данных условны: в спецификации IP единица называется датаграммой, а в быту «пакетом» часто зовут любую порцию данных. Главное — понимать, какому уровню она принадлежит: кадр относится к каналу, пакет — к IP.
- В архивной документации Microsoft (Windows Server 2003) ARP отнесён к уровню «интернет» (в её таблице: IP, ICMP, ARP, RARP), а RFC 1122 описывает его в главе о канальном уровне (п. 2.3.2). Протокол стоит на границе уровней, поэтому источники размещают его по-разному.
- TCP гарантирует программе доставку данных и их порядок, UDP — нет. Подробности — в статье 09.
Полезно держать в голове: у каждого уровня свой «адрес». Канальный уровень различает узлы по MAC-адресам, сетевой — по IP-адресам, транспортный указывает на нужную программу номером порта, а прикладной оперирует понятными людям именами (например, www.example.com). Вся серия — про то, как эти адреса связываются между собой.
Модель OSI: семь уровней и зачем она нужна
Кроме TCP/IP, в сетевой лексике постоянно встречается модель OSI (Open Systems Interconnection, эталонная модель взаимодействия открытых систем). Это стандарт ITU-T X.200 (1994; ITU-T — сектор стандартизации электросвязи Международного союза электросвязи), идентичный текст издан как ISO/IEC 7498-1 (ISO/IEC — Международная организация по стандартизации и Международная электротехническая комиссия). Модель делит сеть на семь уровней, которые нумеруются снизу вверх:
| № | Уровень OSI | В двух словах | Соответствует в TCP/IP |
|---|---|---|---|
| 7 | Прикладной | Доступ программ к сетевым услугам | Прикладной |
| 6 | Представления | Единое представление данных, чтобы стороны понимали их одинаково | Прикладной |
| 5 | Сеансовый | Организация и синхронизация «диалога» между сторонами | Прикладной |
| 4 | Транспортный | Надёжная передача данных между конечными узлами | Транспортный |
| 3 | Сетевой | Доставка через несколько сетей, маршрутизация | Сетевой |
| 2 | Канальный | Передача между соседними устройствами, обнаружение ошибок | Канальный |
| 1 | Физический | Передача битов по среде: сигналы, разъёмы, кабели | Канальный |
RFC 1122 пишет, что прикладной уровень TCP/IP объединяет функции двух верхних уровней OSI — представления и прикладного — и дальше не делится на подуровни. Сеансовый уровень (5) в TCP/IP отдельно не выделяют; в учебниках его, как правило, относят к прикладному, поэтому соответствие в таблице приблизительное. Физический и канальный уровни OSI в TCP/IP объединены в канальный.
Важно понимать статус моделей. TCP/IP — реальные протоколы, на которых работает интернет, а OSI — общий язык для разговора об устройстве сети; её не привязывают к конкретному набору протоколов.
Почему говорят «L2» и «L3»
На практике номера уровней OSI стали профессиональным сленгом:
- Уровень 1 (L1) — кабель, разъём, радиоканал, сигналы. «Проблема на первом уровне» — сломанный кабель или неисправный порт.
- Уровень 2 (L2) — кадры и MAC-адреса. «L2-коммутатор» — обычный коммутатор.
- Уровень 3 (L3) — IP-адреса и маршрутизация. «L3-коммутатор» умеет не только коммутировать, но и маршрутизировать.
- Уровень 4 (L4) — TCP/UDP и порты. Правило межсетевого экрана «разрешить порт 443» — уровень 4.
- Уровень 7 (L7) — прикладные протоколы: HTTP, DNS, SMTP.
Модель удобна для диагностики: если не работает нижний уровень, верхние работать не будут. Нет линка — бессмысленно искать ошибку в DNS. Мы вернёмся к этому в статье 10.
Инкапсуляция: как данные «упаковываются»
Когда программа отправляет данные, они проходят вниз по уровням. Каждый уровень добавляет к ним собственный заголовок со служебной информацией, необходимой его протоколу; на приёме заголовки снимают в обратном порядке. Процесс называется инкапсуляцией.
Представьте письмо: его кладут в конверт с адресом, конверт — в почтовый мешок с маркировкой направления, мешок — в машину. Получатель на каждом этапе вынимает то, что внутри. Для запроса к сайту это выглядит так:
Прикладной: [ данные HTTP ] сообщение
Транспортный: [ TCP ][ данные HTTP ] сегмент TCP
Сетевой: [ IP ][ TCP ][ данные HTTP ] пакет
Канальный: [ Eth ][ IP ][ TCP ][ данные HTTP ][ FCS ] кадр
Здесь Eth — заголовок Ethernet, а FCS (Frame Check Sequence) — контрольная сумма в конце кадра: по ней получатель замечает, что кадр повреждён в пути. Устройство в середине пути «распаковывает» ровно столько, сколько ему нужно: коммутатору, как правило, хватает заголовка кадра, маршрутизатору — заголовка IP. До данных HTTP добирается только конечный получатель.
У заголовков есть цена: они увеличивают объём передаваемых данных. Поэтому реальная скорость передачи полезных данных всегда ниже номинальной скорости канала.
Пример: открываем сайт в браузере
Посмотрим, что происходит, когда пользователь PC1 вводит в браузере https://www.example.com. Это упрощённая схема: каждый шаг подробно разобран в своей статье.
- Имя в адрес (прикладной уровень). Компьютеру нужен адрес сервера, а у него есть только имя. Он спрашивает DNS-сервер, и тот отвечает:
198.51.100.10(статья 07). - «Свой или чужой?» (сетевой уровень).
PC1сравнивает адрес сервера со своей сетью.198.51.100.10не входит в192.168.10.0/24, поэтому данные нужно отдать шлюзу —RTR1(статья 03 и статья 05). - Кому физически отправить кадр (канальный уровень). В локальной сети кадры адресуются по MAC.
PC1выясняет MAC-адресRTR1и отправляет кадр;SW1доставляет его к нужному порту. - Соединение (транспортный уровень).
PC1устанавливает с сервером TCP-соединение на порт 443, стандартный дляhttps(статья 09). - Защита и запрос (прикладной уровень). Поверх соединения браузер включает шифрование (TLS, Transport Layer Security), отправляет запрос, а сервер отвечает страницей.
- Дорога наружу.
RTR1заменяет частный адрес192.168.10.101на внешний203.0.113.2(NAT — Network Address Translation, трансляция сетевых адресов; статья 08) и пересылает пакет провайдеру; ответ возвращается тем же путём.
Здесь описан классический вариант: HTTP поверх TLS поверх TCP. Современные браузеры могут использовать HTTP/3: тот же HTTP поверх протокола QUIC, который передаёт свои пакеты в датаграммах UDP. На схеме инкапсуляции в этом случае вместо TCP стоял бы UDP.
Обратите внимание: MAC-адреса действуют только внутри одной сети, и на каждом новом участке пути в кадре стоят другие. IP-адреса отправителя и получателя в пакете остаются прежними (пока не вмешивается NAT).
Единицы измерения: скорость, задержка, потери
Бит и байт. Бит — минимальная единица информации (0 или 1), байт — 8 бит. В сетевых документах встречается и слово «октет»: это тоже ровно 8 бит.
Скорость. Скорость каналов измеряют в битах в секунду: Мбит/с, Гбит/с. Приставка «мега» по системе СИ означает миллион, поэтому 1 Мбит/с — это 1 000 000 бит в секунду. Размеры файлов считают в байтах: КБ, МБ, ГБ. Чтобы приблизительно перевести скорость в мегабайты в секунду, разделите её на 8: канал в 100 Мбит/с даёт не более 12,5 МБ/с, а реальная скорость будет ещё ниже.
Пропускная способность (bandwidth) обычно означает максимум, на который рассчитан канал. Не путайте её с фактической скоростью, которую вы получаете сейчас: она зависит от нагрузки, качества линии и накладных расходов на заголовки.
Задержка — время, за которое данные доходят до адресата. Чаще измеряют время кругового обращения (RTT, round-trip time): сколько проходит от отправки пакета до получения ответа. Высокая скорость канала не гарантирует малую задержку: это разные характеристики.
Потери — пакеты, которые не дошли до получателя: пакет считают потерянным, если он не получен в течение заданного времени ожидания. В звонке потери слышны как «рассыпающийся» звук; для TCP это повторная отправка данных и, как правило, замедление.
Практика: найдите уровни на своём компьютере
Откройте командную строку и выполните:
C:\Users\admin-lab>ipconfig /all
Ключ /all показывает полную конфигурацию TCP/IP для всех адаптеров. Пример вывода (значения вымышленные; названия строк зависят от языка и версии Windows, а набор полей — от адаптера):
Ethernet adapter Ethernet:
Connection-specific DNS Suffix . : lab.example
Description . . . . . . . . . . . : Ethernet Adapter
Physical Address. . . . . . . . . : 00-00-5E-00-53-01
DHCP Enabled. . . . . . . . . . . : Yes
IPv4 Address. . . . . . . . . . . : 192.168.10.101(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.10.1
DNS Servers . . . . . . . . . . . : 192.0.2.53
Попробуйте отнести каждую строку к уровню:
Physical Address— MAC-адрес сетевой карты: канальный уровень (в русской версии Windows строка называется «Физический адрес»);IPv4 Address,Subnet Mask,Default Gateway— сетевой уровень: ваш IP-адрес, маска и шлюз, через который данные уходят в другие сети;DNS ServersиConnection-specific DNS Suffix— настройки прикладного уровня: кому компьютер адресует вопросы «какой адрес у этого имени?».
Транспортного уровня в этом выводе нет: порты появляются, когда программа открывает соединение (статья 09).
Мини-глоссарий
- Кадр — единица данных канального уровня (например, Ethernet).
- IP-пакет (датаграмма) — единица данных сетевого уровня; лежит внутри кадра.
- Сегмент TCP — единица данных TCP; лежит внутри IP-пакета.
- MAC-адрес — аппаратный адрес сетевого интерфейса на канальном уровне; IP-адрес — адрес узла на сетевом уровне.
- Порт — число, которое указывает, какой программе на узле адресованы данные; есть и у TCP, и у UDP.
- Шлюз по умолчанию — маршрутизатор, которому узел отдаёт данные для других сетей.
Типичные ошибки и недоразумения
- «Интернет и локальная сеть — одно и то же». Интернет — объединение множества сетей. Локальная сеть работает и без выхода наружу: «нет интернета» не означает «нет сети».
- «Wi-Fi — это интернет». Wi-Fi лишь способ подключиться к локальной сети по радио. Выход в интернет даёт маршрутизатор и провайдер.
- Путаница Мбит/с и МБ/с. Скорость каналов указывают в битах, размеры файлов — в байтах. Разница — в восемь раз.
- «Кадр, IP-пакет и сегмент TCP — одно и то же». Это единицы данных разных уровней, вложенные друг в друга. В быту «пакетом» называют всё подряд, но в диагностике уровни важно различать.
- «OSI описывает реальные протоколы». Это эталонная модель; на практике работает TCP/IP. Границы уровней условны, и один и тот же протокол разные источники размещают по-разному.
- «Сервер — это обязательно мощная машина». Сервер — роль: ноутбук с общей папкой для остальных тоже сервер.
Проверьте себя
- Чем коммутатор отличается от маршрутизатора? Коммутатор пересылает кадры внутри одной сети (по MAC-адресам), маршрутизатор соединяет разные сети (по IP-адресам).
- Чем кадр отличается от IP-пакета? Кадр — единица канального уровня (например, Ethernet), IP-пакет — сетевого. Пакет находится внутри кадра.
- Канал имеет скорость 100 Мбит/с. Сколько мегабайт в секунду это максимум? Делим на 8: не более 12,5 МБ/с. Реальная скорость ниже из-за заголовков и нагрузки.
- Что такое инкапсуляция? Добавление собственного заголовка на каждом уровне при отправке данных; при получении заголовки снимают в обратном порядке.
- Что имеют в виду, когда говорят «проблема на втором уровне»? Проблема на канальном уровне модели OSI: кадры, MAC-адреса, коммутатор. Например, петля между коммутаторами или два устройства с одинаковым MAC-адресом.
Что дальше
- Сети с нуля 02. Ethernet, MAC-адреса, коммутатор и кабели — второй уровень изнутри: как устроена локальная сеть.
- Сети с нуля 03. IPv4-адреса и маски подсети — третий уровень: что такое IP-адрес и маска.
- Сети с нуля 05. Как пакет находит путь: шлюз, маршруты и ARP — как работают шаги 2 и 3 из примера про сайт.
- Сети с нуля 10. Диагностика сети в Windows — как искать неполадки по уровням снизу вверх.
Источники
- RFC 1122: Requirements for Internet Hosts — Communication Layers — четыре уровня стека, определение хоста, ARP в главе о канальном уровне.
- RFC 1180: A TCP/IP Tutorial — названия единиц данных, инкапсуляция.
- RFC 9293: Transmission Control Protocol — TCP как надёжный упорядоченный поток байтов.
- RFC 1983: Internet Users' Glossary — протокол, клиент, сервер, LAN, WAN, интернет и Internet, шлюз и мост.
- RFC 4949: Internet Security Glossary — определение межсетевого экрана.
- RFC 2681: A Round-trip Delay Metric for IPPM — время кругового обращения.
- RFC 7680: A One-Way Loss Metric for IPPM — определение потери пакета.
- RFC 5737: IPv4 Address Blocks Reserved for Documentation — адреса для примеров.
- RFC 9114: HTTP/3 и RFC 9000: QUIC — HTTP поверх QUIC, пакеты QUIC в датаграммах UDP.
- ITU-T X.200: Basic Reference Model (OSI) — семь уровней модели OSI; текст идентичен ISO/IEC 7498-1.
- Microsoft Learn: The TCP/IP model (Windows Server 2003, архив) — четыре уровня и протоколы на каждом.
- Microsoft Learn: TCP/IP Architecture (архив) — OSI и модель DoD, сопоставление уровней, инкапсуляция.
- Microsoft Learn: ipconfig — ключ
/all.