Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

Simulating a Thread network with OpenThread

26b7f4f6b3ea0700.png

গুগল দ্বারা প্রকাশিত ওপেনথ্রেড হ'ল থ্রেড নেটওয়ার্কিং প্রোটোকলের একটি ওপেন সোর্স বাস্তবায়ন। সংযুক্ত ঘরের জন্য পণ্যের বিকাশের গতি বাড়ানোর জন্য বিকাশকারীদের জন্য নীড় পণ্যগুলিতে ব্যবহৃত প্রযুক্তি ব্যাপকভাবে উপলব্ধ করতে গুগল নেস্ট ওপেনথ্রেড প্রকাশ করেছে।

থ্রেড স্পেসিফিকেশনটি হোম অ্যাপ্লিকেশনগুলির জন্য একটি আইপিভি 6-ভিত্তিক নির্ভরযোগ্য, সুরক্ষিত এবং লো-পাওয়ার ওয়্যারলেস ডিভাইস-টু-ডিভাইস যোগাযোগ প্রোটোকলকে সংজ্ঞায়িত করে। ওপেনথ্রেড ম্যাক সিকিউরিটি, মেশ লিংক স্থাপনা, এবং মেশ রাউটিং সহ আইপিভি,, L লোওয়ান, আইইইই ৮০২.১৫.৪ সহ সমস্ত থ্রেড নেটওয়ার্কিং স্তর প্রয়োগ করে।

এই কোডল্যাব সিমুলেটেড ডিভাইসগুলিতে একটি থ্রেড নেটওয়ার্ক অনুকরণের মাধ্যমে আপনাকে পদচারনা করে।

আপনি কি শিখবেন

  • ওপেনথ্রেড বিল্ড টুলচেন কীভাবে সেট আপ করবেন
  • একটি থ্রেড নেটওয়ার্ক অনুকরণ কিভাবে
  • থ্রেড নোডগুলি কীভাবে প্রমাণীকরণ করবেন
  • ওপেনথ্রেড ডেমোন দিয়ে কীভাবে একটি থ্রেড নেটওয়ার্ক পরিচালনা করবেন

আপনার যা দরকার

  • গিট
  • লিনাক্সের প্রাথমিক জ্ঞান, নেটওয়ার্ক রাউটিং

গিট

এই কোডল্যাবটি সম্পূর্ণ করতে গিটের প্রয়োজন। চালিয়ে যাওয়ার আগে এটি ডাউনলোড করুন এবং ইনস্টল করুন।

গিট ডাউনলোড করুন

একবার ইনস্টল হয়ে গেলে, ওপেনথ্রেড ডাউনলোড এবং বিল্ড করার জন্য আপনার নির্দিষ্ট ওএসের নির্দেশাবলী অনুসরণ করুন।

ম্যাক ওএস এক্স এর জন্য এক্সকোড

ম্যাক ওএস এক্সে ওপেনথ্রেড ইনস্টল করতে এবং তৈরি করতে এক্সকোডের প্রয়োজন।

এক্সকোড ডাউনলোড করুন

এক্সকোড ইনস্টল হওয়ার পরে, এক্সকোড কমান্ড লাইন সরঞ্জামগুলি ইনস্টল করুন:

$ xcode-select --install

লিনাক্স / ম্যাক ওএস এক্সে তৈরি করুন

এই ইনস্টলেশন নির্দেশাবলী উবুন্টু সার্ভার 14.04 এলটিএস এবং ম্যাক ওএস এক্স সিয়েরা 10.12.6 এ পরীক্ষা করা হয়েছে।

ওপেনথ্রেড ইনস্টল করুন। bootstrap কমান্ডগুলি নিশ্চিত করে যে সরঞ্জামচইন ইনস্টল করা আছে এবং পরিবেশটি সঠিকভাবে কনফিগার করা হয়েছে:

$ mkdir -p ~/src
$ cd ~/src
$ git clone --recursive https://github.com/openthread/openthread.git
$ cd openthread
$ ./script/bootstrap
$ ./bootstrap

উইন্ডোজ ব্যবহার

আপনি যদি উইন্ডোজ পছন্দ করেন, আমরা এই কোডল্যাবের ডকার সংস্করণ চেষ্টা করার পরামর্শ দিই।

