Пустой прогресс-бар скачивания файла в браузере без единого процента загрузки

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

Материал подойдёт тем, кто хочет понять механику загрузки файлов и при этом не тонуть в академических RFC-документах. Минимум сухой теории, максимум наглядности.

Ключевые выводы

  • Скачивание файла из интернета включает минимум 7 этапов: DNS-запрос, TCP-рукопожатие, TLS-шифрование, HTTP-запрос, разбиение на пакеты, сборку и запись на диск.
  • TCP гарантирует доставку каждого пакета: если фрагмент потерян, он будет запрошен повторно автоматически.
  • DNS переводит доменное имя в IP-адрес, и без этого шага браузер не знает, куда отправлять запрос.
  • Скорость провайдера указывается в мегабитах (Мбит/с), а скорость загрузки файлов — в мегабайтах (МБ/с). Разница в 8 раз: канал 100 Мбит/с даёт максимум ~12,5 МБ/с.
  • В России внутренний трафик маршрутизируется через локальные точки обмена трафиком, что делает скачивание с российских серверов быстрее, чем с зарубежных.
  • Проверка хеш-суммы (MD5, SHA-256) — единственный надёжный способ убедиться, что скачанный файл не повреждён и не подменён.

Читайте также

Что вам понадобится

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

  • Браузер (Google Chrome, Firefox, любой другой)
  • Встроенные инструменты разработчика (F12 → вкладка Network)
  • Командная строка для команд ping, tracert (Windows) или traceroute (Linux/macOS)
  • Любой файл для скачивания — подойдёт даже PDF со свободного ресурса

Как сегодня работает интернет

Основа не изменилась с 1990-х: модель TCP/IP делит всю коммуникацию на четыре уровня — канальный, сетевой (IP), транспортный (TCP или UDP) и прикладной (HTTP, FTP и другие). Каждый уровень решает свою задачу и не лезет в чужую.

Когда вы загружаете файл, все четыре уровня работают одновременно. HTTP формирует запрос, TCP гарантирует доставку, IP маршрутизирует пакеты, а канальный уровень передаёт биты по проводу или радиоволне. Современный интернет добавил к этой схеме CDN-серверы, которые размещают копии популярных файлов ближе к пользователю, и протокол QUIC (основа HTTP/3), объединяющий функции TCP и TLS в одном рукопожатии.

Но фундамент тот же. Понимание загрузки через классическую модель TCP/IP остаётся актуальным и для новичков, и для тех, кто хочет разобраться глубже.

Пошаговая инструкция

Шаг 1: DNS-запрос — браузер ищет адрес сервера

Вы вводите URL или нажимаете ссылку. Браузер видит доменное имя (например, example.com), но для связи с сервером нужен числовой IP-адрес. Начинается DNS-резолвинг.

Сначала браузер проверяет собственный кеш. Не нашёл? Спрашивает операционную систему. Та проверяет файл hosts и свой кеш. Если и тут пусто, запрос уходит на DNS-сервер вашего провайдера. Тот может перенаправить запрос выше — к корневому DNS-серверу, затем к серверу доменной зоны (.com, .ru), и наконец к авторитативному DNS-серверу, который знает точный IP.

Весь процесс занимает 10–200 миллисекунд. Результат кешируется, чтобы повторные запросы были мгновенными.

Откройте инструменты разработчика (F12), перейдите на вкладку Network и обратите внимание на столбец «DNS Lookup» — там видно реальное время этого шага.

Как работает интернет скачать шаг 1: DNS-запрос в адресной строке браузера Google Chrome
Как работает интернет скачать шаг 1: DNS-запрос в адресной строке браузера Google Chrome

Шаг 2: TCP-рукопожатие — установка надёжного канала

Получив IP-адрес, браузер инициирует TCP-соединение. Это трёхступенчатый процесс (three-way handshake):

  1. Ваш компьютер отправляет SYN-пакет («хочу соединиться»)
  2. Сервер отвечает SYN-ACK («готов, подтверждаю»)
  3. Компьютер отправляет ACK («подтверждаю, начинаем»)

Три пакета — и канал открыт. Если сайт использует HTTPS (а это почти все современные ресурсы), сразу после TCP-рукопожатия происходит TLS-рукопожатие — обмен ключами шифрования. Ещё 1–2 обмена пакетами.

Зачем такие сложности? TCP гарантирует, что ни один фрагмент файла не потеряется. UDP быстрее, но не подходит для скачивания, где важен каждый байт.

