পাঠ ১১ · ৫৭-এর মধ্যে · মডিউল ৩
Home / Courses / Computer Networks / MAC ও Ethernet

MAC অ্যাড্রেস ও Ethernet

MAC addresses & Ethernet
৮ মিনিট পড়া প্রাথমিক · Beginner Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • MAC অ্যাড্রেসের গঠন — OUI ও ডিভাইস-নির্দিষ্ট অংশ
  • MAC অ্যাড্রেস ও IP অ্যাড্রেসের মধ্যে মৌলিক পার্থক্য
  • Ethernet ও CSMA/CD কীভাবে ঐতিহাসিকভাবে সংঘর্ষ পরিচালনা করত
  • Python দিয়ে MAC অ্যাড্রেস পার্স করে OUI থেকে ম্যানুফ্যাকচারার শনাক্তকরণ

১ · MAC অ্যাড্রেস কী

MAC অ্যাড্রেসMedia Access Control Addressএকটি ৪৮-বিট অ্যাড্রেস, নেটওয়ার্ক ইন্টারফেস কার্ড (NIC)-এ তৈরির সময় বসানো থাকে — বিশ্বব্যাপী অনন্য হওয়ার উদ্দেশ্যে ডিজাইন করা, ডেটা লিংক লেয়ারে কাজ করে। একটি ৪৮-বিট অ্যাড্রেস, নেটওয়ার্ক ইন্টারফেস কার্ড (NIC)-এ তৈরির সময়ই স্থায়ীভাবে বসিয়ে দেওয়া হয় — বিশ্বব্যাপী অনন্য হওয়ার উদ্দেশ্যে ডিজাইন করা। এটি লেখা হয় ৬টি হেক্সাডেসিমেল বাইট-জোড়া হিসেবে, কোলন দিয়ে আলাদা (যেমন AA:BB:CC:DD:EE:FF)। MAC অ্যাড্রেসের গঠন দুই ভাগে —

প্রথম ২৪ বিট — OUI
Organizationally Unique Identifier — ম্যানুফ্যাকচারার/ভেন্ডর শনাক্ত করে, IEEE কর্তৃক বরাদ্দকৃত।
শেষ ২৪ বিট — ডিভাইস আইডি
সেই ম্যানুফ্যাকচারার নিজেই নির্দিষ্ট ডিভাইসকে অনন্য নম্বর দেয়।

২ · MAC অ্যাড্রেস বনাম IP অ্যাড্রেস

MAC অ্যাড্রেস কাজ করে ডেটা লিংক লেয়ারে (M3), সম্পূর্ণ আলাদা IP অ্যাড্রেস (নেটওয়ার্ক লেয়ার, M4/L14) থেকে — এই পার্থক্যটি স্পষ্টভাবে মনে রাখা গুরুত্বপূর্ণ।

মূল অন্তর্দৃষ্টি — পার্থক্যটি মনে রাখার সহজ উপায়

একটি ডিভাইসের MAC অ্যাড্রেস সবসময় একই থাকে, সে যে নেটওয়ার্কেই যোগ দিক না কেন — এটি হার্ডওয়্যারের সাথে বাঁধা, "স্থায়ী পরিচয়পত্র"-এর মতো। কিন্তু তার IP অ্যাড্রেস বদলে যায় নির্ভর করে সে কোন নেটওয়ার্কে যুক্ত হয়েছে তার উপর — বাসার WiFi-তে এক IP, অফিসের নেটওয়ার্কে অন্য IP, একই ডিভাইস, একই MAC — যেন "বর্তমান ঠিকানা" বদলাচ্ছে কিন্তু "জাতীয় পরিচয়পত্র নম্বর" একই থাকছে।

৩ · Ethernet ও CSMA/CD

EthernetEthernetসবচেয়ে প্রচলিত ওয়্যার্ড LAN স্ট্যান্ডার্ড — মূলত শেয়ার্ড কোঅ্যাক্সিয়াল কেবলে CSMA/CD ব্যবহার করত, আধুনিক সুইচড Ethernet-এ ফুল-ডুপ্লেক্স পয়েন্ট-টু-পয়েন্ট সংযোগ ব্যবহার হয়। হলো সবচেয়ে প্রচলিত ওয়্যার্ড LAN স্ট্যান্ডার্ড। এটি মূলত শেয়ার্ড কোঅ্যাক্সিয়াল কেবলে CSMA/CD (Carrier Sense Multiple Access with Collision Detection) ব্যবহার করত — পাঠানোর আগে লাইন "শোনা" (কেউ ইতিমধ্যে পাঠাচ্ছে কিনা), আর দুটি ডিভাইস একসাথে পাঠিয়ে ফেললে (সংঘর্ষ) সেটি শনাক্ত করে থেমে যাওয়া ও কিছুক্ষণ অপেক্ষা করে আবার চেষ্টা করা।