ডকারে ওপেনথ্রেড সিমুলেশন

আপনার ইনস্টলেশনটি সম্পূর্ণ হয়ে গেলে, ওপেন ট্র্যাড অ্যাপ্লিকেশনটি তৈরি করুন। এই কোডল্যাবের জন্য আমরা সিমুলেশন উদাহরণটি ব্যবহার করছি।

$ cd ~/src/openthread
$ make -f examples/Makefile-simulation

এখন ওপেনথ্রেড ডেমন তৈরি করুন:

$ cd ~/src/openthread
$ make -f src/posix/Makefile-posix DAEMON=1

আপনি এই কোডল্যাবটির জন্য যে উদাহরণটি ব্যবহার করবেন সেটি একটি ন্যূনতম ওপেনথ্রেড অ্যাপ্লিকেশনটি দেখায় যা একটি বেসিক কমান্ড-লাইন ইন্টারফেসের (সিএলআই) মাধ্যমে ওপেন ট্র্যাড কনফিগারেশন এবং পরিচালনা ইন্টারফেসগুলি প্রকাশ করে।

এই অনুশীলনটি আপনাকে অন্য সিমুলেটেড থ্রেড ডিভাইস থেকে একটি সিমুলেটেড থ্রেড ডিভাইস পিং করার জন্য প্রয়োজনীয় সর্বনিম্ন পদক্ষেপগুলি নিয়ে যায়।

নীচের চিত্রটি একটি প্রাথমিক থ্রেড নেটওয়ার্ক টপোলজি বর্ণনা করে। এই অনুশীলনের জন্য, আমরা সবুজ বৃত্তের মধ্যে দুটি নোড অনুকরণ করব: একটি থ্রেড লিডার এবং থ্রেড রাউটার তাদের মধ্যে একটি সংযোগ সহ।

6e3aa07675f902dc.png

একটি নোড পিং

1. নোড 1 শুরু করুন

openthread ডিরেক্টরিতে নেভিগেট করুন এবং ot-cli-ftd বাইনারি ব্যবহার করে সিমুলেটেড থ্রেড ডিভাইসটির জন্য সিএলআই প্রক্রিয়াটিকে ot-cli-ftd

$ cd ~/src/openthread
$ ./output/simulation/bin/ot-cli-ftd 1

এই বাইনারি POSIX শীর্ষে সিমুলেটেড একটি ওপেনথ্রেড ডিভাইস প্রয়োগ করে। আইইইই 802.15.4 রেডিও ড্রাইভারগুলি ইউডিপির শীর্ষে প্রয়োগ করা হয় (আইইইই 802.15.4 ফ্রেমগুলি ইউডিপি পে-লোডের মধ্যে পাস করা হয়)।

1 টির যুক্তি হ'ল একটি ফাইল বর্ণনাকারী যা সিমুলেটেড ডিভাইসের জন্য "ফ্যাক্টরি-নির্ধারিত" আইইইই EUI-64 এর সর্বনিম্ন-তাত্পর্যপূর্ণ বিটগুলি উপস্থাপন করে। আইইইই 802.15.4 রেডিও এমুলেশন (পোর্ট = 9000 + ফাইল বিবরণকারী) এর জন্য কোনও ইউডিপি পোর্টে আবদ্ধ হওয়ার সময়ও এই মানটি ব্যবহৃত হয়। এই কোডল্যাবে সিমুলেটেড থ্রেড ডিভাইসের প্রতিটি উদাহরণ একটি পৃথক ফাইল বর্ণনাকারী ব্যবহার করবে।

দ্রষ্টব্য: সিমুলেটেড ডিভাইসটির জন্য প্রক্রিয়াটি তৈরি করার সময় এই কোডল্যাবে উল্লিখিত হিসাবে কেবল 1 বা ততোধিক ফাইলের ফাইল বর্ণনাকারী ব্যবহার করুন। এর একটি ফাইল বর্ণনাকারী 0 অন্যান্য ব্যবহার জন্য সংরক্ষিত।

আপনি যদি এই আদেশটি চালানোর পরে > প্রম্পটটি না দেখেন তবে enter টিপুন

