CEG3585/SEG3555 TUTORAT 3 Été 2014.

Slides:



Advertisements
Présentations similaires
Semaine 5 Couche Liaison de données Cours préparé par Marc Aubé
Advertisements

Chapitre II RESEAUX LOCAUX Ethernet
La Couche Liaison Modèle OSI : couche 2.
Couche liaison de données
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Protocole PPP* *Point-to-Point Protocol.
Nicolas Galliot M2SIR David Raspilaire
(Classes prédéfinies – API Java)
Architecture de réseaux
Formation réseau de base
1 cours réseaux chapitre 3 la couche liaison. 2 La couche liaison Objectifs, la détection et la correction d'erreurs, le contrôle de flux, les protocoles.
FLSI602 Génie Informatique et Réseaux
Liaison de Données M1/M2 ISV M2 IPS 2006/ Neilze Dorta
Architecture Des Réseaux
Common Gateway Interface
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Labview Programmation réseau Communication par sockets
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
TRANSMISSION DES DONNEES.
Transmission Séries des Données
Fonction COMMUNIQUER les liaisons série
LIAISON MODBUS.
Virtual Local Area Network
Principes de programmation (suite)
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
CHAINE DE CARACTERES : Définition :
Projet INF1 Présentation
Programmation concurrente
Allexis Vicquelin & Ainhoa Martinez Le Switch
IFT 6800 Atelier en Technologies d’information
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Le diagramme de collaboration
TCP – Transmission Control Protocol
La Couche Liaison Modèle OSI : couche 2.
Cours 5 Le modèle de référence.
Sommaire Dans ce chapitre, nous aborderons :
Cours n° 2 Liaison de données et trames
User Datagram Protocol
Programmation objet La base.
OSI et TCP/IP CNAM
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
J. Cardoso — C. Sibertin-Blanc — C
Strings et Tableaux en Java
Concepts fondamentaux
Les Réseaux Informatiques Clients & Serveurs Le protocole FTP Laurent JEANPIERRE DEUST AMMILoR.
Les sockets.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
1. Introduction Le traitement informatisé de données requiert un dialogue, une communication entre l’homme et la machine, et parfois, entre plusieurs.
Définition : La Liaison Téléinformatique
IF G.Beuchot 1 Relais de trames RELAIS de TRAMES FRAME RELAY Standard Q.922 : extension de HDLC.
Le protocole DHCP.
Les Réseaux Informatiques
Les Réseaux Informatiques
Couche transport du modèle OSI
Réseaux Informatiques
Vlan Trunking Protocol
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université des Sciences et de la.
Les protocoles de liaison point à point
Chapitre 2 la couche liaison de données
PARTIE II Chapitre I La Liaison de Données.
Architecture Client/Serveur
SIRVIN Alexis RIVIERE Mathieu VERRIERE Arthur
Langage de Programmation Orientée Objet : C++
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
INFO 3020 Introduction aux réseaux d’ordinateurs Philippe Fournier-Viger Département d’informatique, U.de M. Bureau D216,
Département Informatique Les Réseaux Informatiques Couche Liaison Protocole Ethernet Laurent JEANPIERRE.
Les Réseaux Informatiques
Transcription de la présentation:

CEG3585/SEG3555 TUTORAT 3 Été 2014

HDLC HDLC est un protocole synchrone à bit-orienté de la couche de liaison de données développé par ISO. Mode non-balancé Mode normal de réponse (NRM) Mode de réponse asynchrone (ARM) Mode balancé Mode balancé asynchrone (ABM) http://en.wikipedia.org/wiki/HDLC 2

HDLC La station primaire Controle les opérations de la liaison Les trames issues sont définies comme des commandes Maintient une liaison logique distincte avec chaque station secondaire La station secondaire Sous le contrôle de la station primaire Les trames issues sont définies comme des réponses http://en.wikipedia.org/wiki/HDLC 3

Mise en trame Délimiteur de trame: 8bits Chaque trame débute et finit avec un délimiteur de trame. la séquence est '01111110', ou, en notation hexadécimal, 7E Adresse: 8 bits ou plus En NRM, les trames n’inclus qu’une seule adresse, celle du terminal secondaire. http://en.wikipedia.org/wiki/HDLC 4

