شبکه های MPLS[1] چندین سال است که مورد استفاده طراحان و مهندسان قرار گرفته است. دلیل محبوبیت این تکنولوژی این است که از برچسب ها یا لیبل های متصل مختص هر بسته برای ارسال آنها درون شبکه استفاده می کند. در این بخش توضیح داده خواهد شد که چرا MPLS در مدت زمان کوتاهی بسیار محبوب شد. با تعریف MPLS شروع و در ادامه درباره مزایای MPLS صحبت می شود.
لیبل هایMPLS، بین روترها پخش و منتشر میشوند تا بتوانند یک نگاشت لیبل به لیبل[2] بسازند. این لیبل ها به بستههای IP ضمیمه میشوند و روترها را قادر میسازند تا با نگاه کردن به لیبل و نه آدرس IP مقصد، ترافیک را ارسال کنند. بسته ها با سوئیچینگ لیبل به جای سوئیچینگ IP ارسال می شوند.
از جمله مزایای شبکه هایی که از MPLS استفاده می کنند، می توان به موارد زیر اشاره کرد:
لطفاً مقاله "سوئیچ شبکه لایه 2 و لایه 3؛ اترنت سوئیچ مطلوب شما کدام است؟" را مطالعه بفرمایید.
یک لیبل MPLS یک مجموعه 32 بیتی با ساختاری مشخص است. شکل-1 یک لیبل MPLS را نشان می دهد.
20 بیت اول مقدار لیبل را نشان میدهد. این مقدار می تواند بین 0 تا باشد. با این حال، 16 مقدار اول از استفاده عادی مستثنی هستند. به این معنا که وظیفه و کارایی خاصی دارند. بیت های 20 تا 22 سه بیت آزمایشی[4] (EXP) هستند. این بیت ها صرفاً برای کیفیت سرویس (QoS[5]) استفاده می شوند.
بیت 23 بیت انتهای استک یا دسته (BoS[6]) است. این بیت صفر است، مگر اینکه لیبل پایینی در استک باشد؛ در چنین حالتی بیت BoS، یک خواهد بود. استک مجموعهای از لیبل هایی است که در بالای بسته قرار میگیرند. استک می تواند فقط از یک لیبل تشکیل شده باشد یا تعداد بیشتری لیبل داشته باشد. تعداد لیبل ها (یعنی فیلد 32 بیتی) که می توان در استک قرار داد نامحدود است، اگرچه به ندرت استکی وجود دارد که از چهار یا بیشتر لیبل تشکیل شده باشد. استک یا پشته در اصل یکی از انواع داده ساختارها است و برای ذخیره و بازیابی دادهها کاربرد دارد.
بیت های 24 تا 31، هشت بیتی هستند که برای TTL[7] استفاده میشوند. این TTL همان عملکرد TTL موجود در هدر IP را دارد. در هر جهش به سادگی یکی از مقدارش کم می شود. وظیفه اصلی آن جلوگیری از گیر افتادن پکت در یک حلقه مسیریابی است. اگر یک حلقه مسیریابی رخ دهد و TTL وجود نداشته باشد، پکت برای همیشه در حلقه خواهد ماند. اگر TTL لیبل به صفر برسد، پکت حذف می شود.
روترهای MPLS برای مسیریابی یک پکت درون شبکه ممکن است به بیش از اضافه کردن یک لیبل نیاز داشته باشند. این عملیات را می توان با قرار دادن لیبل ها درون یک استک انجام داد. اولین لیبل در استک به عنوان لیبل بالایی[8] و آخرین لیبل نیز به عنوان لیبل پایینی[9] شناخته می شود. در بین آنها نیز می توان هر تعداد لیبلی اضافه کرد. شکل4-52 یک لیبل استک ( label stack ) را نشان میدهد.
همان طور که در شکل-2 مشاهده می کنید بیت BoS همه لیبل ها،صفر است اما BoS آخرین یا به عبارتی پایینترین لیبل مقدار 1 را پذیرفته است. در بعضی از کاربردهای MPLS از بیش از یک لیبل برای مسیریابی پکت استفاده می کنند؛ از جمله مثال های این کاربردها می توان به MPLS VPN و AToM اشاره کرد. هر دو این ها از دو لیبل برای انتقال پکت های خود استفاده خواهند کرد.
استک لیبل در کجا قرار می گیرد؟ استک در جلوی بسته لایه 3 قرار می گیرد (یعنی قبل از هدر پروتکل انتقال) اما بعد از هدر لایه 2.
کپسوله سازی[10] لایه 2 لینک، می تواند تقریباً هر نوعی باشد که سیسکو IOS پشتیبانی کند: PPP[11]، کنترل لینک داده سطح بالا[12] (HDLC)، اترنت و... . با فرض اینکه پروتکل انتقال IPv4 است و کپسوله سازی یک لینک PPP است، لیبل بعد از هدر PPP اما قبل از هدر Ipv4 وجود دارد. از آنجایی که لیبل در فریم لایه 2 قبل از هدر لایه 3 یا سایر پروتکل های انتقال قرار میگیرد، باید مقادیر جدیدی برای فیلد پروتکل لایه لینک داده[13] داشت که نشان می دهد آنچه پس از هدر لایه 2 قرار میگیرد بسته ای با لیبل MPLS است. فیلد پروتکل لایه لینک داده مقداری است که نشان می دهد فریم لایه 2 دارای چه نوع پیلودی می باشد.
شکل 4 را ملاحظه کنید. این مدل مرجع OSI است.
لایه پایین، لایه 1 یا لایه فیزیکی[14] و لایه بالایی، لایه 7 یا لایه اپلیکیشن[15] است. در حالی که لایه فیزیکی به ویژگی های کابل کشی، مکانیکی و الکتریکی مربوط می شود، لایه 2، لایه لینک داده[16]، به ساختاربندی فریم ها مربوط می پردازد. نمونه هایی از لایه لینک داده عبارتند از اترنت، PPP، HDLC. اهمیت لایه لینک داده تنها مربوط به لینک بین دو دستگاه است نه فراتر از آن. این بدان معنی است که هدر لایه لینک داده همیشه توسط دستگاه در انتهای دیگر لینک جایگزین میشود. لایه 3، لایه شبکه[17]، مربوط به ساختار پکتهای انتها به انتها است. اهمیتی فراتر از لینک داده دارد. معروف ترین نمونه پروتکلی که در لایه 3 کار می کند IP می باشد.
MPLS در کجا قرار می گیرد؟ MPLS یک پروتکل لایه 2 نیست زیرا کپسوله سازی لایه 2 هنوز با بسته های لیبل دار وجود دارد. MPLS همچنین واقعاً یک پروتکل لایه 3 نیست. بنابراین MPLS در لایه بندی OSI به خوبی مطابقت پیدا نمی کند. شاید ساده ترین کار این باشد که MPLS را به عنوان لایه 5/2 در نظر گرفت.
[1] Multiprotocol Label Switching
[2] Label-to-Label Mapping
[3] Border Gateway Protocol
[4] Experimental
[5] Quality of Service
[6] Bottom of Stack
[7] Time To Live
[8] Top label
[9] Bottom label
[10] Encapsulation
[11] Point-to-Point Protocol
[12] High-Level Data Link Control
[13] Data Link Layer Protocol
[14] Physical layer
[15] Application layer
[16] Data link layer
[17] Network layer