PPP

**PPP** (*Point to Point Protocol*) ir kanāla slāņa datu pārraides protokols, kuru lieto *point to point* tipa savienojumiem. To lieto galvenokārt iezvanpieejai un modificētos variantos (*PPP over ethernet* un *PPP over internet*) lieto attiecīgi arī DSL un VPN. Tas mūsdienās ir aizvietojis specifiskākus (un novecojušus) protokolus, kā SLIP un X.25. PPP tika veidots, lai spētu darboties ar vairākiem tīkla slāņa protokoliem (tai skaitā IP un IPX).

PPP sastāv no vairākiem komponentiem. Svarīgākie ir:
* LCP (*link control protocol*), kas nodrošina autentifikāciju un komunikāciju parametru (kanāla līmenī) konfigurāciju;
* NCP (*network control protocol*), kas konfigurē tīkla slāņa protokolus (IP gadījumā parasti iekļauj DHCP). Ja lieto vairākus tīkla slāņa protokolus vienā savienojumā, vajadzīgi vairāki NCP, katram protokolam savs.

Parasti PPP lieto HDLC protokolam līdzīgus kadrus.


 
  Nosaukums Izmērs baitos Saturs Apraksts 
 
  *Flag* 1 01111110b norāda freima sākumu vai beigas 
 
  Adrese 1 11111111b *broadcast* adrese 
 
  *Control* 1 00000011b *control byte* 
 
  Protokols 1 vai 2 protokols augstākā līmeņa protokols 
 
  Informācija mainīgs (0 vai vairāk) dati pārsūtāmie dati un *padding* 
 
  *FCS* 2 (vai 4) kontrolsumma kontrolsumma 


* ***flag*** - šis norāda uz HDLC freima sākumu un vienmēr ir 01111110b.
* **adrese** - broadcast adrese, kura vienmēr ir 0xff jeb 11111111b, pēc autentifikācijas un konfigurācijas pabeigšanas (LCP), šo izlaiž. Tam ir kaut kāda nozīme *point to multipoint* savienojumos.
* ***control*** - šim ir līdzīga funkcionalitāte kā adreses laukam, pēc autentifikācijas un konfigurācijas pabeigšanas (LCP), šo arī izlaiž, tad kad šo lieto, tam saturs ir 0x03 jeb 00000011b, šī vērtība norāda uz nenumurētu freimu. Šajā vietā varētu lietot *sequence numbers* un *acknowledgements*, lai pārliecinātos, ka neviens freims nav pazudis, taču parasti šo nelieto.
* **protokols** - apraksta lietojamo tīkla slāņa protokolu, pēc noklusējuma šis ir 2 baitu lauks. LCP var nodefinēt arī 1 baitu. Ja šeit pirmais bits ir 0, tad tas ir tīkla slāņa protokols, ja pirmais bits ir 1, tad tas ir kāds no PPP konfigurācijas protokoliem (LCP un dažādi NCP).
* **Informācija** - ir pārsūtāmie dati, parasti tie ir augstākā līmeņa protokola pakete, ja tā pakete gadās mazāka kā izvēlētais PPP freima izmērs, galā pievieno nulles (*padding*). Ja ar LCP nav nodefinēts cits MTU (*maximum transmission unit*), tad šī lauka izmērs ir 1500 baiti.
* ***FCS*** (*frame check sequence*) - kontrolsumma (visai ppp paketei), lai pārliecinātos, ka tā nav bojāta. Pēc noklusējuma šis lauks ir 2 baiti, bet ar LCS var nodefinēt arī 4 baitu kontrolsummu.

Lai arī tas nav standarta pielietojums, PPP lieto arī caur *[[ethernet]]* un ATM. Tur lietotā freimu struktūra var atšķirties.

PPP konekcijas atvēršana sastāv no vairākām stadijām:
* Sākumā izveido fizisko savienojumu;
* Pēc tam ar LCP vienojas par savienojuma parametriem (MTU, vai freimu hederos lietot *address* un *control* laukus (attēlā - starp *Establish* un *Authenticate*), utt.);
** autentificē ienākošo savienojumu (izmantojot CHAP vai kādu citu protokolu)(attēlā - *Authenticate*);
* Pēc veiksmīgas autentifikācijas lietojamie NCP vienojas par tīkla slāņa protokolu parametriem (attēlā - *Network un NCP configuration*);
* šajā stadijā var pārsūtīt datus (attēlā - *Open*)
* beigās var aiztaisīt savienojumu (civilizētā veidā)(šajā stadijā nonāk arī pēc neveiksmīgas autentifikācijas) (attēlā - *Terminate*).

LCP konfigurē kanāla slāņa protokola parametrus. LCP neinteresējas par šiem parametriem, bet par datu apmaiņas mehānismu. Pēc savienojuma izveidošanas, tas gals, kurš uzsāka savienojuma izveidošanu, nosūta piedāvātos konfigurācijas parametrus un otrs gals tos vai nu pieņem, vai arī nepieņem (vai pieņem daļēji). Tad, tas, kurš atvēra savienojumu var vai nu piedāvāt alternatīvus parametrus, vai arī atteikties ko komunikācijām un aiztaisīt savienojumu.

NCP protokoliem nav gandrīz nekā kopīga. Tie ir cieši saistīti ar attiecīgo transporta slāņa protokolu. IPCP svarīgākā daļa ir dinamiskā adrešu piešķiršana.

PPP autentifikācija. Lai pārliecinātos par lietotāja, kas mēģina pieslēgties identitāti, lieto autentifikācijas protokolus. Sākumā lietoja PAP (*password authentication protocol*) taču tas nebija pārāk drošs, tāpēc mūsdienās vairāk lieto CHAP (*challenge handshake authentication protocol*).

PPP parasti lieto, lai ar modemu vai mobilo telefonu pieslēgtos internetam. Šajos abos gadījumos, parasti lieto CHAP autentifikācijas protokolu (lietojot GPRS autentifikācijai gan nav nozīmes jo savienojums terminējas pašā telefonā) un IPCP (*IP control protocol*) lai nokonfigurētu IP parametrus.

## Ārējās saites