একটি নতুন অপারেশনাল ডেটাসেট তৈরি করুন এবং এটি সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ। অপারেশনাল ডাটাসেটটি আপনার তৈরি করা থ্রেড নেটওয়ার্কের কনফিগারেশন configuration

> dataset init new
Done
> dataset
Active Timestamp: 1
Channel: 20
Channel Mask: 07fff800
Ext PAN ID: d6263b6d857647da
Mesh Local Prefix: fd61:2344:9a52:ede0/64
Master Key: e4344ca17d1dca2a33f064992f31f786
Network Name: OpenThread-c169
PAN ID: 0xc169
PSKc: ebb4f2f8a68026fc55bcf3d7be3e6fe4
Security Policy: 0, onrcb
Done

এই ডেটাসেটটিকে সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ:

> dataset commit active
Done

আইপিভি 6 ইন্টারফেস আনুন:

> ifconfig up
Done

থ্রেড প্রোটোকল অপারেশন শুরু করুন:

> thread start
Done

কয়েক সেকেন্ড অপেক্ষা করুন এবং যাচাই করুন যে ডিভাইসটি থ্রেড লিডার হয়ে গেছে। লিডার হ'ল রাউটার আইডি অ্যাসাইনমেন্ট পরিচালনার জন্য দায়বদ্ধ।

> state
leader
Done

নোড 1 এর থ্রেড ইন্টারফেসে নির্ধারিত আইপিভি 6 ঠিকানাগুলি দেখুন (আপনার আউটপুট আলাদা হবে):

> ipaddr
fd61:2344:9a52:ede0:0:ff:fe00:fc00
fd61:2344:9a52:ede0:0:ff:fe00:5000
fd61:2344:9a52:ede0:d041:c5ba:a7bc:5ce6
fe80:0:0:0:94da:92ea:1353:4f3b
Done

নির্দিষ্ট IPv6 ঠিকানার ধরণগুলি নোট করুন:

  • fd = জাল-স্থানীয় দিয়ে শুরু হয়
  • fe80 = লিঙ্ক-লোকাল দিয়ে শুরু হয়

জাল-স্থানীয় ঠিকানা ধরণের আরও শ্রেণিবদ্ধ করা হয়েছে:

  • এতে রয়েছে ff:fe00 = রাউটার লোকেটার (আরএলকি)
  • ff:fe00 থাকে না ff:fe00 = শেষ ff:fe00 শনাক্তকারী (EID)

আপনার কনসোল আউটপুটে EID সনাক্ত করুন এটি পরবর্তী ব্যবহারের জন্য একটি নোট তৈরি করুন। উপরের নমুনা আউটপুটে, EID হ'ল:

fd61:2344:9a52:ede0:d041:c5ba:a7bc:5ce6

2. নোড 2 শুরু করুন

একটি নতুন টার্মিনাল খুলুন এবং openthread ডিরেক্টরিতে নেভিগেট করুন এবং সিএলআই প্রক্রিয়াটিকে স্প্যান করুন। এটি আপনার দ্বিতীয় সিমুলেটেড থ্রেড ডিভাইস:

$ cd ~/src/openthread
$ ./output/simulation/bin/ot-cli-ftd 2

আপনি যদি এই আদেশটি চালানোর পরে > প্রম্পটটি না দেখেন তবে enter টিপুন

নোড 1 এর অপারেশনাল ডেটাসেটের মতো একই মান ব্যবহার করে থ্রেড মাস্টার কী এবং প্যান আইডি কনফিগার করুন:

> dataset masterkey e4344ca17d1dca2a33f064992f31f786
Done
> dataset panid 0xc169
Done

এই ডেটাসেটটিকে সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ:

> dataset commit active
Done

আইপিভি 6 ইন্টারফেস আনুন:

> ifconfig up
Done

থ্রেড প্রোটোকল অপারেশন শুরু করুন:

> thread start
Done

ডিভাইসটি শিশু হিসাবে নিজেকে সূচনা করবে। একটি থ্রেড চাইল্ড একটি এন্ড ডিভাইসের সমতুল্য, যা একটি থ্রেড ডিভাইস যা কেবলমাত্র পিতামাতার সাথেই ইউনিকাস্ট ট্র্যাফিক প্রেরণ এবং গ্রহণ করে।

