Чому мій бездротовий зв’язок UDP Broadcast обмежений у розмірі 1 МБ?


10

Я намагаюся реалізувати мережеве кодування через мережеву мережу. Тому мені потрібно надсилати пакети до декількох напрямків, тому я використовую широкомовні пакети. Але я не можу зрозуміти, чому це обмежено в ~ 990 КБ.

Чи потрібно зробити якусь конфігурацію?


Можливо, згадайте, як ви генеруєте пакети та яка це операційна система. Питання може бути більше вдома в
stackoverflow

4
@ytti, для мене це не виглядає як питання про розробку, скоріше це, на мій погляд, дуже чітко питання про основи 802.11. Але ей, я можу помилитися (і як зазначає моя дружина, часто буваю).
YLearn

Будь ласка, додайте: відповідні конфігурації, інформацію про HW / прошивку та, можливо, схему?
Майк Пеннінгтон

Відповіді:


11

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

Зазвичай для найкращого діапазону та максимальної сумісності це значення за замовчуванням на швидкість передачі даних 1 Мбіт / с, хоча в останні кілька років деякі постачальники збільшували цей дефолт.

Деякі постачальники також тепер включають перетворення багатоадресної передачі в одноадресну передачу, відстежуючи клієнтів для багатоадресної передачі з якоюсь формою трансляції багатоадресних повідомлень, однак я не знаю жодних подібних засобів для трансляції (бездротовий пристрій не може знати всіх клієнтів там, які можуть знадобитися досягати).

Якщо ви говорите про спеціальну мережеву мережу, то часто у вас немає контролю над цим у налаштуваннях драйвера.


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, щоб визнати кадри багатоадресної передачі: Усі станції, успішно отримавши кадр багатоадресної передачі, виберуть випадковий баккофф і надішлять ack передавачу. Зрозуміло, що Акс може зіткнутися, тому передавач повторно передасть його та дозволить збільшити кількість перешкод, поки всі приймачі не визнають кадр успішно.


1

Насправді можливо змінити швидкість передачі бітів, примушуючи швидкість на бездротовій карті. У Linux командою є:

sudo iwconfig wlan0 ставка 11М


3
iwconfigзастаріла. Усі йоктли, які він використовує, або зламані, або повністю підроблені, або навіть відсутні. У будь-якому випадку жахливо те, що робить ця команда. І це не те, що ви хочете: це обмежує доступну ставку, вона жодним чином не фіксує її. І я навіть не впевнений, що ця ситуація збережеться надовго у випадку IBSS.
BatchyX

2
Хоча це забезпечує ефект, що дозволяє вашим трансляціям перевищувати 1 Мбіт / с, це не правильна відповідь на поставлене запитання, яке по суті є "Чому бездротовий зв'язок обмежений на 1 МБ?" Що ви зробили, це сказати бездротовій мережі працювати лише з однією швидкістю передачі даних, і вона повинна бути принаймні однією базовою / базовою / необхідною швидкістю передачі даних. У той час як ви отримуєте більший трафік трансляції, ви втрачаєте можливість знижувати швидкість передачі даних (підтримувати хороший зв’язок, коли сигнал слабший) або збільшувати швидкість передачі даних (а це також впливає на одноразовий трафік). По суті, це швидке виправлення, яке не підходить до реального світу.
YLearn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.