P4 (زبان برنامه‌نویسی): تفاوت میان نسخه‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
Rostami8 (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
جز اشکان.ح صفحهٔ P4 (زبان برنامه نویسی) را به P4 (زبان برنامه‌نویسی) منتقل کرد: نیم‌فاصله
(بدون تفاوت)

نسخهٔ ‏۱۷ فوریهٔ ۲۰۱۷، ساعت ۱۴:۰۳

P4
پارادایم برنامه‌نویسیcompiled, domain-specific, imperative
توسعه‌دهندهThe P4 Language Consortium
ظهوریافته در۲۰۱۳؛ ۱۱ سال پیش (۲۰۱۳-خطا: زمان نامعتبر}})
انتشار پایدار
version 1.0.2[۱]
۱۷ فوریه ۲۰۱۵؛ ۹ سال پیش (۲۰۱۵-17}})
پروانهApache-style
.p4
وبگاه

P4 یک زبان برنامه نویسی طراحی شده می باشد که به برنامه نویس اجازه می دهد بسته حمل و نقل در سطح شبکه را مدیریت نماید. در مقایسه با یک هدف کلی زبان مانند C یا Python, P4 یک دامنه خاص زبان با تعدادی از سازه های بهینه سازی شده در سراسر شبکه اطلاعات حمل و نقل. P4 یک منبع بازبا permissively مجوز زبان و نگهداری می شود توسط یک سازمان غیر انتفاعی به نام P4 زبان کنسرسیوم. این زبان در اصل شرح داده شده در یک SIGCOMM CCR کاغذ در سال 2014 با عنوان "برنامه نویسی پروتکل مستقل بسته پردازنده"[۲] – alliterative نام کوتاه به "P4".

مرور کلی زبان و ملاحظات طراحی

به عنوان زبان است که به طور خاص هدف در بسته حمل و نقل برنامه های کاربردی لیست از الزامات مورد نیاز و یا گزینه های طراحی تا حدودی منحصر به فرد برای کسانی که استفاده از موارد. زبان طراحی شده است برای دیدار با تعدادی از این اهداف:

هدف ایجاد

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 ساخت.

لینک های خارجی

منابع

  1. "P4 language spec". Retrieved 7 April 2015.
  2. "P4: Programming Protocol-Independent Packet Processors". July 2014. Retrieved 7 April 2015.
  3. "P4 developers mailing list". July 2015. Retrieved 15 July 2015.