Mise en trame Contrôle: 8bits ou 16 bits Les trames d’information, ou frames-I, transportent les données de l’usager de la couche de réseau. Elles peuvent aussi inclure de l’information de contrôle de débit et d’erreurs accolée aux données. Les trames de supervision, ou frames-S, sont utilisées pour le contrôle de débit et d’erreurs tel que dans le cas où une station n’a pas à envoyer de données. Les trames-S n’ont pas de champ d’information. Les trames non numérotées, ou frames-U, sont utilisées dans différents buts, incluant la gestion des liaisons. Certaines frames-U, dépendamment du type, contiennent un champ d’information. http://en.wikipedia.org/wiki/HDLC 5

Mise en trame Frame-I Bit le moins significatif (premier à être transmis) est 0. N(S) définit le numéro de séquence de la trame expédiée. P/F N(R) définit le numéro de séquence de la trame reçue. http://en.wikipedia.org/wiki/HDLC N(R) provides a positive acknowledgement for the receipt of I-frames from the other side of the link. Its value is always the first frame not received; it acknowledges that all frames with N(S) values up to N(R)-1 (modulo 8 or modulo 128) have been received and indicates the N(S) of the next frame it expects to receive. 6

Mise en trame Frame-S Les premiers deux bits sont 10. Le champ d’encode de la frame-S est de 2 bits Prêt à recevoir (RR): 00 Pas prêt à recevoir (RNR): 01 Rejet (REJ): 10 Rejet sélectif (SREJ): 11 P/F N(R) http://en.wikipedia.org/wiki/HDLC Supervisory Frames, or S-frames, are used for flow and error control whenever piggybacking is impossible or inappropriate, such as when a station does not have data to send. S-frames do not have information fields. The S-frame control field includes a leading "10" indicating that it is an S-frame. This is followed by a 2-bit type, a poll/final bit, and a sequence number. If 7-bit sequence numbers are used, there is also a 4-bit padding field. The first 2 bits mean it is an S-frame. All S frames include a P/F bit and a receive sequence number as described above. Except for the interpretation of the P/F field, there is no difference between a command S frame and a response S frame; when P/F is 0, the two forms are exactly equivalent. The 2-bit type field encodes the type of S frame. 7

Mise en trame Frame-U http://en.wikipedia.org/wiki/HDLC Unnumbered frames are identified by the low two bits being 1. With the P/F flag, that leaves 5 bits as a frame type. Even though fewer than 32 values are in use, some types have different meanings depending on the direction they are sent: as a request or as a response. The relationship between the DISC (disconnect) command and the RD (request disconnect) response seems clear enough, but the reason for making SARM command numerically equal to the DM response is obscure. 8

Mise en trame Bit Poll/Final Bit Poll Trame de commande 1 pour solliciter (poll) une réponse d’ailleurs Le primaire n’envoie de Poll que lorsqu’il a reçu un Final d’un secondaire, ou après un timeout indiquant que la trame a été perdue. Bit Final Trame de réponse La station secondaire n’envoie de Final que lorsqu’il a reçu un Poll de la station primaire. http://en.wikipedia.org/wiki/HDLC Poll/Final is a single bit with two names. It is called Poll when set by the primary station to obtain a response from a secondary station, and Final when set by the secondary station to indicate a response or the end of transmission. In all other cases, the bit is clear. 9

Mise en trame Bourrage de bits A chaque fois qu’apparait 5 consécutifs bits-1 dans les données transmises, on y ajoute un bit-0 pour que cela ne soit pas pris pour un délimiteur de trame. A la réception, on enlève tout bit-0 qui suit 5 bits-1. http://en.wikipedia.org/wiki/HDLC 10

Mise en trame FCS: Vérificateur de séquençage de trame Une vérification cyclique de redondance se produit sur toute la trame, incluant ‘l’Adresse’, le 'Contrôle' et les champs ‘d’Information'. Le vérificateur de séquençage de trame est un CRC de 16-bit (CRC-CCITT) ou de 32-bit (CRC-32). http://en.wikipedia.org/wiki/HDLC 11

Labo 3 – Le protocole HCLC Topologie physique multi-point Une station primaire, deux stations secondaire La station primaire contrôle la communication Architecture de 3 couches Couche physique Couche liaison de données – offre service orienté connexion avec le protocole HDLC Couche « application » - Échange de messages entre la station primaire et chaque station secondaire

