Пакеты, IP и TCP: как данные доходят

Зачем:Вы поймёте, что страница путешествует не целиком, а кусками, и почему она всё-таки собирается правильно. После урока вы можете объяснить IP-адрес, порт, потерянный пакет и рукопожатие TCP простым языком.

20 минут

Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.

Пакет — кусок данных с заголовком «откуда, куда, номер». IP доставляет пакеты по адресам без гарантий, а TCP нумерует, подтверждает и повторяет потерянное.

Страница едет кусками

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

У пакета есть заголовок, как на посылке: откуда, куда и какой это номер. И есть содержимое: сам кусок данных. Размер ограничен: пакет обычно несёт полторы тысячи байт, то есть около полутора килобайт. Страница в сто килобайт это около семидесяти пакетов, а картинка в мегабайт около семисот.

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

Ваш текст путешествует кусками
Отправитель режет текст на пронумерованные пакеты (нажмите на пакет)

откуда 203.0.113.7:51514 → куда 198.51.100.20:443 | пакет №3 из 10 | данные: «р и судеб»

203.0.113.7 и 198.51.100.20 это адреса узлов (так принято писать примеры). Число после двоеточия это порт: порт 443 принимает защищённый веб-трафик (HTTPS), а порт отправителя выбирает ваш компьютер.

Круг 1 из 3

Отправлено в этом круге: пакеты 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Дошли, в порядке прибытия: 3, 4, 7, 2, 1, 6, 10, 9. Потеряны: 5, 8. Получатель сообщает, каких номеров нет, и отправитель шлёт их снова.

Что собрал получатель: Кадастровый инженер и судебный экспе▒▒аю владельцам учас▒▒оять границы.

Всего отправлено пакетов: 13 при 10 в тексте. Лишняя работа из-за потерь: 3.

Проверьте себя: из чего состоит пакет?

Из заголовка (откуда, куда, номер) и содержимого (кусок данных).

Зачем резать на пакеты

Раньше телефонная связь работала по-другому: на время разговора вам выделяли целую линию, и никто другой её не использовал. Такая линия простаивала, пока вы молчите, и рвалась, если ломался хоть один участок.

Пакетная сеть устроена экономнее. Пакеты разных людей идут по одним и тем же линиям вперемешку. Если какой-то узел сломался, пакеты обходят его другой дорогой. Эту идею в начале 1960-х придумали Пол Бэран в США и Дональд Дэвис в Великобритании, и на ней вырос интернет.

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

IP: адрес узла

Каждому устройству в сети нужен адрес, иначе не понятно, куда везти пакет. Такой адрес называется IP-адресом. В протоколе IPv4 он состоит из четырёх чисел от 0 до 255, разделённых точками, например 198.51.100.20. Всего таких адресов около 4,3 миллиарда, и на все устройства планеты их давно не хватает.

Поэтому есть IPv6, где адрес гораздо длиннее и записывается в шестнадцатеричном виде, например 2001:db8::1. Адресов в нём практически бесконечно много, и сегодня оба протокола работают рядом.

Дома у вас обычно один «внешний» адрес, который выдал провайдер, и роутер, который раздаёт устройствам внутри дома свои адреса вида 192.168.…. Внутренние адреса снаружи не видны.

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

Проверьте себя: почему IPv6 понадобился, если есть IPv4?

Адресов IPv4 около 4,3 миллиарда, и их не хватает на все устройства. У IPv6 адрес длиннее, адресов практически неограниченно.

Порты: какая программа

IP-адрес приводит пакет на нужный компьютер. Но на компьютере работает много программ, и пакет надо отдать нужной: браузеру, почтовой программе, игре. Для этого есть порт: число от 0 до 65535. Адрес это дом, порт это квартира.

Некоторые порты стандартные: 80 для обычного веба (HTTP), 443 для защищённого (HTTPS), 25 для отправки почты, 53 для DNS. Браузер подставляет их сам, поэтому в адресе сайта вы порт не видите. В адресе https://example.com:8443/ порт указан явно, потому что он нестандартный.

TCP: надёжность поверх ненадёжности

IP не гарантирует доставку, а нам нужно, чтобы страница пришла целиком и в порядке. Этим занимается TCP, протокол надёжной передачи, который работает поверх IP. Он делает четыре вещи:

  1. Устанавливает соединение. Клиент и сервер сначала договариваются, как «рукопожатие» из трёх шагов: клиент говорит SYN («давайте общаться»), сервер отвечает SYN-ACK («согласен»), клиент отвечает ACK («принято»). Только потом идут данные.
  2. Нумерует пакеты.
  3. Подтверждает полученное: получатель сообщает, что именно дошло.
  4. Повторяет потерянное: если подтверждения нет, отправитель посылает пакет снова. Это вы видели на схеме.

Ещё TCP следит, чтобы не засыпать получателя и не перегрузить сеть: начинает осторожно и разгоняется, пока всё идёт гладко.

Есть и другой подход, UDP: он просто шлёт пакеты без гарантий и подтверждений. Он быстрее и подходит там, где опоздавший пакет уже не нужен: в видеозвонке, в запросах DNS, в играх.

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

Проверьте себя: чем отличаются IP и TCP?

IP доставляет пакеты по адресам «как получится», без гарантий. TCP поверх него нумерует пакеты, подтверждает полученное и повторяет потерянное, так что данные приходят целыми и в порядке.

Практика

Вы в эпохе 1996 года. Ваш сайт будут открывать по модему, примерно 3,6 килобайта в секунду. Пятьдесят килобайт грузятся почти четырнадцать секунд, и это уже долго. Поэтому у каждой страницы был бюджет: сколько она может весить.

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

Сколько пакетов это значит? Разделите вес на полтора килобайта: 40 килобайт это около 27 пакетов.

Что было не так с 1996 годом

Бюджет в 50 килобайт заставлял экономить: сжимать картинки, отказываться от лишнего. Это была вынужденная дисциплина, и она не устарела: сегодня медленные телефонные сети и дорогой трафик делают ту же экономию важной для миллионов людей. А вот способ считать на глаз устарел, потому что сегодня для этого есть инструменты браузера: мы откроем их в последнем уроке части.

Практика

Готовлю вашу страницу…

Тест

Вопрос 1 из 6

Соедините часть заголовка пакета с тем, что она сообщает

Подберите пару к каждому пункту.

Карточки

Эти карточки попадут в повторение, когда вы завершите урок.

  • Что такое пакет?

    Ответ

    Небольшой кусок данных (обычно до 1500 байт) с заголовком: откуда, куда, номер. Любая страница путешествует по сети пакетами.

  • Что такое IP-адрес?

    Ответ

    Адрес узла в сети. В IPv4 это четыре числа от 0 до 255 через точку, а в IPv6 длиннее: адресов хватает на всех.

  • Зачем нужен порт?

    Ответ

    IP-адрес находит компьютер, а порт находит программу на нём: 80 для HTTP, 443 для HTTPS, 25 для почты.

  • Что делает TCP?

    Ответ

    Делает надёжной ненадёжную сеть: нумерует пакеты, подтверждает полученное и повторяет потерянное.

  • Как устроено рукопожатие TCP?

    Ответ

    Три шага: клиент шлёт SYN, сервер отвечает SYN-ACK, клиент отвечает ACK. Потом идут данные.

Источники

Видео

Что такое интернет-протокол TCP/IP (Zero to Hero, «Как устроен интернет», 3 из 13)

Видео загрузится с youtube-nocookie.com только после нажатия.

Открыть на сайте

Дальше

Теперь вы знаете: пакеты и коммутация, IP-адреса, TCP и порты.