Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Основы сетей передачи данных
Сетевая модель OSI
Мы живём в мире, где каждое мгновение взаимодействуем с невероятно сложной системой коммуникаций. Общение с друзьями в мессенджерах, бесконечная лента коротких видео, просмотр новостей — всё это кажется нам настолько обыденным, что мы редко задумываемся о том, как это вообще работает.
Представьте себе механизм, который позволяет миллиардам устройств по всему миру — будь то компьютер, телевизор, телефон или умная колонка — общаться друг с другом. И что самое важное, эти устройства «понимают» друг друга вне зависимости от страны производства, фирмы-изготовителя или года выпуска. Ваш старенький ноутбук без проблем отправляет сообщение на новейший смартфон вашего друга на другом континенте.
Для реализации такого механизма нужны общие правила, которые определяют порядок взаимодействия всех компонентов системы. Такие правила называются протоколом. Протокол — это своего рода соглашение между устройствами о том, как именно они будут обмениваться информацией.
В 1984 году Международная организация по стандартизации (ISO) опубликовала эталонную модель взаимодействия открытых систем — OSI. Она делит передачу данных на семь уровней и помогает описывать роль сетевых технологий единым языком:
- Физический
- Канальный
- Сетевой
- Транспортный
- Сеансовый
- Представления
- Прикладной

У каждого уровня своя задача. При этом OSI — именно эталонная модель, а не готовый набор обязательных протоколов и не точная схема работы любого современного приложения.
Модель OSI удобно использовать как карту: она показывает путь данных от приложения до физического сигнала и обратно. В реальном интернете чаще говорят о стеке TCP/IP, где некоторые уровни OSI объединены.
Уровни модели OSI
Прежде чем разбирать каждый уровень по отдельности, давайте проследим путь данных целиком. Представьте, что вы хотите открыть страницу в браузере. Вы вводите адрес future-step.ru и нажимаете Enter. Что происходит дальше?
На самом верхнем, прикладном уровне ваш браузер формирует запрос — своего рода «письмо» с инструкциями: какую страницу загрузить, какой браузер отправляет запрос, какой язык предпочитает пользователь. К этому запросу добавляется заголовок со служебной информацией.
Затем данные проходят функции верхних уровней: при необходимости кодируются, сжимаются или шифруются, а приложение управляет сеансом обмена. В стеке TCP/IP эти функции обычно относят к прикладному уровню.
На транспортном уровне данные подготавливаются к передаче между приложениями. TCP передаёт поток данных сегментами, а UDP — отдельными датаграммами. Например, HTTP/3 работает через QUIC поверх UDP.
Сетевой уровень добавляет к каждому сегменту адрес отправителя и получателя — IP-адреса. Теперь данные называются пакетами и знают, куда им нужно попасть.
Канальный уровень упаковывает IP-пакет в кадр и добавляет адреса, нужные на текущем участке локальной сети. Поэтому MAC-адрес назначения обычно принадлежит следующему узлу маршрута, а не далёкому серверу.
Наконец, на физическом уровне фреймы превращаются в последовательности нулей и единиц, которые передаются по проводам в виде электрических сигналов, по оптоволокну в виде световых импульсов или по воздуху в виде радиоволн.

На стороне получателя всё происходит в обратном порядке: сигналы собираются в биты, биты — во фреймы, фреймы распаковываются в пакеты, и так далее, пока на прикладном уровне не появится исходный запрос. Процесс упаковки данных называется инкапсуляцией, а обратный процесс распаковки — декапсуляцией.
Теперь давайте подробно разберём каждый уровень, двигаясь снизу вверх.
Уровень 1: Физический
На физическом уровне происходит самая базовая вещь — передача нулей и единиц между устройствами. Здесь нет никакой логики, никаких адресов, никакого понимания того, что именно передаётся. Только сырые биты.
Эти биты превращаются в физические сигналы. Если вы подключены к интернету через кабель, то нули и единицы представлены изменением электрического напряжения в проводах. Если используете оптоволокно — это импульсы света. Если Wi-Fi — изменения в радиоволнах.
Самый распространённый кабель для домашнего интернета — витая пара.

