شبکه های Thread را با استفاده از OTNS شبیه سازی کنید

1. معرفی

5abd22afa2f2ee9a.png

موضوع و OTNS است

موضوع مش یک تجربه بی سیم کم قدرت مبتنی بر IP پروتکلی است که قادر می سازد امن دستگاه به دستگاه و ارتباطات دستگاه به ابر شبکه. شبکه های موضوع می تواند به تغییرات توپولوژی انطباق برای جلوگیری از نقطه از یک شکست.

OpenThread منتشر شده توسط گوگل یک پیاده سازی منبع باز از موضوع است. با وجود اندازه کد و حافظه رد پای کوچک آن، OpenThread پشتیبانی از تمام ویژگی های تعریف شده در مشخصات موضوع .

OpenThread شبکه شبیه ساز (OTNS) را می توان به شبکه های موضوع شبیه سازی در حال اجرا توسط گره OpenThread شبیه سازی شده بر روی سیستم عامل های POSIX استفاده می شود. OTNS AN-آسان برای استفاده و رابط کاربری وب (OTNS وب) برای تجسم و عامل شبکه موضوع شبیه سازی فراهم می کند.

چه شما باید یاد بگیرند

  • نصب OTNS و وابستگی های آن
  • ساخت OpenThread برای OTNS
  • چگونه برای اضافه کردن / حرکت / گره حذف در OTNS وب
  • دیگر ویژگی های مفید استفاده از OTNS وب به کار شبیه سازی شبکه
  • بررسی OpenThread هیچ تک نقطه از شکست

این codelab است OTNS-CLI و OTNS وب متمرکز شده است. ویژگی های دیگر OTNS، مانند برنامه نویسی پایتون، پوشیده نیست.

آنچه شما نیاز

  • لینوکس ی x86_64 یا سیستم عامل مک.
  • دستگاه گوارش .
  • برو 1.11+ .
  • مرورگر اینترنت. OTNS وب با استفاده از یک مرورگر وب برای نمایش شبیه سازی.
  • موضوع پرایمر . شما باید بدانید که در مورد مفاهیم اولیه موضوع به درک آنچه که در این Codelab تدریس می شود.

2. نصب و راه اندازی

نصب برو

OTNS نیاز به برو 1.11+ برای ساخت.

  1. نصب برو از https://golang.org/dl/
  2. اضافه کردن $(go env GOPATH)/bin (به طور معمول $HOME/go/bin ) به $PATH :
$ export PATH=$PATH:$(go env GOPATH)/bin

مطلع کد OTNS

$ git clone https://github.com/openthread/ot-ns.git ./otns
$ cd otns

نصب وابستگی

$ ./script/install-deps
grpcwebproxy installed: /usr/local/google/home/simonlin/go/bin/grpcwebproxy

شما ممکن است به یک رمز عبور ورودی برای خواسته sudo .

نصب otns

نصب otns به $GOPATH/bin :

$ ./script/install
otns installed: /usr/local/google/home/simonlin/go/bin/otns

چک بیایید اگر otns به درستی نصب شده

  1. اجرای which otns برای بررسی اگر otns اجرایی جستجو در $PATH.
  2. اگر otns فرمان یافت نمی شود، بررسی کنید که شما اضافه شده اند $(go env GOPATH)/bin به $PATH.

3. OpenThread ساخت برای OTNS

مطلع کد OpenThread از GitHub

$ mkdir -p ~/src
$ git clone https://github.com/openthread/openthread ~/src/openthread

ساخت OpenThread با OTNS=1

$ cd ~/src/openthread
$ ./script/bootstrap
$ ./bootstrap
$ make -f examples/Makefile-simulation OTNS=1

شما می توانید فایل های اجرایی OpenThread در پیدا output دایرکتوری:

لینوکس

$ ls ~/src/openthread/output/simulation/bin
ot-cli-ftd        ot-cli-mtd        ot-ncp-ftd        ot-ncp-mtd        ot-rcp

سیستم عامل مک

$ ls ~/src/openthread/output/simulation/bin
ot-cli-ftd        ot-cli-mtd        ot-ncp-ftd        ot-ncp-mtd        ot-rcp

حالا وقت آن است به OTNS اجرا ...

4. اجرای OTNS

اجرا otns :

$ cd ~/src/openthread/output/simulation/bin
$ otns
> ← OTNS-CLI prompt

هنگامی که با موفقیت آغاز شده، OTNS یک کنسول CLI (را وارد کنید OTNS-CLI ) و راه اندازی یک مرورگر وب برای تجسم شبکه و مدیریت ( OTNS-Web ):

a0e05178d66929b1.png

اگر شما فقط می توانید یک صفحه خالی برای OTNS-وب را ببینید، شانس هستند از WebGL در مرورگر شما فعال نیست. لطفا به https://superuser.com/a/836833 در نحوه فعال کردن WebGL.

در بخش بعد، شما در حال رفتن به یادگیری برای مدیریت شبیه سازی OTNS طریق OTNS-CLI و OTNS-Web .

5. دریافت به دانستن OTNS-CLI و OTNS وب

OTNS-CLI

