Рамки Raw-Ethernet

10

Недавно меня озадачили следующие статьи о кадрах Raw-Ethernet:

Передача сообщений RAW Ethernet и UDP с
использованием необработанных кадров Ethernet

Вкратце, оба они обсуждают, что можно установить двухточечную связь, используя только уровень Ethernet. В этом случае можно было бы избежать накладных расходов на уровнях IP и TCP, а пропускная способность увеличилась бы (примерно на 50% в соответствии с некоторыми тестами).

Я хотел бы сделать аналогичный тест, но в беспроводной среде. Однако у меня есть некоторые проблемы:

1-й выпуск.
Есть ли какие-либо аппаратные ограничения (например, карта Wi-Fi), которые могут подорвать такие усилия?

Второй выпуск. В
обеих статьях был выбран следующий формат кадра:

Преамбула Разделитель | Заголовки Mac | Полезная нагрузка | Pad | CRC

Насколько я знаю, преамбула, разделитель, pad и CRC добавляются устройством Ethernet в каждый кадр и не могут быть изменены с помощью программного обеспечения. Я думаю, с устройствами Wi-Fi похоже. Следовательно, существует ли какое-либо аппаратное ограничение (например, карта Wi-Fi), которое может помешать удалению заголовков Mac?

PS: учтите, что связь будет проходить по принципу «точка-точка», т. е. не будет никаких маршрутизаторов, коммутаторов, мостов, ... нет подключения к Интернету.

Марк Месса
источник
2
Не IP-трафик через Ethernet был частью сетевой работы на протяжении десятилетий, поэтому я не совсем понимаю, на что вы действительно пытаетесь получить ответ, и, возможно, вам нужно узнать немного больше об основах работы в сети. «Беспроводная карта Ethernet» не существует, так как 802.3 Ethernet и 802.11 wireless - это два совершенно разных стандарта. Таким образом, формат вашего кадра во 2-м выпуске не будет применяться вообще к сети 802.11, но кадры предъявляют определенные требования в соответствии со стандартами, поэтому многие компоненты списка, который вы перечисляете, не настраиваются.
YLearn
1
@YLearn Не IP-трафик через Ethernet десятилетиями был частью сети , но в то время устройства Ethernet не были такими «умными», как сегодня, и большая часть работы была выполнена ЦП. Мне было интересно, теряет ли гибкость стоимость «умного».
Марк Месса
@YLearn не будет применяться вообще к сети 802.11 Хорошо, я знаю, что другие компьютеры, подключенные к стандартной сети 802.11, не будут распознавать такие кадры как допустимые. Однако возможно ли отправлять / получать такие кадры? Или оборудование не позволит?
Марк Месса
@MarkMessa, кадры с одного хоста на другой хост в той же локальной сети будут приниматься вторым хостом. Вопрос в том, будут ли они переданы на верхние уровни сетевого стека внутри хоста. Если принимающий хост имеет только стек IP и полезная нагрузка кадра не является IP, данные будут игнорироваться. Вам необходимо изучить модель OSI, чтобы получить общее представление о том, как данные передаются с одного хоста на другой.
Рон Мопин
@MarkMessa, относительно вашего первого комментария, несмотря на то, что устройства Ethernet «умнее», Ethernet все еще работает как Ethernet. 802.3 никогда не требует и никогда не потребует использования IP. Например, хотя и редко, Ethernet сегодня по-прежнему будет поддерживать Appletalk или IPX / SPX так же счастливо, как и раньше, или вообще без какого-либо протокола более высокого уровня (многие вещи все еще используют только L2 для связи). Что касается вашего второго комментария, я не уверен, что вы подразумеваете под «возможно ли отправлять / получать такие кадры». Вы не можете отправлять кадры 802.3 через 802.11, но есть только связь 802.11 без IP.
YLearn

Ответы:

8

