ম্যাক ঠিকানা অনন্য নয়
হতে পারে, এবং MACs সঙ্গে সদৃশ হতে হবে। এর জন্য বেশ কয়েকটি কারণ আছে, এক হচ্ছে যে তারা হতে হবে না (বিশ্বব্যাপী) অনন্য।
এমএসি স্থানীয় নেটওয়ার্কে অনন্য হতে হবে, তাই এআরপি / এনডিপি তার কাজ করতে পারে এবং সুইচ জানে যে কোথা থেকে আসন্ন ডাটাগ্রাম পাঠাতে হয়। সাধারনত (অগত্যা নয়) পূর্বনির্ধারণটি পূর্ণ হয় এবং জিনিসগুলি ঠিক সূক্ষ্ম কাজ করে, কারণ একই ল্যানে দুটি অভিন্ন MAC থাকার সম্ভাবনা থাকলেও এটি অনন্য নয়।
আরেকটি কারণ যে সেখানে ঠিকানা আছে চেয়ে আরো ডিভাইস বিদ্যমান আছে। যদিও 48 বিট ঠিকানাগুলি মনে হয় যেন দিনের শেষ পর্যন্ত সবার জন্য পর্যাপ্ত ঠিকানা থাকে, এটি এমন নয়।
ঠিকানা স্পেসটি ২4-বিট অর্ধে বিভক্ত (এটি সামান্য জটিল, তবে ক্ষুদ্র বিবরণগুলি উপেক্ষা করা যাক)। অর্ধেক হল OUI যা আপনি IEEE এর সাথে নিবন্ধন করতে এবং প্রায় 2000 ডলারের জন্য আপনার সংস্থাকে বরাদ্দ করতে পারেন। অবশিষ্ট 24 বিট, আপনি চান যাই হোক না কেন। অবশ্যই আপনি অনেক OUI নিবন্ধন করতে পারেন, যা বড় খেলোয়াড়দের হয়।
উদাহরণ হিসাবে ইন্টেল নিন। তারা মোট 7 টি ওআইআইএস নিবন্ধন করেছে, তাদের মোট 116 মিলিয়ন ঠিকানা দিয়েছে।
আমার কম্পিউটারের মেইনবোর্ড (যা একটি এক্স 99 চিপসেট ব্যবহার করে) পাশাপাশি আমার ল্যাপটপের মেইনবোর্ডের পাশাপাশি মেইনবোর্ড প্রতি গত 10-15 বছরে x86 ভিত্তিক কম্পিউটারের মালিকানাধীন কম্পিউটারটি চিপসেটের অংশ হিসাবে একটি ইন্টেল নেটওয়ার্ক কার্ড ছিল।
পৃথিবীতে 116 মিলিয়নেরও বেশি ইন্টেল ভিত্তিক কম্পিউটার রয়েছে। সুতরাং, তাদের MACs সম্ভবত সম্ভব নয় অনন্য হতে হবে (বিশ্বব্যাপী অনন্য একটি অর্থে)।
এছাড়াও, মামলার রিপোর্ট করা হয়েছে ... সস্তা ... নির্মাতারা সহজেই অন্যের OUI থেকে "চুরি করা" ঠিকানাগুলি। অন্য কথায়, তারা শুধু কিছু র্যান্ডম ঠিকানা ব্যবহার করে। আমি এমন নির্মাতাদের কথা শুনেছি যা একটি সম্পূর্ণ পণ্য পরিসরের জন্য একই ঠিকানাটি ব্যবহার করে। এর মধ্যে কোনটিই সত্যিই রূপান্তরিত হয় না বা প্রচুর জ্ঞান দেয়, তবে আপনি এটি সম্পর্কে কী করতে পারেন। এই নেটওয়ার্ক কার্ড বিদ্যমান। আবার: এটি একটি হয়ে যায় যে সম্ভাবনা ব্যবহারিক ঠিকানাগুলি এখনও খুব কম, যদি ঠিকানাগুলি তাদের উদ্দেশ্য অনুসারে ব্যবহার করা হয়, তবে তাদের মধ্যে আপনার দুটি থাকতে হবে একই ল্যান উপর এমনকি বিজ্ঞপ্তি।
এখন, আপনার সমস্যা কি করতে হবে?
সমাধান আপনি মনে করার চেয়ে সহজ হতে পারে। আপনার আইওওটি ডিভাইসগুলির বেশিরভাগ সময়ে কিছু ধারণা প্রয়োজন হবে, সাধারণত সময় স্বয়ংক্রিয়ভাবে NTP এর মাধ্যমে প্রাপ্ত হয়। এনটিপি এর সাধারণ নির্ভুলতা মাইক্রোস্কন্ড রেঞ্জে (হ্যাঁ, এটি মাইক্রো, মিলি নয়)। আমি শুধু দৌড়ে ntpq -c rl
নিশ্চিত করা এবং বলা হয়েছিল 2 -20 ।
সুনির্দিষ্ট একই মাইক্রোসেকেন্ডে প্রথমবারের মতো আপনার দুটি ডিভাইস চালু হওয়ার সম্ভাবনা খুব কম। এটি সাধারনত ঘটতে পারে (বিশেষত যদি আপনি খুব অল্প সময়ের মধ্যে তাদের লক্ষ লক্ষ বিক্রি করেন, আপনার সাফল্যের অভিনন্দন!), নিশ্চিত। কিন্তু এটা খুব সম্ভবত না - অভ্যাসে এটা ঘটবে না। সুতরাং, স্থায়ী দোকান প্রথম বুট আপ করার পরে সময় সংরক্ষণ করুন।
আপনার আইওটি ডিভাইসের বুট টাইম প্রতি ডিভাইসে একই হবে। যে সব সত্য না ছাড়া ।
একটি উচ্চ রেজোলিউশনের টাইমার দেওয়া, বুট বার একই ডিভাইসে এমনকি প্রতিটি সময় পরিমাপে ভিন্ন। এটি কেবল মাত্র কয়েক ঘণ্টার আলাদা আলাদা (অথবা কয়েকশত হাজার, যদি আপনি CPU এর টাইম স্ট্যাম্প কাউন্টারের মতো কিছু পড়েন), তাই একেবারেই অনন্য নয়, তবে এটি নিশ্চিত করে কিছু এনট্রপি যোগ করে।
একইভাবে, সময় লাগে connect
আপনার API সাইটটি অ্যাক্সেস করার সময় প্রথমবারের মতো আপনাকে সামান্য হতে হবে তবে পরিমাপযোগ্যভাবে প্রতিবার আলাদা হবে। একইভাবে, getaddrinfo
প্রথমবার আপনার ওয়েব এপিআই এর হোস্টনাম সন্ধান করার সময় প্রতিটি ডিভাইসের জন্য সামান্য ভিন্ন, পরিমাপযোগ্য সময় লাগবে।
এনট্রোপির তিনটি বা চারটি উত্সকে সমন্বিত করুন (MAC ঠিকানা, প্রথম পাওয়ার-অনের সময়, প্রথমবার বুট করার সময়, সংযুক্ত সময়) এবং এর থেকে একটি হ্যাশ গণনা করুন। MD5 যে উদ্দেশ্যের জন্য জরিমানা করতে হবে। সেখানে, আপনি অনন্য।
যে না যদিও প্রকৃতপক্ষে স্বতন্ত্রতা গ্যারান্টি, এটি "প্রশংসনীয় অনেক" ব্যর্থতার একটি neglegible সুযোগ সঙ্গে এটি গ্যারান্টি। একই মাইক্রোসেকেন্ডে প্রথম বার চালু হওয়া অভিন্ন এমএসিগুলির সাথে দুটি ডিভাইস থাকতে হবে এবং বুট করার জন্য একই সময় লাগবে এবং আপনার সাইটে সংযোগ করতে হবে। যে ঘটতে যাচ্ছে না। যদি এটি ঘটে থাকে, তাহলে সমস্ত উপস্থিতিগুলির জন্য আপনাকে লটারিটি খেলতে শুরু করতে হবে, আপনি নিশ্চিত হওয়ার জন্য নিশ্চিত হন।
তবে, "ঘটবে না" গ্যারান্টি হিসাবে যথেষ্ট ভাল না হলে, কেবল প্রতিটি ডিভাইসকে আপনার ক্রমবর্ধমান সংখ্যা (সার্ভারে জেনারেট করা) পাস করে যখন তারা আপনার ওয়েব API এ প্রথমবার অ্যাক্সেস করে। ডিভাইস যে সংখ্যা সঞ্চয় করা যাক।