|
Cuprins
Descilcirea P-urilor
PPP deschis
La fel ca SLIP, PPP este un protocol de transmisie a datelor pe o conexiune seriala, dar rezolva o serie de deficiente ale precedentului. Acest protocol lasa partile comunicante sa negocieze optinui ca adresa IP si viteza de transfer la inceputul conectarii si suporta autorizarea clientului. Pentru fiecare dintre aceste capabilitati, PPP are un protocol separat. In cele ce urmeaza vom prezenta sumar primele notiuni ale PPP-ului. Aceasta discutie e pe departe de a fi completa; daca doriti sa aflati mai multe despre PPP, va sfatuiesc sa cititi specificatiile RFC-1548 sau specificatiile insotitoare RFC-ului. ( link )
In partea ce-a mai de jos a PPP-ului este High-Level Data Link Control Protocol, abreviata HDLC, ( link ) care defineste limitarile din jurul cadrelor individuale PPP si este prevazut cu un checksum pe 16 biti. in opozitie cu mai primitiva incapsulare SLIP, un cadru PPP este capabil sa tina pachetele pentru alte protocoale decit IP, cum ar fi Novell IPX, MS NetBUI sau Appletalk. PPP realizeaza acestea prin adaugarea unui cimp de protocol cadrului primar HDLC care identifica tipul de pachet care este carat de cadru.
LCP, Link Control Protocol sau Controlul Protocolului de Legaturi, este utilizat in fata HDLC-ului pentru optiuni de negociere apartinind legaturii de date, cum ar fi Maximum Receive Unit (MRU) sau Unitatea Maxima de Receptie care seteaza marimea datagramei maxime pe care una dintre parti e de acord sa o receptioneze.
Un pas important al configurarii unei legaturi PPP este autorizarea clientului. Desi nu este imperativ, este o adevarata nevoie pentru liniile telefonice (dial-up). Uzual, hostul chemat (serverul) cere clientului sa se autorizeze dindu-i o cheie secreta. Daca cel ce cheama (suna) nu reuseste sa produca secretul corect, conexiunea este terminata. Cu PPP, autorizarea merge in ambele sensuri; asa ca cel ce cheama (suna) poate de asemenea sa ceara serverului sa se autentifice. Aceste procedee de autorizare sunt total independente una de cealalta. Sunt doua protocoale pentru diferitele tipuri de autorizare, pe care le vom discuta In cele ce urmeaza. Ele se numesc Password Authentification Protocol sau Protocol de Autentificare a Parolei (PAP) si Challange Handshake Authentification Protocol sau Protocol de Autentificare Challange Handshake (CHAP).
Fiecare protocol de retea care este rutat peste legatura de date, ca IP, AppleTalk, etc., este configurat dinamic, utilizind o corespondentul Network Control Protocol (NCP), De exemplu, pentru a trimite datagrame IP prin legatura, ambele PPP-uri trebuie prima data sa negocieze ce adrese de IP foloseste fiecare dintre ele. Protocolul de control utilizat pentru aceasta este IPCP, Internet Protocol Control Protocol sau Protocolul de Control al Protocolului Internet.
Pe linga trimiterea de datagrame IP standard prin legatura, PPP suporta de asemenea comprimarea Van-Jacobson a headerului datagramelor IP. Aceasta este o metoda de a micsora headerele pachetelor TCP pina la trei octeti. Este de asemenea utilizata in CSLIP si este mult mai colocvial referita la compresia headerului VJ. Pentru a utiliza compresia se poate negociind la startul prin IPCP la fel de bine.
Deschis, functionalitatea PPP este impartita in doua parti, un driver low-level HDLC locat in kernel, un daemon pppd locat in spatiul utilizator care se ocupa de diversele protocoale de control. Versiunea curenta de PPP pentru linux este ppp-1.0.0 si contine modului PPP pentru kernel, pppd si un program numit chat utilizat pentru a stabili conexiunea catre calculatorul server (dial-up).
Driverul PPP pentru kernel a fost scris de Michael Callahan. pppd este derivat din implementarea libera PPP pentru masinile Sun si 386BSD, scris de Drew Pekins si altii, si mentinut de Paul Mackerras. A fost portat de Al Longyear. ( link )
La fel ca si SLIP, PPP este implementat conform unei discipline speciale de linie. Pentru a folosi o linie seriala ca si legatura PPP, intii trebuie si stabiliti o conexiune cu un modem uzual, apoi sa convertiti linia la modul PPP. In acest mod, toate datele primite vor fi trecute driverul PPP, care verifica cadrele HDLC care vin pentru validitate (fiecare cadru HDLC duce cu el un checksum pe 16 biti), dupa care le despacheteaza si le trimite mai departe. In mod curent, el este abil sa se ocupe de datagramele IP, optional utilizind algoritmul Van-Jacobson pentru compresia headerului. Suportind protocolul IPX, driverul PPP se va extinde pentru a manipula si pachetele IPX, deasemenea.
Driverul de kernel este ajutat de pppd, daemon-ul PPP, care face intreaga initializare si faza de autentificare care este necesara inainte ca traficul de pe retea sa fie trimis prin legatura. Comportamentul daemon-ului pppd poate fi setat fin utilizind un numar de optiuni. Cum PPP e cam complex, este imposibil de explicat totul despre el intr-un singur capitol. Aceasta carte nu poate acoperi toate aspectele lui pppd, dar va poate da un punct de plecare. Pentru mai multe informatii va recomand paginile manualului si README-ul din codul sursa al distributiei pppd, care ar trebui sa va ajute rapid in majoritatea problemelor pe care acest capitol nu le-a putut atinge. Daca problema persista si dupa ce ati citit toata documentatia, ar tebui sa va abonati la newsgroup-ul comp.protocols.ppp pentru mai mult ajutor, care este locul unde majoritatea celor implicati in dezvoltarea pppd sunt de gasit.