> state
child
Done

2 মিনিটের মধ্যে আপনার child থেকে router রাষ্ট্র পরিবর্তন করতে হবে। একটি থ্রেড রাউটার থ্রেড ডিভাইসের মধ্যে ট্র্যাফিক রাউটিং করতে সক্ষম। এটিকে পিতামাতা হিসাবেও উল্লেখ করা হয়।

> state
router
Done

নেটওয়ার্ক যাচাই করুন

জাল নেটওয়ার্ক যাচাই করার একটি সহজ উপায় হ'ল রাউটারের টেবিলটি দেখা।

1. সংযোগ পরীক্ষা করুন

নোড 2 এ, আরএলক 16 পান। RLOC16 হ'ল ডিভাইসের আরলোক আইপিভি 6 ঠিকানার শেষ 16 টি বিট।

> rloc16
5800
Done

নোড 1 এ, নোড 2 এর আরএলকি 16 এর রাউটার টেবিলটি পরীক্ষা করুন। নোড 2 রাউটার অবস্থায় প্রথমে স্যুইচ করেছে তা নিশ্চিত করুন।

0 বি 2 ডাব 4 এ 20

নোড 1 এর 0xa800 এর 0xa800 পাওয়া যায়, এটি 0xa800 সাথে সংযুক্ত কিনা তা নিশ্চিত করে।

2. নোড 2 থেকে পিং নোড 1

দুটি সিমুলেটেড থ্রেড ডিভাইসগুলির মধ্যে সংযোগটি যাচাই করুন। নোড 2-এ, নোড 1-তে নির্ধারিত EID- কে ping করুন:

> ping fd61:2344:9a52:ede0:d041:c5ba:a7bc:5ce6
> 16 bytes from fd61:2344:9a52:ede0:d041:c5ba:a7bc:5ce6: icmp_seq=1
hlim=64 time=12ms

> সি এল এল প্রম্পটে ফিরে আসতে enter টিপুন।

নেটওয়ার্ক পরীক্ষা করুন

এখন আপনি দুটি সিমুলেটেড থ্রেড ডিভাইসের মধ্যে সাফল্যের সাথে পিং করতে পারেন, একটি নোড অফলাইনে নিয়ে জাল নেটওয়ার্কটি পরীক্ষা করুন।

নোড 1 এ ফিরে আসুন এবং থ্রেড বন্ধ করুন:

> thread stop
Done

নোড 2 এ স্যুইচ করুন এবং রাষ্ট্রটি পরীক্ষা করুন। দুই মিনিটের মধ্যেই নোড 2 সনাক্ত করে যে লিডার (নোড 1) অফলাইন রয়েছে এবং আপনাকে নেটওয়ার্কের leader হতে নোড 2 রূপান্তরটি দেখতে হবে:

> state
router
Done
...
> state
leader
Done

একবার নিশ্চিত হয়ে গেলে, প্রস্থানের আগে থ্রেড এবং ফ্যাক্টরি রিসেট নোড 2 বন্ধ করুন। এই অনুশীলনে আমরা যে থ্রেড নেটওয়ার্ক শংসাপত্রগুলি ব্যবহার করেছি তা পরবর্তী অনুশীলনে না পৌঁছেছে তা নিশ্চিত করার জন্য একটি ফ্যাক্টরি রিসেট করা হয়।

> thread stop
Done
> factoryreset
>
> exit

কারখানার পুনরায় সেট করুন এবং নোড 1 থেকে প্রস্থান করুন:

> factoryreset
>
> exit

সমস্ত উপলভ্য সি এল আই কমান্ড অন্বেষণ করতে ওপেনথ্রেড সি এল এল রেফারেন্সটি দেখুন।

