Как интернет-пакеты обеспечивают передачу ваших данных

3

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

Когда вы отправляете электронное письмо или запрашиваете веб-страницу, интернет не передает всё сразу целиком. Он разделяет данные на управляемые части. Типичный пакет может содержать около 1000–1500 байт тела вашего сообщения. Однако это не просто «сырые» данные. Каждый фрагмент несет свою собственную «инструкцию по эксплуатации». Он включает IP-адрес отправителя, IP-адрес получателя и счетчик, который точно указывает сети, какой это пакет в общей последовательности.

Всё это передается по протоколу TCP/IP (Transmission Control Protocol/Internet Protocol). Это стандартный язык, который использует интернет для общения с самим собой.

Зачем разбивать данные на части?

Возможно, вы спросите себя, почему бы просто не отправить весь файл целиком. Ответ кроется в эффективности и устойчивости.

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

Такой подход выполняет две критически важные функции для вашего соединения:

  1. Балансировка нагрузки: Сеть может мгновенно распределять трафик между различными аппаратными средствами. Ни один сервер не перегружается, в то время как другие простаивают.
  2. Отказоустойчивость: Если маршрутизатор выходит из строя или кабель перерезают во время передачи, оставшиеся пакеты просто находят новый маршрут в обход препятствия. Сообщение все равно доставляется. Сеть не останавливается.

Как еще их называют?

Терминология в сетевых технологиях может быть запутанной. В зависимости от уровня сетевой модели или конкретного типа соединения эти пакеты могут называться по-разному:

  • Кадр (Frame)
  • Блок (Block)
  • Ячейка (Cell)
  • Сегмент (Segment)

Не позволяйте разным названиям вводить вас в заблуждение. Все они относятся к одной и той же фундаментальной концепции: небольшим, самодостаточным единицам данных, перемещающимся по сети.

Анатомия пакета

Понимание того, как эти части соединяются вместе, является следующим шагом. Мы рассмотрим конкретную структуру сетевого пакета и пройдемся через реальный пример того, как данные перемещаются с вашего экрана на экран другого человека.

Данные не передаются по интернету в виде одного гигантского неделимого блока. Они разбиваются на части.

Большинство сетевых пакетов разделяются на три четкие части. Эта структура не случайна. Именно так ваше устройство общается с другим устройством, не путаясь в хаосе сети.

Вот что делает каждая часть.

Заголовок: Почтовая этикетка

Заголовок — это место, где хранятся инструкции. Он указывает сети, что нужно делать с данными, которые он несет.

Представьте себе конверт.

Он включает:
— Длина: Некоторые сети используют фиксированные размеры. Другим требуется, чтобы заголовок указывал размер пакета.
— Синхронизация: Несколько битов, помогающих принимающему устройству синхронизироваться с часами сети.
— Номер пакета: Если вы отправляете большой файл, он разбивается на множество частей. Этот номер сообщает получателю, какую именно часть он получает.
— Протокол: Это электронная почта? Веб-страница? Потоковое видео? Протокол определяет тип данных.
— Адрес назначения: Куда данные направляются.
— Исходный адрес: Откуда данные пришли.

Без этого данные представляют собой просто шум. Маршрутизаторы смотрят на адрес назначения в заголовке и проверяют свои таблицы поиска. Они определяют следующий шаг маршрута.

Поле данных: Суть

Это поле данных (payload). Также называется телом или данными.

Это фактическая информация, которая вас интересует. Текст вашего письма. Пиксели изображения.

Если сеть использует пакеты фиксированной длины, поле данных может не заполнять всё пространство. В этом случае оно дополняется (padding) нулевыми битами до требуемого размера.

В нашем примере с электронной почтой каждый пакет имеет 896 бит места для поля данных. Заголовок занимает 96 бит. Хвост занимает 32 бита. Общий размер пакета составляет 1024 бита.

Хвост: Проверка на ошибки

Хвост (или футер) обозначает конец пакета.

Обычно он содержит биты для проверки ошибок. Наиболее распространенным методом является Циклический избыточный код (CRC).

CRC — это удивительно умный механизм.

Вот как он работает:
1. Отправитель суммирует все единицы в поле данных.
2. Он преобразует эту сумму в шестнадцатеричное значение.
3. Он сохраняет это значение в хвосте.

Когда пакет прибывает, получатель выполняет ту же математику. Он суммирует единицы в полученном поле данных. Затем он сравнивает результат со значением в хвосте.

Если числа совпадают, пакет исправен.

Если не совпадают? Данные были повреждены во время передачи. Получатель просит отправителя повторно отправить пакет.

Никаких догадок. Никаких битых изображений. Просто простая математическая проверка.

Собираем всё вместе: Пример с электронной почтой

Давайте рассмотрим реальный сценарий.

Вы отправляете электронное письмо другу. Сообщение имеет длину 3500 бит.

Сеть использует пакеты фиксированной длины по 1024 бита.

  • Заголовок: 96 бит
  • Хвост: 32 бита
  • Доступное поле данных: 896 бит

Чтобы отправить 3500 бит, вам нужно четыре пакета.

  1. Пакет 1: 896 бит поля данных
  2. Пакет 2: 896 бит поля данных
  3. Пакет 3: 896 бит поля данных
  4. Пакет 4: 812 бит поля данных (остаток)

Каждый пакет содержит ту же информацию о протоколе, ваш IP-адрес, IP-адрес вашего друга и номер последовательности (1, 2, 3 или 4).

Маршрутизаторы маршрутизируют их независимо. Они могут даже идти по разным путям.

Когда они прибывают на компьютер вашего друга, заголовок и хвост удаляются. Компьютер смотрит на номера последовательности. Он воссоединяет данные в правильном порядке.

Письмо появляется. Целым.

Часто задаваемые вопросы о пакетно-коммутационных сетях

Как работают пакеты в интернете?

Всё, что вы делаете в сети, зависит от пакетов. Каждая веб-страница загружается серией пакетов. Каждое электронное письмо отправляется серией пакетов.

Сети, обрабатывающие данные таким образом, называются пакетно-коммутационными сетями.

Почему данные разделяются на пакеты?

Эффективность.

Разбиение данных на небольшие фрагменты позволяет сети балансировать нагрузку. Она может маршрутизировать трафик миллисекунда за миллисекундой.

Это также обеспечивает отказоустойчивость. Если какое-либо оборудование выйдет из строя, пакеты могут быть маршрутизированы в обход проблемы. Сообщение все равно будет доставлено. Просто не самым быстрым способом.

Какова структура пакета?

Три части: заголовок, поле данных и хвост.

Заголовок содержит инструкции. Поле данных содержит информацию. Хвост содержит маркеры конца пакета и проверки ошибок.

Является ли интернет пакетно-коммутационной сетью?

Да.

Интернет — это сеть без установления соединения. Она использует пакетную коммутацию для всего. Между вами и сервером нет выделенной линии. Только пакеты, летящие через сеть маршрутизаторов.

Больше о сетях

Если вы хотите углубиться, эти темы напрямую связаны с тем, как работают пакеты:

  • Как работает Ethernet
  • Как работает VoIP
  • Как работает электронная почта
  • Что такое IP-адрес?
  • Как работают биты и байты
  • Как работают веб-серверы
  • Как работают домашние сети
  • Как работают маршрутизаторы
  • Как работает инфраструктура интернета

Для быстрого определения ознакомьтесь со статьей о пакетах на сайте whatis.com.