Это кабель, внутри которого находятся восемь медных проводников, скрученных попарно. Такая конструкция снижает помехи и улучшает качество передачи. На концах кабеля обжаты разъёмы RJ45, которые вставляются в сетевые устройства.
На физическом уровне работают простейшие устройства — концентраторы (хабы) и повторители. Они не анализируют данные, а просто передают сигнал дальше, при необходимости усиливая его.
Ethernet и Wi‑Fi описывают сразу несколько аспектов передачи и относятся не только к физическому, но и к канальному уровню. На физическом уровне нас интересует, как именно биты превращаются в сигналы.
Уровень 2: Канальный
Физический уровень позволяет связать два устройства напрямую. Но что делать, если в сети несколько устройств? Как понять, кому именно предназначены данные? Как проверить, не повредились ли они при передаче? Решением этих проблем занимается канальный уровень.
На канальном уровне появляется MAC-адрес — идентификатор сетевого интерфейса внутри локального сегмента. Обычно он занимает 48 бит, но его можно изменить программно, а современные устройства иногда случайно меняют его ради приватности.
48-битный MAC-адрес обычно записывают 12 шестнадцатеричными символами через дефис или двоеточие: 90-2B-34-5E-57-BA. У глобально назначенного адреса первые 24 бита обычно образуют OUI производителя, а оставшаяся часть различает интерфейсы.

Узнать MAC-адрес своего компьютера можно через командную строку Windows, введя команду ipconfig /all и найдя строку «Физический адрес».

На канальном уровне данные упаковываются во фреймы (или кадры). Можно представить это так: мы берём наши данные, кладём их в конверт и подписываем его — указываем MAC-адрес отправителя и MAC-адрес получателя. Также к фрейму добавляется контрольная сумма — специальное число, которое позволяет проверить, не повредились ли данные в пути.

Когда фрейм приходит на устройство-получатель, оно вычисляет контрольную сумму заново и сравнивает с той, что записана во фрейме. Если числа совпадают — всё в порядке, данные приняты корректно. Если нет — фрейм отбрасывается как повреждённый.
На канальном уровне работает коммутатор, или свитч. Он запоминает, за каким портом видел каждый MAC-адрес. Известный одноадресный кадр коммутатор отправляет в нужный порт, а широковещательный или пока неизвестный — во все подходящие порты.

Такая таблица уменьшает лишний трафик внутри локальной сети. Но сама по себе работа коммутатора не делает сеть полностью безопасной: за защиту отвечают отдельные механизмы и настройки.
Уровень 3: Сетевой
Канальный уровень отлично справляется со связью внутри одной локальной сети. Но интернет — это миллионы отдельных сетей, соединённых между собой. Как отправить данные из вашей домашней сети на сервер, который находится на другом континенте? Этим занимается сетевой уровень.
Если MAC-адрес — это «серийный номер» устройства, то IP-адрес — это его «почтовый адрес» в сети. И это очень точная аналогия.
Представьте, что вы отправляете бумажное письмо другу. На конверте вы пишете адрес: город Москва, улица Пушкина, дом 5к. По этому адресу почтальон находит нужный дом. Точно так же IP-адрес позволяет найти нужное устройство среди миллиардов других.
IP-адрес (в версии IPv4) записывается как четыре числа от 0 до 255, разделённые точками: 192.168.1.3. Каждое число представляет один байт, то есть весь адрес занимает 32 бита.
Важное отличие от MAC-адреса: IP-адрес не «вшит» в устройство, а назначается программно. Ваш домашний роутер выдаёт IP-адреса всем устройствам в сети. При подключении к другой сети (например, к Wi-Fi в кафе) ваш телефон получит другой IP-адрес.
При изучении IPv4 часто различают частные и публичные адреса. Частные адреса используют внутри локальных сетей: напрямую через интернет они не маршрутизируются.
Роутер раздаёт их всем устройствам: телефону, ноутбуку, телевизору. Причём у вашего соседа тоже есть устройство с адресом 192.168.1.3 — и это нормально, потому что эти адреса никогда не пересекаются в интернете, они существуют как бы в «параллельных мирах».
Для частных сетей зарезервированы диапазоны 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Но адрес вне этих диапазонов не обязательно публичный: существуют и другие специальные диапазоны.
Публичный адрес маршрутизируется в интернете и обычно выдаётся провайдером. В домашней сети один такой адрес часто используется роутером для нескольких устройств с помощью NAT, но устройство может получать публичный адрес и напрямую.
IPv4-адрес делится на сетевую и узловую части. Границу задаёт маска: она может проходить не только между октетами. Поэтому определить часть сети по одним точкам в адресе нельзя.

