Protocoles de couche liaison HDLC et PPP NE321/C4 HDLC

Transcription

Protocoles de couche liaison HDLC et PPP NE321/C4 HDLC
HDLC : famille
Protocoles de couche liaison
HDLC et PPP
NE321/C4
• SDLC (Synchronous Data Link Control) d’IBM pour SNA
(’70)
• ADCCP (Advance Data Communication Control Procedure)
normalisation de SDLC par l’ANSI
• HDLC (High-level Data Link Control) normalisation de
SDLC par l’ISO
• LAP (Link Access Procedure) normalisation d’HDLC par
l’ITU
✓ LAP-B pour X25
✓ LAP-D pour ISDN
✓ LAP-F pour Frame Relay
✓ LAP-M pour les modems
• PPP (Point-to-Point Protocol) standard de l’IETF
Christophe Deleuze
ESISAR/INPG – LCIS
mars 2005
HDLC
NE321/C4
1
Format des trames
Bits
8
8
01111110
•
•
•
•
8
Adresse
Contrôle
Modes de fonctionnement
>=0
16
Données
FCS
8
T
01111110
T
S
T
fanion
adresse (pour lien multi-point)
contrôle : 3 types de trames
Frame Check Sequence : CRC
à l’origine (SDLC) sur des liens point à multipoint
• serveur puissant (mainframe)
• terminaux (minimaux)
NRM (normal response mode) : maı̂tre esclave
ARM (asynchronous response mode) : esclave peut initier
communication
ABM (asynchronous balanced mode) : pair à pair
NE321/C4
2
NE321/C4
3
Champ Contr^
ole
Trames de supervision
Bits
1
3
1
3
a)
0
Seq
P/F
Suivant
b)
1
0
Type
P/F
Suivant
c)
1
1
Type
P/F
Modificateur
RR (receive ready) acquittement positif
RNR (receive not ready) : ACK + stop (contrôle de flux)
REJ (reject) NAK → go-back-n
SREJ (selective reject) : NAK → retr. sélective
a) Information : transmission de données avec fenêtre
glissante
b) Supervision : contrôle de flux, ACK non piggybacké,
NAK, demande de retransmission selective...
c) Non numéroté : pour le contrôle interne à la couche
liaison
4
NE321/C4
PPP
NE321/C4
Trames non numérotées
5
PPP : Point to Point Protocol
au commencement était SLIP (serial line IP)
• un fanion de fin 0xC0
• échappé par 0xDB (lui-même doublé)
• –
✓ uniquement pour IP
✓ adr. connue à l’avance
✓ pas de contrôle d’erreur
DISC onnect
SNRM set NRM
SABM set ABM
SARM set ARM
SNRME SABME SARME set ... extended
• n˚ de seq. sur 7 bits
PPP fournit :
FRMR frame reject
1. méthode d’encapsulation multi protocole
UA unnumbered ack
2. établissement, test et configuration de la liaison : Link control
protocol (LCP)
UI unnumbered information ➠ best effort
3. configuration pour la couche réseau : famille de network
control protocol (NCP)
etc
NE321/C4
6
NE321/C4
7
Encapsulation
États de PPP
accord sur
les options
porteuse
détectée
authentification
réussie
Format de la trame
Bytes
Établie
1
1
1
Flag
Address Control
01111110 11111111 00000011
Authentification
2 (1)
Variable
2
Protocol
Payload
Checksum
1
Flag
01111110
échec
Morte
• LCP: protocole de contrôle de la couche liaison
✓ négociation des paramètres de la couche support (taille
des trames...)
• PAP et CHAP: protocoles d’authentification
• NCP: protocole de contrôle de la couche réseau
✓ négociation des paramètres du protocole transporté
(adressage...) →dépend de chaque couche réseau
supportée
• IP, AppleTalk, IPX, IPv6...
Réseau
échec
Terminaison
Ouverte
Fermée
Terminé
configuration
couche réseau
NE321/C4
9
Link control protocol – LCP
Description
Protocole de bourrage
IP
AppleTalk
IPX
TCP/IP Compression d’entête de Van Jacobson
TCP/IP Compression VJ non compressé
IPv6
MPLS
IPCP: configuration d’IP
ATCP: configuration d’AppleTalk
IPXCP: configuration d’IPX
IPV6CP: configuration d’IPv6
Configuration de MPLS
LCP: Link Control Protocol
PAP: Password Authentification Protocol
LQR: Link Quality Report
CHAP: Challenge Handshake Authentification Protocol
NE321/C4
NE321/C4
Configuration de la liaison
Valeur
0x0001
0x0021
0x0029
0x002B
0x002D
0x002F
0x0057
0x0281
0x8021
0x8029
0x802B
0x8057
0x8281
0xC021
0xC023
0xC025
0xC223
8
10
0
7
code
15
identificateur
données
• code: indique le type de paquet LCP
• identificateur: mise en correspondance entre les
requêtes et les réponses
• longueur: taille totale du paquet avec l’entête LCP
✓ permet de supprimer de potentiels octets de bourrage
• données: paramètres de la négociation
NE321/C4
11
Paquets LCP
Code
Configure-Request
Configure-Ack
Configure-Nak
Configure-Reject
Terminate-Request
Terminate-Ack
Code-Reject
Protocol-Reject
Echo-Request
Echo-Reply
Discard-Request
LCP : options
Description
modif. aux valeurs par défaut
récepteur accepte toutes les mofif.
valeurs refusées, en proposer d’autres
valeurs non négociables
un des equipements veut terminer
confirmation de la terminaison
code inconnu
protocole inconnu
demande test l’état de la liaison
réponse de test de l’état de la liaison
supprimées en silence par le récepteur
Style TLV :
1 octet
Type
Type
MRU
ACCM
authentification
qualité
Magic Number
compression protocol
compression address
control
bourrage auto-descriptif
rappel automatique
mode numéroté
NE321/C4
12
Authentification
1 o.
LgMP
(LgMP) octets
Mot de passe
✓ 2: acquittement positif
1 o.
(LgId) octets
format: LgId
Message pour le client
3
3+
4+
Description
Taille maximale des trames reçues
table des caractères à transcoder
type du protocole d’authentification choisi
type du protocole de surveillance de la qualité
négociation de cette valeur
champ protocol sur 1 octet
suppression de ces champs
paramètre d’un bourrage qui peut être
automatiquement supprimé par le récepteur
...
transfert fiable
13
Challenge Handshake Auth. Protocol (RFC 1334/1994)
• les 2 extrémités possèdent une clé identique et secrète
• 4 types de trames de négociation (Challenge, Response,
Success ou Failure)
• format identique à LCP, valeur du champ code :
✓ 1: challenge (envoi d’une séquence binaire)
1 o.
(LgCh) octets
1 o.
(LgCC) octets
format: LgCh
séquence binaire
✓ 2: réponse (retour de la séquence cryptée avec la clé)
format: LgCC
séquence binaire cryptée
✓ 3: succès : la séquence cryptée reçue et celle calculée
localement sont identiques
✓ 4: échec (échec)
✓ 3: acquittement négatif (échec) format:
1 o.
(LgId) octets
LgId
Message pour le client
NE321/C4
Taille
4
6
4
6
6
2
2
(Longueur - 2) octets
Valeur
CHAP
Password Authentification Protocol (RFC 1334)
• transmission en clair de l’identifiant et du mot de passe
• 3 types de trames de négociation (Authenticate-Request,
Authenticate-Ack, Authenticate-Nak.
• format identique à LCP, valeur du champ code :
✓ 1: demande d’authentification
format:
(LgId) octets
Identificateur
1 octet
Longueur
NE321/C4
PAP
1 o.
LgId
bit 31
longueur
14
NE321/C4
15
RADIUS (1)
RADIUS (2)
Remote Authentication Dial-In User Service (RFC 2865)
Service sans connexion (UDP port 1812)
• fiabilité gérée au niveau applicatif
• sécurité : secret partagé et crypto/hash
• format du message :
Centralisation des informations concernant un utilisateur
• fonctions AAA : Authentication, Authorization, and
Accounting
✓ vérification de l’identité
✓ connaitre les droits et configuration d’accès
✓ suivre les actions de l’utilisateur
• modèle client/serveur
0
7
code
16
identificateur
authentificateur
digest = MD5(code+id.+long.+auth req+param+secret)
Serveur RADIUS
CHAP
PPPoA
FAI
PPP
10
10
ADSL
bit 31
longueur
paramètres
PAP
RTC
10
NE321/C4
16
NE321/C4
17
NCP
RADIUS (3)
Network Control Protocol
Configuration réseau
Echange typique:
• message Access-Request du client d’accès
✓ nom de l’utilisateur, mot de passe crypté
✓ adresse IP du point d’accès, port UDP
✓ type de session (PPP, rlogin, telnet...)
• réponse Access-Accept du serveur RADIUS
✓ liste d’attributs à utiliser pour la session (adresse,
serveurs...)
• réponse Access-Reject du serveur RADIUS
✓ si l’utilisateur n’est pas dans la base ou n’a pas accès au
service
Après la configuration de la liaison (LCP) et une authentification optionnelle (PAP ou CHAP), configuration des protocoles de couche 3
• un NCP par protocole transporté:
✓ IPCP pour la configuration IPv4 (RFC 1332)
✓ IPV6CP pour la configuration IPv6 (RFC 2472)
✓ ATCP pour la configuration AppleTalk (RFC 1378)
✓ IPXCP pour la configuration IPX (RFC 1552)
✓ OSINLCP pour la configuration des protocoles de l’OSI
(RFC 1377)
✓ ...
NE321/C4
18
NE321/C4
IPCP
Pourquoi et que compresser
Internet Protocol Control Protocol
Compression
• 4 types de paquets de négociation (Configure-Request,
Configure-Ack, Configure-Nak ou Configure-Reject)
• format identique à LCP, options :
✓ 2 : compression d’entête
☞ le type de compression (Van Jacobson; étendu;
ROHC, RObust Header Compression)
☞ nombre max de connexions compressées
✓ 3 : adresse IP du client sur 4 octets
✓ 4 : adresse IP permanente (home address)
✓ 129 : adresse IP du serveur DNS primaire
✓ ...
NE321/C4
19
20
• parce que ...
✓ économie de bande passante
✓ maintient d’une bonne interactivité
• Compression des champs HDLC/PPP
✓ suppression champs control/address
✓ suppression FCS
✓ champ type sur 1 octet
• Compression des données
✓ possible mais généralement coûteux
• Compression des entêtes TCP/IP
✓ ...
NE321/C4
21
Différence entre deux segments
Compression d’entête TCP/IP
32 bits (4 octets)
• connexion TCP/IP interactive (telnet...)
✓ algorithme de Nagle
✓ taille importante des entêtes
✓ exemple:
NE321/C4
D F
M F
Frag. offset
Header checksum
IP source address
0c
8e
cf
7b
90
40
00
00
62 00 20
00 40 06
50 52 40
00
ed 87 fd e6 08 00 45 00
0d bf 84 e3 3d 7a cb 10
18 64 52 65 10 0d 50 10
IP destination address
Source port
Destination port
Sequence number
0c
8f
cf
5f
90
40
00
00
62 00 20
00 40 06
50 52 40
00
Acknowledgment
number
Hlen Rcv window size
Checksum
Urgent data ptr
ed 87 fd e6 08 00 45 00
0d be 84 e3 3d 7a cb 10
18 64 52 65 15 c1 50 10
G
K
H
T
N
N
2 (A−>B)
00 07 e9
00 28 b5
ea 14 81
39 08 aa
Packet Lenght
R
C
S
S
Y
I
trame
0000
0010
0020
0030
1 (A−>B)
00 07 e9
00 28 b5
ea 14 81
2d a0 bb
TOS Identifier
TTL
Protocol
U
A
P
R
S
F
trame
0000
0010
0020
0030
Ver Hlen
22
NE321/C4
23
Algorithme de Van Jacobson
séquence (erreur)
Emetteur
Algorithme de compression des entêtes TCP/IP (RFC 1144)
TCP/IP
• émission des entêtes classiques pour SYN, RST et FIN
(champ protocol à 0x0021 = IP)
• puis compression:
✓ différentiel entre deux entêtes (0x002D):
☞ identificateur de connexion
☞ maintient d’un contexte à chaque extrémité
☞ seuls les champs modifiés sont transmis
☞ la différence est généralement codée sur un octet
✓ envoi complet avec l’identificateur de connexion (dans
champ Protocol de IP !) (0x002F):
☞ pour la synchronisation (premier paquet complet)
☞ pour les valeurs négatives d’acquitement ou de
NE321/C4
UDP/IP
inef.
SYN
FIN
RST
0x002F
TCP/IP
0x0021
UDP/IP
au minimum octet 1 + cheksum TCP (3 octets)
• présence des champs indiquée dans premier octet
• delta codés sur 1 à 2 o.
✓ 1 octet:0x01 à 0xFF
✓ 3 o.: 0x000100 à 0x00FFFF
NE321/C4
25
Conclusion
Entête TCP/IP compressé
NE321/C4
Récepteur
Entête TCP/IP compressé
24
• bit C: présence id. connex.
✓ non émis si idem
précédent
• checksum TCP: recopie
• bit U: recopie
• bit W: delta fenetre
✓ négatif en complément à 2
• bits S/A: delta seq./acq.
✓ pas de négatifs
• bit I: delta id. IP
✓ absent = +1
• bit P: recopie bit PUSH TCP
0x002D
Comp.
HDLC : base des protocoles de liaison
PPP intègre
• support multi-protocoles
• configuration liaison
• configuration protocole réseau
• authentification
• fiabilité
• compression d’entête
• ...
C I P S A W U
id. connexion
checksum TCP
pointeur urgent
delta fenetre
delta acquittement
delta séquence
delta id. IP
données
8 bits
26
NE321/C4
27

Documents pareils