Какой % трафика приходится на сетевые накладные расходы помимо запросов HTTP/S

Если мы:
1) подсчитываем байты/биты на уровне сетевого адаптера (необработанное количество бит через сетевую карту) и,
2) подсчитываем байты во всех запросах/ответах HTTP/S.

Предполагая, что на коробке находится только трафик HTTP/S, и предполагая статистически значимый объем «типичного» веб-трафика:

Я хочу знать, насколько больше трафика будет учитываться на уровне сетевой карты, чем на уровне HTTP/S (с учетом заголовков http и всего остального) из-за дополнительных сетевых издержек.


person David Parks    schedule 31.08.2010    source источник
comment
Только для битов/байтов служебных данных TCP/IP (поэтому НЕ включая дополнительные служебные данные HTTP/S и не вычисляющие служебные данные как %), я нашел ответ stackoverflow.com/questions/8902583/ полезно.   -  person Destiny Architect    schedule 30.11.2016


Ответы (3)


Вы ничего не знаете об уровнях ниже HTTP. Вы даже не можете предположить, что HTTP-запрос будет доставлен через TCP/IP. Даже если это так, вы ничего не знаете о накладных расходах, добавляемых сетевым уровнем. Или какова будет надежность маршрута и какие накладные расходы возникнут из-за отброшенных/повторно отправленных пакетов.

Обновление. Основываясь на вашем комментарии, вот некоторые приблизительные оценки:

максимальный размер сегмента (который не включает заголовки TCP или IP) обычно согласовывается между слоев до размера MTU за вычетом размера заголовков. Для Ethernet MTU обычно настраивается на 1500 байт. заголовок TCP составляет 160 бит или 20 байт. Фиксированная часть заголовка IPv4 составляет 160 бит или 20 байт. Фиксированная часть заголовка IPv6 составляет 320 бит или 40 байт. Таким образом:

  • для HTTP через TCP/IPv4

накладные расходы = TCP + IP = 40 байт

полезная нагрузка = 1500 - 40 = 1460 байт

накладные расходы % = 2,7% (40 * 100 / 1460)

  • для HTTP через TCP/IPv6

накладные расходы = TCP + IP = 60 байт

полезная нагрузка = 1500 - 60 = 1440 байт

накладные расходы % = 4,2% (60 * 100 / 1440)

Вот предположения:

  • Amazon подсчитывает полезную нагрузку сетевой карты без заголовков Ethernet, а не весь пакет сетевой карты.
  • ваши HTTP-ответы полностью используют пакет TCP/IP — ваш типичный размер страницы + заголовки HTTP приводят к одному или нескольким полным пакетам TCP/IP и одному с более чем 50% используемой полезной нагрузки
  • вы устанавливаете явную дату истечения срока действия для кэшированного контента, чтобы свести к минимуму ответ 302
  • вы избегаете перенаправлений или ваши URL-адреса достаточно длинные, чтобы заполнить полезную нагрузку
person Franci Penov    schedule 31.08.2010
comment
Мой вопрос возникает, потому что я запускаю сервер в облаке Amazon EC2. Они считают байты на сетевой карте, я получаю журнал байтов на уровне HTTP на моем сервере. Я хотел бы предположить, насколько больше они будут учитываться, чем я увижу в журналах. Учитывая все переменные, я просто хочу подставить разумное число в некоторые оценки. Предполагая большой объем типичного трафика, это должно быть возможно. - person David Parks; 01.09.2010
comment
Это именно то краткое изложение, которое я искал, и перечисленные вами предположения дали отличную пищу для размышлений. Действительно ценю это! - person David Parks; 03.09.2010
comment
У меня тот же вопрос, за исключением того, что я использую передачу файлов между двумя системами Linux через Bluetooth (http-сервер python на стороне сервера, wget на стороне клиента, физический интерфейс — bluetooth). А еще есть блютуз заголовки. Любая грубая идея? - person Hamzahfrq; 07.07.2015
comment
20 байт — минимальный размер заголовка TCP; в реальности из-за таких опций TCP, как NOP и метка времени, заголовок TCP обычно имеет длину около 32 байтов. - person rustyx; 02.01.2018
comment
Также есть много других накладных расходов, рукопожатие для установки и разрыва TCP-соединения и ACK для TCP-сегментов. - person nos; 04.06.2020

С Ethernet 100 Мбит/с большой файл передается со скоростью 94,1 Мбит/с.

Это 6% накладных расходов. Если вы также подсчитаете TCP ACK, пересылаемые в противоположном направлении, это число приближается к 9%. Для Gigabit Ethernet накладные расходы (в процентах) остаются прежними. Предположения: TCP/IPv4 и размер файла >100 КБ. (При таком размере мы можем пренебречь начальной настройкой HTTP и TCP.)

При сравнении скорости загрузки остерегайтесь коэффициента 8 от битов к байтам. Я думаю, никто не будет брать с вас плату за преамбулу Ethernet или межкадровый интервал, но «полезную нагрузку» не следует понимать буквально.

Расчет: полезная нагрузка / общая
полезная нагрузка = 1500 - 20 - 32 (Ethernet_MTU - IPv4 - TCP)
всего = 8 + 14 + 1500 + 4 + 12 (преамбула + Ethernet_header + Ethernet_MTU + CRC + Interframe_gap)

Поскольку в наши дни Ethernet всегда является полнодуплексным, случайный TCP ACK, проходящий в обратном направлении, не влияет на скорость передачи. Если вы добавите один ACK для каждых двух кадров данных к накладным расходам (это то, что я наблюдал в Wireshark), вы получите 8,5% общих накладных расходов. И хотя размер MTU обычно составляет 1500 байт, в некоторых сетях он может быть меньше или намного больше, если на него настроено каждое оборудование на пути.

person maxy    schedule 20.09.2013

Какие дополнительные накладные расходы на сеть? накладные расходы TLS поверх HTTP составляют обмен ключами. В основном вы замечаете накладные расходы на обработку.

http://en.wikipedia.org/wiki/HTTP_Secure#Difference_from_HTTP

В дальнейшем (после сервера) ускоритель wan или прокси-серверы будут обрабатывать ваш трафик по-другому, поскольку он не может быть кэширован или сжат.

person reconbot    schedule 31.08.2010
comment
Я хочу спросить о накладных расходах TCP/IP, а не о HTTPS и HTTP. Предполагая типичный объем трафика HTTP и HTTPS, каковы типичные служебные данные TCP/IP, которые будут учитываться при мониторинге на уровне сетевой карты, по сравнению с объемом байтов HTTP, которые будут учитываться сервером. - person David Parks; 01.09.2010