Во-первых, Wi-Fi (IEEE 802.11) - это не Ethernet (IEEE 802.3), а не просто Token Ring (IEEE 802.5), а любые другие стандарты IEEE LAN, отличные от 802.3, являются Ethernet. Заголовки кадров различны для Wi-Fi и Ethernet.

Wi-Fi, Ethernet, Token Ring, FDDI и т. Д. Являются стандартами ЛВС для OSI уровня 1 и уровня 2, которые инкапсулируют дейтаграммы для протоколов верхнего уровня. Каждый может транспортировать протоколы уровня 3, из которых IP является лишь одним.

Вы можете создать свой собственный или использовать один из существующих протоколов уровня 3 для одного из протоколов IEEE LAN, но вам понадобится рамка для протокола LAN, который вы выберете. Не ожидайте, что вы сможете взаимодействовать с любым устройством, на котором не работает ваш стек протоколов, и вы не можете ожидать, что оно будет работать на любых маршрутизаторах, у которых нет стека протоколов (это означает, что нет Интернета, использующего IP). Мосты, такие как коммутаторы Ethernet или WAP, будут транспортировать ваши протоколы верхнего уровня, так как они работают на уровне 2, так что вы можете создать ЛВС.

Вам понадобится заголовок кадра для типа локальной сети, в которой вы находитесь. С одной стороны, как один хост на самом деле отправляет на другой хост без адреса уровня 2 во фрейме. Я думаю, что вы в основном возвращаетесь к последовательной связи, такой как RS-232, у которой нет рамки или заголовка, но она использует дополнительные провода для управления данными.

Рон Мопин
источник
Wi-Fi (IEEE 802.11) - это не Ethernet (IEEE 802.3). Хорошо, я просто изменил часть вопроса, чтобы избежать этой путаницы. Теперь совершенно не в тему, просто подумайте об этом: несколько продуктов рекламируются как «беспроводные локальные сети Ethernet».
Марк Месса
Я видел такие вещи, но это не значит, что это правильно. Фреймы Wi-Fi и Ethernet отличаются, и Ethernet использует обнаружение коллизий, но Wi-Fi использует предотвращение коллизий. Другие локальные сети используют такие вещи, как токены, чтобы полностью предотвратить коллизии. Они все разные локальные сети, и некоторая реклама не делает их одинаковыми.
Рон Мопин
это не значит, что это правильно. Хорошо, я согласен с вами. Спасибо, чтобы исправить меня. Мне известны такие различия, как CSMA / CD, CSMA / CA и токены. Однако я был ослеплен рекламой типа «Wi-Fi - это беспроводная локальная сеть Ethernet».
Марк Месса
и при этом вы не можете ожидать, что он будет работать на любых маршрутизаторах. Не будет никаких маршрутизаторов, коммутаторов или мостов, только связь точка-точка. Я только что отредактировал вопрос, чтобы избежать этой путаницы.
Марк Месса
1
@MarkMessa Я не хочу избегать использования фреймов, я просто рассматриваю возможность избежать использования заголовка MAC. Вот почему ваш запрос сбивает с толку. Похоже, вы не понимаете, что без заголовков L2 они больше не являются Ethernet или кадрами 802.11. Вам потребуется написать собственный протокол L2 для работы без заголовков L2, присутствующих в 802.3 или 802.11.
YLearn
7

Исходя из ваших вопросов и комментариев, я думаю, что вы упускаете смысл двух статей, на которые вы ссылаетесь.

Когда они говорят о «Raw Ethernet», они говорят о фреймах данных, которые не содержат заголовков IP (L3) или TCP / UDP (L4). Они не говорят об использовании кадров L2 без заголовков L2.

Без заголовков L2 кадр не был бы ни 802.3 (Ethernet), ни кадром 802.11. Это было бы что-то еще полностью. Отдельный протокол L2.

Есть ли какие-либо аппаратные ограничения (например, карта Wi-Fi), которые могут подорвать такие усилия?

