Коммутация пакетов
Коммутация пакетов — способ передачи данных в сети, при котором информация делится на небольшие блоки (пакеты) и каждый из них доставляется адресату независимо, возможно по разным маршрутам.
Что это
Коммутация пакетов — метод передачи данных в компьютерных сетях, при котором исходное сообщение разбивается на небольшие фрагменты — пакеты, — каждый из которых передаётся по сети самостоятельно и может идти к получателю своим маршрутом. На стороне получателя пакеты собираются обратно в исходное сообщение. Именно этот принцип лежит в основе интернета и большинства современных телекоммуникационных сетей. В отличие от коммутации каналов, при пакетной передаче физический канал не занимается монопольно на всё время сеанса — он используется совместно множеством участников одновременно.
Зачем это нужно
До появления пакетной коммутации телефонные сети работали по принципу коммутации каналов: между двумя абонентами устанавливалось выделенное соединение, которое удерживалось всё время разговора, даже в паузах. Это расточительно — канал простаивает, а ресурс заблокирован. В 1960-х годах Пол Бэран в RAND Corporation и Дональд Дэвис в британской NPL независимо друг от друга предложили альтернативу: делить данные на пакеты и пускать их по сети динамически. Это сделало сети устойчивее к отказам узлов (пакеты просто обходят сломанный маршрутизатор) и позволило эффективно делить пропускную способность между тысячами пользователей одновременно. В 1969 году ARPANET — прямой предшественник интернета — стала первой крупной сетью на основе коммутации пакетов.
Как это работает
Процесс передачи данных через пакетную сеть проходит несколько этапов:
- Разбивка на пакеты. Исходные данные — файл, веб-страница, видеопоток — делятся на блоки фиксированного или переменного размера. Каждый пакет получает заголовок с адресом отправителя, адресом получателя, порядковым номером и служебной информацией.
- Маршрутизация. Каждый пакет самостоятельно движется по сети через маршрутизаторы. На каждом узле маршрутизатор смотрит на адрес назначения и решает, куда отправить пакет дальше — по таблицам маршрутизации и текущей загрузке сети.
- Независимая доставка. Разные пакеты одного сообщения могут идти разными путями и прибывать в разном порядке. Это нормально — протокол TCP отслеживает порядковые номера и при необходимости запрашивает повторную отправку потерянных пакетов.
- Сборка. На стороне получателя пакеты выстраиваются в правильном порядке и собираются в исходное сообщение.
Примеры применения
- Загрузка веб-страницы: браузер получает HTML, CSS, изображения в виде сотен пакетов, которые могут прийти вперемешку и собираются в готовую страницу.
- Видеозвонки в Zoom или Google Meet: голос и видео режутся на пакеты и передаются в реальном времени; небольшие потери пакетов компенсируются буферизацией.
- Электронная почта: письмо с вложением разбивается на пакеты, которые проходят через несколько серверов-ретрансляторов, прежде чем собраться у адресата.
- Онлайн-игры: команды игрока (движение, выстрел) упаковываются в UDP-пакеты и отправляются на игровой сервер с минимальной задержкой.
- Корпоративные VPN: зашифрованные пакеты с данными сотрудников передаются через публичный интернет, как будто по выделенному каналу.
Связанные понятия
- Коммутация каналов — альтернативный метод, при котором под соединение резервируется выделенный физический канал на всё время сеанса (классическая телефония).
- Маршрутизатор (router) — сетевое устройство, которое принимает пакеты и решает, по какому пути их отправить дальше.
- TCP/IP — стек протоколов, на котором работает интернет; TCP обеспечивает надёжную доставку и сборку пакетов, IP — адресацию и маршрутизацию.
- UDP — протокол передачи без гарантии доставки; используется там, где важна скорость, а не точность (стриминг, игры).
- Задержка (latency) и джиттер — ключевые характеристики качества пакетной сети: время доставки пакета и разброс этого времени.
- MTU (Maximum Transmission Unit) — максимальный размер пакета, который может передать конкретный канал связи без фрагментации.
Частые заблуждения
Распространённый миф: «пакеты всегда идут по одному и тому же маршруту». На самом деле маршрут определяется динамически при каждой отправке и может меняться даже в рамках одной сессии — в зависимости от загрузки сети или отказа узла. Ещё одно заблуждение: «потеря пакета означает потерю данных». При использовании TCP потерянный пакет автоматически запрашивается повторно, и данные доходят полностью — просто с небольшой задержкой. Потери без восстановления критичны только в UDP-протоколах, где скорость важнее полноты.