Недавно меня озадачили следующие статьи о кадрах 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: учтите, что связь будет проходить по принципу «точка-точка», т. е. не будет никаких маршрутизаторов, коммутаторов, мостов, ... нет подключения к Интернету.
источник
Ответы:
Во-первых, 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, у которой нет рамки или заголовка, но она использует дополнительные провода для управления данными.
источник
Исходя из ваших вопросов и комментариев, я думаю, что вы упускаете смысл двух статей, на которые вы ссылаетесь.
Когда они говорят о «Raw Ethernet», они говорят о фреймах данных, которые не содержат заголовков IP (L3) или TCP / UDP (L4). Они не говорят об использовании кадров L2 без заголовков L2.
Без заголовков L2 кадр не был бы ни 802.3 (Ethernet), ни кадром 802.11. Это было бы что-то еще полностью. Отдельный протокол L2.
Не включая заголовки L2? Абсолютно. Вам нужно было бы указать конкретный адаптер, чтобы получить конкретный ответ, но я сомневаюсь, что вы могли бы даже написать драйверы, которые будут работать с большинством адаптеров 802.3 или 802.11, которые не включают заголовки L2. Я предполагаю, что большинство адаптеров отклонят / отбросят кадр как искаженный либо перед отправкой, либо после ее получения.
Отправлять только кадр 802.3 или 802.11, который не включает заголовки IP или TCP / UDP? Нет. Это происходит постоянно как часть нормальной работы сети и продолжается десятилетиями (по крайней мере, для 802.3; 802.11 существует не так давно, но как минимум десятилетие).
Смотри выше.
источник
Посмотрите на Wifibroadcast (Linux, некоторая поддержка Android), который делает именно это. Краткое резюме: он использует пару адаптеров Wi-Fi, один в режиме ввода, другой в режиме монитора, и передает данные с использованием необработанных кадров Wi-Fi. Это однонаправленное соединение. Первоначально задуманный как способ передачи видеосигнала с низкой задержкой, он, конечно, может использоваться для всех видов данных.
Да. Есть адаптеры, которые работают лучше, и адаптеры, которые работают хуже, если вообще работают. Некоторые адаптеры в режиме raw не могут содержать высокую пропускную способность, для некоторых адаптеров необходимо изменить их встроенное ПО. Некоторые адаптеры работают в диапазоне 2,4 ГГц, а некоторые - в 5 ГГц, а некоторые в обоих.
источник
Да. Теоретически , вы можете запустить двухточечный Ethernet таким образом. Обе конечные точки должны были бы находиться в случайном режиме для удаления заголовков Ethernet 802.3 Ethernet (в противном случае кадры не принадлежат ни одному из сетевых адаптеров и будут игнорироваться.) Конечно, это означает, что вы не используете «ethernet».
источник