Что загружается при серфинге в Интернете?


25

Я использую модем, и он показывает скорость загрузки n кбит / с и скорость загрузки m кбит / с. Когда я проверяю его журналы, он показывает количество загруженных и загруженных данных. Мне интересно, почему это показывает, что я загрузил 3 МБ данных в час, что кажется чрезмерным, когда я никогда ничего не загружаю и не использую торренты.

Итак, что я загружаю, когда занимаюсь серфингом в Интернете?

Ответы:


46

Подробнее о том, как работают TCP-соединения и подтверждения, см . Ответ Диого.

Когда вы посещаете сайт, происходит нечто подобное:

  1. Соединение установлено с вашим DNS-сервером (если это еще не сделано), для которого ваш компьютер уже знает IP-адрес (или через некоторый автоматический механизм, который запрашивает эту информацию у вашего интернет-провайдера), отправляя пакеты, чтобы установить соединение и подтвердить соединение было изготовлено. После установления соединения ваш сайт запрашивает IP-адрес сайта, который вы посещаете, чтобы он знал, с какого компьютера связаться, чтобы получить сайт. Это означает, что он отправляет пакет, содержащий доменное имя, чтобы получить этот ответ. Позже он также отправляет пакет, чтобы закрыть соединение.

  2. Установлено соединение с веб-сервером, на котором размещен сайт, который вы хотите посетить, при этом снова отправляется пакет для подключения и подтверждения соединения. После этого он отправляет запрос на страницу, которую вы хотите посетить, снова отправляя пакет. Затем он отвечает, и вы получаете HTML-код веб-страницы, который указывает на структуру страницы (а не на макет).

  3. Поскольку у вас есть только структура, вам все равно нужно получить остальные. Таким образом, дополнительные запросы (вопрос SU похож на 40 запросов) делаются для получения сценариев, стилей и мультимедиа, таких как изображения и тому подобное. А поскольку некоторые из них могут находиться не на том же веб-сервере, который вы посещаете, может потребоваться дополнительное разрешение DNS, возвращающее вас к шагу 1.

  4. Кроме того, обратите внимание, что каждый пакет, который вы получаете, подтверждается, добавляя еще один источник данных, который загружается, чтобы сэкономить на пакетах, обычно несколько пакетов подтверждаются одновременно. Таким образом, когда вы получаете что-то, вы отправляете на сервер, который вы получили, чтобы он знал, что то, что он отправил, где-то не потеряно. Таким образом, сервер не должен пытаться отправить его снова.

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

И это не так, что вы только нажимаете, вы делаете больше, давайте возьмем ваш вопрос в качестве примера: вы набрали около 500 символов, символ считается как 1 байт (если символ ASCII, все в этом случае) и может быть от 1 до 4 байтов (если символ Unicode). Итак, ваш вопрос на самом деле занимает 0,5 КБ или 0,00005 МБ! Но это не только вопрос, который нам посылают, он также окружен запросом POST или AJAX, который просит сервер сохранить ваш вопрос и сами заголовки пакетов.

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


1
Попытка обрисовать в общих чертах ответ Уильяма, обращаясь к Диогу на ходу, тоже поднимите их! :)
Тамара Вийсман

2
И я старался быть быстрым, когда должен был написать подробный ответ, как этот! Кажется, мне всегда не хватает этих ответов, эта небесная ракета !!!
Уильям Хилсум

27

Ваша загрузка основывается в основном на требованиях, которые вы делаете при наборе адреса (например, www.google.com) на веб-сервер, чтобы запросить HTTP- соединение с этим сайтом. После этих запросов следующая точка загрузки - это ACK (Подтверждения от TCP- соединений по протоколу HTTP ) в процессе рукопожатия :

В сетях передачи данных подтверждение (или подтверждение) - это сигнал, передаваемый между связывающимися процессами или компьютерами для обозначения подтверждения или получения ответа как части протокола связи. Например, пакеты ACK используются в протоколе управления передачей для подтверждения приема пакетов SYN при установлении соединения, пакетов данных во время использования соединения и пакетов FIN при прекращении соединения.

В качестве примера рассмотрим схему TCP (вы используете TCP для серфинга в Интернете):

диаграмма


15

Когда вы подключены к сети, все, что приходит от удаленной цели, - это загрузка, а все, что вы отправляете, - это загрузка.

Таким образом, даже простой запрос веб-страницы будет состоять из того, что ваш компьютер (скорее всего) сделает запрос DNS, подключится к веб-серверу, отправит запрос на страницу, а затем отправит запрос для каждого элемента / picture / css / javascript на этой странице. ,

3 МБ для использования часов не так уж много!


когда я запрашиваю страницу, то все, что связано с этой страницей, приходит автоматически или для каждого элемента идет отдельный запрос, который вы упомянули?
Деб

1
@Debabratta отдельный запрос отправляется для каждого ресурса . Один для страницы (с содержимым - текст, разметка - макеты и т. Д.), По одному для различных изображений, файлов JavaScript, CSS-файлов, которые упоминаются на странице. (Иногда браузер использует кэш - копию изображения, которое вы загрузили в последний раз, когда вы посещали страницу. Но это также включает запрос, чтобы увидеть, изменилось ли изображение). Запросы от flash, silverlight или других подобных плагинов также складываются.
Nivas

2

Помимо обычных пакетов TCP и HTTP, вы также должны немного узнать о специальной информации, получаемой трекерами. Получите информацию на специальном веб-сайте Ghostery .

Они только увеличивают необходимые данные !


0

Более простая разбивка:

  • TCP-пакеты для открытия соединения с сервером
  • Пакеты HTTP-запросов для каждого компонента веб-страницы
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.