OTNS ব্যবহার করে থ্রেড নেটওয়ার্ক অনুকরণ করুন

১. ভূমিকা

থ্রেড মেশ নেটওয়ার্ক টপোলজির ধারণা

থ্রেড এবং OTNS কী?

থ্রেড হলো একটি আইপি-ভিত্তিক স্বল্প-শক্তি সম্পন্ন ওয়্যারলেস মেশ নেটওয়ার্কিং প্রোটোকল যা ডিভাইস-টু-ডিভাইস এবং ডিভাইস-টু-ক্লাউড নিরাপদ যোগাযোগ সক্ষম করে। থ্রেড নেটওয়ার্কগুলো টপোলজি পরিবর্তনের সাথে নিজেদের মানিয়ে নিতে পারে, ফলে কোনো একটি নির্দিষ্ট ব্যর্থতার ঝুঁকি এড়ানো যায়।

গুগল কর্তৃক প্রকাশিত ওপেনথ্রেড হলো থ্রেড-এর একটি ওপেন-সোর্স বাস্তবায়ন। এর কোডের আকার ও মেমরি ব্যবহার কম হওয়া সত্ত্বেও, ওপেনথ্রেড থ্রেড স্পেসিফিকেশনে সংজ্ঞায়িত সমস্ত বৈশিষ্ট্য সমর্থন করে।

ওপেনথ্রেড নেটওয়ার্ক সিমুলেটর (OTNS) ব্যবহার করে পসিক্স প্ল্যাটফর্মে সিমুলেটেড ওপেনথ্রেড নোড চালানোর মাধ্যমে থ্রেড নেটওয়ার্ক সিমুলেট করা যায়। OTNS সিমুলেটেড থ্রেড নেটওয়ার্কগুলো দেখা ও পরিচালনা করার জন্য একটি সহজে ব্যবহারযোগ্য ওয়েব ইন্টারফেস (OTNS-Web) প্রদান করে। পাইথন ব্যবহার করে স্ক্রিপ্টের মাধ্যমে সিমুলেশনও করা সম্ভব।

আপনি যা শিখবেন

  • OTNS এবং এর নির্ভরশীলতাগুলো ইনস্টল করুন
  • OTNS-CLI-এর মূল বিষয়গুলো জেনে নিন।
  • OTNS-Web-এ OpenThread নোড কীভাবে যোগ/স্থানান্তর/মুছে ফেলা যায়
  • নেটওয়ার্ক সিমুলেশন নিয়ন্ত্রণ করতে OTNS-Web-এর অন্যান্য দরকারি বৈশিষ্ট্যগুলো ব্যবহার করুন।
  • OpenThread-এর ব্যর্থতার কোনো একক বিন্দু নেই তা যাচাই করুন
  • Wireshark-এ OpenThread নোডগুলির মধ্যে ডেটা ট্র্যাফিক দেখুন।

এই কোডল্যাবটি ইন্টারেক্টিভ ব্যবহারের জন্য OTNS-CLI এবং OTNS-Web-এর উপর আলোকপাত করে। OTNS-এর অন্যান্য বৈশিষ্ট্য, যেমন পাইথন স্ক্রিপ্টিং, এখানে অন্তর্ভুক্ত করা হয়নি।

