METABYTE
К списку статей

От URLSession до электронов: как на самом деле работает сеть

Разбираем путь пакета от вызова API до физического сигнала — с юмором и без магии.

12 мая 20262 мин чтения
От URLSession до электронов: как на самом деле работает сеть

Вы когда-нибудь задумывались, что происходит после того, как вы нажали «отправить запрос»? Нет, мы не про магию чёрного ящика под названием URLSession. Мы про то, как ваш запрос превращается в электроны, бегущие по проводам.

Путь пакета: от кода до физики

Всё начинается с вызова URLSession.dataTask(with:). Но за этим скрывается целая эпопея: DNS-запрос, установка TCP-соединения (три рукопожатия, как встреча старых друзей), TLS-рукопожатие (обмен сертификатами, словно на фейсконтроле), и только потом — отправка HTTP-запроса. А сам запрос — это просто строка, которая превращается в биты, затем в электрические сигналы.

Что происходит на физическом уровне?

Ваш Macbook отправляет биты через Wi-Fi-антенну. Радиоволны летят к роутеру, который передаёт их по Ethernet-кабелю (или оптоволокну) к провайдеру. Дальше — маршрутизация через десятки узлов, каждый из которых смотрит на заголовок пакета и решает, куда его отправить. В итоге пакет достигает сервера, где всё повторяется в обратном порядке.

Кстати, знаете, что самое смешное? Весь этот сложный путь, с кучей протоколов и проверок, занимает меньше времени, чем вы читаете этот абзац. Но если у вас сломанный DNS или файрвол — добро пожаловать в мир таймаутов и «соединение сброшено».

Комментарий студии METABYTE: Мы тоже любим копаться в сетевых протоколах, но предпочитаем, чтобы наши приложения работали без лишних «рукопожатий». Если хотите, чтобы запросы летали быстрее, чем свет — обращайтесь, настроим вам HTTP/3 и QUIC.

СЛЕДУЮЩИЙ ШАГ

Понравилось как мыслим?

Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.