شبکه های بی سیم درسالهای اخیر شاهد رشد فزاینده ی تعداد کاربران و در نتیجه سرمایه گذاری شرکتهای کامپیوتری و مخابراتی بوده اند. اگرچه این شبکه ها همگی از

عنوان رسانه ی انتقال استفاده می کنند ، اما از لحاظ تنوع تکنولوژی و کاربرد بسیار متنوعند. مثلا شبکه های GSM که همان شبکه های سلولی تلفن همراه هستند نوعی از شبکه های بی سیم محسوب میشوند. نمونه های دیگر از این تکنولوژی که بیشتر به شبکه های کامپوتری مربوط می شوند Wi Fi (استاندارد IEEE ۸۰۲.۱۱) شبکه های WiMax (استاندارد IEEE ۸۰۲.۱۶) و شبکه های Bluetooth ( استاندارد IEEE ۸۰۲.۱۵) هستند.

این استانداردها همگی مشخصات و مکانیزمهای لایه اول (Physical layer)وقسمتی از لایه دوم مدل OSI را در این شبکه ها تعریف می کنند. در این مقاله من بر رویWi Fi که در حال حاضریکی از داغترین موضوعات مورد علاقه کاربران شبکه های کامپیوتری است ، بحث خواهم کرد.

امروزه تقریبا همه مدل های کامپوترهای نوت بوک همراه با کارت شبکه بی سیم عرضه میشوند.کارتهای شبکه بی سیم PCI نیز با قیمت مناسبی در بازار یافت میشوند.حتی شما برای PDA خود میتوانید کارت بی سیم خریداری کنید.

به علاوه سادگی راه اندازی و به کارگیری چنین شبکه هایی باعث محبوبیت آنها در بین طیف وسیعی از کاربران خانگی و نیز شرکتها شده است . مثلا یک اداره میتواند با این تکنولوژی دسترسی کامپیوترهای موجود به شبکه محلی اداره را بدون نیاز به کابل کشی فراهم کند در عین حال که جابجایی راحت و بی دردسر کامیوترها حتی بدون قطع اتصال آنها از شبکه (مثل موقعی که با یک نوت بوک متصل هستید) امکان پذیر است.امروزه خیلی از کافه ها و رستوران ها سرویس اینترنت بی سیم مجانی به مشتریان خود عرضه میکنند.

کاربران خانگی با استفاده از سخت افزارهای ارزان قیمت، شبکه بی سیم خود را بر پا میکنند تا بتوانند بدون نیاز به کابل کشی دسترسی همزمان چند کامپیوتر موجود در خانه را به اینترنتی که از طریق ADSL دریافت می کنند فراهم کنند یا حتی اتصال اینترنت خود را با همسایه ها به اشتراک بگذارند تا هزینه دسترسی برای آنها کمتر شود.

استاندارد IEEE ۸۰۲.۱۱ که بیشتر با نام WiFi شناخته می شود در سال ۱۹۹۷ توسط IEEE تصویب شد. ازآن زمان تا کنون تغییرات و تصحیحات فراوانی برای این استاندارد پیشنهاد شده که بعضی از آنها تصویب شده و بعضی هنوز در حال بررسی و تکمیل اند. به طور کلی در این استاندارد اتصال کامپیوترها به بخش باسیم (Wired) شبکه محلی از طریق وسیله ای به نام Access Point امکان پذیر میگردد.

در شکل ۱ نمونه ای از این نوع شبکه را مشاهده میکنید.در حقیقت Access Point رابط اتصال کامپیوترها به شبکه باسیم محسوب میشود. البته شما میتوانید بدون نیاز به Access Point دو یا تعداد بیشتری از کامپیوتر های مجهز به کارت شبکه بی سیم (Wireless Network Interface Card) را مستقیما به هم متصل کنید تا مثلا بتوانید فایلهایی را بین آنها منتقل کنید. بدیهی است که در این حالت کامپیوترها امکان دسترسی به سایرکامپیوترهای موجود در بخش باسیم شبکه را ندارند. (چون Access Point ای در کار نیست) به این نوع شبکه Ad Hoc گفته می شود.

