P4 (زبان برنامه‌نویسی)

P4 یک زبان برنامه‌نویسی طراحی شده برای برنامه‌نویسی بسته در سطح انتقال (Forwarding plane) است. بر خلاف زبان‌های برنامهم‌نویسی عمومی مانند C یا پایتون، P4 یک زبان خاص دامنه با تعدادی ساختار بهینه‌سازی شده در حوزه انتقال بسته‌های شبکه است. P4 متن‌باز، با مجوزی آسان‌گیر و نگهداری شده توسط یک سازمان غیر انتفاعی به نام کنسرسیوم زبان P4 است. این زبان در اصل در یک مقاله SIGCOMM CCR در سال ۲۰۱۴ با عنوان «برنامه‌نویسی پردازشگر بسیته مستقل از پروتکل» شرح داده شد .
مرور کلی زبان و ملاحظات طراحی
به عنوان زبان که به طور خاص هدف آن در کاربرد انتقال بسته است، فهرست الزامات مورد نیاز یا گزینه‌های طراحی نیز تا حدودی منحصر به همان موارد استفاده می‌باشد. این زبان برای دستیابی به اهداف زیر طراحی شده است:
هدف ایجاد
P4 برنامه‌های طراحی شده به اجرای مستقل از معنی آنها را می‌توان وارد شده در برابر بسیاری از انواع مختلف از اجرای ماشین آلات مانند منظوره پردازنده FPGAs سیستم(ع)-بر-تراشه پردازنده‌های شبکه و ASICs. این انواع مختلف از ماشین آلات شناخته شده به عنوان P4 اهداف و هر هدف باید همراه با ارائه یک کامپایلر که نقشه P4 کد منبع به یک هدف تغییر مدل. به عنوان بسیاری از اهداف اولیه برای P4 برنامه‌ها استفاده شد برای ساده سوئیچینگ بسته این بسیار معمول است برای شنیدن اصطلاح "P4 سوئیچ" استفاده می‌شود حتی اگر "P4 هدف" است و بیشتر به طور رسمی درست است.
پروتکل استقلال
P4 طراحی شده است که پروتکل مستقل به این معنی که زبان هیچ پشتیبانی بومی و حتی به صورت مشترک از پروتکل‌های مانند IP اترنت TCP VxLAN یا MPLS هستند. در عوض P4 برنامه نویس توصیف سربرگ فرمت و نام فیلد از پروتکل‌های مورد نیاز در این برنامه که به نوبه خود تفسیر و پردازش وارد برنامه و دستگاه مورد نظر.
Reconfigurability
پروتکل استقلال و انتزاعی زبان مدل اجازه می‌دهد برای reconfigurability – P4 اهداف باید قادر به تغییر راه آنها فرایند بسته (شاید چندین بار) و پس از آنها مستقر هستند. این قابلیت به طور سنتی مرتبط با حمل و نقل هواپیماهای ساخته شده در general-purpose پردازنده یا پردازنده‌های شبکه به جای ثابت تابع ASICs. اگر چه در زبان وجود دارد هیچ چیز برای جلوگیری از داده هدف از بهینه سازی در اطراف مجموعه‌ای از پروتکل‌های این بهینه سازی در حال نامرئی به زبان نویسنده است و ممکن است در نهایت کاهش سیستم انعطاف پذیری و reconfigurability اهداف است.
بازی-اکشن پردازش
اساسی به P4 است مفهوم بازی اکشن خطوط لوله است. مفهومی حمل و نقل بسته‌های شبکه یا فریم را می‌توان به یک سری از متغیر جدول مربوطه و هدر دستکاری. در P4 این دستکاری شناخته شده به عنوان "اقدامات" و به طور کلی شامل چیزهایی مانند کپی بایت زمینه از یک مکان به مکان دیگر بر اساس گرین کارت آمریکا نتایج آموخته حمل و نقل دولت است. P4 آدرس تنها اطلاعات هواپیما از یک بسته حمل و نقل دستگاه‌های آن را مشخص می‌کند که کنترل هواپیما و نه هر گونه دقیق پروتکل برای برقراری ارتباط بین دولت روی داده و کنترل هواپیما. به جای P4 با استفاده از مفهوم جداول به نمایندگی حمل و نقل هواپیما دولت است. یک رابط بین کنترل هواپیما و مختلف P4 جداول ارائه شده باید اجازه می‌دهد تا کنترل هواپیما برای تزریق/تغییر دولت در برنامه است. این رابط کاربری به طور کلی به عنوان "برنامه API".
اجزای زبان
عناوین
هدر تعاریف توصیف بسته فرمت و ارائه اسامی این زمینه در داخل بسته. زبان اجازه می‌دهد تا سفارشی سربرگ با نام و زمینه‌های دلخواه ظهر اگر چه بسیاری از هدر تعاریف استفاده از به طور گسترده‌ای شناخته شده پروتکل نام و زمینه عرض است. برای مثال یک 802.3 Ethernet header تعریف ممکن است به نام "اترنت" و شامل 48-bit زمینه به نام "مقصد" و پس از 48-bit "src" درست پس از 16 بیت "نوع" درست است. نام در هدر تعریف استفاده می‌شود بعد در P4 برنامه برای مرجع در این زمینه.
تجزیه کننده
این P4 تجزیه کننده محدود است دولت ماشین که پیاده روی در ورودی بایت-جریان و عصاره عناوین بر اساس برنامه‌ریزی تجزیه و تحلیل نمودار. یک مثال ساده می‌تواند یک تجزیه کننده است که عصاره اترنت منبع و مقصد و نوع رشته و سپس انجام یک بیشتر استخراج بر اساس ارزش در زمینه نوع (ارزش‌های مشترک ممکن است ipv4, ipv6 یا MPLS).
جداول
P4 جداول شامل دولت استفاده می‌شود به جلو بسته. جداول تشکیل شده مراجعه و کلید مربوطه مجموعه‌ای از اقدامات و پارامترهای خود را. بی‌اهمیت به عنوان مثال ممکن است برای ذخیره مجموعه‌ای از مقصد مک آدرس به مراجعه به کلیدهای مربوطه اقدام می‌تواند مجموعه‌ای از پورت خروجی دستگاه و/یا افزایش یک شمارنده است. جداول مرتبط و اقدامات تقریبا همیشه زنجیر با هم در دنباله به درک کامل بسته حمل و نقل منطق اگر چه در انتزاعی آن است که ممکن است برای ساخت یک جدول که شامل تمام گرین کارت آمریکا اطلاعات کلیدی و کامل خروجی اکشن مجموعه.
اقدامات
اقدامات در P4 توصیف بسته میشه و ابرداده دستکاری. در P4 زمینه‌های ابرداده است اطلاعات در مورد یک بسته است که به طور مستقیم به دست آمده از تجزیه کننده مانند رابط ورودی که قاب وارد شدند. شرح یک مثال عمل ممکن است "کاهش IPv4 TTL زمینه توسط یک" یا "کپی کردن آدرس MAC از پورت خروجی جدول به خروجی بسته هدر است." P4 تعریف استاندارد ابرداده‌ای است که باید توسط تمام اهداف به عنوان به خوبی به عنوان هدف خاص ابرداده است که ارائه شده توسط نویسنده از اهداف خاص.
کنترل جریان
کنترل جریان در P4 تعیین نسبی دنباله‌ای از جداول بوده و اجازه می‌دهد تا اجزایی به صورت شرطی از جداول بر اساس if/then/else ساخت.
لینک‌های خارجی