Поставщику программного обеспечения, с которым я работаю, требуются гигабитные соединения Ethernet для классической установки программного обеспечения клиент-сервер. На мой удивленный вопрос, почему им нужно было передавать такой большой объем данных между клиентом и сервером, продавец ответил, что они не передают большие, но много маленьких пакетов. Он сказал мне, что по их опыту это работает намного быстрее на гигабитных, чем на 10 или 100 мегабитных соединениях.

Поняв Ethernet как последовательное соединение и скорость передачи, ограниченную в основном средой (оптоволокно, медь и т.д.), Я озадачен. Есть ли теоретическое объяснение феномену, как объяснил продавец, которого я могу пропустить? Мой опыт не совсем аппаратный, поэтому, возможно, в гигабитных стандартах есть меры по оптимизации, которые каким-то образом оптимизируются для этого особого случая.

Итак, если предположить, что мне придется отправлять 1 000 000 пакетов по несколько байт каждый, есть ли причина, по которой это может быть быстрее в гигабитном Ethernet, чем в 10/100 мегабитном Ethernet?

2 ответа2

5

Скорость передачи пакетов (pps) является прямым результатом деления скорости линии на размер пакета. Как таковой, он масштабируется линейно с линейной скоростью.

Минимальный размер кадра Ethernet составляет 84 байта, в то время как максимальный (без учета больших кадров) составляет 1538 байтов. Таким образом, возможны следующие частоты кадров:

  • 100 Мбит / с: от 8 127 кадров в секунду до 148 809 кадров в секунду
  • 1 Гбит / с: 81 274 ф / с до 1 488 096 ф / с

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

3

если у меня есть пакет, который составляет 5 КБ, почему это имеет значение, если линия может передавать 10, 100 или 1000 Мбит?

Линия не измеряется в мегабитах, она измеряется в мегабитах в секунду. Это единица измерения, которая одинаково применяется к любому объему данных - точно так же, как "километры в час" - одинаково для любого расстояния. (Например, 10 метров при скорости 20 км / ч все равно в десять раз быстрее, чем при 2 км / час.)

При желании единицы измерения можно уменьшить - например, 1 км / ч можно преобразовать в ~ 0,27 м / с. Аналогично, 1 Гбит / с можно преобразовать в 1 Кбит / с. Это то же самое значение, но вы можете видеть, что передача 5 килобит со скоростью 1 кбит / мкс (1 Гбит / с) занимает 5 микросекунд - в десять раз быстрее, чем 50 мкс.

[Я очень надеюсь, что я понял математику правильно]

Итак, если предположить, что мне нужно будет отправить 1 000 000 пакетов по несколько байт каждый, есть ли причина, почему это может быть быстрее в гигабитной сети Ethernet, чем в мегабитной сети Ethernet?

Он называется "Gigabit Ethernet", поскольку его скорость передачи данных составляет 1 Гбит / с (гигабит в секунду). Это на самом деле не емкость, а фиксированная тактовая частота. Например, если вы отправите один гигабит, он будет передан за одну секунду со скоростью 1 Гбит / с. Но если вы отправите 10 мегабит, они будут переданы через 0,01 секунды, по- прежнему со скоростью 1 Гбит / с, и связь будет оставаться свободной в течение оставшихся 0,99 секунд.

Другими словами, он не меняет передачи в зависимости от размера пакета. Отправляете ли вы X Gb, состоящий из больших пакетов, или X Gb, состоящий из маленьких пакетов, они всегда отправляются с той же скоростью 1 Гбит / с, которая всегда в 10 раз быстрее, чем 100 Мбит / с.

Поняв Ethernet как последовательное соединение и скорость передачи для небольших пакетов, ограниченных в основном средой (оптоволокно, медь и т.д.),

Не все последовательные соединения работают одинаково. Скорость передачи данных, которую вы можете достичь на одном и том же носителе, может варьироваться в зависимости от кодирования и модуляции, которые вы используете для передачи этих битов на провод. (Плюс довольно много других вещей, о которых я не знаю.) В дополнение к этому Gigabit Ethernet (и аналогично USB 3.2, PCI-e, SATA и многие другие последовательные каналы) использует несколько линий для одновременной отправки нескольких блоков данных.

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