Назад | Перейти на главную страницу

Можно ли создать нечестную сетевую карту Ethernet?

Протокол MAC Ethernet основан на CSMA / CD, который определяет алгоритм справедливой обработки конфликтов:

Если сетевая карта обнаруживает коллизию, она отправляет сигнал блокировки и вводит двоичный экспоненциальный откат:

После m-го конфликта подряд сетевая карта выбирает K случайным образом из {0,1,2,3, ..., 2 ^ m - 1}

Сетевая карта ждет K * 512 бит раз, а затем возвращается к этапу отправки:

Если NIC обнаруживает, что канал свободен, начинает передачу кадра.

Если сетевой адаптер обнаруживает, что канал занят, ожидает, пока канал не станет свободным, а затем передает.

У меня вопрос: можно ли создать сетевую карту, которая несправедливо реализует протокол? Если да, то есть ли причина для этого?

т.е. всегда ждет 0 битов перед попыткой повторной передачи во всех случаях, тем самым давая клиенту более высокий приоритет для передачи при наличии конкурирующих соединений.

Для соединений Ethernet, которые обычно являются двухточечными, кажется, что у хоста будет мало причин для утверждения приоритета передачи, но я хочу знать, упускаю ли я что-то.

С Уважением,

Очень теоретический, но интересный вопрос. Я постараюсь ответить на этот вопрос :)

Первоначально Ethernet был основан на идее компьютеров, обменивающихся данными через общий коаксиальный кабель, выступающего в качестве среды передачи широковещательной передачи (например, стандарты 10-Base2, 10-Base5). После этого был 10-BaseT с двухточечным UTP-кабелем, но по-прежнему вся сеть была большим доменом конфликтов (из-за использования повторителей / концентраторов). Сеть без какого-либо протокола разрешения конфликтов (например, CSMA / CD) вообще не будет работать. Это приводит нас к другому выводу: сетевая карта без надлежащей обработки CSMA / CD, вероятно, заблокировала бы весь разделяемый домен конфликтов, и тогда администратору сети пришлось бы попытаться найти рабочую станцию ​​и пометить ее как сломанную :)

Другое дело, что передача - это двусторонняя связь. Вы бы ничего не выиграли с точки зрения приоритета трафика, если бы единственная сетевая карта была стороной с «улучшенной» задержкой: другая сторона физического соединения (например, коммутатор) должна была бы также иметь «несправедливый» протокол. В сегодняшних коммутируемых сетях Ethernet это не дало бы никакого эффекта, кроме большей вероятности коллизий на этом отрезке меди / волокна между модифицированными сетевыми картами.

И последнее но не менее важное. Протокол Ethernet реализован с помощью микросхемы на сетевой карте. Вам нужно будет найти способ изменить прошивку самой сетевой карты. Я думаю, это может быть сложной задачей на большинстве современных сетевых адаптеров с жестко запрограммированной прошивкой.

С уважением

Вы не получите «более высокий приоритет», у вас будет больше шансов столкновения. Конечно, если вы используете коммутируемый Ethernet или слабо загруженный общий кабель, у вас будет немного коллизий и немного откатов.