Point to Point Protocol (PPP) - protokół warstwy łącza używany przy bezpośrednich połączeniach pomiędzy dwoma węzłami sieci. PPP bywa także skonfigurowany na interfejsie szeregowym asynchronicznym oraz synchronicznym. Służy także do prostego zestawiania tuneli. PPP jest stosowany w technologii WAN. Z protokołem tym wiąże się uwierzytelnianie PAP albo CHAP. Preferowany jest CHAP, albowiem w przeciwieństwie do PAP jest uznawany za bezpieczniejszy (używa MD5).
Zwykle jest w dwóch odmianach: PPPoE oraz PPPoA, w zależności od zastosowanej enkapsulacji.
PPP tworzy dwie podwarstwy w warstwie łącza danych w modelu OSI: Link Control Protocol oraz Network Control Protocol. Do pierwszej podwarstwy da się zaliczyć np. autoryzację, a druga odpowiada za komunikację z warstwą sieciową.
Rozszerzona detekcja błędów
PPP wykorzystuje pola Frame Check Sequence (FCS) aby wykryć błędy powstałe w ramkach podczas transmisji. Gdy liczba nieprawidłowych przekazów nadmiernie wzrośnie, łącze może ulec zerwaniu.
Dodatkowe opcje PPP
Protokół kontroli połączenia (ang. link control protocol - LCP) jest integralną częścią PPP zdefiniowaną w RFC oraz zawiera wykrywanie zapętlonych połączeń. Opiera się to na wykorzystywaniu liczby magicznej (ang. magic number). Każdy z uczestników komunikacji wysyła komunikaty LCP zawierające różniące się liczby. Jeżeli pojawi się połączenie zapętlone, to odbiornik dostanie wysłaną przez siebie wartość. W wyniku tego może to wykryć. Częścią specyfikacji PPP jest także protokół Internet Protocol Control Protocol (IPCP), który dopuszcza na automatyczne określenie adresów IP lokalnego komputera oraz zdalnej maszyny. Dodatkowo wielokrotnie wykorzystuje się DHCP do przekazywania takich informacji jak adres IP serwera DNS.
|zawiera datagram |- |FCS |2 (rzadziej 4) |suma kontrolna, kontrola błędów |}
RFC
Protokół PPP stał się opisany przez IETF w specyfikacji RFC 1661.
RFC 1994 opisuje protokół Challenge Handshake Authentication Protocol (CHAP) wykorzystywany w połączeniach dodzwanianych przez dostawców Internetu.
RFC 2516 definiuje PPPoE, czyli wersję PPP, gdzie połączenie pomiędzy modemem DSL albo ADSL oraz komputerem jest realizowane poprzez Ethernet.
Implementacje PPP
W Linuksie oraz innych Uniksach obsługa protokołu PPP jest możliwa dzięki demonowi pppd.