Как работает интернет скачать шаг 2: установка TCP-соединения между клиентом и сервером
Как работает интернет скачать шаг 2: установка TCP-соединения между клиентом и сервером

Шаг 3: HTTP-запрос — браузер просит файл

TCP-канал открыт. Теперь браузер формирует HTTP-запрос. Для скачивания это обычно GET-запрос с указанием пути к файлу:

GET /files/document.pdf HTTP/1.1
Host: example.com
Accept: application/pdf

Сервер получает запрос, находит файл, проверяет права доступа и начинает отправку. В ответе он указывает размер файла (заголовок Content-Length), тип содержимого (Content-Type) и статус (200 OK — всё в порядке, 404 — файл не найден).

Именно здесь решается, получите вы файл или ошибку. Если сервер перегружен, он может ответить кодом 503 — тогда браузер покажет сообщение об ошибке, а не прогресс-бар.

Как работает интернет скачать шаг 3: отправка HTTP-запроса на скачивание файла
Как работает интернет скачать шаг 3: отправка HTTP-запроса на скачивание файла

Шаг 4: разбиение на пакеты — файл путешествует по сети

Сервер не отправляет файл целиком. Он делит его на TCP-сегменты, каждый из которых оборачивается в IP-пакет. Стандартный размер одного пакета — около 1 500 байт (MTU, Maximum Transmission Unit).

Файл размером 10 МБ превращается примерно в 7 000 пакетов. Каждый получает порядковый номер, IP-адрес отправителя и получателя, контрольную сумму для проверки целостности. Пакеты не обязательно идут по одному маршруту — маршрутизаторы выбирают путь динамически, исходя из текущей загрузки каналов.

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

Как работает интернет скачать шаг 4: разбиение файла на пакеты данных в сети
Как работает интернет скачать шаг 4: разбиение файла на пакеты данных в сети

Шаг 5: сборка пакетов — восстановление файла на вашем устройстве

Пакеты прибывают на вашу сетевую карту в произвольном порядке. Пакет №4 500 может прийти раньше пакета №12. TCP-стек операционной системы буферизирует входящие пакеты и выстраивает их в правильной последовательности по порядковым номерам.

Если какой-то пакет не дошёл или повреждён (контрольная сумма не совпала), получатель отправляет запрос на повторную передачу. Сервер пересылает только потерянный фрагмент, а не весь файл.

Механизм «скользящего окна» TCP управляет скоростью: если сеть справляется, окно растёт, и сервер отправляет больше пакетов за раз. Если начинаются потери — окно сужается. Так TCP адаптируется к пропускной способности канала автоматически.

Как работает интернет скачать шаг 5: сборка пакетов в готовый файл на компьютере
Как работает интернет скачать шаг 5: сборка пакетов в готовый файл на компьютере

Шаг 6: проверка целостности

Когда все пакеты собраны, браузер или менеджер загрузок проверяет файл. На транспортном уровне TCP уже проверил каждый пакет контрольной суммой. Но для больших файлов часто используется дополнительная проверка: MD5, SHA-256 или другой хеш, указанный на странице скачивания.

Если хеш скачанного файла совпадает с указанным на сайте — файл идентичен оригиналу. Расхождение означает повреждение при передаче или подмену.

Не все сайты публикуют хеши. Но для дистрибутивов Linux, крупных архивов и программ с открытым кодом это стандартная практика.

Как работает интернет скачать шаг 6: проверка целостности скачанного файла контрольной суммой
Как работает интернет скачать шаг 6: проверка целостности скачанного файла контрольной суммой

Шаг 7: сохранение на диск

Браузер записывает собранный файл в папку загрузок. На самом деле запись начинается раньше: большинство браузеров создают временный файл (с расширением .part, .crdownload или .tmp) и пишут в него по мере поступления данных. Когда загрузка завершена и проверена, временный файл переименовывается в финальное имя.

Именно поэтому при обрыве соединения вы видите «недокачанный» файл в папке загрузок — он содержит только те пакеты, которые успели прийти.

На этом путь от DNS-запроса до байтов на вашем диске завершён.

Как работает интернет скачать шаг 7: сохранение загруженного файла в папку на диске
Как работает интернет скачать шаг 7: сохранение загруженного файла в папку на диске

Как работает интернет в России

