PPP
Poini to Point Protocol , RFC 1661) è un protocollo
punto-punto di livello data link realizzato nel 1994. Oggi viene utilizzato
largamente per accedere ad una rete geografica e funziona su un'ampia varietà
di link, dedicati o commutati, siano essi in modalità sincrona o asincrona,
purchè full-duplex. La funzione di PPP è quella di incapsulare pacchetti IP o di altri protocolli
di livello 3, e trasmetterli su un canale punto punto. PPP svolge altre
importanti funzioni come l'autenticazione e la compressione, il controllo della
qualità del link.
PPP comprende tre componenti principali:
- Un metodo per incapsulare i pacchetti provenienti dal livello
superiore
- Un protocollo, LCP (Link Control Protocol), il cui compito è stabilire, configurare e
controllare lo stato del link durante la sessione di comunicazione,
terminare il collegamento
- Una famiglia di protocolli, NCP (Network Control Protocol) per configurare
diversi protocolli di livello rete (IP, IPX)
Il pacchetto PPP ha il seguente formato
Flag
|
Address
|
Control
|
Protocol
|
Data
|
FCS
|
Flag
|
- Flag= 0x7E serve per marcare l'inizio e la fine del pacchetto
- Address è sempre uguale a 111111111 perché PPP è un protocollo punto-punto e non assegna perciò indirizzi alle
stazioni.
- Control contiene sempre 00000011 che codifica una modalità di
trasmissione non connessa.
- Protocol
contiene il codice
del protocollo incapsulato. Per es
0021= LCP, 8021= NCP, C023= PAP, C223= CHAP.
- Data , è la trama relativa al protocollo incapsulato. La dimensione max
di default è 1500.
- FCS contiene il codice per la correzione degli errori
Le operazioni effettuate da PPP comprendono le seguenti fasi: .
- Stabilimento della connessione e negoziazione dei parametri
- Determinazione della qualità della connessione (opzionale)
- negoziazione della configurazione del protocollo di livello 3
Nella prima fase PPP, dopo aver stabilito la connessione, avvia una fase di
negoziazione scambiando con l'altro peer trame LCP. Le opzioni di configurazione
negoziate riguardano:
- Lunghezza del pacchetto o MTU. (default 1500 bytes).
- Autenticazione
- Compressione. Viene negoziata la soppressione di alcuni campi dell'header,
per es. protocol, address, control
- Rilevazione degli errori
LCP svolge il compito di terminare la connessione anche indipendentemente
dalla volontà dell'utente. Ciò accade nel caso in cui si verifica un evento che
costringe LCP a chiudere il collegamento. Per es. perdita della portante,
mancata autenticazione, timeout su inattività dell'apparato, perdita di
qualità del collegamento.
Una volta configurato il link è possibile opzionalmente configurare
l'autenticazione. PPP usa due protocolli di authenticazione: PAP e CHAP
- PAP (Password Authentication Protocol). ll client invia ripetutamente il proprio nome e la propria password al
provider aspettando una conferma di autenticazione. La password viene inviata
solo nella fase di autenticazione e attraversa le
rete in chiaro. Per questo può essere intercettata da terzi e
riutilizzata.
- CHAP (Challenge Authentication Password Protocol). In questo caso
il processo di autenticazione rimane attivo per tutta la durata della
sessione di comunicazione. Il meccanismo di autenticazione è più complesso
e presuppone che ciascuno dei nodi conosca l'username dell'altro e un'unica
password condivisa. Il processo si svolge svolge secondo queste modalità:
- l'autenticatore, diciamo R2, invia un pacchetto "challenge"
contenente una stringa numerica random, un id e il suo l'username.
- L'utente che chiede di essere autenticato, diciamo R1, dopo aver
verificato se l'username ricevuto esiste, utilizza i dati inviati
da R2 e la password condivisa per calcolare
un codice, con uno speciale algoritmo, e invia il risultato a R2 insieme ad un
ID e il suo username
- R2 confronta il codice pervenuto con quello calcolato sui dati che ha
inviato e l'username sui dati pervenuti. Se i due codici sono uguali
l'autenticazione ha esito positivo.
Dopo aver configurato l'autenticazione, dopo un eventuale fase di testing
della qualità del link, PPP passa alla terza fase che consiste nel configurare
uno o più protocolli di livello 3, inviando trame NCP. Due importanti
opzioni di configurazione sono la compressione degli header di TCP e IP e, se
necessaria, l'assegnazione dinamica dell'indirizzo IP . Finita
questa fase la comunicazione dei dati può avere inizio.