قرارداد نقطه‌به‌نقطه
پروتکل نقطه به نقطه  در شبکه های رایانه ای ، پروتکل نقطه به نقطه (PPP) یک پروتکل ارتباطی لایه پیوند داده (لایه ۲) است که مستقیماً بین دو روتر (مسیریاب) بدون هیچ میزبان یا شبکه دیگری در این بین قرار دارد. می تواند تأیید اعتبار اتصال ، رمزگذاری انتقال و فشرده سازی داده ها را فراهم کند.
PPP در بسیاری از انواع شبکه‌های فیزیکی از جمله کابل سریال، خط تلفن، خط ترانک، تلفن همراه، سیم های رادیویی تخصصی، ISDN، و سیم فیبر نوری مثل SONET (سلسه همگام رقمی) استفاده می‌شود. ارائه دهندگان خدمات اینترنتی (ISP ها) از PPP برای دسترسی شماره‌گیری به اینترنت استفاده کرده‌اند، بسته‌های IP نمی‌توانند بر روی یک خط مودم به تنهایی انتقال یابند، بدون یک پروتکل پیوند داده که بتواند جایی که بسته انتقال شروع‌شده و کجا به پایان می‌رسد را شناسایی شود.
دو مشتق PPP ، پروتکل نقطه به نقطه بر روی اترنت (PPPoE) و پروتکل نقطه به نقطه بر روی (شبکه) حالت انتقال ناهمگام (PPPoA) که معمولاً توسط ISP ها برای یک خط مشترک دیجیتالی ( DSL ) برای اتصال سرویس اینترنت با مشتریان استفاده می شوند. PPP معمولاً به عنوان یک پروتکل لایه پیوند داده برای اتصال از طریق مدارهای همزمان و ناهمزمان مورد استفاده قرار می گیرد ، جایی که تا حد زیادی جایگزین پروتکل اینترنت سری قبلی (SLIP) و استانداردهای اجباری شرکت تلفنی شده (مانند پروتکل دسترسی به لینک متوازن (LAPB) در مجموعه پروتکل X.25) است. تنها نیاز PPP این است که مدار ارائه شده باید دو طرفه باشد. PPP برای کار با پروتکلهای لایه شبکه متعددی از جمله پروتکل اینترنت (IP) , TRILL ، تبادل بسته بین شبکه ای (IPX) , NBF DECnet و AppleTalk طراحی شده است. مانند SLIP که یک اتصال کامل اینترنتی روی خطوط تلفن از طریق مودم است. قابل اطمینان تر از SLIP است زیرا برای اطمینان از سالم بودن بسته های اینترنت آن را دو بار بررسی می کند. بسته های آسیب دیده را دوباره ارسال می کند.
PPP تا حدی بعد از ویژگی‌های اصلی HDLC طراحی شد. طراحی های PPP ویژگی های اضافی دیگری را شامل می شوند که تا آن زمان فقط در پروتکل های پیوند داده اختصاصی مشاهده شده بودند. PPP در RFC 1661 مشخص شده است.
RFC ۲۵۱۶ پروتکل نقطه به نقطه روی اترنت ( PPPoE ) را به عنوان روشی برای انتقال PPP روی اترنت توصیف می‌کند که گاهی با DSL استفاده می‌شود.
۲۳۶۴ پروتکل نقطه به نقطه را بر روی ATM ( PPPoA ) به عنوان روشی برای انتقال PPP از طریق لایه ۵ سازگاری با دستگاه ATM (AAL5) توصیف می کند ، که همچنین یک جایگزین دیگر برای PPPoE استفاده شده با DSL است.
PPP , PPPoE و PPPoA به طور گسترده ای در خطوط WAN استفاده می شود.
PPP یک پروتکل لایه ای است که دارای سه جز است:پیکربندی خودکار
LCP ارتباطات را با ظرافت آغاز و خاتمه می دهد ، به میزبان اجازه می دهد تا در مورد گزینه های اتصال تبادل کند. این بخش جدایی‌ناپذیر از PPP است و با همان مشخصات استاندارد تعریف می‌شود. LCP پیکربندی اتوماتیک واسط‌ها در هر انتها (مانند تنظیم اندازه دیتاگرام ، نویسه های فرار شده و اعداد جادویی) و برای انتخاب احراز هویت اختیاری فراهم می‌کند. پروتکل LCP در بالای PPP (با شماره پروتکل PPP 0xC021) اجرا می شود و بنابراین قبل از اینکه LCP بتواند آن را پیکربندی کند باید یک اتصال بنیادی PPP برقرار شود.
RFC 1994 پروتکل تایید هویت دست دادن (CHAP) را توصیف می کند ، که برای برقراری ارتباط شماره گیری با ISP ترجیح داده می شود. اگرچه منسوخ شده است ، اما پروتکل احراز هویت رمز عبور (PAP) هنوز هم گاهی اوقات استفاده می شود.
گزینه دیگر برای احراز هویت از طریق PPP، پروتکل احراز هویت قابل توسعه (EAP) است که در RFC 2284 شرح داده شده است. پس از ایجاد پیوند ، ممکن است پیکربندی شبکه (لایه ۳) اضافی رخ دهد. به طور معمول، پروتکل کنترل پروتکل اینترنت (IPCP) استفاده می شود، هر چند پروتکل کنترل تبادل بسته اینترنت (IPXCP) و پروتکل کنترل AppleTalk (ATCP) زمانی محبوب بودند پروتکل کنترل نسخه ۶ پروتکل اینترنت (IPv6CP) استفاده گسترده در آینده را مشاهده خواهد کرد، زمانی که IPv6 جایگزین IPv4 را به عنوان پروتکل لایه - ۳ جایگزین می‌کند. پروتکل‌های لایه شبکه چندگانه
PPP به چندین پروتکل لایه شبکه اجازه می دهد تا روی همان پیوند ارتباطی کار کنند. برای هر پروتکل لایه شبکه، یک پروتکل کنترل شبکه جداگانه (NCP) به منظور کپسوله سازی و تبادل گزینه‌های برای پروتکل‌های لایه شبکه چندگانه ارائه شده‌است. با اطلاعات لایه شبکه تبادل می کند ، به عنوان مثال آدرس شبکه یا گزینه های فشرده سازی ، پس از برقراری اتصال.
به عنوان مثال ، پروتکل اینترنت (IP) از پروتکل کنترل IP (IPCP) و تبادل بسته های اینترنت (IPX) از پروتکل کنترل Novell IPX (IPX / SPX) استفاده می کنند.
NCP های زیر ممکن است با PPP استفاده شوند:تشخیص پیوند حلقه ای
PPP ارتباطات را با استفاده از یک ویژگی شامل اعداد جادویی شناسایی می‌کند. زمانی که گره پیام‌های LCP را ارسال می‌کند، این پیام‌ها ممکن است شامل یک عدد جادویی باشند. اگر یک خط حلقه گردد، گره پیام LCP را با عدد جادویی خود دریافت می‌کند، به جای آن که یک پیام با شماره جادویی همتای خود دریافت کند.
در بخش قبلی استفاده از گزینه های LCP برای تأمین نیازهای خاص اتصال WAN معرفی شده است. PPP ممکن است شامل گزینه های LCP زیر باشد:
فریم های PPP انواع فریم های HDLC هستند:
اگر هر دو طرف بر روی فشردگی میدان و کنترل میدان در طول LCP توافق کنند، آنگاه این قسمت ها حذف می‌شوند. همچنین اگر هر دو طرف با فشرده‌سازی میدان پروتکل توافق کنند، آنگاه بایت 0X00 را می توان حذف کرد.
قسمت پروتکل نوع بسته انتقالی را نشان می دهد: 0xC021 برای LCP ، 0x80xy برای NCPs مختلف ، 0x0021 برای IP ، 0x0029 Apple Talk ، 0x002B برای IPX ، 0x003D برای چند منظوره ، 0x003F برای NetBIOS ، 0x00FD برای MPPC و MPPE و غیره. PPP برخلاف EtherType محدود است و نمی تواند شامل داده های عمومی لایه ۳ باشد. قسمت اطلاعات شامل بسته انتقالی PPP است. دارای متغیری است با اندازه ی حداکثر انتقال که بیشینه واحد انتقال نام دارد. به طور پیش فرض ، حداکثر ۱۵۰۰ هشت تایی است. ممکن است روی انتقال پد شود. اگر اطلاعات مربوط به یک پروتکل خاص بتواند پد شود ، این پروتکل باید اجازه دهد اطلاعات از پد متمایز شود.
کپسوله سازی
فریم های PPP در یک پروتکل لایه پایین تر کپسوله می شوند که قاب بندی را فراهم می کند و ممکن است توابع دیگری مانند یک جمع‌آزما برای تشخیص خطاهای انتقال را فراهم کند. PPP در پیوندهای سریال معمولاً در قاب مشابه HDLC ، که توسط IETF RFC 1662 توصیف می شود ، کپسوله می شود.
فیلد Flag در صورت استفاده از PPP با کادر بندی HDLC مانند وجود دارد.
قسمتهای آدرس و کنترل همیشه دارای مقدار hex FF (برای "همه ایستگاه ها") و hex 03 (برای "اطلاعات بدون شماره") هستند ، و هر زمان که PPP LCP آدرس-و-کنترل-زمینه-فشرده سازی (ACFC) تبادل می شود می تواند حذف شود .
قسمت تعیین توالی قاب (FCS) برای تعیین خطای یک فریم منفرد استفاده می شود. این شامل یک جمع‌آزما محاسبه شده بر روی قاب برای محافظت اساسی در برابر خطاهای انتقال است. این یک کد CRC مشابه کدی است که برای سایر طرح های محافظت از خطای پروتکل لایه دیگر مانند آنچه در اترنت استفاده شده است. براساس RFC 1662 ، این اندازه می تواند ۱۶ بیت (۲ بایت) یا ۳۲ بیت (۴ بایت) باشد (پیش فرض ۱۶ بیت است - چند جمله ای "x" + "x" + "x" + 1). FCS پس از کپسوله شدن پیام بر روی قسمتهای آدرس ، کنترل ، پروتکل ، اطلاعات و پدینگ محاسبه می شود.PPP چند منظوره
PPP چند منظوره (که به آن MLPPP , MP , MPPP , MLP یا چند منظوره نیز گفته می شود) روشی را برای پخش ترافیک در چندین اتصال مشخص PPP ارائه می دهد. این مورد در RFC 1990 تعریف شده است. می توان از آن برای مثال برای اتصال کامپیوتر خانگی به یک سرویس دهنده اینترنت با استفاده از دو مودم سنتی 56k یا برای اتصال یک شرکت از طریق دو خط اجاره ای استفاده کرد.
در یک خط PPP فریم ها نمی توانند از حالت خارج خارج شوند ، اما این امکان وجود دارد که فریم ها بین چندین اتصال PPP تقسیم شوند. بنابراین ، PPP چندمنظوره باید قطعات را شماره گذاری کند تا هنگام ورود مجدداً آنها را به ترتیب صحیح قرار داد. PPP چند منظوره مثالی از فناوری تجمیع پیوند است. Cisco IOS نسخه ۱۱٫۱ را منتشر می کند و بعداً از PPP چند منظوره پشتیبانی می کند.
PPP چند کلاسه
با PPP ، نمی توان چندین اتصال PPP متمایز همزمان را از طریق یک پیوند برقرار کرد. این کار با PPP چند منظوره نیز امکان پذیر نیست.
PPP چند منظوره برای همه قطعات یک بسته از اعداد مجاور استفاده می کند و در نتیجه امکان ارسال توالی قطعات یک بسته به منظور ارسال بسته دیگر وجود ندارد. با این کار چندین بار PPP چند منظوره روی پیوندهای مشابه اجرا نمی شود.
PPP چند کلاسه نوعی PPP چند منظوره است که در آن هر "کلاس" از ترافیک از فضای عددی توالی جداگانه و بافر جمع آوری مجدد استفاده می کند. PPP چند کلاسه در RFC 2686 تعریف شده است.
پروتکل های مشتق شده
PPTP (قرارداد تونل زنی نقطه به نقطه) نوعی PPP بین دو میزبان از طریق GRE با استفاده از رمزگذاری (MPPE) و فشرده سازی (MPPC) است.
به عنوان یک قرارداد ۲ لایه بین دو انتهای تونل
از پروتکل های بسیاری می توان برای تونل سازی داده ها از طریق شبکه های IP استفاده کرد. برخی از آنها مانند SSL , SSH یا L2TP رابط های شبکه مجازی ایجاد می کنند و تصور اتصال مستقیم فیزیکی بین نقاط انتهایی تونل را ایجاد می کنند. به عنوان مثال در یک میزبان Linux ، این رابط ها tun0 یا ppp0 نامیده می شوند.
از آنجا که فقط دو نقطه انتهایی در یک تونل وجود دارد ، تونل یک اتصال نقطه به نقطه است و PPP یک انتخاب طبیعی به عنوان پروتکل لایه پیوند داده بین رابط های شبکه مجازی است. PPP می تواند آدرس های IP را به این رابط های مجازی اختصاص دهد و از این آدرس های IP می توان برای مسیریابی بین شبکه های دو طرف تونل استفاده کرد.
IPsec در حالت تونل سازی رابط های فیزیکی مجازی را در انتهای تونل ایجاد نمی کند ، زیرا تونل مستقیماً توسط پشته TCP / IP اداره می شود. برای تهیه این رابط ها می توان از L2TP استفاده کرد ، این روش L2TP / IPsec نامیده می شود. در این مورد نیز PPP آدرس های IP را به قسمت انتهایی تونل ارائه می دهد.
PPP در RFC 1661 (پروتکل نقطه به نقطه ، ژوئیه ۱۹۹۴) تعریف شده است. RFC 1547 (الزامات پروتکل استاندارد به نقطه از نقطه به نقطه در اینترنت ، دسامبر ۱۹۹۳) اطلاعات تاریخی درباره نیاز به PPP و توسعه آن را ارائه می دهد. یک سری RFC های مرتبط برای تعریف نحوه کار پروتکل های مختلف کنترل شبکه از جمله TCP / IP , DECnet , AppleTalk , IPX و سایر موارد با PPP نوشته شده است.Additional drafts: