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: 

Il pacchetto PPP ha il seguente formato

Flag

Address

Control

Protocol

Data

FCS

Flag

 

Le operazioni effettuate da PPP comprendono le seguenti fasi: .

  1. Stabilimento della connessione e negoziazione dei parametri
  2. Determinazione della qualità della connessione (opzionale)
  3. 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: 

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 

  1. 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.   
     
  2. 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à:
    1. l'autenticatore, diciamo R2, invia un pacchetto "challenge" contenente  una stringa numerica random, un id e il suo l'username. 
    2. 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 
    3. 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.