Professional Documents
Culture Documents
Introduction
Lunivers des tlcommunications numriques est compos de rseaux locaux - LANs (Local Area Networks) et de rseaux longue distance - WANs (Wide Area Networks). Historiquement, les technologies du rseau local sont nes dans les annes 80 avec la ncessit de connecter de multiples ordinateurs sur le mme site. Ces technologies ont permis de lier plusieurs ordinateurs sur le mme support physique. Traditionnellement, les rseaux locaux ont une couverture limite quelques kilomtres et un dbit de quelques mgabits par seconde. Un rseaux local peut tre dcrit laide de plusieurs caractristiques:
le dbit nominal (bits/s), la topologie (anneau, bus, toile,..), la distance de couverture, la mthode daccs au support commun, les media et la connectique (type de cbles, ..), le format de trames.
Les rseaux longue distance transportent des donnes numriques dun site lautre. Les technologies WAN peuvent tre dployes sur nimporte quelle distance lchelle nationale ou internationale. Lensemble des rseaux de tlcommunication est bas sur une hirarchie de communication synchrone SDH (Synchronous Digital Hierarchy). Parmi les technologies traditionnelles utilises pour le transfert de donnes via le systme SDH, on trouve des liaisons loues, des relais de trames (frame relay) et la technologie ATM. Depuis peu lutilisateur peut profiter de la technologie xDSL (Digital Subscriber Loop) permettant de porter des donnes numriques entre le centre de raccordement et le site de labonn. Les liaisons loues offrent un dbit entre 64 Kbit/s et 34 Mbit/s entre deux points. Frame relay est une technologie commutation par paquets, permettant dexploiter les rseaux publics par une multitude de clients indpendants. Le dbit daccs au frame relay est entre 64 Kbit/s et 34 Mbit/s. La technologie ATM exploite la commutation de cellules pour rpondre la demande de diffrents services avec un dbit lev pourant atteindre plusieurs centaines de mgabits par seconde. La technologie xDSL permet de connecter les utilisateurs finaux (postes individuels, rseaux locaux) par les liens haut dbit (2 Mbit/s) crs sur les connections tlphoniques de la boucle locale.
Rseaux informatiques
Introduction
FIGURE 1.
10 Gbit/s bus systme 1 Gbit/s LAN 1 Mbit/s PCI, HiPPI, .. Ethernet, Token Ring, .. 1 Kbit/s 1 cm 1m
WAN
Topologies
Diffrents rseaux de communication possdent diffrentes topologies. Selon le type de la topologie, linformation peut tre diffuse sur un support commun (multi-point), ou tre achemine par les liens laccs unique (point--point). En principe, une installation rseau est compose de deux parties:
Le bus correspond la mise en parallele de tous les accs rseau. Le dbit rel global sur le bus est partag dans le temps par les utilisateurs.
Rseaux informatiques
Topologies
Ltoile est constitue dun lment central appel hub (moyeu) ou concentrateur. Thoriquement, si llment central est une matrice de commutation spatiale, le dbit global dun rseau en toile peut atteindre n-1 fois la bande passante de chaque liaison. Lanneau est compos dun chemin boucl sur lequel sont connects les adaptateurs rseau. Sur un anneau lodre de circulation des informations est implicite et les adaptateurs sont atteints conscutivement. Le maillage est une topologie o les adaptateurs sont relis par couple par des liaisons en point--point. Cest la topologie la plus coteuse; elle necessite n*(n-1)/2 liaisons pour n adaptateurs.
FIGURE 2.
sous-rseau de communication
FIGURE 3.
A, D
A, D trame transmettre de A D
Rseaux point--point
terminal
Les noeuds de communication permettent de choisir la route de communication en fonction de ladresse de destination. Selon la nature du rseau et de limplmentation utilise on trouve deux sortes de noeuds de communi-
Rseaux informatiques
Introduction
cation: les commutateurs et les routeurs. Dans les deux cas, un noeud de communication intgre les fonctions de traitement et de mmorisation, et fonctionne selon le principe store and forward. Dans le cas des commutateurs (e.g. commutateur ATM), le temps de stockage est trs court, ce qui permet deffectur les communications en temps rel.
FIGURE 4.
Mode point--point
C A, D A C1 B
C2 D
C2
noeud de communication
A, D trame transmettre de A D
FIGURE 5.
Topologies point--point
toile
anneau
arbre
maillage complet
Rseaux informatiques
Topologies
FIGURE 6.
anneau
Rseaux informatiques
Introduction
Standards
Dans le domaine des communications, la grande majorit des technologies est standardise. Dans ce cadre, deux principaux modles de rfrence sont utiliss, celui de lOSI et celui du monde internet (TCP/IP). Le modle OSI est dcoup en sept couches, dont les quatre plus basses concernent limplmentation du rseau. Les couches suprieures sont orientes vers linterface de programmation et les applications utilisateur.
la couche physique (PHY) spcifie les caractristiques physiques propres la transmission du signal
(codage, dtection du signal, synchronisation, dtection de collisions, ..); la couche PHY est souvent dcompose en sous-couche haute PHY (codage, synchronisation,..) et en sous-couche basse PMD (Physical Medium Dependent)
la couche liaison de donnes assure le transfert de donnes sur le support physique sous la forme de trames
avec contrle des erreurs et gestion de flux; dans les technologies LAN cette couche est subdivise en deux niveaux: MAC (Medium Access Control) et LLC (Logical Link Control)
la couche rseau unifie les couches sous-jacentes par introduction des datagrammes qui vhiculent les adresses rseau et les donnes utilisateur.
la couche transport peut fournir seulement un aiguillage vers les niveaux dapplication ou vers un service de
transfert fiable, avec dtection et correction derreur et gestion des flux. Le modle TCP/IP est constitu de quatre couches:
la couche matrielle qui intgre les rseaux physiques LAN et MAN (Ethernet, ATM,..), la couche internet permettant dinterconnecter plusieurs rseaux physiques diffrents, la couche transport qui fournit les services de transport fiable ou non-fiable travers le rseau internet, la couche application intgrant diffrents services applicatifs (e.g. services WEB).
FIGURE 8.
modle OSI
couche application couche prsentation couche session couche transport couche rseau couche liaison: LLC, MAC
10
Rseaux informatiques
Protocoles et interfaces
Protocoles et interfaces
Dans les modles de rfrence, la couche de niveau N dune station gre la communication avec la couche de niveau N dune autre station. A chaque niveau ou couche correspond un protocole de communication. Les units actives de niveau N sont appeles processus pairs. Entre chaque paire de couches adjacentes, on trouve une interface.
Couche Physique
La couche physique soccupe de la transmission des bits sur un support de communication. Les bits sont cods sur 2 ou plus niveaux physiques du signal lectrique, lectro-magntique, optique,...
FIGURE 9.
protocole rseau interface liaison interface physique protocole medium physique protocole liaison interface physique rseau interface
Couche Liaison
La couche liaison soccupe de la transmission des trames (suites de bits) sur le support de communication. Les trames envoyes par lmetteur sappellent trames de donnes. Les trames renvoyes par le rcepteur sappel-
Rseaux informatiques
11
Introduction
lent trames dacquittement. La couche liaison rend la communication fiable en employant trois oprations: acquittement, temporisation, et retransmission.
FIGURE 10.
protocole rseau interface liaison interface donne en-tte trame protocole liaison rseau paquet
acquittement
code de contrle
physique
physique
bit
Couche Rseau
La couche rseau permet de grer le sous-rseau et intgre les mcanismes permettant dacheminer un paquet de la source au destinataire. Les routes peuvent tre dtermines statiquement ou dynamiquement pendant le fonctionnement du rseau. La mme route peut tre utilise pour lensemble des paquets dun message; alternativement plusieurs routes peuvent tre utilises pour la transmission dun message dcompos en plusieurs paquets.
12
Rseaux informatiques
Protocoles et interfaces
FIGURE 11.
donne paquet
protocole liaison
liaison
Couche Transport
La couche transport implmente des protocoles permettant dassocier et de rendre fiable les services du sousrseau aux applications qui sexcutent sur les quipements terminaux.
FIGURE 12.
Rseaux informatiques
13
Introduction
Synchronisme
Une des notions les plus importantes dans la comprhension des rseaux informatiques est le synchronisme. Les termes synchrone, asynchrone, isochrone et plsiochrone sont souvent utiliss dans le monde des tlcommunications. Ils peuvent revtir plusieurs significations selon que lon sintresse au niveau physique (bit, octet) ou au niveau de rseau (paquet). Au niveau physique:
les communications sont synchrones si lhorloge ayant servi au codage du signal est continuellement vhicule avec lui (soit dans le signal, soit en parallle par un signal associ),
les communications sont asynchrones si lhorloge du codage nest pas transmise avec le signal et nest
donc pas connue du rcepteur - dans ce cas les donnes mises sont encadres par des bits de start et de stop,
les communications sont isochrones si lmetteur et le rcepteur ont des horloges identiques, assujetties
une troisime horloge,
les communications sont plsiochrones si lmetteur et le rcepteur ont des horloges indpendantes, mais
suffisamment proches et prcises pour permettre des changes avec un minimum derreur. Au niveau rseau:
les communications sont synchrones si lquipement metteur dispose dune bande passante et dun dlai
garanti; de son ct le rcepteur sait prcisment quel instant un paquet peut lui parvenir,
les communications sont asynchrones si lquipement rcepteur na aucune connaissance a priori de linstant prcis o un paquet peut lui parvenir,
les communications sont isochrones si elles sont synchrones et prsentent un dlai de transit dacheminement fixe,
les communications sont plsiochrones si elles sont asynchrones, mais que le dlai de transit est born et
quune partie du dbit est garantie.
Rsum
Dans cette introduction nous avons prsent quelques notions et concepts de base. Les chapitres suivants seront ddies la prsentation plus dtaille des couches fonctionnelles. Dans les derniers chapitres nous parlerons des grandes familles de rseaux: Ethernet, ATM, DSL,.. Dans la deuxime partie de cet ouvrage (en anglais), nous prsentons les protocoles et la technologie Internet.
14
Rseaux informatiques
CHAPITRE 2
Couche physique
Le rle de la couche physique est de transmettre les valeurs binaires sur le support physique. Cette transmission ncessite un support matriel - cbles et fibres ou support hertzien. Dans le monde des rseaux locaux, certains types de cbles se sont imposs. Il sagit principalement du cble paire torsade non blinde de catgorie 5 (UTP5 - unshielded twisted-pair) et de la fibre optique de silice multimode gradient dindice 62,5/125m (MMF - multi mode fiber). La fibre optique monomode (9-10/125m) est ncessaire pour les dbits avoisinants un gigabit par seconde sur les distances de plusieurs dizaines, voire centaines de kilometres. Les paires torsades sont utilises sur les distances limites (100 m) et permettent de supporter la communication en full-duplex avec un dbit de 155 Mbit/s sur deux paires UTP3 ou de 1000 Mbit/s sur quatre paires UMT5.
FIGURE 13.
Fibres optiques
125 m
65 m 125 m
8-10 m
Rseaux informatiques
15
Couche physique
FIGURE 14.
Un des paramtres les plus importants dans le choix du support est lattnuation. Le tableau ci-dessous montre lattnuation (en dB/100 m) du cble UTP5 sur la distance de 100 m en fonction de la frquence (dbit) utilise.
TABLEAU 1. Attnuation
10 MHz 6,6
FIGURE 15.
100 MHz 22
Remarque: La vitesse de propagation dun signal lectrique sur la paire torsade UMT5 est 0,6 c (180 000 Km/s)
16
Rseaux informatiques
un cablge fdrateur vertical partant du centre informatique vers les locaux techniques dtage, compos de
fibres optiques si les distances entre le centre informatique et les locaux techniques sont suprieures 100 m ou de cbles UTP multi-paires,
des locaux techniques dtage recevant les cbles relis aux prises murales dans les bureaux, un ou deux
cbles de rocades et le matriel actif - concentrateur (hub) ou commutateur
une desserte capillaire horizontale en paire torsade non blinde (UMT5) vers les prises situes moins de
100m du local technique
FIGURE 16.
cables UMT5
cble externe
station-serveur
station-client
Connecteurs
Les cbles vhiculent les signaux qui doivent tre communiqus aux quipements par le biais des connecteurs. Selon le type de cble mtallique, deux sortes de connecteurs sont utiliss: les connecteurs type T (cble coaxial) et les connecteurs type RJ45 pour les paires torsades.
Rseaux informatiques
17
Couche physique
FIGURE 17.
Connecteurs rseau
Connecteur type RJ45 pour le cble huit fils (quatre paires torsades)
FIGURE 18.
18
Rseaux informatiques
Codage physique
Codage physique
Les codes physiques permettent de rduire la bande passante globale du signal et dapporter une capacit de vrification dintgrit du signal la rception. Pour les paires torsades dbit lev de lordre de 100 Mbit/s, nous avons besoin de codes sur plusieurs niveaux. Les codes physiques permettent galement de porter le signal de lhorloge.
FIGURE 19.
1000 bits
1000 bits
Les codes les plus simples sont deux niveaux avec des fronts cals sur le signal horloge. Le choix (-1, 1) permet de produire un signal lctrique quilibr avec une composante continue nulle. Les codes sur deux niveaux peuvent mettre en oeuvre un mode de transfert sur des mots de n bits. Pour le code avec controle dintgrit, plus le mot est long, plus grande est lefficacit du code.
FIGURE 20.
NRZI
temps
temps
Rseaux informatiques
19
Couche physique
TABLEAU 2. Codes
physiques deux niveaux sur un bit prsentation du code le bit 0 : -1, le bit 1: (1); pas de composante constante, ne vhicule pas lhorloge le bit 0 ne change pas de niveau, le bit 1 fait basculer le niveau; permet de se proteger contre les suites de bit 1 intgre une variation de niveau au cours de chaque bit transmis; le bit 0 est cod comme transition 1 vers -1, le bit 1 comme transition -1 vers 1; le code vhicule lhorloge; les bits sans transition sont des violations du code utiliss pour indiquer un vnement spcifique (plus 100 % de la bande passante) les bits intgrent une variation en leur milieu, mais le 1 prsente une continuit par rapport au niveau prcdent, le 0 est un changement; le bit 0 possde deux fronts un au dbut et un au milieu, alors que le bit 1 na quun front au milieu physiques deux niveaux sur un mot prsentation du code 4 bits de donnes sont transmis par un symbole de 5 bits; le code est dfini par une table de codage o les 16 squences de 4 bits de donnes sont mises en correspondance avec les symboles 5 bits. Ces symboles garantissent un front tous les 3 bits au plus et minimisent la composante continue; les 16 codes restants sont employs pour coder des symboles spcifiques; lavantage du code 4B/5B est le contrle dintgrit une bonne exploitation de la bande passante (plus 25%) 8 bits de donnes (1 octet) sont traits la fois; le 256 combiniasons sont codes sur 1024 symboles; le dcodage ncessite des tables de conversion importantes; la redondance de symboles permet dobtenir le contrle dintgrit et un bon quilibre pour la rduction de la composante continue (plus de 25% de bande passante) physiques trois niveaux prsentation du code ce code sur trois niveaux (-1,0,1) fonctionne comme NRZI, change dtat pour la transmission dun 1, reste au mme niveau pour un 0; la bande passante consomme est 50%. ce code convertit un octet en six codes trois niveaux (256 combinaisons sont codes par 729 possibilits); lintgrit du signal est contrle; la bande passante consomme est reduite de 60% par rapport NRZ. rseaux Ethernet 100 Mbit/s - 100BaseTX Ethernet 100BaseT4 rseaux FDDI Ethernet rseaux
nom du code NRZ - NonReturn to Zero NRZ I- NonReturn to Zero Inverted Manchester
Manchester diffrentiel
Token Ring
TABLEAU 3. Codes
8B/10B
Fiber Channel
TABLEAU 4. Codes
20
Rseaux informatiques
FIGURE 21.
0 Manchester
temps
TABLEAU 5. Codes
physiques plusieurs niveaux avec modulation de phase prsentation du code une suite de 6 bits en un couple de bits dnote le quadrant, et les quatre autres bits identifient lune des 16 combinaisons; chaque point de constellation a pour abscisse et ordonne une des quatres valeurs (1,3,5,7) en positif ou ngatif; le dbit de 155 Mbit/s correspond donc 26 Mbauds ce code emploie lmission dimpulsions cinq niveaux (-2,1,0,1,2); dans le cas dEthernet 1Gbit/s ce code est exploit avec un codage treillis quatre tats rseaux ATM 155 Mbit/s sur UTP3
nom du code 64-CAP - Carrierless Amplitude/Phase modulation with 64 constellation points PAM5 - 5 level Pulse Amplitude Modulation
En gnral, pour les codes avec une faible sensibilit aux perturbations, une faible bande passante consomme et une redondance intrinsque, nous avons besoin de traitements plus complexes et plus coteux surtout pour les haut dbits.
Rseaux informatiques
21
Couche physique
Un marqueur peut tre construit partir dun code physique dform ou partir dune suite binaire spcifique appele fanion. Dans le cas dutilisation des fanions, la squence de plus de 5 bits 1 est interdite dans la partie interne de la trame. La technique appele: insertion de zro (bit stuffing) permet de transformer ces squences en squences cinq 1 conscutifs suivies par un zro: 111111 => 1111101. Les bits 0 ajouts lmission sont enlevs la rception.
FIGURE 22.
Rsum
La couche physique est compose du matriel dans lequel circulent les signaux lectriques et/ou optiques. Ses signaux portent linformation binaire. Diffrents codes ont t invents pour augmenter lefficacit et la qualit de transmission au niveau physique. Un groupement de ces codes permettant denvoyer une suite de valeurs binaires est appel trame. Dans le chapitre suivant nous tudierons les principes de communication sur une ligne physique partage. Ces principes et les mcanismes correspondants sont implments par une couche fonctionnelle appele MAC pour Multiple Access Control. La couche MAC t formalise par le biais des standards IEEE 803.X concernant les rseaux locaux type Token Ring, Ethernet, FDDI, et beaucoup dautres.
22
Rseaux informatiques
CHAPITRE 3
Couche MAC
Dans les rseaux locaux traditionnels, un support physique est partag entre plusieurs utilisateurs. Dans cette situation, nous avons besoin de dfinir les rgles daccs au media pour lmission des trames. En principe il y a deux sortes de solutions ce problme: les solutions statiques (e.g. TDMA - Time Division Multiple Access) et les solutions dynamiques. Les solutions statiques sont simples introduire mais souffrent dun rendement trs faible. Prenons comme exemple un rseau quatre postes interconnects par le mme support; le faible rendement de lallocation statique peut tre mise en vidence par une application simple de la thorie des files dattente.
FIGURE 23.
N canaux statiques
1 canal dynamique
N files dattente
1 file dattente
Commenons par le dlai moyen dattente T, pour un canal ayant une capacit C en bits par seconde avec une cadence darrive des trames de M trames par seconde, chaque trame ayant une longueur moyenne L (calcule partir dune probabilit exponentielle). T = 1/(C/L - M) Ce qui nous donne pour les valeurs C= 64 Kbits, M=10, L=4 Kbits: T= 1/(64/4 - 10)= 1/(16-10)= 1/6 s Divisons alors ce canal de manire statique en N canaux, chacun deux ayant ainsi une capacit de C/N bits par seconde et une charge moyenne de M/N trames par seconde. Ce qui nous donne la formule: Tstatique = 1/(C/L*N - M/N)= N/(C/L-M)=T*N
Rseaux informatiques
23
Couche MAC
Prenons comme valeurs C= 64 Kbits, M=10, L=4 Kbits, N=4 Ce qui nous donne: Tstatique= 4/(64/4 - 10)= 4/(16-10)= 4/6 s Conclusion: Pour le multiplexage statique, le dlai moyen dattente T est N fois plus important que si toutes les trames avaient t ordonnes, comme par magie, dans une seule file dattente utilisant globalement le canal unique.
le polling, laccs alatoire, laccs par le passage du jeton, laccs par insertion de registre.
Le polling, ou scrutation, est bas sur une interrogation rgulire et priodique de tous les quipements susceptibles de vouloir mettre. Cette solution est simple mais elle ncessite un gestionnaire central du rseau qui porte la responsabilit du polling. Laccs alatoire et multiple (Multiple Access) est une technique daccs trs simple qui ne prend pas en compte la prsence dautres stations. Cette technique est efficace seulement en cas de faible utilisation du support. Pour accroitre son utilit, elle tait enrichie par linsertion dune surveillance de loccupation du medium (Carrier Sense). Lintroduction de dtection de collision (Collision Detection) a permis daugmenter davantage lefficacit de cette technique daccs. (MACS/CD) Laccs par le passage du jeton (Token Passing) permet de rgir les missions sur un rseau circulaire. La station qui devient le jeton (une trame spciale) a le droit dmettre pendant un laps de temps born. Aprs lmission, le jeton est liber et peut tre rcupr par une station suivante. Le passage du jeton peut tre associ des niveaux de priorit. Linsertion de registre correspond la dfinition de tranches priodiques qui circulent devant les points daccs. Si le registre est libre, une trame de taille fixe peut y tre insre au vol. Cette mthode a lavantage de pouvoir tre dterministe et synchrone, et permet de rserver une bande passante fixe pour les applications isosynchrones.
24
Rseaux informatiques
FIGURE 24.
Techniques dAccs Multiple fixe demande contention Aloha polling jeton CDMA registre CSMA CSMA/CD Aloha-S
TDMA FDMA
La norme IEEE 802.1 dcrit le contexte des normes, traite de larchitecture et dfinit les primitives utilises. La norme IEEE 802.2 concerne la sous-couche suprieure de la couche de liaison de donnes et en particulier le protocole LLC (Logical Link Control). Les normes 802.3, 802.4, et 802.5 dcrivent les trois types de rseaux locaux retenus par lIEEE qui sont respectivement:
802.3 - le CSMA/CD, 802.4 - le protocole bus jeton (Token Bus), 802.5 - le protocole anneau jeton (Token Ring), .. 802.11 - rseaux sans fil.
Chacune des ces normes dfinit la couche physique quelle utilise ainsi que le protocole MAC (Medium Access Control) qui laccompagne.
Adressage MAC
Ladressage du niveau MAC permet didentifier chaque carte interface connecte au rseau. Ces adresses sont utilises dans len-tte de la trame pour prciser le destinataire de linformation mais aussi son metteur. Normalement, une adresse MAC est implmente de faon statique et elle est fige dans une ROM sur la carte adaptateur (Burnt In Address). Chaque carte adaptateur est donc identifie par son adresse MAC.
Rseaux informatiques
25
Couche MAC
Ladressage MAC est uniforme pour les rseaux du standard 802.x. La longueur des adresses MAC est de 6 octets; la premiere partie sur 3 octets (Organizationally Unique Identifier) identifie le numro du constructeur , la deuxime le numero de srie de linterface. Les valeurs des adresses MAC sont prsentes en code hxadcimal, par exemple: 35:d6:12:a1
FIGURE 25.
11..11 - adresse de diffusion sur le rseau I/G : 0 - adresse individuelle 1 - adresse de groupe U/L: 0 - adresse administre globalement 1 - adresse administre localement
token ring
A coute B mission
medium partag
data frame
rception C coute D
26
Rseaux informatiques
Fonctionnement:
le jeton circulant peut tre capt par toute station prte mettre, une fois en possession du jeton, la station peut mettre ses donnes.
Lmission termine, plusieurs cas de figure sont possibles quant au renvoi du jeton:
La station ne rend le jeton que lorsque sa trame est entirement revenue; il y a une seule trame sur le rseau.
La trame est obligatoirement prleve par lmetteur, celui-ci rinsrant le jeton sur lanneau.
La station rend le jeton ds quelle a reu len-tte de sa propre trame; cette approche permet un gain de
temps par rapport la prcdente.
La station rend le jeton immdiatement; dans cette approche on autorise la propagation simultane de plusieurs trames diffrentes. Il ny a toujours quune seule station autorise mettre un instant donn; mais ds quelle a fini, elle redonne le contrle du rseau.
FIGURE 27.
token
token ring
listen node
Exercice: Prenons un ensemble de valeurs - paramtres:
transmit node
longueur physique de lanneau: 500 m dbit binaire: 16 Mbit/s vitesse de propagation: 200 000 Km/s -> 1 Km - 5 s nombre de stations connectes: 24
Rseaux informatiques
27
Couche MAC
SD AC ED 1 1 1 6 Adresse Destination 6 Adresse Source Donnes dlimiteur de fin contrle de trame contrle daccs - dont le bit jeton/trame dlimiteur de dbut
Dans des conditions normales, les premiers octets de la trame sont dj de retour la station mettrice alors quune bonne partie de la trame reste encore mettre. La trame Token Ring est encadre par dlimiteur de dbut et un dlimiteur de fin. Chacun deux contient des squences de lencodage Manchester diffrentiel invalides dnommes HH et LL. Loctet de contrle contient le bit jeton/trame, le bit moniteur (positionn 1 par la station moniteur au moment du premier passage), 3 bits de priorit et 3 bits de rservation de priorit. Loctet statut de la trame contient deux paires de bits positionns par la station destinataire et dnomms:
quelconque
4 Contrle
SD AC FC
ED FS
tat de la trame
28
Rseaux informatiques
FIGURE 29.
transition -0
absence de transition - 1
code invalide HH LL HH LL HH LL HH LL
Quand une station veut transmettre une trame dont le niveau de priorit est n, elle doit attendre le passage dun jeton dont les trois bits affects au niveau de priorit courant expriment un niveau de priorit infrieur n. La station qui veut transmettre une trame prioritaire peut effectuer une rservation en inscrivant le niveau de priorit dans la trame de donnes. Toutefois, si une rservation de rang suprieur au sien a dj t formule elle ne peut exprimer la sienne. Lors de la gnration du nouveau jeton la priorit rserve sera inscrite dans le champ de priorit du jeton.
FIGURE 30.
PPP
RRR
Rseaux informatiques
29
Couche MAC
vrifier la perte du jeton: rgnration du jeton, vrifier la structure du jeton: rgnration du jeton, dtecter une trame orpheline (bit Moniteur): lextraction de la trame, maintenir de la contenance du rseau (24 bits): ajout dune mmoire de correction.
200 mtres si elles sont raccords par du cble tlphonique normal (UMT3), 750 mtres si elles le sont avec du cble blind (STP), 2 km si elles le sont avec des fibres optiques.
FIGURE 31.
adaptateur
MAU
MAU
30
Rseaux informatiques
Fonctionnement
Un port de communication Ethernet est partag entre tous les coupleurs raccords. Le dbit nominal est donc partag selon des besoins dans le temps entre tous les coupleurs raccords. Le protocole daccs dEthernet repose fondamentalement sur laccs alatoire driv du protocole Aloha. Ce mode daccs est totalement autonome, a priori sans connaissance des autres coupleurs relis au rseau. Principe du protocole Aloha En 1970, Norman Abramson et ses collgues de luniversit de Hawa (situ sur lle ALOHA) ont invent une nouvelle mthode permettant de rsoudre le problme de lallocation du droit mettre. Lide de base est applicable tout systme dpourvu dunit de coordination et dont les stations sont en comptition pour utiliser le canal unique quelles doivent se partager. Dans un systme Aloha pur, les trames sont transmises sans aucune rfrence temporelle.
FIGURE 32.
Appelons dure dune trame le temps moyen ncessaire la transmission dune trame. Dure dune trame est dfinie par: longueur dune trame (en bits) / dbit binaire nominal (en bits/seconde). Considrons une population infinie dutilisateurs gnrant des trames selon une distribution de Poisson o S est le nombre moyen de trames par dure dune trame. G reprsente le pourcentage moyen de trames transmises (trames initiales plus trames retransmises). A faible charge, avec S voisin de 0, il y aura trs peu de collisions, donc trs peu de retransmissions, et G sera trs peu diffrent de S. A forte charge, il y aura beaucoup de collisions, et G sera grand par rapport S.
Rseaux informatiques
31
Couche MAC
Quelle que soit la charge, le dbit utile est gal au dbit offert G, multipli par le coefficient de probabilit pour quune trame transmise le soit avec succs P0; il en rsulte que: S= G*P0. Remarque: Une trame passe sans collision si aucune autre trame nest transmise pendant la priode comprise entre son dbut et sa fin dmission.
FIGURE 33.
FIGURE 34.
non
t oui
priode de vulnrabilit = 2t dans un intervalle de 2t seulement une trame peut dbuter lmission
32
Rseaux informatiques
La probabilit pour que k trames soient gnres pendant un temps gal la dure dune trame est donne par la formule de la distribution de Poisson: probabilit = Gk*e-G/k! aussi la probabilit davoir 0 trame est de la forme e-G. Dans un intervalle de dure gale 2 dures de trame, le nombre moyen de trames gnres est gal 2G. La probabilit quaucun trafic supplmentaire ne soit gnr pendant la totalit de cette priode de vulnrabilit est donne par P0=e-2G. En posant S=G*P0 nous obtenons: S=G*e-2G La relation entre le trafic offert (charge) et le trafic effectivement achemin est reprsente ci-dessous. Le trafic maximum est obtenu pour G=0.5 avec Smax=1(2e) dont la valeur environ 0,184 (18%). Lintroduction des intervalles rptitifs de dure constante permet de doubler la capacit de transmission Smax=1/e. Comme on peut le voir sur la figure ci-dessus lAloha discrtis prsente un maximum pour G=1, avec un trafic coul de Smax=1/e.
FIGURE 35.
oui t
oui
priode de vulnrabilit = t
Dans cette mthode, qui est devenue le slotted Aloha ou Aloha discrtise, une station doit attendre le dbut dun intervalle de temps pour commencer mettre. La priode de vulnrabilit est limite la dure dune trame; ce qui nous conduit : S=G*e-G
Rseaux informatiques
33
Couche MAC
FIGURE 36.
S - efficacit (charge utile) 0,4 S = G*e-G 0,2 S = G*e-2*G 0,0 0 0,5 1,0 1,5 2,0 G - charge totale
Pour prendre conscience de la rapidit de la croissance des collisions lorsque G augmente, remarquons que la probabilit quune trame vite la collision est gale e-G; cest en fait la probabilit que les autres stations ne transmettent pas pendant la priode dmission de notre trame. La probabilit quil y ait une collision est gale 1-e-G. La probabilit pour que la transmission ncessite exactement k tentatives, cest--dire k-1 collisions suivies dune transmission russie, est: Pk= e-G*(1-e-G)k-1 Le nombre de transmissions E, pour chaque tentative dmission, est alors: E = k*Pk= k*e-G*(1-e-G)k-1=eG Exemple: Slotted Aloha avec G=1 pour le trafic maximal, E= eG= e1= e = 2,7.. La dpendance exponentielle de E par rapport G est telle que de faibles accroissements de la charge du canal rduisent normment ses performances.
34
Rseaux informatiques
Le dlai de propagation a une incidence importante sur les performances de ce protocole. Ils est possible quimmdiatement aprs quune station a commenc mettre, une autre station en coute du canal soit prte mettre sa trame.
Rseaux informatiques
35
Couche MAC
0,5 - persistant
La figure ci-dessous reprsente pour chacun de protocoles Aloha/CSMA, le dbit utile par rapport au trafic offert.
FIGURE 40.
CSMA 0,001-persistant
0,4 0,2
0,0 0
36
Rseaux informatiques
Protocole CSMA/CD
Les protocoles CSMA permettent damliorer le rendement du protocole ALOHA car ils apportent la certitude que les stations se garderont dmettre si elles constatent quune autre station est en train dmettre. Une autre amlioration consiste introduire un mcanisme permettant, en cas de collision, darrter immdiatement la suite de transmission dune trame. En dautres termes, les stations mettrices voyant que la trame entre en collision cessent dmettre. Elles vont recommencer la transmission (si le support est libre) aprs une dure alatoire. Lapplication du protocole CSMA/CD implique une succession de priodes de transmission et de dtection de collision entrecoupes de priodes de transmission.
FIGURE 41.
trame
trame
trame
temps
Rseaux informatiques
37
Couche MAC
Pour un cble coaxial mesurant 1 kilomtre, le temps de propagation est de lordre de 5 s. Il en rsulte que pour une ligne de L km le temps maximum ncessaire pour dtecter une collision est: Tcol/max= 2* L * 5s Si nous utilisons un support dbitant D bits par seconde, la longueur minimale dune trame F pour que la collision puisse tre dtecte est: F = D*Tcol/max Exemple: L = 2 km, D = 5 Mbit/s F = 5 Mbit/s * 2* 2 km * 5 s = 100 bits
38
Rseaux informatiques
le coupleur - (NIC - Network Interface Card) est une interface presque toujours dote dun simple port
RJ45, linterface coupleur est exploite par un driver logiciel; le driver fait la liaison entre le systme informatique et le transfert des octets en sortie et en entre,
le rpteur - permet dtendre le rseau au-del dun seul segment. Il recopie les signaux amplifis entre
deux (ou plus) points de connexion simulant le comportement dun bus. Etant le centre dune topologie toile dans le cas de 10Base-T, ils sont appels hubs (moyeux).
FIGURE 43.
Rseaux informatiques
39
Couche MAC
FIGURE 44.
4000 m - 10 Mbit/s
AD
AS
table de routage
FIGURE 45.
40
Rseaux informatiques
FIGURE 46.
concentrateur HUB
vers un commutateur
FIGURE 47.
Fonctionnement
Chaque trame ETHERNET dbute par une amorce, prambule de 7 octets, chacun deux contenant 10101010. Aprs lencodage en code Manchester direct, cette amorce fournit une onde rectangulaire dune frquence de 10 MHz permettant de synchroniser la rception des bits. Loctet suivant contient le marqueur de dbut 10101011 de trame. Chaque trame contient deux adresses physiques - ladresse destination et ladresse source, un compteur/identificateur, le champ de donnes et une somme de contrle.
Rseaux informatiques
41
Couche MAC
FIGURE 48.
7 +1 Prambule
6 Adresse Destination
6 Adresse Source
4 Contrle
Le champ suivant contient le compteur/identificateur du champs de donnes. Depuis peu, ce champ est exploit comme indicateur du protocole port par la trame (e.g. protocole IP). La taille des donnes est exprime en octets et comprise entre 0 et 1500. Le champ Pad sert complter la taille dune trame 72 (64) octets minimum. Le protocole MAC de lETHERNET est du type CSMA/CD. Dans ce protocole, toute station dtectant une collision des trames arrte immdiatement sa transmission et gnre une squence de brouillage pour avertir les autres stations et attend pendant un temps alatoire avant de recommencer la nouvelle mission.
FIGURE 49.
4000 m
2*4,0 Km * 5ms/Km + trpteurs => 51,2 ms les rpteurs augmentent le temps de propagation 51,2 ms * 10 Mbit/s = 512 bits
Aprs une collision, le temps qui scoule est divis en intervalles de temps dont la dure est gale au temps aller-retour entre deux stations loignes le plus, cest--dire 4 Km. La gestion des collisions Un intervalle de temps ou time slot ETHERNET est de 51,2 s. Une collision entre deux trames ETHERNET peut tre dtecte coup sr pendant ce temps. Aprs la premire collision, chaque station attend 0 ou 1 intervalle de temps pour mettre. Aprs la deuxime collision, elle attendra de 0 3 intervalles. En gnral, aprs i
42
Rseaux informatiques
collisions elle attendra 2i-1 intervalles de temps, avec un maximum de 1023 intervalles. Aprs la seizime collision conscutive, le coupleur de rseau cesse dmettre et signale la situation la station de travail.
FIGURE 50.
collision
51,2 s
temps
Diffrentes versions de la couche physique Ethernet
Pour rpondre aux besoins varis en termes de dbit, de longueur et de nombre de stations raccordes, la norme 802.3 offre trois versions de communication en bande de base et une en bande large : 10BASE5, 10BASE2, 10BASE-T, 100BASE-T, 100BASE-T4, 100BASE-TX, 1000BASE-T, .. Les noms des versions se lisent comme suit: <dbit><type_de_medium><longueur_max_de_segment> Le dbit est exprim en Mbit/s. Le type dsigne soit un mdium en bande de base, soit un mdium en large bande.
TABLEAU 6. Diffrentes
versions de la couche physique Ethernet 10BASE-T paire torsade Manchester 10 Manchester (4B/ 5B) 100 100BASE-T 1000BASE-T paire torsade m-phase (NRZ) 1000
Rseaux informatiques
43
Couche MAC
TABLEAU 6. Diffrentes
versions de la couche physique Ethernet 10BASE-T 100 200 paire torsade UTP 3/4 paire torsade UTP 3/4/5 100BASE-T 1000BASE-T 1800 3600 inconnu
PARAMETRE longueur maximum de segment tendue max. du rseau en metres diamtre du cable en millimetres
GigaEthernet
La volont de pouvoir constituer des rseaux fonctionnant en mode half-duplex sur un bus logique impose lEthernet sur 1Gbit/s des contraintes trs fortes. En multipliant le dbit par 10 (100 => 1000 Mbit/s) on divise le temps dmission dune trame par 10. En consquence, une trame de 64 octets est mise en 0,51 s. Le temps de propagation aller-retour devient trop court car il correspond 40 m. La solution consiste modifier la taille minimale du slot-time, en la faisant passer de 512 bits 512 octets. Il en rsulte quun rseau partag constitu dun lien en fibre optique peut atteindre 316 m. Le code physique employ en technologie 1000BASE-X est de type 8B/10B. Une horloge dmission des octets est cadence 125 MHz. Le cblage est effectu en fibre optique multi-mode, en paire torsade blinde (STP) ou en quatre paire torsades (UTP5). La longueur dun segment est limite 25 m pour la solution STP et 100 m pour les paires UTP5.
44
Rseaux informatiques
diffrent de 5,4. Si la dure moyenne de transmission dune trame est de P secondes, lefficacit E du canal est: E=P/(P+2/A) Il est instructif de rformuler la dernire quation en fonction de la longueur des trames F, du dbit nominal B, de la longueur du cble L, et de la vitesse de propagation des signaux V. Pour le cas optimum o e intervalles de temps sparent deux trames transmises, avec P=F/B nous obtenons: E = 1/(1+2*B*L*e/V*F) Lorsque le deuxime terme du numrateur est grand, lefficacit du protocole est faible. Afin damliorer les performances, il faudrait augmenter la longueur de la trame (F), ou diminuer la longueur du cble (L) ou le dbit (B). Malheureusement, la plupart des extensions du rseau Ethernet conduisent augmenter la valeur du produit B*L.
Rseaux informatiques
45
Couche MAC
le prix peu lev - les processeurs RISC sont disponibles sur le march grande chelle, le traitement complet incluant lanalyse des adresses - les fonctions des routeurs peuvent tre facilement
intgres,
segments Ethernet
Architectures Store-and-Forward et Cut-through Il y a deux types darchitectures de commutation importants pour les rseaux Ethernet:
46
Rseaux informatiques
Remarque: Les commutateurs qui lient des rseaux Ethernet aux dbits diffrents (e.g. 10 Mbit/s et 100 Mbit/ s) fonctionnent toujours en mode store-and-forward.
Performance de commutation
Dbit Le dbit global interne du commutateur doit tre gal ou suprieur la somme des dbits sur lensemble des liens dentre. Dans le cas dun commutateur 10BASE-T N ports, ce dbit doit tre suprieur N/2*10 Mbit/s en termes de bits et 14 880 pps (packets per second) en termes de paquets. Congestion et Latence Plusieurs flux de paquets/trames envoys sur le mme port de sortie peuvent provoquer une congestion. Afin dviter ce type de problmes, les architectures de commutations intgrent les mcanismes de stockage (tampons FIFO) et utilisent les schmas de priorit. Parfois, on utilise la technique de back pressure pour informer les metteurs du problme de congestion. Par exemple, le commutateur peut mettre en tat actif son propre metteur sur le port congestionn.
FIGURE 52.
segments Ethernet
back-pressure
ports
Rseaux informatiques
47
Couche MAC
le dbit - le protocole daccs doit tre efficace pour maximiser lutilisation de la capacit de transmission
dun canal hertzien,
la couverture - le diamtre dune zone desservie par un WLAN doit tre de lordre de 100 300 m, le nombre de noeuds - un WLAN doit supporter plusieurs dizaines de noeuds, connexion au backbone - un rseau WLAN doit tre connect une magistrale de communication (backbone)
la qualit et la scurit - le protocole daccs du WLAN doit tre robuste et fiable, la configuration dynamique - la gestion des adresses MAC doit tre dynamique et automatique.
La technologie la plus usuelle pour le dploiement des rseaux WLAN est base sur le spectre tal (spread spectrum).
encodeur du canal FSK ou BPSK gnrateur du code pseudoalatoire modulateur et spreader dmodulateur et despreader
Le signal originel est port par une bande de frquences relativement limite autour dune frquence centrale. Ce signal est ensuite modul moyennant une squence de valeurs pseudo-alatoires. Le rsultat de la modulation est un signal tal (spread) sur la totalit de la bande passante disponible.
48
Rseaux informatiques
A la rception, la mme squence pseudo-alatoire est applique pour dmoduler le signal originel. Lalgorithme qui gnre la squence pseudo-alatoire est bas sur une valeur initiale appele seed (graine). Seulement les postes qui connaissent le seed et lalgorithme de modulation peuvent couter le signal mis par leur(s) correspondant(s). Saut de frquence Pour la transmission des donnes binaires on utilise un modulateur avec un schma dencodage type FSK (frequency-shift keying) ou BPSK (binary phase-shift keying). Le signal rsultant est centr (dplac) sur une frquence de base slctionne par le gnrateur de nombres pseudo-alatoires. Par exemple, dans le cas de la modulation FSK, le modulateur slectionne la frquence f0 pour la valeur 0 et la frquence f1 pour la valeur 1. Ensuite la frquence f0 ou f1 est augmente par une frquence dtermine par le gnrateur des valeurs alatoires linstant (bit) donn - fi. Nous obtenons ainsi deux frquences qui peuvent tre mises: f0+fi pour le bit 0 et f1+fi pour le bit 1.
FIGURE 54.
1 bit
Squence directe Dans ce schma, chaque bit du signal originel correspondent plusieurs bits de transmission, ces bits portent le nom de chipping code (chips). Le chipping code tale le signal sur une bande de frquence plus large, en proportion directe au nombre de bits dans le chipping code. Un chipping code 10 bits tale le signal sur une bande de frquences 10 fois plus importante quun chipping code 1 bit. Une des techniques pour la squence directe est de combiner linformation binaire avec une squence binaire pseudo-alatoire moyennant loprateur exclusif-OU. La prsence dun 1 inverse la squence binaire, tandis quun 0 provoque la transmission directe de la squence pseuo-alatoire. Dans lexemple ci-dessous, les squences pseudo-alatoires sont composes de quatre bits. Le dbit binaire aprs la modulation est donc quatre fois plus important que le dbit initial.
Rseaux informatiques
49
Couche MAC
FIGURE 55.
1 1 0 0 1 0 1 1 0 0 0 1 1
0 1 1 0 0 1 0 0 1
1 0 1 1 0 0 1 1 0
1 0 1 0 1
1 0 1
1 0
0 1
0 0
1 1 0
1 1
0 0
0 1
1 0 1
1 0
0 1
1 0
0 1 1
1 0
1 0
Dans les implmentations typiques, les donnes et les squences aleatoires sont combines aprs la conversion en signal analogique.
Configurations de WLAN
Les WLANs bass sur la technique du spectre tal sont organiss sous la forme de cellules. Les cellules adjacentes utilisent diffrentes frquences centrales. A lintrieur dune cellule, la topologie est du type gal--gal ou du type station-hub. Le hub peut tre install au plafond de la pice et connect au backbone.
FIGURE 56.
50
Rseaux informatiques
Le hub peut galement fonctionner comme un rpteur multiport dans les rseaux 10/100BASE-T. Les rseaux spread-spectrum fonctionnent sur diffrentes frquences. Parmi les frquences qui peuvent tre utilises sans une licence pralable on trouve les frquences dans la bande 2,4 GHz (la mme que celle utilise pour les fours micro-ondes). Sur cette bande de frquences les quipements rseau peuvent communiquer avec un dbit binaire maximal de lordre de 5 Mbit/s.
lassociation - dtermine lidentit et ladresse dune station sur WLAN, cette identification tablit lassociation entre le point daccs (e.g. station de base) et la station lintrieur du BSS (basic service set); la station de base peut communiquer cette information aux autres stations de base dans ESS (extended service set),
la rassociation - effectue le transfert dune association vers un autre point daccs (station de base), permettant la station mobile de se dplacer entre BSS,
la disassociation - annulation dune association avant larrt de travail, lauthentification - ce service permet didentifier une station (mot de passe), la scurit - ce service prvoit lencryptage des messages.
Couche physique Le standard 802.11 prvoit lutilisation du spectre tal dans la bande 2,4 GHz avec deux versions possibles, celle du saut de frquence et celle du squencement direct. Couche MAC Le protocole retenu pour la couche MAC est nomm DFWMAC (distributed foundation wireless MAC). Ce protocole prvoit un mcanisme de contrle distribu de type Ethernet avec une option du contrle centralis. La sous-couche basse du protocole MAC sappelle DFC (distributed coordination function); la couche suprieure porte le nom de PCF (point coordination function). La couche DCF nintgre pas le mcanisme de dtection de collision ! Le DCF gre un ensemble de retards permettant de construire un schma de priorit. Prenons au dbut un seul retard (dlai) dnot comme IFS (interframe space); moyennant IFS, les rgles du CSMA sont les suivantes:
la station qui veut transmettre une trame teste le support, si le support est libre, elle attend le temps de IFS; si pendant cet intervalle le support est toujours libre, elle
commence mettre,
si le support est occup, la station diffre lmission et continue scruter le support, ds que le support est libr, la station attend un temps de IFS; si le support est toujours libre, la station utilise le protocole de back-off (attente alatoire contrle), puis elle scrute le medium, sil est toujours libre elle commence mettre.
Rseaux informatiques
51
Couche MAC
Notons que le mcanisme de back-off est le mme que celui utilis dans lEthernet. Il permet dviter le blocage du rseau par une charge importante. Le simple schma ci-dessus doit tre complt par lintroduction des nouvelles valeurs pour IFS:
SIFS (short IFS) - utilis pour les rponses immdiates, PIFS (point coordination IFS) - utilis par le contrleur central dans le schma PCF pour envoyer les requtes de scrutation,
DIFS (distributed coordination function) - le plus long ISF utilis comme dlai minimum pour les trames
asynchrones demandant laccs au support. La figure ci-dessous montre lutilisation de ces valeurs. Une station qui utilise SIFS obtient laccs de la faon prioritaire. Le SIFS peut tre utilis dans les cas suivants:
lacquittement (ACK) - quand une station reoit une trame slective elle rpond aprs avoir attendu un laps
de SIFS; ce mcanisme, en labsence de dtection de collisions, permet de confirmer une rception correcte; il permet galement dimplmenter facilement le protocole de lien (LLC),
clear-to-send - une station peut entamer une communication par lenvoi dune courte trame RTS (request to
send); le destinataire de cette trame doit rpondre immdiatement par une trame CTS (clear to send); toutes les stations qui reoivent la trame RTS doivent diffrer leurs missions,
fentre de contention
fentre de back-off
trame
accs diffr
La fonction PCF est implmente au-dessus de la fonction DCF. Le rle de PCF est de coordonner les fonctions de la base par le biais de la scrutation (polling). PCF exploite le dlai PIPS pour lenvoi des requtes de scrutation. Etant donn que le PIFS est plus court que DIFS, la station de base peut accaparer le support et bloquer le trafic asynchrone pendant lenvoi des polls et la rception de rponses. Lutilisation prolonge des PIFS, due par exemple une panne de la station scrute, peut provoquer le blocage du rseau. Afin dviter ce type de blocage, le standard prvoit un intervalle dfini par la super-trame (superframe). Aprs lcoulement de la priode correspondant la super-trame, la station de base permet le trafic asynchrone bas sur la contention.
52
Rseaux informatiques
Rsum
FIGURE 58.
Rsum
La couche fonctionnelle MAC joue un rle essentiel dans la conception et dans limplmentation des rseaux locaux filaires et hertziens. La principale technologie dveloppe est celle base sur laccs alatoire, la technologie qui mne aux rseaux de type Ethernet. Les rseaux Ethernet permettent dobtenir un large spectre de solutions allant dun simple rseau 10 Mbit/s jusquaux configurations complexes intgrant les segments 10, 100 voir 1000 Mbit/s. Ces rseaux complexes ncessitent lutilisation des rpteurs, hubs, et des commutateurs. Depuis peu on voit lapparition des rseaux locaux sans fil (WLAN) bass sur la norme IEEE 802.11. Les rseaux WLAN peuvent jouer un rle trs important car ils permettent plus de mobilit aux utilisateurs et simplifient linstallation du rseau.
Rseaux informatiques
53
Couche MAC
54
Rseaux informatiques
La notion de trame
CHAPITRE 4
Couche liaison
Les protocoles de la couche de liaison de donnes permettent deux stations ou noeuds de communication de communiquer de faon fiable sur un lien physique. Le rle des protocoles de lien est dassurer la fiabilit de communication sur les liens dont le dbit binaire est limit, le dlai de propagation non nul, et des erreurs de transmission peuvant survenir... Ces facteurs, auxquels sajoute le temps de traitement, et qui influent fortement sur le transfert de donnes, sont pris en compte dans llaboration des protocoles.
FIGURE 59.
couche rseau
couche rseau
couche liaison
couche liaison
couche physique
couche physique
La notion de trame
La couche physique assure le transport de trains de bits sur le support dploy entre deux stations ou noeuds de communication. Ces trains de bits peuvent comporter des erreurs. La couche liaison doit dtecter ces erreurs et les corriger si ncessaire. A cette fin, la couche liaison dcoupe le train de bits en trames et calcule une somme de contrle derreurs pour chaque trame.
Rseaux informatiques
55
Couche liaison
Le dcoupage en trames peut tre effectu selon trois techniques qui impliquant:
lutilisation des caractres de dbut et de fin de trame avec caractres de transparence, lutilisation des fanions binaires de dbut et de fin de trame avec des bits de transparence, la violation du codage physique. Trame de caractres
La premire technique exploite les caractres de contrle pour dlimiter une trame. Les squences de caractres DLE STX (Data Link Escape, Start of TeXt) et DLE ETX (Data Link Escape, End of TeXt) sont places respectivement en dbut et en fin de trame.
FIGURE 60.
DLE DLE
DLE
DLE
ETX
donnes envoyes par couche rseau (a), ajout des caractres de transparence (b), donnes remises la couche rseau de la station destination (c).
Lorsque dans les donnes transmettre apparaissent les squences DLE STX et DLE STX, le transmetteur ajoute un autre caractre DLE devant tout le caractre DLE. La couche liaison du rcepteur enlve les caractres DLE ajouts par lmetteur.
Trame binaire
Les trames binaires permettent de contenir un nombre arbitraire de bits et autorisent lutilisation de codages dans lesquels chaque caractre est reprsent par un nombre arbitraire de bits. Chaque trame commence par une squence particulire de bits 01111110 appele fanion (en hxadcimal 7E). Lorsque la couche liaison dtecte cinq 1 conscutifs dans les donnes transmettre, elle ajoute leur suite un bit 0 avant denvoyer le train de bits sur la ligne. Quand le rcepteur reoit cinq bits 1 conscutifs suivis dun 0, il enlve automatiquement ce dernier.
56
Rseaux informatiques
FIGURE 61.
transition 0
absence de transition 1
HH
LL
HH
LL
HH
LL
HH
LL
Rseaux informatiques
57
Couche liaison
Le bruit impulsif est un autre phnomne non ngligeable. Il provoque des impulsions parasitaires avec des priodes de 1 ms. Par exemple, sur une ligne 48 Kbit/s, elles causent la perte de 48 bits.
FIGURE 63.
1 ms
dbit 48 Kbit/s
Une autre source physique derreurs est due la diffrence de la vitesse de propagation de signaux frquences diffrentes. Dautres erreurs, telles que la perte dune trame, peuvent tre impliqus par les limites structurelles des architectures de rseaux. En gnral toutes ces intrusions ont tendance crer des paquets derreurs plutt que des erreurs simples.
la correction consiste inclure dans les blocs de donnes suffisamment de redondances pour que le rcepteur puisse restituer les donnes originales partir des donnes reues,
la dtection/retransmission consiste ajouter juste assez de redondances dans les donnes transmettre
afin que le rcepteur puisse dtecter les erreurs sans pouvoir les corriger.
FIGURE 64.
metteur
58
Rseaux informatiques
FIGURE 65.
time-out
trame correcte
Les codes correcteurs
Afin de pouvoir corriger les erreurs, il est ncessaire de connatre la dfinition exacte dune erreur. Supposons quune trame est forme de m bits de donnes et de r bits de contrle. Si lon note n la longueur de la trame (n=m+r), lensemble de n bits sera appel mot de code. Etant donn deux mots de code, il est possible de dterminer de combien de bits ils diffrent. Exemple: 1 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 Pour cet exemple le nombre de diffrences appel distance de Hamming est gal 4. Dans un mot de code il est possible dutiliser 2m combinaisons des bits de donnes mais seule une partie des 2n combinaisons est autorise (2m<2n). Cela est d la faon dont sont calculs les bits de contrle. Il est possible dobtenir la liste de tous les mots de code afin de retrouver la distance minimale entre deux mots du code autoris. Pour dtecter d erreurs, il faut que le code ait une distance de Hamming de d+1. En effet il est impossible que d erreurs changent un mot de code en un autre mot de code autoris. Le code de parit constitue un exemple simple de code dtecteur. Ce code a une distance de 2, donc toute erreur simple produit un mot non autoris. Pour corriger d erreurs, il faut que le code ait une distance de Hamming de 2*d+1.
FIGURE 66.
Rseaux informatiques
59
Couche liaison
Dans ce cas, la distance entre chaque mot de code est telle que, mme si d erreurs simples se produisent, le mot de code original reste plus proche du mot transmis: on peut donc le retrouver.
FIGURE 67.
distance 5
Le code distance 5 peut corriger les erreurs doubles: 0000011000, 1110000000, 1111001111,..
Supposons que nous voulions construire un code qui permette de corriger les erreurs simples, avec m bits de donnes et r bits de contrle. Pour chacun de 2m des mots codes possibles, il existe n mots de code non-autoriss situs une unit du mot de code autoris. Ils sont obtenus partir du mot de code autoris en inversant un de ses n bits. A chacune des 2m combinaisons de bits de donnes possibles, on associe n+1 mots de n bits. Comme le nombre total de mots de n bits est 2n, la relation suivante doit tre vrifie: (n+1)*2m < 2n En utilisant lgalit n=m+r, lingalit devient: (m+r+1)<2r Connaissant m, cette ingalit permet de dterminer le nombre minimal de bits de contrle ncessaire pour que toutes les erreurs simples soient corriges. Question: Combien de bits de contrle (r) faut-il ajouter un mot de donnes de 10 bits pour pouvoir corriger une erreur simple? Rponse: (10 + r + 1) < 2r => r= 4
60
Rseaux informatiques
Exemple: Prenons comme exemple un canal avec des erreurs simples et un taux derreurs de 10-6. Considrons des blocs de donnes de 1000 bits. Si lon dsire corriger les erreurs simples, il faut ajouter 10 bits de contrle par bloc (1010 bit/bloc). Pour un mgabit de donnes, on aura 10 000 bits de contrle. Pour dtecter simplement un mauvais bloc, il suffit davoir un bit de parit (1001 bit/bloc). Avec la mthode de dtection et retransmission le nombre de bits supplmentaires est seulement 2001 (1000*1 + 1001), alors quil en faut 10 000 avec un code de correction. Bien que les bits de parit puissent tre exploits pour la dtection des erreurs multiples, en pratique on utilise les codes polynmiaux, appels aussi codes CRC (Cyclic Redundancy Code). Dans les codes CRC, on considre que les bits dune chane de caractres sont les coefficients dun polynme. Ces coefficients ne prennent que deux valeurs: 0 ou 1. Un bloc de m bits est vu comme une srie de coefficients dun polynme comprenant m termes allant de xm-1 x0 . Un tel polynme est dit de degr m-1. Par exemple, la chane 10101 comprend 5 bits: elle est reprsente par un polynme de 5 termes dont les coefficients sont 1,0,1,0 et 1: x4+x2+x0. Etant donn que larithmtique polynmiale est faite modulo 2, les oprations daddition/soustraction donnent le mme rsultat. Notons galement que larithmtique modulo 2 ne prend pas en compte les retenues. Exemple:
Pour utiliser un code polynmial, lmetteur et le rcepteur doivent se mettre daccord sur le choix dun polynme gnrateur G(x). Le gnrateur doit avoir son bit de poids fort et son bit de poids faible gaux 1. Pour calculer la somme de contrle dun bloc de m bits, il faut quil soit plus long que le polynme gnrateur. Lide de base consiste coller, la fin du bloc, des bits de contrle de faon que la trame (bloc+bits de contrle) soit divisible par G(x). Quand le rcepteur reoit la trame, il la divise par G(x). Si le reste est non nul, une erreur de transmission a eu lieu.
FIGURE 68.
contrle
donnes
reste
/G(x)
=0 (trame correcte)
Rseaux informatiques
61
Couche liaison
Exemple (dcimal):
donne - 53 gnrateur - 7
530: 7 75 - le quotient 49 40 35 5 complment de 7 est 2 ; donc la valeur gnrer est 532
FIGURE 69.
contrle
53
/7
=0 (trame correcte)
Exemple (binaire): trame: 1101011011, gnrateur: 10011;aprs ajout de 4 bits 0: 11010110110000 11010110110000 10011 10011 10011 00001 00000 00010 00000 00101 00000 01011 00000 10110 10011 01010 00000 10100 10011 01110 00000 1110 Trame mise:
- le reste
11010110111110
62
Rseaux informatiques
les opration de transfert entre couches (flches), les vnements grer par protocoles, le format dune trame envoye sur ligne.
FIGURE 70.
paquet
paquet
Rseaux informatiques
63
Couche liaison
paquet
trame tampon infini canal physique vnement * error free * trame arrive
-- receiver loop wait on frame_arrived From_Phys_L(frame); packet<=frame.info; To_Net_L(packet); end loop; -- until doomsday
Dans le protocole 1, on ne transmet les donnes que dans un sens. Les couches rseau ct metteur et rcepteur sont toujours prtes respectivement mettre et recevoir des paquets. On ignore le temps de calcul. Le rcepteur dispose dautant de mmoires tampon que ncessaire. Le canal physique est parfait: aucune trame nest errone ni perdue.
64
Rseaux informatiques
FIGURE 72.
paquet
trame
trame "dummy"
* trame "dummy" arrive -- sender loop From_Net_L(packet); frame.info<=packet; To_Phys_L(frame); wait on dummy_frame; end loop; -- until doomsday
canal physique vnement * error free * trame arrive -- receiver loop wait on frame From_Phys_L(frame); packet<=frame.info; To_Phys_L(dummy_frame); To_Net_L(packet); end loop; -- until doomsday
1 1
0 0 trame duplique
1 0
0 1
Rseaux informatiques
65
Couche liaison
FIGURE 74.
paquet
trame
trame dacquittement
canal physique vnement * error prone * trame correcte arrive * trame errone arrive (CRC)
FIGURE 75.
-- sender SeqNum<=0; From_Net_L(packet); loop frame.info<=packet; frame.sn<= SeqNum; To_Phys_L(frame); Start_T(frame.sn); wait on any_event; if any_event=ack_frame then From_Net_L(packet); SeqNum<=SeqNum+1; endif; end loop; -- until doomsday
-- receiver SeqExp<=0; loop wait on any_event; if any_event=correct_frame then From_Phys_L(frame); if SeqExp=frame.sn then To_Net_L(frame.info); SeqExp<=SeqExp+1; endif; To_Phys_L(ack_frame); endif; end loop; -- until doomsday
66
Rseaux informatiques
duplex. Dans ce modle, lorsquune trame de donnes arrive, le rcepteur nenvoie plus de trame dacquittement spare, mais attend que la couche rseau lui transmette le paquet suivant. Lacquittement est joint la trame de donnes (en utilisant le champ ack de la trame).
FIGURE 76.
Cette technique retarde lgrement lenvoi dun acquittement afin dattendre la trame de donnes suivante; elle est connue sous le nom de piggybacking.
FIGURE 77.
paquet
trame
trame donne+ack
canal physique vnement * time-out * error prone * trame correcte arrive * time-out * trame errone arrive (CRC) * trame correcte arrive * trame errone arrive (CRC)
Rseaux informatiques
67
Couche liaison
FIGURE 78.
-- sender/receiver SeqNum<=0; SeqExp<=0; From_Net_L(packet); frame.info<=packet; frame.sn<= SeqNum; frame.an<= SeqExp+1; To_Phys_L(frame); Start_T(frame.sn); loop wait on any_event; if any_event=correct_frame then From_Phys_L(frame); if SeqNum=frame.sn then To_Net_L(frame.info); SeqExp<=SeqExp+1; endif;
Protocoles fentre danticipation de largeur n
if any_event=ack.frame then From_Net_L(packet); SeqNum<=SeqNum+1; endif; frame.info<=packet; frame.sn<= SeqNum; frame.an<= SeqExp+1; To_Phys_L(frame); Start_T(frame.sn); end loop; -- until doomsday
Avant dtudier les protocoles fentres danticipation, considrons lexemple dun canal satellite 50 Kbit/s avec un dlai de propagation aller-retour de 500 ms. Essayons dimaginer ce que pourrait donner lemploi du protocole 4 avec des trames de 1000 bits:
au temps t=0, lmetteur commence envoyer la premire trame, t=20 ms, la trame est compltement mise; la trame parvient au rcepteur t = 270 ms (250+20) et
lacquittement est reu au mieux par lmetteur t = 520 ms.
FIGURE 79.
20 ms
68
Rseaux informatiques
Cela signifie que lmetteur reste bloqu pendant 500 ms /520 ms, soit 96% du temps; la bande passante est utilise 4%. Pour rsoudre ce problme, nous allons autoriser lmetteur envoyer w trames sans attendre un acquittement. Avec une valeur w approprie, lmetteur pourra mettre de faon continue pendant un temps gal aller-retour (500 ms). Dans le cas de lexemple ci-dessus, w devrait tre gal au moins 26. Notez qu chaque instant, il existe 25 ou 26 trames non acquittes.
FIGURE 80.
Cette technique est connue sous le nom de pipelining. Si la capacit du canal est de B bit/s, la taille de trames L bits et le temps aller-retour de R secondes, il faut L/B secondes pour transmettre une trame. Dans le protocole envoyer et attendre, la ligne est occupe pendant L/B secondes et non utilise pendant R secondes, ce qui donne le taux dutilisation de L/(L+B*R). Problme: Que se passe t-il si une trame, situe au milieu de la srie de trames envoyes, est errone ou perdue? Quand la trame errone arrive, le rcepteur nen tient pas compte. Mais que doit-il faire des autres trames correctes qui arrivent ensuite? Deux techniques sont possibles pour rsoudre ce problme:
le rejet de toutes les trames qui suivent la trame errone, cette technique correspond un rcepteur ayant un
tampon - fentre de taille 1,
la rception et le stockage de toutes les trames correctes arrives aprs la trame errone dans un tampon de
taille w.
Rseaux informatiques
69
Couche liaison
FIGURE 81.
FIGURE 82.
0 1 2 3 4 5 6 1 2 3 7 AN=6 2 3 4 5 6 AN=0
1 discarded discarded 7
70
Rseaux informatiques
Performances
Performances
Le modle sur la figure ci-dessous permet dintroduire quelques paramtres essentiels pour lanalyse des performances. Dans cette analyse nous valuons le taux dutilisation de la capacit de transmission.
Protocole simple
Pour le protocole simple sur un canal fiable la performance (ou plus prcisment le taux dutilisation de la capacit de transmission) peut tre exprime par: U = D/H+D = D/F o: U - le taux dutilisation (<100%), D - le nombre de bits de donnes par trame, H - le nombre de bits dun entte de trame, F - (D+H) la longueur totale de la trame.
FIGURE 83.
couche rseau
metteur
rcepteur
couche rseau
A C F H D F = H+D I D - nombre de bits - donne H - nombre de bits - en-tte C - dbit du canal en bits/s A - nombre de bits -acquittement I - temps de traitement + propagation
prenons comme origine de laxe des temps le moment o lmetteur commence envoyer une trame, linstant (F/C + I), le dernier bit de la trame de donnes est parvenu au rcepteur, il est prt envoyer la
trame dacquittement,
Rseaux informatiques
71
Couche liaison
linstant (F/C + I + A/C + I), lmetteur a trait la trame de lacquittement et est prt envoyer la prochaine trame de donnes,
pour calculer la bande passante, ou la capacit de transmission prise pendant cette change, il faut multiplier (F/C + A/C + 2*I) (le temps dutilisation) par C - le dbit du canal, soit F+A + 2*C*I,
72
Rseaux informatiques
Performances
Exemple: Une ligne de 100 Km (1Km-> 5s) fiable est gre par un protocole envoyer et attendre. Le temps de traitement (donne et acquittement) est deux fois plus important que le temps de transit; donc I =500 s + 2*500 s. La trame de 104 bits avec une en-tte de taille ngligeable (H=0, D=104) est dbite avec la vitesse de 1 Mbit/s (C=106). Le premier bit de lacquittement confirme la rception de la trame de donnes (A=0). Lefficacit de ce protocole: D/(D+H+A+2*C*I) = D/(D+2*C*I) = 104/(104 + 2*106*1500*10-6)= = 104/(104 + 3000)= 1/1,3= 0,769= 77%
Rseaux informatiques
73
Couche liaison
le taux dutilisation du canal en fonction de la longueur du cble. le taux dutilisation du canal en fonction de la taille de la fentre
Dans les deux cas, len-tte (H) reprsente 20% de la trame.
FIGURE 84.
fentre danticipation 0,6 0,4 0,2 envoyer et attendre (W=1) 0,0 0 2 4 6 8 10 taille du canal en nombre de trames (W = 7)
FIGURE 85.
taux dutilisation du canal 0,8 0,6 0,4 0,2 0,0 0 2 4 6 8 10 taille de la fentre longueur du cble = 1 trame longueur du cble = 3 trames longueur du cble = 5 trames
74
Rseaux informatiques
service sans connexion et sans acquittement, service sans connexion avec acquittement, service en mode connect.
Le service sans connexion et sans acquittement permet simplement denvoyer et de recevoir les datagrammes au nivau du lien - link level control protocol data unit (LLC PDU). Dans chaque trame on envoie ladresse source et ladresse destination. Dans le service sans connexion avec acquittement, lutilisateur peut envoyer les donnes et recevoir un acquittement sur cette donne. Le service connect permet dtablir une connexion logique. Lutilisateur peut tre notifi si une connexion est tablie ou libre. Une connexion contient les fonctions du contrle de flux, du squencement et de la retransmission. Dans ces trois types de communication, on utilise le mme format de trames compos de quatre champs:
DSAP - destination service attachment point: ladresse de destination ou le numro du lien logique, SSAP - source service attachment point: ladresse de destination ou le numro du lien logique, contrle - numros de squence et dacquittement, donne - donnes utilisateur.
information - la trame transporte les donnes utilisateur, le champ contient les numros de squence en
mission et en rception (acquittement) et indicateur P/F - poll/final,
supervisory - la trame est utilise par le contrle de flux et de gestion derreurs; le champ contient un indicateur S sur deux bits pour indiquer trois situations: receive ready - RR, receive not ready - RNR et reject (REJ),
Rseaux informatiques
75
Couche liaison
FIGURE 86.
1octet
variable
DSAP
SSAP
contrle
donnes
trame de contrle: supervisory 1 0 S 0 0 0 0 P/F N(R) N(S) numro de squence (send) N(R) numro de squence (receive) S - contrle: RR, RNR, REJ M - contrle R/F - forcer rponse/rponse force
Rsum
Les protocoles de lien ou de liaison sont exploits au niveau de la couche logique. Nanmoins, les mcanismes trs semblables sont implments dans la couche de transport permettant de fiabiliser la transmission entre deux points finaux de communication (end-to-end communication). Selon la nature de la communication, lutilisateur peut choisir entre un mode de communication sans ou avec acquittement et sans ou avec une connexion. Les communications avec les contraintes du temps rel ncessitent lutilisation du code correcteur pour retrouver linformation correcte immdiatement aprs la rception. Les communications sans contraintes temporelles utiliseront de prfrence un protocole avec dtection et retransmission.
76
Rseaux informatiques
CHAPITRE 5
Rseaux ATM
Larchitecture et les fonctions des rseaux ATM (Asynchronous Transfer Mode) sont suffisament compltes et complexes pour tre traites dans un chapitre indpendant. La technologie ATM propose daccder aux haut dbits et dunifier differents types du trafic - donnes, voix, vido ,.. LATM peut sappliquer aux domaines des rseaux locaux (LAN) et des rseaux longue distance (WAN).
FIGURE 87.
LAN IEEE 802.5 UNI public R rseau LAN ATM UNI priv NNI priv R
UNI priv
UNI public
LATM est une technique de transmission par commutation et multiplexage. Il constitue une variante de la commutation par paquets base sur des paquets courts de longueur fixe appels cellules. Le traitement dune cellule par un commutateur se limite lanalyse dune en-tte dans laquelle est enregistr le numro de voie (circuit logique). Les fonctions plus complexes, telles que le contrle de flux et le traitement des erreurs ne sont pas effectus dans le rseau ATM. Cette simplification permet de supporter des contraintes temporelles associes au trafic en temps-rel de la voix et des images.
Rseaux informatiques
77
Rseaux ATM
lentte (header) de 5 octets dont le rle est didentifier les cellules appartenant une mme connexion et
den permettre lacheminement; l en-tte est protge par un octet du code de correction HEC (header error correction),
3 VPI VCI
1 1 2 3
6 5
1 1
2 3 4 5
PT
R C
4 5
UNI header
la couche physique qui assure ladaptation du protocole ATM au support de transmission, la couche ATM en charge du multiplexage et de la commutation des cellules, la couche AAL (ATM Adptation Layer) qui adapte les flux dinformation la structure des cellules. Couche physique
Le flux de cellules gnr par la couche ATM peut tre en pratique transport dans la charge utile dun quelconque systme de transmission numrique. Cette caractristique permet au systme ATM de sadapter aux systmes de transmission actuels ou venir: SONET/SDH/E1/E3 (WAN), Fiber Channel, VDSL, .. La couche physique fournit deux sous-couches fonctionnelles:
la sous-couche de media physique, qui prend en charge codage, dcodage, embrouillage et adaptation au
support,
78
Rseaux informatiques
Ladaptation de dbit est ncessaire pour pouvoir projeter les flux de cellules ATM sur le dbit utile dun lien physique. Pour un systme de transmission dbit constant cette adaptation peut tre effectue par linsertion de cellules vides. La protection des cellules est assure par le champ HEC. Ce champ permet de dtecter des erreurs multiples et de corriger une erreur isole dans len-tte de la cellule. Le rcepteur dispose dun mode de correction et dun mode de dtection:
en mode correction les cellules correctes sont passes la couche ATM; les cellules dont le HEC prsente
un syndrome derreur simple sont passes aprs la correction de len-tte la couche ATM; les cellules avec erreurs multiples sont dtruites et le rcepteur passe en mode dtection,
en mode dtection toutes les cellules avec une ou plusieurs erreurs sont dtruites; la dtection dune cellule
avec le HEC correct provoque le retour au mode correction.
FIGURE 89.
pas derreur
correction mode
pas derreur
detection mode
les 4 premiers octets (32 bits) sont pris comme coefficients dun polynome M(x) de degr 31, le polynome M(x) est multipli par x8, puis divis par un polynome gnrateur: G(x)=x8 + x2 + x + 1; le polynome C(x)= x6 + x4 + x2 + 1 est additionn modulo 2 au reste de la division M(x)%G(x)= R(x); le polynome R(x) forme la squence de 8 bits du HEC.
Loctet HEC ainsi genr cr un code sur 36 bits dune distance de Hamming de quatre, proprit qui autorise la correction dune erreur simple et la dtection des erreurs multiples.
Rseaux informatiques
79
Rseaux ATM
FIGURE 90.
HUNT
correct HEC HECs consecutifs incorrects HECs consecutifs corrects
PRESYNCH
cellule par cellule
SYNCH
Dans ltat de hunt (recherche) des limites de cellules, on vrifie si les rgles de codage du HEC sappliquent len-tte prsume. Aprs la dtection dune cellule valide par un HEC valide, le mcanisme passe dans ltat de pre-synch (pr-synchronisation). La dtection de delta () HEC conscutifs valides autorise le passage en tat de synch (synchronisation). Dans ltat synch le mcanisme continue la vrification des HEC; en cas de dtection de alpha () HEC conscutifs et incorrects le mcanisme retourne en tat hunt. Deux ensembles de valeurs alpha et beta ont t proposs:
alpha = 7 , beta = 8 pour les systmes de transmission par paquets (fiber channel, ..) alpha = 7 , beta = 6 pour les systmes de transmission synchrone: (SONET/SDH/HDLS)
Le temps entre deux pertes de cadrage dpend du taux derreurs dans le systme de transmission. Pour une valeur BER=10-6 ce temps est suprieur 1030 cellules.
Couche ATM
Les fonctions remplies par la couche ATM correspondent aux valeurs contenues dans les diffrents champs de len-tte de la cellule:
champ GFC: le contrle de flux est exerc par les 4 bits du champ GFC; si un noeud rceptionne plus de 10
cellules comportant un champ GFC diffrent de zro, sur 30 000 cellules reues, alors il passe en mode contrle; ce mcanisme intervient en cas de surcharge de trafic linterface,
80
Rseaux informatiques
champs VPI/VCI: le routage des cellules repose sur lexistence de couple Virtual Path Identifier/Virtual
Circuit Identifier; dans linterface UNI, le couple didentificateurs VPI/VCI vaut 8+16=24 bits, tandis que dans linterface NNI il vaut 12+16=28 bits; la concatnation de plusieurs VC dtermine une connexion de conduits virtuels (VPC); une connexion avec un circuit virtuel VC peut tre semi-permanente ou tablie la demande au moment de la ngociation entre abonn et rseau.
champ PTI: payload type indicator identifie le type dinformations vhicul par la cellule; la cellule peut
acheminer des donnes utilisateur ou des donnes de service qui sont utilises pour la gestion et la maintenance du rseau (OAM - Operation Administration Maintenance); le champ PTI peut discerner les cellules dinformation utilisateur associes au flux F5 sur une mme connexion; les flux F3/F4 ncessitent des connections propres au contrle.
TABLEAU 7. Codage
C1 C2 C3 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1
caractristiques donnes utilisateur: fragment SAR AAL5 donnes utilisateur: dernier fragment SAR AAL5 donnes utilisateur en congestion: fragment SAR AAL5 donnes utilisateur en congestion: dernier fragment SAR AAL5 flux F5 : local flix F5: bout en bout gestion de ressources: cellules RM - resource management rserv
bit CLP: cet indicateur est positionn 1 si la cellule possde une faible priorit; dans le cas dun dbit
constant toutes les cellule possdent une haute priorit (CLP=0)
Couche adaptation
Le rle de la couche dadaptation AAL consiste offrir des services pour les diffrentes classes dapplication. Elle dcoupe et rassemble (SAR - segmentation and reassembly) les donnes applicatives en blocs de 48 octes. La couche AAL contribue galement la qualit de services (QoS - quality of service). Quatre classes de service ont t dfinies: A, B, C, et D.
TABLEAU 8. Classes
et modes de fonctionnement au niveau des applications dbit constant variable variable variable mode connect : CBR connect : VBR connct non connect : ABR, UBR
classe A B C D
Dans la couche AAL 1 le transfert dinformation est synchronis de bout-en-bout. La sous-couche de segmentation et assemblage fonctionne avec un PDU de 48 octets. Les informations de contrle sont places dans le premier octet. Elles contiennent les numros de squence (SN), les bits de protection (SNP) et un code dtecteur derreur. Le bit indicateur CSI permet deffectuer la synchronisation au niveau AL.
Rseaux informatiques
81
Rseaux ATM
FIGURE 91.
48 octets
SN
SNP
4 bits 4 bits champ SN - Sequence Number champ SNP - Sequence Number Protection
La couche dadaptation de type AAL2 gre un service dbit variable (voix ou vido compresse). Elle traite les fonctions de segmentation et de rassemblage des donnes applicatives, la gestion des cellules perdues ou incompltes, la recherche des erreurs et ladaptation du dbit. Une donne utilisateur est encadre par quatre champs de contrle:
numrotation de cellule (SN), type dinformation (TI), indicateur de remplissage, code CRC de dtection derreur.
FIGURE 92.
4 bits 4 bits champ SN - Sequence Number champ IT - Information Type champ LI - Length Indicator CRC - Cyclic Redundancy Code
La couche AAL5 ne supporte pas de multiplexage; les PDUs sont directement segments et forment, sans entte supplmentaire, la sous-couche SAR. Pour discerner la position du fragment dans la squence de SAR on utilise le champ PT inclus dans len-tte ATM. Dans la sous-couche de convergence, le champ PAD contient des octets de bourrage (de 0 47) dont le rle consiste rendre la longueur du champ dinformation multiple de 48 octets. Le champ length caractrise et dlimite la taille dun segment 216 octets. Le code CRC est dispos sur 4 octets.
82
Rseaux informatiques
Commutateurs ATM
FIGURE 93.
champ UU - User-to-User indication CPI - Common Part Indicator LEN - number of bytes in the packet (sans remplissage - padding) CRC - Cyclic Redundancy Code
1-bit fin du datagramme donne + pad (40 octets) UU CPI LEN CRC
8-octets de trailer
Commutateurs ATM
Les noeuds de communication ATM sont des commutateurs qui assurent la mise en correspondance des couples didentificateurs VCI/VPI. Le routage et lacheminement des cellules est effectu par lassociation dun ou plusieurs ports de sortie un port dentre.
FIGURE 94.
connexions VC et VP en ATM
VC VP VP VC
VC VP
VC/VP switch
pure VP switch
VC/VP switch
pure VC switch
VC/VP switch
Les dbits levs imposent lutilisation des architectures matrielles pour la ralisation des commutateurs ATM. Les commutateurs peuvent tre classifis selon larchitecture de commutation utilise. Les techniques les plus utilises sont:
Rseaux informatiques
83
Rseaux ATM
FIGURE 95.
i1 x y i2 z VCCs entre i2 x i1 y x z x o1 o2 o1 o2 n l k n
o1 k o2 l VCCs sortie n n
Un commutateur est compos dun processeur et dune matrice de commutation. Selon larchitecture interne la matrice de commutation peut raliser la commutation de la faon spatiale ou temporelle
FIGURE 96.
processeur de contrle
IC . . . IC
OC
matrice de commutation
. . . OC
Dans la commutation temporelle le circuit est capable dabsorber N cellules (N - nombre dentres) dans lintervalle de temps correspondant une cellule (cycle cellule). Le bus systme est de taille 53*8 bits et il est capable de transmettre une cellule dans un cycle horloge. Le contrleur dentre ajoute chaque cellule le numro du port de sortie; cette information sert slectionner le contrleur de sortie qui doit lire et stocker la cellule dans un tampon. Sil y a plusieurs cellules destines au mme port de sortie, elles doivent tre stockes dans un tampon associ cette sortie.
84
Rseaux informatiques
Commutateurs ATM
FIGURE 97.
processeur de contrle
IC . . . IC
OC
backbone
bus partag dans le temps
. . . OC
Le nombre dentres dans un commutateur temporel dpend de la vitesse du bus systme. Par exemple un bus 2,5 Gbit/s peut supporter 4 entres 622 Mbit/s ou 16 entres 155Mbit/s chacune. La commutation spatiale est une solution avec une matrice de commutation N sur N. Cette architecture offre plusieurs chemins entre/sortie indpendants. Afin dviter la congestion, le commutateur N entres doit fonctionner avec cadence N fois plus importante que la cadence darrive dune cellule. Les contrleurs de sortie ncessitent toujours des tampons de sortie. La taille dun commutateur spatial augmente avec la proportion N2 par rapport au nombre dentres. Les solutions pratiques impliquent lutilisation de plusieurs tages de commutation. Les lments de commutation sont de taille 2*2 ou 4*4. Le nombre dlments de commutation est dtermin par lexpression: X = N/M; o N est le nombre total des entres et M le nombre dentres dun lment de commutation. Le nombre Y dtages de commutation est dtermin par: MY = N.
FIGURE 98.
Rseaux informatiques
85
Rseaux ATM
Un lment de commutation slectionne la sortie selon ltat du bit de routage (routing tag). Le problme avec les matrices simples de commutation rside dans la possibilit des blocages. Lexemple ci-dessous montre lapparition du blocage pour les valeurs 010 et 011 de bits de routage.
FIGURE 99.
IC
101
0 1 0 1
010
0 1 0 1 0 1 0 1
011
0 1 0 1 0 1 0 1
OC OC OC OC OC OC OC OC
IC IC IC IC IC
011
0 1 0 1
IC IC
Pour viter les blocages, une solution consiste utiliser des mmoires tampons, ce qui augmente la dure de transit dans le commutateur. Une autre technique consiste augmenter le nombre dtages de commutation en introduisant la redondance au niveau du nombre de chemins.
Rsum
LATM est une technologie permettant de transporter tous les types de trafic (donnes, voix, vido) et de couvrir toutes les distances envisageables de quelques dizaines de mtres plusieurs centaines de kilomtres. Les rseaux ATM sappuient sur des systmes de transmission haut dbit de quelques mgabits par seconde plusieurs dizaines de gigabits. Avec des installations rcentes dans les systmes de tlcommunication, il semble que la technologie ATM est incontournable pour le dploiement de toutes sortes de services incluant le systme Internet.
86
Rseaux informatiques
Famille xDSL
CHAPITRE 6
Le dveloppement du systme INTERNET et laccs ce systme par une ligne tlphonique ncessite des nouvelles technologies permettant de transmettre des donnes multimedia avec un dbit convenable. Ce dbit convenable se situe au niveau de plusieurs centaines de kilobits par seconde. Le dbit des modems actuels est limit par la bande passante dune ligne tlphonique. Les 33 Kbit/s et 56 Kbit/s offerts par les modems le plus rapides ne suffisent pas pour la transmission des donnes audio (e.g. fichiers MP3) ou vido (e.g. fichiers MPEG2). Un autre problme est associ au mode de fonctionnement des rseaux tlphoniques o chaque communication ncessite ltablissement dune connexion. Une connexion, ou un circuit virtuel, bloque de faon continue la bande passante du rseau mme si les donnes sont envoyes en rafales avec de longues priodes de silence. Pour sassurer un lien performant il est possible de louer une ligne (un accs) primaire au systme tlphonique. Une telle ligne (e.g. E1) intgre 32 canaux de 64 Kbits/s et offre le dbit de 2,048 Mbit/s. Nanmoins, elle ncessite linstallation de deux paires du cble avec amplificateurs. Pour un utilisateur individuel, le problme est le prix qui dpasse 1KEuro par mois. Dautre part une ligne E1 est totalement numrique et ne permet pas de supporter directement lquipement analogique dun abonn. On cherchera donc une solution technique permettant de transmettre des donnes analogiques et numriques sur une paire de cbles (boucle locale dabonn) avec un dbit relativement important de lordre de 500 Kbit/s ou plus. La solution est apporte par la technologie xDSL.
Famille xDSL
ADLS est beaucoup plus quune technologie daccs pour les abonns sur la boucle locale. ADSL est une des nombreuses techniques daccs qui peuvent tre utilises pour transformer une ligne ordinaire en un lien numrique haut dbit et viter la surcharge dun rseau tlphonique commut. Cette technologie forme une famille appele xDSL (x-type Digital Subscriber Line). Certains membres de cette famille utilisent les signaux analogiques de transmission du contenu analogique ou numrique via des lignes analogiques de la boucle locale. Dautres membres de la famille xDLS utilisent les vrais signaux numriques pour le transfert des donnes numriques. Ils sont proches des techniques utilises pour la communication numrique sur les rseaux de tlcommunication: RNIS ou E1,E3. Les origines du systme DSL se trouvent dans le dveloppement du rseau RNIS dont lobjectif tait de transformer la totalit du rseau tlphonique en signalisation numrique. La solution RNIS offre un accs de base
Rseaux informatiques
87
qui opre sur deux canaux duplex de 64 Kbits/s (B channels) et sur un canal de contrle de 16 Kbits/s (channel C). Les deux canaux B peuvent tre combins et fournir le dbit de 128 Kbit/s. A lheure actuelle, ces dbits ne sont pas impressionnants et diffrent de peu par rapport aux modems de haute qualit (56 Kbit/s). La solution xDSL permet de dployer les canaux dont le dbit est au moins de 1,5 Mbit/s avec le mode de fonctionnement symtrique (duplex) ou asymtrique o le dbit descendant (downstream) est plus important que le dbit ascendant (upstream). Remarquons que les services de haut dbit offerts par les fournisseurs daccs lInternet ont un caractre asymtrique. La majorit du trafic est en mode descendant vers lutilisateur (client). Dans ce cas ,il est intressant de supporter le plus grand dbit vers lutilisateur terminal, tout en assurant un dbit plus faible vers le fournisseur daccs. En effet, les nouvelles versions du xDSL (ADSL, RADSL, et VDSL) sont essentiellement asymtriques. Le VDSL est une technologie prometteuse pour les applications trs haut dbit. Cette technologie ncessite lutilisation de fibre optique au moins sur la moiti de la distance entre le centre de commutation et lutilisateur. Les dbits proposs sont 13 52 Mbit/s dans le sens descendant et de 1,5 6 Mbit/s dans le sens ascendant. Les caractristiques techniques de la famille xDSL sont prsentes dans la liste ci-dessous:
SDLS - Symetric DSL utilise une seule paire torsade sur une distance de 3 Km maximum. Le dbit offert
par cette technologie est 768 Kbit/s.
ADSL - Asymetric DSL a les mmes caractristiques que SDLS mais supporte un trafic asymtrique et est
capable de fonctionner sur une paire torsade de 5,4 Km maximum.
RADSL - Rate-adaptive DSL est une technologie ADSL avec possibilit dadaptation du dbit ltat de la
ligne. Cette technique est actuellement disponible en ADSL implment avec le codage DMT (discrete multitone)
IDSL - ISDN DSL (DSL pour RNIS) est employ pour limplmentation des canaux RNIS (2B+C) sur
lquipement DSL
VDSL - High-speed DSL est une nouvelle technologie permettant dobtenir de trs haut dbits sur une paire
torsade longue de 1 500 m. La principale application de cette version DSL est le portage des cellules ATM.
Architecture ADSL
Malgr la confusion sur les rapports entre DSLS, xDSLs, et ADSL, une chose est sure: ADSL est le plus normalis de tous, ens termes de documentation disponible, valuations de service, et spcifications ouvertes. La figure ci-dessous montre la structure lmentaire dun systme ADSL. Bien que le schma puisse sembler un peu complexe, larrangement gnral des composants ADSL est direct. Entre les interfaces, divers blocs fonctionnels sont dfinis. Ils peuvent tre rassembls par des vendeurs dquipement ADSL en des produits qui fournissent les fonctions ncessaires. Les fabricants sont libres dapporter les options ou les amliorations qui sont ncessaires. Le fonctionnement interne de ces composants est dfinir par les fabricants.
88
Rseaux informatiques
Architecture ADSL
FIGURE 100.
Architecture ADSL
VA DSLAM noeud daccs ATU-C ATU-C U-C U-R T-SM U-C2 U-R2 module des services locaux T
splitter
ATU-C ATU-C boucle locale
splitter
ATU-R
ATU-C (ADSL Termination Unit - Central office): unit de transmission ADSL, ct rseau ATU-R (ADSL Termination Unit - Remote): unit de transmission ADSL, ct abonn DSLAM DSL: multiplexeur daccs au DSL POTS-C: interface entre RTC et splitter, cot rseau (POTS - plain old telephone service) POTS-R: interface entre RTC et splitter, ct abonn T-SM: T-interface terminale de labonn U-C: interface U sur la boucle locale ct rseau U-C2: interface U sur le splitter ct rseau U-R: interface U sur la boucle locale ct abonn U-R2: interface U sur le splitter ct abonn VA: interface sur ATU-C, ct noeud daccs de ATU - C VC: interface du fournisseur des services ct noeud daccs
Rseaux informatiques
89
Une des caractristiques importantes de lADSL est le fait quil supporte le service analogique de voix (plain old telephone service, ou POTS). Un dispositif spcial appel splitter impose la voie analogique de 4KHz entre le commutateur et lquipement analogique de labonn. Beaucoup de services sont imagins pour le systme ADSL, incluant la transmission large bande et la diffusion numrique (vido et accs Internet), ainsi que la gestion du rseau. Tous ces services sont accds en dehors du commutateur RTC, rsolvant ainsi le problme dencombrement du commutateur. Beaucoup de liaisons ADSL sont gres par un noeud daccs aux services install dans le central de tlcommunications. Ce noeud daccs est parfois appel DSLAM (DSL module dacc). Bien quun DSLAM puisse certainement alimenter laccs de service aux lignes ADSL, une architecture complte dun DSLAM est beaucoup plus complexe que celle illustre sur le schma. Certaines des interfaces prsentes sur le schma sont optionnelles. Linterface T-SM entre le ATU-R et le module de service pourrait dans certains cas tre le mme que linterface T, surtout si le module de service est intgr dans lATU-R. Si linterface T-SM existe, on peut desservir plusieurs types de priphriques incluant les rseaux locaux. Par exemple, un ATU-R pourrait avoir les deux connecteurs: 10Base-T Ethernet et V.35. Les diverses interfaces U ne pourraient pas exister si le splitter tait une partie intgrante du ATU-C, ou si le splitter disparatrait entirement. Cest la nouvelle tendance parmi les vendeurs dquipement, mais cela empche lutilisation des tlphones analogiques sur la mme ligne. Les interfaces V pourraient tre logiques plutt que physiques, ce qui est surtout vrai de linterface VA si le DSLAM o accde lADSL excute certaines tches de commutation. Enfin, les installations de ADSL dans les locaux de client peuvent prendre diverses formes. Cela peut tre aussi simple quune paire de fils raccorde aux priphriques, tels quun poste de TV ou un ordinateur personnel, et aussi complexe quun rseau local Ethernet.
Un rseau ADSL
La technologie ADSL est beaucoup plus quune solution plus rapide pour tlcharger des pages Web la maison. ADSL fait partie dune architecture rseau qui a le potentiel dalimenter les sites rsidentiels et les petites entreprises avec tous types de nouveaux services en large bande. Dans ce contexte, - large bande- signifie les services ayant besoin de connexions 2 Mbit/s et plus.
FIGURE 101.
serveur vido
switch ATM
routeur IP
noeud daccs
ADSL1
serveur tltravail
vers RTC
abonn n
90
Rseaux informatiques
La figure ci-dessus montre ce quoi ressemblerait un rseau de large bande bas sur ADSL. Dans la version la plus simple de cette architecture, les clients requerraient essentiellement un nouveau modem ADSL. Ce priphrique aurait une prise ordinaire RJ11 pour le tlphone analogique dans le logement. Autres ports, peut-tre 10BASE - T Ethernet, se connecteraient un ensemble de tlvision et PC pour une varit de services, tels que accs rapides lInternet ou vido sur demande. La fonction de splitter spare le service tlphonique analogique des services numriques. Dans beaucoup de cas, un cblage supplmentaire des locaux peut tre ncessaire, mais ceci est au-del du cadre du rseau ADSL. Dans loffice central de tlcommunications (OC), le service analogique de voix passe au commutateur de voix par le biais dun splitter. Les lignes locales ADSL se terminent maintenant dans un noeud daccs ADSL au lieu daller directement au commutateur central. Le noeud daccs est un multiplexeur daccs DSL ou DSLAM. La magistrale (bus systme) du noeud daccs possde des raccordements pour les units de liaisons aux routeurs IP/TCP et aux commutateurs ATM. Ces commutateurs et routeurs permettent aux utilisateurs daccder aux services de leur choix. Remarquons que ces services peuvent aussi tre logs dans lOC. Dans beaucoup de cas, les serveurs peuvent tre localiss travers la rue et connects par un cble court lOC. Si le fournisseur de service est aussi le fournisseur du liaison ADSL, il est alors possible que tous les services soient logs directement dans lOC. Le noeud daccs est un point essentiel dans la norme ADSL. Pour linstant, les noeuds daccs excutent une simple agrgation du trafic. Tous les bits et paquets en dehors du noeud daccs sont reports aux services par des circuits simples. Par exemple, sil y a 10 clients ADSL communiquant 2 Mbit/s dans le sens descendant et 64 Kbit/s dans le sens montant (une connexion typique), alors la liaison entre le noeud daccs et le rseau des services internet, doit tre au moins de 20 Mbit/s (10x2 Mbit/s) dans les deux sens afin dviter la congestion et le rejet des paquets. Les dbits entre le noeud daccs et les serveurs en montant doivent tre les mmes (20 Mbit/s) bien que le dbit binaire dagrgat soit ici seulement de 640 Kbit/s (10X64 Kbit/s). Ceci est d la nature duplex des liaisons E de la tlcommunication. Une amlioration de base possible pour le systme ADSL serait lintroduction dun multiplexeur statistique dans le noeud daccs ADSL lui-mme. Dans le cas dun multiplexeur statistique, bas sur la nature bursty (rafale) des paquets eux-mmes, une baisse de vitesse des liaisons est possible parce que tous les utilisateurs ne seront pas actifs en mme temps. Dune manire ou dune autre, les mmes 10 clients pourraient tre servis par une liaison plus modeste que 20 Mbit/s, peut-tre seulement de 1,5 Mbit/s.
Rseaux informatiques
91
ment ADSL communique sur une ligne locale auparavant analogique. Le document ne crit pas larchitecture du rseau et des services, ni mme le fonctionnement interne dun noeud daccs ADSL. Il dfinie seulement le code de ligne (comment les bits sont envoys sur le support physique) et la structure des trames (comment les bits sont organiss) sur la ligne. Dans les produits ADSL on utilise plusieurs techniques de codage de ligne:
la modulation damplitude et de phase sans porteuse - CAP (carrierless amplitude/phase modulation), la modulation damplitude en quadrature (MAQ), la technologie de multi-tonalit discrte - DMT (discrete multitone).
La gamme de frquences doit tre divise en bandes en amont et en aval (multiplexage en frquence). Si les mmes frquences sont utilises en aval et en amont lannulation dcho doit tre utilise. Lannulation dcho limine la possibilit quun signal reflt dans une direction soit interprt comme un metteur dans le sens oppos. Dans ADSL, les deux techniques dannulation dcho et de multiplexage en frquence peuvent tre combines. Dues la nature asymtrique de largeurs de bande ADSL, les gammes de frquences peuvent se chevaucher, mais elles ne concident pas. En tout cas, la norme ADSL doit appliquer la technique DMT avec lannulation dcho ou de multiplexage en frquence. Notons que le multiplexage en frquence est lapproche plus simple implmenter. Lannulation dcho est toujours vulnrable aux effets de diaphonie, o un rcepteur capte des signaux qui sont transmis sur la bande adjacente. Le multiplexage en frquence vite la diaphonie en permettant au rcepteur dignorer totalement la gamme de frquences que son propre metteur envoie sur la ligne. En contre partie, le multiplexage en frquence diminue la totalit de la bande disponible dans lun ou lautre sens de communication. Lannulation dcho valide les frquences possibles utiliser, ce qui maximalise la performance.
FIGURE 102.
multiplexage en frquence
0-4KHz 25 KHz
200 KHz
1,1 MHz
92
Rseaux informatiques
CAP et DMT
FIGURE 103.
annulation dcho
0-4KHz 25 KHz
200 KHz
1,1 MHz
CAP et DMT
CAP et DMT sont les codes de ligne les plus utiliss pour ADSL. CAP est une technique de modulation en amplitude et phase; DMT est une technique de modulation multi-tonalit. CAP est trs proche de la technique QAM (Qaudrature Amplitude Modulation). La technique DMT permet une adaptation de la bande passante aux conditions de la boucle locale linstant donn; par contre la modulation CAP est plus simple implmenter.
Fonctionnement du CAP
Nombre de vendeurs majeurs de lquipement ADSL proposent le CAP comme le code de ligne. Le code de ligne dtermine simplement comment les 0 et l sont envoys de lunit ATU-R lunit ATU-C. Un code parfait de ligne devrait fonctionner correctement malgr des conditions relles sur ligne, incluant la prsence de bruit, diaphonie, et pertes. Le CAP est un proche parent du codage connu comme modulation damplitude en quadrature (MAQ). En fait, mathmatiquement ces codes sont presque identiques. La meilleure dfinition du CAP est probablement technique MAQ sans porteuse. On peut considrer le CAP comme une amlioration de la MAQ. CAP utilise la totalit de la bande passante (sauf le 4KHz pour la voie analogique) de la boucle locale pour le transfert des donnes. Lopration en duplex est ralise par le multiplexage en frquence. Dans le codage de ligne, CAP il ny a pas de la notion de subcarriers ou de sous-canaux.
Fonctionnement du MAQ
Cette section prsente quelques dtails sur les principes de fonctionnement MAQ. Tous les signaux porteurs analogiques sont caractriss par lamplitude, la frquence, et la phase. Chacun de ces paramtres peut tre utilis pour signaler les 0s et ls qui font le contenu de linformation numrique. A titre dexemple, considrons la phase. La phase peut tre utilise dans un dcalage de phase diffrentiel (differential phase shift). Dans ce cas, la phase de londe est change par un angle spcifique la reprsentation de chaque baud.
Rseaux informatiques
93
Prenons un exemple simple avec le dcalage deux phases. Si lmetteur dsire mettre un 1, il change simplement la phase de la porteuse (sa phase actuelle) de 180. Sil met un 0, le dcalage de phase introduit est 0 (la phase actuelle de la porteuse na pas chang). A partir dun simple codage DPSK (differential phase shift keying) le dcalage de phase en quadrature - QPSK (quadrature phase shift keying) peut tre compris deux niveaux. Sur la surface, il est simplement DPSK avec la signalisation de deux bits par un baud. Les dcalages de phase sont mesurs partir de la phase actuelle de londe. Dans QPSK, le signal qui est rellement envoy est la combinaison dune onde sinusodale et dune onde cosinuodale la frquence f, o f est la frquence de londe porteuse. Parce que les fonctions donde cosinus et sinus sont toujours dphases de 90, elles sont dites dans la quadrature, car ces deux quantits sont perpendiculaires, ou diffrentes de 90 lune de lautre. En fait, QPSK na rellement rien faire avec le dcalage de phase. Le dcalage de phase est une consquence de la modulation des amplitudes de deux ondes dans la quadrature. Si lon comprend QPSK ce niveau, le sujet de modulation damplitude en quadrature sera simple; mais une vue du QPSK comme dcaleur des phases est galement suffisante. Le codage MAQ peut tre, comme QPSK, visualis deux niveaux. Sur la surface, un modulateur MAQ cre 16 signaux diffrents en introduisant les deux phases et la modulation damplitude. En introduisant 12 dcalages de phase et deux amplitudes, il est possible dobtenir 16 types de signal. Ces 16 types du signal peuvent reprsenter 4 bits par un baud de signalisation. A un niveau plus profond, MAQ module simplement les amplitudes de deux ondes dans la quadrature (dcales de 90). Par exemple un MAQ peut appliquer quatre amplitudes diffrentes pour chacune des deux ondes. Si les quatre amplitudes sont tiquetes de A1 A4, alors les 16 types diffrents du signal sont obtenus en utilisant toutes les paires possibles: amplitudes combines avec des fonctions cosinus et sinus de londe. Par exemple: A1*sin (Ft) + A1*cos(Ft), A1*sin (Ft) + A2*cos (Ft),...). Lensemble de types cre la caractristique du code MAQ dite constellation. Une simple constellation" 16MAQ est illustre ci-dessous:
FIGURE 104.
0111 0110 0100 0101 1100 1111 1110 1101 1001 1010 0010
0001
1011
94
Rseaux informatiques
CAP et DMT
En gnral, plus le nombre de niveaux damplitude est grand, plus est le nombre de points de constellation est grand et en consquence plus grands le nombre de bits par le changement du signal (baud). Le codage MAQ est limit au nombre de niveaux qui peuvent tre discerns par le rcepteur face au bruit. Par exemple le MAQ/CAP peut tre utilis livrer linformation numrique de vido. Le flot binaire de sortie dun numriseur est cass en morceaux de 4 bits (halfbyte ou nibble). Ces morceaux alimentent le codeur qui slectionne les amplitudes appliquer sur les ondes dans la quadrature. La sortie du codeur alimente un modulateur qui cre le signal de sortie. Le modulateur combine en fait les amplitudes appropries du sinus et cosinus la frquence de londe porteuse, crant ainsi les dcalages damplitude et phase associs aux points correspondants de la constellation.
lattnuation de signal est moindre sur les frquences moins leves, les pertes du signal la fin du spectre sont trs importantes et inacceptables pour les signaux de contrle.
Quand les priphriques ADSL qui emploient DMT sont activs, chacun des sous-canaux est test pour lattnuation. Dans la pratique, le test est une procdure dchange de donnes o le paramtre utilis est le gain (le contraire de lattnuation). Chacun des nombreux sous-canaux emploie le codage bas sur MAQ. La capacit totale de transfert est la somme de tous les dbits binaires envoys sur tous les sous-canaux actifs. De plus, tous les sous-canaux sont constamment contrls pour la performance et les erreurs. Le groupement des sous-canaux individuels DMT donne une granularit de 32 Kbit/s. Autrement dit, un priphrique DMT pourrait fonctionner 768 Kbit/s ou 736 Kbit/s (soit 32 Kbit/s moins), dpendant des conditions ambiantes.
Rseaux informatiques
95
FIGURE 105.
canaux idals
canaux adapts
loptimisation incorpore du sous-canal (RADSL), le monitorage actif en cours, le haut niveau de souplesse pour ladaptation du dbit, limmunit au bruit pour une grande capacit de transfert.
les canaux descendants numrots par AS0 .. AS3 (maximum 4), les canaux montants numrots LS0 .. LS2 (maximum 3).
Chaque canal de transport peut tre programm pour transfrer un nombre multiple de 32 Kbit/s (sous-canaux). Le nombre de multiples de 32 Kbit/s est normalis via la notion de la classe de transport.
96
Rseaux informatiques
Le nombre maximal de sous-canaux et le nombre maximal de canaux de transport dans une configuration dpendent de la classe de transport:
la classe 2M-1 peut tre une combinaison dun trois canaux de transport descendants fonctionnant avec le
dbit de 2,048 Mbit/s: un canal 6,144 Mbit/s, un canal 4,096 Mbit/s et un canal 2,048 Mbit/s, trois canaux 2,048 Mbit/s.
la classe 2M-2 peut tre une combinaison dun ou deux canaux de transport descendants fonctionnant avec
le dbit de 2,048 Mbit/s: un canal 4,096 Mbit/s, deux canaux 2,048 Mbit/s.
la classe 2M-1: configuration 1 - LS1 et LS2 160 Kbit/s + 384 Kbit/s; configuration 2 - LS2 576 Kbit/s la classe 2M-2: configuration 1 - LS1 160 Kbit/s; configuration 2 - LS2 384 Kbit/s la classe 2M-3: seulement une configuration - LS1 160 Kbit/s
Les canaux bidirectionnels ont une option pour le transfert des cellules ATM dans un canal du type LS2. Le canal LS2 peut porter des cellules formates pour le protocole dadaptation AAL5 (VBR - variable bit rate) ainsi que les cellules de AAL1 (CBR - constant bit rate). Le tableau ci-dessous montre diffrentes options de transport pour lensemble des canaux de transport.
TABLEAU 9. Options
de canaux de transport 2M-1 6,144 2,048 4,096 6,144 trois: AS0,AS1,AS2 640 576 384 160 C(64) trois: LS0,LS1,LS2 2M-2 4,096 2,048 4,096 deux: AS0,AS1 608 384 160 C(64) deux: LS0,LS1 ou LS1, LS2 un: AS0 176 160 C(16) deux: LS0,LS1 2M-3 2,048 2,048
classe de transport canaux de transport descendants (downstream) capacit maximale en Mbit/s options en Mbit/s
sous-canaux actifs (max) canaux de transport montants (upstream) capacit maximale en Kbit/s options en Kbit/s
Rseaux informatiques
97
le canal de synchronisation qui permet deffectuer la configuration des canaux AS et LS, le canal des fonctions internes - EOC (embedded operations channel), le canal de reconfiguration - OCC (operations control channel), la correction derreurs - CRC (cyclical redundancy check), lopration, administration, maintenance - AOM, la correction anticipe derreurs.
Ces informations circulent dans les deux sens en aval et en amont. Dans la plupart des cas, les bits doverhead sont envoys avec un dbit de 32 Kbit/s. Dans les canaux de transport plus rapides, les bits de contrle prennent la bande de 64 Kbit/s voire 128 Kbit/s.
les donnes rapides (fast data) qui transitent par un tampon de faible latence (delay sensitive buffer) les donnes lentes qui transitent par un tampon lent (interleave data buffer)
Cette organisation permet dintroduire un simple systme de priorit. Lespace de transport dans les trames ADSL est assign indpendamment pour chaque catgorie de donnes.
Super-trame ADSL
Les bits organiss en trames sont envoys sur le lien ADSL sous la forme dune super-trame. Une super-trame ADSL est compose dune squence de 68 trames ADSL. Certaines trames ADSL ont des fonctions spcifiques. Par exemple les trames #0 et #1 contiennent le contrle derreur (CRC) et lidicateur (IB). Autres indicateurs sont ports dans les trames #34 et #35. A la fin de la super-trame se trouve une trame de synchronisation. Une super-trame est envoye toutes les 17 millisecondes. Une trame simple ADSL est donc envoye la cadence de 4000 par seconde ou une trame toutes les 250 secondes. Une trame simple est compose dune partie rapide o se trouvent des donnes rapides et dune partie lente o sont enregistres des donnes nonrapides. La partie rapide est protge par un code FEC (forward error correction).
FIGURE 106.
fast byte
donnes rapides
donnes interleaved
une trame ADSL toutes les 250 secondes la taille de la trame dpend du dbit sur ligne!
98
Rseaux informatiques
Les trames ordinaires portent galement des indicateurs de contrle pour les fonctions supplmentaires (embedded operations) et la synchronisation. Quatre fonctions supplmentaires ont t dfinies:
donnes rapides
donnes interleaved
fast byte
AS0 96 octets
AS1 96 octets
le mode synchrone au niveau du bit (bit synchronous mode), le mode synchrone au niveau des paquets (packet adapter mode), le mode de multiplexage des paquets (end-to-end packet mode), le mode de multiplexage des cellules ATM (ATM mode).
Rseaux informatiques
99
FIGURE 108.
max. 4 CBR - constant bit rate ATU-R TDM CBR - constant bit rate interfaces utilisateur
ATU-C TDM
ATU-R
packet adapter
services commutation de paquets CBR - constant bit rate ATU-C multiplexage de paquets ATU-R
rseau local
packet adapter
services commutation ATM CBR - constant bit rate ATU-C multiplexage de cellules ATM ATU-R rseau local ATM
packet adapter
Dans le mode synchrone au niveau du bit, le noeud daccs rcupre les suites de bits qui arrivent dans les canaux de transport C ou LS. Le noeud daccs envoie les bits descendants sur les canaux AS. Dans le mode paquet le site utilisateur (user premises) contient un bloc dadaptation qui permet aux priphriques utilisateur denvoyer et recevoir les paquets la place dune chane binaire non structure. Cette solution permet dattacher ladaptateur un ensemble de dispositifs fonctionnant en mode paquet (p.e. rseau Ethernet). Le mode paquet de bout-en-bout (end-to-end) est une simple extension du mode prcdent. Dans ce mode on suppose que le noeud daccs gre les chanes binaires galement au niveau des paquets. Finalement, le mode ATM est prvu pour un fonctionnement ATM de bout en bout. Le noeud daccs passe les cellules ATM au rseau ATM. Les cellules ATM peuvent porter des datagrammes IP ou trames PPP.
100
Rseaux informatiques
TCP/UDP IP PPP
ADSL PM
ATU-R
UTP5
Les paquets IP sont ports par les trames PPP. Chaque trame PPP dbute et se termine par un fanion (0111 1110 ou 7E en hexadcimal). Lespace entre les trames PPP est donc rempli par les fanions. Grce cette solution, un lien ADSL fonctionnant en mode CBR peut porter les rafales de trames PPP et des datagrammes IP.
Rseaux informatiques
101
FIGURE 110.
Insertion des datagrammes IP dans les trames PPP sur un lien ADSL
102
Rseaux informatiques
FIGURE 111.
socket
splitter
ATU-R
UTP5
cablge existant
nouveau cablge
FIGURE 112.
splitter
ATU-R
cablge existant
Les solutions proposes ci-dessus combinent les liens analogiques avec les liens numriques. Pour avoir une installation de meilleure qualit, il est important dintroduire des filtres permettant de dcoupler les deux sortes de liens.
FIGURE 113.
Installation avec des filtres (passe bas - LPF et passe haut - HPF)
Rseaux informatiques
103
Les routeurs peuvent tre connects lensemble du systme Internet par un lien E1 avec le relais de trames. Le service de relais de trames permet de porter les datagrammes IP dans les trames de relais. Un routeur peut tre galement connect au rseau ATM prpar pour le portage de datagrammes IP.
104
Rseaux informatiques
Architecture VDSL
central local LEC services Internet fibre unit optique ONU VDSL
splitter
splitter hub
VDSL
Les dbits maximum de communication dpendent de la longueur de la boucle locale. Le dbit descendant sur la distance infrieure :
300 m est 55,2 Mbit/s, 1 Km est 27,6 Mbit/s 1,5 Km est 13,8 Mbit/s.
Le dbit montant est partir de 1,5 Mbit/s; selon le cas il peut galer le dbit descendant. Notons que 55,2 Mbit/s est un dbit minimal sur le rseau ATM. Les valeurs de dbits proposes pour VDSL correspondent donc aux fractions des dbits de communication sur les rseaux ATM.
Rseaux informatiques
105
cuivre VDSL
hub
terminaux
STM - "bit pipe" paquet ATM ATM ATM STM paquet bout--bout
Rsum
Dans ce chapitre nous avons tudi la technologie xDSL (Digital Subscriber Loop) tout en insistant sur sa principale variante ADSL. Les liens ADSL permettront aux utilisateurs de profiter pleinement des ressources et des services accessibles via lInternet et Wide World Web. Les dbits offerts sur un lien ADSL sont au moins dix fois suprieurs aux dbits des modems traditionnels. Les liens ADSL, une fois disponibles pour tous les abonns du rseau tlphonique, permettront de fournir aux utilisateurs un grand ventail des services incluant la vido la demande et le tlenseignement.
106
Rseaux informatiques
CHAPITRE 7
Rseaux WAN
La majorit des rseaux WAN (Wide Area Networks) appartient aux organismes publics qui, le plus souvent, grent leurs installations au niveau national. Il y a deux types des rseaux publics WAN:
commutateur de paquets
PSE
PSE
quipement terminal
interface
Rseaux informatiques
107
Rseaux WAN
E1 - 2048 Mbit/s
laccs de base: basic rate interface - BRI , laccs primaire: primary rate interface - PRI.
Laccs de base est compos de deux canaux B offrant chacun un dbit de 64 Kbit/s et dun canal D 16 Kbit/s. Un flot de 128 Kbit/s peut tre port sur deux canaux de 64 Kbit/s ce qui permet dinterconnecter des rseaux LAN distance (remote bridges). Un accs primaire offre 30 canaux de 64 Kbit/s et un canal de contrle 64Kbit/s.
108
Rseaux informatiques
Interfaces RNIS
Le standard RNIS dfinit un ensemble de dispositifs et dinterfaces. Les dispositifs qui ne sont pas compatibles avec RNIS sont caractriss comme lquipement terminal TE2. Un terminal TE2 peut tre connect au systme RNIS par le biais dun adaptateur. Les terminaux du type TE1 sont compatibles avec le systme RNIS (terminaux numriques) et peuvent tre connects au rseau par linterface S. Linterface NT2 - (Network Termination 2) offre les fonctions de commutation, multiplexage de concentration/distribution des donnes sur le site de labonn. Linterface NT1 ralise les fonctions de contrle, de gestion dalimentation, de synchronisation. Ces fonctions peuvent tre implmentes sur une carte intgrer dans une station de travail ou dans un PBX. Le schma ci-dessous illustre la position de ces interfaces dans le systme RNIS.
FIGURE 119.
TE1
NT2
NT12
interface User-Network
TE2
Terminal Adapter centre de raccordement RNIS V RS-232 terminaison daccs quipement oprateur commutateur terminal gestion de paquets
Services RNIS
Diffrents services RNIS, incluant les services utilisateur, les services distance et les services de contrle sont dfinis en termes dattributs. Les services utilisateur sont caractriss par les attributs daccs, dinformation et par les attributs supplmentaires
Rseaux informatiques
109
Rseaux WAN
FIGURE 120.
tlservices : end-user end-user fournisseur de services: device device attributs de transfer attributs daccs
attributs daccs
TE
TE
Les attributs daccs spcifient les mthodes daccs aux fonctions rseau. Les attributs dinformation caractrisent les capacits de transmission. Les attributs supplmentaires de service spcifient les dlais et les taux derreur acceptables pour le service donn. Le tableau ci-dessous donne un ensemble dattributs de service.
TABLEAU 10. RNIS:
description
circuit switched, packet switched bit rates in Kbits: 64, 2*64, 384, 1536 (T1), 1920 (E1) unrestricted digital, audio in KHz: 3.1, 7, 15; speech, video service data unit integrity, unstructured 8 KHz integrity demand, reserved, permanent unidirectional, bidirectional symmetric, bidirectional asymmetric point-to-point, multi-point, broadcast D (16 Kbit/s), D (64 Kbit/s), B (64 Kbit/s), H0 (384 Kbit/s), H11 (1536 Kbit/s) and H12 (1920 Kbit/s) HDLC, LAPB, LAPD and others calling line ID, call transfer and others to be defined to be defined to be defined
access attributes
general attributes
110
Rseaux informatiques
1 Km TE point--point NT
TE
TE NT
bus passif TE
Indpendamment de la configuration, on utilise le mme type de connecteur RJ-45. La disposition des fils dans ce connecteur est illustre dans la figure ci-dessous. Notons que le mme connecteur peut tre utilis pour laccs de base et laccs primaire.
Rseaux informatiques
111
Rseaux WAN
FIGURE 122.
trame 48-bit F L | B1 | E D A | B2 | E D M | B1 | E D S | B2 | E D L
F - framing bit L - DC voltage balancing D - D-channel bit B1-8 - B1 channel byte B2-8 - B2 channel byte
codage pseudo-ternary la polarit change chaque bit 0, une violation du code est dtecte si 2 bits 0 conscutifs sont ports par le mme niveau
E - echo of the received D-channel bit A - activation bit S - unspecified M - multiframing bit
1 +1V 0V -1V violation du code 0 1 0 0 0 0 1 0
112
Rseaux informatiques
delimiteur NT TEI
bit stuffing
terminal A detecte 1 la place dun 0 dans son TEI; il abandonne terminal A commence la transmission
D bits echoed
TE
8 1-bit slots temps sur canal D echoed terminal B fini la transmission et baisse 8 1-bit slots les deux terminaux sa priorit echoed commencent la transmission priorit: 9
Rseaux informatiques
113
Rseaux WAN
Adressage RNIS
Ladressage RNIS est compos de trois parties de tailles variables: le code du pays -max 3 chiffres, code national -max 17 chiffres, code local - max 40 chiffres.
SDH et SONET
SDH - Synchronous Digital Hierarchy est un rseau de tlcommunication implment pour le transfert des signaux numriques par le biais de la commutation des circuits et multiplexage synchrone. SDH est le seul standard pour la tlcommunication haut dbit sur fibre optique. Les rseaux standard SDH sont utiliss pour le transfert de donnes ATM et RNIS large bande. SONET (Synchronous Optical NETwork) est un rseau SDH dvelopp et implment aux Etats Unis. Le tableau ci-dessous montre les interfaces et les dbits standard offerts sur le rseau SDH/SONET.
TABLEAU 11. SDH
Dans un systme SDH il y a trois types de dispositifs: les multiplexeurs terminaux - points daccs terminaux, les dispositifs de commutation DCS (Digital Cross-connect System), lesquels ralisent la commutation directe synchrone, les rpteurs qui permettent de rgnrer les signaux optiques et deffectuer la dtection derreurs; les rpteurs peuvent tre disposs tous les 50 Km.
114
Rseaux informatiques
SDH et SONET
FIGURE 125.
chemin - path
ligne - line
section
section
Selon le type de dispositifs intgrs dans une topologie il y a trois sortes dinterconnexions:
une section dans le systme SDH implmente trois fonctions: cration de trames (framing), brouillage
(scrambling) et localisation derreurs.
une ligne implmente multiplexage, synchronisation, commutation et interconnexion des signaux SDH. un chemin (path) reprsente les liens de bout-en-bout entre les applications utilisateur.
SDH - support du transport Dans une trame STS-1 il y a 90 colonnes et 9 ranges - au total 810 octets. Une telle trame est dcompose en une en-tte et lenveloppe du contenu SPE (synchronous payload envelope). Len-tte et le SPE sont composs respectivement de 3 et de 87 colonnes. Le transfert dune trame ncessite 125 microsecondes; 8000 trames sont envoyes dans chaque seconde. Len-tte est subdivise en partie section et partie ligne. Lenveloppe SPE est dcompose en champs indicateur du chemin (path overhead) et charge utile (payload). Le champ DC (Data communication Channel) est utilis pour la gestion du rseau. La charge utile du SPE est dcompose en sept groupes VT (Virtual Tributary) et 18 octets demballage. Chaque groupe VT est tal sur 12 colonnes et peut contenir un ou deux VT du mme type. Un type VT reprsente une donne de taille fixe correspondant au dbit allou lutilisateur. Par exemple, un VT2 est utilis pour crer un canal E1 (2,048 Mbit/s). La totalit dun SPE peut tre exploite pour lobtention dun canal DS3 (51.84 Mbit/s), dans ce cas les VTs ne sont pas utiliss.
Rseaux informatiques
115
Rseaux WAN
FIGURE 126.
SDH: format dune trame STS-1 7 groupes VT , (84 octets) chacun large de 12 colonnes path trace BIP-8 signal label path status user channel multiframe growth growth growth
champs de contrle - section overhead framing BIP-8 DC pointer BIP-8 DC DC DC growth framing order wire DC pointer APS DC DC DC growth STS-1 ID framing DC pointer APS DC DC DC order wire
remplissage pad pad pad pad pad pad pad pad pad pad pad pad pad pad pad pad pad pad
path overhead
Synchronous Payload Envelope - SPE
VT - Virtual Tributary BIP - Bit-Interleaved Parity DC - Data communication Channel APS - automatic Protection Switching
VT1.5 - 1.728 Mbit/s (DS1) VT2 - 2.308 (E1) VT6 - 6.912 (DS2) payload capacity 49.54 Mbit/s
SDH et ATM
La hirarchie digitale synchrone a t conue pour les systmes tlphoniques longue distance mais elle peut tre facilement exploite par les rseaux de transfert de donnes. Une projection spcifique a t dveloppe pour le transfert des cellules ATM avec un dbit de 155,52 Mbit/s. Dans le schma dencapsulation, chaque trame SDH contient une colonne POH (payload overhead), suivie par les cellules ATM loges dans les ranges de la charge utile. Etant donn que la taille dune trame SDH nest pas un multiple de 53 octets, un mcanisme dalignement a t ajout afin daligner les cellules sur le cadre dune trame SDH. Les cellules individuelles sont reconnues dans une suite binaire grce au mcanisme du cadrage et la vrification des champs HEC dans les en-ttes des cellules ATM.
116
Rseaux informatiques
FIGURE 127.
cell
transport overhead
ATM
cell
niveaux physique, niveau logique (link layer), niveau de rseau (packet network layer).
Dans la plupart des cas, un quipement spcifique X.25 doit tre utilis pour connecter lquipement terminal au rseau X.25 - PAD (packet assembler/dissasembler). Les rseaux X.25 peuvent tre interconnects avec dautres types des rseaux par le biais de passerelles (gateways). Un plan dadressage X.25 peut impliquer au maximum 14 chiffres plus un 0 ou un 1 optionnel.
Rseaux informatiques
117
Rseaux WAN
FIGURE 128.
terminal non-X.25 DTE DTE - Data Terminal Equipment DCE - Data Communications Equipment PAD - Packet Assembler/Disassembler X.28 PAD:X.3 rseau commutation STE de paquets DCE X.25 DTE terminal X.25 X.121 X.75 STE rseau commutation de paquets DCE X.25 DTE terminal X.25 STE - Signaling Terminal Equipment
les trames de donnes, les trames de contrle, les trames non numrotes.
Le lien fonctionne en trois modes oprationnels:
mode normal - SNRM (normal response mode), avec la scrutation et la slection (polling et selecting), mode asynchrone - SARM (asynchronous response mode), fonctionnant en half-duplex et point--point, mode asynchrone quilibr - SABM (asynchronous balance mode) fonctionnant en full-duplex et point-point. Le mode SABM est utilis pour tablir/librer une connexion. Le schma ci-dessous illustre le fonctionnent dune connexion X.25 et les trois phases oprationnelles:
118
Rseaux informatiques
FIGURE 129.
DTE
DCE
info Ns=0 DM SABM UA info Ns=0 info Ns=1 RR Nr=2 DISC UA temps DM - disconnect mode notification DISC - disconnect mode request UA - unnumbered acknowledge temps SABM - connect request Ns - sequence number Nr - acknowledge number
link disconnection
le numro du lien logique LCI (logical channel identifier) - max 4096, loctet de contrle, le champ de donnes, la somme de test (FCS - frame check sequence),
Chaque noeud de communication maintient une table de correspondances entre les adresses de destination et des numros logiques des liens. La valeur du LCI peut tre diffrente sur les liens physiques conscutifs.
Rseaux informatiques
119
Rseaux WAN
FIGURE 130.
entte donne couche rseau (X.25) FCS - frame check sequence drapeau adresse contrle donnes FCS drapeau
FIGURE 131.
68
0 15
120
40
120
Rseaux informatiques
drapeau
RFH
trame "relaye"
FCS
drapeau
RFH - relay frame header DLCI (6) DLCI (4) FECN BECN C/R DE EA EA
DLCI - 10 bits, data-link connection identifier identifies uniquely the virtual circuit to which the frame belongs C/R - 1 bit, a command/response bit EA - 2 bits, the extended address markers, 0 in the first byte and 1 in the second to indicate the end of the header FECN - 1 bit, forward explicit congestion notification, BECN - 1 bit, backward explicit congestion notification DE - 1 bit, discard eligibility
Une trame relais de trames commence et se termine par un fanion (0x7E). Le contenu de la trame est protg par un code FCS sur 16 bits. Le champ DLCI (10 bits) identifie un des 1024 circuits virtuels; il est utilis pour le routage. Le rseau frame relay offre seulement des circuits virtuels permanents PVC (Permanent Virtual Circuits).
Rseaux informatiques
121
Rseaux WAN
Services "frame relay" Le service frame relay permet de relayer les trames utilisateur dont la taille ne dpasse pas 8192 octets (e.g. une trame Ethernet contient 1520 octets). Lacheminement des trames est trs rapide; les commutateurs de frame relay neffectuent ni la dtection des erreurs ni la retransmission. Les trames qui provoquent une congestion sont abandonnes. Les dbits offerts par les frame relays varient entre 128 Kbit/s et 34 Mbit/s. Nanmoins, la prsence de plusieurs noeuds de communications peut introduire des dlais difficilement acceptables pour les applications temps-rel. La congestion est un autre problme rsoudre. Les rseaux de frame relay rduisent ces difficults par lemploi des plusieurs indicateurs tels que: FECN - Forward Explicit Congestion Notification, BECN - Backward Explicit Congestion Notification, DE - Discard Eligible.
Les indicateurs FECN et BECN sont initialiss par le rseau pour informer les noeuds de communication du problme de congestion. Le bit DE=1 sert indiquer que la trame en question est moins prioritaire et peut tre abandonne.
FIGURE 133.
DLCI Paris London DLCI - data link connection identifier CIE - customer interface equipment 67 88 LAN A CIE
Nantes
LAN C CIE
Paris
Nantes Paris
Un utilisateur qui a ngoci les services avec un dbit garanti peut tre sr que toutes les trames qui respectent le dbit ngoci soient achemines sans problme.
122
Rseaux informatiques
Rsum
Rsum
Les rseau xet les liens longue distance offrent une multitude de services permettant dinterconnecter les rseaux locaux et les postes des utilisateurs individuels. Selon les besoins les services WAN permettent de communiquer avec des dbits importants et des dlais relativement courts. Une partie non ngligeable des ressources de communication longue distance est sollicite par les fournisseurs de services Internet. Une autre partie est exploite par les tablissements pour leur rseaux virtuels. Dautres services, tels que la tlconfrence et le tltravail ncessitent galement des ressources de tlcommunication haut dbit. Dans les annes venir, les services WAN seront de plus en plus sollicits par les applications multimedia offertes sur lInternet et seront accessibles par le biais des connexions xDSL.
Rseaux informatiques
123
Sockets
1.0 BSD Unix Interface to Internet Protocols
The Unix input and output operations follow a paradigm sometimes referred to as openread/write-close. This scheme includes character oriented I/O devices like teletypes (ttys), and block oriented devices like disks and data files. However, the network based devices need more complex interaction between user processes. In particular, an interface to protocols must allow users to create both server process that awaits connections passively and client process that forms connections actively. Furthermore, user processes may wish to communicate using both connectionless as well as connection based operations. Given all these cases the BSD Unix Interface to Internet Protocols proposes several additional system calls coping with the increased complexity of network based I/O functionalities. This interface is provided by means of an abstraction known as the socket. We can still think of a socket as a generalization of the initial open-read/write-close paradigm. The essential difference between file descriptors or IPC identifiers and sockets is that the creation of a socket does not bind it to a specific destination address or device. To create a socket the socket call is used (sid=socket(af,type,protocol)). The af parameter stands for address family and indicates how to interpret network addresses passed through the network calls. The type parameter specifies the type of communication desired, and finally the protocol parameter gives the protocol number to be used. Notice that in the socket call there is nothing to attach the socket to a specific network address or device. The following table gives us a comparison between several inter process communication calls based on files/ FIFOs, messages, and sockets. These call are grouped according to the server and client functionalities. The underlying differences between two basic communication modes, connection-oriented and connectionless, significantly influence the choice of the network calls necessary to provide an effective communication between two processes. Figure 4.21 illustrates the suites of network calls used respectively for connectionless and connection-oriented protocols.
Sockets
9 juin 1999
TABLEAU 1.
files/FIFOs
Server create endpoint bind address specify queue wait for connection Client create endpoint open(), mknod() open(), mknod()
messages
msgget()
sockets
socket() bind() listen() accept()
msgget()
transfer data
read(),write()
msgrcv()
transfer datagrams
terminate
close(),unlink()
msgctl() shutdown()
FIGURE 1. Connectionless communication with DATAGRAM sockets: without server address preparation,
a) socket()
socket()
bind()
bind() recvfrom()
CLIENT
Connectionless communication with DATAGRAM sockets a) without server address preparation,
SERVER
b) with server address prepared by connect call (which does not mean connection establishment)
Sockets
9 juin 1999
FIGURE 2. Connectionless communication with DATAGRAM sockets: with server address prepared
b) socket() socket()
bind()
bind()
connect()
read()
CLIENT
Connectionless communication with DATAGRAM sockets a) without server address preparation,
SERVER
b) with server address prepared by connect call (which does not mean connection establishment)
bind()
socket() socket()
listen()
accept() accept() connect() connect() read() read() write() service process read()
CLIENT
write()
SERVER
Connection-based communication with STREAM sockets. The connect call in the client process establishes connection.
Sockets
9 juin 1999
port
port
DATASTREAM socket() bind() connect() write() read() socket() bind() connect() write() read()
port
port
Datagram and Datastream communication and the corresponding socket based operations.
Sockets
9 juin 1999
The content of the sa_data[14] field for the Internet family is as follows :
struct sockaddr_in { short sin_family; /* AF_INET */ u_short sin_port; /* 16 bit port number - nbo */ struct in_addr sin_addr; /* 32 bit netid/hostid */ char sin_zero[8]; /* unused */ };
Where :
struct in_addr { u_long s_addr; }; /* 32-netid/hostid */ /* nbo - network byte ordered */
Sockets
9 juin 1999
Only few combinations of the above presented address families and type parameters are valid: AF_INET SOCK_STREAM SOCK_DGRAM SOCK_RAW TCP UDP IP AF_UNIX yes yes
Typically, the prot argument is set to zero. The sd value returned by the socket call is a small integer similar to file descriptor. We call it socket descriptor. Notice that after the socket call, which specifies only the address domain and protocol to be used, we still need to bind it to a real hosts addresses and ports. To close a socket we use close call. int close(int sd); In the Unix domain (AF_UNIX) a specific socket call - sockpair creates a pair of socket descriptors. The socketpair call is, to some extent, analogous to the pipe call. An example of two allowable socketpair call versions is given below. int s[2];
/* socket input-s[1]/output descriptors s[0]*/ socketpair(AF_UNIX,SOCK_STREAM,0,s);
or
socketpair(AF_UNIX,SOCK_DGRAM,0,s);
Remark: To be used effectively the s[0]and s[1] descriptors must be bound to the internal Unix addresses - pathnames. int bind(int sd,struct sockaddr *ma,int al); The sd argument is the socket descriptor obtained after the socket call, the second
Sockets
9 juin 1999
argument *ma is a pointer to Internet (Unix) protocol specific address, and the third argument is the size of the address structure - sizeof(sockaddr) or sizeof(sockaddr_un). There are three uses of bind call: to register the well-known addresses of the server for both connection-oriented and connectionless protocols; to register specific addresses of the client for itself; to specify some unique address for a client in order to pass it on to the server. When binding a socket to the service port we dont need to know the underlying Internet address. The following fragment of program illustrates this case:
#include #include #define <netinet/in.h> <arpa/inet.h> SERV_TCP_PORT 7000
main(argc,argv) int argc; char *argv[]; { int sockfd; struct sockaddr_in sa; if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { printf("server: cant open stream socket"); exit(1);} bzero((char *)&sa,sizeof(sa)); sa.sin_family = AF_INET; sa.sin_addr.s_addr = htonl(INADDR_ANY); sa.sin_port = htons(SERV_TCP_PORT); if(bind(sockfd,(struct sockaddr *)&sa,sizeof(sa))<0) { printf("bind: cant connect local address"); exit(2);} /* rest of the server program */
The binding of sockets in the Unix domain is much simpler. All we need is an ASCII string representing the datapath association.
#include <sys/un.h> .. struct sockaddr_un sa; ... sockfd=socket(AF_INET,SOCK_STREAM,0)) sa.sin_family = AF_UNIX; strcpy("/tmp/toto",sa.sun_path); bind(AF_UNIX,(struct sockaddr_un *)&sa, sizeof(sa))
Sockets
9 juin 1999
connect(int sd,struct sockaddr *sa,int al. The sd argument is the socket descriptor obtained after the socket call, the second argument *sa is a pointer to Internet (Unix) protocol specific and remote server address, and the third argument al is the size of the address structure. The connect call results in the establishment of a connection between local and remote Unix kernel. The client process connecting to the remote server does not need to bind the socket before calling connect. In this case, the connect call associates a local address (port number and Internet address) to the local process. Notice that for the datagram based communication the bind call is obligatory in the client process. The client can also evoke the connect call just to prepare the remote server address to be used in the consecutive datagrams. The connected datagrams can be sent and received by using simple write/read calls.
#include <netinet/in.h> #include <arpa/inet.h> #define SERV_TCP_PORT 7000 #define SERV_HOST_ADDR "191.8.220.44" main(argc,argv) int argc; char *argv[]; { int sockfd; struct sockaddr_in sa; bzero((char *)&sa,sizeof(sa)); sa.sin_family = AF_INET; sa.sin_addr.s_addr = inet_addr(SERV_HOST_ADDR); sa.sin_port = htons(SERV_TCP_PORT); if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { printf("client: cant open stream socket"); exit(1);} if(connect(sockfd,(struct sockaddr *)&sa, sizeof(sa))<0) { printf("client: cant connect to server address"); exit(2); }
int listen(int sd,int backlog); The listen call is executed after the bind call. The backlog argument specifies the size of connection queue, it means the number of consecutive connection calls to be allowed by the server process. Recall the client-server model with multiple servers (Figure 4.20), where the initial server process forks at each new connection request call. Normally, the listen call is immediately followed by the accept call. accept(int sd,struct sockaddr *ca,int *al); The accept call takes the first connection request on the queue and creates a new socSockets 9 juin 1999 8
ket which has the same properties as the initial one. The *ca argument receives the address of the newly connected client process. For the Internet the value of al argument is the actual number of bytes in the ca argument. The following fragment shows the use of accept call in the context of a concurrent server.
if(bind(sd,(struct sockaddr *)&sa,sizeof(sa))<0) printe("bind: cant connect local address"); listen(sd,5); for(;;) { cl=sizeof(ca); newsd=accept(sd,(struct sockaddr *)&ca,&cl); if(newsd<0) printe("server: accept error"); if((childpid=fork())<0) printe("server: fork error"); else if(childpid==0) { close(sd); do_something_with(newsd); exit(0); } close(newsd); /* parent process */ } }
Sockets
9 juin 1999
- datagram transfers
int sendto(int sd,char *buff,int nb,int flags, struct sockaddr *to,int al); int recvfrom(int sd,char *buff,int nb,int flags, struct sockaddr *from,int al);
All four transfers return the number of bytes sent/received effectively by the function. The possible flags arguments are the following : MSG_OOB MSG_PEEK MSG_DONTROUTE send or receive out-of-band data peek the incoming message (not destructive receive) bypass routing
adresses */
client
server
In this model the client sends the server the name of the file he wants to read. The server receives the name, opens the file (if it exists), and transmits the content of the file to the client. The IPC device used now in our example is socket mechanism. In the first three versions of the model, the client and the server reside at the same Unix kernel. It means that the address domain used is the Unix domain. The first and the second version are based on datagram communication, so the socket creation call, both in the client and in the server process is as follows: socket(AF_UNIX,SOCK_DGRAM,0); This socket is bound explicitly by bind call or implicitly by connect call to the local name, then the communication proceeds through sendto and recvfrom calls.
Sockets
9 juin 1999
11
The server process creates sdc socket (sdc is sockets descriptor), and it binds the socket with local name "socket_c" previously loaded into client_s structure. Then it prepares server_s structure describing the server socket and passes it to client_dg function. The client_dg function reads the name of the file from standard input and sends it the server process (sendto); then the client process suspends and awaits the result at recvfrom call. The received data, error message or file content, are displayed at the standard output.
Sockets
9 juin 1999
12
if((sds=socket(AF_UNIX,SOCK_DGRAM,0))<0) printe("server: cant socket s"); bzero((char *)&server_s,sizeof(server_s)); server_s.sun_family=AF_UNIX; strcpy(server_s.sun_path,"socket_s"); if((bind(sds,(struct sockaddr *)&server_s, sizeof(server_s)))<0) printe("server: cant bind sds"); printf("server started \n"); client_s.sun_family=AF_UNIX; strcpy(client_s.sun_path,"socket_c"); server_dg(sds,(struct sockaddr *)&client_s, sizeof(client_s)); close(sds); write(1,"\n end of server \n",21); unlink("socket_s"); exit(0); }
The server process creates a datagram socket and binds it with a local name (socket_s). Then it prepares the client socket address structure and passes it to server_dg function along with the local socket descriptor (sds). The server_dg function uses these arguments to receive (recvfrom) and to send the data (sendto). After the data has been sent, the server ends execution and exits.
server_dg(sd,sad,adl) int sd;struct sockaddr *sad;int adl; { char buff[MAXBUFF], errmesg[256]; int n,fd; int clen=adl; n=recvfrom(sd,buff,MAXBUFF,0,sad,&clen); if(n<0) printe("server: cant recvfrom \n"); buff[n]=\0; if((fd=open(buff,0))<0) { sprintf(errmesg," \ncant open file %s\n",buff); strcat(buff,errmesg); n=strlen(buff);n++; if(sendto(sd,buff,n,0,sad,clen)<0) printe("server: errmesg write error \n"); } else { printf("server sending a file \n"); while((n=read(fd,buff,MAXBUFF))>0) if(sendto(sd,buff,n,0,sad,clen)<0) printe("server: file write error \n"); if(n==0)return 0; } }
Sockets
9 juin 1999
14
FIGURE 6. Internet domain communication with sockets: a simple file server Internet socket Internet address ? port ? ETHERNET Internet socket Internet address 191.8.220.12 port 8000
client
server
Sockets
9 juin 1999
15
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include "dg_un.h" #define UDP_port 8000
/* server port */
main() { int sds; struct sockaddr_in server_s,client_s; if((sds=socket(AF_INET,SOCK_DGRAM,0))<0) printe("server: cant socket s"); bzero((char *)&server_s,sizeof(server_s)); server_s.sin_family=AF_INET; server_s.sin_addr.s_addr=htonl(INADD_ANY); server_s.sin_port=htons(UDP_port); if((bind(sds,(struct sockaddr *)&server_s, sizeof(server_s)))<0) printe("server: cant bind sds"); server_dg(sds,(struct sockaddr *)&client_s, sizeof(client_s)); close(sds); exit(0); }
#define TCP_port 8000 #define HOST_addr "191.8.220.12" main(c,v) int c; char **v; { int sdc; struct sockaddr_in server_s; if((sdc=socket(AF_INET,SOCK_STREAM,0))<0) printe("client: cant socket_c"); bzero((char *)&server_s,sizeof(server_s)); server_s.sin_family=AF_INET; server_s.sin_addr.s_addr = inet_addr(HOST_addr); if(c==1) server_s.sin_port=htons(TCP_port); else server_s.sin_port=htons(atoi(v[1])); connect(sdc,(struct sockaddr *)&server_s,sizeof(server_s)); client_str(sdc); close(sdc); exit(0); }
Sockets 9 juin 1999 16
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include "str_un.h" #define TCP_port 8000 main(c,v) int c; char **v; { int sds,new_sds; int clen; int cpid; struct sockaddr_in server_s,client_s; if((sds=socket(AF_INET,SOCK_STREAM,0))<0) printe("server: cant socket s"); bzero((char *)&server_s,sizeof(server_s)); server_s.sin_family=AF_INET; server_s.sin_addr.s_addr = htonl(INADDR_ANY); if(c==1)server_s.sin_port=htons(TCP_port); else server_s.sin_port=htons(atoi(v[1])); if((bind(sds,(struct sockaddr *)&server_s,sizeof(server_s)))<0) printe("server: cant bind sds"); printf("server started \n"); listen(sds,4); for(;;) { clen=sizeof(client_s); if((new_sds=accept(sds, (struct sockaddr *)&client_s,&clen))<0) printe("server: cant accept"); if((cpid=fork())<0) printe("server: cant fork"); else if(cpid==0) { close(sds); server_str(new_sds); exit(0); } close(new_sds); } }
Sockets
9 juin 1999
17
struct hostent
*gethostbyname(char *hostname);
The following program takes the name of the host and the name of the service and displays the corresponding Internet address (dotted format) and port number.
/* getport.c */ #include #include #include #include #include <sys/types.h> <sys/socket.h> <stdio.h> <netinet/in.h> <netdb.h>
main(c,v) int c; char **v; { struct hostent *host; struct servent *service; struct in_addr *addr; if(c<3) { printf("usage: getport host_name service_name [protocol_name]\n"); exit(1); } host = gethostbyname(v[1]); addr = (struct in_addr *) *(host->h_addr_list); printf("Internet address: %s ",inet_ntoa(*addr)); if(c==4)service = getservbyname(v[2],v[3]); else service = getservbyname(v[2],NULL); printf("port number: %lu \n",ntohl(service->s_port)); }
Sockets 9 juin 1999 18
Executions example :
$getport samara ftp tcp Internet address: 191.8.220.31 port number: 21
The steps required by a client to start a dialogue with a server process are standard. For the connectionless protocol (UDP based) we go through socket, bind, and optionally connect call to prepare the server address for the future datagrams. In this context we would like not to use hard-coded network addresses but those supplied by network utility routines. Below we provide some utility functions that handle a large number of operations required by a typical client/server model application.
#include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> #include <stdio.h> #include <netinet/in.h> #include <netdb.h> typedef int INsct ; /* Internet socket*/ INsct crs (/*int type*/) ; void gpn (/*INsct s*/) ; void gpn_p (/*INsct s, int nport*/) ; void connet (/*INsct s, char *rhost, int nport*/) ; INsct mkc INsct mks INsct mks_p (/*int type, char *rhost, int nport*/) ; (/*int type*/) ; (/*int type, int nport*/) ;
INsct crs(type) int type ; {int sock ; if ((sock = socket(AF_INET, type, 0)) < 0) { perror ("crs") ; exit (1) ; } return sock ; } void gpn(s) INsct s ; {struct sockaddr_in pub_name ; int lg = sizeof pub_name ; bzero((char *)&pub_name,lg); pub_name.sin_family = AF_INET ; pub_name.sin_addr.s_addr = INADDR_ANY ; pub_name.sin_port = htons(0); if (bind (s, (struct sockaddr *) & pub_name, sizeof pub_name) < 0) { perror ("gpn:bind") ; exit (1) ; } if (getsockname (s, (struct sockaddr *) &pub_name, &lg) < 0) { perror ("gpn:getsockname") ; exit (1) ; } printf ("port number allocated: %d\n", ntohs (pub_name.sin_port)) ; }
Sockets
9 juin 1999
19
void gpn_p(s,nport) INsct s ;int nport ; {struct sockaddr_in pub_name ; int lg = sizeof pub_name ; bzero((char *)&pub_name,lg); pub_name.sin_family = AF_INET ; pub_name.sin_addr.s_addr = INADDR_ANY ; pub_name.sin_port = htons(nport); if (bind (s, (struct sockaddr *) & pub_name,sizeof pub_name) < 0) {perror ("gpn:bind") ; exit (1) ; } if (getsockname (s,(struct sockaddr *) &pub_name, &lg) < 0) { perror ("gpn:getsockname") ; exit (1) ;} printf ("port number allocated: %d\n", ntohs (pub_name.sin_port)) ; } void connet(s,rhost,nport) INsct s ; char *rhost ; int nport ; {struct sockaddr_in pub_name ; struct hostent *he ; pub_name.sin_family = AF_INET ; if ((he = gethostbyname (rhost)) == NULL) { fprintf (stderr, "connet:gethostbyname%s: unknown host\n",rhost); exit (1) ; } bcopy((char *) he->h_addr,(char *)&pub_name.sin_addr, he->h_length); pub_name.sin_port=htons(nport); if (connect(s,(struct sockaddr *) & pub_name,sizeof pub_name) < 0) {perror ("connet:connect") ; exit (1) ;} } INsct mkc(type,rhost,nport) int type ; char *rhost ; int nport ; {INsct s ; s = crs(type) ; connet (s,rhost,nport); return s ; } INsct mks(type) int type ; {INsct s ; s = crs(type) ; gpn(s) ; return s ; } INsct mks_p(type,nport) int type ; int nport; {INsct s ; s = crs(type) ; gpn_p(s ,nport) ; return s ; }
Now we can use our library file to simplify the previously introduced versions of client and server programs.
Sockets 9 juin 1999 20
For example the TCP version of the client program can be expressed as:
#include "lib_util.c" #include "str_un.h" main(c,v) int c; char **v; { INsct sdc; if(c!=3) { printf("usage: c31 host_name port_number\n"); exit(1);} sdc=mkc(SOCK_STREAM,v[1],atoi(v[2])); if(sdc<0)printe("client: cant socket_c"); client_str(sdc); close(sdc); exit(0); }
Notice, that the user must deliver the servers host name (ASCII string) and the port number. The corresponding server program may be presented in two forms; the first one expresses concurrent server, the second sequential server.
#include "lib_util.c" #include "str_un.h" main(c,v) int c; char **v; { INsct sds,new_sds; int cpid; if((sds=mks(SOCK_STREAM))<0) printe("server: cant socket s"); listen(sds,4); for(;;) { if((new_sds=accept(sds,NULL,NULL))<0) printe("server: cant accept"); if((cpid=fork())<0) printe("server: cant fork"); else if(cpid==0) { close(sds); server_str(new_sds); exit(0); } close(new_sds); } }
Sockets
9 juin 1999
21
#include "lib_util.c" #include "str_un.h" main(c,v) int c; char **v; { INsct sds,new_sds; if(c!=2) {printf("usage: s312 port_number\n");exit(1);} if((sds=mks_p(SOCK_STREAM,atoi(v[1])))<0) printe("server: cant socket "); listen(sds,4); for(;;) { if((new_sds=accept(sds,NULL,NULL))<0) printe("server: cant accept"); server_str(new_sds); close(new_sds); } }
Finally, we shall try to find automatically the server host and process by looking through the network database. In the following client example the parent process looks for the existing hosts by using gethostent call. Then it creates one child process per host address. Each child process uses this address trying to connect with a server (the service port number is fixed). After the connect failure or time_out fixed in the program the child process exits, otherwise it connects. The server program is the same as in the previous example.
#include "lib_util.c" #include "str_un.h" #include <signal.h> #define tempo 3 int connection; ch_inter(n) /* child interrupt procedure */ int n; { signal(n,ch_inter); printf("to long delay\n"); kill(getppid(),SIGUSR2); exit(1); } inter(n) /* parent interrupt procedure */ int n; { signal(n,inter); if (n==SIGUSR1) { if (connection==0) printf("successful connection \n"); connection=connection+1; } if (n==SIGUSR2) printf("no connection\n"); }
Sockets 9 juin 1999 22
main (c,v) int c; char **v; { INsct sock ; struct hostent *hp; struct sockaddr_in pub_name; int n,recep_signal; signal(SIGALRM,ch_inter); signal(SIGUSR1,inter); signal(SIGUSR2,inter); connection=0; if(c!=2) { printf("usage: c312rech port_number\n");exit(1);} sethostent(1); while ((hp=gethostent())!=NULL) { if ((n=fork())==0) {printf("\ntried host : %s\n",hp->h_name); sock = crs(SOCK_STREAM); pub_name.sin_family = AF_INET; bcopy ((char *) hp->h_addr,(char *) & pub_name.sin_addr,hp->h_length); pub_name.sin_port = htons (atoi(v[1])); alarm(tempo); if (connect (sock,(struct sockaddr *) & pub_name, sizeof pub_name) <0) { signal(SIGALRM,SIG_IGN); kill(getppid(),SIGUSR2); close(sock); exit(1); } else { signal(SIGALRM,SIG_IGN); kill(getppid(),SIGUSR1); printf("\nyou are connected with %s\n",hp->h_name); client_str(sock); close (sock) ; kill(getppid(),SIGUSR1); exit(0); } } else { /* parent process */ pause(); if (connection==1) break; } } endhostent(); if (connection==0) printf("\nno connection found\n"); else while (connection != 2 ); exit(0); }
Sockets
9 juin 1999
23
9.0 Broadcasting
One of the interesting possibilities of datagram communication is broadcasting. As you recall, to broadcast a datagram we need to construct an Internet address in which all the bits indicating host computers must be set to 1. For example all hosts connected to a class B network 128.5.X.X will be addressed by 128.5.255.255 value. The following example contains two programs; the first one broadcasts messages (server), the second receives messages (client).
#include "lib_util.c" #include "printe.h" #define portnum 5555 main(c,v) /* emitter */ int c; char **v; { INsct sock; struct netent *netbuf; u_long netaddr; int i_val; struct sockaddr_in destaddr; if (c!=3) {printf("usage : broadcast network_name message\n"); exit(1);} sock=mks_p(SOCK_DGRAM,portnum+1); netbuf = getnetbyname(v[1]); if(netbuf==NULL)printe("net name unknown"); netaddr=netbuf->n_net; do { netaddr = netaddr << 8; netaddr = netaddr | 0xFF; } while (netaddr < inet_addr("0.255.255.255")); destaddr.sin_family = AF_INET; destaddr.sin_addr.s_addr = netaddr; destaddr.sin_port = portnum; sendto(sock,v[2],strlen(v[2]),0,&destaddr,sizeof destaddr); } #include "lib_util.c" #define portnum 5555 main () /* receiver */ { INsct sock ; char buf [1024] ; sock = mks_p (SOCK_DGRAM,portnum) ; while(1) { read (sock, buf, 1024) ; if(*buf==.) break; printf ("the received message: %s\n", buf) ; } close (sock) ;}
Sockets 9 juin 1999 24
Sockets
9 juin 1999
25
destaddr.sin_family = AF_INET; destaddr.sin_addr.s_addr = netaddr; destaddr.sin_port = atoi(v[1]); sendto(sock,message,strlen(message)+1,0,&destaddr,sizeof destaddr); read(sock,recep,1024); printf("client: received server name %s\n",recep); close(sock); sleep(10); sock=mkc(SOCK_STREAM,recep,atoi(v[1])+2); if(sock<0) printe("client: cant mkc"); client_str(sock); close(sock); exit(0); }
out-of-band
normal data
buffer
buffer
The TCP protocol allows the use of single-byte (of-line) as well as unlimited-size (inline) out-of band data. The following example shows the implementation of a single-byte out-of-band data. In the sending program we use a send call with MSG_OOB flag to indicate that the onebyte oob value is to be sent as out-of-band data.
#include "lib_util.c" #include "printe.h" #include <sys/stat.h> #define port_number 6000 main(c,v) int c; char **v; { INsct sock; char oob=x; if(c!=3) {printf("usage: oob_s1 dest_name normal_message");exit(1);}
Sockets 9 juin 1999 27
sock=mkc(SOCK_STREAM,v[1],port_number); if(sock<0) printe("client: cant mkc"); if(send(sock,v[2],strlen(v[2])+1,0)<0)printe("client cant send"); if(send(sock,&oob,1,MSG_OOB)<0) printe("client cant send out of band"); printf("out of band message sent\n"); close(sock); }
Notice, that because of the buffering operations at the receiving end, the out-of-band data will be received before the normal message. The receiving process is slightly more complicated. To prepare the reception of out-ofband data, two operations must be carried out. First, the SIGURG signal is redirected towards a user defined function; then the socket driver is informed that the SIGURG signal handling is carried out by the user process. This can be established by calling fcntl with a command of F_SETOWN, or by calling ioctl with a command of either FIOSETOWN or SIOCSPGRP.
#include #include #include #include #include "lib_util.c" "printe.h" <sys/stat.h> <sys/fcntl.h> <signal.h>
#define port_number 6000 INsct sock,sock_conn; oob() { char mark; if(recv(sock,&mark,1,MSG_OOB)<0) printe("recv: cant receive"); printf("oob character: %c\n",mark); close(sock); close(sock_conn); exit(0); } main() { int pid; signal(SIGURG,oob); sock_conn=mks_p(SOCK_STREAM,port_number); listen(sock_conn,4); sock=accept(sock_conn,NULL,NULL); if(fcntl(sock,F_SETOWN,-getpid())<0) printe("recv: cant fcntl "); for(;;); }
The next example implements, in a simplified way, the capture of Control-C and Delete signals by the client process and the urgent transmission of these signals towards the server process. The server process accepts this data (1 byte specifying the signal number) and kills itself by sending the corresponding signal.
Sockets 9 juin 1999 28
#include "lib_util.c" #include "printe.h" #include <sys/stat.h> #include <signal.h> #define port_number 6000 INsct sock; s_oob(sn) int sn; { char ascii_s; ascii_s=sn +0; if(send(sock,&ascii_s,1,MSG_OOB)<0) printe("send:cant send out of band"); close(sock); exit(sn); } main(c,v) int c; char **v; { if(c!=3){printf("usage: oob_s2 dest_name normal_message");exit(1);} signal(SIGINT,s_oob); signal(SIGQUIT,s_oob); sock=mkc(SOCK_STREAM,v[1],port_number); if(sock<0) printe("send: cant mkc"); for(;;) if(send(sock,v[2],strlen(v[2])+1,0)<0) printe("client cant send"); }
Sockets
9 juin 1999
29
main() { char buff[128]; int nm; signal(SIGURG,oob); sock_conn=mks_p(SOCK_STREAM,port_number); listen(sock_conn,4); sock=accept(sock_conn,NULL,NULL); if(fcntl(sock,F_SETOWN,-getpid())<0) printe("recv: cant fcntl "); for(;;) { nm=read(sock,buff,128); write(1,buff,nm); } }
The example above shows how to capture an out-of-band byte independently from its main stream. If we do not need the urgent data to be immediately signalled we may keep it in the main data stream. To extract the out-of-band data we use the ioctl call with SIOCATMARK operation and the corresponding recv call. The following example illustrates a receiver program to which the sender transmits urgent data.
#include "lib_util.c" #include "printe.h" #include <sys/stat.h> #include <sys/ioctl.h> #define port_number 6000 INsct sock,sock_conn; char *mark(sd) int sd; {int m; char oob; static char buf[1024]; while(1) { if(ioctl(sd,SIOCATMARK,&m)==-1) printe("cant ioctl"); if(m==1)break; recv(sd,buf,1024,0); } if(recv(sd,&oob,1,MSG_OOB)<0) printe("cant recv oob"); return &oob; } main() { int pid; int on=1; sock_conn=mks_p(SOCK_STREAM,port_number); listen(sock_conn,4); sock=accept(sock_conn,NULL,NULL); printf("received oob : %c \n", *mark(sock)); }
Sockets 9 juin 1999 30
Sockets
9 juin 1999
31
Two system calls,set/get sockopt allow us to get and set the above listed options.
> int getsockopt(int sd,int level,int option, char *arg_p,int al) > int setsockopt(int sd,int level,int option, char *arg_p,int al) /* Additional options, not kept in so_options. */ #define SO_SNDBUF 0x1001/* send buffer size */ #define SO_RCVBUF 0x1002/* receive buffer size */ #define SO_SNDLOWAT 0x1003/* send low-water mark */ #define SO_RCVLOWAT 0x1004/* receive low-water mark */ #define SO_SNDTIME 0x1005/* send timeout */ #define SO_RCVTIME 0x1006/* receive timeout */ #define SO_ERROR 0x1007/* get error status and clear */ #define SO_TYPE 0x1008/* get socket type */
Sockets
9 juin 1999
32
The following example shows the use of some of the above listed socket options:
#include "lib_util.c" #include "printe.h" #include <sys/stat.h> #include <sys/fcntl.h> main(c,v) int c; char **v; { INsct sock; int st,n; struct linger l; if(c!=3) { printf("usage: op1 dest_name port"); exit(1); } sock=mkc(SOCK_STREAM,v[1],atoi(v[2])); if(sock<0) printe("client: cant mkc"); st=4096; setsockopt(sock,SOL_SOCKET,SO_SNDBUF,&st,4); l.l_linger=1; l.l_onoff=1; setsockopt(sock,SOL_SOCKET,SO_LINGER,&l,sizeof(l)); fcntl(sock,F_SETFL,FNDELAY|fcntl(sock,F_GETFL,0)); st=0; for(;;) { n=write(sock,"0123456789",10); if(n<0) { printf("cant write\n"); break; } st+=n; } fcntl(sock,F_SETFL,FNDELAY^fcntl(sock,F_GETFL,0)); printf("the size of output+input buffers =%d\n",st); printf("close sock demanded\n"); close(sock); printf("close sock realized"); }
13.0 Summary
In this chapter we have presented essential internetwork protocols and socket mechanisms available to system programmers operating under BSD and Sun Unix systems. Only basic network protocols have been presented; among them: IP (Internetwork Protocol), UDP (User Datagram Protocol), and TCP (Transport Control Protocol). All of them may be used through socket mechanism which makes it possible to elaborate the applications which require connectionless as well as the connection oriented communication. This communication may be realized internally in the Unix domain or externally between separate Unix kernels in the Internet domain.
Sockets 9 juin 1999 33
We have used the well-known client/server model introduced previously to illustrate various possible applications built on sockets. Several additional examples have been used to explain the functioning of out-of-band communication and asynchronous reception. Additionally, we have presented a simple program involving the use of socket options in order to control the operations related to buffers size.
Sockets
9 juin 1999
34
to obtain - obtenir, to result in - mener , entraner, protocol specific and remote server address - ladresse du serveur distant spcifique de protocole, backlog - compteur de demandes de connexions, to fork - bifurquer, se rproduire, newly connected - nouvellement connect, it means the number of consecutive connection calls to be allowed by - il signifie le nombre acceptable dappels conscutifs de connect, takes the first connection request on the queue - prend la premire demande de connexion dans la file dattente, to spawn - taler, (ici) gnrer, all four - tous les quatres, flag - drapeau, out-of-band data - donne hors piste (hors canal de base) to peek - jeter un coup doeil furtif , bypass routing - contourner (le protocole) de routage, data move - dplacement de donnes, host short - un entier court (16 bits), host long - un entier long (32 bits), dest address - adresse destination, dotted Internet address - adresse Internet avec les codes des octets spars par points, which are not necessarily ended - lesquelles (chaines) ne sont pas ncessairement trmines, IPC device - InterProcess Communication device - dispositif de communication entre processus, he wants to read - (lequel) il veut lire, the client and the server reside at the same Unix kernel - les processus client et serveur rsident sous le contrle du mme noyau UNIX, previously loaded into client_s structure - charg prcdemment dans la structure client_s, along with - avec, after the data has been sent , the server ends execution and exits - aprs avoir envoy des donnes, le serveur termine lexcution et sort, Internet addressing - adressage type Internet, anyway - en tous cas, unused - non utilis, must be known to the client - doit tre connue du client, should be greater than - devrait tre plus grand que, setting the port to zero causes the system - linitialisation du numro de port zro amne le systme attribuer, to look for - chercher, support several library routines - fournissent plusieurs routines de bibliothque, let us consider a case - considrons un cas, future datagrams - datagrammes venir, hard-coded - (ici) sous forme de constantes, the steps required by a client to start a dialogue - les pas dont le client a besoin pour commencer le dialogue, below we provide some utility functions that handle - ci-dessous nous apportons quelques fonctions utilitaires qui grent, we shall try to find out - nous allons essayer de rtrouver, to look for - chercher , failure - chec, otherwise - autrement, sinon, to broadcast - diffuser, must be set to 1 - doivent tre positionns 1, this time - cette fois-ci, sends as the reply - envoie comme rponse,
Sockets 9 juin 1999 35
must bind its - doit lier son, an externally known - connue lextrieur, to start with - commencer par, out-of-band - hors piste, hors canal principal, byte-stream service - service flot doctets, boundary - borne, limite, wants to disable - veut invalider, empcher, urgent data - donne urgente, keyboard - clavier, is termed - est appel,est nomm expedited - expresse, receiving end - du cot du rcepteur, to appear as - apparatre comme, channel - canal, band - bande, piste, then passes it to next lower layer - ensuite il le transmet au niveau immdiatement infrieur, terminal flow control characters - caractres de contrle de flot de donnes partir dun clavier, might have been buffered - aurait pu tre buffrise, single-byte - octet simple, because of the buffering operations at the receiving end - cause des oprations de bufferisation sur le terminal de rception, is slightly more complicated - est un peu plus compliqu, kills itself by sending the corresponding signal - se tue par lenvoi du signal correspondant, main stream - flot principal, we do not need the urgent data to be immediately signalled - nous navons pas besoin que la donne urgente soit immdiatement signale, be signalled - tre signal, separate Unix kernels - noyaux Unix spars, introduced previously - qui a t introduit prcdemment, built on sockets - construites sur les sockets, combined usage - utilisation combine, essential internetwork protocols - protocoles essentiels de la communication inter-rseaux, in order to control the operations related to buffers size - afin de contrler les oprations concernant la taille de tampons,
Sockets
9 juin 1999
36