Académique Documents
Professionnel Documents
Culture Documents
17 PPP FM
17 PPP FM
Plan
Introduction Le protocole PPP Adaptation aux procds de transmission LCP Authentication NCP Conclusion
Bibliographie L.Toutain, Internet et les rseaux locaux, Herms, 1996. Les RFC
132
1. Introduction Les stations peuvent tre connectes Internet au moyen de liaisons : liaison srie liaison point--point Et non pas au moyen dun rseau local. Par exemple, une connexion Internet travers le rseau tlphonique :
protocole de liaison de donnes
station
modem intgr
Internet
modem
Les caractristiques des liaisons sont trs variables : il faut un protocole qui sadapte PPP
133
2. Le protocole PPP 2.1. Prsentation t Point to Point Protocol (rfc 1661) Les services offerts : transmission de donnes sur une liaison point point masque lhtrognit des caractristiques de la liaison : - asynchrone, synchrone, tlphonique, spcialise, HDLC, X25, RNIS, etc. supporte divers protocoles de niveau Rseau : - IP, IPX, Appletalk, IPv6, et mme des trames !, etc. une transmission transparente vis--vis des codes rservs par les modems protection contre les erreurs contrle laccs au rseau ngociation des diffrents paramtres mise en oeuvre de techniques doptimisation de la transmission (compression)
134
IP PPP
liaison point--point (par ex. tlphonique)
PPP
adaptation
LCP
fonctions scuritaires
135
Protocole : Identie le protocole charg des donnes 2 octets par dfaut; un seul octet si ngoci (cf option de code 7 de LCP) compatible avec le format tendu dadresse (HDLC : ISO 3309) : - les octets intermdiaires ont leur LSb = 0, le dernier octet a son LSb = 1 [0***16 - 3***16] protocoles Rseau et [8***16 - b***16] protocoles NCP associs [4***16 - 7***16] protocoles spciques nayant pas de NCP [c***16 - f***16] protocoles LCP Exemples : - 002116 : IP, 002916 : AppleTalk, 002b16 : IPX, 002d16 : entte TCP/IP comprimes, 002f16 : enttes TCP/IP ne pouvant tre comprimes 802116 : IPCP, 802916 : AppleTalk, 802b16 : IPX c02116 : LCP, c02316 : PAP, c22316 : CHAP
136
Donnes : de 0 MRU octets de donnes MRU (Maximum Receive Unit) - 1500 octets par dfaut - peut tre ngoci (cf option de code 1 de LCP) Bourrage : permet dobtenir un paquet de longueur xe ou respectant une longueur minimale codage dpendant du protocole (cf option de code 10 de LCP)
137
2.4. Oprations Contrle de la liaison : utilise les paquets LCP test de la ligne ngociation des options
Authentification utilise les paquets PAP ou CHAP Contrle du protocole Rseau : utilise les paquets NCP conguration dun ou plusieurs protocoles partageant la liaison Echange de donnes : paquets du protocole PPP Fermeture de la liaison : paquet LCP ou NCP de fermeture perte de porteuse, temporisateur dinactivit, intervention de ladministrateur
____ Bernard Cousin - IFSIC - Universit Rennes I
138
3. Adaptation aux procds de transmission 3.1. Introduction Encapsulation des paquets PPP dans des trames compatibles avec le procd de transmission utilis par la liaison point--point. Le mode de transmission de la liaison : synchrone asynchrone Le service offert par la liaison : avec mise en oeuvre dun mcanisme de contrle de la abilit - rfc 1663 (compatible LAP-B : ISO 7776, appel numbered mode) - peu utilis sans augmentation de la abilit (connectionless) - rfc 1662 - pour . liaison asynchrone (XON/XOFF protocol, start/stop protocol, etc) . liaison synchrone (compatible LAP-B : unumbered)
____ Bernard Cousin - IFSIC - Universit Rennes I 139
3.2. Format gnral de la trame Encapsulation dans une trame au format similaire HDLC (ISO 4335) trame HDLC
fanion adresse 1 octet 1 octet contrle 1 octet * informations CRC 2 octets* * : peut avoir une autre taille en fonction de la ngociation fanion interframe
paquet PPP
protocole
donnes
bourrage
140
Contrle : type de la trame 000000112 : trame UI (Unnumbered Information) bit Poll/Final zro liaison sufsamment able (rfc 1662) liaison abiliser (rfc 1663) - LAP_B : - trames I, SABM(E), UA, etc format normal ou tendu SABM(E) . . champ contrle sur 1 ou 2 octets numrotation modulo 8 ou 128
FCS (Frame Check Sequence) : par dfaut : CCITT 16 bit CRC ngociable : pas de FCS ou CRC de 32 bits (option 9 du LCP) Interframe : soit ladresse de la trame suivante soit des octets de remplissage (des fanions)
____ Bernard Cousin - IFSIC - Universit Rennes I
141
La squence binaire du fanion ne doit pas apparatre au sein de la trame : Lencodage (stufng) Il existe plusieurs procds dencodage : par octet : caractre dchappement - plutt utilis par les transmissions asynchrones par bit : insertion de bits - plutt utilis par les transmissions synchrones 3.3.2 Encodage par octet
Un caractre dchappement doit tre plac devant tous caractres spciaux 0x7d Les caractres spciaux le fanion le caractre dchappement
142 ____ Bernard Cousin - IFSIC - Universit Rennes I
nimporte quel caractre dni par lACCM (Asynchronous Control Character Map) . LACCM est ngocie (option 2 de LCP)
Insertion systmatique dun bit 0 aprs 5 bits conscutifs 1 augmentation de la longueur de la trame un nombre quelconque de bits procd standard dHDLC Exemple : transmettre : 01111001.01111110.01111100.11111111.110000002 transmis : 01111001.011111010.011111000.111110111.1100000002
143
4. Le protocole LCP 4.1. Introduction 3 types de fonctions LCP : conguration de la liaison : - tablissement et ngociation des options - les paquets : cong-req, cong-ack, cong-nack, cong-rej - ces paquets utilisent toujours le format de paquet par dfaut libration de la liaison - les paquets : term-req, term-ack maintenance de la liaison : - les paquets : code-rej, proto-rej, echo-req, echo-reply, disc-req - paquets supplmentaires : didentication, de temps de vie restant de la session Chaque paquet LCP est encapsul dans un paquet PPP - le champ Protocol du paquet PPP = 0xc021 RFC 1570 et 1661
____ Bernard Cousin - IFSIC - Universit Rennes I
144
Code : identie le type du paquet par exemple : 1 = Congure-Request Identifier : associe les demandes avec leurs rponses Length : longueur (totale) en octets du paquet LCP permet dliminer les octets de bourrage du paquet PPP Data : dpend du type du paquet
145
4.3. La conguration
1 octet 1/2/3/4 1 octet identifier liste doptions 2 octets length Paquet LCP de configuration
Refus de configuration champ Code = 4 : Conguration.Reject lorsque certaines options ne sont pas ngociables retourne les valeurs acceptables Scnarios :
conf.req conf.ack conf.nack conf.rej conf.req conf.req conf.rej conf.ack conf.req conf.ack Dans les 2 sens avec re-ngociation
147
4.4. Les options Utilises au sein de la liste doptions des paquets de configuration Format TLV
1 octet type 1 octet length value Option des paquets LCP
Type = 1 : ngociation du MRU (Maximum Receive Unit) par dfaut 1500 octets donnes sur 2 octets : taille maximum des paquets PPP Type = 2 : ngociation de la liste des caractres spciaux donnes sur 4 octets (lACCM): - chaque bit identie un des 32 premiers caractres - si le bit est positionn le caractre doit tre transcod Type = 3 : ngociation du protocole dauthenfication donnes sur 3 octets : identie le protocole (2 octets) : 0xc023 = PAP, 0xc223 = CHAP
148 ____ Bernard Cousin - IFSIC - Universit Rennes I
Type = 4 : ngociation du protocole de surveillance de la liaison donnes sur 2 octets identie le protocole : 0xc025 = Link Quality Report
Type = 5 : ngociation du nombre magique valeur du nombre magique sur 4 octets permet de dtecter les rebouclages Autres options : 7 : compression du champ protocole dans les paquets PPP 8 : compression des champs adresse et contrle de la trame 9 : procd de calcul du champ FCS 10 : bourrage auto-descriptif 11 : transmission en mode able (LAP-B) 13 : rappel automatique (call back) 15 : trames composites (une trame contient plusieurs paquets)
149
Demande de libration : champ Code = 5 : Terminaison.Request les octets de donnes ne sont pas interprts Accord de libration champ Code = 6 : Terminaison.Ack les octets de donnes ne sont pas interprts
150
champ Code = 7 : Code.Reject la suite de la rception dune paquet LCP ayant un code inconnu le champ donnes contient le (dbut du) paquet LCP rejet
Rejet de trame
1 octet 8 1 octet identifier 2 octets length rejected-frame Paquet LCP de rejet de trame
rejected-protocol-code
champ Code = 8 : Protocol.Reject la suite de la rception dune trame ayant un champ protocol inconnu le champ de donnes contient cette valeur (2 octets) et (un extrait de) la trame rejete
151
Echo
1 octet 9/10 1 octet identifier magic_number data 2 octets length Paquet LCP dcho
champ Code = 9 et 10 : Echo.Request et Echo.Reply lors de la rception dun paquet Echo.Request un paquet Echo.Reply est retourn test de la liaison : rebouclage, dtermination de la qualit de la liaison magic-number : - permet didentier la prsence dun rebouclage - par dfaut 0, - valeur ngocie par loption correspondante lors de la conguration le champ donnes peut contenir des donnes quelconques
152
Destruction
1 octet 11 1 octet identifier magic_number data 2 octets length Paquet LCP dtruire
champ Code = 11 : Discard.Request lors de la rception dun paquet Discard.Request, le paquet est dtruit. test de la liaison : dboguage, valuation de performance magic-number : - permet didentier la prsence dun rebouclage - par dfaut 0, - valeur ngocie par loption correspondante lors de la conguration
153
5. Lauthentication 5.1. Prsentation Avant dtablir dfinitivement une session avec une entit distante, il convient de vrifier si cette entit est bien celle quelle annonce tre : protocole dauthencation Principe : les entits partagent un secret :
le mot de passe
Problme : lors de la transmission sur le rseau le mot de passe est visible par exemple : le protocole PAP (password authentication protocol) - un simple protocole en 2 phases two-way handshake Solution : change de messages chiffrs le protocole CHAP (challenge authencation protocol)
____ Bernard Cousin - IFSIC - Universit Rennes I 154
rfc 1334
Fonctionne en 3 phases (three-way handshake)
challenge response ack or nack
Principe de fonctionnement : Les 2 entits disposent dun mme procd de chiffrement secret : - procd paramtr par une clef commune et secrte. - par exemple : lalgorithme MD5 la premire entit soumet lautre un message (challenge) la seconde retourne le message aprs chiffrement (response) la premire compare le message chiffr reu et le chiffrement local du message puis en informe lentit distante : - sils sont identiques lauthentication est russie (ack),
____ Bernard Cousin - IFSIC - Universit Rennes I 155
Remarques : - Lexistence de la fonction inverse nest pas ncessaire ! Le message soumis doit tre diffrent chaque fois pour viter le play-back lauthentication peut tre renouvele pendant la phase de transfert des donnes
156
5.3. Les paquets CHAP La fonction dauthentification est slectionne grce loption de type 3 des paquets de configuration du protocole LCP Les paquets CHAP sont transmis dans des paquets PPP dont le champ protocol vaut 0xc223. Le format des paquets CHAP est similaire celui des paquets LCP. 4 types de paquets CHAP : Dpendent du champ code (premier octet) : - 1 = Challenge
1 octet 1/2 value-size 1 octet identifier 2 octets length Paquet CHAP de challenge ou de rponse
6. Les protocoles NCP 6.1. Prsentation des NCP Chaque protocole de niveau Rseau a un protocole de configuration (NCP) adapt : IP IPCP (rfc 1332) Appletalk ATCP (rfc 1378) IPX IPXCP (rfc 1552)
La forme que prennent les paquets NCP dpend du protocole de niveau Rseau employ. La fonction de configuration de niveau Rseau ressemble celle de niveau Liaison.
IPCP
158
6.2. Introduction IPCP Le format gnral des paquets IPCP est le mme que celui de LCP
1 octet code 1 octet identifier data 2 octets length Paquet IPCP
Les mmes IPCP paquets sont utiliss : avec les mmes codes : - cong-req [1], cong-ack [2], cong-nack [3], cong-rej [4], term-req [5], term-ack [6], code-rej [7]. - mais seulement ceux-l. pour la mme utilisation avec le mme format particulier pour chaque type de paquets Seules les options changent !
159
6.3. Les options des paquets IPCP Le format gnral des options de IPCP est celui des options de LCP :
TLV
Option de type=1 : configuration des adresses obsolte car difcile dassurer la convergence cf. type=3 Option de type=2 : choix de lalgorithme de compression identicateur de lalgorithme (2 octets) : - 0x002d : Van Jacobson compressed TCP/IP le champ donnes dpend de lalgorithme choisi : - pour Van Jacobson, 2 octets : . nombre de connexions pouvant avoir leurs enttes simultanment compresses . prsence du numro de connexion : obligatoire (0) ou non (1)
Option de type=3 : configuration de ladresse IP utilise sur la liaison le champ donnes contient ladresse IP propose (4 octets) - 0 : cest une demande dobtention dadresse
____ Bernard Cousin - IFSIC - Universit Rennes I 160
6.4. Compression des enttes TCP/IP 6.4.1 Introduction Procd de compression dfini par le rfc 1144 gnrique utile pour les liaisons faible dbit - sur liaison point point utilisant PPP, par ex. Deux paquets successifs dune mme connexion TCP possdent des champs identiques : seule transmission des champs diffrents moins de champs transmission de la valeur de la diffrence des champs plus courts
Vers HLEN ToS Identication TTL Protocol Checksum Source address Destination address Options Source port Destination port Sequence number Acknowledgment Segment TCP HLEN 0 Code Window size Checksum Urgent pointer Options Data Datag. length Flags Fragment offset
Datagramme IP
161
162
6.4.2
Le paquet compress a un format variable : Seuls loctet Slecteur et le champ Checksum sont toujours prsents
Vers HLEN Slecteur Slot identication Ckecksum Urgent pointer Window size diff. Acknowledgment diff. Sequence number diff. Identication diff. Data ToS
0 C I P S A W U Datagramme IP
Segment TCP
Acknowledgment HLEN 0 Code Window size Checksum Urgent pointer Options Data
163
6.4.3
Slecteur Indique la prsence ou labsence du champ optionnel correspondant : - C, I, S, A, W, U Bit Push du champ code du paquet TCP : - P (idem bit ack : A, bit Urg: U)
Slot identification Identie le contexte (un par sens de transmission) o sont conserves les donnes ncessaires la compression/dcompression Lorsque la compression ne peut pas avoir lieu, le champ protocol du datagramme IP contient cet identicateur. Le champ protocol du paquet PPP vaut 0x002f. Checksum Champ obligatoire Les enttes compresses sont plus sensibles aux erreurs Urgent pointer On code la valeur et pas la diffrence
____ Bernard Cousin - IFSIC - Universit Rennes I 164
La prsence du champ est conditionn par la validation du bit U (=1) du champ slecteur
Window size difference Code la diffrence du champ entre 2 paquets successifs Les valeurs ngatives sont reprsentes en complment 2 Si la largeur de la fentre est constante, le champ nexiste pas et le bit W vaut 0.
Acknowledgment number et Sequence number difference Code la diffrence du champ entre 2 paquets successifs Comme la capacit dencodage est limite (<216) alors que la diffrence peut tre grande (232) : - les paquets contenant des champs dont la diffrence est trop importante ou ngative ne sont pas compresss
Identification difference Code la diffrence du champ entre 2 paquets successifs Si le bit I vaut 0, le champ nest pas prsent et sa valeur est obtenue aprs incrmentation de la valeur prcdente
165
6.4.4
On code la diffrence entre les valeurs successives du mme champ : les petites valeurs sont plus frquentes La valeur du champ (Urgent pointer) ou de la diffrence entre les deux valeurs successives (les autres champs optionnels) Procd : si la valeur < 256 codage sur un octet si la valeur >= 256 ou nulle codage sur 3 octets, - le premier octet vaut 0, - les deux suivants, la valeur Par exemple : codage de 0 0x000000
166
6.5. Empilement Lutilisation de la fonction de compression de lentte est slectionne lors de la configuration par loption 2 du protocole IPCP. Toutefois la compression de lentte nest pas toujours applicable. Les paquets PPP, en fonction de la valeur de leur champ Protocol, contiennent : 0x0021 = un datagramme IP ne pas comprimer - la fonction de compression na pas t slectionne - ou le datagramme ne contient pas un segment TCP 0x002d = une entte comprime - la fonction de compression a t slectionne - et le datagramme contient un segment TCP compressible 0x002f = une entte comprimer mais non-compressible - la fonction de compression a t slectionne - mais le datagramme contient un segment TCP non-compressible : . par exemple : il y a des options ou un champ qui devrait tre xe ne lest pas.
167
6.6. Optimisation Si lon observe le trafic, on constate que, frquemment : la valeur champ Sequence number augmente de la taille du dernier paquet la valeur champ Acknowledgment number (1er cas) soit augmente de la taille du dernier paquet (2me cas) soit est inchange les valeurs des champs Window size et Urgent Pointer ne sont pas modies
On dcide de coder ces 2 cas (ne ncessitant pas de champs optionnels) par des configurations spcifiques des bits du champ Slecteur. 0x0b = SWU (1er cas) 0x0f = SAWU (2me cas)
168
7. Conclusion Le protocole PPP est adapt la transmission de datagramme IP sur des liaisons point point Le protocole PPP est un protocole gnrique, il sadapte : au procd de transmission (able ou non, synchrone ou asynchrone) aux diffrents protocoles de niveau Rseau Utilise des protocoles de configuration de niveau Liaison (LCP) et de niveau Rseau (NCP : IPCP) Peut tre associ un protocole dauthentification CHAP Adaptation la transmission : inspire du protocole HDLC (ISO) Technique de compression des enttes TCP/IP : adaptation aux lignes faible dbit PPP est utilis pour le pontage dans les rseaux locaux transport de trames Ethernet au sein des paquets PPP administration des algorithmes de pontage laide de NCP
169