Физически российский сегмент связан с глобальной сетью через несколько десятков точек обмена трафиком (IX) и подводных/наземных магистральных каналов. Крупнейшие IX расположены в Москве, Санкт-Петербурге и Екатеринбурге.

Ваш запрос на скачивание файла с зарубежного сервера проходит через маршрутизаторы вашего провайдера, затем через магистрального оператора (Ростелеком, ТТК или другого), далее через точку обмена трафиком и по международному каналу до дата-центра за рубежом. Обратный путь аналогичен.

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

CDN-сервисы (Cloudflare, Akamai, российский CDNvideo) размещают кеширующие узлы внутри страны, чтобы популярный контент раздавался локально, без необходимости тянуть пакеты через океан.

Если вы когда-нибудь запускали tracert google.com из Москвы и видели 8–12 промежуточных узлов — это и есть визуализация маршрута, по которому пакеты путешествуют туда и обратно.

Частые ошибки

Путаница Мбит/с и МБ/с — провайдер обещает 100 Мбит/с, пользователь ожидает скачивание со скоростью 100 МБ/с. Разница в 8 раз: 100 Мбит/с ≈ 12,5 МБ/с максимум. Реальная скорость ещё ниже из-за накладных расходов протоколов.

Скачивание без проверки источника — нажатие на первую попавшуюся кнопку «Скачать» может привести к загрузке совсем не того файла. Всегда проверяйте домен и, если доступно, хеш-сумму.

Игнорирование HTTPS — загрузка файлов по незащищённому HTTP позволяет любому узлу на маршруте подменить содержимое. Браузеры предупреждают об этом, но многие закрывают предупреждение не глядя.

Прерывание загрузки и повторный запуск с нуля — если менеджер загрузок поддерживает докачку, нет смысла начинать заново. Достаточно возобновить загрузку, и клиент запросит у сервера только недостающие байты через HTTP-заголовок Range.

Использование публичного Wi-Fi без VPN — в открытой сети трафик легко перехватить. Даже при HTTPS атакующий видит, какие домены вы посещаете и какие файлы скачиваете (по DNS-запросам и SNI).

Практические советы

В инструментах разработчика браузера (F12 → Network) можно посмотреть каждый этап скачивания: DNS, TCP-рукопожатие, TLS, ожидание ответа, передача данных. Это лучший способ увидеть теорию в действии.

Для больших файлов используйте менеджер загрузок с поддержкой многопоточного скачивания: он открывает несколько TCP-соединений к серверу и качает разные части файла параллельно. Скорость может вырасти в 2–4 раза по сравнению с обычной загрузкой через браузер.

Команда tracert (Windows) или traceroute (Linux/macOS) покажет, через какие узлы идут пакеты от вас до сервера. Полезно для диагностики медленных загрузок: если задержка резко подскакивает на определённом узле, проблема скорее всего там.

Вопросы и ответы

Почему скорость скачивания отличается от скорости, указанной провайдером?

Провайдеры указывают скорость в мегабитах в секунду (Мбит/с), а менеджеры загрузок показывают мегабайты (МБ/с). 1 МБ = 8 Мбит. Канал 100 Мбит/с даёт максимум ~12,5 МБ/с. Реальная скорость ещё ниже из-за накладных расходов протоколов, загрузки канала и физического расстояния до сервера.

Что происходит, если интернет обрывается во время скачивания?

TCP-соединение разрывается, и передача останавливается. Если программа поддерживает докачку, она запоминает, какие байты уже получены, и при восстановлении связи запрашивает с сервера только оставшуюся часть файла через HTTP-заголовок Range. Вот почему вы видите .part-файлы в папке загрузок — это частично скачанные данные.

Зачем нужен DNS, если можно вводить IP-адреса напрямую?

Технически можно. Но запоминать 142.250.185.78 вместо google.com неудобно. DNS работает как адресная книга интернета: переводит понятные людям имена в числовые адреса, нужные маршрутизаторам. К тому же один домен может менять IP-адрес без уведомления пользователей — и DNS обеспечивает прозрачность этих изменений.

Как работает интернет скачать файлы через торрент — это тот же процесс?

Нет. Торрент использует протокол BitTorrent, где файл скачивается не с одного сервера, а одновременно от множества других пользователей (пиров). Каждый пир отдаёт те фрагменты, которые у него уже есть. Базовые принципы TCP/IP те же, но архитектура принципиально другая — децентрализованная.

Источники:

Материал проверен редакцией Sempedia. Автор: Редакция Sempedia.