গুগল দ্বারা প্রকাশিত ওপেনথ্রেড হ'ল থ্রেড নেটওয়ার্কিং প্রোটোকলের একটি ওপেন সোর্স বাস্তবায়ন। সংযুক্ত ঘরের জন্য পণ্যের বিকাশের গতি বাড়ানোর জন্য বিকাশকারীদের জন্য নীড় পণ্যগুলিতে ব্যবহৃত প্রযুক্তি ব্যাপকভাবে উপলব্ধ করতে গুগল নেস্ট ওপেনথ্রেড প্রকাশ করেছে।
থ্রেড স্পেসিফিকেশনটি হোম অ্যাপ্লিকেশনগুলির জন্য একটি আইপিভি 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
আপনি এই কোডল্যাবটির জন্য যে উদাহরণটি ব্যবহার করবেন সেটি একটি ন্যূনতম ওপেনথ্রেড অ্যাপ্লিকেশনটি দেখায় যা একটি বেসিক কমান্ড-লাইন ইন্টারফেসের (সিএলআই) মাধ্যমে ওপেন ট্র্যাড কনফিগারেশন এবং পরিচালনা ইন্টারফেসগুলি প্রকাশ করে।
এই অনুশীলনটি আপনাকে অন্য সিমুলেটেড থ্রেড ডিভাইস থেকে একটি সিমুলেটেড থ্রেড ডিভাইস পিং করার জন্য প্রয়োজনীয় সর্বনিম্ন পদক্ষেপগুলি নিয়ে যায়।
নীচের চিত্রটি একটি প্রাথমিক থ্রেড নেটওয়ার্ক টপোলজি বর্ণনা করে। এই অনুশীলনের জন্য, আমরা সবুজ বৃত্তের মধ্যে দুটি নোড অনুকরণ করব: একটি থ্রেড লিডার এবং থ্রেড রাউটার তাদের মধ্যে একটি সংযোগ সহ।
একটি নোড পিং
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
এই অনুশীলনে আমরা আগের মতো একই টু-নোড টপোলজি ব্যবহার করব। প্রমাণীকরণের জন্য, থ্রেড লিডার কমিশনার হিসাবে কাজ করবে, থ্রেড রাউটার যোজক হিসাবে।
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
অনুমতি দিন। যোগদানকারী হ'ল এমন একটি ডিভাইস যা কোনও মানব প্রশাসক কমিশনযুক্ত থ্রেড নেটওয়ার্কে যুক্ত হন।
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
দ্বারা সরবরাহ করা একটি সিএলআই। এটি ব্যবহার করে, আমরা থ্রেড ডিভাইস দ্বারা নির্মিত নেটওয়ার্কের সাথে আরসিপিকে সংযুক্ত করব।
ওটি-ডেমন ব্যবহার করুন
এই অনুশীলনটি নিম্নলিখিতগুলির সাথে মিল রেখে তিনটি টার্মিনাল উইন্ডো ব্যবহার করবে:
- সিমুলেটেড থ্রেড ডিভাইসের CLI উদাহরণ (নোড 1)
-
ot-daemon
প্রক্রিয়া -
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
আপনি সফলভাবে ওপেনথ্রেড ব্যবহার করে আপনার প্রথম থ্রেড নেটওয়ার্ক সিমুলেট করেছেন। অসাধারণ!
এই কোডল্যাবে আপনি কীভাবে শিখলেন:
- ওপেনথ্রেড বিল্ড টুলচেন সেট আপ করুন
- একটি থ্রেড নেটওয়ার্ক সিমুলেট করুন
- থ্রেড নোডগুলি প্রমাণীকরণ করুন
- ওপেনথ্রেড ডেমনের সাহায্যে একটি থ্রেড নেটওয়ার্ক পরিচালনা করুন
আপনি যদি আরও শিখতে চান তবে এই তথ্যগুলি দেখুন: