Networking

Сетевые протоколы

Протокол — набор правил обмена данными между узлами: формат сообщений, порядок обмена и реакция на ошибки.

Что такое Сетевые протоколы

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

Аналогия: протокол — это язык и этикет разговора одновременно. Мало передать звук — обе стороны должны одинаково понимать слова, знать, чья очередь говорить, и что делать, если собеседника не расслышали.

Ключевое свойство: протокол не зависит от реализации. nginx на Linux и браузер на телефоне написаны разными людьми на разных языках, но говорят по HTTP одинаково — потому что оба следуют спецификации.

Протоколы работают слоями

Ни один протокол не решает задачу целиком — каждый опирается на нижележащий и не знает деталей его работы. Открытие страницы задействует минимум четыре:

HTTP    — «дай мне /index.html»            прикладной уровень
  ↓
TLS     — зашифровать это                  безопасность
  ↓
TCP     — доставить надёжно, порт 443      транспорт
  ↓
IP      — довезти до 93.184.216.34         сеть
  ↓
Ethernet — передать до соседнего узла      канал

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

Основные протоколы

Протокол Уровень Порт Задача
HTTP / HTTPS прикладной 80 / 443 запрос-ответ в вебе
DNSприкладной 53 имя → адрес
SSHприкладной 22 шифрованный доступ к серверу
SMTP / IMAP прикладной 25 / 143 почта
TCPтранспортный надёжный поток
UDPтранспортный дейтаграммы без гарантий
IPсетевой адресация и маршрутизация
ICMP сетевой служебные сообщения, ping
ARP канальный IP → MAC в локальной сети

HTTPS и SSL — что это на самом деле

Оба запроса встречаются постоянно, и в обоих кроется путаница.

Протокол HTTPS — это не отдельный протокол, а обычный HTTP, пропущенный через шифрованный туннель. Буква S означает Secure: сначала стороны устанавливают TLS-соединение и проверяют сертификат, а затем внутри него передают ровно те же HTTP-запросы. Поэтому HTTPS-трафик нельзя прочитать по пути, но сам факт соединения и имя хоста (SNI) видны.

Протокол SSL — предшественник TLS. Все версии SSL устарели и отключены: SSLv2 и SSLv3 признаны небезопасными много лет назад. Когда сегодня говорят «SSL-сертификат» или «настроить SSL», технически имеют в виду TLS — название прижилось и осталось в интерфейсах и документации.

Открытость и совместимость

Протоколы описываются в открытых спецификациях — для интернета это RFC. Именно поэтому оборудование и софт разных вендоров работают вместе, а вы можете заменить Apache на nginx, не переписывая клиентов.

На практике это даёт свободу выбора: пока сервис говорит по стандартному протоколу, его реализацию можно менять. Отсюда же и обратное правило — проприетарный протокол привязывает вас к одному поставщику.

Связанные термины

  • Модель OSI — как уровни протоколов описаны формально
  • TCP и UDP — транспорт под большинством прикладных протоколов
  • HTTP — самый массовый прикладной протокол
  • TLS — то, что превращает HTTP в HTTPS
  • Сетевые порты — как узел различает протоколы на одном адресе
  • Компьютерные сети — среда, в которой всё это работает

Готовы запустить GPU-задачу?

Запустить GPU-сервер