Point-to-Point Protocol (PPP) - дейта-линк протокол, който първоначално е създаден като капсулиращ протокол за предаване на IP трафик по връзки тип точка-до-точка. PPP създава стандарт за управление и работа с IP адреси, асинхронно и бит-ориентирано синхронно капсулиране, конфигуриране и тестване качеството на връзката (линка), отркиване на грешки, както и опции за договаряне на адресите от мрежовия слой, компресията на данните, автентифициране на сесията и кирптиране на трафика.
PPP поддържа тези функции, чрез предоставяне на разширен LCP (протокол за контрол на линка) и семейство от протоколи за мрежов контрол (NCP), с които свободно да се избират опционални конфигурационни параметри. В допълнение към IP PPP поддържа също протоколите IPX на Novell и DECnet.
Компоненти
PPP предоставя метод за предаване на дейтаграми по серийни p2p връзки и се състои от три главни компоненти:
- метод за капсулиране на дейтаграми през серийни линкове чрез HDLC протокола
- разширен LCP протокол за установяване, конфигуриране и тестване на връзката
- семейство NCP протоколи за установяване и конфигуриране на различни протоколи от мрежовия слой (PPP е проектиран така, че да позволява едновременна работа на няколко такива протокола)
Принцип на работа
За установяване на комуникация през point-2-point линк, PPP първоначално изпраща LCP фрейм за конфигуриране и тестване на възникналата връзка. След това PPP изпраща NCP фрейм за избор на един или повече протоколи от мрежовия слой. Когато всеки от тях е конфигуриран те могат да започнат изпращане на пакети по линка, който ще остане отворен за комуникация докато не се получи изричен LCP или NCP фрейм за затварянето му или пък докато не възникне външно събитие (например времето на неактивност е изтекло или има намеса от страна на потребителя).
Структура на PPP фреймЕдин PPP фрейм се състои от следните полета:
- flag - еднобайтов флаг (обикновенно 01111110), който отчита началото или края на фрейма
- address - еднобайтов стандартен broadcast адрес (в двоична последователност 11111111)
- control - контролно поле с дължина един байт (в последователност 00000011)
- protocol - двубайтово поле, идентифициращо капсулирания в информационното поле на фрейма протокол
- data - поле с дължина 0 или повече байта, което съдържа дейтаграмата за протокола, указан в поле protocol. Края на дейтаграмата се указва чрез вмъкване на затварящ флаг (точно определена двоична последователност). Максималната дължина на полето е 1500 байта, но при предварително договаряне различна имплементация на PPP може да използва друга стойност за максимална дължина
- fcs (frame check sequence) - поле за проверка на грешки във фрейма (обикновенно с дължина 2 байта). Съдържа изчислената хеш сума на дейтаграмата от data полето. Ако при примане на фрейма стойността в fcs полето и стойността на хеша се различават, фрейма се пропуска и се чака повторното му предаване.
PPP LCP предоставя метод за започване, конфигуриране, обслужване и прекратяване на point-to-point връзката. Фазите, през които минава са 4:
- първоначално се извършва договаряне за стартирането и конфигурирането на линка. Преди да започне размяна на дейтаграми от мрежовия слой (например IP), LCP трябва да отвори връзката и да определи конфигурационните и параметри. Фазата е завършена, когато се изпрати и приеме потвърждение за направената конфигурация
- следващата фаза е опционална и е свързана с тестване качеството на връзката. LCP забавя трансфера на NLP информацията докато фазата завърши
- следва договаряне за конфигурацията на протоколите от мрежово ниво, които ще се използват. Всеки от тях може да се конфигурира отделно според подходящия NCP и да се стартира или прекрати по всяко време. При затваряне на връзката LCP трябва да уведоми протоколите от мрежово ниво, за да предприемат необходимите действия
- последната фаза се появява при прекратяване на връзката. LCP може да затвори линка по всяко време - обикновенно това става по заявка на потребителя, но може да се дължи и на физическо събитие, например загуба по трасето или изтичане на таймера за неактивност.