Mengapa komunikasi nirkabel UDP Broadcast saya dibatasi pada 1MB?

10

Saya mencoba menerapkan Pengodean Jaringan melalui jaringan yang terhubung. Karena itu saya perlu mengirim paket ke beberapa tujuan, ini adalah cara saya menggunakan paket Broadcast. Tapi saya tidak bisa mengerti mengapa ini dibatasi pada ~ 990KBs.

Apakah ada konfigurasi yang harus dilakukan?

Vladimir Leiv
sumber
Mungkin menyebutkan bagaimana Anda menghasilkan paket dan sistem operasi apa itu. Pertanyaan mungkin lebih di rumah di stackoverflow
ytti
4
@ytti, bagi saya ini tidak terdengar seperti pertanyaan dev, melainkan dalam benak saya sangat jelas pertanyaan mendasar 802.11. Tapi, hei, saya bisa salah (dan seperti yang ditunjukkan istri saya, sering kali saya).
YPelajari
Silakan tambahkan: konfigurasi yang relevan, info HW / firmware, dan mungkin diagram?
Mike Pennington

Jawaban:

11

Dalam nirkabel 802.11 (yang saya anggap sebagai kasus Anda), biasanya frame broadcast / multicast (dan juga banyak frame manajemen) ditransmisikan pada laju data terendah base / basic / required (istilah bervariasi oleh vendor). Ini terpisah dari kecepatan data yang didukung.

Biasanya, untuk kisaran terbaik dan kompatibilitas maksimum, ini default ke data rate 1Mbps, meskipun dalam beberapa tahun terakhir, beberapa vendor telah meningkatkan default ini.

Beberapa vendor juga sekarang menyertakan multicast-to-unicast konversi melacak klien multicast dengan beberapa bentuk multicast snooping, namun saya tahu tidak ada cara yang sama untuk siaran (perangkat nirkabel tidak dapat mengetahui semua klien di luar sana yang mungkin perlu untuk mencapai).

Jika Anda berbicara tentang jaringan mesh ad-hoc, maka seringkali Anda tidak memiliki kendali atas ini dalam pengaturan driver.

YPelajari
sumber
7

Multicast rate harus menjadi common denominator terendah sehingga semua perangkat dapat menerimanya dengan sukses. Frame multicast tidak dapat diakui [1], jadi jika rekan gagal menerimanya, pengirim tidak akan tahu, dan tidak akan mengirim ulang frame. Memiliki tingkat kehilangan lebih dari 1% per penerima adalah hal biasa. Tingkat kehilangan yang jauh lebih tinggi dapat diharapkan jika ada lalu lintas unicast yang berat terjadi pada saluran yang sama.

Jika Anda meningkatkan tingkat multicast dasar, Anda juga akan meningkatkan tingkat kerugian. Tetapi karena Anda harus menggabungkan paket asli dan memperkenalkan redundansi untuk mengkompensasi tingkat kehilangan semata-mata, jaringan Anda harus dapat bertahan hidup itu. Perlu diingat bahwa kerangka manajemen multicast 802.11 (termasuk suar) tidak dirancang untuk mendukung tingkat kehilangan tinggi.

Di Linux, sebagian besar driver mac802.11 harus mendukung pengaturan tingkat multicast. Tidak begitu kernel baru-baru ini mengharuskan ini dilakukan pada waktu bergabung untuk IBSS dan mesh. iwmemiliki mcast-rateopsi untuk perintah ibss joindan mesh join.

Tetapi jika Anda menjalankan kernel yang cukup baru dan iwkeduanya mendukung NL80211_CMD_SET_MCAST_RATE, maka Anda dapat mengubahnya kapan saja, dan itu sesederhana

iw dev wlanX set mcast_rate 6

untuk menetapkan tingkat multicast 6Mbps.

[1] Mungkin mereka bisa, sekarang. Ada modifikasi yang diusulkan untuk standar 802.11 untuk mengakui frame multicast: Semua stasiun, setelah menerima frame multicast berhasil, akan memilih backoff acak dan mengirim ack ke pemancar. Acks bisa bertabrakan tentu saja, sehingga pemancar akan mentransmisikan ulang dan memungkinkan backoffs yang lebih besar sampai semua penerima telah mengakui frame dengan sukses.

BatchyX
sumber
1

Sebenarnya dimungkinkan untuk memodifikasi bit rate dengan memaksa rate pada kartu nirkabel. Di Linux, perintahnya adalah:

sudo iwconfig wlan0 rate 11M

Vladimir Leiv
sumber
3
iwconfigsudah usang. Semua ioctl yang digunakannya diretas atau dipalsukan sepenuhnya, atau bahkan tanpa operasi. Bagaimanapun, apa yang dilakukan perintah khusus ini mengerikan. Dan bukan apa yang Anda inginkan: ini membatasi tingkat yang tersedia, itu tidak memperbaikinya dengan cara apa pun. Dan saya bahkan tidak yakin bahwa pengaturan ini akan bertahan lama jika terjadi IBSS.
BatchyX
2
Meskipun ini memberikan efek memungkinkan siaran Anda melebihi 1Mbps, itu bukan jawaban yang benar untuk pertanyaan yang diajukan, yang pada dasarnya, "Mengapa Broadcast nirkabel dibatasi pada 1MB?" Apa yang telah Anda lakukan adalah memberi tahu nirkabel untuk menjalankan hanya pada satu data rate, dan harus ada setidaknya satu base / basic / data rate yang diperlukan. Saat Anda mendapatkan lalu lintas siaran yang lebih tinggi, Anda kehilangan kemampuan untuk menurunkan kecepatan data (untuk menjaga koneksi yang baik ketika sinyal lebih lemah) atau untuk meningkatkan kecepatan data (dan ini berdampak pada lalu lintas unicast juga). Intinya, ini adalah perbaikan cepat yang tidak cocok untuk dunia nyata.
YPelajari