Segala sesuatu yang ingin Anda ketahui tentang pengujian adaptor Wi-Fi, tetapi takut untuk bertanya

gambar

Suatu hari perusahaan kami menandai 20 tahun. Selama 15 tahun terakhir, dari 20 ini, kami telah membuat program untuk menganalisis jaringan Wi-Fi. Bagian dari pekerjaan ini adalah pengembangan driver untuk adapter Wi-Fi, dan dalam artikel ini saya akan menjelaskan bagaimana tim pengembangan menguji produk dari tenaga kerjanya, dan bagaimana proses pengujian telah berkembang selama 15 tahun terakhir bersama dengan evolusi standar dan adapter. Akan ada banyak gambar (apa yang disebut "geek porn") dan rincian teknis.

Mengapa menulis driver khusus?

Saat Anda membuat perangkat lunak untuk menganalisis jaringan Wi-Fi (dan kami membuat program untuk memeriksa dan memodelkan jaringan dan penganalisa paket Wi-Fi), Anda harus menerima paket entah bagaimana membaca (menangkap, mengendus, mengendus, menangkap ... - semuanya sinonim) Wi-Fi dipertukarkan antara titik akses terdekat dan klien. Anda dapat melakukan ini di bawah Windows hanya dengan membuat satu set driver Anda sendiri untuk chipset tertentu.

Apa yang salah dengan driver standar yang biasa dilakukan oleh produsen adaptor? Dari sudut pandang pengguna rata-rata, semuanya baik-baik saja dengan mereka. Hanya ada masalah kecil - Anda tidak dapat menggunakannya untuk membaca paket Wi-Fi dalam mode pengamat pasif. Dan tanpa ini, Anda tidak dapat membuat perangkat lunak untuk analisis jaringan. Secara umum, ini adalah topik besar untuk artikel terpisah (dan saya akan menulisnya tahun ini). Jika Anda tertarik sekarang, maka saya akan memberi tahu Anda secara singkat di paragraf berikutnya, dan jika topik pemrograman tidak dekat dengan Anda, lewati saja.

Sekitar sepuluh tahun yang lalu, di bawah Windows, API baru muncul untuk membaca secara pasif paket Wi-Fi, yang disebut mode monitor. Anda selalu bisa "mengendus" paket di Windows, dan tidak ada yang mengganggu Anda untuk menjalankan Wireshark dan melihat paket yang datang melalui adaptor nirkabel Anda, tetapi masalahnya adalah Anda hanya akan melihat paket dan hanya paket data. Semua informasi lain (paket orang lain, paket jenis Beacon, informasi tentang tingkat sinyal dalam paket dan laju datanya, dll.) Tidak tersedia. API baru dirancang untuk mengatasi masalah ini sekali dan untuk semua. Tetapi dia tidak memutuskan: hampir tidak ada chipset dari vendor utama yang mendukungnya secara normal, dan API itu sendiri sudah ketinggalan zaman pada saat kelahiran dan Microsoft tidak berkembang. Singkatnya, bencana total bersamanya. Dan jika Anda menemukan perangkat lunak untuk menganalisis jaringan Wi-Fi di Windows, penjual yang mengklaim bahwa ia mendukung setiap atau hampir semua adapter Wi-Fi dan tidak memerlukan penggantian driver - Anda pasti mendapatkan apa yang mereka sebut minyak ular dalam bahasa Inggris.

Menulis driver khusus untuk memonitor Wi-Fi itu sulit, panjang dan mahal. Jumlah perusahaan yang melakukan ini dapat dihitung dengan menggunakan jari satu tangan.

Mengapa menguji sekelompok driver adaptor

Driver adalah program untuk berinteraksi dengan perangkat keras (hardware) khusus untuk perangkat keras tertentu. Dalam proses pengembangan driver, programmer harus memastikan bahwa driver dengan benar menangkap paket, mengganti saluran frekuensi dan jangkauan, merespons dengan benar sistem hibernasi, menghitung level sinyal dengan benar, dan melakukan banyak hal yang tanpanya mustahil untuk menganalisis jaringan Wi-Fi.

Tampaknya ini adalah tugas yang cukup dimengerti dan sederhana: Saya menghubungkan adaptor ke komputer, dan kemudian mengembangkan dan menguji driver Anda sebanyak yang Anda inginkan. Pada kenyataannya, ada banyak nuansa yang akan kita bicarakan.

