Address Resolution Protocol (ARP)

Address Resolution Protocol (ARP)

দুই বা ততোধিক নেটওয়ার্ক ডিভাইস যখন কোন একটি সুইচের সাহায্যে সংযুক্ত থাকে তখন আমরা তাকে একটি LAN হিসেবে বিবেচনা করি। একটি LAN এ প্রতিটি ডিভাইস আদান-প্রদানকৃত বিভিন্ন Frame রিসিভ করে। এখন প্রশ্ন হলো, কোন একটি ডিভাইস কিভাবে বুঝবে যে, তার নিকট আসা Frame টি আসলে তার নিজের জন্য এসেছে নাকি অন্য কোন ডিভাইসের। LAN এর ডিভাইসসমূহ যাতে বুঝতে পারে তার কাছে আসা Frame টি তার নাকি অন্য কারো, এজন্য Ethernet নেটওয়ার্কে একটি বিশেষ এ্যাড্রেস ব্যবহৃত হয়, একে MAC Address বলে।
MAC Address হলো একটি Unique Identifier যা একটি Ethernet নেটওয়ার্কের প্রতিটি সোর্স এবং ডেষ্টিনেশন ডিভাইসকে আলাদাভাবে চিহ্নিত করে। MAC Address হলো একটি 48 বিটের বাইনারী ভ্যালু যা 12 টি Hexadecimal ডিজিট দ্বারা প্রকাশ করা হয়। MAC Address সমূহ নেটওয়ার্ক ডিভাইসের Network Interface Card (NIC) এর ROM Chip এর মধ্যে Burned অবস্থায় থাকে যা কোনভাবেই পরিবর্তন করা যায় না। এজন্য একে Burned-in Address (BIA) ও বলা হয়ে থাকে। কিন্তু বর্তমান কম্পিউটার অপারেটিং সিস্টেমগুলোতে সফটওয়্যার লেভেলে এই MAC Address সমূহ পরিবর্তন করে বিভিন্ন কাজ করা যায়।

IEEE এর নিয়ম অনুযায়ী, প্রতিটি NIC এর MAC সমূহ স্বতন্ত্র হওয়া আবশ্যক। যে সকল প্রতিষ্ঠান NIC প্রস্তুত করে থাকে তাদেরকে অবশ্যই IEEE তে রেজিষ্টার্ড হতে হয়। IEEE এই সকল প্রতিষ্ঠানসমূহকে 24 বিটের একটি স্বতন্ত্র Organizational Unique Identifier (OUI) প্রদান করে। এই 24 বিটের OUI হলো 48 বিট MAC Address এর প্রথম 24 বিট। IEEE এর নিয়ম অনুযায়ী NIC প্রস্তুতকারক প্রতিষ্ঠানসমূহ প্রাপ্ত 24 বিট OUI এর সাথে নিজেদের মতো করে আরো 24 বিটের স্বতন্ত্র নম্বর যোগ করে একটি 48 বিটের পূর্ণাঙ্গ MAC Address তৈরী করে যা Global Unique Identifier হিসেবে বিবেচিত হয়।
একটি MAC এ্যাড্রেসকে বিভিন্নভাবে লিখা যায়। যেমনঃ
• 00-05-9A-3C-78-00
• 00:05:9A:3C:78:00
• 0005.9A3C.7800
একটি উইন্ডোজ অপারেটিং সিস্টেম কম্পিউটারের Command Prompt এ ipconfig /all কমান্ডের মাধ্যমে ঐ কম্পিউটারের সাথে সংযুক্ত NIC সমূহের MAC Address দেখা যায়।

MAC Address সমূহ তিন ধরণের। এগুলো হলোঃ
i) Unicast Address: একটি Unicast MAC Address হলো এমন একটি এ্যাড্রেস যার উপর ভিত্তি করে Ethernet নেটওয়ার্কে একটি সোর্স ডিভাইস থেকে আরেকটি নির্দিষ্ট ডেষ্টিনেশন ডিভাইসের নিকট ডাটা পাঠানো হয়।
ii) Broadcast Address: যখন একটি সোর্স ডিভাইস থেকে নেটওয়ার্কের অন্যান্য সকল ডিভাইসের নিকট Broadcast প্যাকেট পাঠানো হয় (আই.পি এ্যাড্রেসের হোষ্ট বিটসমূহের all 1 ব্যবহার করে) তখন Data Link লেয়ারের Frame হেডারে ডেষ্টিনেশন MAC হিসেবে FF:FF:FF:FF:FF:FF (All F) বসানো হয় যাতে LAN এর প্রতিটি ডিভাইসের কাছেই উক্ত Frame টি পৌছায়। এই All F বিশিষ্ট MAC টি কে Broadcast MAC Address বলে।
iii) Multicast Address: Multicast MAC Address ব্যবহার করে একটি সোর্স ডিভাইস থেকে LAN এর কিছু সংখ্যক ডিভাইসের নিকট ডাটা পাঠানো হয়।

IP-MAC Combination: The ARP Table

