شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

تصویر simulation-iot-lorawan-networks-ns3_7232_1 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

شبیه سازی و تحلیل شبکه های IoT LoRaWAN با NS3

در این مقاله آموزشی نحوه نصب و اجرای شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3 را با شما علاقه مندان به مباحث شبکه به اشتراک می گذاریم که در ادامه توضیحاتی از معرفی پروتکل LoRa و شبکه LoRaWAN ارائه شده و آموزش نصب و اجرای یک مثال نمونه در محیط NS3 قرار داده شده است.

پروتکل LoRa

پروتکل LoRa یا long range یک تکنیک انحصاری شبکه گسترده کم توان است که بر اساس روش های مدولاسیون طیف گسترده عمل می کند و برگرفته شده از فناوری CSS یا chirp spread spectrum می باشد. پروتکل LoRa انتقال دوربرد با مصرف انرژی کم را فعال می کند و لایه فیزیکی را پوشش می دهد، در حالی که سایر فناوری ها و پروتکل ها مانند شبکه وسیع برد بلند (LoRaWAN) لایه های بالایی را پوشش می دهند[1]. یکی از پارامترهای کلیدی مدولاسیون LoRa ضریب انتشار (SF) است. این مقدار که از 7 تا 12 متغیر است، میزان پخش بسته را در زمان نشان می دهد. انتقال هایی که از SF پایین استفاده می کنند به زمان کمتری در هوا (با فرض پهنای باند یکسان) نسبت به بسته هایی که از مقادیر SF نزدیک تر به 12 استفاده می کنند، نیاز دارند. مزیت استفاده از SF‌ های بالاتر در افزایش حساسیت گیرنده است. انتقال با استفاده از SF7 که توسط گیرنده LoRa قابل شناسایی نیست، اگر با استفاده از SF12 انجام شود، ممکن است به درستی دمودوله شود. یکی دیگر از ویژگی های کلیدی مدولاسیون، شبه متعامد بودن آن بین ارسال ها با استفاده از مقادیر SF مختلف است. حتی اگر دو بسته در یک زمان با هم همپوشانی داشته باشند، یک گیرنده ممکن است همچنان بتواند یکی از بسته ها را تغییر دهد. با فرض اینکه آنها از SF های مختلف استفاده می کنند، برخی محدودیت ها در قدرت متقابل آنها رعایت می شود[4].

شبکه LoRaWAN

اتحاد LoRa ابتدا استاندارد LoRaWAN را با هدف ایجاد یک طرح دسترسی متوسط ​​و مجموعه ای از سیاست های مدیریت شبکه تعریف کرد که از ویژگی های مدولاسیون برای دستیابی به عملکرد مناسب شبکه با قیمت پایین در پیچیدگی دستگاه ها استفاده می کند. سه نوع دستگاه در یک شبکه LoRaWAN وجود دارد که شامل دستگاه های پایانی (EDs)، دستگاه دروازه ای (Gateways) و یک سرور شبکه (NS) است. دستگاه های نهایی نود های شبکه اصلی هستند. این دستگاه ها معمولا ارزان هستند و به دلیل قابلیت های محاسباتی کم محدود می شوند و معمولا توسط باتری تغذیه می شوند. دروازه ها (GWs) دستگاه هایی هستند که از شبکه تغذیه می کنند و وظیفه جمع آوری داده های ارسال شده توسط دستگاه های پایانی (EDs) با استفاده از مدولاسیون LoRa را بر عهده دارند. پس از دریافت صحیح یک بسته، از طریق لینکی با قابلیت اطمینان و سرعت بالا به سرور شبکه ارسال می شود. سرور شبکه به عنوان یک سینک برای داده های دریافتی از همه دستگاه ها به عنوان یک کنترل کننده شبکه عمل می کند که می تواند از برخی دستورات MAC برای تغییر تنظیمات انتقال در دستگاه های پایانی استفاده کند[4].

دستگاه های پایانی از ابتدایی ترین نوع به عنوان دستگاه های کلاس A تعریف می شوند و در حال حاضر تنها نوع دستگاهی هستند که توسط این ماژول پشتیبانی می شود. دستگاه های کلاس A انتقال را به روشی کاملاً ناهمزمان انجام می دهند و دو پنجره دریافت با مدت زمان ثابت را پس از هر ارسال باز می کنند تا به سرور شبکه اجازه دهد که تأییدیه ها یا دستورات MAC را ارسال کند[4]. یکی دیگر از ویژگی های مهم این استاندارد این است که برای کار بر روی باند های بدون مجوز در مناطق مختلف تعریف شده است که معمولاً فرستنده ها را مشمول مقررات مربوط به چرخه کار می کنند. این واقعیت با جزئیات بیشتری در بخش مدل لایه MAC این سند توضیح داده خواهد شد[4].

تصویر simulation-iot-lorawan-networks-ns3_7232_2 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

شکل ساختار یک شبکه LoRaWAN

ماژول LoRaWAN در شبیه ساز NS3