আধুনিক সুইচড Ethernet (ফুল-ডুপ্লেক্স, প্রতিটি সুইচ পোর্টে পয়েন্ট-টু-পয়েন্ট সংযোগ) বাস্তবে সংঘর্ষ কার্যত নির্মূল করে দিয়েছে — কারণ প্রতিটি ডিভাইস এখন সুইচের সাথে তার নিজস্ব, একক সংযোগে থাকে, কোনো শেয়ার্ড কেবল নেই যেখানে সংঘর্ষ হতে পারে (M3/L12-এ সুইচিং বিস্তারিত দেখব)। তবুও CSMA/CD-ই ক্লাসিক পাঠ্যপুস্তক অ্যালগরিদম হিসেবে Ethernet-এর ভিত্তি হিসেবে পড়ানো হয়।

Python
# MAC অ্যাড্রেস পার্স করে OUI থেকে ম্যানুফ্যাকচারার শনাক্তকরণ
# (এটি একটি ছোট, চিত্রায়ণমূলক টয় ডিকশনারি -- সম্পূর্ণ IEEE OUI রেজিস্ট্রি নয়)

oui_manufacturer_lookup = {
    "B8:27:EB": "Raspberry Pi Foundation",
    "DC:A6:32": "Raspberry Pi Trading Ltd",
    "00:50:56": "VMware, Inc.",
    "3C:5A:B4": "Google, Inc.",
}

def get_oui(mac_address):
    """একটি MAC অ্যাড্রেস স্ট্রিং থেকে প্রথম ৩ বাইট (OUI) বের করে আনে।"""
    parts = mac_address.upper().split(":")
    return ":".join(parts[:3])

def lookup_manufacturer(mac_address, lookup_table):
    oui = get_oui(mac_address)
    return oui, lookup_table.get(oui, "অজানা ম্যানুফ্যাকচারার (এই টয় টেবিলে নেই)")

example_macs = [
    "B8:27:EB:4A:2C:11",
    "DC:A6:32:9F:00:7E",
    "00:50:56:C0:00:08",
    "3C:5A:B4:11:22:33",
    "AA:BB:CC:DD:EE:FF",   # ইচ্ছাকৃতভাবে টেবিলে নেই -- অজানা কেস
]

for mac in example_macs:
    oui, manufacturer = lookup_manufacturer(mac, oui_manufacturer_lookup)
    print(f"MAC: {mac}  ->  OUI: {oui}  ->  {manufacturer}")

    
OUI (প্রথম ৩ বাইট) ম্যানুফ্যাকচারার শনাক্তকরণ ডিভাইস আইডি (শেষ ৩ বাইট) ম্যানুফ্যাকচারার-বরাদ্দকৃত অনন্য নম্বর ← ৪৮-বিট MAC অ্যাড্রেস: AA:BB:CC : DD:EE:FF →
MAC অ্যাড্রেসের প্রথম অর্ধেক ম্যানুফ্যাকচারার শনাক্ত করে, দ্বিতীয় অর্ধেক সেই ম্যানুফ্যাকচারারের কাছে ডিভাইসটিকে অনন্যভাবে চিহ্নিত করে।
লক্ষ্য করুন — উপরের কোডে শেষ MAC অ্যাড্রেসটি (AA:BB:CC:DD:EE:FF) ইচ্ছাকৃতভাবে টয় লুকআপ টেবিলে নেই, আর lookup_manufacturer সেটিকে সঠিকভাবে "অজানা" হিসেবে চিহ্নিত করে, ভুল ফলাফল দেওয়ার বদলে। বাস্তব জগতে সম্পূর্ণ IEEE OUI রেজিস্ট্রি হাজার হাজার নিবন্ধিত ম্যানুফ্যাকচারার ধারণ করে — এই কোডটি সেই একই ধারণার একটি ছোট, চিত্রায়ণমূলক সংস্করণ মাত্র।
মূল কথা · Key takeaway

MAC অ্যাড্রেস ও IP অ্যাড্রেস দুটি সম্পূর্ণ ভিন্ন স্তরে কাজ করে ভিন্ন উদ্দেশ্যে — MAC "কোন হার্ডওয়্যার" আর IP "কোন নেটওয়ার্ক অবস্থান" চিহ্নিত করে। Ethernet এই MAC অ্যাড্রেসিং-এর উপর ভিত্তি করেই ফ্রেম ডেলিভার করে — পরের পাঠে (L12) আমরা দেখব কীভাবে সুইচ এই MAC অ্যাড্রেস ব্যবহার করে ফ্রেম সঠিক পোর্টে ফরওয়ার্ড করে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ যদি MAC অ্যাড্রেস "বিশ্বব্যাপী অনন্য হওয়ার উদ্দেশ্যে ডিজাইন করা" হয়, তাহলে "উদ্দেশ্যে" শব্দটা কেন ব্যবহার করা হলো — এটি কি সবসময় নিশ্চিতভাবে অনন্য?