আপনার যা যা লাগবে

  • থ্রেড পরিচিতি । এই কোডল্যাবে যা শেখানো হয়েছে তা বোঝার জন্য আপনাকে থ্রেডের মৌলিক ধারণাগুলো জানতে হবে।
  • বিশেষত লিনাক্স x86_64, অথবা হোমব্রু সহ ম্যাক ওএস। উইন্ডোজ WSL2- তে উবুন্টু সংস্করণ ২৪ বা তার উচ্চতর সংস্করণও কাজ করা উচিত, তবে এর জন্য সেটিংসে কিছু ম্যানুয়াল পরিবর্তনের প্রয়োজন হতে পারে।
  • গিট
  • ওয়েব ব্রাউজার। OTNS-Web সিমুলেশনগুলো প্রদর্শনের জন্য একটি ওয়েব ব্রাউজার ব্যবহার করে।
  • ওয়্যারশার্ক নেটওয়ার্ক প্রোটোকল অ্যানালাইজার (ঐচ্ছিক)।
  • গো সংস্করণ ১.২৩ বা উচ্চতর।
    • ইনস্টলেশন স্ক্রিপ্টটি ইনস্টল করা Go ভার্সনটি যাচাই করবে।
    • যদি Go ইনস্টল করা না থাকে, তাহলে প্যাকেজ ম্যানেজারে উপলব্ধ থাকলে এটি 1.23 বা তার চেয়ে বড় কোনো সংস্করণ ইনস্টল করবে।
    • প্যাকেজ ম্যানেজারে উপলব্ধ না থাকলে, ম্যানুয়াল ইনস্টলেশন প্রয়োজন।
    • উল্লেখ্য যে, উবুন্টু ২৪.০৪ বা তার নিম্নতর সংস্করণ স্বয়ংক্রিয়ভাবে গো ১.২৩ সমর্থন করে না। বিস্তারিত জানতে উবুন্টু ডকুমেন্টেশনের ‘Available Golang versions’ পৃষ্ঠাটি দেখুন। snap বা অন্যান্য পদ্ধতি ব্যবহার করে ম্যানুয়াল ইনস্টলেশন করা সম্ভব।
  • পাইথন সংস্করণ ৩.৯ বা উচ্চতর।
    • ইনস্টলেশন স্ক্রিপ্টটি ইনস্টল করা পাইথন সংস্করণটি যাচাই করবে।
    • যদি পাইথন ৩ আগে থেকে ইনস্টল করা না থাকে, তাহলে প্যাকেজ ম্যানেজারে উপলব্ধ থাকলে এটি ৩.৯ বা তার চেয়ে বড় কোনো সংস্করণ ইনস্টল করবে।
    • প্যাকেজ ম্যানেজারে উপলব্ধ না থাকলে, ম্যানুয়াল ইনস্টলেশন প্রয়োজন।

পরিভাষা

"রাউটার" শব্দটি থ্রেড মেশ এক্সটেন্ডারের প্রযুক্তিগত পরিভাষা হিসেবে ব্যবহৃত হয়, যাকে প্রাথমিকভাবে থ্রেড রাউটার বলা হতো। "নোড" বলতে একটি OTNS সিমুলেশনে যেকোনো সিমুলেটেড ওপেনথ্রেড ডিভাইসকে বোঝায়।

২. স্থাপন

OTNS কোড পান

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

এই কোডল্যাবের পরবর্তী সমস্ত কনসোল কমান্ড otns ডিরেক্টরি থেকে চালানো হয়।

বুটস্ট্র্যাপ এবং ইনস্টল করুন

bootstrap স্ক্রিপ্টটি ডিপেন্ডেন্সিগুলো (প্রয়োজনে পাইথন ৩ এবং গো/গোল্যাং সহ) এবং OTNS ইনস্টল করবে। উল্লেখ্য যে, স্ক্রিপ্টটি কিছু নির্দিষ্ট ডিপেন্ডেন্সি, যেমন পাইথন ভার্সন >= ৩.৯ অথবা গো ভার্সন >= ১.২৩, স্বয়ংক্রিয়ভাবে ইনস্টল করতে না পারলে থেমে যেতে পারে। স্বয়ংক্রিয় ইনস্টলেশনের জন্য প্যাকেজগুলোকে অপারেটিং সিস্টেমের কনফিগার করা প্যাকেজ রিপোজিটরিতে খুঁজে পাওয়া আবশ্যক।

স্ক্রিপ্টটি সিমুলেশনে সরাসরি ব্যবহারযোগ্য বিভিন্ন ওটি নোড টাইপও তৈরি করে এবং কিছু প্রাথমিক পরীক্ষাও সম্পাদন করে। এই নোডগুলো তৈরির কারণে এতে কয়েক মিনিট সময় লাগতে পারে।

$ ./script/bootstrap
....
....
OTNS installed - use 'otns' to start it.
$

স্ক্রিপ্টটি চালানোর সময় আপনাকে sudo এর জন্য একটি পাসওয়ার্ড দিতে বলা হতে পারে।

