5

Click here to load reader

HDLC PPP

Embed Size (px)

DESCRIPTION

Protocoles de couche liaision

Citation preview

Page 1: HDLC PPP

BERARD GladysEI3-IR

*** Protocoles de couche liaison HDLC et PPP ***

** HDLC : famille **HDLC (High-level Data Link control)est un protocole de couche liaison. Il appartient à une famille regroupant plusieurs protocoles : SDLC, ADCCP, qui est LAP et PPP (Point-to-Point Protocol) est un standard de l'IETF. LAP-B est utilisé par X25 (protocole de commutation de paquet en mode connecté (Transpac)).

** Format des trames **HDLC est un protocole orienté bit. Dans une trame HDLC, on retrouve trouve 4 champs et un fanion permettant d'identifier le début et la fin de trame (8 bits = 01111110), un champ adresse (8 bits) pour les liens multi-points, un champ de contrôle pour identifier le type de trames envoyées (8 bits), un champ pour les données et un champ de contrôle d'erreur (FCS) qui vérifie que les données n'ont pas été modifiées (8 bits).

** Mode de fonctionnement **3 modes de fonctionnement :- NRM (Normal Response Mode) : fonctionnement maître/esclave. Un terminal n'envoie des données que si le serveur lui en a fait la demande.- ARM (Asynchronous Response Mode) :fonctionnement maître/esclave où le terminal peut initié la communication - ABM (Asynchronous Balanced Mode) : où tous les terminaux sont égaux. La communication entre les terminaux est libre.

** Champ contrôle **Le champ contrôle peut être de trois structures différentes selon le type de trames envoyées. On reconnaît le type selon la valeur des 2 premiers bits :- le type information a le premier bit à 0. Dans ces trames, il y a alors le numéro de séquence, un champ P/F et un champ suivant dans lequel on peut mettre les ACK. Ce type de trame permet une transmission de données avec fenêtre glissante. - le type supervision (identifié par les premiers bits à 10) permet de faire du contrôle de flux, des ACK non piggybackés ... Dans ce cas le champ contrôle comprend un champ type et un champ suivant. - le type non numéroté pour envoyer des informations de configuration ou pour établir une connexion. Le champ contrôle commence alors par 11.

** Trames de supervision **Voici des exemples de trames de supervision : - RR : l'acquittement positif, - RNR : ACK + contrôle de flux pour indiquer que l'on ne peut plus recevoir de données- REJ : faire un acquittement négatif lorsque une information est mal reçue, avec comme politique de retransmission go back n (on retransmet toutes les trames)- SREJ : faire un acquittement négatif lorsque une information est mal reçue, avec comme politique de retransmission selective-repeat (on retransmet que la trame souhaitée).

** Trames non numérotées **Exemple de trames non numérotées :