আগের অনুশীলনে, আপনি দুটি সিমুলেটেড ডিভাইস এবং যাচাই করা সংযোগ সহ একটি থ্রেড নেটওয়ার্ক সেট আপ করেছেন। তবে এটি কেবল অযৌক্তিক আইপিভি 6 লিঙ্ক-লোকাল ট্র্যাফিককে ডিভাইসের মধ্যে দিয়ে যেতে দেয়। তাদের মধ্যে গ্লোবাল আইপিভি 6 ট্র্যাফিকের রুট করতে (এবং একটি থ্রেড বর্ডার রাউটার দিয়ে ইন্টারনেট), নোডগুলি অবশ্যই প্রমাণীকরণ করতে হবে।

প্রমাণীকরণের জন্য, একটি ডিভাইস কমিশনার হিসাবে অবশ্যই কাজ করবে। কমিশনার হ'ল নতুন থ্রেড ডিভাইসগুলির জন্য বর্তমানে নির্বাচিত প্রমাণীকরণের সার্ভার এবং ডিভাইসগুলির নেটওয়ার্কে যোগদানের জন্য প্রয়োজনীয় নেটওয়ার্ক শংসাপত্র সরবরাহ করার জন্য পরিচালক izer

এই অনুশীলনে আমরা আগের মতো একই টু-নোড টপোলজি ব্যবহার করব। প্রমাণীকরণের জন্য, থ্রেড লিডার কমিশনার হিসাবে কাজ করবে, থ্রেড রাউটার যোজক হিসাবে।

d6a67e8a0d0b5dcb.png

1. একটি নেটওয়ার্ক তৈরি করুন

যদি আগের অনুশীলন থেকে চালিয়ে যান, আপনার ইতিমধ্যে দুটি টার্মিনাল উইন্ডো খোলা থাকা উচিত। যদি তা না হয় তবে নিশ্চিত হয়ে নিন যে দু'টি উন্মুক্ত এবং ব্যবহারের জন্য প্রস্তুত। একটি নোড 1, অন্যটি নোড 2 হিসাবে পরিবেশন করবে।

নোড 1-এ, সিএলআই প্রক্রিয়াটি উত্সাহিত করেছেন:

$ cd ~/src/openthread
$ ./output/simulation/bin/ot-cli-ftd 1

আপনি যদি এই আদেশটি চালানোর পরে > প্রম্পটটি না দেখেন তবে enter টিপুন

একটি নতুন অপারেশনাল ডেটাসেট তৈরি করুন, এটিকে সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ করুন এবং থ্রেড শুরু করুন:

> dataset init new
Done
> dataset
Active Timestamp: 1
Channel: 12
Channel Mask: 07fff800
Ext PAN ID: e68d05794bf13052
Mesh Local Prefix: fd7d:ddf7:877b:8756/64
Master Key: a77fe1d03b0e8028a4e13213de38080e
Network Name: OpenThread-8f37
PAN ID: 0x8f37
PSKc: f9debbc1532487984b17f92cd55b21fc
Security Policy: 0, onrcb
Done

এই ডেটাসেটটিকে সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ:

> dataset commit active
Done

আইপিভি 6 ইন্টারফেস আনুন:

> ifconfig up
Done

থ্রেড প্রোটোকল অপারেশন শুরু করুন:

> thread start
Done

কয়েক সেকেন্ড অপেক্ষা করুন এবং যাচাই করুন যে ডিভাইসটি থ্রেড লিডার হয়ে গেছে:

> state
leader
Done

2. কমিশনার ভূমিকা শুরু করুন

নোড 1 এ থাকা অবস্থায় কমিশনারের ভূমিকা শুরু করুন:

> commissioner start
Done

J01NME যোগদানকারীর শংসাপত্রের সাথে J01NME ( * ওয়াইল্ডকার্ড ব্যবহার করে) নেটওয়ার্কে J01NME অনুমতি দিন। যোগদানকারী হ'ল এমন একটি ডিভাইস যা কোনও মানব প্রশাসক কমিশনযুক্ত থ্রেড নেটওয়ার্কে যুক্ত হন।

04 বিডি 262510

3. যোগদানকারীর ভূমিকা শুরু করুন

দ্বিতীয় টার্মিনাল উইন্ডোতে, একটি নতুন সি এল এল প্রক্রিয়া বানান। এটি নোড 2।

$ cd ~/src/openthread
$ ./output/simulation/bin/ot-cli-ftd 2

