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?
wireless
ieee-802.11
linux
bandwidth
throughput
Vladimir Leiv
sumber
sumber
Jawaban:
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.
sumber
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.
iw
memilikimcast-rate
opsi untuk perintahibss join
danmesh join
.Tetapi jika Anda menjalankan kernel yang cukup baru dan
iw
keduanya mendukungNL80211_CMD_SET_MCAST_RATE
, maka Anda dapat mengubahnya kapan saja, dan itu sesederhanauntuk 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.
sumber
Sebenarnya dimungkinkan untuk memodifikasi bit rate dengan memaksa rate pada kartu nirkabel. Di Linux, perintahnya adalah:
sumber
iwconfig
sudah 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.