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