$ sudo teach IT
Модуль 1

Что такое протокол и как устроена сеть

Прежде чем разбирать TCP и HTTP по отдельности, посмотрим на картину целиком: кто за что отвечает и почему протоколов так много.

Вы узнаете
  • что такое сетевой протокол и кто их придумывает;
  • зачем сеть разделена на уровни и какие они бывают;
  • как данные «упаковываются» по дороге и какие адреса при этом используются.

1.1 Протокол — это договорённость

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

Интернет — это не одна сеть, а миллионы сетей разных компаний и стран. Работать вместе им позволяет именно общий набор протоколов, который называют стеком TCP/IP — по двум главным его участникам.

Аналогия: почта и её правила

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

Протоколы интернета открыты: их описания публикуются в документах RFC (Request for Comments), которые готовит сообщество инженеров IETF. Любой производитель может прочитать RFC и сделать совместимое устройство или программу — поэтому телефон одной фирмы спокойно открывает сайт на сервере другой.

1.2 Уровни: кто за что отвечает

Передать страницу сайта — задача сложная, поэтому её разбили на несколько простых. Каждую решает свой уровень, и каждый уровень пользуется услугами того, что под ним. В интернете принята четырёхуровневая модель TCP/IP:

4 · Прикладной смысл данных: страницы, почта, имена HTTP, DNS, SMTP, SSH
3 · Транспортный доставка между программами TCP, UDP, QUIC
2 · Сетевой доставка между сетями, маршрут IP, ICMP
1 · Канальный доставка в пределах одной сети Ethernet, Wi-Fi, ARP

В учебниках часто встречается ещё и модель OSI из семи уровней. Это та же идея, только расписанная подробнее. На практике достаточно знать соответствие:

Уровень OSI В модели TCP/IP Что передаётся
7 Прикладной Прикладной Сообщения приложений: запрос HTTP, письмо,
6 Представления запрос DNS

5 Сеансовый

4 Транспортный Транспортный Сегменты (TCP) или датаграммы (UDP)
3 Сетевой Сетевой Пакеты IP
2 Канальный Канальный Кадры и сами сигналы: электрические, световые,
1 Физический радио
Зачем это запоминать

Когда говорят «проблема на третьем уровне» или «балансировщик седьмого уровня», имеют в виду именно номера OSI: L2 — Ethernet и Wi-Fi, L3 — IP, L4 — TCP и UDP, L7 — HTTP и другие прикладные протоколы.

1.3 Инкапсуляция: принцип матрёшки

Когда браузер отправляет запрос, данные проходят уровни сверху вниз. Каждый уровень добавляет впереди свой заголовок — служебную информацию, нужную именно ему, — и передаёт результат ниже. Это называется инкапсуляцией.

Кадр Ethernet / Wi-Fi — MAC-адреса отправителя и получателя

  • Пакет IP — IP-адреса отправителя и получателя
  • Сегмент TCP — порты, номера байтов, подтверждения
  • Данные приложения — например, запрос HTTP: «GET /index.html»

На стороне получателя всё происходит в обратном порядке: каждый уровень снимает свой заголовок и передаёт содержимое выше. Промежуточные устройства заглядывают только на «свою» глубину: коммутатор смотрит на заголовок кадра, маршрутизатор — на заголовок IP, а что лежит внутри, им знать не нужно.

1.4 Четыре вида адресов

У каждого уровня свой способ сказать «кому». Путаница между ними — самая частая причина непонимания, поэтому соберём их в одну таблицу:

Адрес Пример Уровень Что обозначает
Доменное имя example.com Прикладной (DNS) Удобное для человека название сервера
Порт 443 Транспортный Конкретную программу на устройстве
IP-адрес 203.0.113.10 Сетевой Устройство в масштабе всего интернета
MAC-адрес 3c:22:fb:1a:9e:04 Канальный Сетевую карту в пределах одной локальной сети
Аналогия: адрес на конверте
  • IP-адрес — это город, улица и дом. Порт — номер квартиры: дом один, а жильцов (программ) много. Доменное имя — запись в записной книжке «бабушка», по которой вы находите настоящий адрес. MAC-адрес — это то, как почтальон узнаёт нужный подъезд уже на месте.
  • М О Д У Л Ь 2