آدرس مک (MAC) چیست؟
MAC Address (آدرس مک) مخفف عبارت Media Access Control Address به معنای “زیرلایه کنترل دسترسی به رسانه” بوده و یک آدرس فیزیکی ۶ یا ۸ بایتی است که توسط سازندههای کارتهای واسط شبکه قطعات سخت افزاری که امکان اتصال کامپیوترها به یکدیگر یا به یک شبکه را میدهند بر روی حافظه آن اغلب بر روی حافظه فقط خواندنی(ROM) ذخیره میکنند. آدرس مک معمولاً آدرس فیزیکی (Physical Address) نیز خوانده میشود.
تمامی دستگاههایی که به هر طریقی به یک شبکه متصل میشوند (از جمله تلفنهای هوشمند، مودمهای خانگی، لپ تاپها و…) دارای یک مک آدرس جداگانه هستند. به این ترتیب در یک شبکه دادهها به مقصد و واسط شبکه مشخص ارسال میشوند.
تفاوت شاخصی که یک آدرس MAC با یک آدرس IP دارد در این است که آدرس IP در پروتکل TCP/IP در یک لایه نرم افزاری تعیین میشود ، درحالی که آدرس MAC در لایه سخت افزاری بوده و به عبارت ساده تر یک آدرس فیزیکی از پیش تعیین شده بر روی کارت واسط شبکه است.
به عبارت ساده تر آدرس مک مثل یک آدرس خانه ثابت است (البته آدرس مک معمولاً قابلیت تغییر را دارد). این خانه درواقع همان رابط شبکه ما است. حال فرض کنید که در یک شهر با محدوده مشخص (شبکه) قرار داریم و یک نفر (از داخل شبکه) میخواهد پیغامی (پاکتهای داده) را برای ما ارسال کند. فرد برای انجام این کار باید آدرس خانه مورد نظر را در دست داشته باشد. به این ترتیب پاکتهای داده نیز برای انتقال در درون یک شبکه نیاز به آدرسهای مک کارتهای شبکه دارند.
چرا به آدرس MAC در کنار IP نیاز داریم؟
خب شاید این سوال پیش بیاید که چرا در یک شبکه، وجود آدرس مک اگرچه آدرس IP مقصد را داشته باشیم، نیاز است؟ پاسخ ساده است؛ آدرس IP یک آدرس مجازی و متغیر ولی آدرس مک یک آدرس فیزیکی و ثابت است. البته توجه کنید که ممکن است ما اصلا آدرس مک مقصد اصلی را ندانیم اما فهمیدن آدرس مک روتر یا مسیریاب شبکه ضروری است. این مسیر یاب است که به آدرس مک مقصد نیاز دارد پس ما فقط با دانستن آدرس IP مقصد دادهها را ارسال میکنیم ولی اگر کمی وارد ساختار شبکه بشویم، خواهیم دید که کل ارتباط از طریق آدرسهای مک انجام میگیرد. پس وارد ساختار شبکه میشویم:
آدرس مک در لایه ۲ مدل OSI یعنی در بخش Data Link است در حالی که IP در لایه ۳ یعنی بخش Network است. میدانیم که IP به صورت کامل فقط یک پروتکل برای انتقال داده و ارتباط است که در آن، برای هر کامپیوتر یک آدرس 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 انجام میگیرد. در مرحله دوم نیز به این ترتیب داده مسیریابی میشود با ارسال داده از روتر شبکه اول به روتر شبکه دوم و در مرحله آخر نیز روتر دوم به راحتی مقصد را شناخته سپس با استفاده از همان پروتکل، آدرس مک آن را دریافت کرده و داده را به درستی به مقصد میرساند. توجه کنید که این دیاگرام برای ارتباطات غیرمستقیم است.