Point to Point Protocol (PPP)
-----------------------------
- RFC 1661, 1662

- na dvoubodových WAN linkách, pevné i komutované (ISDN,POTS)
- na různých fyzických rozhraních
- router-router
- host-network (přístupový server (Network Access Server-NAS, Terminal Server)), často použití hunting group
- na synchronních i asynchronních linkách (vždy duplex)

- detekce chyb v rámci
- možnost přenosu více síťových (L3) protokolů na lince současně
- možnost autentizace (PAP,CHAP), komprese
- dohoda mezi konci linky na parametrech přenosu

Rámce
-----
- rámce podobné HDLC (U-rámce): Flag(1),Address(1),Control(1),Protocol(2),Data(max.1500),FCS(2/4],Flag(1)
Adresa: vždy broadcast (11111111), Control: 3 (HDLC Unnumbered)
Cisco: default MTU 1500B
Formát se může měnit podle options dohodnutých v LCP (délka FCS, MTU apod.)



Pomocné protokoly PPP
---------------------
Link Control Protocol (LCP)
- otevření a uzavření linky
- autentizace (jednostranná, oboustranná)
- testování chybovosti linky (nepovinné, po otevření LCP, chybovost vypočtena po výměně počtu
bajtů přijatých/vyslaných oběma stranami, při špatné kvalitě shození linky,
probíhá před spuštěním NCP negotiation)
- detekce zapomenutého loopbacku (strana slyší svůj vlastní magic number v rámcích LCP)
- dohoda parametrů linky: komprese, callback, multilink, ...


Network Control Protocols (NCP) - skupina protokolů, specifických pro
jednotlivé přenášené síťové protokoly. Slouží pro dohadování parametrů
specifických pro jednotlivé síťové protokoly. Např. IPCP je pro protokol
IP, IPXCP pro IPX atd.
Dále řídící protokoly pro dohadování různých voleb (např. CCP-Compression Control Protocol)

Každý takový protokol je popsán ve zvláštním RFC.


NCP i LCP - vše spojová vrstva


Některé možnosti IPCP
---------------------
- NCP pro IP
- možnost přiřazení IP adresy klientovi (server přiřazuje pevně, z poolu nebo DHCP serveru)
(nebo zaslání výzvy, aby ji uživatel zadal)
- možnost dohody Van Jacobsonovy komprese hlaviček TCP (aktivní vyjednávání nebo pasivní podpora)


Možnosti autentikace uživatelů/zařízení
---------------------------------------

- jednosměrná nebo obousměrná autentizace
- úspěšná autentizace podmínkou funkce některých přídavných funkcí (např. callbacku)

Autoselekce protokolu na NAS
 - podle prvního příchozího znaku:
- cr - znakový režim (terminálový dialog)
- 7Eh - křídlová značka rámce PPP)


Metody autentizace:

- Terminálový dialog
- zadání a ověření jména a hesla textově ještě před (manuálním) spuštěním procesu protokolu PPP
 uživatelem (příkazem NAS)
 - možnost použití Chat scriptů.


- Protokol Password Authentication Protocol (PAP):
- jméno uživatele a heslo zasíláno jako cleartext
- řídí klient

- Challenge Handshake Authentication Protocol (CHAP):
Oba konce sdílí stejný šifrovací klíč (symetrické šifrování). Stanice,
která autentizaci inicializuje, vygeneruje náhodný řetězec jako
dotaz, který odešle druhé straně. Druhá strana připojí k řetězci sdílený klíč,
vypočte MD5 hash a odešle zpět. Iniciátor provede stejnou operaci a výsledek porovná
 s přijatým. Heslo tedy nikdy neputuje linkou v čisté podobě.
- řídí server, odolnější proti brute-force útokům
- Posílá vždy ID odesílající strany, podle ní klient najde správné heslo v DB hesel
pro výpočet hash výzvy, při příchodu odpovědi server podle ID klienta najde heslo pro ověření


Autentizační servery (protokoly): TACACS (TCP), RADIUS (UDP)


Komprese
--------
Používá CCP - Compression Control Protocol
Komprimuje rámec včetně hlaviček
SW komprese nebo HW podpora
Cisco: Stac, Predictor, MPPC - více náročné na paměť nebo CPU
Ověřit zátěž routeru při provozu a je-li dosahováno rozumného kompresního poměru
Typicky používáno jen na pomalých linkách
Problém s kompresí již komprimovaných dat

Van-Jacobsonova komprese (hlavičky TCP)
> vhodná pro pomalé linky a krátké pakety (Telnet)
> posílá jen změněná pole oproti předchozímu rámci a bitové příznaky označující změněná pole
> stavové, každému spojení přiřazen identifikátor - omezený počet spojení


Callback
--------
Callback server, Callback klient
Požaduje klient, server podporuje nebo ne
Server má databázi uživatelů oprávněných požadovat callback
Žádá-li callback neoprávněný uživatel, může server podle nastavení požadavek ignorovat nebo zrušit spojení
Číslo pro zpětné volání server zjistí podle jména (autentizovaného) klienta (Cisco: z dialer map, možná z DB username)
 nebo klient předá v LCP option
Autentizace probíhá i při zpětném volání


PPP Multilink
-------------
- RFC 1717,1990
- pro proměnné požadavky na přenosovou kapacitu
- svazkování (bundling) kanálů, spojování a rozpojování podle potřeby - okamžité zátěže (definice prahů)
- dohoda v LCP
- využívá fragmentace PPP rámců, paralelní přenos, na druhé straně sestavování -> menší latence.