ব্যবহারিকভাবে প্রায় সবসময় অনন্য, কিন্তু কিছু ব্যতিক্রম আছে — কিছু নেটওয়ার্ক অ্যাডাপ্টার/সফটওয়্যার MAC অ্যাড্রেস "স্পুফ" করতে দেয় (ইচ্ছাকৃতভাবে ভিন্ন MAC সেট করা, ভার্চুয়াল মেশিনে বা প্রাইভেসি-সুরক্ষার জন্য), এবং কারিগরি ত্রুটির কারণে খুব বিরল ক্ষেত্রে দুটি ডিভাইসের একই MAC হয়ে যাওয়াও সম্ভব (ম্যানুফ্যাকচারিং ভুল)। তাই "উদ্দেশ্যে অনন্য" বলা হয় — ডিজাইনের লক্ষ্য অনন্যতা, কিন্তু এটি ক্রিপ্টোগ্রাফিক গ্যারান্টি নয়।

প্র ০২ একটি ল্যাপটপ যখন WiFi থেকে ওয়্যার্ড Ethernet-এ সংযোগ পরিবর্তন করে, তখন কি তার MAC অ্যাড্রেস বদলায়?

হ্যাঁ — কারণ WiFi ও ওয়্যার্ড Ethernet আসলে দুটি সম্পূর্ণ আলাদা NIC (একটি ওয়্যারলেস কার্ড, একটি ওয়্যার্ড কার্ড), আর প্রতিটি NIC-এর নিজস্ব, স্বতন্ত্র MAC অ্যাড্রেস থাকে (তৈরির সময় সেই নির্দিষ্ট হার্ডওয়্যারে বসানো)। তাই একই ল্যাপটপে সংযোগের মাধ্যম বদলালে MAC অ্যাড্রেসও বদলে যায় — যদিও আইপি অ্যাড্রেসের মতো এটিও পরিবর্তনশীল, তবে কারণটা ভিন্ন (আলাদা হার্ডওয়্যার, নেটওয়ার্ক বদল নয়)।

প্র ০৩ আধুনিক সুইচড Ethernet-এ CSMA/CD কার্যত অপ্রয়োজনীয় হয়ে গেলেও এটি এখনো কেন পাঠ্যক্রমে পড়ানো হয়?

CSMA/CD Ethernet-এর ঐতিহাসিক ভিত্তি ও শেয়ার্ড-মিডিয়াম যোগাযোগের একটি ক্লাসিক, মৌলিক সমস্যা সমাধানের উদাহরণ — "একাধিক ডিভাইস একটি শেয়ার্ড চ্যানেল কীভাবে সংঘর্ষ ছাড়াই ব্যবহার করবে" এই প্রশ্নের একটি সহজবোধ্য সমাধান, যা পরবর্তী অনেক প্রযুক্তির (যেমন WiFi-এর CSMA/CA, M8/L38) ভিত্তি বোঝায়। এমনকি প্রযুক্তিগতভাবে কম প্রাসঙ্গিক হলেও, এই সমস্যা-সমাধানের প্যাটার্ন বোঝা নেটওয়ার্কিং-এর মৌলিক ধারণাগুলো শক্ত করে।

অনুশীলন

  1. পরীক্ষা করুন: উপরের কোড সেলে oui_manufacturer_lookup-এ একটি নতুন এন্ট্রি যোগ করুন (যেকোনো OUI ও কাল্পনিক নাম), তারপর example_macs-এ সেই OUI দিয়ে শুরু হওয়া একটি নতুন MAC যোগ করে নিশ্চিত করুন এটি সঠিকভাবে শনাক্ত হয়।

    হ্যাঁ, কাজ করবে — lookup_manufacturer শুধু MAC-এর প্রথম ৩ বাইট (OUI) বের করে oui_manufacturer_lookup ডিকশনারিতে খোঁজে, তাই নতুন এন্ট্রি যোগ করলে ও সেই OUI দিয়ে একটি MAC পরীক্ষা করলে এটি সঠিক নাম রিটার্ন করবে — ঠিক একইভাবে যেভাবে বিদ্যমান এন্ট্রিগুলো কাজ করছে।

  2. চিন্তা করুন: কেন একটি রাউটার বা সুইচ কখনো "IP অ্যাড্রেস দিয়ে ম্যানুফ্যাকচারার" শনাক্ত করতে পারে না, কিন্তু MAC অ্যাড্রেস দিয়ে পারে?

    IP অ্যাড্রেস নির্ভর করে কোন নেটওয়ার্কে ডিভাইসটি সংযুক্ত তার উপর (DHCP বা ম্যানুয়াল কনফিগারেশনের মাধ্যমে বরাদ্দকৃত) — এতে ম্যানুফ্যাকচারার সম্পর্কে কোনো তথ্য এনকোড করা নেই। কিন্তু MAC অ্যাড্রেসের প্রথম ৩ বাইট (OUI) সরাসরি ম্যানুফ্যাকচারার-নির্দিষ্ট, IEEE কর্তৃক বরাদ্দকৃত — তাই শুধুমাত্র MAC অ্যাড্রেস থেকেই ম্যানুফ্যাকচারার শনাক্ত করা সম্ভব, IP থেকে নয়।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
এরর কারেকশন — Hamming কোড পরিচিতি