Apa yang seharusnya menjadi platform pengujian

Untuk menguji driver secara teknologi, Anda memerlukan test bed tertentu, yaitu platform untuk bekerja dengan berbagai perangkat keras, yang harus memenuhi beberapa persyaratan:

  • Pemutusan sederhana satu dan koneksi adaptor lain.
  • Kemampuan untuk terhubung ke antarmuka komputer modern.
  • Gangguan rendah dari komponen elektronik.
  • Mobilitas. Selama pengujian, Anda harus dapat memindahkan adaptor Wi-Fi, mengubah orientasi antenanya di ruang angkasa dan mengubah jarak ke titik akses (jika tidak, Anda tidak akan dapat mengkalibrasi level sinyal dengan benar).
  • Kemampuan untuk menghubungkan banyak adaptor secara bersamaan (untuk USB).

Selain itu, akan sangat berguna untuk melihat cara kerja driver standar, mis. lihat komunikasi driver adaptor dengan komputer di tingkat bus, tetapi untuk sekarang kita mengabaikan topik ini.

Arkeologi dan modernitas

Sekarang saatnya berbicara langsung tentang besi. Ingat masa lalu, terkadang sangat kuno, dan diskusikan yang baru.

2003

Kami mulai melakukan perangkat lunak Wi-Fi pada tahun 2003 (sebelum itu, kami hanya membuat perangkat lunak untuk jaringan kabel). Awal nol adalah saat Wi-Fi baru saja memulai jalannya. Yang pertama dari keluarga standar, 802.11, diadopsi kembali pada tahun 1997. Itu diikuti oleh 802.11b dan 802.11a pada tahun 1999, tetapi teknologi ini pergi ke banyak orang kemudian. Sebagian besar laptop dijual tanpa Wi-Fi bawaan, tetapi Anda dapat membeli sendiri adaptornya: eksternal, terhubung ke port CardBus (PCMCIA) untuk laptop, atau standar PCI internal. Sebagian kecil laptop kelas atas juga dijual dengan adaptor miniPCI bawaan.

Langkah pertama kami adalah mendukung 802.11b adapter CardBus. Itu adalah masa-masa yang diberkati: hampir semua adapter ini ada di chipset Intersil Prism, kode sumber driver tersedia gratis untuk semua orang setelah menandatangani NDA, dan kecepatan transfer data maksimum pada lapisan fisik adalah 11 Mbps, mis. sangat mungkin untuk mengirimkan data dengan kecepatan tidak lebih dari 1 megabyte per detik dalam kondisi ideal.


CardBus Wi-Fi adapter dengan antena eksternal

CardBus Wi-Fi adapter dengan antena eksternal

Saya harus mengatakan bahwa adaptor bekerja dengan baik, memiliki sensitivitas yang baik, terutama jika mungkin untuk menghubungkan antena eksternal. Semuanya sangat sederhana dan tidak terbantahkan dengan platform pengujian: hampir semua laptop memiliki satu atau dua port CardBus.

Laptop vintage dengan port PCMCIA
Apakah Anda masih ingat mamut ini 3-4 kilogram?

Yang tersisa bagi kami adalah memasukkan adaptor ke port eksternal.

Adaptor CardBus dan slot yang sesuai dari mesin kuno
Adaptor CardBus dan slot yang sesuai dari mesin kuno

2007

Jauh dari miniatur adapter CardBus sedang digantikan oleh standar ExpressCard yang lebih elegan pada bus PCI Express. 34 mm Wi-Fi ExpressCard adapter muncul di pasaran, dengan sudah 802.11g dan 802.11a. Kecepatan meningkat, skema modulasi baru diterapkan.

ExpressCard Wi-Fi Adapters
ExpressCard Wi-Fi Adapters

ExpressCard, seperti CardBus, cukup nyaman untuk pengujian. Kartu mudah diganti, laptop mobile, tidak ada kekurangan model dengan port ExpressCard di pasaran.

Desktop juga tidak diam, pada tahun 2007 standar PCI Express 2.0 diadopsi, jadi adaptor PCIe dengan antena eksternal sering muncul di dalam desktop. Tidak nyaman untuk mengujinya (lepaskan penutup case, ganti adaptor PCIe, kembalikan semuanya ke tempatnya).