Вернёмся к аналогии с почтой. Адрес «город Москва, улица Пушкина» — это как адрес сети, а «дом 5к» — как адрес хоста. Все дома на улице Пушкина имеют один «сетевой» адрес (улицу), но разные номера домов.
Как понять, какая часть IP-адреса относится к сети, а какая — к хосту? Для этого используется маска подсети.
Маска записывается так же, как IP-адрес: 255.255.255.0. В двоичном виде маска состоит из единиц (они отмечают часть сети) и нулей (они отмечают часть хоста).
Рассмотрим пример. Пусть IP-адрес — 192.168.1.3, а маска — 255.255.255.0. Маска говорит нам: первые три числа (192.168.1) — это адрес сети, а последнее число (3) — адрес хоста. Значит, адрес сети — 192.168.1.0.
Чтобы это вычислить, нам нужно применить побитовую конъюнкцию маски сети (255.255.255.0) к IP-адресу (192.168.1.3):
11000000 10101000 00000001 00000011 (192 168 1 3)
И
11111111 11111111 11111111 00000000 (255 255 255 0)
=
11000000 10101000 00000001 00000000 (192 168 1 0)
Получим значение адреса сети 11000000 10101000 00000001 00000000 или 192.168.1.0 в десятичной системе.
Для получения адреса хоста нужно сначала применить инверсию к маске подсети, а затем побитовую конъюнкцию.
11000000 10101000 00000001 00000011 (192 168 1 3)
И
00000000 00000000 00000000 11111111 (0 0 0 255)
=
00000000 00000000 00000000 00000011 (0 0 0 3)
В таком случае получим 0.0.0.3, что и будет адресом хоста. Всего в такой сети может быть 256 адресов (от 0 до 255), но использовать для устройств можно только 254. Почему? Два адреса зарезервированы!
Адрес 192.168.1.0 — это адрес самой сети, его нельзя присваивать устройствам. А адрес 192.168.1.255 — это широковещательный адрес. Он используется, когда нужно отправить сообщение сразу всем устройствам в сети.
Представьте, что учитель в классе говорит: «Внимание всем!» Это и есть широковещательное сообщение. В сети такие сообщения отправляются на широковещательный адрес, и все устройства их получают.
Зачем нужны широковещательные сообщения? Например, при первом подключении клиент DHCP ещё не знает ни своего адреса, ни адреса сервера. Поэтому он начинает обмен с широковещательной рассылки, обычно на 255.255.255.255.
Сетевой уровень формирует IP-пакеты и добавляет адреса отправителя и получателя. Затем на каждом участке пути IP-пакет помещается в новый кадр канального уровня.

Основной протокол сетевого уровня — IP (Internet Protocol). Именно от него и произошло название «IP-адрес».
На этом уровне работают маршрутизаторы (роутеры). Их задача — найти лучший путь для доставки пакета.

Интернет — это сложная паутина из множества сетей, и от вашего компьютера до сервера может быть десятки промежуточных точек. Маршрутизатор анализирует адрес назначения и решает, куда отправить пакет дальше.
Уровень 4: Транспортный
Транспортный уровень передаёт данные между приложениями. TCP предоставляет надёжный упорядоченный поток байтов, а UDP отправляет отдельные датаграммы без гарантии доставки и порядка.
TCP: надёжный, но не быстрый
TCP (Transmission Control Protocol) устанавливает соединение и подтверждает получение данных. Если сегмент потерялся, TCP отправляет его повторно; если восстановить обмен не удаётся, приложение получает сообщение об ошибке.
Во время передачи TCP следит, чтобы каждый сегмент был доставлен. Если какой-то потерялся — протокол запрашивает его повторно. Также TCP следит за порядком: даже если сегменты пришли вразнобой, он соберёт их правильно.
TCP используется везде, где важна точность: загрузка веб-страниц, скачивание файлов, электронная почта.
UDP: быстрый, но не надёжный
UDP (User Datagram Protocol) работает иначе. Он просто отправляет данные и не проверяет, дошли ли они. Никакого установления соединения, никаких подтверждений, никаких повторных отправок.
Звучит не очень надёжно, не так ли?