যদি otns সঠিকভাবে ইনস্টল করা না থাকে

স্ক্রিপ্টটি নিম্নলিখিত ধরনের একটি ত্রুটি রিপোর্ট করতে পারে:

....
OTNS installed - please add ~/go/bin to your PATH variable first, to use it.
$

এক্ষেত্রে, আপনাকে আপনার $PATH ভেরিয়েবলে $(go env GOPATH)/bin যোগ করতে হবে।

অন্যান্য ত্রুটির ক্ষেত্রে, একটি গিটহাব ইস্যু তৈরি করা যেতে পারে।

৩. প্রথমবারের জন্য OTNS চালান

রান otns :

$ otns
>_ ← OTNS-CLI prompt

সফলভাবে চালু হলে, OTNS একটি CLI কনসোলে ( OTNS-CLI ) প্রবেশ করবে এবং নেটওয়ার্ক দেখা ও পরিচালনার জন্য একটি ওয়েব ব্রাউজার ( OTNS-Web ) চালু করবে:

শুরুতে OTNS-ওয়েব উইন্ডো

যদি আপনি OTNS-Web-এর জন্য শুধু একটি ফাঁকা পৃষ্ঠা দেখতে পান, তাহলে সম্ভবত আপনার ব্রাউজারে WebGL সক্রিয় করা নেই। WebGL কীভাবে সক্রিয় করতে হয়, তা জানতে অনুগ্রহ করে https://superuser.com/a/836833 দেখুন।

পরবর্তী বিভাগগুলিতে, আপনি OTNS-CLI এবং OTNS-Web এর মাধ্যমে OTNS সিমুলেশনগুলি পরিচালনা করতে শিখবেন।

৪. OTNS-CLI ও OTNS-Web সম্পর্কে জানুন

ওটিএনএস-সিএলআই

OTNS-CLI হলো OTNS সিমুলেশন পরিচালনার জন্য ব্যবহৃত কমান্ড লাইন ইন্টারফেস (CLI)।

$ otns
>_ ← OTNS-CLI prompt

আপনি OTNS-CLI এর মাধ্যমে কমান্ড টাইপ করতে পারেন। কমান্ডের সম্পূর্ণ তালিকার জন্য OTNS CLI রেফারেন্স দেখুন। চিন্তা করবেন না, এই কোডল্যাবে আপনি এই কমান্ডগুলোর মধ্যে মাত্র কয়েকটি ব্যবহার করবেন।

CLI কমান্ডগুলোর একটি সার্বিক ধারণা পেতে help কমান্ডটি টাইপ করুন। এই তালিকাটি CLI রেফারেন্সের অনুরূপ।

> help
add             Add a node to the simulation and get the node ID.
....
....
Done
> 

কোনো নির্দিষ্ট কমান্ড সম্পর্কে আরও সাহায্য পেতে, কমান্ডটির নামটি ব্যবহার করুন, উদাহরণস্বরূপ:

> help add
add
  Add a node to the simulation and get the node ID.
  
Definition:
....
....
> 

ওটিএনএস-ওয়েব

OTNS-Web হলো OTNS-এর নেটওয়ার্ক ভিজ্যুয়ালাইজেশন এবং ম্যানেজমেন্ট টুল। এটি সিমুলেটেড থ্রেড নেটওয়ার্কের নোড, মেসেজ এবং লিঙ্কগুলোর একটি ভিজ্যুয়াল উপস্থাপনা প্রদান করে। OTNS-Web এর বিভিন্ন উপাদানগুলো লক্ষ্য করুন:

OTNS-Web উপাদানগুলির ব্যাখ্যা

৫. নোড যোগ করুন

OTNS-CLI এর মাধ্যমে নোড যোগ করুন

সিমুলেশনে একটি মেশ এক্সটেন্ডার ( router নোড টাইপ ব্যবহার করে) যোগ করুন:

> add router
1
Done

আপনি OTNS-Web এ একটি নোড তৈরি হতে দেখবেন। নোডটি একটি মেশ এক্সটেন্ডার হিসেবে শুরু হয় এবং কয়েক সেকেন্ডের মধ্যে লিডার হয়ে যায়:

লিডার ভূমিকায় একটি নোড

ইন্টারেক্টিভভাবে সিমুলেশন সহজে শুরু করার জন্য, প্রতিটি নতুন ওপেনথ্রেড নোড ডিফল্টরূপে এক সেট স্ট্যান্ডার্ড নেটওয়ার্ক প্যারামিটার দিয়ে চালু করা হয়।

OTNS-CLI এর মাধ্যমে আরও নোড যোগ করুন

এখন আমরা বিভিন্ন ধরণের কিছু নোড যোগ করব।

> add fed
2
Done
> add med
3
Done
> add sed
4
Done

নোডগুলো একটি পার্টিশনে একীভূত হওয়ার জন্য কয়েক সেকেন্ড অপেক্ষা করুন। আপনি OTNS-Web এ নোডগুলো দেখতে পাবেন।

৪টি নোড সহ থ্রেড নেটওয়ার্ক

এছাড়াও OTNS-Web এ, যেকোনো নোড নির্বাচন করে সেই নোড সম্পর্কে আরও তথ্যসহ একটি প্যানেল পাওয়া যায়। উদাহরণস্বরূপ, নিচের চিত্রে নোড ১ নির্বাচন করা হয়েছে। প্যানেলের 'Role' এন্ট্রিটি নিশ্চিত করে যে এটি একজন লিডার।

৪টি নোড বিশিষ্ট থ্রেড নেটওয়ার্ক, নোড ১ নির্বাচিত হয়েছে

OTNS-Web এর মাধ্যমে নোড যোগ করুন

আপনি OTNS-Web এর মাধ্যমেও নোড যোগ করতে পারেন। Action Bar ' New Router বোতামে ক্লিক করুন। আপনি নির্বাচিত নোডটির ডানদিকে একটি নোড তৈরি হতে দেখবেন। নতুন মেশ এক্সটেন্ডারটি বিদ্যমান থ্রেড পার্টিশনে যুক্ত হবে।

একটি মেশ এক্সটেন্ডার যোগ করা হয়েছে, মোট ৫টি নোড।

এছাড়াও এই অন্যান্য ধরণের নোডগুলি তৈরি করতে অ্যাকশন বারে থাকা FED, MED, SSED, এবং BR বোতামগুলিতে ক্লিক করুন। এখন মোট ৯টি নোড থাকা উচিত। আপনি চাইলে, একটি ভিন্ন ভৌত নেটওয়ার্ক টপোলজি তৈরি করতে কিছু নোডকে টেনে অন্য অবস্থানে সরাতে পারেন।

একাধিক নতুন নোড যোগ করা হয়েছে, মোট ৯টি নোড।

এখন আপনি একটি পার্টিশনের একটি থ্রেড নেটওয়ার্ক তৈরি করেছেন, যেটিতে অনেকগুলো নোড রয়েছে। পরবর্তী অংশে, আমরা সিমুলেশনকে আরও দ্রুত চালানোর জন্য এর গতি সমন্বয় করব।

৬. গতি সমন্বয় করুন

বর্তমানে, সিমুলেশনটি 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

৭. রেডিও চালু/বন্ধ করুন

এখন, সিমুলেশনটিতে কমপক্ষে ২টি মেশ এক্সটেন্ডার (ষড়ভুজ আকৃতি), সম্ভবত একটি বর্ডার রাউটার (বর্গাকার আকৃতি) এবং অনেকগুলো চাইল্ড থাকা উচিত এবং এটি ১০ গুণ গতিতে চলে।

দুটি মেশ এক্সটেন্ডারের বর্তমান লিডার (লাল বর্ডার) খুঁজুন, সেটিকে নির্বাচন করতে একবার ক্লিক করুন:

লিডার নোড ১ সহ থ্রেড নেটওয়ার্ক নির্বাচিত

রেডিও বন্ধ করুন

ক্লিক করুন রেডিও বন্ধ বোতাম লিডার নোডের রেডিও বন্ধ করতে অ্যাকশন বারের বাটনটি ব্যবহার করুন। রেডিও বন্ধ থাকলে লিডার বার্তা পাঠাতে বা গ্রহণ করতে পারবে না।