2010

Kami sedang memulai dukungan untuk adaptor USB 2.0 Wi-Fi. Ini adalah faktor bentuk yang sangat nyaman untuk pengujian dan untuk digunakan oleh pengguna akhir. Yang Anda butuhkan hanyalah port USB, atau beberapa port jika Anda menggunakan beberapa adapter.

Adaptor Proxim ORiNOCO 8494 802.11n yang legendaris hadir di arena, berdasarkan pada chipset Komunikasi Atheros, yang belum diserap oleh Qualcomm. Adaptor ini digunakan oleh semua program profesional untuk survei situs Wi-Fi. Ia memiliki sensitivitas yang sangat baik.

Adaptor USB legendaris Proxim ORiNOCO 8494
Adaptor USB legendaris Proxim ORiNOCO 8494

Kemampuan untuk menghubungkan beberapa adapter sekaligus adalah nilai tambah yang besar, ini mempercepat waktu pemindaian saluran ketika datang ke program untuk survei lokasi, dan memungkinkan, misalnya, untuk menganalisis perilaku klien ketika roaming ketika datang ke penganalisa paket.

Namun, jangan lupa bahwa adaptor USB Wi-Fi biasa mengkonsumsi dari 200 hingga 300 mA, dan jika Anda menggunakan hub USB pasif dengan memasukkan tiga adapter ke dalamnya, Anda dapat dengan mudah melampaui batas untuk USB 2.0 500 mA .

PortaPow meter untuk menentukan konsumsi adaptor saat ini
PortaPow meter untuk menentukan konsumsi adaptor saat ini

Hampir tidak ada gangguan RF dari hub USB 2.0, dan selain pertanyaan tentang konsumsi saat ini, satu-satunya hal yang perlu Anda perhatikan adalah lokasi port pada hub. Port harus ditempatkan sehingga adapter dapat dimasukkan ke port tetangga pada saat yang sama (jika port terlalu dekat, memasukkan adapter tidak akan berfungsi).

Masalah berikutnya pada 2010 bagi kami adalah munculnya adapter MiniPCIe, yang menggantikan MiniPCI di laptop. Kami mulai dengan membongkar laptop untuk menguji adaptor baru. Betapa sakitnya itu - mungkin tidak perlu diceritakan. Mengganti adaptor di laptop adalah proses yang cepat dan melelahkan, dan Anda dapat menemukan banyak jebakan. Pertama, jika ada adaptor dengan dua antena di adaptor "asli" laptop, dan kami ingin menguji model dengan tiga antena, tidak ada solusi normal. Kedua, beberapa produsen laptop terlibat dalam perusakan langsung, memasang secara kaku di BIOS model-model adaptor yang didukung laptop. Dan jika adaptor baru tidak termasuk dalam daftar putih, maka itu tidak dikenali. Ketiga, Anda mungkin kurang beruntung dan merusak sesuatu di dalamnya.

Pada titik tertentu, kami harus menggunakan desktop dengan papan adaptor PCIe <-> MiniPCIe. Tetapi solusinya tidak sempurna: mobilitas perangkat masih penting. Orang-orang Taiwan dari Bplus Technology , yang, di antara bermacam-macam solusi debug yang sangat menarik, menawarkan papan yang sangat bagus, menemukan solusi sempurna:

Papan uji dengan konektor MiniPCIe
Papan uji dengan plug-in MiniPCIe via ExpressCard

Dewan ini hanyalah penyelamat selama bertahun-tahun. Test bed ternyata hebat: adaptor dapat diubah dalam dua akun, mobilitas dipertahankan, tidak ada gangguan, dan papan itu sendiri cukup murah. Yang Anda butuhkan hanyalah laptop dengan slot ExpressCard, tetapi pada tahun-tahun itu tidak masalah.

Papan terhubung
Papan tersambung, adaptor ExpressCard dimasukkan ke laptop

2013

Pada 2013, Wi-Fi telah sepenuhnya menaklukkan dunia. Semua laptop dilengkapi dengan modul Wi-Fi terintegrasi, dan modul-modul ini, setelah miniaturisasi universal, mulai dirilis dalam faktor bentuk baru, M.2 (alias NGFF). Kartu M.2 lebih kecil dari MiniPCIe biasa dan memiliki konektor yang berbeda.

