কমিশনযোগ্য আবিষ্কার
কমিশনিং-এর আগে কমিশনযোগ্য আবিষ্কার ঘটে এবং এটি একটি কমিশনযোগ্য নোড খুঁজে বের করা ও শনাক্ত করার প্রক্রিয়াকে বোঝায়। তিনটি পদ্ধতির মাধ্যমে একটি কমিশনযোগ্য নোড নিজেকে প্রচার করতে পারে:
- Bluetooth লো এনার্জি (BLE)
- ওয়াই-ফাই সফট এপি
- একটি আইপি নেটওয়ার্কে ডিএনএস-এসডি , যা একটি বিদ্যমান আইপি-যুক্ত নেটওয়ার্ক হিসেবেও পরিচিত।
উভয় পদ্ধতিতেই, কমিশনযোগ্য নোডটি সারণি ১- এ দেখানো তথ্য প্রচার করে।
| মাঠ | দৈর্ঘ্য | প্রয়োজনীয় |
|---|---|---|
| বৈষম্যকারী | ১২ বিট | হ্যাঁ |
| বিক্রেতার আইডি | ১৬ বিট | না |
| পণ্যের আইডি | ১৬ বিট | না |
| বর্ধিত ডেটা | পরিবর্তনশীল | না |
Matter স্পেসিফিকেশন অনুযায়ী, ভেন্ডর আইডি এবং প্রোডাক্ট আইডি আবশ্যক নয়, তবে অন্তর্ভুক্ত করা যেতে পারে। ডিসক্রিমিনেটর বাধ্যতামূলক এবং কমিশনিং প্রক্রিয়ার সময় সঠিক ডিভাইসটি প্রোভিশন করার জন্য এটি অত্যন্ত গুরুত্বপূর্ণ, বিশেষত যদি একই সময়ে একাধিক অভিন্ন ডিভাইস সংযুক্ত থাকে। কাস্টম ভেন্ডর-নির্দিষ্ট তথ্য এনকোড করার জন্য এক্সটেন্ডেড ডেটা ব্যবহার করা যেতে পারে।
অনেক ডিভাইস চালু হওয়ার পর অল্প সময়ের জন্য (~৩-১৫ মিনিট) বিজ্ঞাপন দেয়। অন্যান্য ডিভাইসগুলোর বিজ্ঞাপন দেওয়া শুরু করা উচিত নয়, কারণ হয় তাদের প্রাথমিক নিয়ন্ত্রণ ফ্যাব্রিক থেকে আসে না অথবা লকের মতো ডিভাইসগুলোর স্বয়ংক্রিয় অপ্রস্তুত বিজ্ঞাপন দেওয়া নিরাপদ নয়। সারণি ২-এ এই আচরণের সারসংক্ষেপ দেওয়া হয়েছে।
| প্রাথমিক ডিভাইস ফাংশন | স্বয়ংক্রিয় ঘোষণা |
|---|---|
| তালা এবং প্রতিবন্ধক প্রবেশ ডিভাইস | না |
| অধিকাংশ নিয়ন্ত্রণই উপাদান থেকে আসে। উদাহরণস্বরূপ, সুইচ বা লাইট বাল্ব। | হ্যাঁ |
| বেশিরভাগ নিয়ন্ত্রণ কাপড় থেকে আসে না। উদাহরণস্বরূপ, ডিশওয়াশার বা রেফ্রিজারেটর। | না |
ব্লুটুথ লো এনার্জি
বিজ্ঞাপনের এই মোডে, কমিশনার BLE বিজ্ঞাপন দেখতে পাবেন। কমিশনিকে অবশ্যই একটি জেনেরিক অ্যাক্সেস প্রোফাইল (GAP) পেরিফেরাল ইন্টারফেস প্রয়োগ করতে হবে এবং পর্যায়ক্রমে এর আনকমিশনড অবস্থার বিজ্ঞাপন দিতে হবে। একটি ডিভাইস চালু হওয়ার পর প্রথম ৩০ সেকেন্ডের জন্য বিজ্ঞাপনের ফ্রিকোয়েন্সি অবশ্যই উচ্চ থাকতে হবে, যা ২০ থেকে ৬০ মিলিসেকেন্ডের ব্যবধানে ঘটবে।
৩০ সেকেন্ড পর, ডিভাইসটিকে অবশ্যই ১৫০ থেকে ১৫০০ মিলিসেকেন্ডের ব্যবধানে একটি নিম্ন ফ্রিকোয়েন্সিতে বিজ্ঞাপন দিতে হবে। প্রথম ফ্যাব্রিকে চালু করার সময়, ডিভাইসটিকে অবশ্যই তার BLE বিজ্ঞাপন বন্ধ করতে হবে।
কমিশনারকে স্ক্যান অনুরোধ জারি করার প্রয়োজন নেই। এটির তিনটি BLE অ্যাডভার্টাইজিং চ্যানেলে—৩৭ (২৪০২ মেগাহার্টজ), ৩৮ (২৪২৬ মেগাহার্টজ) এবং ৩৯ (২৪৮০ মেগাহার্টজ)—একটি প্যাসিভ স্ক্যান করা উচিত। এই চ্যানেলগুলো স্পেকট্রামের এমন অঞ্চল থেকে বাছাই করা হয় যেখানে ওয়াই-ফাই চ্যানেলের সাথে ওভারল্যাপ ন্যূনতম, যা ক্রস-রেডিও ইন্টারফেরেন্স কমিয়ে আনে।
অপারেশনাল ডিসকভারির জন্য বিএলই ব্যবহার করা হয় না।
ওয়াই-ফাই সফট এপি
ওয়াই-ফাই সফট এপি ব্যবহার করার সময়, কমিশনি একটি অ্যাড-হক সফট অ্যাক্সেস পয়েন্ট (সফট এপি) নেটওয়ার্কের মাধ্যমে আবিষ্কৃত হবে। নেটওয়ার্কটির এসএসআইডি (নেটওয়ার্কের নাম) MATTER-ddd-vvvv-pppp এই আকারে থাকে, যেখানে:
- ddd হলো হেক্স (HEX)-এর ১২-বিট ডিসক্রিমিনেটর।
- vvvv হলো হেক্স ফরম্যাটে ১৬-বিটের ভেন্ডর আইডি।
- pppp হলো হেক্স ফরম্যাটে ১৬-বিট প্রোডাক্ট আইডি।
যখনই কমিশনার কমিশনির সাথে সংযোগ স্থাপন করেন, উভয়ই স্বতন্ত্র IPv6 লিঙ্ক-লোকাল অ্যাড্রেস কনফিগার করবে, যা Wi-Fi লেয়ারে সংযোগ সক্ষম করে। এই পর্যায়ে, পরবর্তী বিভাগে আলোচিত DNS-SD পদ্ধতির মতোই ডিসকভারি প্রক্রিয়া চলতে থাকে।
এছাড়াও, একটি Wi-Fi সফট এপি (AP) বিক্রেতা-নির্দিষ্ট অতিরিক্ত তথ্য প্রকাশের জন্য IPv4-এর জন্য DHCP এবং ইনফরমেশন এলিমেন্ট (IE) প্রয়োগ করতে পারে। IE হলো 802.11 (Wi-Fi) ম্যানেজমেন্ট ফ্রেমের মধ্যে থাকা একটি পরিবর্তনশীল দৈর্ঘ্যের ফিল্ড, যা অন্যান্য সিস্টেমে কাস্টম তথ্য বহন করার সুযোগ দেয়।
কমিশনার স্ক্যানিংয়ের সময় ওয়াই-ফাই চ্যানেল ১, ৬ এবং ১১-কে অগ্রাধিকার দেওয়া উচিত, তবে স্থানীয় স্পেকট্রাম প্রবিধান দ্বারা অনুমোদিত সমস্ত চ্যানেল অবশ্যই স্ক্যান করতে হবে।
Wi-Fi Soft AP অপারেশনাল ডিসকভারির জন্য ব্যবহৃত হয় না।
ডিএনএস-এসডি
এক্ষেত্রে কমিশনিকে তার ডোমেইন নেম সার্ভিস - সার্ভিস ডিসকভারি (DNS-SD) অ্যাডভার্টাইজমেন্টের মাধ্যমে খুঁজে বের করা হবে, যেগুলোতে নোডগুলো দ্বারা প্রদত্ত পরিষেবা সম্পর্কিত তথ্য থাকে। DNS-SD সম্পর্কে আরও তথ্যের জন্য RFC 6762 দেখুন। নিম্নলিখিত ক্ষেত্রে ডিভাইস খুঁজে বের করার জন্য এটি একটি প্রচলিত পদ্ধতি:
- কমিশনি ইথারনেটের সাথে সংযুক্ত এবং এর ফলে একটি এনক্রিপ্টবিহীন নেটওয়ার্ক মাধ্যমে তার সরাসরি প্রবেশাধিকার রয়েছে।
- কমিশনি যেকোনো আউট-অফ-ব্যান্ড উপায়ে ওয়াই-ফাই বা Thread নেটওয়ার্কে যোগদান করেছেন।
- কমিশনি ইতিমধ্যেই অন্য একটি ফ্যাব্রিকে কমিশনড ছিল এবং ওয়াই-ফাই/ Thread নেটওয়ার্কে যোগদান করেছে। এক্ষেত্রে কমিশনি BLE অ্যাডভার্টাইজমেন্ট ব্যবহার করতে বা একটি সফট এপি (Soft AP) তৈরি করতে পারে না। তাই সমস্ত সেকেন্ডারি ফ্যাব্রিক এই পদ্ধতির মাধ্যমেই প্রোভিশন করা হয়।
Thread ডিভাইসগুলো সরাসরি DNS-SD ব্যবহার করে না, বরং Thread বর্ডার রাউটার দ্বারা প্রদত্ত একটি প্রক্সিযুক্ত পদ্ধতি ব্যবহার করে। এই পদ্ধতিটি DNS-SD সার্ভিস রেজিস্ট্রেশন প্রোটোকল এবং এর অ্যাডভারটাইজিং প্রক্সি দ্বারা সংজ্ঞায়িত। Thread ডিভাইসগুলো সাধারণত একটি Thread বর্ডার রাউটার দ্বারা প্রদত্ত SRP সার্ভিসে নিজেদের নিবন্ধন করে। এই সার্ভিসটি প্রতিটি নিবন্ধিত Thread নোডের পক্ষ থেকে mDNS ট্র্যাফিক পরিচালনা করে, এবং এই প্রোটোকলগুলো দ্বারা সৃষ্ট অতিরিক্ত ট্র্যাফিকের বোঝা Thread নেটওয়ার্কের উপর চাপায় না।
ডিভাইস ডিসকভারির জন্য DNS-SD ইনস্ট্যান্সের নাম হলো _matterc._udp এবং হোস্ট নেমগুলো একটি ৪৮-বিট MAC অ্যাড্রেস অথবা একটি ৬৪-বিট MAC এক্সটেন্ডেড অ্যাড্রেস দ্বারা গঠিত হয়, যা A5F15790B0D15F32.local. এর মতো একটি হেক্স স্ট্রিং হিসেবে প্রকাশ করা হয়। সাধারণত এই রেকর্ডটি কেবল তখনই অ্যাডভার্টাইজ করা হয় যখন কমিশনি-কে কমিশন করার প্রয়োজন হয়। তবে, এটি কমিশনিং মোডে না থাকলেও অ্যাডভার্টাইজ করা চালিয়ে যেতে পারে। এই আচরণটিকে এক্সটেন্ডেড ডিসকভারি বলা হয়।
ডিসকভারির পরে, IPv6 অ্যাড্রেসগুলো AAAA রেকর্ডে এবং কী/ভ্যালু পেয়ারগুলো DNS-SD TXT রেকর্ডে ফেরত দেওয়া হয়। কী/ভ্যালু পেয়ারে ডিসক্রিমিনেটর, ভেন্ডর আইডি এবং প্রোডাক্ট আইডির মতো তথ্য থাকে। নোডটি কমিশনিং সাবটাইপগুলোও অ্যাডভার্টাইজ করে, যা একটি নির্দিষ্ট অ্যাট্রিবিউটের সাথে মেলে এমন কমিশনিদের খুঁজে বের করার জন্য ফলাফল ফিল্টার করতে সক্ষম করে।
কার্যকরী আবিষ্কার
অপারেশনাল ডিসকভারি হলো একটি চালু নোড আবিষ্কার এবং শনাক্ত করার প্রক্রিয়া। অপারেশনাল ডিসকভারি শুধুমাত্র আইপি-ভিত্তিক ডিএনএস-এসডি (DNS-SD) পদ্ধতির মাধ্যমেই সম্পন্ন হয়। নোড ইনস্ট্যান্সের নামটি ৬৪-বিট কম্প্রেসড ফ্যাব্রিক আইডি এবং ৬৪-বিট নোড আইডি দ্বারা গঠিত হবে। হেক্সাডেসিমেল ফরম্যাটে থাকা এই আইডিগুলোকে একটি হাইফেন দিয়ে যুক্ত করা হয়, যেমন 2906C908D115D362-8FC7772401CD0696.local. অপারেশনাল ডিসকভারি এবং ডিএনএস-এসডি ডিভাইস ডিসকভারি—উভয়েরই টার্গেট হোস্ট নেম একই থাকে।
DNS-SD পরিষেবার ধরণ হলো _matter._tcp । যদিও _tcp নামকরণ ব্যবহৃত হয়, ডিভাইসটি UDP-এর মতো অন্যান্য ট্রান্সপোর্টও ব্যবহার করতে পারে।