1

Я хочу увеличить скорость передачи между двумя сетевыми адаптерами:

1) Быстрый сетевой адаптер Atheros AR8152 PCI-E.

2) Гигабитный Ethernet-контроллер Marvell Yukon 88E8053 PCI-E.

Marvell имеет размер "Jumbo Packet" до 9014 байт.

Atheros не имеет ничего общего с "Jumbo Packet", но имеет "Transmit Buffers" со значением по умолчанию 256.

Если они оба одинаковы, какое значение "Transmit Buffers" следует использовать для сопоставления с байтами Marvell?

Спасибо.

1 ответ1

2

Гигантские кадры и буферы передачи - это разные вещи.

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

Jumbo-кадры позволяют увеличить его, как вы уже видели, до 9000 байт (плюс заголовки) в этом случае, но все, что больше 1500, будет считаться джамбо-кадром, хотя в большинстве случаев это 9000 байт. Размещение большего количества данных в каждом пакете означает меньшие издержки и меньшую загрузку ЦП.

Однако, если на всех устройствах, которые обмениваются данными с этой машиной, не включены разрешенные Jumbo-кадры, это может фактически отрицательно повлиять на производительность. Машина с большими кадрами будет пытаться отправлять пакеты полного размера, и они будут либо фрагментированы до 1500 пакетов, либо согласованы до размера, с которым могут справиться оба конца. Это требует времени, и поэтому может замедлить ход событий (немного).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .