Académique Documents
Professionnel Documents
Culture Documents
MEMOIRE
Présenté par
pour l'obtention du
Diplôme de Magister
Thème
Soutenu le
18/02/2014
Devant le jury
Vous êtes pour moi une source de vie car sans vos sacrifices, votre
tendresse et votre affection je ne pourrais arriver jusqu’au bout. Que
Dieu vous garde afin que votre regard puisse suivre ma destinée.
A
Mon frère & Mes sœurs
Mots clés : Codage réseau, Réseau sans fil, Codage réseau linéaire aléatoire,
Broadcast par inondation probabiliste, Broadcast par codage réseau.
I
إن Cا F+ , Bا ت ا D6E 2C 6ا م +ب دوال
ر :C Iا H7ت ) Lا KBا = N (#0إر .إن 07ة ا OB 6أن
2! 60+ا * Sإ ادة R! +أو :Cا' K NاQل آ6
)$ Q #$ان( ا ت ا'.T
6ا
) Network codingه 6Eة * ا ت a+أن Cا
2أن bدي Cت + :C 6ت ا c #$ .ا C ،
ا
م C ;<*+ت L R$ 0+ال وإCدة 2 Q a+دون
ا م d+ي :C 6ا ت 6@ .ا'+ث ا'67ة أن 6ا
2أن 2
+آ C6 6ا ، ،D$وأ 2ا
:C.ا Lل2 2*1f 2 ،
ا ا Oا $60ا * دة ا'و( ا=ام رات دة #$و gNواQ
.*+إن 6ا
L <6 d07 K h+ #$ ،ا
ت ا ،H
,ون Nي 2+ا رات ا ا* 2أداء ا
.
#$ه;ا ا ا ا* KIم +را 7ارزت و 6Eق 6ا
ا 2 #
ا=ا #$ا 2ا .D$و ه; lا =ارزت D6E 2Cا آة
+ل F6+ا آة .NS2
آت ا
6 :ا
،ا
ا 6 ،Hا
ا = #0ا
ا،#S
اfرل 6 D6E 2Cا
.
II
Table des matières
INTRODUCTION ....................................................................................... 1
1. LES RESEAUX SANS FIL .................................................................... 4
INTRODUCTION ............................................................................................... 4
Conclusion.............................................................................................................. 25
2. NOTIONS DE THEORIE DES GRAPHES ........................................ 26
Introduction ........................................................................................................... 26
2.1 Notion de graphe ............................................................................................ 26
2.2 Notion de flot ................................................................................................. 27
2.3 Notion de réseau résiduel............................................................................... 28
2.4 Problème de flot maximal ............................................................................. 31
2.4.1 Définition du problème ..................................................................................................... 31
2.4.2 Méthode de Ford et Fulkerson .......................................................................................... 33
2.4.3 Ajout d'un flot résiduel ...................................................................................................... 38
III
2.4.4 Chemin augmentant .......................................................................................................... 39
2.5 Définition d’une coupe .................................................................................. 41
2.5.1 Coupe Minimum (MinCut)................................................................................................. 42
2.6 Théorème de coupe minimale-flot maximum ............................................. 42
2.6.1 Algorithme de Ford et Fulkerson ....................................................................................... 42
Conclusion.............................................................................................................. 45
3. LE CODAGE RESEAU ........................................................................ 46
Introduction ........................................................................................................... 46
3.1 Notion de codage réseau ................................................................................ 46
3.2 Les avantages du codage réseau ................................................................... 47
3.2.1 Le débit .............................................................................................................................. 48
3.2.2 Robustesse ......................................................................................................................... 51
3.2.3 Sécurité ............................................................................................................................. 53
3.2.4 Diminution de l’énergie par bit ......................................................................................... 53
3.3 Principes fondamentaux du codage réseau ................................................. 54
3.4 Introduction du codage réseau ..................................................................... 58
Conclusion.............................................................................................................. 60
4. LES ALGORITHMES DE CODAGE RESEAU ................................. 61
Introduction ........................................................................................................... 61
4.1 Codage réseau linéaire multicast ................................................................. 61
4.2 Codage réseau linéaire aléatoire (RLNC) ................................................... 64
4.3 Construction algébrique du codage réseau ................................................. 67
4.4 Exemple ............................................................................................................. 72
Conclusion.............................................................................................................. 76
5. ENVIRONNEMENT DE SIMULATIONS ET OUTILS UTILISES 77
5.1 L’intérêt d’utiliser un simulateur ................................................................. 77
5.2 Le simulateur NS2 ........................................................................................... 77
5.2.1 Composition d'un script de simulation.............................................................................. 79
5.2.2 Le langage (O)Tcl .............................................................................................................. 80
5.2.3 Avantages et difficultés de NS2 ......................................................................................... 81
5.3 Les étapes réalisées ......................................................................................... 82
5.4 Algorithme de codage ..................................................................................... 84
5.5 Procédure de décodage.................................................................................... 84
IV
5.6 Installation de Cygwin et NS2 ..................................................................... 84
5.6.1 installation de Cygwin........................................................................................................ 84
5.6.2. Installation de NS2 : .......................................................................................................... 90
5.6.3 Intégration du module network coding ............................................................................ 93
5.7 Topologies utilisées : cercle, grille, aléatoire............................................. 93
6. ÉVALUATION DE PERFORMANCE ................................................ 94
Introduction ........................................................................................................... 94
6.1 Applications du codage réseau dans le réseau de paquet ......................... 94
6.2 Évaluation de performance ........................................................................... 97
6.2.1 Modèle de trafic ................................................................................................................ 98
6.2.2 Topologie et scénario ........................................................................................................ 98
6.2.3 Résultats de simulation ................................................................................................... 100
I. Le cas fixe ..........................................................................................................................................................................100
I.1 Topologie en cercle ...................................................................................................................................................100
I.2 Topologie en gille ......................................................................................................................................................104
I.3 Topologie aléatoire ...................................................................................................................................................108
II. Le cas mobile ............................................................................................................................................................110
Conclusion............................................................................................................ 113
CONCLUSION ........................................................................................ 114
BIBLIOGRAPHIE .................................................................................. 115
ANNEXE A .............................................................................................. 119
V
Table des figures
VI
5.2 : Protocoles implémentés dans NS2 ......................................................................................... 79
5.3: Organigramme de démarches réalisées ................................................................................. 83
5.4 : Topologie en cercle de 8 nœuds ............................................................................................ 93
5.5 : Topologie en grille de 64 nœuds ............................................................................................ 93
6.1 : Symboles reçus par un récepteur........................................................................................... 95
6.2 : Chaque récepteur reçoit une combinaison de vecteurs de la source ................................... 96
6.3 : la comparaison entre le codage réseau et inondation probabiliste dans la topologie en
cercle avec 8 nœuds ..................................................................................................................... 100
6.4 : la comparaison entre le codage réseau et inondation probabiliste dans la topologie en
cercle avec 16 nœuds ................................................................................................................... 101
6.5 : la comparaison entre le codage réseau et inondation probabiliste dans la topologie en
cercle avec 32 nœuds ................................................................................................................... 102
6.6 : la comparaison entre le codage réseau et inondation probabiliste
dans la topologie en grille avec 9 nœuds ..................................................................................... 104
6.7 : la comparaison entre le codage réseau et inondation probabiliste
dans la topologie en grille avec 25 nœuds ................................................................................... 105
6.8 : la comparaison entre le codage réseau et inondation probabiliste
dans la topologie en grille avec 64 nœuds ................................................................................... 106
6.9 : la comparaison entre le codage réseau et inondation probabiliste
dans une topologie aléatoire avec 17 nœuds ............................................................................. 108
6.10 : la comparaison entre le codage réseau et inondation probabiliste
dans une topologie aléatoire avec 50 nœuds ............................................................................. 109
6.11 : la comparaison entre le codage réseau et inondation probabiliste
dans une topologie aléatoire avec 12 nœuds ............................................................................. 110
6.12 : la comparaison entre le codage réseau et inondation probabiliste
dans une topologie aléatoire avec 34 nœuds ............................................................................. 111
6.13 : la comparaison entre le codage réseau et inondation probabiliste
dans une topologie aléatoire avec 50 nœuds ............................................................................. 112
VII
Liste des tables
Tab 1.2: Évolution des distances dans les tables de routage de B et de C dans le cas d’une
rupture du lien entre A et B ........................................................................................................... 14
VIII
Introduction
Les évolutions technologiques actuelles de nos sociétés ont pour
conséquence de demander toujours plus de services aux réseaux de
communications.
Les réseaux locaux sans fil (Wireless Local Area Network ou WLAN)
802.11 ont reçu ces dernières années un grand succès grâce à leur simplicité,
rapidité et faible coût de déploiement. On commence à les trouver un peu
partout: dans les aéroports, les hôtels, les bureaux ainsi que dans les
environnements domestiques.
1
Les auteurs de [21] ont prouvé que si le codage réseau est utilisé par les
nœuds intermédiaires pour coder les différents flux, le débit multicast
maximum (capacité multicast) auquel une source peut envoyer l’information
à un ensemble de récepteurs, est donné par la plus petite coupe entre la
source et n’importe quel récepteur quand la taille de corps tend vers l’infini.
Le fait fascinant que le théorème original de codage réseau a apporté est que
les conditions nécessaires et suffisantes pour une transmission unicast à un
certain débit pour chacun de ces récepteurs sont également nécessaires et
suffisantes pour la transmission multicast avec le même débit, à condition que
les nœuds intermédiaires du réseau soient autorisés à combiner et de traiter
différentes flux d’informations.
Le premier chapitre aborde les réseaux sans fil avec ses différentes
catégories et infrastructures ainsi que les protocoles de routage utilisés dans
ce type de réseau.
2
Le quatrième chapitre est consacré aux algorithmes ou méthodes utilisés
par les nœuds de réseau pour réaliser le codage réseau en les illustrant avec
une construction algébrique.
3
Chapitre 1
1.1.1 WPAN
4
Chapitre 1. Les réseaux sans fil
1.1.2 WLAN
Les réseaux locaux sans fil ou Wireless Local Area Network (WLAN) sont
généralement utilisés à l'intérieur d'entreprises, d'universités mais également
chez les particuliers depuis le développement des offres à haut débit. Ces
réseaux sont principalement basés sur la technologie IEEE 802.11 soutenue
par le WECA (Wireless Ethernet Compatibility Alliance) ou sur la technologie
HiperLan1 et son remplaçant Hiperlan2 soutenue par l'ETSI (European
Telecommunications Standards Institute). Ils offrent des taux de transmission
radio théoriques pouvant atteindre 54 Mbit/s pour IEEE 802.11g ou
HiperLan2 c'est-à-dire bien plus élevés que la technologie Bluetooth. La
portée de ces technologies est également beaucoup plus importante: de l'ordre
de 300 mètres en extérieur et 100 mètres à l'intérieur de bâtiments pour IEEE
802.11b et d'une centaine de mètres pour Hiperlan2.
1.1.3 WMAN
5
Chapitre 1. Les réseaux sans fil
1.1.4 WWAN
Les réseaux sans fil étendus ou Wireless Wide Area Network (WWAN)
regroupent notamment les différents réseaux téléphoniques de première et
deuxième génération mais également les réseaux satellitaires. Les réseaux
cellulaires téléphoniques reposent sur des technologies comme GSM (Global
System for Mobile Communication), GPRS (General Packet Radio Service).
Les réseaux satellites s'appuient quant à eux sur les normes comme DVB-S
(Digital Video Broadcasting-Satellite) pour transmettre l'information et
proposent des débits élevés (de l'ordre de 40 Mbit/s pour la norme DVB-S).
6
Chapitre 1. Les réseaux sans fil
Les réseaux sans fil offrent une grande flexibilité d’emploi, ils permettent la
mise en réseau de sites dont le câblage serait trop onéreux ou impossible à
réaliser. On peut classer les réseaux sans fil par rapport à leur infrastructure
en deux classes :
7
Chapitre 1. Les réseaux sans fil
1.2.1 Définition
Les réseaux sans fil avec infrastructure sont également appelés réseaux
cellulaires. Ces réseaux se composent de deux types de terminaux: les stations
de base ou points d'accès et les terminaux mobiles ou nœuds mobiles. Les
points d'accès sont des terminaux fixes reliés en général à une source
d'énergie illimitée et chargés de relayer les informations qui circulent dans
leur cellule. Ils jouent le rôle de serveur pour chaque terminal mobile présent
dans la cellule.
Ce type de réseau est de plus en plus utilisé dans les entreprises et les
universités comme dernier bond d'un réseau d'accès à l'Internet. Ces réseaux
sont souvent retenus pour leur simplicité d'administration. En effet comme
les points d'accès sont fixes et n'ont pas de problème d'énergie, la topologie
du réseau demeure dans l'ensemble assez stable. De plus, les problèmes de
routage sont ici réduits à leur plus simple expression dans la mesure où toutes
les communications (sur la partie sans fil) se font en un bond.
Il existe cependant des problèmes ouverts auxquels s'intéressent de nombreux
travaux de recherche. Parmi eux nous pouvons citer celui du changement de
réseau aussi appelé handover ou handoff.
8
Chapitre 1. Les réseaux sans fil
1.3.1 Définition
9
Chapitre 1. Les réseaux sans fil
Le routage dans son cadre général est une méthode d’acheminement des
informations à travers un réseau de connexion donné. Le but du routage est
d’acheminer les paquets d’une source vers une destination avec des
optimisations (en terme de certains critères de performance). Il est donc
important de trouver l’investissement de moindre coût, qui va permettre
d’assurer le routage du trafic et de garantir sa fiabilité en cas de panne
pouvant intervenir sur des liens ou sur des nœuds.
Certains algorithmes de routage ont été définis très tôt mais restent des
méthodes solides et éprouvées qui sont encore utilisées aujourd’hui, et qui
gardent une influence très importante sur les travaux réalisés dans ce
domaine.
11
Chapitre 1. Les réseaux sans fil
Algorithm p-flood(m,p)
Une propriété du routage par inondation intéressante à noter est qu’il garantit
que le meilleur chemin est utilisé pour atteindre la destination. En effet, par
définition, tous les chemins sont utilisés de manière parallèle et cela inclut
entre autres le meilleur d’entre eux, quelle que soit la métrique servant de
base pour la comparaison. Il faut cependant prendre en compte la surcharge
induite par l’important trafic généré. Cette surcharge peut avoir un impact
non négligeable sur les performances, comme c’est le cas dans un réseau sans
fil.
Le routage par inondation a en outre pour particularité une grande robustesse
en raison de la redondance liée à l’inondation. Si le paquet vers une
destination est perdu sur un chemin, il suffit qu’un autre chemin disjoint du
premier existe pour que le paquet parvienne tout de même à la destination.
S’il n’est pas adapté au routage de paquets à diffusion individuelle, le
principe derrière le routage par inondation ne reste pas moins une option
simple à mettre en œuvre et relativement peu coûteuse pour l’acheminement
des paquets de diffusion.
Une des premières approches non triviales qui a été développée pour le
routage dans les réseaux informatiques est celle du routage par vecteur de
distance. Elle se base sur l’algorithme de Bellman-Ford distribué.
Chaque routeur possède une table de routage qui consiste en un couple de
données pour chaque destination : le routeur par lequel passer pour atteindre
cette destination et le coût associé selon une métrique définie. Ces
informations sont transmises périodiquement à tous les voisins, et donc
chaque routeur reçoit ces informations de ses voisins. Il en résulte que, pour
un routeur, toute destination existant dans la table de routage d’un voisin
devient connue et donc accessible parce routeur.
12
Chapitre 1. Les réseaux sans fil
Le choix du lien à emprunter pour aller de i à k est alors le lien (i,j) qui a
permis la dernière mise à jour de la valeur actuelle de Di(i,k).
Ces échanges de tables entre les routeurs se font tant que l’algorithme n’a pas
convergé. Une fois la convergence atteinte, les échanges continuent afin de
pouvoir détecter les pannes et re-converger vers une nouvelle table de
routage. Cet algorithme est l’algorithme de Bellman-Ford distribué.
Le tableau 1.1illustre l’évolution des tables de routage des routeurs pour le
réseau de la figure 1.4.
13
Chapitre 1. Les réseaux sans fil
Routeur A B C D
Etat initial Vers A : 0 Vers B : 0 Vers C: 0 Vers D : 0
Après un Vers A : 0 Vers A : 1 Vers B : 1 Vers C : 1
échange Vers B : 1 Vers B : 0 Vers C : 0 Vers D : 0
Vers C : 1 Vers D :1
Figure 1.5 : Problème de la rupture de lien dans le routage par vecteur de distance
Routeur B C
Etat initial Vers A : 1 Vers A : 2
Vers B : 0 Vers B : 1
Vers C : 1 Vers C : 0
14
Chapitre 1. Les réseaux sans fil
Vers C : 1 Vers C : 0
… … …
Tab 1.2 : Évolution des distances dans les tables de routage de B et de C dans le cas
d’une rupture du lien entre A et B
15
Chapitre 1. Les réseaux sans fil
Cet algorithme forme le cœur du protocole RIP [4, 5], qui fut utilisé au
début d’Internet. En raison du problème majeur qu’est la convergence des
informations de routage en cas de rupture de lien et parce qu’il était plus
adapté à des réseaux de taille limitée, le routage par vecteur de distance a été
assez rapidement abandonné au profit du routage par état de lien [6].
16
Chapitre 1. Les réseaux sans fil
17
Chapitre 1. Les réseaux sans fil
18
Chapitre 1. Les réseaux sans fil
19
Chapitre 1. Les réseaux sans fil
20
Chapitre 1. Les réseaux sans fil
21
Chapitre 1. Les réseaux sans fil
Source
Source rreq(1)
rreq(1) rrep(4)
B
rrep(3)
rreq(2)
A rreq(2)
rreq(3)
D E
rreq(2)
rreq(3) rreq(4)
C rrep(2)
rreq(4)
F
rrep(1)
Dest
Dest
22
Chapitre 1. Les réseaux sans fil
Source
Source rreq(1)
rrep(4)
rreq(1)
B
rrep(4)
rrep(3)
rreq(2)
A rreq(2)
rreq(3)
rrep(3) D E
rreq(2) rrep(2)
rreq(3) rreq(4)
C rrep(2) rrep(1)
rreq(4)
F
rrep(1) Dest
Dest
Au fur et à mesure, les identifiants des nœuds traversés sont ajoutés dans
le paquet de recherche de route. Quand elle reçoit ce paquet, la destination
sait donc déjà quel chemin il a emprunté, et obtient ainsi (en l’inversant) la
route pour retourner à la source. A la réception par la destination de paquets
de recherche ayant suivi des chemins différents, la destination répond sur les
chemins inverses, et la source aura ainsi finalement plusieurs chemins valides
pour l’atteindre (voir figure 1.8).
23
Chapitre 1. Les réseaux sans fil
MPR
MPR
Source
MPR
24
Chapitre 1. Les réseaux sans fil
Conclusion
Dans ce chapitre nous avons présenté les concepts de base des réseaux
sans fil, les différentes catégories, caractéristiques, les avantages et les
applications de ces réseaux. Nous avons aussi présenté le routage dans
l’environnement Ad Hoc, en décrivant quelques protocoles. Avant d’entamer
le codage réseau, nous devons présenter en premier lieu dans le chapitre
suivant quelques concepts concernant la théorie des graphes.
25
Chapitre 2
Introduction
avec i N et j N.
un ensemble de nœuds et A un ensemble de couples (i, j), appelés arcs (liens),
Un graphe [17], peut être orienté si ses liens sont orientés d’un nœud à
l’autre et il peut être non orienté, ce qui indique qu’il n’y a aucune distinction
entre les deux nœuds liés à chaque lien. Un lien e∈A où e = (x, y) si x, y ∈N. Si
un lien e = (x, y) est considéré comme orienté de x vers y, alors le nœud x est
appelé nœud initial et nœud y est appelé nœud terminal du lien. Un graphe
fini est un graphe avec un nombre fini de liens et de nœuds.
26
Chapitre 2. Notions de théorie des graphes
Deux liens d’un graphe sont adjacents s’ils partagent un nœud commun. De
même, deux nœuds sont dits adjacents s’ils partagent un lien commun, dans
ce cas on dit que le lien commun joint les deux nœuds. Un lien sortant de
nœud x est un lien incident à x vers l’extérieur et un lien entrant dans un
nœud y est un lien incident à y vers l’intérieur.
D’un point de vue théorique, on appelle réseau un graphe orienté où à chaque
lien est attribuée une capacité, qui correspond au débit maximum que peut
supporter ce lien.
27
Chapitre 2. Notions de théorie des graphes
Définition 2: L’ensemble des flux traversant les arcs d’un graphe est appelé
flot pour autant qu’il respecte en chaque nœud l’équation de conservation
(2.1).Le flux traversant l’arc de retour est appelé le flot total traversant le
réseau.
Les flots permettent de modéliser une très large classe de problèmes. Leur
interprétation correspond à la circulation de flux physiques sur un réseau:
distribution électrique, réseau d'adduction, acheminement de paquets sur
Internet, ... Il s'agit d'acheminer la plus grande quantité possible de matière
entre une source s et une destination t. Les liens permettant d'acheminer les
flux ont une capacité limitée.
Un flux réseau correspond à une attribution de flux aux liens d’un réseau,
tels que la quantité de flux associée à chaque lien n’excède pas sa capacité.
On note cij, la capacité de l’arc (i,j), c’est-à-dire le flux maximum qui peut
traverser l’arc et semblablement, on note bij la borne inférieure (éventuelle) sur
ce flot de sorte que l’on a:
28
Chapitre 2. Notions de théorie des graphes
Considérons à nouveau un arc (i,j) (voir figure 2.3) dont le flux doit être
compris entre une borne inférieure 0 et une borne supérieure égale à la
capacité de l’arc cij. Si la valeur actuelle du flux sur cet arc est fij, il est facile de
voir que l’on peut faire encore passer en flux dans l’arc (i, j) un supplément de
flux égal à la capacité résiduelle rij qui se calcule comme suit (l'arc forward
(i,j)F) :
rij= cij − fij
Mais on peut également faire passer du flux dans l’autre sens en ajoutant un
arc de j ài de capacité résiduelle (l'arc backward (j,i)B) :
rji= fij
Définition 3: Le réseau résiduel, noté G(f) consiste en les seuls arcs ayant une
capacité résiduelle rij positive
29
Chapitre 2. Notions de théorie des graphes
Exemple 1:
Le réseau résiduel G(f) associé à f est représenté ci-dessous. Les arcs forward
apparaissent en gris, les arcs backward sont en bleu. Dans le réseau G (N,A),
l'arc (s,a) est saturé: seul apparaît dans le réseau résiduel son arc backward
(a,s), de capacité 1 (capacité de l'arc d'origine).
Dans le réseau G (N,A), aucun flot ne passe par l'arc (s,c): seul apparaît dans
le réseau résiduel l'arc forward (s,c), de capacité 1 (capacité de l'arc d'origine)
Enfin prenons l'exemple de l'arc (d,t). Sa capacité est de 5 dans le réseau
G(N,A)et un flot de 3 y circule. Dans le réseau résiduel lui sont alors associés:
30
Chapitre 2. Notions de théorie des graphes
31
Chapitre 2. Notions de théorie des graphes
32
Chapitre 2. Notions de théorie des graphes
z = max fn1
| , | ,
…….(2.2)
Définition 5: On appelle chaîne une suite d’arcs (a1, a2, . . .,ak) telle que l’arc ai
est rattaché à l’arc ai−1par une extrémité et à l’arc ai+1par l’autre.
33
Chapitre 2. Notions de théorie des graphes
Le premier cas où l’on peut pousser plus loin ce flux supplémentaire est
celui où il existe un arc sortant non saturé. C’est-à-dire, où il existe un arc (i, j)
avec fij< cij. Ce cas est illustré à la figure 2.8 Le supplément de flux qui peut
circuler sur l’arc (i, j) est donc limité par cij−fij
34
Chapitre 2. Notions de théorie des graphes
arc à rebours. On va par la même diminuer le flux le long de l’arc. Ceci est
illustré à la figure 2.9.
Autrement dit, si on a un arc (k,i) tel que fki> bki, un flux supplémentaire peut
arriver en k. Notons le Δfk. A nouveau, il se calcule comme le minimum de:
-celui qui peut arriver en i: Δfi;
-celui qui peut passer dans l’arc (k,i): fki− bki.
D’où finalement :Δfk= min {Δfi, fki− bki}
Voyons maintenant comment déterminer une chaine d’arcs qui irait du nœud
d’entrée au nœud de sortie, et qui permettrait donc d’augmenter le flux dans
l’arc de retour. Partant du point d’entrée, on marque de proche en proche les
sommets en utilisant des arcs d’un des deux types définis ci-dessus.
Voyons l’illustration de la méthode sur l’exemple 2. Partant de A, on peut
utiliser l’arc (A,B), non saturé, et augmenter le flot de 1. On aura intérêt, pour
ne pas surcharger le graphique à reprendre séparément la chaine d’arc
utilisable.
C’est ce qui est fait à la figure 2.10. De B, on peut utiliser l’arc (C,B) à rebours.
On détermine le flot supplémentaire maximum que l’on peut pousser
jusqu’en C comme le minimum de(+1, (2 − 0)) = 1. On va donc pouvoir
transférer une unité supplémentaire de B à C: ceci revient à une diminution
de 1 du flot de C à B. Ce qui est indiqué par le −1 sur le graphique. Ensuite,
seul l’arc (C,D) peut être utilisé. A nouveau le flot supplémentaire que l’on
peut acheminer en D vaut 1.
35
Chapitre 2. Notions de théorie des graphes
36
Chapitre 2. Notions de théorie des graphes
les arcs (A,C), (C,D), (E,D) à rebours et (E,F). Ceci est illustré à la figure 2.12.
On peut à nouveau augmenter le flot d’une unité. On obtient le graphe
suivant illustré à la figure 2.13.Essayons de former une troisième chaine
d’arcs utilisables. On voit à présent que l’on ne peut plus atteindre le nœud de
sortie B. En effet, partant de A, on peut pousser une unité en C puis en B par
(C,B). De là, on ne peut plus progresser. En effet, (B,D) est saturé et (B,A) pris
à rebours conduirait à former un cycle et non plus une chaine figure 2.14.
Nous avons déjà défini le réseau résiduel nous pouvons donc l’utiliser
(deuxième méthode) pour augmenté le flot. Maintenant que nous avons un
nouveau réseau G(f), il est bien sûr tentant d'essayer d'y faire transiter un flot.
Quel est alors le rapport entre un flot Δf sur le réseau résiduel G(f) et le flot f
sur le réseau G (N,A)?
A partir de ces 2 flots nous allons construire un nouveau flot f ' sur N:
37
Chapitre 2. Notions de théorie des graphes
Si Δf est un flot sur le réseau résiduel G(f), nous définissons l’évaluation des
arcs Comme :
f '= f+Δf sur le réseau G(N,A) par : f' (i,j) = f(i,j) + Δf (i,j)F - Δf (j,i)B Alors:
38
Chapitre 2. Notions de théorie des graphes
Le flot résultant f +Δf sur le réseau G (N,A) est représenté dans la figure
2.16.Les arcs (s,c) et (e,t) ont vu leur flot augmenté de 1, le flot Δf empruntant
leur arc forward. A l'inverse les arcs (b,s), (e,b) et (t,c) ont vu leur flot
diminuer de 1, le flot Δf empruntant leur arc backward. La valeur du flot f +Δf
est bien de 4.
39
Chapitre 2. Notions de théorie des graphes
L'algorithme consiste alors à partir d'un flot f réalisable (le flot nul fait
parfaitement l'affaire) et à l'améliorer itérativement. Pour cela à chaque étape
l'algorithme vérifie s’il existe un chemin augmentant pour le flot, c'est à dire
un chemin (orienté) de s à t dans le réseau résiduel. Si un tel chemin existe, il
est saturé dans G(f) et le flot correspondant est "ajouté" à f. Sinon, il n'existe
plus de chemin augmentant et l'algorithme retourne le flot courant.
L'ensemble des arcs sortants de s est en fait un cas particulier d'une coupe
dans le réseau. La notion de coupe va nous fournir une borne supérieure
40
Chapitre 2. Notions de théorie des graphes
toujours atteinte par le flot maximum: c'est ce que nous dira le théorème
MaxFlow-MinCut.
(S,T) = {(B,D), (C,D), et (C,E)} la capacité de ces arcs est 4+2+4=10 qui égale au
flot max
Ce sont les nœuds qui font goulet d’étranglement. Pour accroître le flot, il
faudra augmenter les capacités de ces arcs.
41
Chapitre 2. Notions de théorie des graphes
Pour tout réseau de transport muni de bornes sur les flux, d’un point
d’entrée et d’un point de sortie, la valeur du flot maximum entre le nœud
d’entrée et le nœud de sortie est égale au minimum des capacités de toutes
les coupes séparant le nœud d’entrée du nœud de sortie.
42
Chapitre 2. Notions de théorie des graphes
Voyons maintenant l’algorithme dont les deux grandes étapes sont d’une
part, le marquage progressif des nœuds, d’autre part, la mise à jour du flot. La
première étape a deux sorties possibles. Soit elle conduit à un chemin
jusqu’au nœud de sortie qui permet d’augmenter le flot. Dans ce cas, on passe
à la seconde étape qui augmente le flot. Soit elle conduit à une coupe de
capacité minimum, prouvant par là que le flot maximum est atteint. Donc
l’algorithme est le suivant :
0. Initialisations.
Mettre :
E=
Δf1= +∞.
43
Chapitre 2. Notions de théorie des graphes
1ère itération :
0. Initialisations
S= {A} T= {B,C,D,E,F} E =
1. Processus de marquage : examen de A.
ΔfB= +1 Label(B) = (A+, +1)
ΔfC= +2 Label(C) = (A+, +2)
S= {A,B,C} T= {D,E, F} E = {A}
1. Processus de marquage : examen de B.
S = {A,B,C} T= {D,E, F} E = {A,B}
1. Processus de marquage : examen de C.
ΔfD= +2 Label(D) = (C+, +2)
S = {A,B,C,D} T= {E,F} E = {A,B,C}
1. Processus de marquage : examen de D.
ΔfE= +2 Label(E) = (D−, +2)
S= {A,B,C,D,E} T= {F} E = {A,B,C,D}
44
Chapitre 2. Notions de théorie des graphes
2ème itération :
0. Initialisations
S= {A} T= {B,C,D,E,F} E =
1. Processus de marquage : examen de A.
ΔfB= +1 Label(B) = (A+, +1)
S= {A,B} T= {C,D,E, F} E = {A}
1. Processus de marquage : examen de B.
ΔfC= +1 Label(C) = (B−, +1)
S= {A,B,C} T= {D,E, F} E = {A,B}
1. Processus de marquage : examen de C.
S= {A,B,C} T= {D,E, F} E = {A,B,C}
Conclusion
45
Chapitre 3
Le codage réseau
Introduction
Les auteurs de [21] ont prouvé que si le codage réseau est utilisé par les
nœuds intermédiaires pour coder les différents flux, le débit multicast
maximum (capacité multicast) auquel une source peut envoyer l’information
à un ensemble de récepteurs, est donné par la plus petite coupe entre la source
et n’importe lequel récepteur quand la taille de corps tend vers l’infini.
Pour les réseaux acycliques, S. Jaggi, P. Sanders, et al. [25][26] ont montré
comment trouver des coefficients de codage et de décodage en temps
polynomial. Deux versions d’algorithmes ont été proposées: une version
aléatoire, qui est la plus rapide en moyenne, et une version déterministe.
47
Chapitre 3. Le codage réseau
du réseau, notamment lorsque les liens dans les réseaux sont défaillants,
comme par exemple dans les réseaux sans fil.
Un autre intérêt du codage réseau dans les réseaux sans fil est la
possibilité de réduire la quantité d’énergie par bit, ou en d’autres termes, la
possibilité de réduire l’utilisation des ressources du réseau par rapport aux
solutions de routage classiques [29][30].
3.2.1 Le débit
48
Chapitre 3. Le codage réseau
Dans ce réseau, chaque arc représente un lien orienté qui est capable de porter un
seul paquet. Il y a deux paquets, b1 et b2, présent dans la source s, et nous voulons les
transmettre aux deux nœuds récepteurs, t1, t2.
peuvent combiner les deux paquets. Le paquet résultant est ; <=, formé en
Les nœuds qui reçoivent plusieurs informations (comme le nœud 3)
; <=.
Dans le cas du routage traditionnel, nous pourrions transmettre par
exemple b1 et b2 au t1, mais nous ne pourrions transmettre que b2 au t2.
Le réseau butterfly, illustre un aspect important: ce codage réseau peut
augmenter le débit pour le multicast dans un réseau filaire. Les neuf
transmissions de paquets qui sont employées dans le réseau butterfly pour
transmettre le contenu des deux paquets. Sans codage, ces neuf transmissions
ne peuvent pas être employées pour communiquer autant d'informations, et
elles doivent être complétées par des transmissions additionnelles (par
exemple, une transmission additionnelle de nœud 3 à nœud 4).
Tandis que le codage réseau peut augmenter le débit pour la transmission
multicast dans un réseau filaire, ses avantages de débit ne sont pas limités
pour le multicast ou aux réseaux filaires. Une modification simple du réseau
butterfly nous amène à un exemple qui comporte une connexion de deux
transmissions (voir la figure 3.2).
49
Chapitre 3. Le codage réseau
Dans ce réseau, chaque arc représente un lien dirigé qui est capable de porter un
seul paquet. Il y a un paquet b1 présent dans la source S1 que nous voulons
transmettre au nœud t1 de et un paquet b2 présent dans la source S2 que nous voulons
transmettre pour atteindre le nœud t2.
50
Chapitre 3. Le codage réseau
Le codage réseau peut également être étendu aux réseaux sans fil. Dans
les réseaux sans fil, il devient encore plus facile de trouver des exemples où le
codage réseau rapporte un avantage sur le débit par rapport au routage
classique. En effet, pour le réseau sans fil butterfly (le figure3.3) et le réseau
butterfly modifié de (figure3.4) comportent peu de nœuds (six et trois nœuds,
respectivement, au lieu à sept).
3.2.2 Robustesse
Mais avant que nous procédions, nous abordons une question importante
dans des réseaux de paquet, en particulier les réseaux sans fil, que nous avons
jusqu'ici négligés: la perte de paquet.
La perte de paquets apparait pour différentes raisons dans les réseaux, tels
que le débordement dans les files d’attente, la panne de liens, et la collision. Il
y a différentes manières pour traiter cette perte.
51
Chapitre 3. Le codage réseau
unité de temps sur leurs liens sortants, des paquets sont perdus sur le lien de
connexion 1 et 2 avec la probabilité ε12 et sur le lien de connexion 2 et 3 avec la
probabilité ε23. Un code d'effacement, appliqué au nœud 1, nous permet de
communiquer l'information à un taux de (1 - ε12) (1 - ε23) paquets par unité
temps. Essentiellement nous avons, entre les nœuds 1 et 3, un canal
d'effacement avec la probabilité d'effacement 1 - (1 - ε12) (1 - ε23) dont la
capacité, (1 - ε12) (1 - ε23), peut être atteinte (ou approchée) avec un code
convenablement conçu.
1 2 3
Donc pourquoi cette solution n'est-elle pas employée dans des réseaux de
paquet ?
52
Chapitre 3. Le codage réseau
communication par paquets, unicast ou multicast, avec pertes sur tout canal
où les paquets arrivent selon un processus admettant un taux d’arrivée
moyen.
Dans ce schéma, les nœuds intermédiaires réalisent des opérations de
codage linéaire aléatoire sans attendre tous les paquets d’un bloc. Un des
résultats supplémentaires de ces travaux est l’expression du taux de
décroissance de la probabilité d’erreur en fonction du délai de codage.
3.2.3 Sécurité
D'un point de vue de sécurité, le codage réseau peut offrir des avantages
n'envoie pas ; <=, mais plutôt un autre paquet en tant que ; <=. Puisque
Alternativement, supposons que le nœud 3 est un nœud malveillant qui
les paquets sont codés plutôt que routés, il est plus difficile de détecter les
faux paquets. Dans ce cas, le codage réseau a comme conséquence un
inconvénient potentiel de sécurité.
54
Chapitre 3. Le codage réseau
utilise le système binaire on peut dire que le corps à deux éléments >= est
suffisant.
Un exemple de corps fini est l’ensemble >= = {0,1} ou GF(2)={0,1}.il est très
GF(2)
+ 0 1
0 0 1
1 1 0
× 0 1
0 0 0
1 0 1
GF(3)
+ 0 1 2
0 0 1 2
1 1 2 0
2 2 0 1
× 0 1 2
0 0 0 0
1 0 1 2
2 0 2 1
55
Chapitre 3. Le codage réseau
L’espace vectoriel
Prenons Ω =>=C un espace vectoriel de dimension m. Les éléments d’un vecteur sont
des éléments de >= sont appelés des scalaires avec des valeurs 0 et 1.
Exemple:
Prenons m=5 alors Ω =>=D tous les vecteurs sont de dimension 5 on a alors
25 =32 vecteurs.
Entre autre les vecteurs suivants :
1 0 1 1 0 1
G0K G1K G0K G0K G1K G1K
F0J , F0J , F0J , F1J , F0J , F1J.
0 0 1 1 1 0
0 0 0 0
E I E I E I E I E I E1I 0
Le vecteur de somme de
1 1 1 1 1P1 0
0
G K G K0 0 0
G K G K G 0 K G0K
F0J , F0J MNO F0J P F0J F 0 J F0J
0 1 0 1 1 1
E0I E0I E0I E0I E 0 I E0I
même, prenons Y comme une matrice de T Q R dont les lignes sont les
vecteurs Y1,Y2…….YN. En raison de l'acceptation des opérations linéaires
effectuées par chaque nœud du réseau, Y et X peuvent être rapportés par
l'expression simple de la matrice suivante:
Y=AX (3.1)
Figure 3.7 exemple de transmission de paquets (a) sans erreurs, (b) avec erreurs
57
Chapitre 3. Le codage réseau
Y = AX + BZ (3.2)
En outre, si Zi= 0 pour tous U1,2, … , XY, alors il n'y a aucun paquet erroné
jusqu’a destinataire. Si Zi= 0, là n'est aucune erreur introduite pour le lien i.
58
Chapitre 3. Le codage réseau
de la congestion et des pertes sur les liens et dans les routeurs sont souvent
ignorés. D’autres problèmes apparaissant dans les réseaux réels compliquent
l’application du codage réseau dans des réseaux réels. Par exemple,
l’information est transmise d’une manière asynchrone en paquets, les paquets
sont sujets à des délais et des pertes aléatoires sur chaque lien et nœud. Les
liens ont, dans la majorité des cas, des capacités inconnues. De plus, il est
extrêmement difficile d’avoir une connaissance totale du réseau. Enfin, il faut
noter que la topologie du réseau peut varier dans certains types de réseaux
tels que les réseaux ad-hoc ou les réseaux pair-à pair.
Un autre type de problèmes dans les réseaux réels concerne les latences et
les variations de délai. Les variations de trafic engendrent des problèmes de
congestions qui peuvent générer des latences. Pour contrôler les variations de
la capacité des liens, des files d’attente sont employées dans les routeurs. La
limitation des tailles de ces files d’attente peut produire des pertes.
Pour appliquer le codage réseau à des réseaux réels, plusieurs approches
ou stratégies de politiques de codage dans les nœuds intermédiaires ont été
proposées pour intégrer des contraintes pratiques.
Un premier ensemble d’approches, présenté dans [35][34][36], consiste à
effectuer des combinaisons linéaires aléatoires des paquets d’entrée. Dans
[35], il est montré que la probabilité qu’un récepteur puisse décoder avec
succès les données reçues peut être majorée par une borne qui est fonction de
la taille du corps fini utilisé. Dans [36][35][29], un codage aléatoire est
appliqué aux réseaux de pair-à pair et aux réseaux sans fil.
Dans différents contextes, [26] ou [34] présentent des solutions assurant le
codage de tous les paquets dans des nœuds de codage. Dans ces deux
derniers travaux, les implémentations sont basées sur des stratégies
particulières de nœuds de réseau permettant de gérer, entre autres, les
arrivées asynchrones de données. Ces stratégies impliquent un stockage des
informations dans les nœuds de codage afin d’attendre l’arrivée des
informations de la même génération provenant d’autres liens pour réaliser le
codage et les coder avec l’autre information entrante.
D’autres travaux, comme [37] ou [38], ont utilisé une approche classique
pour combiner les paquets selon un code réseau déterminé a priori. Cette
deuxième approche, qui est théoriquement la plus efficace, peut entraîner un
stockage des paquets dans des files d’attente dans des nœuds de codage et
par conséquent, une augmentation des délais de bout-en-bout.
59
Chapitre 3. Le codage réseau
Conclusion
60
Chapitre 4
Introduction
Soit h le maximum des maxflow (T) sur tout T∈ N, l’ensemble des nœuds
du réseau. Soit Ω un espace vectoriel de dimension h sur un corps fini
suffisamment grand.
Considérons un symbole sur ce corps fini comme l’unité d’information.
Dans ce cas, 1 symbole dans le corps fini peut être transmis sur un lien chaque
unité de temps.
(LCM) : Un codage linéaire multicast v sur un réseau de transmission (G, S)
est une attribution d’un espace vectoriel v(X) à chaque nœud X et d’un
vecteur v(X, Y) à chaque lien (X, Y) tels que :
• v(S) = Ω;
• v(X, Y ) ∈v(X) pour chaque lien(X, Y ) ;
• Pour tout ensemble ℘de nœuds "non source" dans le réseau
{ v(T) : T ∈℘} = { v(X, Y ) : X ∉℘, Y ∈℘ }
61
Chapitre 4. Les algorithmes de codage réseau
En fait, la loi de flux d’information dans un nœud, qui implique que les
informations en sortie d’un nœud X sont des combinaisons des informations
"entrantes", implique que le vecteur assigné à un lien sortant de X doit être
une combinaison linéaire des vecteurs assignés aux liens entrants de T [24].
En pratique, les données circulant sur un lien (X,Y) sont calculées en
faisant le produit du vecteur d’information reçu par le vecteur de colonnes
v(X,Y), l’ensemble des vecteurs de colonnes formant une matrice qui
caractérise le codage au niveau d’un nœud [50].
car l’information qui passe sur (S, U) (resp. (S, T)) est égale au produit
62
Chapitre 4. Les algorithmes de codage réseau
63
Chapitre 4. Les algorithmes de codage réseau
Dans des réseaux ayant des topologies variables et/ou un grand nombre
de nœuds, il est très difficile d’utiliser le codage réseau classique où les
routeurs réalisent des combinaisons linéaires fixes.
Dans ces conditions, une solution consiste à utiliser du codage réseau
aléatoire (Random Linear Network Coding). Cette approche, proposée dans
[43][44], consiste à ce que chaque nœud du réseau effectue des combinaisons
linéaires aléatoires dans un corps fini à partir des paquets reçus par leur lien
d’entrée. Ils transmettent ensuite les paquets combinés (codés) sur les liens
sortants.
Pour décrire plus précisément cette technique, supposons que chaque
paquet contienne L bits (si les paquets ne sont pas de la même taille, ils seront
complétés avec des zéros).Chaque paquet est composé d’un vecteur de L/m
symboles où un symbole dans le corps F2m est représenté par m bits
consécutifs. Rappelons que la longueur d’un paquet combiné est toujours de
L bits après la combinaison de deux paquets de longueur L et que ce paquet
contient des informations issues de certains des paquets générés par les
sources [45].
Considérons n paquets M1, . . .,Mn générés par une ou plusieurs sources.
Avec un codage réseau linéaire, chaque paquet X dans le réseau est associé à
un vecteur de codage qui est un vecteur de coefficients g = (g1, . . . , gn) dans
(F2m)n.
Le problème de la construction d’un code réseau consiste à déterminer les
combinaisons linéaires que chaque nœud du réseau doit effectuer afin
d’assurer que le récepteur reçoive au moins n combinaisons linéaires
indépendantes à partir desquelles il peut décoder les paquets sources.
Avec le codage réseau aléatoire, chaque nœud du réseau choisit ses
coefficients de façon indépendante, aléatoire et uniforme dans le corps F2m,
d’une manière totalement décentralisée. De plus, aucune coordination n’est
exigée entre les nœuds dans leur choix des combinaisons linéaires d’entrées et
de sorties [43][35].
Dans ce cas, le paquet combiné sera :
_ ` R … (4.1)
a;
64
Chapitre 4. Les algorithmes de codage réseau
65
Chapitre 4. Les algorithmes de codage réseau
vecteur de codage du jème paquet combiné Xj. Après avoir choisi de façon
e
suivante :
_c d _ … 4.3
a;
`́ d ` … 4.4
a;
Cette opération peut être répétée dans plusieurs nœuds dans le réseau. Au
niveau du décodage, il est tout d’abord nécessaire que pour chaque paquet
reçu, le récepteur connaisse le vecteur des combinaisons linéaires totales de ce
vecteur en fonction des paquets sources. Il réalise ensuite la combinaison
linéaire inverse (qui correspond à une inversion de matrice) pour retrouver
les paquets sources.
Par exemple, supposons qu’un nœud reçoive l’ensemble de paquets
(g1,X1), . . . , (gs,Xs).
Pour récupérer les paquets sources M1, . . .,Mn, il doit résoudre le système de s
équations linéaires avec n inconnues :
A
k_; `; R
i
i a;
i A
_ = `= R
j
i
a;
A
i e
i_ `e R
h a;
Même si il y a une certaine probabilité que les paquets combinés (ou les
combinaisons) soient linéairement corrélés, une petite taille de corps (par
exemple, m = 8) est suffisante pour que cette probabilité devienne négligeable
[35] et que le codage aléatoire reste plus performant que le routage [46].
67
Chapitre 4. Les algorithmes de codage réseau
l m _ n, … 4.5
:p q,r q,q́
En général, Y(e), qui est transmis sur le lien e = (v, u)∈ ΓO(v), est une fonction
68
Chapitre 4. Les algorithmes de codage réseau
Y(e) = {Y0(e),Y1(e), ···} et Z(v,l) = {Z0(v, l), Z1(v, l), ···}. Ces processus génèrent
une succession de symboles dans F2m. Soit G=(V,E) un réseau de
69
Chapitre 4. Les algorithmes de codage réseau
z q z q
n, é, { v é … 4.7
é:A~ éaq
où εe’,j F2m.
Pour un réseau donné G et un ensemble donné de connexions l, on définit
le problème de réseau comme une paire (G,l). Ce problème donne des
conditions algébriques sous lesquelles un ensemble de connexions est
possible.
La solution de ce problème consiste à trouver les éléments αe,l, βe’,e et εe’,j
dans un corps fini convenable F2m. S’il existe une solution au problème du
codage réseau, donc le réseau est solvable.
La méthode de construction de la solution, présentée dans cette partie,
relie le problème du codage réseau avec des concepts algébriques, avec le
théorème Min-cut Max-flow ainsi qu’avec l’algorithme de Ford-Fulkerson.
Soit G(V,E) un réseau avec une seule source et un seul récepteur. Dans ce
cas, nous avons une seule connexion c = (v, v’, χ(v, v’)). Le problème de réseau
est solvable si et seulement si le débit de la connexion R(c) est inférieur ou
égal à la valeur minimale de toutes les coupes entre v et v’.
L’algorithme de Ford-Fulkerson donne une solution où tous les paramètres
αe,l, βe’,e et εe’,j sont égaux à 1 ou 0. Il donne une matrice de transfert qui définit
la relation entre le vecteur d’entrée t= (X(v,1),X(v,2), ···,X(v,µ(v))
u= t∗M
70
Chapitre 4. Les algorithmes de codage réseau
où M est une matrice dont les coefficient (αe,l, βe’,e, εe’,j) sont des éléments deF2m.
La matrice M est définie comme: M = A ∗(I −F)−1∗BT
où les matrices A, B sont la matrice d’entrée et la matrice de sortie, définies
comme suit:
Si le réseau contient plusieurs sources et récepteurs, le vecteur d’entrée est
alors:
t= (t1,t2, ···,tµ)
= (X(v1, 1),X(v1, 2), ···,X(v1, µ(v1)),X(v2, 1),X(v2, 2), ···,X(v|V |, µ(v|V |))
wM,| t _OM[M ], |
, … 4.8
0 NSS
= (Z(v1, 1), Z(v1, 2), ···, Z(v1, ν(v1)), Z(v2, 1), Z(v2, 2), ···,X(v|V |, ν(v|V |))
le vecteur de sortie. La matrice de sortie B est de taille ν∗|E|. Pour tout l, elle est
définie comme:
M,| u SO[M ], |
, … 4.9
0 NSS
} SO M OM M
>, M,M … 4.10
0 NSS
71
Chapitre 4. Les algorithmes de codage réseau
4.4 Exemple
v M1 wM1,1 wM1,2
w w { 1
v M2 M2,1 M2,2 2
72
Chapitre 4. Les algorithmes de codage réseau
1 M8,1 0 0 v M5
M5,1
M5,2 M8,2 0 0 v M8
. 1 . R
2 0
v1 0 M7,v1 M9,v1 v M7 2
v2 0 0 M7,v2 M9,v2 v M9
0 0 }M1,M3 0 }M1,M5 0 0 0 0
0 0 0 }M2,M4 0 0 }M2,M7 0 0
0 0 0 0 0 }M3,M6 0 0 0
0 0 0 0 0 }M4,M6 0 0 0
>
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 }M6,M8 }M6,M9
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
73
Chapitre 4. Les algorithmes de codage réseau
; wx;,¡; wx=,¡; 0 0 0 0 0 0 0
= wx;,¡= wx=,¡= 0 0 0 0 0 0 0
; 0 0 0 0 x,¢; 0 0 x,¢; 0
= 0 0 0 0 x,¢= 0 0 x,¢= 0
v; 0 0 0 0 0 0 x,£; 0 x ,£;
v= 0 0 0 0 0 0 x,£= 0 x ,£=
Intuitivement, la matrice A peut être vue comme le codage avant l’entrée dans
le réseau.
De même, la matrice B peut être vue comme le décodage des informations qui
parviennent à chacun des récepteurs. L’inverse de la matrice I−F peut être
calculé de la manière suivante:
1 0 }x;,xB 0 }x;,x }x;,xB }xB,x 0 }x;,xB }xB,x }x,x }x;,xB }xB,x }x,x
0 1 0 }x=,x 0 }x=,x }x,x }x=,x }x=,x }x,x }x,x }x=,x }x,x }x,x
0 0 1 0 0 }xB,x 0 }xB,x }x,x }xB,x }x,x
0 0 0 1 0 }x,x 0 }x,x }x,x }x,x }x,x
¤ 2 >21 0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 }x,x }x,x
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1
74
Chapitre 4. Les algorithmes de codage réseau
Où :
S11 = αe1,b1
S21 = αe1,b2
S12 = αe2,b1
S22 = αe2,b2
S13 = αe1,b1βe1,e3
S23 = αe1,b2βe1,e3
S14 = αe2,b1βe2,e4
S24 = αe2,b2βe2,e4
S15 = αe1,b1βe1,e5
S25 = αe1,b2βe1,e5
S16 = αe1,b1βe1,e3βe3,e6 + αe2,b1βe2,e4βe4,e6
S26 = αe1,b2βe1,e3βe3,e6 + αe1,b2βe2,e4βe4,e6
S17 = αe2,b1βe2,e7
S27 = αe2,b2βe2,e7
S18 = αe1,b1βe1,e3βe3,e6βe6,e8 + αe2,b1βe2,e4βe4,e6βe6,e8
S28 = αe1,b2βe1,e3βe3,e6βe6,e8 + αe2,b2βe2,e4βe4,e6βe6,e8
S19 = αe1,b1βe1,e3βe3,e6βe6,e9 + αe2,b1βe2,e4βe4,e6βe6,e9
S29 = αe1,b2βe1,e3βe3,e6βe6,e9 + αe2,b2βe2,e4βe4,e6βe6,e9
1 2 v1 v2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
M5,1
¦ M5,2 0 0
0 0 0 0
0 0 M7,v1 M7,v1
M8,1 M8,2 0 0
0 0 M9,v1 M9,v2
75
Chapitre 4. Les algorithmes de codage réseau
Où :
Finalement, les flux sortants de ce réseau seront exprimés en fonction des flux
entrants et de la matrice de transfert M comme suit :
; x,¢; x,¢; 0 0 v M
x,¢= 0 0
=
x,¢= { v M §; = ¨ { R
v; 0 0 x,£; x ,£; v M
v= 0 0 x,£= x ,£= v M
Conclusion
76
Chapitre 5
Environnement de simulations et
outils utilisés
5.1 L’intérêt d’utiliser un simulateur
Pour évaluer et tester les applications et les protocoles d’un réseau sans fil,
la simulation est un choix qui permet non seulement de tester sans aucun coût
des nouvelles normes, des nouvelles technologies mais aussi d’anticiper les
problèmes qui peuvent se poser dans le futur.
Un certain nombre de simulateurs ont été développés pour répondre à ce
besoins. Nous pouvons citer Network Simulateur2 (NS2) [54] et son extension
sans fil “The CMU Monarch Project” [51], OPNET [52] ou encore le
simulateur GloMoSim [53] conçu autour des environnements parallèles.
Les mécanismes utilisés dans les réseaux IP (protocole de routage, file
d'attente et dans notre cas le codage réseau) doivent être évalués afin de
mesurer les performances des stratégies utilisées et de tester leur fiabilité.
L'utilisation d'un réseau réel dans une évaluation est difficile et coûteuse, en
outre de telles évaluations ne donnent généralement pas des résultats
significatifs. Le réseau réel n'offre pas la souplesse de varier les différents
paramètres de l'environnement et pose en plus le problème d'extraction de
résultats; c'est pour cela que la majorité des travaux d'évaluation de
performances utilisent le principe de simulation vu les avantages qu'il offre.
En effet, la simulation permet de tester les protocoles sous une variété de
conditions.
Par défaut le débit offert par la couche IEEE 802.11 est de 2Mbit/s. Cependant
cette valeur peut être modifiée explicitement dans le code source. Il faut noter
également que ce logiciel est constamment modifié, corrigé et étendu au fur et
à mesure de l’apparition de nouveaux besoins. Ainsi, au cours du
déroulement de ce mémoire, plusieurs versions se sont succédées, apportant
leurs lots de corrections et améliorations diverses.
78
Chapitre 5. Environnement de simulation et outils utilisés
Ces fichiers doivent être traités pour pouvoir calculer les valeurs de bande
passante, perte, délai et gigue relatives au scénario en question. Par exemple
PDR, dans notre cas ce traitement a été réalisé par le langage de traitement
des fichiers: Python. Enfin, le traçage des courbes a été réalisé par Excel.
Par ailleurs, le simulateur permet la création d'un fichier d'animation
permettant de visualiser la simulation sur une interface graphique appelée
NAM.
D’un autre côté, NS2 souffre des inconvénients des simulateurs tel que la
simplification et l’abstraction du monde réel et la puissance de calcul requise
qui croit exponentiellement avec la complexité du système simulé.
De plus, NS2 souffre de l’état primitif aussi bien de ses outils de collecte et
traitement des résultats que de son interface graphique. Les concepteurs de
NS2 ne manquent pas de mettre en garde les utilisateurs sur l'aspect non
achevé de ce simulateur. Il ne s'agit pas d'un produit fini, de nouveaux bugs
sont souvent trouvés et d'autres constamment introduits par les
81
Chapitre 5. Environnement de simulation et outils utilisés
Dans le cas de notre projet, c'est surtout les deux derniers points qui ont
présenté une difficulté de taille pour l'avancement de notre travail d'autant
plus que la documentation manque sévèrement : généralement, les modules
qui sont développés pour NS2 sont en étroite dépendance avec les systèmes
sur lesquels ils ont été développés initialement. De ce fait, il a fallu
constamment faire face à des problèmes d'incompatibilité et de réadaptation
des modules pour qu'ils puissent fonctionner sur la machine qu'on utilise. On
a dû passer par une série de test (implémentation de plusieurs modules,
introduction de plusieurs modifications, test de plusieurs combinaisons).
Le recours aux forums de discussion et la consultation des auteurs des
modules par mail ont été souvent les seuls moyens de surmonter certains
problèmes.
82
Chapitre 5. Environnement de simulation et outils utilisés
For i=1 to 10
Simulation
Exécution :
Script_ de_
Script simulation_i.tcl
Topologie.tcl ˝pour chaque ρ˝
83
Chapitre 5. Environnement de simulation et outils utilisés
Début
Sc : donner par l’utilisateur (0,1; 0,2; ….. ; 1 ) ;
Lors du réception d'un nouveau paquet Pk
Si (Pk) est innovateur alors
Stocker dans le buffer ;
finsi
Broadcast ©c;
*/
finsi
Fin
Pour installer NS2 sous windows XP, nous avons choisi la version ns-2.27 et
c’est la même chose pour toutes les autres versions de NS2 (2.28, 2.29, 2.34,… )
85
Chapitre 5. Environnement de simulation et outils utilisés
Si vous voulez installer cygwin pour la première fois et vous n’avez pas les
packages choisissez Download from internet
Mais si vous avez déjà les packages choisissez install from Local Directory
Cliquer sur suivant pour avoir la fenêtre ci-dessous
Laisser les options par défaut cliquer ensuite sur suivant pour avoir la fenêtre
suivante
86
Chapitre 5. Environnement de simulation et outils utilisés
Cliquer sur Browse et choisissez où se trouve les packages. Dans notre cas
« ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin » par exemple
Cette fenêtre contient les packages de cygwin pour voir tous les packages
cliquer sur view le mot category changera en full
87
Chapitre 5. Environnement de simulation et outils utilisés
88
Chapitre 5. Environnement de simulation et outils utilisés
89
Chapitre 5. Environnement de simulation et outils utilisés
90
Chapitre 5. Environnement de simulation et outils utilisés
91
Chapitre 5. Environnement de simulation et outils utilisés
92
Chapitre 5. Environnement de simulation et outils utilisés
500
400
300
200
100
0
0 100 200 300 400 500 600
Évaluation de performance
Introduction
entre la source et un récepteur. Chaque lien e E qui sort d’un nœud v = in(e)
La capacité de diffusion h est le nombre minimum de liens dans chaque coupe
porte un symbole y(e) qui est une combinaison linéaire des symboles y(e’) sur
les liens entrants e’[34]:
« M x Ḿ « Ḿ … 5.1
x́ :´µ~ x́ aq
94
` M x Ḿ ` Ḿ … 5.2
x́ :´µ~ x́ aq
« M; `; M; ¯ ` M; t; t;
ª ¬ ®ª ¬ ± ¬ ® ª ¬ ® ²~ ª ¬ ®
« M `; M ¯ ` M t t
On peut récupérer les symboles source x1, . . . , xh via la matrice Gt des vecteurs
de codage global g(e1), . . . , g(eh).
« M x Ḿ « Ḿ … 5.3
x́ :´µ~ x́ aq
95
des vecteurs y(e’) sur les liens e’ entrants v = in(e). De la même manière, les
symboles de la source xi transmis vers la source sur les liens artificiels e’i sont
groupés en vecteurs Xi= [xi,1, xi,2, . . . , xi,N] et donc chaque récepteur peut
retrouver (avec une grande probabilité) les h vecteurs de la source x1, . . . , xh à
partir de n’importe quels h paquets reçus.
96
paquets. Notons que le décodage est réalisable même si les vecteurs de
codage local ont été choisis aléatoirement.
97
¸ 0,5 un nœud, en moyenne, envoie un nouveau message à la réception de
deux paquets innovateurs.
Avec PHY et MAC sont les entêtes de la couche physique et mac tel que
PHY=192 bits, MAC=224 bits.
NC(n) est l’entête du codage réseau, elle dépend de nombre de nœud n utilisé
et sa taille : NC(n)=8(18+n) bits.
P : représente la taille des paquets CBR que nous allons générer dans nos
simulations qui est 64 bits (8 bytes)
Le débit utilisé est de 12 kb/s
Nous testons notre algorithme en variant ¸ de 0,1 à 1 pour les deux cas :
Pour les schémas ci-dessous ¸ est décidé a priori égale pour tous les
codage de réseau et inondation probabiliste.
nœuds. Nous avons simulé pour chaque ¸ dix scénario différent puis nous
avons pris la moyenne de tous les nœuds, les résultats sont schématisés dans
les graphes ci-dessous :
99
6.2.3 Résultats de simulation
I. Le cas fixe
1
codage réseau
0,9
0,8 inondation probabiliste
0,7
0,6
PDR
0,5
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
0,12
Inondation probabiliste
0,1
Codage réseau
Délai de paquets
0,08
0,06
0,04
0,02
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
100
Cercle de 16 nœuds : distance entre les nœuds est 175 avec la porté de 200 m
dans une surface de 1000 ×1000
1
inondation probabiliste
0,9
codage reseau
0,8
0,7
0,6
PDR
0,5
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
0,7
inondation probabiliste
0,6
Codage réseau
0,5
0,4
Délai
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
101
Cercle 32 nœuds : distance entre les nœuds est 175 avec la porté de 200 m
dans une surface de 1900 ×1900
1
Codage réseau
0,9
Inondation probabiliste
0,8
0,7
0,6
PDR
0,5
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
4,5
4 inondation probabiliste
Codage réseau
3,5
3
2,5
Délai
2
1,5
1
0,5
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
102
La comparaison entre le codage réseau (trait continue) avec celui de
l’inondation probabiliste (trait pointillés) en termes de taux de délivrance
103
I.2 Topologie en gille
Grille de 9 nœuds: distance entre les nœuds est 175 avec la porté de 200 m
dans une surface de 400 ×400
1
0,9
0,8
0,7
0,6
PDR
0,5
0,4
0,3
Codage réseau
0,2
Inondation probabiliste
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
0,11
0,1
Inondation probabiliste
0,09
Codage réseau
0,08
0,07
0,06
Délai
0,05
0,04
0,03
0,02
0,01
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
104
Grille de 25 nœuds: distance entre les nœuds est 175 avec la porté de 200 m
dans une surface de 800 ×800
1
0,9
0,8
0,7
0,6
PDR
0,5
0,4
0,3
Codage réseau
0,2
Inondation probabiliste
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
2,5
Inondation probabiliste
Codage réseau
2
1,5
Délai
0,5
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
105
Grille de 64 nœuds :distance entre les nœuds est 175 avec la porté de 200 m
dans une surface de 1300 ×1300
1
0,9
0,8
0,7
0,6
PDR
0,5
0,4
0,3
Codage réseau
0,2
0,1 Inondation probabiliste
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
25
Inondation probabiliste
Codage réseau
20
15
Deélai
10
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
106
Pour la topologie en grille et dans le cas de 9 nœuds et avec ¸ 0,3 ou plus,
chaque nœud atteint un taux supérieur à 90%, de même que le délai est court
par rapport au cas d’inondation probabiliste nous pouvons affirmer que le
codage réseau est meilleur dans ce cas.
Dans les deux autres cas (16, 32 nœuds) nous constatons que le codage réseau
paquets de réseau (¸ 0,4) avec un délai un peu plus élevé par rapport à
est meilleur en délivrance de paquets et atteint très vite le taux de 90% des
107
I.3 Topologie aléatoire
Aléatoire 17 nœuds: distance entre les nœuds est 175 avec la porté de 200 m
dans une surface de 1000 ×1000
1
Codage réseau
0,9
Inondation probabiliste
0,8
0,7
0,6
PDR
0,5
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
0,8
Inondation probabiliste
0,7
Codage réseau
0,6
0,5
Délai
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 de transmission,
facteur 0,6 0,7ρ 0,8 0,9 1
108
Aléatoire de 50 nœuds : distance entre les nœuds est 175 avec la porté de 200
m dans une surface de 1000 ×1000
1
0,9
0,8
0,7
0,6
PDR
0,5
0,4
0,3
0,2
Codage réseau Inondation probabiliste
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
20
Codage réseau
18
Inondation probabiliste
16
14
12
Délai
10
8
6
4
2
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
109
II. Le cas mobile
Aléatoire de 12 nœuds: distance entre les nœuds est 175 avec la porté de 200
m dans une surface de 1000 ×1000
1
Codage réseau
0,9
Inondation probabiliste
0,8
0,7
0,6
PDR
0,5
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
0,3
Codage réseau
Inondation probabiliste
0,25
0,2
Délai
0,15
0,1
0,05
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
110
Aléatoire de 34 nœuds: distance entre les nœuds est 175 avec la porté de 200
m dans une surface de 1000 ×1000
1
0,9 Codage réseau
Inondation probabiliste
0,8
0,7
0,6
PDR
0,5
0,4
0,3
0,2
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
6
Codage réseau
5 Inondation probabiliste
4
Délai
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
111
Aléatoire de 50 nœuds: distance entre les nœuds est 175 avec la porté de 200
m dans une surface de 1000 ×1000
1
0,9
0,8
0,7
0,6
PDR
0,5
0,4
0,3
Codage réseau
0,2
Inondation probabiliste
0,1
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
25
Codage réseau
Inondation probabiliste
20
15
Délai
10
0
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
facteur de transmission, ρ
112
Dans le cas mobile le codage réseau est meilleur en délivrance de paquet
Conclusion
D’après les simulations on déduit que le codage réseau est très efficace en
délivrance de paquet et surtout avec la topologie en grille; parce que chaque
nœud à plusieurs voisins ce qui lui permet d’avoir l’occasion de coder les
réseau atteint très vite le taux de 90% avec ¸ 0,4 ce qui rend le codage
paquets entendu puis ils les retransmettent. Dans cette topologie le codage
réseau plus rentable et surtout pour l’économie d’énergie (batterie) ce qui est
avantageux pour les réseaux sans fil (Ad Hoc, réseau de capteur).
avec ¸ U0,9; 1Y, cela est dû au fait qu’il n’ya pas de redondance de paquets
Le codage réseau est meilleur en délivrance de paquets et en délai
113
Conclusion
Actuellement, les réseaux 802.11 sont considérés, dans certains
environnements, comme une alternative sérieuse aux réseaux filaires. En effet,
les nombreux avantages qu’offre cette technologie (rapidité de déploiement,
réduction des coûts d’installation, mobilité, etc.) leurs ont permis de s’imposer
rapidement sur le marché.
Les réseaux Ad hoc, commence à susciter l’intérêt des chercheurs par les
nombreuse applications qui peuvent être explorées dans ce type
d’architecture (catastrophes naturelles, guerres ...). Les recherches dans ce
domaine se sont concentrées sur certains problèmes clé, parmi lesquels
minimiser l’énergie qui est une ressource rare dans les réseaux sans fil.
114
Bibliographie
[1] Emmanuel CONCHON, "Définition et mise en œuvre d’une solution
d’émulation de réseaux sans fil ", Thèse de doctorat, l’Institut National
Polytechnique De Toulouse, 2006.
[2] S. Corson and J. Macker. Mobile Ad hoc Networking (MANET) “Routing
Protocol Performance Issues and Evaluation Considerations”. Internet
Request for Comments RFC 2501, Internet Engineering Task Force
(IETF), january 1999.
[3] Vincent UNTZ ,"Les réseaux sans fil spontanés pour l’Internet Ambiant",
Thèse de doctorat,INP Grenoble,2007
[4] C. L. Hedrick. Routing Information Protocol. RFC 1058, 1988.
[5] G. Malkin. RIP Version 2. RFC 2453, 1998.
[6] J. M. McQuillan, I. Richer, and E. C. Rosen. “The new routing algorithm
for the ARPANET”. Innovations in Internetworking, pages 119–127,
1988.
[7] E.W. Dijkstra. A note on two problems in connexion with graphs.
Numerische Mathematik, 1 :269–271, 1959.
[8] J. Moy. OSPF specification. RFC 1131, 1989.
[9] J. Moy. OSPF Version 2. RFC 2328, 1998.
[10] R. W. Callon. Use of OSI IS-IS for routing in TCP/IP and dual
environments. RFC 1195, 1990.
[11] IETF MANET Working Group. http://www.ietf.org/html.charters/manet-
charter.html.
[12] GAUCHARD David, " Simulation Hybride des Réseaux IP-DiffServ-
MPLS Multi-servicessur Environnement d’Exécution Distribuée", thèse
de doctorat, Université Toulouse III PAUL SABATIER,2003.
[13] Dominique Dhoutaut, "Etude du standard IEEE 802.11 dans le cadre des
réseaux ad hoc: de la simulation à l’expérimentation",Thèse de doctorat,
L’Institut National des Sciences Appliquées de Lyon, 2003
[14] S. Das C. Perkins, E. Belding-Royer. RFC 3561, Ad hoc On-Demand
Distance Vector (AODV) Routing [en ligne], 2010. Memo. The Internet
Society. Disponible sur : ftp://ftp.rfc-editor.org/in-notes/rfc3561.txt.
[15] Yih-Chun Hu David B. Johnson, David A. Maltz. The Dynamic Source
Routing Protocol for Mobile Ad Hoc Networks (DSR) (draft IETF), 2004.
115
[16] Philippe Jacquet Thomas Clausen. RFC 3626, Optimized Link State
Routing Protocol (OLSR), 2003.
[17] Eric Sigward, Introduction à la théorie des graphes,mars 2002
[18] Daniel DEWOLF Optimisation des flux Dunkerque, Septembre 2003
[19] Nikolaos Pappas, Network Coding, Telecommunications and Networks
Laboratory Institute for Computer Science (ICS) University of Crete,
Technical Report FORTH-ICS/TR-393 – September 2007
[20] FORD L.K. et D.K.FULKERSON, Flows in networks, Princeton
University Press, Princeton, New Jersey, 1962.
[21] R. Ahlswede, N. Cai, S-Y. R. Li, and R.W. Yeung.” Network information
flow”. IEEE Transactions on Information Theory, vol. 46, pp. 1204-1216,
July 2000
[22] R. Koetter and M. Médard. ‘’An algebraic approach to network coding’’.
IEEE/ACM Transactions on Networking (TON), vol. 11, no. 5, pp. 782-
795, October 2003.
[23] R. Koetter and M. Médard. ‘’Beyond routing : An algebraic approach to
network coding’’. In Proceedings of the 21th Annual Joint Conference of
the IEEE Computer and Communications Societies (INFOCOM’02), vol.
1, pp. 122-130, June 2002.
[24] S-Y. R. Li, R. W. Yeung, and N. Cai. ‘’Linear network coding’’. IEEE
Transactions on Information Theory, vol. 49, no. 2, pp. 371-381, 2003.
[25] P. Sanders, S. Egner, and L. Tolhuizen. ‘’Polynomial time algorithms for
network information flow’’. In Proceedings of the Fifteenth Annual ACM
Symposium on Parallel Algorithms (SPAA), San Diego, California, USA ,
pp. 286-294, June 2003.
[26] S. Jaggi, P. Sanders, P. A. Chou, M. Effros, S. Egner, K. Jain, and L.
Tolhuizen. ‘’Polynomial time algorithms for multicast network code
construction’’. IEEE Transactions on Information Theory, vol. 51, no. 6,
pp. 1973-1982, June 2005.
[27] C. K. Ngai and R.W. Yeung. ‘’Network coding gain of combination
networks’’. IEEE Information Theory Workshop, pp. 283-287, October
2004.
[28] T. Noguchi, T. Matsuda, and M. Yamamoto. ‘’Performance evaluation of
new multicast architecture with network coding’’, 2003.
[29] Y. Wu, P. A. Chou, and S-Y. Kung. ‘’Minimum-energy multicast in
mobile ad hoc networks using network coding’’. IEEE Transactions on
Communications, vol. 53, no.11, pp. 1906-1918, November 2005.
116
[30] Y. Wu, P. Chou, Q. Zhang, K. Jain, W. Zhu, and S-Y. Kung. ‘’Network
planning in wireless ad hoc networks : a cross-layer approach’’. IEEE
Journal on Selected Areas in Communications, vol. 23, no. 1, pp. 136-150,
January 2005.
[31] TRACEY Ho,DESMOND S. LUN, “NETWORK CODING An Introduction”
Cambridge University Press 2008
[32] D. S. Lun, M. Médard, R. Koetter, and M. Effros. “ On coding for reliable
communication over packet networks”. Physical Communication, vol. 1,
no. 1, pp. 3-20, March 2008.
[33] Marco Di Renzo, Lana Iwaza; Michel Kieffer, Pierre Duhamel, and
Khaldoun Al Agha. “Robust Wireless Network Coding-An Overview”,
CNRS-SUPELEC-Univ Paris-Sud 11,CNRS-Univ Paris-Sud 11,2010
[34] P. A. Chou, Y. Wu, and K. Jain. “Practical network coding’’. In
Proceedings of the 41st Allerton Conference on Communication, Control,
and Computing, October 2003.
[35] T. Ho, R. Koetter, M. Medard, D. R. Karger, and M. Effros. “The benefits
of coding over routing in a randomized setting”. In Proceedings of IEEE
International Symposium on Information Theory, pp. 442+, July 2003.
[36] C. Gkantsidis and P. Rodriguez. “Network coding for large scale content
distribution”. In Proceedings of the 24th Annual Joint Conference of the
IEEE Computer and Communications Societies (INFOCOM’05), vol. 4,
pp. 2235-2245, March 2005.
[37] Y. Zhu, B. Li, and J. Guo.”Multicast with network coding in application-
layer overlay networks”. IEEE Journal on Selected Areas in
Communications, vol. 22, no. 1,pp. 107-120, January 2004.
[38] Z. Li, B. Li, D. Jiang, and L. C. Lau. “On achieving optimal throughput
with network coding”. In Proceedings of the 24th Annual Joint
Conference of the IEEE Computer and Communications Societies
(INFOCOM’05), vol. 3, pp. 2184-2194, March 2005.
[39] S. Katti, D. Katabi, W. Hu, H. Rahul, and M. Médard.“The importance of
being opportunistic : Practical network coding for wireless
environments”. In Proceedings of the 43st Allerton Conference on
Communication, Control, and Computing, September 2005.
[40] S. Katti, H. Rahul, W. Hu, D. Katabi, M. Médard, and J. Crowcroft. “Xors
in the air : practical wireless network coding”. ACM SIGCOMM
Computer Communication Review, vol. 36, no. 4, pp. 243-254, October
2006.
117
[41] Y.Wu, P. A. Chou, and S-Y. Kung.”Information exchange in wireless
networks with network coding and physical-layer broadcast”. In
Proceedings of the 39th Conference on Information Sciences and Systems
(CISS), March 2005.
[42] S. Katti, S. Gollakota, and D. Katabi. ”Embracing wireless interference :
Analog network coding”. In Proceedings of the 2007 conference on
Applications, technologies, architectures, and protocols for computer
communications (SIGCOMM ’07), pp. 397-408. ACM, 2007.
[43] T. Ho, M. Médard, J. Shi, M. Effros, and D. R. Karger. “On randomized
network coding ‘’ . In Proceedings of the 41st Allerton Conference on
Communication, Control, and Computingin, October 2003.
[44] T. Ho, M. Médard, R. Koetter, D. R. Karger, M. Effros, J. Shi, and B.
Leong.” Toward a random operation of networks”. IEEE Transactions on
Information Theory, vol. 2001, pp. 1-8, 2004.
[45] C. Fragouli, J-Y. Le Boudec, and J. Widmer. “Network coding : an instant
primer”. ACM SIGCOMM Computer Communication Review, vol. 36,
no. 1, pp. 63-68, January 2006.
[46] T. Ho, B. Leong, M. Médard, R. Kotter, Y. H. Chang, and M. Effros. “On
the utility of network coding in dynamic environments ‘’. International
workshop on wireless Ad hoc networks (IWWAN), 2004.
[47] Y. Sasson, D. Cavin, and A. Schiper, “Probabilistic broadcast for flooding
in wireless mobile ad hoc networks,” in IEEE WCNC, Mar2003.
[48] Alfred Asterjadhi, Elena Fasolo, Michele Rossi,Joerg Widmer,
Member,Michele Zorzi, "Toward Network Coding-Based Protocols
forData Broadcasting in Wireless Ad Hoc Networks", 2010.
[49] Christina Fragouli, J¨org Widmer, and Jean-Yves "Efficient Broadcasting
using Network Coding", 2008
[50] Ali Mahmino, "Application du Codage Réseau aux Architectures à
Garanties de Qualité de Service (QoS)", Thèse de doctorat, Institut
National Polytechnique de Toulouse (INPT), 2009.
[51] The CMU Monarch Project’s , “Wireless and Mobility Extensions to ns“,
Carnegie Mellon University, 1999.
[52] OPNET Modeler, [Online] http ://www.mil3.com.
[53] Global Mobile Information Systems Simulation Library (GloMoSim),
[Online] http ://pcl.cs.ucla.edu/projects/glomosim.
[54] The Network Simulation – ns-2. [Online]. http ://www.isi.edu/nsnam/ns/.
118
Annexe
Annexe A
1.Exemple de script Tcl de cercle de 32 nœuds
#====================================================================
# La définition des options
#====================================================================
set val(chan) Channel/WirelessChannel ;# channel type
set val(prop) Propagation/TwoRayGround ;# radio-propagation model
set val(netif) Phy/WirelessPhy ;# network interface type
set val(mac) Mac/802_11 ;# MAC type
set val(ifq) Queue/DropTail/PriQueue ;# interface queue type
set val(ll) LL ;# link layer type
set val(ant) Antenna/OmniAntenna ;# antenna model
set val(ifqlen) 50 ;# max packet in ifq
set val(rp) NCR ;# routing protocol
set val(nn) 32 ;# number of mobilenodes
set val(x) 1250
set val(y) 1250
set val(stop_sim) 100
set val(print) 80
set val(flooding) 0
set val(probabilistic_nc) 1 ; #Activer le codage réseau aléatoire
set val(force_first) 1
set val(send_count) 1 ; # technique de calculer le facteur de
transmission
set val(statistics) 1
set val(pseudo) 0
set val(sc) 1 ;# numéro de scénario
set val(dist) 175 ;# distance entre les nœuds
set val(R) 200 ; # la porté du nœud
set data_size 8
set data_rate 12Kb
set step 0.004
119
Annexe
if {[llength $argv]>0} {
set val(send_count) [lindex $argv 0]; # it si an integer
}
if {[llength $argv]>1} {
set val(sc) [lindex $argv 1]; # it si an integer
}
if {[llength $argv]>2} {
set val(nn) [lindex $argv 2]; # Number of nodes
}
if {[llength $argv]>3} {
set val(dist) [lindex $argv 3]; # Number of nodes
}
# Paramètres de NCR
#====================================================================
120
Annexe
# Programme
# ===================================================================
# ------------
# Création de l’objet God
# -----------
create-god $val(nn)
# ------------
# Configuration des noeuds
# -----------
set chan_1_ [new $val(chan)]
121
Annexe
-movementTrace OFF
puts "..OK!"
# -----------------
# Topologie
# -----------------
# Indication du chemin de la topologie
source
"../../topology_examples/CircularNetwork/circularNet_$val(nn)_$val(dist).tcl"
puts "...OK!"
# -------------------
# Trafic
# -------------------
# Création des applications et du trafic pour chaque nœud
for {set i 0} {$i < $val(nn)} {incr i} {
122
Annexe
puts "...OK!"
#-----------
# Afficher les statistiques
# ---------
for {set i 0} {$i < $val(nn) } {incr i} {
$ns at $val(print) "$node($i) print_stat";
}
# terminer la smiulation
123
Annexe
#! /usr/bin/perl
$sc[0] = 0.1;
$sc[1] = 0.2;
$sc[2] = 0.3;
$sc[3] = 0.4;
$sc[4] = 0.5;
$sc[5] = 0.6;
$sc[6] = 0.7;
$sc[7] = 0.8;
$sc[8] = 0.9;
$sc[9] = 1.0;
$nSC = 10;
$Nsim = 10;
$nodes[0] = 16;$nodes[1] = 32;$nodes[2] = 64;
$n = 3;
$dist = 175;
}
exit (0) ;
def moy(lis):
k=0
for i in range (len(lis)):
k=k+lis[i]
return k/len(lis)
fw = open('resultat.txt', 'w')
istm4=[]
listm5=[]
aaa='['
ccc='['
for i in range(16):
a='NCR_NC_'+str(i)+'_0.90.txt'
print a
fs = open(a, 'r') # lire les phrases contenues dans un fichier texte
#t(ext1=raw_input('entrer: ')
col4=[]
col5=[]
j=0
while 1:
tex=fs.readline()
print tex
liste=tex.split()
if liste<>[]:
aa=float(liste[3])
bb=float(liste[4])
print aa,'qq'
col4.append(aa)
print col4
col5.append(bb)
print liste
125
Annexe
j=j+1
print j
if tex =='':
break
print col4
print col5
moy4=moy(col4)
moy5=moy(col5)
listm4.append(moy4)
listm5.append(moy5)
aaa=aaa+','+str(moy4)
ccc=ccc+','+str(moy5)
fw.write('le moyenne de colonne 4 du fichier '+str(i)+'est : '+str(moy4)+'\n')
fw.write('le moyenne de colonne 5 du fichier '+str(i)+'est : '+str(moy5)+'\n')
aaa=aaa+']'
ccc=ccc+']'
bbb=aaa[0]+aaa[2:]
ddd=ccc[0]+ccc[2:]
fw.write('la liste des moyennes d la colone 4 : est' +bbb+'\n')
fw.write('la liste des moyennes d la colone 5 : est' +ddd+'\n')
fw.write('la liste des moyennes d la colone 4 a lexcel : est'+'\n')
for i in range(len(listm4)):
fw.write(str(listm4[i])+'\n')
fw.write('la liste des moyennes d la colone 5 a lexcel : est'+'\n')
for i in range(len(listm5)):
fw.write(str(listm5[i])+'\n')
fs.close()
fw.close()
126