Почему моя беспроводная связь UDP Broadcast ограничена 1 МБ?

10

Я пытаюсь реализовать сетевое кодирование по сетчатой ​​сети. Поэтому мне нужно отправлять пакеты нескольким адресатам, поэтому я использую широковещательные пакеты. Но я не могу понять, почему это ограничено в ~ 990 КБ.

Есть ли какая-то конфигурация?

Владимир Лейв
источник
Может быть, упомянуть, как вы генерируете пакеты и какая это операционная система. Вопрос может быть больше дома в stackoverflow
ytti
4
@ytti, для меня это не похоже на вопрос разработчиков, скорее, я думаю, что это вопрос основ 802.11. Но эй, я могу ошибаться (и, как указывает моя жена, часто ошибаюсь).
YLearn
Пожалуйста, добавьте: соответствующие конфиги, информацию о HW / прошивке и, возможно, схему?
Майк Пеннингтон

Ответы:

11

В беспроводной сети 802.11 (как я полагаю, в вашем случае) обычно широковещательные / многоадресные кадры (а также многие кадры управления) передаются с самой низкой базовой / базовой / требуемой (срок зависит от поставщика) скорости передачи данных. Это отдельно от поддерживаемых скоростей передачи данных.

Как правило, для обеспечения наилучшего диапазона и максимальной совместимости по умолчанию используется скорость передачи данных 1 Мбит / с, хотя в последние несколько лет некоторые поставщики увеличивали это значение по умолчанию.

Некоторые поставщики также теперь включают многоадресное преобразование, отслеживающее многоадресные клиенты с некоторой формой отслеживания многоадресной рассылки, однако я не знаю подобных средств для широковещания (беспроводное устройство не может знать всех клиентов, которые ему могут понадобиться). достигнуть).

Если вы говорите о специализированной ячеистой сети, то часто вы не можете контролировать это в настройках драйвера.

YLearn
источник
7

Скорость многоадресной передачи должна быть наименьшим общим знаменателем, чтобы все устройства могли ее успешно принимать. Многоадресные кадры не могут быть подтверждены [1], поэтому, если одноранговый узел не может его получить, отправитель не будет знать и не будет повторно передавать кадр. Распространенность потерь на приемнике составляет более 1%. Гораздо более высокие коэффициенты потерь можно ожидать, если на том же канале происходит интенсивный одноадресный трафик.

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

В Linux большинство драйверов mac802.11 должны поддерживать настройку скорости многоадресной рассылки. Не так последнее ядро ​​требует, чтобы это было сделано во время соединения как для IBSS, так и для меша. iwимеет mcast-rateопцию для команды ibss joinи mesh join.

Но если вам выпало довольно новое ядро, и iwоба поддерживают NL80211_CMD_SET_MCAST_RATE, то вы можете изменить его в любое время, и это так же просто, как

iw dev wlanX set mcast_rate 6

установить скорость многоадресной рассылки 6 Мбит / с.

[1] Может быть, они могут, сейчас. Предложено изменение стандарта 802.11 для подтверждения многоадресных кадров: все станции, после успешного приема многоадресного кадра, выберут случайный откат и отправят подтверждение передатчику. Конечно, Acks может столкнуться, поэтому передатчик будет повторно передавать его и разрешать большие откаты, пока все приемники не подтвердят кадр успешно.

BatchyX
источник
1

На самом деле можно изменить скорость передачи данных, увеличив скорость на беспроводной карте. В Linux команда выглядит так:

sudo iwconfig wlan0 скорость 11M

Владимир Лейв
источник
3
iwconfigустарел. Все ioctl, которые он использует, либо взломаны, либо полностью фальсифицированы, либо вообще не используются. Во всяком случае, то, что делает эта конкретная команда, ужасно. И это не то, что вы хотите: это ограничивает доступную скорость, она никак не исправляет ее. И я даже не уверен, что в случае IBSS этот параметр будет существовать долго.
BatchyX
2
Хотя это обеспечивает эффект, позволяющий вашим трансляциям превышать 1 Мбит / с, это не является правильным ответом на поставленный вопрос, а именно: «Почему беспроводное вещание ограничено 1 МБ?» Что вы сделали, так это приказали беспроводной сети работать только на одной скорости передачи данных, и должна быть хотя бы одна базовая / базовая / необходимая скорость передачи данных. В то время как вы получаете более высокий широковещательный трафик, вы теряете способность снижать скорость передачи данных (для поддержания хорошего соединения, когда сигнал слабее) или увеличивать скорости передачи данных (и это также влияет на одноадресный трафик). По сути, это быстрое решение, которое не подходит для реального мира.
YLearn