OTNS-CLI فراهم می کند یک رابط خط فرمان (CLI) برای مدیریت OTNS شبیه سازی.

$ cd ~/src/openthread/output/simulation/bin
$ otns
> ← OTNS-CLI prompt

شما می توانید در دستورات از طریق تایپ OTNS-CLI . به مراجعه مرجع OTNS CLI برای یک لیست کامل از دستورات. نگران نباشید، شما تنها قصد استفاده از تعداد کمی از این دستورات در این Codelab.

OTNS وب

OTNS-Web OTNS تجسم شبکه و ابزار مدیریت است. این یک نمایش تصویری از گره ها، پیام ها، و لینک از شبکه موضوع شبیه سازی فراهم می کند. توجه داشته باشید که عناصر مختلف OTNS-Web :

4c5b43509a2ca0d0.png

6. اضافه کردن گره

اضافه کردن گره از طریق OTNS-CLI

اضافه کردن یک روتر در موقعیت (300، 100)

> add router x 300 y 100
1
Done

شما باید یک گره در را مشاهده کنید OTNS-Web . گره به عنوان یک روتر شروع می شود و به یک رهبر در چند ثانیه می شود:

6ca8c2e63ed9818d.png

اضافه کردن گره های بیشتر از طریق OTNS-CLI

> add fed x 200 y 100
2
Done
> add med x 400 y 100
3
Done
> add sed x 300 y 200
4
Done

چند ثانیه صبر کنید برای گره به ادغام به یک پارتیشن. شما باید گره ها در دیدن OTNS-WEB :

3ee67903c01aa612.png

اضافه کردن گره ها توسط OTNS-Web

شما همچنین می توانید از طریق گره های اضافه OTNS-Web . با کلیک بر روی New Router دکمه از Action Bar . شما باید ببینید که یک گره بودن درست بالای ایجاد New Router را فشار دهید. کشیدن گره به نزدیکی رهبر شما را از طریق ایجاد شود OTNS-CLI . تمام گره در نهایت باید به یک پارتیشن ادغام:

420258bb92561146.png

همچنین با کلیک بر روی دکمه FED، MED، و SED در نوار اقدام به ایجاد انواع دیگر گره ها. کشیدن آنها را به موقعیت های نزدیک گره های موجود به آنها متصل به آن شبکه موضوع:

fe15d6f9726a099e.png

در حال حاضر شما یک شبکه موضوع از یک پارتیشن که شامل بسیاری از گره های ایجاد کرده اند. در بخش بعدی، ما می رویم برای تنظیم سرعت شبیه سازی را به اجرا شبیه سازی سریع تر.

7. تنظیم سرعت

در حال حاضر، شبیه سازی باید در حال اجرا در 1X سرعت، به این معنی که زمان شبیه سازی تا کنون سپری شده همان زمان واقعی از آنجایی که ما اولین گره ایجاد شده است.

تنظیم سرعت از طریق OTNS-CLI

شما می توانید سرعت شبیه سازی از طریق تنظیم OTNS-CLI .

تنظیم شبیه سازی سرعت به 100X

> speed 100
Done

شما باید ببینید که گره ارسال پیام خیلی بیشتر اغلب از قبل.

تنظیم شبیه سازی سرعت به MAX

> speed max
Done

در حال حاضر، OTNS در تلاش است آن را به شبیه سازی به عنوان سریع به عنوان آن می توانید، بنابراین شما باید گره ارسال تعداد زیادی از پیام را مشاهده کنید.

شبیه سازی مکث

> speed 0
Done

تنظیم سرعت شبیه سازی برای 0 مکث شبیه سازی.

بازگرداندن شبیه سازی در سرعت عادی

> speed 1
Done

تنظیم سرعت شبیه سازی را به یک مقدار بزرگتر از 0 از سر گرفته شبیه سازی.

تنظیم سرعت از طریق OTNS-Web

دکمه های کنترل سرعت

پیدا کردن دکمه های کنترل سرعت 9329157c1bd12672.png در Action Bar . دکمه های نشان دادن سرعت شبیه سازی جریان و می توان مورد استفاده برای تنظیم سرعت شبیه سازی و مکث / از سر شبیه سازی.

سرعت تا شبیه سازی

شما می توانید با کلیک کردن بر سرعت بخشیدن به شبیه سازی 39b88331779277ad.png را فشار دهید تا به سرعت می رسد MAX : f5f460b2586d299b.png .

شبیه سازی پایین آهسته

شما می توانید با کلیک کردن بر کم کردن سرعت شبیه سازی 31cca8d5b52fa900.png دکمه.

شبیه سازی مکث

کلیک کنید بر روی 46cc2088c9aa7ab6.png دکمه را به تامل در شبیه سازی هنگامی که آن را در حال اجرا. دکمه خواهد شد به تغییر ce25eda3496ffcd4.png .

شبیه سازی رزومه

کلیک کنید بر روی ce25eda3496ffcd4.png را فشار دهید تا از سر شبیه سازی هنگامی که آن را متوقف شد. دکمه را دوباره به تغییر 46cc2088c9aa7ab6.png .

تنظیم شبیه سازی سرعت به 10X