- DISC pour demander une déconnexion- SNRM, SABM et SARM pour le choix du mode de fonctionnement - SNRME, SABME et SARME pour étendre le champ de contrôle sur 16 bits - FRMR pour les erreurs de protocole - UA pour acquitter la déconnexion - UI pour faire du best effort (pas d'acquittement).

Page 2: HDLC PPP

** PPP : Point to Point Protocol **PPP était à l'origine SLIP ( protocole de niveau liaison). Aucune erreur n'étaitgérée ( elles étaient gérées par les couches supérieures). Seul IP pouvait fonctionner au dessus. L'adresse IP devait être connue au préalable. PPP a permis une méthode d'encapsulation multi protocole (ip, ipx ...). Ilajoute aussi un établissement, un test et la configuration de la connexion ainsi que la configuration pour la couche réseau.

** Etats de PPP **Une connexion PPP se décrit en 6 états : le point de départ en position 'morte'.Ensuite, la porteuse doit être détectée puis les partis doivent se mettred'accord sur les options à utiliser. S'ils n'y arrivent pas, on revient l'état initial. En cas de succès, une authentification optionnelle peut être effectuée. Apres la configuration de la couche réseau ou la machine reçoit par exemple son adresse IP, la connexion est ouverte et les partis peuvent communiquer normalement. En fin de communication, on passe à l'état Terminaison.

** Encapsulation ** PPP est un protocole orienté octet.La trame de PPP comprend 7 champs : 2 champs flag (un en début et un en fin), un champ Adresse égale à 0xFF (pas d'adresse car c'est du point-à-point), un champ contrôle égale à 0x03 (correspond à une trame non numérote de HDLC), un champ protocole pour identifier le protocole, un champ payload de taille variable qui peut contenir des protocoles de différentes couches (LCP couche liaison et NCP couche réseau par exemple) et un cheksum.De nombreux protocoles peuvent être encapsulés : des protocoles réseaux comme IP, des protocoles de configuration tels que IPCP et des protocoles de niveau réseau pour liaison tels que LCP (contrôle de la couche liaison), PAP ou CHAP (authentification) ou encore NCP (contrôle de la couche réseau).

** Link control protocol : LCP **La trame LCP (Link Control Protocol) comprend un champ code qui indique letype de paquet LCP, un champ identificateur puis un champ longueur pour la taille totale du paquet entête LCP comprise et enfin un champ donné. Il existe beaucoup de codes qui permettent la négociation (voir transparent).Il est à noter que tous les paramètres s'effectuent pour un sens de la communication et que l'on peut avoir une configuration différente dans l'autre sens. Enfin, il faut remarquer que si la négociation échoue, la communication s'arrête.Les options de LCP sont définies dans le champ données. Elles permettent la Négociation de compression d'en-tête la taille maximale des trames reçues...

** PAP : Password Authentification Protocol **Protocole d'identification par mot de passe. PAP transmet en clair sur le réseau l'identifiant et le mot de passe. Il est utilisé après l'établissementde la connexion. Après que le protocole LCP ait accepté la liaison au site distant, le client s'authentifie auprès du serveur en lui envoyant un paquet Authentication-Request contenant l'identité du client et le mot de passe associé. Le serveur compare ces données à celle contenu dans son fichier d'authentification puis acquitte (trame Authenticate-Ack) ou pas (Authenticate-Nack).

** CHAP : Challenge Handshake Authentification Protocol **C'est un protocole d'identification qui permet de ne pas transmettre le Login/password en clair. Il fonctionne de la manière suivante : chaque extrémité possède une clé identique. On envoie des données à l'autre extrémité en lui demandant de les renvoyer en les encryptant avec la clé. Puis on compare le résultat obtenu avec notre propre résultat. Il existe donc pour ce faire 4 types de trames de négociations : challenge, response, success et failure. Le format

Page 3: HDLC PPP

de la trame est identique à celui de LCP.

** RADIUS : Remote Authentication Dial-In User Service **RADIUS fonctionne selon le modèle client/serveur : en effet il propose à lui une centralisation des informations sur les utilisateurs. Il offre les fonctions AAA (Authentification , Authorization, Accounting) qui permettent la vérification de l'identité, de connaître les droits d'accès et de suivre les actions del'utilisateur (par exemple, calculé le temps de connexion pour une facturation). Pour ne pas surcharger le serveur, c'est un service sans connexion (UDP port 1812). De plus, il s'agit d'une communication de type transaction auquel TCP n'est pas adapté. La fiabilité est gérée au niveau applicatif. La sécurité est assurée par un hachage et un cryptage avec une clé connue par le serveur et le client (MD5). Un échange typique consiste en un message Access-request du client d'accès auquel le serveur répond par un message Access-Accept si l'utilisateur est répertorié dans la base est avec un message Access-Reject sinon. Il est à noter que pour plus de sécurité et de facilité, on laisse le moins possible de configuration à faire par l'utilisateur.

** NCP : Network Control Protocol **NCP est mis en oeuvre après la configuration de la liaison (LCP) et l'authentification (CHAP /PAP). Il permet de configurer et de contrôler le protocole qui sera utilisé.Il y a un NCP par protocole transporté défini par des RFC.

** IPCP **Par exemple IPCP (Internet Protocol Control Protocol) pour la configuration de IPv4. IPCP envoie 4 types de paquets de négociation. Le format de la trame est identique à LCP et incorpore les options suivantes : la compression d'entête, l'adresse IP du client, l'adresse IP permanente, l'adresse IP du serveur DNS primaire, ...

** Pourquoi et que compresser ? **La compression peut être importante car elle permet d'économiser la bande passante et permet le maintient d'une bonne interactivité (ex : si on envoie des trames longues, le temps d'émission est long, ce qui gène l'interactivité car on ne peut rien faire d'autre pendant ce temps). On peut donc compresser les champs HDLC/PPP en réduisant l'entête, les données (possibilité est coûteuse en temps), les entêtes TCP/IP.

** Compression d'en-tête TCP/IP **Algorithme de Nagle :dès que l'on appuie sur une touche, on attend 100ms avant d'envoyer les données pour agréger des octets dans moins de paquets , ... (utilisé dans Telnet par exemple).On constate qu'entre 2 trames, peu d'élément de l'entête TCP/IP varie. On peut Donc les compresser en n'envoyant que les parties variables.

** Algorithme de Van Jacobson **L'algorithme de Van Jacobson permet de compresser les en-têtes TCP/IP. Lors de l'émission de trame SYN, RST et Fin, on envoie les en-tête complet. Sinon pour la synchronisation et les ACK négatifs ou de séquences, on envoie l'entête complet puis dans les trames suivantes, on envoie uniquement les champs modifiés et l'identificateur de connexion. A chaque extrémité, on maintient un contexte (dernière valeur connue de l'en-tête). L'entête fait donc au minimum 3 octets.

** En-tête TCP/IP compressé **Schéma exemple.

Page 4: HDLC PPP

Le bit C représente l'identification de connexion. Il n'est pas émis si c'est le même que dans la trame précédente. Le checksum TCP ainsi que le bit U est une recopie de la trame non-compressée.On note que si le bit d'identification du delta est absent, alors on l'incrémente.

** Conclusion **Pour conclure, on rappellera que HDLC est la base des protocoles de liaison. Enfin, PPP est un protocole très générique que l'on peut utiliser dans beaucoup de liaison point à point. Il intègre un support multi-protocoles, une configuration liaison, une configuration protocole réseau, une authentification. Il est fiable et permet la compression des en-têtes.