آدرس مک (MAC) چیست؟



MAC Address مخفف عبارت Media Access Control Address به معنای "زیرلایه کنترل دسترسی به رسانه" بوده و یک آدرس فیزیکی ۶ یا ۸ بایتی است که توسط سازنده‌های کارت‌های واسط شبکه (قطعات سخت افزاری که امکان اتصال کامپیوترها به یکدیگر یا به یک شبکه را می‌دهند.) بر روی حافظه آن (اغلب بر روی ROM - حافظه فقط خواندنی) ذخیره می‌کنند. آدرس مک معمولاً آدرس فیزیکی (Physical Address) نیز خوانده می‌شود.

تمامی دستگاه‌هایی که به هر طریقی به یک شبکه متصل می‌شوند (از جمله تلفن‌های هوشمند، مودم‌های خانگی، لپ تاپ‌ها و...) دارای یک مک آدرس جداگانه هستند. به این ترتیب در یک شبکه داده‌ها به مقصد و واسط شبکه مشخص ارسال می‌شوند.

تفاوت شاخصی که یک آدرس MAC با یک آدرس IP دارد در این است که آدرس IP در پروتکل TCP/IP در یک لایه نرم افزاری تعیین می‌شود درحالی که آدرس MAC در لایه سخت افزاری بوده و به عبارت ساده تر یک آدرس فیزیکی از پیش تعیین شده بر روی کارت واسط شبکه است.

به عبارت ساده تر آدرس مک مثل یک آدرس خانه ثابت است (البته آدرس مک بعضاً قابلیت تغییر را دارد). این خانه درواقع همان رابط شبکه ما است. حال فرض کنید که در یک شهر با محدوده مشخص (شبکه) قرار داریم و یک نفر (از داخل شبکه) می‌خواهم پیغامی (پاکت‌های داده) را برای ما ارسال کند. فرد برای انجام این کار باید آدرس خانه مورد نظر را در دست داشته باشد. به این ترتیب پاکت‌های داده نیز برای انتقال در درون یک شبکه نیاز به آدرس‌های مک کارت‌های شبکه دارند.

چرا به آدرس MAC در کنار IP نیاز داریم؟

خب شاید این سوال پیش بیاید که چرا در یک شبکه، وجود آدرس MAC اگرچه آدرس IP مقصد را داشته باشیم، نیاز است؟ پاسخ ساده است؛ آدرس IP یک آدرس مجازی و متغیر ولی آدرس MAC یک آدرس فیزیکی و ثابت است. البته توجه کنید که ممکن است ما اصلا آدرس MAC مقصد اصلی را ندانیم اما فهمیدن آدرس مک روتر یا مسیریاب شبکه ضروری است. این مسیر یاب است که به آدرس مک مقصد نیاز دارد پس ما فقط با دانستن آدرس IP مقصد داده‌ها را ارسال می‌کنیم ولی اگر کمی وارد ساختار شبکه بشویم، خواهیم دید که کل ارتباط از طریق آدرس‌های MAC انجام می‌گیرد. پس وارد ساختار شبکه می‌شویم:

آدرس مک در لایه ۲ مدل OSI یعنی در بخش Data Link است در حالی که IP در لایه ۳ یعنی بخش Network است. می‌دانیم که IP (به صورت کامل TCP/IP) فقط یک پروتکل برای انتقال داده و ارتباط است که در آن، برای هر کامپیوتر یک آدرس IP تعیین می‌شود. از سایر پروتکل‌های لایه ۳ می‌توان به IPX، IGMP و ... اشاره کرد که برای ارتباط در لایه خود، ممکن است از روش‌های گوناگونی استفاده کنند. حال آن که همه پروتکل‌ها برای ارسال داده و ارتباط با سایر کامپیوترها با لایه پایین تر خود یعنی Data Link نیاز دارند. به عبارت بهتر، در همه این ارتباطات به آدرس مک کامپیوترها نیاز است و فرقی نمی‌کند که پروتکل مورد استفاده چه چیزی باشد.

اما آدرس IP و آدرس MAC چگونه در کنار یکدیگر کار می‌کنند؟

زمانی که یک کامپیوتر (a) از طریق پروتکل IP به کامپیوتر دیگر (b) داده‌ای ارسال می‌کند (این داده‌ها در بسته‌هایی به نام Packet ارسال می‌شوند)، در سربرگ پکت ارسالی، آدرس IP خود (aIP) و آدرس IP کامپیوتر مقصد (bIP) را ذکر می‌کند. از جایی که همه این داده‌ها از لایه‌های پایین تر (۲ و ۱) عبور می‌کنند، در سطح پایین تر به یک آدرس دیگر نیز نیاز دارند که همان آدرس مک است. طبق قرارداد، آدرس مک ارسال کننده (aMAC) و آدرس مک ایستگاه بعدی، چه مقصد اصلی باشد و چه آدرس مسیریاب زمانی که کامپیوتر به مقصد اصلی به صورت مستقیم وصل نیست، (rMAC - حرف r برای Router) در سربرگ مک اترنت پکت ارسالی نوشته می‌شود. نحوه ارسال و دریافت داده به این صورت خواهد بود (برای ارتباطات غیرمستقیم مثل اینترنت که کامپیوترها به صورت واقعی در یک شبکه قرار نگرفته اند):

aMAC > r1MAC (aIP > bIP)
r1MAC > r2MAC (aIP > bIP)
r2MAC > bMAC (aIP > bIP)

همانطور که می‌بینید، با این که آدرس آی پی فرستنده و گیرنده در طول مسیر انتقال یکی است، اما داده‌ها بوسیله آدرس مک منتقل می‌شوند و آدرس آی پی صرفا برای مقایسه کردن آدرس‌های مک مورد استفاده قرار می‌گیرد. توجه کنید که فرستنده با آدرس مک aMAC اطلاعی از آدرس مک مقصد ندارد درحالی که آدرس مک روتر خود (r1MAC) را بدست آورده است. پروسه بدست آوردن آدرس مک یک کامپیوتر (یا روتر) در شبکه محلی نیز توسط پروتکلی به نام ARP انجام می‌گیرد. در مرحله دوم نیز به این ترتیب داده مسیریابی می‌شود (با ارسال داده از روتر شبکه اول به روتر شبکه دوم) و در مرحله آخر نیز روتر دوم به راحتی مقصد را شناخته سپس با استفاده از همان پروتکل، آدرس مک آن را دریافت کرده و داده را به درستی به مقصد می‌رساند. توجه کنید که این دیاگرام برای ارتباطات غیرمستقیم است.

اگر بخواهیم از طریق سیستم خودمان به سیستم دیگری ارسال دیتا داشته باشیم و آدرس IP  ان را داشته باشیم ولی MAC adress آن را نداشته یاشیم میتوان انجام عملیات زیر MAC adress را بدست اورد:

1)در سیستم خود با زدن کلیدهای ترکیبی(Win+R) پنجره ی RUN را باز کنید.

2)در پنجره ی باز شده عبارت cmd را تایپ نموده و ok را بزنید.

3)در cmd عبارت arp -a را تایپ کنید و Inter بزنید.(به فاصله ی بین عبارت دقت داشته باشید)

با انجام این کار arp table به شما نمایش داده میشود و رو بروی IP مورد نظر شما آدرس فیزیکی ان را نشان میدهد.

cmd-arp