Не включая заголовки L2? Абсолютно. Вам нужно было бы указать конкретный адаптер, чтобы получить конкретный ответ, но я сомневаюсь, что вы могли бы даже написать драйверы, которые будут работать с большинством адаптеров 802.3 или 802.11, которые не включают заголовки L2. Я предполагаю, что большинство адаптеров отклонят / отбросят кадр как искаженный либо перед отправкой, либо после ее получения.

Отправлять только кадр 802.3 или 802.11, который не включает заголовки IP или TCP / UDP? Нет. Это происходит постоянно как часть нормальной работы сети и продолжается десятилетиями (по крайней мере, для 802.3; 802.11 существует не так давно, но как минимум десятилетие).

Следовательно, существует ли какое-либо аппаратное ограничение (например, карта Wi-Fi), которое может помешать удалению заголовков Mac?

Смотри выше.

YLearn
источник
большинство адаптеров отклоняют / отбрасывают кадр, я думаю, это ответит на мой вопрос. Позже я представлю свой ответ, чтобы не потерять все интересные «эфемерные» комментарии.
Марк Месса
отклонить / отбросить кадр как искаженный либо перед отправкой, либо после ее получения. Насколько я знаю, в режиме монитора вы можете услышать любые кадры, даже искаженные (например, неправильный CRC). Однако, что любопытно, аппаратное обеспечение не позволяет транслировать кадры без MAC-заголовков.
Марк Месса
Небольшое исправление: однако, что любопытно, адаптер не позволяет транслировать кадры без MAC-заголовков.
Марк Месса
2
@MarkMessa "Насколько я знаю, в режиме мониторинга вы можете слышать любые кадры, даже искаженные (например, неправильный CRC)" Это полностью зависит от рассматриваемого устройства. Многие адаптеры (включая коммутаторы) будут обрабатывать и сбрасывать их даже перед отправкой для захвата / зеркального отображения / охвата. Часто вы даже не увидите трейлер Ethernet с CRC в кадрах.
YLearn
1

Я хотел бы сделать аналогичный тест, но в беспроводной среде.

Посмотрите на Wifibroadcast (Linux, некоторая поддержка Android), который делает именно это. Краткое резюме: он использует пару адаптеров Wi-Fi, один в режиме ввода, другой в режиме монитора, и передает данные с использованием необработанных кадров Wi-Fi. Это однонаправленное соединение. Первоначально задуманный как способ передачи видеосигнала с низкой задержкой, он, конечно, может использоваться для всех видов данных.

Есть ли какие-либо аппаратные ограничения (например, карта Wi-Fi), которые могут подорвать такие усилия?

Да. Есть адаптеры, которые работают лучше, и адаптеры, которые работают хуже, если вообще работают. Некоторые адаптеры в режиме raw не могут содержать высокую пропускную способность, для некоторых адаптеров необходимо изменить их встроенное ПО. Некоторые адаптеры работают в диапазоне 2,4 ГГц, а некоторые - в 5 ГГц, а некоторые в обоих.

Радован Гарабик
источник
0

Да. Теоретически , вы можете запустить двухточечный Ethernet таким образом. Обе конечные точки должны были бы находиться в случайном режиме для удаления заголовков Ethernet 802.3 Ethernet (в противном случае кадры не принадлежат ни одному из сетевых адаптеров и будут игнорироваться.) Конечно, это означает, что вы не используете «ethernet».

Рики Бим
источник
неразборчивый режим Это очень важный вопрос, который я надеялся поднять. В случайном режиме кадры, адресованные на другой MAC-адрес, чем ваш, не будут сбрасываться картой Wi-Fi. Однако то же самое не относится к BSSID (поправьте меня, если я ошибаюсь). Если кадр не адресован вашему BSSID, карта Wi-Fi откажется от него. Можно ли этого избежать и получить ВСЕ кадры, попадающие на вашу карту? (режим монитора?)
Марк Месса
случайный режим для удаления заголовков MAC- адреса 802.3 Ethernet На основании ответа @YLearn кажется, что оборудование не будет принимать кадры без заголовков L2.
Марк Месса