Documente Academic
Documente Profesional
Documente Cultură
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:
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
WAN
bus
systme
1 Gbit/s
LAN
1 Mbit/s
PCI, HiPPI, ..
Ethernet, Token Ring, ..
RNIS, Frame Relay, ATM, SDH, DSL,
1 Kbit/s
1 cm
1m
1 Km
..
1000 Km
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,
lanneau,
ltoile,
larborescence,
le maillage.
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.
station - hte
terminal
interface
A, D
A, D
terminal
trame transmettre de A D
Rseaux point--point
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
C2
D
A, D
C1
C2
FIGURE 5.
noeud de
communication
trame transmettre de A D
Topologies point--point
toile
anneau
distance = 2
nbr de liens N-1
~distance = n/2
nbr de liens N
maillage complet
arbre
A, D
Rseaux informatiques
distance = 1
nbr de liens N*(N-1)/2
Topologies
FIGURE 6.
ligne/canal
de sortie
ligne/canal
traitement
dentre
tampons de
paquets, cellules
Rseaux de diffusion
Les rseaux de diffusion, essentiellement les rseaux locaux, sont bass sur un support commun de communication. Ce support peut tre matriel ou hertzien. Ci-dessous nous prsentons quelques topologies de base pour les
rseaux locaux communiquant sur un segment du support matriel.
FIGURE 7.
anneau
satellite
bus - cble
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
modle TCP/IP
couche application
couche session
couche transport
couche transport
couche rseau
couche rseau
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
rseau
interface
interface
liaison
protocole
interface
liaison
interface
physique
protocole
physique
medium physique
codes physiques
5V
ex:
bit 0
0V
000011110000110
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
rseau
paquet
interface
liaison
protocole
liaison
interface
donne
en-tte
acquittement
physique
protocole
trame
code de
contrle
physique
bit
medium physique
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.
message
protocole
rseau
interface
rseau
donne
AD
AS
paquet
protocole
liaison
liaison
trame
interface
protocole
physique
physique
bit
medium physique
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.
applications
stations
processus
ports
couches: rseau, liaison, physique
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
coeur
n1
n2
65 m
125 m
8-10 m
coeur
dispersion chromatique uniquement
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
100 MHz
150 MHz
200 MHz
300 MHz
500 MHz
6,6
22
27
32
39
56
FIGURE 15.
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
Elments du cblage de btiment
FIGURE 16.
cables UMT5
cble externe
salle informatique
(serveurs, routeurs, ..)
concentrateur/
commutateur
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
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
metteur
1000 cycles horloge
rcepteur
1000 cycles horloge
avec une prcision do 0.1%
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.
horloge
temps
0
NRZ
temps
NRZI
temps
Rseaux informatiques
19
Couche physique
TABLEAU 2. Codes
nom du code
prsentation du code
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
Manchester
Ethernet
Manchester diffrentiel
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
Token Ring
TABLEAU 3. Codes
rseaux
nom du code
prsentation du code
rseaux
4B/5B
FDDI
8B/10B
Fiber
Channel
TABLEAU 4. Codes
20
nom du code
prsentation du code
rseaux
Ethernet
100 Mbit/s
- 100BaseTX
8B/6T
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.
Ethernet
100BaseT4
Rseaux informatiques
FIGURE 21.
Manchester
temps
Manchester
diffrentiel
temps
0
MLT3
temps
TABLEAU 5. Codes
nom du code
prsentation du code
rseaux
ATM 155
Mbit/s sur
UTP3
PAM5 - 5 level
Pulse Amplitude
Modulation
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
Ethernet
100Base-T4,
Ethernet
1Gbit/s,
ADSL
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.
code physique
dform
code physique
dform
0111110
0111110
code physique normal
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
N files dattente
1
canal dynamique
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
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.
demande
TDMA
FDMA
contention
Aloha
polling
Aloha-S
jeton
CDMA
registre
CSMA
CSMA/CD
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.
3 octets
U/L I/G
3 octets
numro du constructeur
numro de linterface
token ring
A
coute
B
mission
medium
partag
data frame
rception
C
26
Rseaux informatiques
coute
D
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
mission
medium
partag
token ring
listen node
transmit node
Exercice:
Prenons un ensemble de valeurs - paramtres:
Rseaux informatiques
27
Couche MAC
SD AC ED
1
SD AC FC
Adresse
Destination
quelconque
Adresse
Source
4
Contrle
ED FS
Donnes
dlimiteur de fin
contrle de trame
contrle daccs - dont le bit jeton/trame
tat de la 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:
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
bit moniteur
priorit
bit jeton
rservation de priorit
Rseaux informatiques
29
Couche MAC
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
30
Rseaux informatiques
MAU
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.
transmissioin
support commun
sans
rfrence
temporelle
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.
S - nombre moyen de
trames initiales / dure dune trame
0<S<1
S
G - nombre moyen de
trames / dure dune trame
collisions !
FIGURE 34.
non
non
station 1
non
station 2
non
t
oui
station 3
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.
non
oui
t
oui
non
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.
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
1-persistant
station 1
station 2
station 3
CSMA 1- persistant
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.
non-persistant
station 1
station 2
station 3
Rseaux informatiques
35
Couche MAC
0,5 - persistant
un slot
station 1
station 2
station 3
CSMA p - persistant
Comparaison de lefficacit des protocoles CSMA
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,8
CSMA non-persistant
0,6
CSMA 1-persistant
0,4
Aloha discrtis
0,2
pure Aloha
0,0
0
36
CSMA 0,5-persistant
0,5
1,0
Rseaux informatiques
1,5
2,0
G - charge totale
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
t0 - A commence lmission
A
B
t1= l/v - temps aller, B commence lmission
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
segments physiquement
isols
FIGURE 45.
40
Rseaux informatiques
AD
AS
table de
routage
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
Adresse
Source
Contrle
Donnes Pad
0 - 1500 0 - 46
identificateur/compteur
dbut du la trame
synchronisation
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
time slot
intervalle de temps
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
PARAMETRE
10BASE2
10BASE-T
type de mdium
coax 75 ohms
paire torsade
codage
Manchester
Manchester
Manchester (4B/
5B)
m-phase (NRZ)
dbit en Mbit/s
10
10
100
1000
Rseaux informatiques
100BASE-T
1000BASE-T
paire torsade
43
Couche MAC
TABLEAU 6. Diffrentes
PARAMETRE
10BASE2
10BASE-T
100BASE-T
185
100
1800
tendue max. du
rseau en metres
925
200
3600
diamtre du cable
en millimetres
paire torsade
UTP 3/4
paire torsade
UTP 3/4/5
1000BASE-T
inconnu
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
segments Ethernet
ports
ports
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
segments Ethernet
dbordement
tampons internes
ports
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)
encodeur
du canal
dcodeur
du canal
FSK ou BPSK
gnrateur
du code
pseudoalatoire
modulateur
et spreader
dmodulateur
et despreader
gnrateur
du code
pseudoalatoire
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.
frquences
f24
f20
F18
f16
f12
f8
f4
temps
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.
donne A
squence
B
mission
rception C 0
1
0
C = A xor B
squence
B
donne
A = C xor B
0
1
0
1
1
1
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
WLAN 2
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,
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:
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,
DIFS
DIFS
accs
immdiat
fentre de
contention
PIFS
SIFS
support
occup
accs diffr
fentre de
back-off
trame
temps
temps dun slot
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
Couche liaison
CHAPITRE 4
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
demande
indication
confirmation
rponse
temps
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:
donnes
a
DLE
STX
DLE
DLE
ETX
DLE
b
DLE
DLE
STX
DLE DLE
DLE
ETX
DLE de transparence
c
DLE
STX
DLE
DLE
ETX
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.
011011111111101111101110
01101111101111011111001110
bits de
transparence
011011111111101111101110
0 1 1 1 1 1 1 0 - fanion
Violation du code physique
Lorsque le code physique contient de redondances, il est possible dintroduire des tats anormaux pour marquer
le dbut ou la fin dune trame. Par exemple le code Manchester reprsente le bit 0 par une impulsion positive
(un demi-bit) suivie dune impulsion ngative. Les combinaisons positive-positive (HH) et ngative-ngative
(LL) ne sont pas utilises pour la reprsentation de donnes.
FIGURE 62.
transition 0
HH
LL
HH
absence de transition 1
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
bits errons
(paquet derreurs)
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.
rcepteur
metteur
correction
derreur
trame errone
58
Rseaux informatiques
FIGURE 65.
trame errone
transmission
metteur
rcepteur
acquittemment
retransmission
dtection
derreurs
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.
10001101
bit de parit
erreur simple
10001001
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
0000000000
0000011111
1111100000
1111111111
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:
+1001
+1010
--------=0011
+1001
-1010
--------=0011
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.
gnration
metteur
contrle
rcepteur
donnes
Rseaux informatiques
reste
/G(x)
=0
(trame correcte)
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.
gnration
metteur
contrle
rcepteur
53
/7
=0
(trame correcte)
62
- le reste
11010110111110
Rseaux informatiques
CRC-16 = x16+x15+x2+1
CRC-CCITT= x16+x12+x5+1
CRC (802.3/802.5) = x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
Tous ces polynmes contiennent x+1 comme facteur premier. Les polynmes CRC-16 et CRC-CCITT sont utiliss pour des caractres cods sur 8 bits. Ils permettent de dtecter toutes les erreurs simples et doubles, toutes
les erreurs comportant un nombre impair de bits et tous les paquets derreurs de longueur infrieure ou gale
16. Ils dtectent avec une probabilit de 99,997% les paquets derreurs de 17 bits et avec une probabilit de
99,998% les paquets derreurs de longueur suprieure ou gale 18 bits.
Important:
En pratique, un simple registre dcalage suffit pour obtenir la somme de contrle. On utilise presque toujours
des circuits lectroniques pour les codages et dcodages polynmiaux.
paquet
couche rseau
paquet
couche liaison
couche physique
timeout
arrive
dune
trame
acquittement
type
info
ack
Rseaux informatiques
seq
arrive
dune
trame
- correcte
-errone
63
Couche liaison
paquet
paquet
couche rseau
* always ready
trame
trame
tampon infini
canal physique
vnement
* error free
* trame arrive
-- sender
loop
From_Net_L(packet);
frame.info<=packet;
To_Phys_L(frame);
end loop;
-- until doomsday
-- 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
paquet
couche rseau
trame "dummy"
trame
trame
tampon simple
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
trame duplique
Rseaux informatiques
65
Couche liaison
FIGURE 74.
paquet
paquet
couche rseau
trame dacquittement
trame
trame
tampon simple
FIGURE 75.
canal physique
vnement
* error prone
* trame correcte arrive
* trame errone arrive (CRC)
-- 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.
type
info
ack
seq
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
paquet
couche rseau
trame
trame donne+ack
trame
tampon simple
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;
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
50 Kbit/s
1000 bits
20 ms
temps
aller-retour
= 500 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.
50 Kbit/s
S
1000 bits
25*20 ms
fenntre
danticipation
w = 26
temps
aller-retour
= 500 ms
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.
sender
receiver
0
1
timeout
pour
la trame
SN=1
0
not accepted
AN=0
2
3
discarded
discarded
discarded
2
3
AN=1
AN=2
1
2
3
4
FIGURE 82.
sender
timeout
pour
la
trame
SN=1
receiver
0
1
2
AN=0
0
not accepted
3
2
2
3
AN=6
1
discarded
discarded
7
70
Rseaux informatiques
trames
stockes
dans la
fentre
de
rception
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
I
F
D
F = H+D
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
Conclusion
Les figures ci-dessous montrent :
taux dutilisation
0,8
du canal
fentre danticipation
0,6
(W = 7)
0,4
0,2
envoyer et attendre (W=1)
0,0
0
FIGURE 85.
4
6
8
10
taille du canal en nombre de trames
0,2
0,0
0
74
Rseaux informatiques
10
taille de la fentre
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
DSAP
SSAP
contrle
variable
donnes
trame dinformation
0
N(S)
P/F
N(R)
0 0 0 0 P/F
trame unnumbered
1
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.
NNI public
R
rseau LAN ATM
UNI priv
NNI priv
UNI priv
UNI public
commutateur ATM
UNI - User-to-Network Interface
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),
FIGURE 88.
GFC
VPI
VPI
VCI
VCI
VCI
6 5
R C
HEC
VPI
1
1
2
VCI
VCI
VCI
UNI header
VPI
3
PT
3
PT
R C
HEC
4
5
NNI header
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
erreur
dtecte
(cellule
abandonne)
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
SYNCH
PRESYNCH
cellule
par cellule
HECs consecutifs
corrects
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
caractristiques
flux F5 : local
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
classe
synchronisation
dbit
mode
oui
constant
connect : CBR
oui
variable
connect : VBR
non
variable
connct
non
variable
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:
48 octets
SN
IT
LI
CRC
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.
48 octets
ATM -H
donne
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 switch
VC
VP
pure VP
switch
VP
VC/VP switch
VC
VC
pure VC
switch
VP
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:
commutation temporelle,
commutation spatiale,
commutation spatiale multi-tages.
Rseaux informatiques
83
Rseaux ATM
FIGURE 95.
i1
x
o1
i2
o2
i1
VCCs
entre
i2
y
x
o1
o2
n
l
z
x
o1
o2
k
n
VCCs
sortie
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
OC
.
.
.
matrice de
commutation
IC
.
.
.
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
OC
.
.
.
backbone
.
.
.
bus partag
dans le temps
IC
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.
OC
IC
OC
IC
OC
IC
OC
IC
OC
IC
OC
IC
OC
IC
OC
IC
000
101
001
010
011
010
100
101
011
011
110
111
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
Technologie xDSL et
ADSL
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.
VC
gestion
du
rseau
Architecture ADSL
VA
DSLAM
T-SM
U-C2
noeud
daccs
haut
dbit
U-C
ATU-C
faible
dbit
ATU-C
diffusion
ATU-C
U-R2
U-R
splitter
splitter
boucle
locale
ATU-C
module
des
services
locaux
ATU-R
tlphone(s)
services
RTC
commutateur
RTC
POTS-R
POTS-C
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.
vers RTC
serveur
internet
serveur
vido
serveur
tltravail
abonn 1
switch
ATM
routeur
IP
noeud
daccs
ADSL1
tlphone
M ADSL1
U
tlphone
X ADSLn
ADSL1
vers RTC
90
services
numriques
Rseaux informatiques
abonn n
services
numriques
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:
multiplexage en frquence
upstream
flot montant
0-4KHz 25 KHz
92
downstream
flot descendant
200 KHz
Rseaux informatiques
1,1 MHz
CAP et DMT
FIGURE 103.
annulation dcho
upstream
flot montant
0-4KHz 25 KHz
downstream
flot descendant
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.
0001
0111
0110
0100 0101
0010
0011 0000
1100
1000
1111
1110
1001
1010
1101
94
1011
Rseaux informatiques
signal de
rfrence
(4 bits prcdents)
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.
Rseaux informatiques
95
FIGURE 105.
canaux adapts
canaux idals
adaptation DMT
plage de frquences
gain rel dans la boucle locale
test du gain
plage de frquences
Les experts concdent gnralement quune granularit plus fine est un bnfice qui peut maximaliser la performnce de linstallation. Les priphriques DMT peuvent mesurer le gain dans chaque subcarrier et le rgler au
nombre rel de bits par seconde par le canal. Dans certaines conditions, les canaux peuvent tre "mis zro."
De faon plus gnrale, le DMT est choisi comme le norme ADSL pour les raisons suivantes:
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
classe de transport
2M-1
2M-2
2M-3
6,144
4,096
2,048
2,048
2,048
2,048
options en Mbit/s
4,096
4,096
6,144
trois:
AS0,AS1,AS2
deux: AS0,AS1
un: AS0
640
608
176
576
384
384
options en Kbit/s
160
160
160
C(64)
C(64)
C(16)
trois:
LS0,LS1,LS2
deux: LS0,LS1 ou
deux: LS0,LS1
Rseaux informatiques
LS1, LS2
97
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.
CRC et indicateur
#0
#1
fast
byte
indicateurs
#2
donnes
rapides
#34
FEC
#35
donnes interleaved
98
Rseaux informatiques
#67
sync
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
fast
byte
donnes interleaved
AS0
96 octets
AS1
LS0
96 octets
2 octets
2 octets
Rseaux informatiques
99
FIGURE 108.
services
commutation ATU-C
de circuits
services
commutation
de circuits
max. 4
CBR - constant bit rate
ATU-R
TDM
utilisateur
ATU-R
TDM
packet
adapter
services
commutation
de paquets
interfaces
rseau
local
ATU-R
multiplexage de paquets
packet
adapter
services
commutation
ATM
ATU-R
multiplexage de cellules ATM
packet
adapter
rseau
local ATM
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-C
ATU-R
UTP5
internet
router
TCP/UDP
100Base-T
UTP5
IP
MAC 802.3
10Base-T
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
trame PPP
trame PPP
ATU-C
ATU-R
lien ADSL
102
Rseaux informatiques
FIGURE 111.
socket
splitter
UTP5
ATU-R
nouveau cablge
cablge existant
FIGURE 112.
socket
nouveau cablge
nouveau cablge
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)
socket
LPF
HPF
ATU-R
cablge existant
Rseaux informatiques
103
mode paquets
ADSL
mode paquets
ADSL
10Base-T LAN
hub
routeur
routeur
vers/ partir de
lInternet
vers/ partir de
lInternet
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
fibre
unit
optique
ONU
VDSL
commutateur
RTC
cuivre
splitter
boucle locale
(cuivre)
splitter
hub
VDSL
terminaux
services
Internet
Rseaux informatiques
105
fibre
services
cuivre
ONU
VDSL
VDSL
hub
terminaux
STM
ATM
paquet
ATM
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
Rseaux WAN
CHAPITRE 7
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
PSE
PSE
quipement
terminal
PSE
SA DA
interface
SA - adresse source
DA - adresse destination
Rseaux informatiques
107
Rseaux WAN
T1 - 1.544 Mbit/s
T1/E1
multiplexeur
T1/E1
multiplexeur
E1 - 2048 Mbit/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
installation de labonn
NT2
NT1
NT12
interface User-Network
Terminal
Adapter
TE2
quipement oprateur
terminaison
daccs
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.
attributs
daccs
attributs
daccs
Integrated Services
Digital Network
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:
type de service
attribut
information
transfer attributes
bit rates in Kbits: 64, 2*64, 384, 1536 (T1), 1920 (E1)
structure
establishement of communication
symmetry
communication configuration
supplementary services
quality of service
to be defined
internetworking
to be defined
to be defined
access attributes
general attributes
110
Rseaux informatiques
description
TE
1 Km
TE
TE
NT
NT
point--point
bus passif
TE
200 m - 150 W
100 m - 75 W
toile
TE
TE
TE
TE
NT
1 Km
NT
TE
TE
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.
transmit (+)
(solid green)
receive (+)
(braided blue)
receive (-)
(solid blue)
transmit (-)
(braided green)
terre 2 (-)
(solid orange)
terre 2 (+)
(braided orange)
connexions obligatoires
trame 48-bit
F L | B1 | E D A | B2 | E D M | B1
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
112
| E D S | B2 | E D L
+1V
0V
-1V
Rseaux informatiques
violation
du code
NT
delimiteur
D bits
echoed
terminal A
detecte 1 la place dun 0
dans son TEI; il abandonne
terminal A commence
la transmission
TE
TEI =A:00100000
priorit: 8
bit stuffing
TEI
TE
priorit: 8
TEI =B:00000000
priorit: 9
terminal B
fini
la transmission et baisse
8 1-bit slots
les
deux
terminaux
sa priorit
echoed
commencent la transmission
Rseaux informatiques
113
Rseaux WAN
Adressage RNIS
Ladressage RNIS est compos de trois parties de tailles variables:
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
dbit de ligne
STS-1
OC-1
51.84
STS-3
OC-3
155.52
STS-12
OC-12
622.08
STS-48
OC-48
2488.32
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
SONET
multiplexeur
terminal
SONET
multiplexeur
terminal
DCS - Digital Cross Connect
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.
remplissage
framing
framing
STS-1
ID
path
trace
pad
pad
BIP-8
order
wire
framing
BIP-8
pad
pad
DC
DC
DC
signal
label
pad
pad
pointer
pointer
pointer
path
status
pad
pad
BIP-8
APS
APS
user
channel
pad
pad
DC
DC
DC
multiframe
pad
pad
DC
DC
DC
growth
pad
pad
DC
DC
DC
growth
pad
pad
growth
growth
order
wire
growth
pad
pad
path overhead
line overhead
transport overhead
VT - Virtual Tributary
BIP - Bit-Interleaved Parity
DC - Data communication Channel
APS - automatic Protection Switching
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.
transport overhead
ATM
cell
ATM cell
ATM cell
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
X.28
PAD:X.3
rseau
commutation
STE
de paquets
X.75
DCE
X.25
X.25
X.121
DTE
STE
rseau
commutation
de paquets
DCE
terminal X.25
DTE
terminal X.25
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:
la phase de connexion,
la phase de transfert des donnes,
la phase de libration de la connexion.
118
Rseaux informatiques
FIGURE 129.
rseau
commutation
de paquets
DCE
DTE
info Ns=0
DM
link initialization
(connecting)
SABM
UA
info Ns=0
info Ns=1
RR Nr=2
link disconnection
DISC
UA
temps
temps
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
01111110
couche physique
FIGURE 131.
noeud
de commutation
de paquets
15
68
0
15
68
120
noeud
de commutation
de paquets
40
120
Rseaux informatiques
noeud
de commutation
de paquets
drapeau
RFH
trame "relaye"
FCS
drapeau
FECN
BECN
C/R
EA
DE
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
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
67
88
LAN A
CIE
Nantes
frame
relay
node
LAN B
London
frame
relay
node
CIE
Nantes
Paris
frame
relay
node
23
44
LAN C
CIE
Paris
Nantes 58
London 111
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
messages
sockets
open(), mknod()
msgget()
create endpoint
socket()
bind()
bind address
listen()
specify queue
accept()
Server
open(), mknod()
msgget()
socket()
bind()
connect()
transfer data
read(),write()
msgrcv()
read(),write(),
recv(),send()
recvfrom(),
sendto()
transfer datagrams
close(),
terminate
close(),unlink()
msgctl()
shutdown()
FIGURE 1. Connectionless communication with DATAGRAM sockets: without server address preparation,
a)
socket()
socket()
bind()
bind()
recvfrom()
sendto()
service
process
recvfrom()
sendto()
CLIENT
SERVER
Connectionless communication with DATAGRAM sockets
a) without server address preparation,
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()
write()
service
service
process
read()
write()
CLIENT
SERVER
bind()
socket()
socket()
listen()
accept()
accept()
connect()
connect()
read()
read()
write()
service
process
read()
CLIENT
write()
SERVER
Sockets
9 juin 1999
port
port
socket()
bind()
sendto()
recvfrom()
DATASTREAM
socket()
bind()
connect()
write()
read()
port
port
socket()
bind()
connect()
write()
read()
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
SOCK_STREAM
#define
SOCK_DGRAM
#define
SOCK_RAW
/* raw-protocol interface */
#define
SOCK_RDM
/* reliably-delivered message */
/* stream socket */
/* datagram socket */
Only few combinations of the above presented address families and type parameters are
valid:
SOCK_STREAM
SOCK_DGRAM
SOCK_RAW
AF_INET
AF_UNIX
TCP
UDP
IP
yes
yes
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
9 juin 1999
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
adresses */
9 juin 1999
10
Unix domain
sockets
client
server
file system
stdin
stdout
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.
<sys/types.h>
<sys/socket.h>
<sys/un.h>
"dg_un.h"
main()
{
int sds;
struct sockaddr_un server_s,client_s;
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.
9 juin 1999
13
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
Internet
socket
Internet
socket
Internet
address
191.8.220.12
port 8000
Internet
address ?
port ?
client
server
file system
stdin
stdout
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);
}
<stdio.h>
<sys/types.h>
<sys/socket.h>
<netinet/in.h>
"str_un.h"
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);
*h_name;
char
**h_aliases;
/* alias list */
int
h_addrtype;
int
h_length;
/* length of address */
char
**h_addr_list;
*s_name;
char
**s_aliases;
/* alias list */
int
s_port;
/* port # */
char
*s_proto;
/* protocol to use */
};
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
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);
}
9 juin 1999
26
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>
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
/* process */
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
Sockets
9 juin 1999
36