নোড 2 এ, J01NME যোগদানকারীর শংসাপত্র ব্যবহার করে যোগদানকারীর ভূমিকা সক্ষম করুন।

> ifconfig up
Done
> joiner start J01NME
Done

... নিশ্চিতকরণের জন্য কয়েক সেকেন্ড অপেক্ষা করুন ...

Join success

যোগদানকারী হিসাবে, ডিভাইস (নোড 2) সফলভাবে কমিশনার (নোড 1) এর সাথে নিজেকে প্রমাণীকরণ করেছে এবং থ্রেড নেটওয়ার্ক শংসাপত্র পেয়েছে।

নোড 2 এখন যাচাই করা হয়েছে, থ্রেড শুরু করুন:

> thread start
Done

৪. নেটওয়ার্ক প্রমাণীকরণ বৈধ করুন

নোড 2 তে state পরীক্ষা করে দেখুন এটি এখন নেটওয়ার্কে যোগ দিয়েছে ate দুই মিনিটের মধ্যে, নোড 2 থেকে child থেকে router স্থানান্তরিত হয়:

> state
child
Done
...
> state
router
Done

5. কনফিগারেশন পুনরায় সেট করুন

পরবর্তী অনুশীলনের জন্য প্রস্তুত করতে, কনফিগারেশনটি পুনরায় সেট করুন। প্রতিটি নোডে, থ্রেড বন্ধ করুন, একটি কারখানা পুনরায় সেট করুন এবং সিমুলেটেড থ্রেড ডিভাইসটি প্রস্থান করুন:

> thread stop
Done
> factoryreset
>
> exit

factoryreset কমান্ডের পরে > প্রম্পটটি ফিরিয়ে আনতে আপনাকে কয়েকবার enter টিপতে হতে পারে।

এই অনুশীলনের জন্য, আমরা একটি সিএলআই উদাহরণ (একটি একক এম্বেডড এসসি থ্রেড ডিভাইস) এবং একটি রেডিও কো-প্রসেসর (আরসিপি) উদাহরণ অনুকরণ করতে যাচ্ছি।

ot-daemon ওপেনথ্রেড প্যাসিক্স অ্যাপ্লিকেশনটির একটি মোড যা ইউনিক্স সকেটটিকে ইনপুট এবং আউটপুট হিসাবে ব্যবহার করে, যাতে ওপেনথ্রেড কোর একটি পরিষেবা হিসাবে চালাতে পারে। প্রোটোকল হিসাবে ওপেনথ্রেড সিএলআই ব্যবহার করে সকেটের সাথে সংযোগ স্থাপন করে কোনও ক্লায়েন্ট এই পরিষেবাটির সাথে যোগাযোগ করতে পারে।

ot-ctl হ'ল আরসিপি পরিচালনা ও কনফিগার করার জন্য ot-daemon দ্বারা সরবরাহ করা একটি সিএলআই। এটি ব্যবহার করে, আমরা থ্রেড ডিভাইস দ্বারা নির্মিত নেটওয়ার্কের সাথে আরসিপিকে সংযুক্ত করব।

ওটি-ডেমন ব্যবহার করুন

এই অনুশীলনটি নিম্নলিখিতগুলির সাথে মিল রেখে তিনটি টার্মিনাল উইন্ডো ব্যবহার করবে:

  1. সিমুলেটেড থ্রেড ডিভাইসের CLI উদাহরণ (নোড 1)
  2. ot-daemon প্রক্রিয়া
  3. ot-ctl সি ot-ctl এল উদাহরণ

পূর্ববর্তী অনুশীলন থেকে চালিয়ে গেলে আপনার ইতিমধ্যে দুটি টার্মিনাল উইন্ডো খোলা থাকা উচিত। এই অনুশীলনের জন্য আপনার কাছে তিনটি টার্মিনাল উইন্ডো উপলব্ধ রয়েছে তা নিশ্চিত করার জন্য তৃতীয়টি খুলুন।

1. নোড 1 শুরু করুন

প্রথম টার্মিনাল উইন্ডোতে, আপনার সিমুলেটেড থ্রেড ডিভাইসটির জন্য সিএলআই প্রক্রিয়াটি উত্সাহিত করুন:

