1 ПК с Linux с двумя сетевыми картами не может генерировать сетевой трафик для тестовой системы - PullRequest
2 голосов
/ 06 октября 2010

Эти вопросы относятся к основам работы в сети, но я пока не нашел ответа!

Вопрос 1: Может ли коммутатор со скоростью 100 Мбит / с обрабатывать 2 одновременных потока TCP, работающих на скорости 100 Мбит / с?Чтобы проиллюстрировать это, если у вас есть 4 ПК на 1 коммутаторе (100 Мбит / с без других подключений) и у вас было два отдельных потока, какую скорость они бы достигли?Будет ли один поток влиять на скорость других, или коммутатор достаточно быстр для работы со многими потоками?

2 streams on one network


Вопрос 2: Iнастроили 1 ПК (Linux) на выделенном сетевом коммутаторе, ПК имеет 2 карты сетевого интерфейса (NIC).Оба сетевых адаптера имеют разные IP-адреса и работают нормально.Если я отправляю какие-либо данные с одного сетевого адаптера на другой, абсолютно никакой трафик не передается по сетевому коммутатору.Похоже, что ядро ​​интеллектуально и работает, нет необходимости отправлять что-либо по сети, так как IP-адреса находятся на одном ПК.Как это отключить?

alt text


Поскольку у меня нет доступа к 4 ПК, я не могу проверить вопрос 1 в реальном мире.Это очень простые вопросы, но в то же время очень трудно ответить.

Спасибо!

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Ответ на вопрос 1 зависит от полосы пропускания объединительной платы коммутатора - это общая скорость трафика, которую он может обрабатывать внутри. Если он имеет полосу пропускания не менее 200 Мбит / с, он может поддерживать два независимых потока со скоростью 100 Мбит / с.

Более дешевые коммутаторы, как правило, имеют меньшую пропускную способность объединительной платы, чем более дорогие "большие железные" коммутаторы.

Что касается вопроса 2, вы можете попытаться добавить ручные маршруты к своим собственным IP-адресам, явно указав внешние устройства (если вы отметите route -C, вы увидите, что в кэше маршрутизации есть маршруты через устройство обратной связи для собственные IP-адреса).

1 голос
/ 06 октября 2010

Вопрос 1: Да, любой коммутатор со скоростью 100 Мбит / с должен иметь возможность обрабатывать два независимых потока со скоростью 100 Мбит / с, поскольку каждый порт имеет скорость 100 Мбит / с, а не сам коммутатор. Трафик не попадает в ЦП, если в этом нет особой необходимости, и в этот момент коммутатор может стать узким местом и замедляться. Тем не менее, нормальный трафик должен быть в порядке.

Вопрос 2: Вам нужно написать программу, чтобы сделать это вручную, или найти ее в Интернете. Я рекомендую взглянуть на Libnet.

Проблема в том, что ядро ​​знает, что оно владеет обеими картами, поэтому оно не беспокоит фактическую отправку данных в сеть. Используя Libnet, вы можете вручную создавать пакеты и отправлять их из определенного интерфейса.

Основной трюк, однако, заключается в том, что вам нужно отправлять трафик в обоих направлениях (не так много; вам не нужно, чтобы в одном направлении было более 1 пакета в минуту, а все остальное - в другом направлении). Проблема заключается в том, что коммутатор не будет знать, куда должны отправляться пакеты, и переполнит их всеми портами, замедляя все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...