Что такое сеть и зачем нужны модели

Понимаем, что такое компьютерная сеть, зачем сети нужны модели и почему веб-разработчику это важно.

Компьютерная сеть — это группа устройств, соединённых так, что они могут обмениваться данными по согласованным правилам (протоколам).

Зачем вообще говорить о сетях

Когда вы пишете fetch('https://api.example.com') или открываете сайт в браузере, под капотом происходит десяток шагов: имя превращается в IP-адрес, устанавливается соединение, данные дробятся на пакеты, шифруются, проходят через десятки маршрутизаторов и собираются обратно на другом конце. Веб-разработчик не обязан писать эти шаги вручную, но обязан понимать, что под HTTP лежит целый стек технологий. Иначе непонятно, почему запрос «висит», откуда берётся ошибка CORS, что такое TLS-рукопожатие и почему DNS бывает «не прогрелся».

Сеть — это не «провод между двумя компьютерами». Это система соглашений. Чтобы два устройства разных производителей, на разных операционных системах, в разных странах поняли друг друга, им нужен общий язык на каждом этапе: как кодировать сигнал в проводе, как адресовать машину в другой стране, как убедиться, что ничего не потерялось, как договориться о формате данных.

Зачем нужны модели

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

Это та же идея, что и абстракция в программировании. Функция JSON.stringify не знает, как байты лягут в TCP-сегмент. TCP не знает, по медному кабелю или по оптоволокну поедут данные. Каждый уровень общается только с соседними и предоставляет соседу сверху удобный «сервис».

  • Разделение ответственности: можно поменять Wi-Fi на кабель, не трогая HTTP.
  • Совместимость: производители делают своё оборудование под конкретный уровень.
  • Обучение и диагностика: проблему проще локализовать («не работает на уровне DNS», «рвётся TCP-соединение»).

Две главные модели

Есть две основные модели, которые мы разберём в этом разделе:

МодельУровнейРоль
OSI7теоретическая, эталонная — для понимания и обучения
TCP/IP4практическая — по ней реально работает интернет

OSI — это «карта местности», по которой удобно объяснять, где что находится. TCP/IP — это то, как всё устроено на самом деле. На собеседовании вас спросят про обе, поэтому мы аккуратно их сопоставим.

Простой пример: сообщение в мессенджере

Вы пишете «Привет» и жмёте «отправить». Дальше:

  1. Приложение формирует данные (текст и метаданные).
  2. Транспорт делит их на сегменты и нумерует, чтобы собрать в правильном порядке.
  3. Сеть добавляет адреса отправителя и получателя (IP) и решает, куда направить.
  4. Канал и физика превращают байты в сигналы и отправляют в провод или эфир.

На том конце всё разворачивается в обратном порядке. Эту «обёртку» данных по уровням мы подробно разберём в уроке про инкапсуляцию.

Итог

  • Сеть — это устройства плюс протоколы (правила обмена).
  • Сложность сети разбивают на уровни, каждый со своей задачей.
  • OSI (7 уровней) — теория, TCP/IP (4 уровня) — практика.
  • Веб-разработчику модели нужны, чтобы понимать, что происходит под HTTP, и грамотно диагностировать проблемы.
Проверьте себя
1. Что такое протокол в контексте сетей?
AФизический кабель между устройствами
BСогласованный набор правил обмена данными
CПрограмма-браузер
DАдрес устройства в сети
2. Зачем сетевые технологии разбивают на уровни?
AЧтобы сеть работала медленнее, но надёжнее
BЧтобы разделить ответственность: каждый уровень решает свою задачу и можно менять один, не трогая другие
CЧтобы было больше проводов
DЭто требование закона
3. Чем отличаются модели OSI и TCP/IP?
AOSI быстрее TCP/IP
BOSI — практическая, TCP/IP — теоретическая
COSI — эталонная теоретическая (7 уровней), TCP/IP — практическая, по ней работает интернет (4 уровня)
DЭто одно и то же
Поддержать проект