Le Point-to-Point Protocol (PPP) est un protocole de couche liaison de données (couche 2 du modèle OSI) utilisé pour établir une connexion directe entre deux nœuds réseau. PPP permet l'encapsulation de datagrammes de protocoles de couche réseau (comme IP) sur des liaisons point-à-point.
- RFC 1661 (1994) - Spécification principale
- Couche 2 du modèle OSI/TCP-IP
- Liaison point-à-point exclusivement
- Multi-protocole (supporte IP, IPX, AppleTalk, etc.)
- Authentification intégrée
- Négociation automatique des paramètres
- SLIP (Serial Line Internet Protocol) - Prédécesseur simple
- PPP (1992-1994) - Amélioration majeure de SLIP
- Développé par l'IETF pour répondre aux limitations de SLIP
- SLIP ne supportait qu'IP
- Pas d'authentification dans SLIP
- Pas de négociation automatique
- Pas de détection d'erreurs robuste
+---------------------------+
| Protocoles Réseau |
| (IP, IPX, AppleTalk) |
+---------------------------+
| PPP |
| +-------+ +-------+ |
| | LCP | | NCP | |
| +-------+ +-------+ |
+---------------------------+
| Support Physique |
| (Série, RNIS, ADSL...) |
+---------------------------+
- Rôle : Établissement, configuration et test de la liaison
- Fonctions :
- Négociation des options de liaison
- Authentification
- Test de la qualité de liaison
- Fermeture de connexion
- Rôle : Configuration des protocoles de couche réseau
- Types :
- IPCP (IP Control Protocol)
- IPXCP (IPX Control Protocol)
- AppleTalkCP
+----------+----------+----------+----------+----------+----------+
| Flag | Address | Control | Protocol | Data | FCS |
| (1 octet)| (1 octet)| (1 octet)|(2 octets)|(variable)|(2 octets)|
+----------+----------+----------+----------+----------+----------+
- Flag (0x7E) : Délimiteur de début/fin de trame
- Address (0xFF) : Adresse de diffusion (toujours FF en PPP)
- Control (0x03) : Contrôle (toujours 03 en PPP)
- Protocol : Type de protocole transporté
- Data : Données utiles
- FCS : Frame Check Sequence (détection d'erreurs)
- 0x0021 : IP (Internet Protocol)
- 0xC021 : LCP (Link Control Protocol)
- 0x8021 : IPCP (IP Control Protocol)
- 0xC023 : PAP (Password Authentication Protocol)
- 0xC223 : CHAP (Challenge-Handshake Authentication Protocol)
[Dead] -> [Establish] -> [Authenticate] -> [Network] -> [Terminate]
^ |
+--------------------------------------------------------+
- Dead → Establish
- Échange de messages Configure-Request
- Négociation des options :
- Taille maximale des trames (MRU)
- Compression
- Authentification requise
- Numéros magiques
- PAP (Password Authentication Protocol)
- Envoi en clair du nom/mot de passe
- Simple mais non sécurisé
- CHAP (Challenge-Handshake Authentication Protocol)
- Système de défi/réponse
- Plus sécurisé que PAP
- Configuration des protocoles de couche 3
- IPCP pour IP :
- Attribution d'adresses IP
- Configuration DNS
- Compression d'en-têtes
- Échange normal de données
- Monitoring de la qualité de liaison
- Fermeture de la connexion
- Messages Terminate-Request/Ack
- Configure-Request : Demande de configuration
- Configure-Ack : Acceptation de configuration
- Configure-Nak : Rejet avec contre-proposition
- Configure-Reject : Rejet d'options
- Terminate-Request : Demande de fermeture
- Terminate-Ack : Confirmation de fermeture
- Code-Reject : Code non reconnu
- Protocol-Reject : Protocole non supporté
- Echo-Request/Reply : Test de connectivité
- Discard-Request : Test de débit
- Taille maximale des données dans une trame
- Par défaut : 1500 octets
- Négociable selon le support physique
- Spécifie les caractères à échapper sur liaisons asynchrones
- Important pour les modems
- Spécifie le protocole d'authentification
- PAP (0xC023) ou CHAP (0xC223)
- Numéro aléatoire pour détecter les boucles
- Différent pour chaque extrémité
Client Serveur
| |
| Authenticate-Request |
|------------------------>|
| |
| Authenticate-Ack |
|<------------------------|
Avantages : Simple à implémenter
Inconvénients : Transmission en clair
¶ CHAP (Challenge-Handshake Authentication Protocol)
Client Serveur
| |
| Challenge |
|<------------------------|
| |
| Response |
|------------------------>|
| |
| Success/Failure |
|<------------------------|
Avantages : Plus sécurisé, re-authentification périodique
Inconvénients : Plus complexe
- Connexions dial-up classiques
- PPP sur liaisons téléphoniques
- PPPoE (PPP over Ethernet)
- Encapsulation de PPP dans Ethernet
- Authentification pour l'accès Internet
- Liaisons WAN point-à-point
- Connexions entre sites distants
- PPP sur liaisons cellulaires
- 3G/4G avec PPP pour la session de données
- Encapsulation de PPP dans des trames Ethernet
- Utilisé massivement par les FAI pour l'ADSL
- Combine les avantages d'Ethernet et de PPP
- Discovery : Découverte du serveur
- Session : Établissement de session PPP normale
- Authentification des utilisateurs
- Gestion centralisée des sessions
- Attribution dynamique d'adresses IP
- Multi-protocole : Support de plusieurs protocoles réseau
- Authentification : Sécurisation des connexions
- Négociation automatique : Configuration transparente
- Détection d'erreurs : Fiabilité améliorée
- Compression : Optimisation de la bande passante
- Complexité : Plus complexe que SLIP
- Overhead : En-têtes supplémentaires
- Latence : Négociation initiale
- Limitation : Uniquement point-à-point
- PPPoA (PPP over ATM)
- PPPoEoA (PPPoE over ATM)
- L2TP (Layer 2 Tunneling Protocol)
- PPTP (Point-to-Point Tunneling Protocol)
- Ethernet natif pour les accès haut débit
- DHCP pour l'attribution d'adresses
- 802.1X pour l'authentification
PPP reste un protocole fondamental dans l'infrastructure réseau mondiale, particulièrement pour :
- Les accès Internet résidentiels (PPPoE)
- Les liaisons WAN d'entreprise
- L'accès mobile et satellite
Sa robustesse, sa flexibilité et ses mécanismes d'authentification en font un choix privilégié pour les connexions point-à-point nécessitant une configuration automatique et sécurisée.
- RFC 1661 - The Point-to-Point Protocol (PPP)
- RFC 1334 - PPP Authentication Protocols
- RFC 2516 - PPP Over Ethernet (PPPoE)
- RFC 1332 - Internet Protocol Control Protocol (IPCP)