$ cd ~/src/openthread
$ ./output/simulation/bin/ot-cli-ftd 1

আপনি যদি এই আদেশটি চালানোর পরে > প্রম্পটটি না দেখেন তবে enter টিপুন

একটি নতুন অপারেশনাল ডেটাসেট তৈরি করুন, এটিকে সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ করুন এবং থ্রেড শুরু করুন:

> dataset init new
Done
> dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: 97d584bcd493b824
Mesh Local Prefix: fd55:cf34:dea5:7994/64
Master Key: ba6e886c7af50598df1115fa07658a83
Network Name: OpenThread-34e4
PAN ID: 0x34e4
PSKc: 38d6fd32c866927a4dfcc06d79ae1192
Security Policy: 0, onrcb
Done

এই ডেটাসেটটিকে সক্রিয় হিসাবে প্রতিশ্রুতিবদ্ধ:

> dataset commit active
Done

আইপিভি 6 ইন্টারফেস আনুন:

> ifconfig up
Done

থ্রেড প্রোটোকল অপারেশন শুরু করুন:

> thread start
Done

নোড 1 এর থ্রেড ইন্টারফেসে নির্ধারিত IPv6 ঠিকানাগুলি দেখুন:

> ipaddr
fd55:cf34:dea5:7994:0:ff:fe00:fc00
fd55:cf34:dea5:7994:0:ff:fe00:d000
fd55:cf34:dea5:7994:460:872c:e807:c4ab
fe80:0:0:0:9cd8:aab6:482f:4cdc
Done
>

সিমুলেট একটি থ্রেড নেটওয়ার্ক ধাপে ব্যাখ্যা করা হয়েছে, একটি ঠিকানা লিংক-লোকাল ( fe80 ) এবং তিনটি জাল-স্থানীয় ( fd )। EID হ'ল জাল-স্থানীয় ঠিকানা যা ঠিকানায় ff:fe00 ধারণ করে না। এই নমুনা আউটপুটে, EID fd55:cf34:dea5:7994:460:872c:e807:c4ab

আপনার ipaddr আউটপুট থেকে নির্দিষ্ট EID শনাক্ত করুন, যা নোডের সাথে যোগাযোগের জন্য ব্যবহৃত হবে।

2. ওট-ডেমন শুরু করুন

দ্বিতীয় টার্মিনাল উইন্ডো নেভিগেট সালে openthread ডিরেক্টরি, শুরু ot-daemon একটি RCP নোড, যা আমরা নোড 2. ব্যবহারের ডাকবো জন্য -v যাতে আপনি লগ আউটপুট এবং নিশ্চিত করেন যে এটা চলমান দেখতে পারেন পতাকা বাগাড়ম্বরপূর্ণ:

$ cd ~/src/openthread
$ ./output/posix/bin/ot-daemon -v \
    'spinel+hdlc+forkpty://output/simulation/bin/ot-rcp?forkpty-arg=2'

সফল হলে, ভার্বোস মোডে ot-daemon নিম্নলিখিতগুলির অনুরূপ আউটপুট উত্পন্ন করে:

ot-daemon[228024]: Running OPENTHREAD/20191113-00831-gfb399104; POSIX; Jun 7 2020 18:05:15
ot-daemon[228024]: Thread version: 2
ot-daemon[228024]: RCP version: OPENTHREAD/20191113-00831-gfb399104; SIMULATION; Jun 7 2020 18:06:08

৩. নেটওয়ার্কে যোগ দিতে ওটি-সিটিএল ব্যবহার করুন

আমরা নোড 2 ( ot-daemon আরসিপি) এখনও কোনও থ্রেড নেটওয়ার্কে চালু করি নি। এখানেই ot-ctl আসে ot-ctl সিটিএল ওপেনথ্রেড সি এল এল অ্যাপ্লিকেশন হিসাবে একই সি এল এল ব্যবহার করে। অতএব, আপনি অন্যান্য সিমুলেটেড থ্রেড ডিভাইসগুলির মতো একই পদ্ধতিতে ot-daemon নোডগুলি নিয়ন্ত্রণ করতে পারেন।

