Введение
Пропускная способность на уровне приложений В компьютерных сетях, goodput (сочетание good и throughput) - это пропускная способность на уровне приложений связи, т.е. количество полезных битов информации, доставляемых сетью к определенному месту назначения за единицу времени. Количество рассматриваемых данных не включает протокольные накладные биты, а также переданные пакеты данных. Это связано с количеством времени от первого бита первого отправленного (или доставленного) пакета до последнего бита последнего пакета. Например, если файл передается, то хорошая производительность, которую испытывает пользователь, соответствует размеру файла в битах, деленному на время передачи файла. Добрая производительность всегда ниже пропускной способности (общая скорость передачи битов, которая передается физически), которая обычно ниже скорости подключения к сети (мощность канала или пропускная способность). Примеры факторов, которые вызывают более низкую производительность, чем пропускная способность: протокольные накладные расходы: как правило, транспортный слой, сетевой слой и иногда протокольный накладный расход на уровне связи данных включены в пропускную способность, но исключены из пропускной способности. Контроль потока транспортного слоя и предотвращение перегрузки: Например, медленный запуск TCP может привести к снижению производительности, чем максимальная пропускная способность. Передача потерянных или поврежденных пакетов из-за автоматического повторного запроса (ARQ) на транспортном уровне, вызванного бит-ошибками или пакетом, выпадающим в перегруженных коммутаторах и маршрутизаторах, включена в пропускную способность уровня связи данных или сетевого уровня, но не в хорошую производительность.
In computer networks, goodput (a portmanteau of good and throughput) is the application level throughput of a communication; i. e. the number of useful information bits delivered by the network to a certain destination per unit of time. The amount of data considered excludes protocol overhead bits as well as retransmitted data packets. This is related to the amount of time from the first bit of the first packet sent (or delivered) until the last bit of the last packet is delivered. For example, if a file is transferred, the goodput that the user experiences corresponds to the file size in bits divided by the file transfer time. The goodput is always lower than the throughput (the gross bit rate that is transferred physically), which generally is lower than network access connection speed (the channel capacity or bandwidth). Examples of factors that cause lower goodput than throughput are:
Protocol overhead: Typically, transport layer, network layer and sometimes datalink layer protocol overhead is included in the throughput, but is excluded from the goodput. Transport layer flow control and congestion avoidance: For example, TCP slow start may cause a lower goodput than the maximum throughput. Retransmission of lost or corrupt packets due to transport layer automatic repeat request (ARQ), caused by bit errors or packet dropping in congested switches and routers, is included in the datalink layer or network layer throughput but not in the goodput.
Пример
По Ethernet файлы разбиваются на отдельные куски для передачи. Эти куски не больше максимальной единицы передачи IP через Ethernet или 1500 байтов. Каждый пакет требует 20 байтов информации о заголовке IPv4 и 20 байтов информации о заголовке TCP, оставляя 1460 байтов на пакет для файловых данных (Linux и macOS далее ограничены 1448 байтами, поскольку они также имеют 12-байтовую временную метку). Данные передаются по Ethernet в рамках, что накладывает нагрузку в 26 байтов на пакет. Учитывая эти накладные расходы, максимальная производительность составляет 1460/1526 × 100 Мбит/с, что составляет 95,67 мегабит в секунду или 11,959 мегабайт в секунду. Обратите внимание, что в этом примере не учитываются дополнительные накладные расходы Ethernet, такие как интерфреймный разрыв (минимум 96 бит), или столкновения (которые имеют переменное влияние, в зависимости от нагрузки сети). TCP добавляет накладные расходы на подтверждения (которые вместе с временем задержки в обратном направлении и размером окна TCP в эффекте ограничивают скорость каждого отдельного подключения к TCP, см. Продукт задержки пропускной способности). В этом примере не учитываются накладные расходы самого протокола HTTP, которые становятся актуальными при передаче небольших файлов.