به منظور صرفه جویی در وقت، استفاده از

OTNS-CLI برای تنظیم سرعت شبیه سازی برای

10X به طوری که ما می توانیم تغییرات توپولوژی در شبکه بسیار سریع تر مشاهده کند.

> speed 10
Done

8. روشن / خاموش رادیو

در حال حاضر، شبیه سازی باید 2 روترها (شکل شش ضلعی) و بسیاری از کودکان و اجرا می شود در سرعت 10X باشد.

یافتن رهبر فعلی (مرز قرمز) از 2 روترها، یک کلیک آن را انتخاب کنید:

8c6a2e191cdae0c7.png

خاموش کردن رادیو

کلیک کنید بر روی 7ca085f470491dd4.png دکمه را بر روی نوار اقدام به خاموش کردن رادیو گره رهبر:

a3bf58d9d125f95f.png

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

صبر کنید در مورد 12S (120s و در زمان شبیه سازی) برای روتر دیگر برای تبدیل شدن به رهبر:

e3d32f85c4a1b990.png

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

روشن کردن رادیو

رهبر که رادیو خاموش شد را انتخاب کنید. کلیک کنید بر روی 2d9cecb8612b42aa.png دکمه را بر روی Action Bar برای بازگرداندن اتصال رادیویی:

7370a7841861aa3a.png

رهبر باید به شبکه را دوباره نصب پس از اتصال به رادیو دوباره بازسازی شده است.

9. حرکت گره

OTNS کاربران را قادر می سازد به حرکت گره به راحتی از طریق OTNS-CLI یا OTNS-Web .

حرکت گره را از طریق OTNS-CLI

حرکت گره 5 را به مکان جدید:

> move 5 600 300
Done

از آنجا که در حال حاضر گره 5 است به دور از روتر دیگر، آنها باید اتصال به یکدیگر از دست دادن، و پس از حدود 12S (120s و در زمان شبیه سازی) هر دو برای رهبر شدن از پارتیشن خود را دارند:

c06b4d0a4f183299.png

حرکت گره را از طریق OTNS وب

حرکت گره 5 تماس به محل اصلی با کشیدن. دو پارتیشن باید به یک پارتیشن ادغام:

9ba305c4c5a5f892.png

10. گره حذف

گره حذف طریق OTNS-CLI

گره حذف 8:

> del 8
Done

گره 8 باید از شبیه سازی ناپدید می شوند:

18156770d9f8bf83.png

گره حذف طریق OTNS-Web

گره 5 انتخاب کنید و با کلیک بر روی 7ff6afd565f4eafc.png را فشار دهید در Action Bar به گره حذف 5:

d4079cceea0105f0.png

Node 1 باید تبدیل به رهبر و Node 7 باید جدا از آن نمی تواند هر روتر برسد.

شبیه سازی پاک (حذف همه گره ها)

شما می توانید شبیه سازی با حذف تمام گره از طریق روشن OTNS-Web .

کلیک 89618191721e79a0.png دکمه را بر روی Action Bar. تمام گره ها در یک بار ناپدید می شوند.

قبل از ادامه ...

اضافه کردن برخی از گره به شبیه سازی توسط خودتان به طوری که شما می توانید در این آموزش ادامه خواهد داد.

متن 11. OTNS-CLI گره

OTNS-CLI فراهم می کند حالت بافت گره برای تعامل آسان با گره به توسعه دهندگان کمک به تشخیص وضعیت یک گره است.

حالت بافت گره را وارد کنید

زمینه گره از گره 1 را وارد کنید:

> node 1
Done
node 1>

از CLI سریع تغییر به node 1> ، نشان می دهد زمینه گره فعلی. شما می توانید نوع در دستورات OpenThread CLI به در گره اجرا شود به عنوان اگر شما در حال تعامل با گره به طور مستقیم.

اجرای دستورات در زمینه گره

node 1> state
leader
Done
node 1> channel
11
Done
node 1> panid
0xface
Done
node 1> networkname
OpenThread
Done
node 1> ipaddr
fdde:ad00:beef:0:0:ff:fe00:fc00
fdde:ad00:beef:0:0:ff:fe00:d800
fdde:ad00:beef:0:2175:8a67:1000:6352
fe80:0:0:0:2075:82c2:e9e9:781d
Done

تغییر به بافت گره دیگر

node 1> node 2
Done
node 2> 

خروج از چارچوب گره

node 1> exit
Done
>

12. تبریک

تبریک می گویم، شما با موفقیت اجرا اولین شبیه سازی OTNS خود را!

شما به دست آوردید نحوه نصب OTNS و وابستگی های آن. شما ساخته شده است OpenThread برای OTNS و شبیه سازی OTNS با نمونه شبیه سازی OpenThread. شما به دست آوردید چگونه به دستکاری شبیه سازی به روش های مختلف از طریق هر دو OTNS-CLI و OTNS-Web .

شما هم اکنون می دانید که چه OTNS است و چگونه شما می توانید OTNS برای شبیه سازی شبکه های OpenThread استفاده کنید.

گام بعدی چیست؟

را بررسی کنید برخی از این codelabs ...

اسناد مرجع