موضوع مقاله: P4 (زبان برنامه‌نویسی) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # P4 (زبان برنامه‌نویسی) | مقدمه: بر خلاف زبان‌های برنامهم‌نویسی عمومی مانند C یا پایتون، P4 یک زبان خاص دامنه با تعدادی ساختار بهینه‌سازی شده در حوزه انتقال بسته‌های شبکه است. | ## بخش 1: P4 (زبان برنامه‌نویسی) | P4 متن‌باز، با مجوزی آسان‌گیر و نگهداری شده توسط یک سازمان غیر انتفاعی به نام کنسرسیوم زبان P4 است. مرور کلی زبان و ملاحظات طراحی به عنوان زبان که به‌طور خاص هدف آن در کاربرد انتقال بسته است، فهرست الزامات مورد نیاز یا گزینه‌های طراحی نیز تا حدودی منحصر به همان موارد استفاده می‌باشد . این زبان برای دستیابی به اهداف زیر طراحی شده‌است: هدف ایجاد P4 برنامه‌های طراحی شده به اجرای مستقل ازمعنی آن‌ها را می‌توان وارد شده در برابر بسیاری از انواع مختلف از اجرای ماشین آلات مانند منظوره پردازنده FPGAs سیستم(ع)-بر-تراشه پردازنده‌های شبکه و ASICs. این انواع مختلف از ماشین آلات شناخته شده به عنوان P4 اهدافو هر هدف باید همراه با ارائه یک کامپایلر که نقشه P4 کد منبع به یک هدف تغییر مدل. به عنوان بسیاری از اهداف اولیه برای P4 برنامه‌ها استفاده شد برای ساده سوئیچینگ بسته این بسیار معمول است برای شنیدن اصطلاح "P4 سوئیچ" استفاده می‌شود حتی اگر "P4 هدف" است و بیشتر به‌طور رسمی درست است. پروتکل استقلال P4 طراحی شده‌است که پروتکل مستقلبه این معنی که زبان هیچ پشتیبانی بومی و حتی به صورت مشترک از پروتکل‌های مانند آی‌پی اترنت تی‌سی‌پی VxLAN یا MPLS هستند. در عوض P4 برنامه‌نویس توصیف سربرگ فرمت و نام فیلد از پروتکل‌های مورد نیاز در این برنامه که به نوبه خود تفسیر و پردازش وارد برنامه و دستگاه مورد نظر. | ## بخش 2: P4 (زبان برنامه‌نویسی) | اگر چه در زبان وجود دارد هیچ چیز برای جلوگیری از داده هدف از بهینه سازی در اطراف مجموعه ای از پروتکل‌های این بهینه سازی در حال نامرئی به زبان نویسنده است و ممکن است در نهایت کاهش سیستم انعطاف‌پذیری و reconfigurability اهداف است. مفهومی حمل و نقل بسته‌های شبکه یا فریم را می‌توان به یک سری از متغیر جدول مربوطه و هدر دستکاری. در P4 این دستکاری شناخته شده به عنوان "اقدامات" و به‌طور کلی شامل چیزهایی مانند کپی بایت زمینه از یک مکان به مکان دیگر بر اساس گرین کارت آمریکا نتایج آموخته حمل و نقل دولت است. P4 آدرس تنها اطلاعات هواپیما از یک بسته حمل و نقل دستگاه‌های آن را مشخص می‌کند که کنترل هواپیما و نه هر گونه دقیق پروتکل برای برقراری ارتباط بین دولت روی داده و کنترل هواپیما. یک رابط بین کنترل هواپیما و مختلف P4 جداول ارائه شده باید اجازه می‌دهد تا کنترل هواپیما برای تزریق/تغییر دولت در برنامه است. اجزای زبان عناوین هدر تعاریف توصیف بسته فرمت و ارائه اسامی این زمینه در داخل بسته. زبان اجازه می‌دهد تا سفارشی سربرگ با نام و زمینه‌های دلخواه ظهر اگر چه بسیاری از هدر تعاریف استفاده از به‌طور گسترده ای شناخته شده پروتکل نام و زمینه عرض است. | ## بخش 3: P4 (زبان برنامه‌نویسی) | تجزیه کننده این P4 تجزیه کننده محدود است دولت ماشین که پیاده‌روی در ورودی بایت-جریان و عصاره عناوین بر اساس برنامه‌ریزی تجزیه و تحلیل نمودار. یک مثال ساده می‌تواند یک تجزیه‌کننده است که عصاره اترنت منبع و مقصد و نوع رشته و سپس انجام یک بیشتر استخراج بر اساس ارزش در زمینه نوع (ارزش‌های مشترک ممکن است آی‌پی ورژن6, آی‌پی ورژن4, یا MPLS). بی اهمیت به عنوان مثال ممکن است برای ذخیره مجموعه ای از مقصد مک آدرس به مراجعه به کلیدهای مربوطه اقدام می‌تواند مجموعه ای از پورت خروجی دستگاه و/یا افزایش یک شمارنده است. جداول مرتبط و اقدامات تقریباً همیشه زنجیر با هم در دنباله به درک کامل بسته حمل و نقل منطق اگر چه در انتزاعی آن است که ممکن است برای ساخت یک جدول که شامل تمام گرین کارت آمریکا اطلاعات کلیدی و کامل خروجی اکشن مجموعه. در P4 زمینه‌های ابرداده است اطلاعات در مورد یک بسته است که به‌طور مستقیم به دست آمده از تجزیه‌کننده مانند رابط ورودی که قاب وارد شدند. شرح یک مثال عمل ممکن است "کاهش آی‌پی ورژن4 TTL زمینه توسط یک" یا "کپی کردن مک آدرس از پورت خروجی جدول به خروجی بسته هدر است." P4 تعریف استاندارد ابرداده ای است که باید توسط تمام اهداف به عنوان به خوبی به عنوان هدف خاص ابرداده است که ارائه شده توسط نویسنده از اهداف خاص. | ## جمع‌بندی | کنترل جریان کنترل جریان در P4 تعیین نسبی دنباله ای از جداول بوده و اجازه می‌دهد تا اجزایی به صورت شرطی از جداول بر اساس if/then/else ساخت.