ARP এর পূর্ণরূপ হলো Address Resolution Protocol । ARP এমন এক ধরণের প্রটোকল যার সাহায্যে একটি নেটওয়ার্ক ডিভাইস Ethernet নেটওয়ার্কে অন্য কোন ডিভাইসের কাছে ডাটা পাঠানোর সময ডেষ্টিনেশন ডিভাইসের MAC Address সংগ্রহ করে। LAN এ একটি সোর্স ডিভাইস থেকে আরেকটি ডেষ্টিনেশন ডিভাইসে ডাটা পাঠানোর ক্ষেত্রে IP Address ও MAC Address উভয়ই ব্যবহৃত হয়। সোর্স ডিভাইস যখন ডাটা পাঠানোর সূচনা করে তখন ইহা Network লেয়ারের Packet হেডারে Source IP Address ও Destination IP Address যুক্ত করে। Encapsulation প্রক্রিয়ায় Packet টি যখন Data Link লেয়ারে যায় তখন তা Frame এ পরিণত হয় এবং Frame হেডারে Source ও Destination MAC Address যুক্ত হয়। এক্ষেত্রে সোর্স ডিভাইসকে অবশ্যই তার ডেষ্টিনেশন ডিভাইসের IP Address এর সাথে MAC Address ও জানতে হয়। কম্পিউটারসমূহ IP ও MAC এর সমন্বয়ে একটি বিশেষ ARP Table বা ARP Cache মেইনটেইন করে। ARP Table হলো এক ধরণের Mapping Table যার মধ্যে LAN এর বিভিন্ন ডিভাইসসমূহের IP-MAC এর কম্বিনেশন থাকে। এই ARP Table ডিভাইসসমূহের RAM এ জমা থাকে। IP-MAC কম্বিনেশন ব্যবহার করে সোর্স ডিভাইস যখন ডাটা পাঠায় তখন ডেষ্টিনেশন ডিভাইস সহজেই বুঝতে পারে যে ডাটাটি তার নিজের জন্য এসেছে কি না। যে প্রক্রিয়ায় একটি ডিভাইস LAN এর অন্যান্য ডিভাইসসমূহের IP-MAC কম্বিনেশন তার নিজের ARP Table এ যোগ করে তাকে ARP Process বলে।

ARP Process: An example


ধরি, PC1 কোন একটি ডাটা PC3 এর কাছে পাঠাবে। Encapsulation প্রক্রিয়ায় PC1 সোর্স ও ডেষ্টিনেশন IP ও MAC Address ব্যবহার করে তা PC3 এর কাছে পাঠায়। যদি PC1 এর ARP Table এ PC3 এর IP-MAC কম্বিনেশন না থাকে তাহলে PC1 তা সংগ্রহ করার জন্য একটি ARP Request পাঠায়। ARP Request টি যখন সুইচের F0/1 ইন্টারফেসে আসে তখন সুইচ এটিকে অন্যান্য সকল ইন্টারফেস দিয়ে Broadcast করে দেয়। অর্থাৎ PC1 এর ARP Request টি LAN এর অন্যান্য সকল ডিভাইসের কাছে পৌছায়। এসময় শুধুমাত্র PC3 এই ARP Request এর বিপরীতে PC1 এর কাছে ARP Reply পাঠায় আর অন্যান্য সকল PC ARP Request টি ড্রপ করে দেয়। ARP Reply পাওয়ার পর PC1 তার ARP Table এ PC3 এর IP-MAC কম্বিনেশনটি যোগ করে নেয় এবং পরবর্তীতে PC3 এর সাথে যোগাযোগের সময় ARP Table এর রেকর্ড ব্যবহার করে তা সম্পন্ন করে থাকে। এজন্য নতুন করে আর ARP Process এর দরকার হয় না। ARP Process এর সময় সুইচ তার নিজস্ব একটি MAC Address Table তৈরী করে এবং তা মেইনটেইন করে থাকে। MAC Address Table হলো সুইচের RAM এ সংরক্ষিত একটি বিশেষ তালিকা যার মধ্যে সুইচের সাথে সংযুক্ত প্রতিটি ডিভাইসের MAC Address থাকে এবং কোন MAC Address টি কোন ইন্টারফেস দিয়ে এসেছে তাও চিহ্নিত থাকে।

Why does Switch Maintain MAC Address Table?

ধরি, PC1 কোন একটি ডাটা PC3 এর কাছে পাঠাবে। এই ডাটা আদান-প্রদানের সময় PC1 ও PC3 মধ্যবর্তী ডিভাইস হিসেবে সুইচটিকে ব্যবহার করবে। ডাটা প্যাকেট যখন PC1 এর কাছ থেকে সুইচের কাছে পৌছাবে তখন সুইচ সিদ্ধান্ত নিবে যে, সে ডাটাকে তার কোন ইন্টারফেস দিয়ে কাঙ্খিত ডেষ্টিনেশন ডিভাইসের কাছে পৌছাবে। এক্ষেত্রে সুইচ তার MAC Address Table চেক করে PC3 যে ইন্টারফেসের সাথে সংযুক্ত আছে সেই ইন্টারফেস দিয়ে PC3 এর নিকট ডাটা পাঠিয়ে দিবে। সুইচ যদি MAC Address Table মেইনটেইন না করে তাহলে ইহা প্রতিবার ডাটা ট্রান্সফারের সময় ঐ ডাটা প্রতিটি ডিভাইসের কাছে Broadcast করবে (হাব এর মতো)। এতে নেটওয়ার্কে Broadcast Traffic বৃদ্ধি পাবে এবং পারফরম্যান্সও হ্রাস পাবে। আর সুইচ যদি MAC Address Table মেইনটেইন করে তাহলে ARP Process এর সময় প্রথমবার Broadcast হবে এবং পরবর্তীতে প্রতিবার ইহা নির্দিষ্ট ইন্টারফেস দিয়ে শুধুমাত্র কাঙ্খিত ডিভাইসের কাছেই ডাটা ডেলিভারী দিবে। এটিই সুইচ ও হাব এর মধ্যকার প্রধান পার্থক্য।
একটি সুইচের MAC Address Table দেখার জন্য আমাদের নিচের কমান্ড দিতে হবে।
Switch#show mac address-table 
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    000d.88c7.9a24    DYNAMIC     Fa0/1
   1    0012.3fd4.6d1b    DYNAMIC     Fa0/3

No comments

Theme images by enot-poloskun. Powered by Blogger.