তৃতীয় টার্মিনাল উইন্ডোতে, ot-ctl শুরু করুন:

$ ./output/posix/bin/ot-ctl
>

পরীক্ষা করে দেখুন state নোড 2 (RCP নোড) আপনার দিয়ে শুরু ot-daemon :

> state
disabled
Done

নির্দিষ্ট যোগদানকারীর সাথে যোগদানের সীমাবদ্ধ করতে নোড 2 এর eui64 পান:

> eui64
18b4300000000001
Done

নোড 1-এ, কমিশনার শুরু করুন এবং কেবলমাত্র সেই ইউই 64 তে যোগদান সীমাবদ্ধ করুন:

> commissioner start
Done
> commissioner joiner add 18b4300000000001 J01NME
Done

নোড 2 এ, নেটওয়ার্ক ইন্টারফেসটি উপস্থিত করুন এবং নেটওয়ার্কটিতে যোগদান করুন:

> ifconfig up
Done
> joiner start J01NME
Done

... নিশ্চিতকরণের জন্য কয়েক সেকেন্ড অপেক্ষা করুন ...

Join success

যোগদানকারী হিসাবে, আরসিপি (নোড 2) সফলভাবে কমিশনার (নোড 1) এর সাথে নিজেকে প্রমাণীকরণ করেছে এবং থ্রেড নেটওয়ার্ক শংসাপত্র পেয়েছে।

থ্রেড নেটওয়ার্কে এখন নোড 2 এ যোগ দিন:

> thread start
Done

4. নেটওয়ার্ক প্রমাণীকরণ বৈধ করুন

নোড 2 তে state পরীক্ষা করুন, এটি এখন নেটওয়ার্কে যোগ দিয়েছে তা যাচাই করতে। দুই মিনিটের মধ্যে, নোড 2 থেকে child থেকে router স্থানান্তরিত হয়:

> state
child
Done
...
> state
router
Done

5. সংযোগ বৈধতা

ot-ctl + ডি ব্যবহার করে এবং আপনার হোস্ট মেশিনের কমান্ড লাইনে, নোড 1 পিং করুন, পিং ping6 কমান্ডের সাহায্যে এর EID ব্যবহার করে ping6 - ping6 থেকে ping6 । যদি ot-daemon আরসিপি দৃষ্টান্তটি সাফল্যের সাথে যোগ হয় এবং থ্রেড নেটওয়ার্কের সাথে যোগাযোগ করে, পিংটি সফল হয়:

$ ping6 -c 4 fd55:cf34:dea5:7994:460:872c:e807:c4ab
PING fd55:cf34:dea5:7994:460:872c:e807:c4ab (fd55:cf34:dea5:7994:460:872c:e807:c4ab): 56 data bytes
64 bytes from fd55:cf34:dea5:7994:460:872c:e807:c4ab: icmp_seq=0 ttl=64 time=4.568 ms
64 bytes from fd55:cf34:dea5:7994:460:872c:e807:c4ab: icmp_seq=1 ttl=64 time=6.396 ms
64 bytes from fd55:cf34:dea5:7994:460:872c:e807:c4ab: icmp_seq=2 ttl=64 time=7.594 ms
64 bytes from fd55:cf34:dea5:7994:460:872c:e807:c4ab: icmp_seq=3 ttl=64 time=5.461 ms
--- fd55:cf34:dea5:7994:460:872c:e807:c4ab ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 4.568/6.005/7.594/1.122 ms

আপনি সফলভাবে ওপেনথ্রেড ব্যবহার করে আপনার প্রথম থ্রেড নেটওয়ার্ক সিমুলেট করেছেন। অসাধারণ!

এই কোডল্যাবে আপনি কীভাবে শিখলেন:

  • ওপেনথ্রেড বিল্ড টুলচেন সেট আপ করুন
  • একটি থ্রেড নেটওয়ার্ক সিমুলেট করুন
  • থ্রেড নোডগুলি প্রমাণীকরণ করুন
  • ওপেনথ্রেড ডেমনের সাহায্যে একটি থ্রেড নেটওয়ার্ক পরিচালনা করুন

আপনি যদি আরও শিখতে চান তবে এই তথ্যগুলি দেখুন: