PPP - point-to-point protokol. RFC 1548

Jako jeho alternativou může být protokol SLIP, ten je však zastaralý. Obvykle se používá jako nosný protokol pro IP, případně pro IPX. Na rozdíl od protokolu SLIP umožňuje, aby se strany dohodly na parametrech spojení (např. maximální délka datagramu, maximální rychlost), umožňuje autentizaci. SLIP mohl nést pouze IP. PPP používá ke sjednání parametrů linky protokol LCP (Link Control Protokol)

Spojení pomocí protokolu PPP zajišťuje PPP-démon (pppd). Obvykle se provádí spojení dvou modemů, případně spojení přes NULL-modemový kabel. Je možné provést i spojení přes jiné zařízení, například tunel přes ssh, kde se jako přenosové zařízení použihje /dev/pts/n.

Sériové porty jsou /dev/ttyS0 až /dev/ttySn

Inicializace modemu se provádí pomocí AT příkazů. AT-příkazy se můžou modemu zadávat například ručně pomocí programu minicom. Obvykle se to však provádí pomocí Chat-scriptu. Jaké příkazy modem umí se vyčte v manuálu k modemu. Nejznámější AT-příkazy by mohli být:

AT - modem odpoví jenom OK 
ATZ - inicializace uloženého nastavení
ATDT - vytáčení tónovou volbou
ATPT - vytáčení pulzní volbou

Chat script: Poučívá se při komunikaci s modemem. V RedHatu je součástí balíku s ppp-démonem. Chat script se většinou poučívá k vytočení čísla a k inicializaci modemu pomocí AT-příkazů

Příklad chat-scriptu:

""
"ATZ"
"OK"
"ATDT0971101211"
"login:"
"smrtacek"
"password:"
"moctajneheslo"
Takto může vypadat script na inicializaci modemu, vytočení čísla a zadání hesla.

CHAP a PAP

CHAP - zajistí, že jsou-li obě strany již dohodnuté na určitém heslu, tak neni možné heslo odposlechnout. Funguje to asi tak, jedna strana pošle [HASH(heslo+salát),salát] a ověřovací strana spočítá HASH(heslo+salát), jestliže se HASH shoduje, je to ok.

PAP - heslo se posílá v otevřené formě.

PAP/CHAP tajemství se zadává do souborů:

/etc/ppp/pap-secrets 
/etc/ppp/chap-secrets
příklad:
prihlasovacijmeno	*	moctajneheslo
Potřebná konfigurace kernelu jsou moduly ppp_async, ppp_generic.

Příklad propojení pomocí null-modemového kabelu:
PPP-démon nejprve čte konfiguraci ze souboru /etc/ppp/options, kde jsou vlastně pouze uvedeny parametry, které by se normálně psaly na příkazovou řádku.

Na jedné straně se spustí:

/usr/sbin/pppd 115200 local crtscts lock asyncmap 0 noauth 10.1.1.1:10.1.1.2 /dev/modem
a na druhé
/usr/sbin/pppd 115200 local crtscts lock asyncmap 0 noauth 10.1.1.1:10.1.1.2 /dev/modem passive
Poté se vytvoří nové ppp0 síťové zařízení.

Parametry ppp-démona: 115200
Je maximální rychlost, kterou můj sériový port je ochoten komunikovat, resp. je to rychlost, kterou je schopen váš modem zvládnout.

modem
To aby pppd věděl, že komunikuje s modemem.

crtscts
Zapne hardwarovou kontrolu toku dat. Je-li vaše připojení rychlejší než 9600 (a ono asi je), určitě to tam nechte.

asyncmap 0
Toto číslo je bitová maska, kterou můžete explicitně zakázat přenos znaků s kódem 0-31. Jestliže tak uděláte budete mít akorát pomalejší přenos. Rozhodně nastavit na 0.

defaultroute
vám nastaví routovací tabulku tak, že jako defaultní gateway máte ppp0 (IP serveru providera na druhé straně připojení). Tento parametr sem psát nemusíte, ale budete si muset routovací tabulku nastavit ručně. route add.... man route...

noipdefault
klasické připojení na internet pomocí modemu funguje tak, že vám provider přiděluje ip dynamicky. Kdyby tu tento parametr nebyl, počítač by se snažil vnutit providerovi IP vlastní.

lock
Způsobí zamknutí /dev/modem, tak zamezí ostatním programům do něj zapisovat a rušit tak spojení.

Vhodný je parametr debug, který docela rozšíří hlášky, které se píší do logu, to zjednodušuje ladění.