Papan MiniPCIe, modul MiniPCIe, modul M.2
Papan MiniPCIe, modul MiniPCIe, modul M.2

Saya ingin terus menggunakan kit pengujian kami yang sangat baik, dan Bplus Technologies datang untuk menyelamatkan lagi. Mereka merilis adaptor MiniPCIe <-> M.2, dan kami dengan mudah membuat sandwich yang tebal:

“Sandwich” dari board MiniPCIe, MiniPCIe <-> adaptor M.2, adaptor M.2 Wi-Fi dan antena omni yang terhubung dengannya
“Sandwich” dari board MiniPCIe, MiniPCIe <-> adaptor M.2, adaptor M.2 Wi-Fi dan antena omni yang terhubung dengannya

Hampir tidak ada laptop dengan ExpressCard yang tersisa di pasaran, tetapi kami memiliki stok mesin lama seperti itu, walaupun sudah jelas bahwa kami akan segera harus mencari solusi baru. Tetapi lebih lanjut tentang itu di bawah.

2014

Pada Desember 2013, standar 802.11ac diratifikasi, dan pada 2014, banyak adaptor 802.11ac muncul di pasaran, dengan USB 3.0 sudah. Mengapa Adaptor USB 3.0? Karena kecepatan bus 2.0 tidak cukup. Adaptor 802.11n tiga spasial (3 aliran spasial) dapat memberikan kecepatan maksimum 450 Mbps pada tingkat fisik, tetapi adaptor 802.11ac sudah dapat memberikan 867 Mbps (dua aliran, lebar saluran 80 MHz) atau 1300 Mbps (tiga aliran, lebar saluran 80 MHz) dan bahkan dalam teori 2340 Mbps (tiga aliran, lebar saluran 160 MHz, hanya tidak ada di alam).

Satu-satunya masalah dengan USB 3.0 adalah bahwa perangkat USB 3.0 (kabel, konektor, sirkuit) mampu menghasilkan kebisingan frekuensi radio broadband yang cukup kuat, yang membuat adaptor jauh lebih sensitif ketika rasio sinyal-ke-noise menurun. Dengan tidak adanya pelindung yang baik, efek ini dapat dengan mudah diamati. Tangkapan layar di bawah ini diambil menggunakan TamoGraph Site Survey dan penganalisa spektrum Wi-Spy. Tangkapan layar menunjukkan gambar khas operasi beberapa jaringan dalam rentang 2,4 GHz (amplitudo di bagian atas dan apa yang disebut tampilan air terjun di bagian bawah). Dapat dilihat bahwa ambang kebisingan sekitar pada tingkat –95 dBm.

Tidak ada gangguan hub USB
Tidak ada gangguan hub USB

Sekarang mari kita coba mendekatkan Wi-Spy ke hub atau drive USB 3.0 eksternal. Gambar berubah secara radikal:

Gangguan kuat dari hub USB
Gangguan kuat dari hub USB

Di dekat hub ada kebisingan yang sangat baik, sekitar -77 dBm. Jika kita memperhitungkan bahwa rasio sinyal-to-noise minimum di mana Wi-Fi dapat bekerja entah bagaimana adalah sekitar 4 dB, maka dengan gambar ini adaptor tidak akan dapat terhubung ke jaringan jika sinyal dari titik akses di bawah -73 dBm. Untuk mengatasi masalah ini, Anda harus mencoba hub yang berbeda atau menggunakan kabel USB tambahan yang melepaskan adaptor dari sumber kebisingan RF.

Anda mungkin bertanya, bagaimana adaptor USB 3.0 hidup dengan gangguan seperti itu? Mereka menjalani kehidupan yang sangat menarik. Ambil, misalnya, adaptor berbasis pada chipset Realtek: ketika adaptor tidak terkait, ia bekerja dalam mode USB 2.0, memindai saluran dan menemukan jaringan terdekat. Ketika adaptor terhubung ke jaringan, layanan sistem Windows khusus menginisialisasi ulang perangkat, beralih ke mode USB 3.0. Dalam mode ini, adaptor tetap sampai terlepas, setelah itu kembali ke mode USB 2.0. Ini adalah tarian gila.

2018

