Глава 3 · как устройства договариваются, чтобы понять друг друга
Ананко · Качур — VK · TG
о чём эта глава
ТРИ ВОПРОСА ЭТОЙ ГЛАВЫ
Какие правила обмена сообщениями нужны устройствам
Какими бывают способы рассылки — одному, группе, всем
Как устроены сетевые модели и протоколы — OSI и TCP/IP
1
раздел 1
ЗАЧЕМ НУЖНЫ ПРАВИЛА
Сеть существует ради обмена данными — а обмен держится на договорённостях.
1.1 · зачем правила
МАЛО ОБЩЕГО ЯЗЫКА — НУЖНЫ ПРАВИЛА РАЗГОВОРА
Сети придуманы ради одной вещи — обмена данными. Чтобы разговор состоялся, двум собеседникам мало общего языка. Нужны негласные правила:
кто начинает разговор
как понять, что тебя услышали
что делать, если фразу заглушил шум
АналогияОдин говорит по-русски, другой отвечает азбукой Морзе — обмена не выйдет, даже если оба очень хотят пообщаться.
1.1 · определение
Протокол
это и «общий язык», и «правила приличия» для устройств одновременно: он задаёт и что передавать, и как себя при этом вести.
Протоколов великое множество, и они очень разные по охвату: одни решают крайне узкую задачу, другие применяются глобально.
1.1 · стандарты
ПОЧЕМУ ПОБЕДИЛИ СТАНДАРТЫ
Сеть по определению соединяет устройства разных производителей. Если бы каждый производитель говорил на своём диалекте, единого интернета не было бы. Стандарт — решение проблемы «вавилонского смешения»: договорились один раз и глобально.
1.1 · условия доставки · 1 из 2
ПЯТЬ УСЛОВИЙ, ЧТОБЫ СООБЩЕНИЕ ДОШЛО
Симметрия: 1–2 — про отправителя, 3 — про путь, 4–5 — про получателя.
Отправитель
Знает, кому отправляет — может однозначно опознать получателя
Имеет возможность отправить: превратит сообщение в сигналы, при нужде разобьёт на части
Путь
Сеть отправителя принимает сигналы и передаёт дальше — к получателю или в соседнюю сеть по направлению к нему
1.1 · условия доставки · 2 из 2
…И НА СТОРОНЕ ПОЛУЧАТЕЛЯ
Сеть получателя
Превращает сообщение в понятные устройству сигналы — если работает на тех же протоколах
Устройство получателя
Принимает сигналы, расшифровывает, при нужде собирает из частей и показывает в приложении
отправитель → сеть → получатель — эту тройку встретим снова и снова
2
раздел 2
ЧЕТЫРЕ ЗАДАЧИ ПРОТОКОЛОВ
Кодирование, форматирование, размер и параметры доставки.
2.0 · задачи протоколов
ЧТО ДЕЛАЮТ ПРОТОКОЛЫ
2.1 · кодирование
ТЕКСТ → КОД → ИМПУЛЬСЫ
Устройствам удобнее всего двоичный код: в основе электроники — «есть напряжение / нет», «есть свет / нет». Два состояния идеально ложатся на 0 и 1.
Но одного двоичного мало: под каждую среду нули и единицы перекодируют заново. Кодирование — это цепочка:
текст → двоичный код → импульсы
АналогияПереводчик-многостаночник: сначала переводит смысл в буквы, потом буквы — в азбуку Морзе, а если связь по свету — в световые вспышки. Каждый «перевод» — под свою среду.
2.1 · модуляция
Модуляция
изменение одного или нескольких параметров высокочастотного несущего сигнала в соответствии с низкочастотным информационным сигналом.
Несущая сама по себе ничего не сообщает. Модуляция «накладывает» на неё биты так, чтобы сигнал уже нёс информацию и мог пройти через среду.
АналогияНесущая — как ровно едущий по трассе грузовик: сам по себе он ничего не сообщает. Модуляция — это когда мы грузим в него ящики-биты по правилу. Теперь по одному взгляду на груз можно прочитать сообщение.
2.1 · три ручки несущей
У ВОЛНЫ ТРИ ПАРАМЕТРА — ТРИ ВИДА МОДУЛЯЦИИ
У любой синусоидальной несущей можно «крутить» ровно три «ручки». Отсюда и три базовых вида модуляции. Каждый разберём по принципу что меняем → как читается → чем платим.
Амплитуда
высота волны → амплитудная модуляция (АМ)
Частота
как часто колеблется → частотная (ЧМ)
Фаза
сдвиг во времени → фазовая (ФМ)
2.1 · АМ · амплитуда · интерактив
АМ: МЕНЯЕМ ВЫСОТУ ВОЛНЫ
Единице — «громкая» волна, нулю — «тихая». Частота и фаза неизменны. Самый простой, но и самый уязвимый к шуму способ.
АналогияКак фонарик, которым сигналят яркостью: ярко/тускло. Читать просто, но чужой прожектор во дворе (помеха) может «перекричать» ваш сигнал.
Амплитуда и частота постоянны — мы «переворачиваем» волну. «Фаза как была» — 0, «фаза перевёрнута» — 1. На глаз незаметно, зато техника ловит очень точно.
АналогияХор поёт одну ноту одинаково громко. Договорились: «в такт» с дирижёром — 0, «в противофазе» — 1. Информация — в моменте вступления. Тонко и помехоустойчиво.
ЧМ и ФМ сложнее, зато держат помеху и вмещают больше бит в один «такт»
Системы комбинируют: амплитуда + фаза = QAM (Wi-Fi, сотовая, кабель)
Идея уплотненияЕсли один «такт» различает не 2 состояния (0/1), а 16, то за такт передаём 4 бита вместо одного. Отсюда — рост скорости без роста частоты.
2.1 · рабочий пример
ПЕРЕДАЁМ ЧИСЛО 149
Кодируем: 149 → 10010101(128+16+4+1)
Модулируем: 1 — сигнал есть, 0 — нет (on-off keying)
Передаём вспышки-импульсы сквозь среду
Читаем обратно и получаем 149
2.2 · форматирование
СООБЩЕНИЕ О ТОМ, КАК УСТРОЕНО СООБЩЕНИЕ
Кодирование — не «улица с односторонним движением». Если получатель не знает правил, он получит бессмысленный набор сигналов. Значит, рядом с данными едут служебные пометки: какая кодировка, какой протокол, где начало и конец. Технически это заголовки.
АналогияМы делаем то же, когда пишем письмо: указываем язык, ставим знаки препинания, отделяем адрес от текста. На заголовках построена вся идея уровней.
2.3 · размер сообщения
ЗАЧЕМ ВВОДИТЬ ПРЕДЕЛ РАЗМЕРА
Люди дробят длинную мысль на короткие фразы. Так же и устройства ограничивают объём за один раз — из этого вырастет сегментация.
Экономия сети
один гигантский «кусок» надолго занял бы канал и мешал остальным
Оптимизация узлов
маленькие порции проще обрабатывать и буферизировать
Совместимость
старое оборудование рассчитано на определённые размеры
2.4 · временные параметры
КОГДА ГОВОРИТЬ И СКОЛЬКО ЖДАТЬ
Когда сеть свободна — чтобы не перебивать чужой трафик
Скорость приёмника — чтобы не завалить его лавиной пакетов
Время ответа — чтобы понять, что ответа нет, и повторить
АналогияТелефонный разговор: мы не говорим одновременно (ждём, пока линия свободна), подстраиваем темп, а если в ответ молчание — переспрашиваем: «Алло, ты меня слышишь?»
3
раздел 3
СПОСОБЫ РАССЫЛКИ
Одному, группе или всем сразу — три адресных схемы доставки.
3.1 · способы рассылки · unicast
ОДНОАДРЕСНАЯ РАССЫЛКА · UNICAST
Отправитель 192.168.1.10 шлёт сообщение на адрес одного получателя (192.168.1.20). Другие устройства его не получают — точность обеспечивает адресация.
АналогияКак личное письмо с точным адресом на конверте — доходит именно тому, кому написано.
3.1 · способы рассылки · multicast
МНОГОАДРЕСНАЯ РАССЫЛКА · MULTICAST
Отправитель шлёт на групповой адрес 224.0.0.5, который «прослушивают» подписчики. Технически сообщение проходит мимо многих, но обрабатывают его только подписчики группы.
АналогияКак объявление в чате: его видят участники канала, но не весь мир.
3.1 · способы рассылки · broadcast
ШИРОКОВЕЩАТЕЛЬНАЯ РАССЫЛКА · BROADCAST
Сообщение уходит на широковещательный адрес 192.168.1.255 и обрабатывается всеми устройствами сети без исключения.
АналогияКак крикнуть в мегафон посреди зала: услышат все, хотят они того или нет.
Осторожно: «крики на весь зал» снижают работоспособность сети. Но запретить нельзя — на принципе «спросить у всех» держатся ARP и DHCP.
3.1 · типы рассылки
КТО ПОЛУЧАЕТ, КТО ОБРАБАТЫВАЕТ
Тип рассылки
Кто получает
Кто обрабатывает
Unicast
Один узел
Один получатель
Multicast
Все узлы (слышат)
Группа подписчиков
Broadcast
Все узлы
Все узлы
КомпромиссBroadcast — мощный, но «шумный» инструмент. Его нельзя запретить, но и злоупотреблять им нельзя. Удобство против нагрузки — этот компромисс встретится ещё не раз.
3.2 · сегментация · мультиплексирование
ПОЧЕМУ ВКОНТАКТЕ И РУТЬЮБ НЕ ПУТАЮТСЯ
Сообщение делится на сегменты, каждый помечен портами: из какого приложения пришёл и какому предназначен. Метки едут вместе с данными до получателя.
дом = IP-адрес, квартира = порт · одна дорога, у каждой машины номер квартиры
4
раздел 4
СЕТЕВЫЕ МОДЕЛИ
Почему одного протокола мало — и как из множества выросли стеки OSI и TCP/IP.
3.2.1 · стеки протоколов
ПОЧЕМУ ОДНОГО ПРОТОКОЛА МАЛО
«Протокол на всё» потребовал бы трёх жёстких условий:
одно и то же приложение у обоих
устройства от одного производителя
один канал связи, без промежуточных устройств
Проблема → решениеТак уже пробовали — это будущий TCP. От идеи отказались: удобнее много узких протоколов, упорядоченных по уровням. Наборы протоколов называют стеками — OSI и TCP/IP.
3.2.2 · модель OSI
МОДЕЛЬ OSI: СЕМЬ УРОВНЕЙ
OSI (Open Systems Interconnection) — концептуальная модель, разделённая на семь уровней, пронумерованных снизу вверх.
Чем выше уровень — тем ближе к человеку. Чем ниже — тем ближе к среде (кабелю, эфиру).
сквозная аналогия: пересылаем книгу по почте
3.2.2 · путь книги · L7 · Уровень приложений
L7 · Уровень приложений
ЗДЕСЬ РОЖДАЕТСЯ СООБЩЕНИЕ
Пользователь взаимодействует с устройством — именно тут рождается сообщение. Набрали в браузере слово «сеть» — сформировали запрос к поисковому серверу (Google, Yandex).
Книга по почтеЭто сам текст книги — то, что мы хотим передать.
3.2.2 · путь книги · L6 · Уровень представления
L6 · Уровень представления
ОТКРЫТО ИЛИ ЗАШИФРОВАТЬ
Приложение решает: передавать данные открыто или зашифровать. HTTP отдаёт страницы без шифрования, HTTPS — с шифрованием. Форматирование и кодирование живут здесь.
Книга по почтеЭто шрифт, размер и формат страницы — то, как текст оформлен и «упакован» для чтения.
3.2.2 · путь книги · L5 · Сеансовый уровень
L5 · Сеансовый уровень
НУЖЕН ЛИ СЕАНС СВЯЗИ
Сеанс — передача большого сообщения по частям с подтверждением каждой. Даёт две гарантии: доставку полностью и в нужном порядке. Для голоса и видео сеанс не устанавливают — там важнее минимум задержки.
компромисс: надёжность против скорости
Книга по почтеСеанс нужен, потому что страницы книги должны собраться в правильном порядке.
3.2.2 · путь книги · L4 · Транспортный
L4 · Транспортный
Сообщение делится на равные отрезки (обычно по 1500 байт — связано с размером кадра Ethernet, MTU). К каждому добавляется заголовок с портами источника и назначения.
Сегмент
отрезок данных с заголовком транспортного уровня L4.
Книга по почтеКаждую страницу копируем на лист А4, вкладываем в конверт и подписываем: название книги, номер страницы и общее число страниц.
3.2.2 · путь книги · L3 · Сетевой
L3 · Сетевой
Сегмент готов, но куда его слать? Нужен IP-адрес получателя (по названию протокола IP, Internet Protocol). Каждый сегмент получает заголовок L3 с IP-адресами отправителя и получателя.
Пакет
единица данных L3: сегмент плюс заголовок сетевого уровня.
Книга по почтеКонверт-сегмент вкладывают в конверт побольше, на котором пишут город, улицу и номер дома получателя — и такие же данные отправителя.
3.2.2 · путь книги · L2 · Канальный
L2 · Канальный
Под каждую среду — своя сетевая карта со своим аппаратным MAC-адресом. MAC источника и назначения пишут в заголовок L2. Он зависит от среды: Ethernet по кабелю или Wi-Fi «по воздуху».
Кадр
единица данных L2: пакет плюс заголовок канального уровня. MAC = Media Access Control.
Книга по почтеПакет кладут в самый большой конверт и относят на почту, где ставят индексы отправляющего и принимающего отделений.
3.2.2 · путь книги · L1 · Физический
L1 · Физический
Всё содержимое кадра переводится в биты и уходит в среду: электрические колебания, радиоволны или свет. На L1 кадры превращаются в биты для отправки.
PDU
данные, сегменты, пакеты, кадры — это одно сообщение на разных уровнях, «одетое» в разное число заголовков. Общее имя — Protocol Data Unit.
Книга по почтеКак именно доставлять — самолётом, грузовиком или поездом (то есть в какой физической среде) — решает уже почтовая служба.
3.2.2 · инкапсуляция · декапсуляция
Инкапсуляция
формирование блоков нижних уровней из блоков верхних путём добавления заголовков.
Декапсуляция
восстановление блоков верхних уровней путём удаления заголовков нижних. У получателя всё зеркально.
образ — матрёшка: данные внутри HTTP, внутри TCP, внутри IP, внутри Ethernet
3.2.3 · стек TCP/IP
СТЕК TCP/IP: ЧЕТЫРЕ УРОВНЯ
Более практичный, чем OSI: заточен под реальные сети. Название — от двух главных протоколов, TCP и IP. Из «одного на всё» выросло целое семейство.
Надёжность против скоростиTCP гарантирует доставку и порядок. UDP жертвует гарантиями ради минимальной задержки. Выбор диктует приложение.
3.2.3 · протоколы · уровень приложений
ПРОТОКОЛЫ УРОВНЯ ПРИЛОЖЕНИЙ
Протокол
Что делает
DNS
сообщает IP-адрес сайта по его имени
DHCP
автоматически выдаёт устройству IP-адрес и параметры
HTTP / HTTPS
передача гипертекста — без шифрования и с шифрованием
SMTP
отправка исходящего письма и подтверждение доставки
POP / IMAP
получение почты: POP очищает ящик, IMAP хранит копии на сервере
3.2.3 · протоколы · нижние уровни
ТРАНСПОРТ · ИНТЕРНЕТ · ДОСТУП
Транспортный
TCP — надёжно: текст, фото, видео, музыка
UDP — быстро без контроля: стриминг, голос
Интернет
IPv4 / IPv6 — негарантированная доставка
ICMP — проверка связности (ping, traceroute)
OSPF — динамическая маршрутизация
Сетевого доступа
ARP — MAC по IP («спросить у всех»)
Ethernet — по медному кабелю
PPP — по телефонному кабелю
3.2.4 · OSI против TCP/IP
ОДНА РАБОТА — РАЗНАЯ ДЕТАЛИЗАЦИЯ
L1+L2 OSI → сетевой доступ TCP/IP
L3 OSI → интернет-уровень
L4 → транспортный, роль та же
L5+L6+L7 → единый уровень приложений
OSI — подробная схема на 7 ролей, удобно учиться. TCP/IP — та же работа, ужатая до 4 ролей.
итог главы 3
ОДИН ПУТЬ ДАННЫХ — ДВЕ МОДЕЛИ
Обе модели описывают одну и ту же дорогу сообщения — просто с разной детализацией.
Дальше — глава 4: адресация в многоуровневой модели