این مقدمه فقط جهت آشنا کردن شما با شبکه های محلی بی سیم ذکر شد. خوشبختانه منابع متعددی در این مورد بر روی اینترنت و در سطوح مختلف موجودند که در صورتی که علاقمند باشید می توانید به آنها مراجعه کنید.

شکل ۱- نمونه‌ای از یک شبکه محلی بی‌سیم
شکل ۱- نمونه‌ای از یک شبکه محلی بی‌سیم

لینوکس بر روی کامپیوترهای شخصی

پشتیبانی لینوکس از شبکه های ۸۰۲.۱۱ از هسته ورژن ۲.۲.۱۴ شروع شد. تا آن زمان فقط یکی دو تولید کننده درایور لینوکس برای سخت افزارهایشان ارائه می کردند. چگونگی ارتباط برنامه کاربر با درایور به شکل واحدی نبود و برنامه ی استانداردی برای پیکربندی و راه اندازی این سخت افزار برای لینوکس وجود نداشت.

Jean Tourrilhes یکی از محققان آزمایشگاه های HP که در این میان نقش بسیار فعالی داشته و هنوز هم وب سایت او [۱] یکی از معتبر ترین مراجع در موضوعات مختلف مربوط به لینوکس در شبکه های بی سیم است ، در پروژه ای به نام Wireless Extensions شروع به تعریف و توسعه استانداردهایی برای ارتباط برنامه های کاربردی با درایور کارت شبکه بی سیم و سیستم عامل کرد. اگر شما با برنامه نویسی سطح پایین در لینوکس آشنا باشید حتما با فراخوانی سیستم ioctl آشنا هستید که جزء فراخوانی های سیستم در لینوکس می باشد و با آن برنامه نویس فرامین خاص هر سخت افزار را به درایور آن سخت افزار فرستاده و پارامترهای مختلفی را برای کنترل چگونگی عملکرد سخت افزار به آن ارسال می کند.

Tourrilhes با تعریف مجموعه ای از ماکروهای مورد نیاز این دستور و تعریف ساختارهای داده ای مورد نیاز این تابع (آنچه که در زبان C به آنstructure می گوییم) نویسندگان درایور برای کارت های شبکه بی سیم را تشویق کرد تا مجوعه ای از قابلیت های استاندارد را در درایورهای خود بگنجانند. به این ترتیب برنامه های کاربردی برای به کارگیری این قابلیت ها و تنظیمات نیازی به دستورات خاص و مجزای هر نوع کارت ندارند و برنامه قادر به کارکردن با هرنوع کارت و درایور خاص آن است. اگر در مورد اینکه چه قابلیتهایی توسط Wireless Extensions تعریف شده کنکجاو هستید نگاهی به محتویات فایل wireless.h بکنید [۲].

البته فراموش نکنید که ممکن است همه ی امکاناتی که در این فایل مشاهده می کنید توسط درایور پیاده سازی نشده باشد. یکی دیگر از کارهای Tourrilhes این بود که مجموعه ای از برنامه های کاربردی مفید برای کار با کارت شبکه بی سیم نوشت که اکنون تقریبا در تمام توزیع های لینوکس به عنوان یک پکیج استاندارد وجود دارد و به شکل پیش فرض نصب می شود. این مجموعه شامل iwconfig, iwlist, iwspy, iwevent ,iwprev, iwgetid می شود که همگی برنامه های خط فرمان هستند.

برنامه iwconfig مهمترین آنهاست که با استفاده از آن میتوانید پارامترهای مختلف کارت را مانند کانال فرکانسی یا Access Point ای که می خواهید به آن متصل شوید، تنظیم کنید.

شکل۲ روتر بی‌سیم Linksys مدل WRT۵۴GL
شکل۲ روتر بی‌سیم Linksys مدل WRT۵۴GL

لینوکس بر روی سخت افزارهای شبکه