Waktu terus berjalan, dan jika tidak ada masalah baru dengan pengujian adaptor USB (konektor USB Type-C tidak dihitung, adaptor sen menyelesaikan masalah), maka krisis sedang terjadi untuk MiniPCIe dan M.2. Pindah dengan banyak "laptop dengan ExpressCard + MiniPCIe ExpressCard" tidak tertahankan. Pertama, laptop lama tidak lagi menarik Windows 10. Kedua, mereka bisa mati kapan saja, membuat kami bingung, karena saya tidak merasa ingin mencari laptop pengganti di pasar loak.

Kami perlu menemukan solusi baru. Mobile, lebih disukai di bawah Windows dan macOS, dengan antarmuka modern untuk menghubungkan. Secara alami, dengan kemampuan Direct Memory Access (DMA). Cara termudah adalah dengan memasukkan papan adaptor PCIe <-> MiniPCIe ke desktop, tetapi kemudian Anda harus menyerah pada mobilitas. Membawa desktop di kantor Anda sangat baik untuk kesehatan Anda, tetapi tidak terlalu produktif. Selain itu, kita sekarang umumnya beralih dari desktop ke laptop dan Intel NUC; desktop sebagian besar telah kehilangan maknanya dalam beberapa tahun terakhir.

Jadi apa yang tersisa untuk kita? Tentu saja, bukan USB, karena, sayangnya, Anda tidak dapat membuat PCIe <-> USB bridge. Kemudian Thunderbolt: ada di laptop baru dan NUC, dan itu harus membuat PCIe <-> jembatan Thunderbolt mungkin. Nah, arah pencarian adalah perangkat untuk menghubungkan adaptor PCIe melalui Thunderbolt.

Kami mencari, mencari, dan menemukan yang tampan: Startech Thunderbolt 3 PCIe Expansion Chassis . Tentu saja, pengembangnya, bahkan dalam fantasi yang paling ganas, tidak mungkin berpikir bahwa seseorang ingin memasukkan kartu Wi-Fi ke dalam sasis ini. Situs ini sebenarnya menggambarkan semua fantasi yang dikunjungi pengembang: “Sasis PCIe Thunderbolt 3 memudahkan untuk memperluas sistem Anda dengan kemampuan yang Anda butuhkan untuk bekerja pada produktivitas puncak. "Anda dapat menambahkan banyak jenis kartu PCI Express, seperti PCIe USB 3.1 / 3.0 / 2.0 dan USB-C, SSD, jaringan, eSATA, FireWire atau kartu video capture." Secara teoritis, Wi-Fi harus lepas landas. Praktis ... yah, Anda tahu caranya praktis. Jika suatu komponen setidaknya memiliki peluang sekecil apa pun untuk tidak menghasilkan uang dengan alasan apa pun (driver, firmware, sirkuit mikro), maka komponen itu tidak akan berfungsi.

Kami menulis dukungan. Dapat dimengerti bahwa dukungannya sama sekali tidak siap untuk masalah pada Wi-Fi. Mereka mengatakan mereka mencoba adaptor Ethernet, tetapi Wi-Fi tidak pernah melakukannya. Baiklah, kami akan mencoba untuk mereka. Paket tiba dengan cepat, dan kami hanya bisa melepas kasing eksternal dan memasukkan PCIe-board dengan adaptor ke M.2.

gambar
Di dalam Startech TB31PCIEX16

Masukkan adaptor Wi-Fi ke dalam adaptor dan nyalakan. Selanjutnya, sambungkan antena ke papan (melalui konektor mikroskopis, Anda tidak akan dapat melakukannya tanpa kaca pembesar), kencangkan antena ke braket papan PCIe untuk mengeluarkannya, dan sambungkan seluruh unit ke daya dan port Thunderbolt laptop.

gambar
Startech TB31PCIEX16 Dirakit

Dan itu berhasil. Tidak segera, tentu saja potongan besi seperti itu biasanya tidak langsung menyerah. Saya harus memperbarui firmware pengontrol Thunderbolt di komputer terlebih dahulu. Tapi kemudian semuanya berjalan seperti jarum jam.

Masa depan

Kami erat mengikuti perkembangan industri. Antarmuka berikutnya adalah M.2 CNVio, yang digunakan, misalnya, pada adapter Intel 9560 terbaru. Standar Wi-Fi berikutnya adalah 802.11ax. Kami akan menyelesaikan masalah saat tersedia.

Source: https://habr.com/ru/post/id420415/


All Articles