Thread & OTNS چیست
Thread یک پروتکل شبکه بی سیم مش کم مصرف مبتنی بر IP است که ارتباطات ایمن دستگاه به دستگاه و دستگاه به ابر را امکان پذیر می کند. شبکه های رشته ای می توانند با تغییرات توپولوژی سازگار شوند تا از یک نقطه خرابی جلوگیری کنند.
OpenThread منتشر شده توسط Google یک اجرای منبع باز از Thread است. OpenThread با وجود اندازه کد کوچک و ردپای حافظه ، از تمام ویژگی های تعریف شده در مشخصات Thread 1.1.1 پشتیبانی می کند.
شبیه ساز شبکه OpenThread (OTNS) می تواند برای شبیه سازی شبکه های Thread با اجرای گره های OpenThread شبیه سازی شده در سیستم عامل های posix استفاده شود. OTNS یک رابط وب (OTNS-Web) با کاربرد آسان برای تجسم و کارکرد شبکه های Thread شبیه سازی شده فراهم می کند.
آنچه خواهید آموخت
- OTNS و وابستگی های آن را نصب کنید
- OpenThread را برای OTNS بسازید
- نحوه افزودن / جابجایی / حذف گره ها در OTNS-Web
- از دیگر ویژگیهای مفید OTNS-Web برای اجرای شبیه سازی شبکه استفاده کنید
- تأیید عدم وجود یک نقطه شکست OpenThread
این Codelab بر روی OTNS-CLI و OTNS-Web متمرکز شده است. سایر ویژگی های OTNS ، مانند برنامه نویسی پایتون ، پوشش داده نمی شوند.
آنچه شما نیاز دارید
- Linux x86_64 یا سیستم عامل Mac.
- گیت
- برو 1.11+
- مرورگر اینترنت. OTNS-Web از یک مرورگر وب برای نمایش شبیه سازی استفاده می کند.
- آغازگر موضوع برای درک آنچه در این Codelab آموزش داده شده است ، باید مفاهیم اساسی Thread را بدانید.
Go را نصب کنید
OTNS برای ساخت به نسخه 1.11+ نیاز دارد.
- Go را از https://golang.org/dl/ نصب کنید
-
$(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
به درستی نصب شده است
-
which otns
را اجرا کنید تا بررسی کنید آیاotns
قابل اجرا در$PATH.
قابل جستجو است$PATH.
- اگر دستور
otns
یافت نشد ، بررسی کنید که$(go env GOPATH)/bin
به$PATH.
کد 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 فرا رسیده است ...
اجرای otns
:
$ cd ~/src/openthread/output/simulation/bin $ otns > ← OTNS-CLI prompt
با موفقیت شروع ، OTNS وارد یک کنسول CLI ( OTNS-CLI
) می شود و یک مرورگر وب را برای تجسم و مدیریت شبکه ( OTNS-Web
) راه اندازی می کند:
اگر فقط می توانید یک صفحه خالی برای OTNS-Web مشاهده کنید ، به احتمال زیاد WebGL در مرورگر شما فعال نیست. لطفاً در مورد نحوه فعال سازی WebGL به https://superuser.com/a/836833 مراجعه کنید .
در بخش های بعدی ، شما می خواهید مدیریت شبیه سازی OTNS-CLI
از طریق OTNS-CLI
و OTNS-Web
بگیرید.
OTNS-CLI
OTNS-CLI
یک رابط خط فرمان (CLI) برای مدیریت شبیه سازی های OTNS فراهم می کند.
$ cd ~/src/openthread/output/simulation/bin $ otns > ← OTNS-CLI prompt
می توانید دستورات را از طریق OTNS-CLI
تایپ کنید. برای لیست کاملی از دستورات به مرجع OTNS CLI مراجعه کنید. نگران نباشید ، شما فقط قصد دارید در این Codelab از تعدادی از این دستورات استفاده کنید.
OTNS-Web
OTNS-Web
ابزار تجسم و مدیریت شبکه OTNS است. این نمایش بصری گره ها ، پیام ها و پیوندهای شبکه Thread شبیه سازی شده را فراهم می کند. به عناصر مختلف OTNS-Web
:
گره ها را از طریق OTNS-CLI اضافه کنید
اضافه کردن یک روتر در موقعیت (300 ، 100)
> add router x 300 y 100 1 Done
شما باید گره ای را در OTNS-Web
. گره به عنوان یک روتر شروع می شود و در چند ثانیه رهبر می شود:
گره های بیشتری را از طریق 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
:
گره ها را توسط OTNS-Web
همچنین می توانید از طریق OTNS-Web
گره اضافه کنید. روی دکمه New Router
در Action Bar
کلیک کنید. باید ببینید گره درست در بالای دکمه New Router
. گره را بکشید تا نزدیک Leader که از طریق OTNS-CLI
ایجاد کرده OTNS-CLI
باشد. همه گره ها باید در نهایت در یک پارتیشن ادغام شوند:
همچنین روی دکمه های FED ، MED و SED در نوار اقدام کلیک کنید تا انواع دیگری از گره ها ایجاد شود. آنها را به موقعیت های نزدیک گره های موجود بکشید تا به شبکه Thread متصل شوند:
اکنون یک شبکه Thread از یک پارتیشن ایجاد کرده اید که شامل بسیاری از گره ها است. در بخش بعدی ، ما می خواهیم سرعت شبیه سازی را تنظیم کنیم تا شبیه سازی سریعتر انجام شود.
در حال حاضر، شبیه سازی باید در حال اجرا در 1X
سرعت، به این معنی که زمان شبیه سازی تا کنون سپری شده همان زمان واقعی از آنجایی که ما اولین گره ایجاد شده است.
سرعت را از طریق OTNS-CLI
می توانید سرعت شبیه سازی را از طریق OTNS-CLI
.
سرعت شبیه سازی را روی 100X
تنظیم کنید
> speed 100 Done
باید ببینید گره ها خیلی بیشتر از قبل پیام ارسال می کنند.
سرعت شبیه سازی را روی MAX
تنظیم کنید
> speed max Done
اکنون ، OTNS در تلاش است تا بهترین کار را با بیشترین سرعت ممکن شبیه سازی کند ، بنابراین باید گره هایی را مشاهده کنید که تعداد زیادی پیام ارسال می کنند.
شبیه سازی مکث کنید
> speed 0 Done
تنظیم سرعت شبیه سازی روی 0
، شبیه سازی را مکث می کند.
بازیابی شبیه سازی را با سرعت نرمال انجام دهید
> speed 1 Done
تنظیم سرعت شبیه سازی روی مقداری بزرگتر از 0
، شبیه سازی را از سر می گیرد.
سرعت را از طریق OTNS-Web
دکمه های کنترل سرعت
دکمه های کنترل سرعت را پیدا کنید در
Action Bar
. دکمه ها سرعت شبیه سازی فعلی را نشان می دهند و می توانند برای تنظیم سرعت شبیه سازی و مکث / از سرگیری شبیه سازی استفاده شوند.
سرعت بخشیدن به شبیه سازی
می توانید با کلیک کردن روی ، شبیه سازی را سرعت بخشید دکمه تا رسیدن سرعت به
MAX
: .
سرعت شبیه سازی را کم کنید
با کلیک بر روی می توانید سرعت شبیه سازی را کاهش دهید دکمه.
شبیه سازی مکث کنید
کلیک کنید بر روی دکمه برای مکث هنگام شبیه سازی. دکمه به تغییر خواهد یافت
.
از سرگیری شبیه سازی
کلیک کنید بر روی دکمه برای از سرگیری شبیه سازی در هنگام مکث. دکمه دوباره به تغییر خواهد یافت
.
سرعت شبیه سازی را روی 10X
تنظیم کنید
به منظور صرفه جویی در وقت ، استفاده کنید
OTNS-CLI
برای تنظیم سرعت شبیه سازی به
10X
تا بتوانیم تغییرات توپولوژی را در شبکه خیلی سریعتر مشاهده کنیم.
> speed 10 Done
اکنون ، شبیه سازی باید شامل 2 روتر (به شکل شش ضلعی) و بسیاری از کودکان باشد و با سرعت 10 برابر اجرا شود.
Leader (حاشیه قرمز) فعلی 2 مسیریاب را پیدا کنید ، برای انتخاب آن فقط کلیک کنید:
رادیو را خاموش کنید
کلیک کنید بر روی دکمه نوار اقدام برای خاموش کردن رادیوی گره Leader:
رهبر قادر به ارسال یا دریافت پیام با رادیو خاموش نخواهد بود.
حدود 12s صبر کنید (120s در زمان شبیه سازی) تا Router دیگر به رهبر جدید تبدیل شود:
شبکه Thread با تشکیل یک پارتیشن جدید با یک Leader جدید به طور خودکار از شکست Leader بهبود می یابد. پارتیشن جدید همچنین دارای یک رنگ پارتیشن جدید است.
رادیو را روشن کنید
رهبری را که رادیو آن خاموش است انتخاب کنید. کلیک کنید بر روی دکمه
Action Bar
برای بازیابی اتصال رادیویی:
پس از بازیابی اتصال رادیویی ، رهبر باید دوباره به شبکه متصل شود.
OTNS کاربران را قادر می سازد تا گره ها را به راحتی از طریق OTNS-CLI
یا OTNS-Web
.
انتقال گره از طریق OTNS-CLI
گره 5 را به مکان جدیدی منتقل کنید:
> move 5 600 300 Done
از آنجا که گره 5 از روتر دیگر فاصله دارد ، بنابراین آنها باید ارتباط خود را با یکدیگر از دست دهند و پس از حدود 12 ثانیه (120s در زمان شبیه سازی) هر دو رهبر پارتیشن خود می شوند:
انتقال گره از طریق OTNS-Web
با کشیدن گره 5 را به محل اصلی برگردانید. دو پارتیشن باید دوباره به یک پارتیشن ادغام شوند:
گره ها را از طریق OTNS-CLI
حذف گره 8:
> del 8 Done
گره 8 باید از شبیه سازی ناپدید شود:
گره ها را از طریق OTNS-Web
گره 5 را انتخاب کرده و بر روی آن کلیک کنید دکمه
Action Bar
برای حذف گره 5:
Node 1
باید Leader شود و Node 7
باید جدا شود زیرا نمی تواند به هیچ روتری برسد.
پاک کردن شبیه سازی (حذف همه گره ها)
با حذف همه گره ها از طریق OTNS-Web
می توانید شبیه سازی را پاک کنید.
کلیک دکمه روی
Action Bar.
همه گره ها به یک باره ناپدید می شوند.
قبل از ادامه ...
برخی از گره ها را توسط خودتان به شبیه سازی اضافه کنید تا بتوانید در این آموزش ادامه دهید.
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 >
تبریک می گویم ، شما اولین شبیه سازی OTNS خود را با موفقیت اجرا کردید!
شما نحوه نصب OTNS و وابستگی های آن را یاد گرفته اید. شما OpenThread را برای OTNS ساختید و شبیه سازی OTNS را با نمونه های شبیه سازی OpenThread شروع کردید. شما یاد گرفته اید که چگونه از طریق OTNS-CLI
و OTNS-Web
شبیه سازی را به روش های مختلف دستکاری کنید.
اکنون می دانید که OTNS چیست و چگونه می توانید از OTNS برای شبیه سازی شبکه های OpenThread استفاده کنید.
بعدی چیست؟
برخی از این Codelabs را بررسی کنید ...
- شبیه سازی شبکه Thread با OpenThread
- شبیه سازی شبکه Thread با استفاده از OpenThread در Docker
- با تابلوهای nRF52840 و OpenThread یک شبکه Thread ایجاد کنید