অন্য মেশ এক্সটেন্ডার বা বর্ডার রাউটারটির নতুন লিডার হওয়ার জন্য প্রায় ১২ সেকেন্ড (সিমুলেটিং সময়ে ১২০ সেকেন্ড) অপেক্ষা করুন:

নোড ৯-কে নতুন লিডার করে নতুন পার্টিশন গঠিত হয়েছে।

থ্রেড নেটওয়ার্কটি লিডার ব্যর্থতা থেকে স্বয়ংক্রিয়ভাবে পুনরুদ্ধার হয় এবং একটি নতুন লিডারসহ একটি নতুন পার্টিশন গঠন করে। নতুন পার্টিশনটির একটি নতুন পার্টিশন রঙও থাকে।

রেডিও চালু করুন

সেই লিডারকে নির্বাচন করুন যার রেডিও বন্ধ করা হয়েছিল। ক্লিক করুন রেডিও অন বাটন রেডিও সংযোগ পুনরুদ্ধার করতে Action Bar বোতাম:

নোড ১-এর রেডিও পুনরায় চালু হওয়ার পর এটি পার্টিশনে যোগদান করে।

রেডিও সংযোগ পুনরুদ্ধার হওয়ার পর লিডারকে নেটওয়ার্কের সাথে পুনরায় সংযুক্ত হতে হবে।

৮. নোডগুলি সরান

OTNS ব্যবহারকারীদের OTNS-CLI বা OTNS-Web মাধ্যমে সহজেই নোড স্থানান্তর করতে সক্ষম করে।

OTNS-CLI এর মাধ্যমে নোড স্থানান্তর করুন

বর্ডার রাউটার নোড ৯-কে একটি নতুন অবস্থানে সরান:

> move 9 50 50
Done

OTNS-Web এর মাধ্যমে নোড স্থানান্তর করুন

নোড ৫-কে টেনে একদম নিচের ডানদিকে নিয়ে যান। যেহেতু নোড ৫ এখন অন্য মেশ এক্সটেন্ডারগুলোর রেডিও কভারেজের বাইরে, তাই এটি একটি নতুন পার্টিশন আইডি সহ নিজস্ব একটি পার্টিশন তৈরি করে। নোডগুলোতে ক্লিক করে নোড ইনফরমেশন প্যানেল থেকে পার্টিশন আইডিগুলো যাচাই করা যাবে।

নোড ৫-কে অন্যান্য নোডগুলো থেকে দূরে সরিয়ে একটি নতুন পার্টিশন গঠন করা হয়।

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

৯. নোডগুলি মুছুন

OTNS-CLI এর মাধ্যমে নোডগুলি মুছে ফেলুন

নোড ৫ মুছে ফেলুন:

> del 5
Done

সিমুলেশন থেকে নোড ৫ অদৃশ্য হয়ে যাওয়া উচিত:

সিমুলেশন থেকে নোড ৫ মুছে ফেলা হয়েছে।

OTNS-Web এর মাধ্যমে নোডগুলি মুছে ফেলুন

বর্ডার রাউটার নোড ৯ নির্বাচন করুন এবং ক্লিক করুন ডিলিট বোতাম নোড ৯ মুছে ফেলার জন্য Action Bar বাটন:

বর্ডার রাউটার নোড ৯ মুছে ফেলা হয়েছে

Node 1 নতুন পার্টিশনের লিডার হবে এবং বাকি সব নোড এর চাইল্ড হিসেবে যুক্ত হবে।

১০. OTNS-CLI নোড কনটেক্সট

OTNS-CLI নোডের সাথে সহজে যোগাযোগের জন্য নোড কনটেক্সট মোড প্রদান করে, যা ডেভেলপারদের একটি নোডের অবস্থা নির্ণয় করতে সাহায্য করে। এছাড়াও, এই মোড থেকে নোডের বিভিন্ন কার্যক্রম শুরু করা যায়।

নোড কনটেক্সট মোডে প্রবেশ করুন

নোড ১-এর নোড কনটেক্সট প্রবেশ করান:

> node 1
Done
node 1>