Labo 3 – Le protocole HCLC Programmation Java Couche physique simulé avec la programmation socket Classe: PhysicalLayer – offre deux méthodes transmit() et receive90 pour transmettre et recevoir les trames HDLC Classe: PhysicalLayerServer – Serveur qui permet de réaliser un couche physique multi-point Entités des deux autres couchés réalisés avec des classes Java Couche liaison de données: classes PrimaryHDLCDataLink et SecondaryHDLCDataLink Couche Application: classes PrimaryStation et SecondaryStation Notes: PhysicalLayer utilisé par toutes les stations – primaire et secondaires PysicalLayerServer – programme java roulé séparément qui retransmet une trame reçu sur une connextion à toutes les autres connextions

Couche Physique Le serveur agit comme commutateur Station Primaire Station Secondaire Station Secondaire trame trame trame transmit() receive() PhysicalLayer transmit() receive() PhysicalLayer transmit() receive() PhysicalLayer ClientSocketManager ClientSocketManager ClientSocketManager ClientSocketManager et ServerSocketManager sont les classes du labo 2 Du point de vu des stations, la couch physique a une topologie multi-point Réseau local Le serveur agit comme commutateur Toutes trames reçues sur une connexion est retransmit sur les autres Ces classes vous sont fournies ServerSocketManager PhysicalLayerServer

Couches liaison de données et application Station Primaire Station Secondaire Station Secondaire Couche application PrimaryStation SecondaryStation SecondaryStation Couche liaison de données PrimaryHDLCDataLink SecondaryHDLCDataLink SecondaryHDLCDataLink Couche physique PhysicalLayer PhysicalLayer PhysicalLayer PrimaryStation et SecondaryStation sont fournis L’objective du labo est de compléter les classes PrimaryHDLCDataLink et SecondaryHDLCDataLink La classe PrimaryHDLCDataLink offre les méthodes suivantes dlConnectRequest, dlConnectConfirmation, dlDataRequest, dlDataIndication, dlDisconnectRequest La classe SecondaryHDLCDataLink offre les méthodes suivantes dlConnectIndication, dlConnectResponse, dlDataRequest, dlDataIndication, dlDisconnectIndication

Mise en trame Une trame sera une chaîne de caractère: objet String Des chaînes déjà prédéfinis sont fournis pour mise en trame Exemple: private final String SNRM_M1 = "00"; private final String SNRM_M2 = "001"; private final String P1 = "1"; Des méthodes (de la classe PrimaryHDLCDataLink et SecondaryHDLCDataLink) private String intAdrToBitAdr(int adr): conversion d’adresse en bits private String stringToBitString(String str) : conversion de chaîne ASCII en bits. Utilise opérateur de concaténation (+) pour la création d’une trame: Exemple (adr est une variable int): La chaîne référée par frame sera une séquence de 0`s et 1`s String frame = FLAG+intAdrToBitAdr(adr)+SNRM_M1+P1+SNRM_M2+FLAG;

Extraire données d’une trame En Java, l’objet offre des méthodes pour manipuler les objets Les méthodes de la classe String utiles pour ce labo: substring(int ixStart, int ixEnd) – pour extraire une sous-chaîne de la chaîne – caractères entre ixStart et ixEnd-1; charAt(int ix) – donne le caractère à l’index ix Constantes prédéfinies fournies à utiliser avec méthodes. Exemples (avec String trame qui réfère à une trame): Numéro de séquence: String ns = trame.substring(NS_START, NS_END) Bit Poll: char p = trame.charAt(PF_IX);

Votre tâche De compléter les méthodes des classes PrimaryHDLCDataLink et SecondaryHDLCDataLink Exemple: // Data transfer service - non-confirmed service public Result dlDataRequest(int adr, String sdu) { Result.ResultCode cd = Result.ResultCode.OpSucessful; // à compléter return(new Result(cd, 0, null)); }

Pondération Fonctionnement de base du HDLC: 60% Compléter les méthodes: La classe PrimaryHDLCDataLink : dlConnectRequest, dlConnectConfirmation, dlDataRequest, dlDataIndication, dlDisconnectRequest La classe SecondaryHDLCDataLink : dlConnectIndication, dlConnectResponse, dlDataRequest, dlDataIndication, dlDisconnectIndication Fenêtre coulissante: 20% Rapport: 20%