1. ভূমিকা
থ্রেড এবং ওটিএনএস কি
থ্রেড হল একটি আইপি-ভিত্তিক লো-পাওয়ার ওয়্যারলেস মেশ নেটওয়ার্কিং প্রোটোকল যা সুরক্ষিত ডিভাইস-টু-ডিভাইস এবং ডিভাইস-টু-ক্লাউড যোগাযোগ সক্ষম করে। থ্রেড নেটওয়ার্ক ব্যর্থতার একক পয়েন্ট এড়াতে টপোলজি পরিবর্তনের সাথে মানিয়ে নিতে পারে।
Google দ্বারা প্রকাশিত OpenThread হল থ্রেডের একটি ওপেন-সোর্স বাস্তবায়ন। এর ছোট কোড আকার এবং মেমরির পদচিহ্ন থাকা সত্ত্বেও, OpenThread থ্রেড স্পেসিফিকেশনে সংজ্ঞায়িত সমস্ত বৈশিষ্ট্য সমর্থন করে।
ওপেনথ্রেড নেটওয়ার্ক সিমুলেটর (OTNS) পজিক্স প্ল্যাটফর্মে সিমুলেটেড ওপেন থ্রেড নোড চালানোর মাধ্যমে থ্রেড নেটওয়ার্ক অনুকরণ করতে ব্যবহার করা যেতে পারে। OTNS একটি সহজে ব্যবহারযোগ্য ওয়েব ইন্টারফেস (OTNS-Web) প্রদান করে সিমুলেটেড থ্রেড নেটওয়ার্কগুলিকে ভিজ্যুয়ালাইজ এবং পরিচালনা করার জন্য।
আপনি কি শিখবেন
- OTNS এবং এর নির্ভরতা ইনস্টল করুন
- OTNS এর জন্য OpenThread তৈরি করুন
- কিভাবে OTNS-ওয়েবে নোড যোগ/সরানো/মুছে ফেলা যায়
- নেটওয়ার্ক সিমুলেশন পরিচালনা করতে OTNS-ওয়েবের অন্যান্য দরকারী বৈশিষ্ট্যগুলি ব্যবহার করুন৷
- OpenThread-এর নো-সিঙ্গেল-পয়েন্ট-অফ-ফেইলার যাচাই করুন
এই কোডল্যাবটি OTNS-CLI এবং OTNS-ওয়েবের উপর দৃষ্টি নিবদ্ধ করে। OTNS এর অন্যান্য বৈশিষ্ট্য, যেমন পাইথন স্ক্রিপ্টিং, কভার করা হয় না।
আপনি কি প্রয়োজন হবে
- Linux x86_64 বা Mac OS।
- গিট
- 1.13+ যান ।
- ওয়েব ব্রাউজার। OTNS-ওয়েব সিমুলেশন প্রদর্শনের জন্য একটি ওয়েব ব্রাউজার ব্যবহার করে।
- থ্রেড প্রাইমার । এই কোডল্যাবে কী পড়ানো হয় তা বোঝার জন্য আপনাকে থ্রেডের প্রাথমিক ধারণাগুলি জানতে হবে।
2. ইনস্টলেশন
Go ইনস্টল করুন
OTNS নির্মাণের জন্য Go 1.13+ প্রয়োজন।
- https://golang.org/dl/ থেকে Go ইনস্টল করুন
-
$PATH
এ$(go env GOPATH)/bin
(সাধারণত$HOME/go/bin
) যোগ করুন :
$ 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 ইনস্টল করুন
$GOPATH/bin
এ otns
ইনস্টল করুন:
$ ./script/install otns installed: /usr/local/google/home/simonlin/go/bin/otns
otns
সঠিকভাবে ইনস্টল করা আছে কিনা তা পরীক্ষা করা যাক
-
$PATH.
এotns
এক্সিকিউটেবল অনুসন্ধানযোগ্য কিনা তা পরীক্ষা করতেwhich otns
চালান। - যদি
otns
কমান্ড না পাওয়া যায়, তাহলে যাচাই করুন যে আপনি$PATH.
এ$(go env GOPATH)/bin
যোগ করেছেন।
3. OTNS-এর জন্য OpenThread তৈরি করুন
GitHub থেকে OpenThread কোড পান
$ mkdir -p ~/src $ git clone https://github.com/openthread/openthread ~/src/openthread
OTNS=1
দিয়ে OpenThread তৈরি করুন
$ cd ~/src/openthread $ ./script/cmake-build simulation -DOT_OTNS=ON -DOT_SIMULATION_VIRTUAL_TIME=ON -DOT_SIMULATION_VIRTUAL_TIME_UART=ON -DOT_SIMULATION_MAX_NETWORK_SIZE=999
আপনি build
ডিরেক্টরিতে OpenThread এক্সিকিউটেবলগুলি খুঁজে পেতে পারেন:
$ ls ~/src/openthread/build/simulation/examples/apps/cli/ ot-cli-ftd ot-cli-mtd ot-cli-radio
এখন ওটিএনএস চালানোর পালা...
4. OTNS চালান
otns
চালান:
$ cd ~/src/openthread/build/simulation/examples/apps/cli $ otns > ← OTNS-CLI prompt
সফলভাবে শুরু হলে, OTNS একটি CLI কনসোলে প্রবেশ করবে ( OTNS-CLI
) এবং নেটওয়ার্ক ভিজ্যুয়ালাইজেশন এবং পরিচালনার জন্য একটি ওয়েব ব্রাউজার চালু করবে ( OTNS-Web
):
আপনি যদি OTNS-Web-এর জন্য শুধুমাত্র একটি ফাঁকা পৃষ্ঠা দেখতে পান, তাহলে আপনার ব্রাউজারে WebGL সক্ষম না হওয়ার সম্ভাবনা রয়েছে৷ WebGL কিভাবে সক্ষম করবেন তার জন্য দয়া করে https://superuser.com/a/836833 দেখুন ।
নিম্নলিখিত বিভাগে, আপনি OTNS-CLI
এবং OTNS-Web
মাধ্যমে OTNS সিমুলেশন পরিচালনা করতে শিখতে যাচ্ছেন।
5. OTNS-CLI এবং OTNS-ওয়েব জানুন
OTNS-CLI
OTNS-CLI
OTNS সিমুলেশন পরিচালনার জন্য একটি কমান্ড লাইন ইন্টারফেস (CLI) প্রদান করে।
$ cd ~/src/openthread/build/simulation/examples/apps/cli $ otns > ← OTNS-CLI prompt
আপনি OTNS-CLI
এর মাধ্যমে কমান্ড টাইপ করতে পারেন। কমান্ডের সম্পূর্ণ তালিকার জন্য OTNS CLI রেফারেন্স পড়ুন। চিন্তা করবেন না, আপনি এই কোডল্যাবে শুধুমাত্র কয়েকটি কমান্ড ব্যবহার করতে যাচ্ছেন।
OTNS-ওয়েব
OTNS-Web
হল OTNS এর নেটওয়ার্ক ভিজ্যুয়ালাইজেশন এবং ম্যানেজমেন্ট টুল। এটি সিমুলেটেড থ্রেড নেটওয়ার্কের নোড, বার্তা এবং লিঙ্কগুলির একটি চাক্ষুষ উপস্থাপনা প্রদান করে। OTNS-Web
এর বিভিন্ন উপাদান নোট করুন:
6. নোড যোগ করুন
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
এর মাধ্যমে নোড যোগ করতে পারেন। Action Bar
New Router
বোতামে ক্লিক করুন। আপনি দেখতে পাবেন যে New Router
বোতামের উপরে একটি নোড তৈরি হচ্ছে। OTNS-CLI
এর মাধ্যমে আপনার তৈরি লিডারের কাছে নোডটি টেনে আনুন। সমস্ত নোডগুলি অবশেষে একটি পার্টিশনে একত্রিত হওয়া উচিত:
এছাড়াও অন্যান্য ধরনের নোড তৈরি করতে অ্যাকশন বারে FED, MED এবং SED বোতামে ক্লিক করুন। থ্রেড নেটওয়ার্কের সাথে সংযুক্ত করতে তাদের বিদ্যমান নোডের কাছাকাছি অবস্থানে টেনে আনুন:
এখন আপনি একটি পার্টিশনের একটি থ্রেড নেটওয়ার্ক তৈরি করেছেন যাতে অনেকগুলি নোড রয়েছে। পরবর্তী বিভাগে, আমরা সিমুলেশনটি দ্রুত চালানোর জন্য সিমুলেটিং গতি সামঞ্জস্য করতে যাচ্ছি।
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
মাধ্যমে গতি সামঞ্জস্য করুন
গতি নিয়ন্ত্রণ বোতাম
গতি নিয়ন্ত্রণ বোতাম খুঁজুন Action Bar
বোতামগুলি বর্তমান সিমুলেটিং গতি দেখায় এবং সিমুলেটিং গতি সামঞ্জস্য করতে এবং সিমুলেশনটি বিরতি/পুনরায় শুরু করতে ব্যবহার করা যেতে পারে।
সিমুলেশন ত্বরান্বিত করুন
আপনি ক্লিক করে সিমুলেশন গতি বাড়াতে পারেন গতি MAX
না পৌঁছানো পর্যন্ত বোতাম: .
সিমুলেশন স্লো ডাউন
আপনি ক্লিক করে সিমুলেশন ধীর করতে পারেন বোতাম
সিমুলেশন পজ করুন
ক্লিক করুন যখন এটি চলমান হয় তখন সিমুলেশন বিরাম দিতে বোতাম। বোতাম পরিবর্তন করা হবে .
সিমুলেশন পুনরায় শুরু করুন
ক্লিক করুন বিরাম দেওয়া হলে সিমুলেশন পুনরায় শুরু করার বোতাম। বোতামটি আবার পরিবর্তন করা হবে .
অনুকরণ গতি 10X
এ সেট করুন
সময় বাঁচানোর জন্য, ব্যবহার করুন
OTNS-CLI
এর সাথে সিমুলেটিং গতি সামঞ্জস্য করতে
10X
যাতে আমরা নেটওয়ার্কে টপোলজি পরিবর্তনগুলি আরও দ্রুত পর্যবেক্ষণ করতে পারি।
> speed 10 Done
8. রেডিও চালু/বন্ধ করুন
এখন, সিমুলেশনে 2টি রাউটার (ষড়ভুজ আকৃতি) এবং অনেক শিশু থাকা উচিত এবং 10X গতিতে চলে।
2টি রাউটারের বর্তমান লিডার (লাল সীমানা) খুঁজুন, এটি নির্বাচন করতে একক ক্লিক করুন:
রেডিও বন্ধ করুন
ক্লিক করুন লিডার নোডের রেডিও বন্ধ করতে অ্যাকশন বারে বোতাম:
নেতা রেডিও বন্ধ রেখে বার্তা পাঠাতে বা গ্রহণ করতে পারবেন না।
অন্য রাউটার নতুন নেতা হওয়ার জন্য প্রায় 12 সেকেন্ড (সিমুলেটিং টাইমে 120 সেকেন্ড) অপেক্ষা করুন:
থ্রেড নেটওয়ার্ক একটি নতুন লিডারের সাথে একটি নতুন পার্টিশন তৈরি করে স্বয়ংক্রিয়ভাবে লিডার ব্যর্থতা থেকে পুনরুদ্ধার করে। নতুন পার্টিশনে একটি নতুন পার্টিশন রঙও রয়েছে।
রেডিও চালু করুন
যে নেতার রেডিও বন্ধ ছিল তাকে নির্বাচন করুন। ক্লিক করুন রেডিও সংযোগ পুনরুদ্ধার করতে Action Bar
বোতাম:
রেডিও সংযোগ পুনরুদ্ধার করার পরে নেতাকে নেটওয়ার্কে পুনরায় সংযুক্ত করা উচিত।
9. নোড সরান
OTNS ব্যবহারকারীদের OTNS-CLI
বা OTNS-Web
মাধ্যমে সহজেই নোডগুলি সরাতে সক্ষম করে৷
OTNS-CLI
এর মাধ্যমে নোড সরান
একটি নতুন অবস্থানে নোড 5 সরান:
> move 5 600 300 Done
যেহেতু এখন নোড 5 অন্য রাউটার থেকে অনেক দূরে, তাদের একে অপরের সাথে সংযোগ হারানো উচিত এবং প্রায় 12 সেকেন্ডের পরে (সিমুলেটিং টাইমে 120) উভয়ই তাদের নিজস্ব পার্টিশনের নেতা হয়ে ওঠে:
OTNS-ওয়েবের মাধ্যমে নোড সরান
টেনে এনে নোড 5 কে আসল অবস্থানে নিয়ে যান। দুটি পার্টিশন আবার একটি পার্টিশনে একত্রিত হওয়া উচিত:
10. নোড মুছুন
OTNS-CLI
এর মাধ্যমে নোড মুছুন
নোড 8 মুছুন:
> del 8 Done
নোড 8 সিমুলেশন থেকে অদৃশ্য হওয়া উচিত:
OTNS-Web
মাধ্যমে নোড মুছুন
নোড 5 নির্বাচন করুন এবং ক্লিক করুন নোড 5 মুছে ফেলার জন্য Action Bar
বোতাম:
Node 1
নেতা হওয়া উচিত এবং Node 7
বিচ্ছিন্ন হওয়া উচিত কারণ এটি কোনও রাউটারে পৌঁছাতে পারে না।
সিমুলেশন সাফ করুন (সমস্ত নোড মুছুন)
আপনি OTNS-Web
এর মাধ্যমে সমস্ত নোড মুছে সিমুলেশন সাফ করতে পারেন।
ক্লিক করুন 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 এবং এর নির্ভরতা ইনস্টল করতে হয়। আপনি OTNS এর জন্য OpenThread তৈরি করেছেন এবং OpenThread সিমুলেশন দৃষ্টান্ত সহ OTNS সিমুলেশন শুরু করেছেন। আপনি শিখেছেন কিভাবে OTNS-CLI
এবং OTNS-Web
উভয়ের মাধ্যমে বিভিন্ন উপায়ে সিমুলেশনকে ম্যানিপুলেট করতে হয়।
আপনি এখন জানেন OTNS কি এবং কিভাবে আপনি OpenThread নেটওয়ার্ক অনুকরণ করতে OTNS ব্যবহার করতে পারেন।
এরপর কি?
এই কোডল্যাবগুলির কিছু পরীক্ষা করে দেখুন...
- OpenThread সহ একটি থ্রেড নেটওয়ার্ক অনুকরণ করা
- ডকারে ওপেন থ্রেড ব্যবহার করে একটি থ্রেড নেটওয়ার্ক অনুকরণ করা
- nRF52840 বোর্ড এবং OpenThread সহ একটি থ্রেড নেটওয়ার্ক তৈরি করুন