لینوکس امروزه به عنوان یکی از پرکاربردترین سیستم عامل های توکار (Embedded) برای تجهزات الکترونیکی مختلف از تلفن های همراه و تلویزیون ها تا سوییچ ها ی مخابراتی کاربرد دارد[۳]. بعضی از Access Point های موجود در بازار نیز از لینوکس به عنوان سیسم عامل خود استفاده می کنند. به عنوان مثال سری WRT۵۴GL از شرکت Linksys که در شکل ۲ مشاهده می کنید به شما این امکان را می دهد که Firmware نصب شده بر روی آنرا با لینوکس سفارشی شده خودتان جایگزین کنید.

جالبتر آنکه توزیع های خاصی برای این منظور ایجاد شده اند که DD WRT, Alchemy, OpenWRT معروفترین آنها هستند. DD WRT که گزینه مجبوب من نیز هست به شما این امکان را می دهد که روتر بی سیم خود را از یک دستگاه با کاربردهای خانگی به یک سیستم پرقدرت با قابلیتهای فراوان تبدیل کنید. چیزی که برای خرید آن باید ۶ یا ۷ برابرقیمت این روتر بی سیم میپرداختید. [۴]

جالبتر آنکه شما با استفاده از سخت افزار های قدیمی و ازران قیمت با داشتن یک کارت شبکه می توانید access point خود را با استفاده از لینوکس بسازید. به این ترتیب با کم ترین هزینه می توانید صاحب یک access point با قابلیتهای فراوان شوید.

سخت افزار و درایورها

کارت های شبکه بی سیم متنوعی در بازار وجود دارند. اگر قصد خرید کارت شبکه بی سیم برای کامپیوتر خود دارید و می خواهید از آن در محیط لینوکس هم استفاده کنید بهترست پیش از خرید از وجود درایور برای آن کارت مطمئن شوید. اگرچه قسمت اصلی همه این کارت ها چیپ ست موجود روی آنها است.

به همین خاطر زمانی که شما بدانید مثلا درایوری برای مدل خاصی از چیپ ست Atheros موجود هست می توانید هر کارت شبکه بی سیم دارای این چیپ ست را خریداری کنید. در حال حاضر تعداد تولید کنندگان عمده این چیپ ست ها حدودا ۱۰ تا است که معروفترین آنها عبارتند از: Intel, Intersil, Agere, Marvell , Atheros, Broadcom, Lucent, Atmel که چگونگی پیاده سازی مکانیزم های مورد نیاز استاندارد در انها متفاوت است. بعضی بیشتر بر پایه سخت افزارر کار می کنند و بیشتر اعمال در آنها توسط مدارهای موجود در چیپ ست انجام میشود. مثل آنچه در چیپ ست های اینتل می بینیم. برخی هم بیشتر بر پایه ثابت افزار (Firmware) هستند. مانند Atheros.

مدتی پیش که Slackware ۱۱ را بر روی لپ تاپ خود نصب کردم متوجه شدم که درایور کارت شبکه بی سیم من که یک اینتل ipw۲۲۰۰ است به شکل ماژول بارگذاری شده اما من همچنان قادر به راه اندازی کارت بی سیم نیستم. وقتی دنبال فایل های باینری Firmware در جایی که انتظار وجود انها را داشتم گشتم متوجه شدم که اصلا این فایل ها همراه با لینوکس Slackwareتوزیع نشده اند که علت آنهم اوپن سورس نبودن آنهاست.

قضیه اینجاست که مطابق مقررات FCC (سازمانی که مقررات ارتباط رادیویی را در آمریکا وضع و نظارت می کند) دستگاه هایی که در باند های فرکانسی آزاد (مثل باند فرکانسی مورد استفاده شبکه های محلی بی سیم یا فرهای مایکروویو) کار می کنند باید از حد اکثر توان خروجی مشخصی برخوردار باشند. در بعضی از کارت های شبکه بی سیم (مانند کارت های مبتنی بر چیپ ست Atheros) این توان خروجی توسط Firmware تنظیم می شود.

نویسنده: امیر حسین ملک پور a.malekpour