The CLI prompt changed to node 1> , indicating the current node context. You can type in OpenThread CLI commands to be executed on the node as if you are interacting with the node directly.

নোড কনটেক্সটে কমান্ড কার্যকর করুন

node 1> state
leader
Done
node 1> channel
11
Done
node 1> panid
0xface
Done
node 1> networkname
otns
Done
node 1> ipaddr
fdde:ad00:beef:0:0:ff:fe00:fc00
fdde:ad00:beef:0:0:ff:fe00:b400
fd00:f00d:cafe:0:2505:8719:3685:ebfb
fdde:ad00:beef:0:4fd9:b9ba:44e0:96cb
fe80:0:0:0:e86a:e07:ec97:777
Done

অন্য নোড প্রসঙ্গে স্যুইচ করুন

node 1> node 2
Done
node 2> 

প্রস্থান নোড প্রসঙ্গ

node 1> exit
Done
>

নোড কনটেক্সট থেকে বেরিয়ে আসার একটি বিকল্প উপায় হলো node 0 কমান্ড।

১১. নোড লগ এবং প্যাকেট ক্যাপচার দেখা

ওপেনথ্রেড নোড লগ

ডিফল্টরূপে, OTNS সমস্ত সিমুলেটেড OpenThread নোডের জন্য বিস্তারিত লগ ফাইল তৈরি করে। এগুলি ./tmp ডিরেক্টরিতে দেখা যায়। ফাইলের নাম 0_ .log . উদাহরণস্বরূপ, একটি লগ ফাইলের অংশবিশেষ নিচে দেখানো হলো:

7616488 00:00:06.326 [I] MeshForwarder-: Received IPv6 UDP msg, len:90, chksum:5915, ecn:no, from:ca72650db7b856af, sec:no, prio:net, rss:-58.0
7616488 00:00:06.326 [I] MeshForwarder-:     src:[fe80:0:0:0:c872:650d:b7b8:56af]:19788
7616488 00:00:06.326 [I] MeshForwarder-:     dst:[ff02:0:0:0:0:0:0:1]:19788
7616488 00:00:06.326 [D] Mle-----------: Receive MLE message
7616488 00:00:06.326 [D] Mac-----------: Idle mode: Radio receiving on channel 11
7657544 00:00:06.367 [D] Mac-----------: ==============================[RX len=063]==============================
7657544 00:00:06.367 [D] Mac-----------: | 41 D8 7F CE FA FF FF 46 | 74 5A 33 9E 76 51 4E 7F | A......FtZ3.vQN. |
7657544 00:00:06.367 [D] Mac-----------: | 3B 02 F0 4D 4C 4D 4C 81 | E6 00 15 03 00 00 00 00 | ;..MLML......... |
7657544 00:00:06.367 [D] Mac-----------: | 00 00 00 01 46 86 7D FE | 06 CC DB 94 86 9C 88 0B | ....F.}......... |
7657544 00:00:06.367 [D] Mac-----------: | 1C 1E 26 9B 8D 21 2E 65 | 53 5A 43 4E A2 59 D6    | ..&..!.eSZCN.Y.  |
7657544 00:00:06.367 [D] Mac-----------: ------------------------------------------------------------------------
7657544 00:00:06.367 [I] MeshForwarder-: Received IPv6 UDP msg, len:84, chksum:81e6, ecn:no, from:4e51769e335a7446, sec:no, prio:net, rss:-48.0
7657544 00:00:06.367 [I] MeshForwarder-:     src:[fe80:0:0:0:4c51:769e:335a:7446]:19788
7657544 00:00:06.367 [I] MeshForwarder-:     dst:[ff02:0:0:0:0:0:0:2]:19788
7657544 00:00:06.367 [D] Mac-----------: Idle mode: Radio receiving on channel 11
7833912 00:00:06.543 [I] Mle-----------: AttachState ParentReq -> Idle
7833912 00:00:06.543 [N] RouterTable---: Allocate router id 12
7833912 00:00:06.543 [N] Mle-----------: RLOC16 fffe -> 3000
7833912 set node RLOC16: fffe -> 3000
7833912 00:00:06.543 [D] SubMac--------: RadioShortAddress: 0x3000
7833912 00:00:06.543 [N] Mle-----------: Role detached -> leader
7833912 00:00:06.543 [N] Mle-----------: Partition ID 0x24c35f10
7833912 00:00:06.543 [I] RouterTable---: Route table
7833912 00:00:06.543 [I] RouterTable---:     12 0x3000 - me - leader