این یک ماژول ns-3 است که می تواند برای انجام شبیه سازی شبکه LoRaWAN استفاده شود. این ماژول توسط Davide Magrin و Martina Capuzzo از آزمایشگاه Signet در بخش مهندسی اطلاعات دانشگاه پادووا، تحت نظارت Lorenzo Vangelista، Marco Centenaro، Andrea Zanella و Michele Zorzi توسعه یافته است. این ماژول شامل مجموعه ای از کلاس ها و مثال ها با هدف مدل سازی مدولاسیون و فناوری دسترسی به یک شبکه LoRaWAN است. به لطف یک مدل لایه فیزیکی زیر بنایی ساده و قوانین تحمیل شده بر ترافیک در باند های بدون مجوزی که این فناوری روی آنها کار می کند، این ماژول می تواند از شبیه سازی هایی پشتیبانی کند که در آن تعداد زیادی دستگاه به ندرت به کانال بی سیم دسترسی دارند. جدای از مدل هایی که اجزای مختلف شبکه را نشان می دهند و کمک کننده هایی برای راه اندازی آنها ارئه می شود، این ماژول با یک ردیاب بسته در دسترس است که عملکرد شبکه را نظارت می کند و با قابلیت هایی که دارد گزارشی از توپولوژی شبکه برای اشکال زدایی آسان و نظارت بر شبیه سازی ارائه می دهد. همچنین نمونه های مختلفی از پیکربندی های شبکه ساده تا پیچیده نیز ارائه می شود[2].

نصب ماژول LoRaWAN تحت NS3

مرحله اول: نرم افزار ns-3.35 را با هر روشی به انتخاب خود نصب کنید.

مرحله دوم: کلون ماژول LoRaWAN ns-3 از GitHub

دستور بالا یک پوشه lorawan را در زیر پوشه src ایجاد می کند و پروژه LoRaWAN را در آن کلون می کند. تصویر زیر کلونینگ موفق را نشان می دهد:

تصویر simulation-iot-lorawan-networks-ns3_7232_3 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

مرحله سوم: پیکربندی waf و آماده سازی سیستم

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

تصویر simulation-iot-lorawan-networks-ns3_7232_4 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

مرحله چهارم: کامپایل ns-3

دستور بالا ns-3 را با ماژول LoRaWAN تازه اضافه شده کامپایل می کند و خروجی هایی مانند نمونه زیر را با موفقیت ایجاد می کند.

تصویر simulation-iot-lorawan-networks-ns3_7232_5 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

تست ماژول LoRaWAN ns-3

در این بخش اجرای simple-network-example.cc یک مثال را آزمایش می کنیم.

تصویر زیر اجرای موفقیت آمیز شبیه سازی را نشان می دهد و عملکرد مناسب ماژول LoRaWAN ns-3 تازه نصب شده را ثابت می کند.

تصویر simulation-iot-lorawan-networks-ns3_7232_6 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

اجرای مثال ADR

 دستور زیر شبیه سازی نمونه الگوریتم نرخ داده تطبیقی (ADR) را اجرا می کند. این برنامه یک شبکه ساده ایجاد می کند که از یک الگوریتم ADR برای راه اندازی Spreading Factors (SF) دستگاه ها در شبکه استفاده می کند.

این مثال یک شبیه سازی 24000 ثانیه ای را اجرا می کند و تصویر زیر اجرای موفقیت آمیز شبیه سازی را نشان می دهد.

تصویر simulation-iot-lorawan-networks-ns3_7232_7 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

حالت گرافیکی این سناریو در محیط NetAnim به شکل زیر است:

تصویر simulation-iot-lorawan-networks-ns3_7232_8 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

حالت انیمیشن از شبکه بالا

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

تصویر simulation-iot-lorawan-networks-ns3_7232_9 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

شبیه سازی شبکه LoRaWan ساده با IoT-ED های ثابت

در تصویر زیر خروجی همان اسکریپت نمونه (با کمی تغییر) را مشاهده می کنید. در اینجا ما فقط از یک گره GW استفاده می کنیم و اکنون گره GW با یک تصویر مناسب به درستی رندر می شود.

تصویر simulation-iot-lorawan-networks-ns3_7232_10 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

شبیه سازی شبکه LoRaWan ساده با IoT-ED های متحرک

در تصویر زیر خروجی همان اسکریپت نمونه (با کمی تغییر بیشتر) قابل مشاهده است. در این محیط ما LoT-ED ها را به حرکت در می آوریم، به طوری که آن را به عنوان یک شبکه LoRaWAN متحرک تبدیل می کنیم.

تصویر simulation-iot-lorawan-networks-ns3_7232_11 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

مصرف انرژی در شبکه LoRaWan با 50 IoT-ED

تصویر زیر انرژی مصرف شده توسط 50 ED IoT را در پایان شبیه سازی 1200 ثانیه ای نشان می دهد.

تصویر simulation-iot-lorawan-networks-ns3_7232_12 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

خروجی Gnuplot زیر مصرف انرژی را در طول زمان درED(0)  نشان می دهد.

تصویر simulation-iot-lorawan-networks-ns3_7232_13 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

همچنین خروجی Gnuplot زیر مقایسه مصرف انرژی در طول زمان را درED(0)  وED(1)  نشان می دهد.

تصویر simulation-iot-lorawan-networks-ns3_7232_14 شبیه سازی و تحلیل شبکه های IoT LoRaWAN با نرم افزار NS3

منابع

  • https://en.wikipedia.org/wiki/LoRa
  • https://apps.nsnam.org/app/lorawan
  • https://github.com/signetlabdei/lorawan
  • https://signetlabdei.github.io/lorawan-docs/models/build/html/lorawan.html
 

مطالب مرتبط
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است