PPP (Point-to-Point Protocol)

ITpedia

PPP jest protokołem warstwy 2 służącym do ustanawiania łącza szeregowego punkt-punkt głównie między dwoma komputerami, rzadziej między komputerem a ruterem czy między dwoma ruterami. Ustanowienie takiego łącza wymaga znajomości wielu parametrów, z których część musi być ustalana podczas negocjacji. Przede wszystkim muszą być znane adresy na obydwu końcach łącza. Następnie – algorytmy kompresji, wspierane protokoły uwierzytelnienia, czasem adresy serwerów DNS i kilka innych. Parametry w rodzaju numerów telefonicznych, ważne w transmisjach modemowych, nie są przetwarzane przez PPP. Transmisje mogą być synchroniczne lub asynchroniczne, dwukierunkowe (po ustanowieniu połączenia). PPP nie ogranicza szybkości. W warstwie fizycznej PPP specyfikuje interfejs szeregowy, a w warstwie łącza danych ramkę HDLC z dodanym polem Protokół. PPP bardzo poważnie ograniczył zastosowanie SLIP, a niedługo zupełnie go wyeliminuje.

W połączeniach modemowych z Internetem PPP obsługuje TCP/IP, ale za konieczny adres IP (zwykle dynamiczny) zgłaszającego się komputera odpowiada dostawca usług. Ważną zaletą PPP jest umożliwianie użytkownikom korzystania z oprogramowania TCP/IP w podobny sposób, jak to czynią użytkownicy przyłączeni bezpośrednio do kabla internetowego, czyli nośnika sieci lokalnej stanowiącej podsieć Internetu. W rzeczywistości pakiety IP są kapsułkowane w ramki PPP (a nie ramkowane) i transmitowane do operatora usług internetowych, gdzie ramki zostaną usunięte. W datagramie IP może być zawarty pakiet TCP lub UDP. Z kolei w prywatnych sieciach wirtualnych pakiety PPP mogą wędrować w kapsule innego protokołu, na przykład L2TP.

Do głównych składników PPP zalicza się:

  1. Metodykę kapsułkowania datagramów wieloprotokołowych – IP, IPX, NetBEUI, AppleTalk czy DECnet Phase 4;
  2. Protokół LCP (Link Control Protocol) zarządzania stanami łącza – otwarcie, utrzymanie, zamknięcie – oraz negocjowania opcji łącza: wartość MTU, kompresja pól danych użytkowych (Stac, MSCP, Predictor-1), wymagania uwierzytelnienia (hasło, PAP, CHAP, RADIUS, EAP, IPSec);
  3. Zbiór protokołów NCP (Network Control Protocols) różnych warstw sieciowych odpowiedzialny za specyficzne parametry IP (albo parametry IPX, AppleTalk itp…): adresy, maski sieciowe, nazwy serwerów, kompresję nagłówków IP i TCP według algorytmu Van Jacobsena (VJ-COMP), listę serwerów DNS i parę innych.

MTU (Maximum Transmission Unit) określa w bajtach maksymalny pakiet, jaki można przesłać ustanowionym łączem. Duże pakiety nadają się do transportu danych (FTP, WWW) łączem o niskiej stopie błędów. Z kolei niewielkie pakiety zaleca się dla aplikacji interaktywnych, w tym protokołu TELNET. Najdłuższy pakiet PPP ma 1500 bajtów, najmniejszy 296, a przeciętny 576.

Porządek ustalania komunikacji przez łącze punkt–punkt jest ściśle ustalony. Najpierw obydwa porty szeregowe urządzeń z końców łącza PPP muszą wysyłać pakiety LCP niezbędne do skonfigurowania i testowania łącza danych. Rozpoczyna oczywiście urządzenie inicjujące zestawianie łącza. Następnie mogą być ustalane warunki uwierzytelnienia. Transmisje w okresach ustanawiania połączenia, negocjowania i testowania są półdupleksowe. Po uzgodnieniu protokołów uwierzytelnienia następuje konfigurowanie jednego lub paru protokołów warstwy sieciowej. Protokół PPP wykorzystuje do tego celu pakiety NCP. Po tej procedurze łącze jest gotowe do transmisji w obydwu kierunkach (dupleks).

Pakiety LCP, NCP i wszystkie inne są rozpoznawane w pierwszej kolejności po zawartości pola Protokół. Innymi słowy o zawartości pola Dane (wiadomości i dane aplikacji) świadczy szesnastobitowa liczba w polu Protokół pakietu PPP.

Kilka przykładów w zapisie szesnastkowym:

  • 0021 – IP (Internet Protocol);
  • 002B – IPX (Internetwork Packet Exchange);
  • 002D – skompresowany nagłówek TCP/P;
  • 0201 – pakiety „Hello” IEEE 802.1d;
  • 8021 – NCP: IPCP (Internet Protocol Control Protocol);
  • 802B – NCP: IPXCP (IPX Control protocol);
  • 80FD – NCP: Compression Control Protocol;
  • C001 – LCP (Link Control Protocol);

Są trzy klasy pakietów LCP: ustanawiające połączenie, kasujące je i utrzymujące połączenie. Do pierwszej należą pakiety przenoszące następujące informacje (w nawiasach ich kody): Configure-Request (1), Configure-Ack (2), Configure-Nak (3) oraz Configure-Reject (4); do drugiej: Terminate-Request (5) i Terminate-Ack (6); do trzeciej: Code-Reject (7), Protocol-Reject (8), Echo-Request (9), Echo-Reply (10) i Discard-Request (11).

PPP jest w rzeczywistości zbiorem wielu protokołów (ponad 25). Część z nich ma RFC, inne są zdefiniowane w głównym protokole PPP, w tym wspomniane LCP i NCP. Z kolei pojęcie zbioru NCP jest rezultatem wieloprotokołowości PPP. Kiedy protokołem sieciowym jest IPv4, NCP przeistacza się w IPCP, przy IPX Novella w IPXCP, a dla AppleTalk jest ATCP. Istnieje też IPv6CP. ^

-
-