Но у UDP есть огромное преимущество — скорость. Он идеально подходит для ситуаций, где важнее получить данные быстро, чем получить их все.
Вспомните видеозвонки в вашем любимом мессенджере. Что вам важнее: видеть собеседника в реальном времени с редкими помехами или получить идеальную картинку с задержкой в несколько секунд? Конечно, первое. Поэтому видеозвонки, онлайн-игры и стриминг используют UDP.
Уровень 5: Сеансовый
Сеансовый уровень управляет «разговором» между двумя устройствами. Он устанавливает соединение, поддерживает его на протяжении всего обмена данными и корректно завершает, когда работа закончена.
Одна из важных функций — создание контрольных точек. Представьте, что вы скачиваете большой файл, и вдруг интернет пропадает. Благодаря контрольным точкам после восстановления соединения скачивание продолжится с того места, где прервалось, а не начнётся заново.
Сеансовый уровень также определяет режим связи: полудуплекс (устройства «говорят» по очереди) или дуплекс (одновременно в обе стороны).
В современных сетях функции сеансового уровня обычно реализуются приложениями и протоколами верхнего уровня. Например, приложение само хранит состояние входа в аккаунт или место, с которого нужно продолжить загрузку.
Уровень 6: Представления
Уровень представления занимается форматом данных. Его задача — сделать так, чтобы данные, отправленные одним устройством, были понятны другому, даже если они используют разные системы.
Здесь происходят три основных процесса:
- Кодирование — представление данных в согласованном формате. Например, Unicode задаёт набор символов, а UTF‑8 определяет, как эти символы записываются байтами.
- Сжатие — уменьшение размера данных для экономии трафика и ускорения передачи. Когда вы смотрите видео онлайн, оно передаётся в сжатом формате.
- Шифрование защищает данные от чтения посторонними. В HTTPS для этого используется TLS. Его функции условно связывают с верхними уровнями OSI, хотя в реальном стеке TLS располагается между приложением и транспортом.
Уровень 7: Прикладной
Прикладной уровень — это то, с чем вы взаимодействуете напрямую. Браузер, почтовый клиент, мессенджер — все эти программы работают на прикладном уровне.
Когда вы открываете сайт, браузер использует протокол HTTP (или его защищённую версию HTTPS). Когда отправляете письмо — SMTP. Когда скачиваете файл с сервера — FTP. Когда вводите адрес сайта вместо непонятных цифр IP-адреса — работает DNS, который переводит человеческие имена в машинные адреса.
Именно на прикладном уровне формируется исходное сообщение — тот самый HTTP-запрос, который потом путешествует через все уровни вниз, обрастая заголовками, превращается в электрические сигналы, летит по проводам на сервер, и там проходит обратный путь наверх, пока не превратится в веб-страницу в вашем браузере.
Итоги
Модель OSI может показаться сложной, но её красота — в чётком разделении обязанностей. Каждый уровень занимается своим делом и не вмешивается в работу других.
Физический уровень передаёт сигналы. Канальный работает с кадрами и адресами локального участка, сетевой — с IP-пакетами и маршрутом, транспортный — с обменом между приложениями. Верхние уровни отвечают за сеанс, представление и прикладные протоколы.
Главное — не заучивать семь названий отдельно, а видеть путь данных: сообщение → транспортные данные → IP-пакет → кадр → сигнал. На стороне получателя всё происходит в обратном порядке.
В следующей статье разберём IPv4-адреса, маски и модуль ipaddress — именно эти знания понадобятся для решения 10 задания ЕГЭ по информатике.