বাম দিকে মাইক্রোসেকেন্ডে পরম সিমুলেশন সময় দেখানো হয়েছে। hh:mm:ss টাইমস্ট্যাম্পটি ওপেনথ্রেড নোডের নিজস্ব লগ টাইমস্ট্যাম্প দেখায়, যা পরম সিমুলেশন সময় থেকে ভিন্ন হতে পারে।

ওয়্যারশার্ক প্যাকেট ক্যাপচার

ডিফল্টরূপে, প্রেরিত সমস্ত IEEE 802.15.4 ফ্রেম current.pcap PCAP ফাইলে ক্যাপচার করা হয়। সিমুলেশন চলাকালীন বা পরে Wireshark এই ফাইলটি পড়তে পারে। থ্রেডের লিঙ্ক-লেয়ার এনক্রিপশনের কারণে, OTNS-এর জন্য ডিক্রিপশন কী সঠিকভাবে সেট করতে Wireshark-এ একবারের জন্য কনফিগারেশন করার প্রয়োজন হয়। ডিফল্টরূপে, একটি সুপরিচিত নেটওয়ার্ক কী ব্যবহার করা হয়, যাতে Wireshark দ্বারা ফ্রেম ডিক্রিপশন সহজ হয়।

Wireshark-এ OpenThread প্যাকেট পরিদর্শনের একটি উদাহরণের জন্য নিচের স্ক্রিনশটটি দেখুন।

Wireshark-এ OpenThread প্যাকেট বিশ্লেষণের স্ক্রিনশট

To configure the decryption key, select in the menu Edit -> Preferences . Then in the preferences window, select Protocols -> IEEE 802.15.4 . Click the Edit... button next to "Decryption Keys". Click + to create a new entry and enter the key 00112233445566778899aabbccddeeff (32 characters) and select "Thread hash" in the "Key hash" field. The "Decryption key index" can be left to 0 . Then click OK , and OK again. Now the OTNS PCAP file should properly decrypt when loaded.

"Time" কলামে দেখানো টাইমস্ট্যাম্পগুলো (সেকেন্ডে) OpenThread নোড লগে প্রদর্শিত পরম সিমুলেশন সময়ের মানের সাথে মিলে যায়। এর ফলে লগ বার্তাগুলোকে প্রেরিত বা গৃহীত রেডিও ফ্রেমের সাথে সম্পর্কযুক্ত করা সহজ হয়। তবে, এই মানগুলো সাধারণত একক মাইক্রোসেকেন্ড নির্ভুলতা পর্যন্ত অভিন্ন হয় না: OpenThread স্ট্যাক দ্বারা একটি রেডিও ফ্রেম পাঠানোর অনুরোধ করার পরে, সিমুলেটেড IEEE 802.15.4 রেডিও হার্ডওয়্যার কিছু অতিরিক্ত বিলম্ব যোগ করতে পারে।

১২. অভিনন্দন

অভিনন্দন, আপনি সফলভাবে আপনার প্রথম OTNS সিমুলেশনটি সম্পন্ন করেছেন!

আপনি OTNS এবং এর নির্ভরশীলতাগুলো ইনস্টল করার পদ্ধতি শিখেছেন। আপনি OpenThread সিমুলেটেড নোড ব্যবহার করে একটি OTNS সিমুলেশন শুরু করেছেন। আপনি OTNS-CLI এবং OTNS-Web উভয়ের মাধ্যমেই বিভিন্ন উপায়ে সিমুলেশনটি পরিচালনা করার পদ্ধতি শিখেছেন।

আপনি এখন জানেন OTNS কী এবং কীভাবে OTNS ব্যবহার করে OpenThread নেটওয়ার্ক সিমুলেট করা যায়।

এরপর কী?

এই কোডল্যাবগুলো দেখে নিন...

রেফারেন্স নথি