Расчет пропускной способности сети

предположим, что у меня есть сеть 4 Мбит, и я хочу рассчитать пропускную способность данных, это с учетом максимальной скорости передачи за вычетом накладных расходов на заголовки ethernet/IP/TCP. Читая в Интернете, я обнаружил, что MSS (максимальный размер сегмента) сегмента TCP составляет 576 - 20 - 20, причем последние два являются служебными заголовками TCP и IP, что приводит к 93% данных, что означает, что я буду использовать только 93% моих 4MBits ссылаются на передачу данных. Теперь, где ссылка наверху? Его тоже нельзя добавить? Если я не ошибаюсь, заголовок Ethernet составляет около 46 байт, поэтому окончательная сумма будет 576 - 20 - 20 - 46 = 490, что приведет к пропускной способности данных 85%, но я делаю что-то не так?


person Cristiano Coelho    schedule 04.12.2012    source источник
comment
Это минимальный МСС. Обычно это будет что-то вроде 1460.   -  person cnicutar    schedule 05.12.2012
comment
Все еще не отвечает на вопрос, следует ли считать заголовок канального уровня для расчета максимальной пропускной способности канала, если используется TCP?   -  person Cristiano Coelho    schedule 05.12.2012
comment
Я не пытался ответить на ваш вопрос как таковой. Я ответил только на но я делаю что-то не так.   -  person cnicutar    schedule 05.12.2012


Ответы (2)


Просто работайте снизу вверх. Обычные фреймы Ethernet (без jumbo-кадров и тегов vlan) в сумме составляют 1542 bytes и могут иметь полезную нагрузку 1500 bytes. Заголовок Ipv4 без параметров — 20 bytes, а заголовок TCP без параметров — также 20 bytes. Таким образом, вы получаете 1460 bytes возможных полезных данных 1542 byte кадра канального уровня. Таким образом, ваша эффективность равна 1460/1542=0.9468223086900129, в результате чего максимальная пропускная способность составляет 3.7872892347600517Mbps.

Обратите внимание, однако, что это обычно будет ниже. Это теоретическая максимальная скорость для непрерывного потока, которую вы можете получить по полнодуплексному каналу после установления сеанса TCP и когда вы являетесь единственным пользователем этого канала. Также имейте в виду, что как только вы начнете отправлять данные с немного более высокой скоростью в течение некоторого времени, ваша ссылка станет перегруженной, вы увидите падение, и ваша фактическая пропускная способность TCP может значительно упасть из-за медленного старта.

Если соединение беспроводное (802.11), расчет становится намного более сложным из-за механизмов RTS/CTS, но это около /2 только для одного активного пользователя, и это без учета потерь, что нереально.

person KillianDS    schedule 04.12.2012
comment
Должны ли мы также учитывать пакеты подтверждения от tcp, потребляющие часть ссылки? Даже если у них нет полезной нагрузки, у них все равно есть заголовки, что еще больше снижает пропускную способность, я прав? - person Cristiano Coelho; 05.12.2012
comment
Нет, если вы постоянно транслируете и задерживаете ACK (должно быть по умолчанию), ACK будет включен в заголовок обычного пакета данных. - person KillianDS; 05.12.2012

В общем, протокол может влиять на пропускную способность сети и намного больше, чем просто накладные расходы пакетов. Вы упомянули, что хотите измерить пропускную способность в сети Ethernet/IP/TCP, но влияние накладных расходов на пакеты этих протоколов НЕ единственное, что следует учитывать. TCP является протоколом, ориентированным на установление соединения, и использует ACK для сигнализации о том, был получен пакет или нет. user1777914 пропустил отметку о ACK, но кое-что понял - они больше не занимают ПРОСТРАНСТВО, но могут ЗАДЕРЖАТЬ передачу пакетов. По мере увеличения задержки общая пропускная способность сети может снижаться в зависимости от того, как часто приложение или операционная система хостинга ожидают ответа.

У. Ричард Стивенс написал УДИВИТЕЛЬНУЮ книгу о TCP/IP. Вот исключение, объясняющее теоретическую производительность TCP, что на нее влияет и как она рассчитывается.

Алгоритм Nagle также помогает с задержкой, но если он отключен, это может снизить пропускную способность.

person WildBill    schedule 07.12.2012