-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
191 lines (171 loc) · 7.89 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="grid.css">
<style>
* {
word-wrap: break-word;
}
.graph {
border: 1px solid black;
width: 100%;
height: 500px;
}
p {
border: 1px solid black;
padding: 1em;
}
.container {
max-width: none;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-6-6">
<h1>Modelowanie sieci</h1>
<h2>Lista 2</h2>
</div>
</div>
<div class="row">
<div class="col-4-6">
<h3>Line</h3>
<div class="graph" id="L"></div>
<span class="convergence"></span>
</div>
<div class="col-2-6">
<h3>Komentarz</h3>
<p>Graf liniowy posiada bardzo duży współczynnik porażki gdyż wystarczy aby jedna z N krawędzi została rozerwana do rozspójnienia grafu.</p>
<p><b>Wniosek</b><br>Takich topologii sieciowych należy unikać.</p>
<p>Kolejnym minusem jest bardzo duże opóźnienie pomiędzy dwoma końcowymi node'ami.</p>
<p><b>Fakt</b><br>Istnieje tylko jedna ścieżka z v do w.</p>
</div>
</div>
<div class="row">
<div class="col-4-6">
<h3>Cycle</h3>
<div class="graph" id="C"></div>
<span class="convergence"></span>
</div>
<div class="col-2-6">
<h3>Komentarz</h3>
<p>Dodajemy krawędź <code><br>e{1, 20, h: 0.95}<br></code> łączącą ostatni z pierwszym.</p>
<p><b>Obserwacja</b><br>Graf cykliczny posiada już 2-krotnie większą niezawodność. Pokazuje nam to jak mały nakład pracy (dodanie jednej krawędzi) potrafi poprawić niezawodność sieci</p>
<p>Aby rozspójnić ten graf, minimum dwie krawędzie muszą zostać usunięte.</p>
<p>Istnieją 2 ścieżki do każdego node'a.</p>
</div>
</div>
<div class="row">
<div class="col-4-6">
<h3>Cycle +2</h3>
<div class="graph" id="C22"></div>
<span class="convergence"></span>
</div>
<div class="col-2-6">
<h3>Komentarz</h3>
<p>Dodajemy dwie kolejne krawędzie
<code>
e{1, 10, h: 0.8}<br>
e{10, 15, h: 0.7}<br>
</code>
z mniejszym współczynnikiem niezawodności
</p>
<p>
<b>Obserwacja</b><br>
Prawdopodobieństwo spójności rośnie średnio o ~13%, już nie tak mocno jak w przypadku drugiego grafu (Cycle)
</p>
<p>
<b>Wniosek</b><br>
Nie tylko ilość krawędzi wpływa na spójność grafu, ale również stopień awaryjności.</p>
</div>
</div>
<div class="row">
<div class="col-4-6">
<h3>Cycle +2 (95%)</h3>
<div class="graph" id="C22_95"></div>
<span class="convergence"></span>
</div>
<div class="col-2-6">
<h3>Komentarz</h3>
<p>Krawędzie
<code>
e{1, 10, h: 0.95}<br>
e{10, 15, h: 0.95}<br>
</code>
</p>
<p>
<b>Obserwacja</b><br>
Prawdopodobieństwo wzrosło znikomo gdy zwiększyliśmy stopień bezawaryjności w stosunku do ilości dodanych krawędzi. Można stąd wnioskować że najlepszym czynnikiem wpływającym na spójność jest redundantność połączeń.</p>
</div>
</div>
<div class="row">
<div class="col-4-6">
<h3>Cycle +6</h3>
<div class="graph" id="C26"></div>
<span class="convergence"></span>
</div>
<div class="col-2-6">
<h3>Komentarz</h3>
<p>Dodajemy 4 kolejne losowe krawędzie, takie, że:<br>
<code>
i = 0...4; <br>
e(i + 7, i + 15, h: 0.4 )<br>
</code>
</p>
<p>
<b>Obserwacja</b><br>
Pomimo dodania 4 nowych krawędzi (co prawda z niską niezawodnością), spójność wzrosła znikomo.
</p>
<p>
<b>Wniosek</b><br>
Duży wpływ ma to jak dodamy te krawędzie, to znaczy, które wierzchołki połączymy.
</p>
<p>
<b>Fakt</b><br>
Największą spójnością będą cieszyć się grafy regularne, czyli te mające te same stopnie wszystkich wierzchołków. Oczywiście im wyższy stopień tym lepiej. Idealnymi kandydatami są grafy pełne.
</p>
</div>
</div>
<div class="row">
<div class="col-6-6">
<h3>Petersen +4</h3>
<div class="graph" id="Petersen"></div>
<span class="convergence"></span>
</div>
</div>
<div class="row">
<div class="col-6-6">
<h3>Intensity Matrix</h3>
<span id="intensityMatrix"></span>
</div>
</div>
<div class="row">
<div class="col-6-6">
<p>
Zadanie drugie skupia się na ruchu sieciowym. Na jego początku warto powiedzieć o oznaczeniach. Intensity Matrix jest to macierz, która mówi nam o ilości pakietów wysłanych z i-tego węzła do j-otego. Będziemy jej używać w czasie liczenia opóźnienia w dotarciu pakietu. Graf ma 10 węzłów, maksymalnie 19 krawędzi z parametrem c, który jest przepustowaścią w bitach i a, które mówi o ilości pakietów przechodzących przez daną krawędź. Jednak topologia naszego grafu, nie została narzucona. Z poprzedniego zadania wiem, że warto zmaksmylizować liczbę krawędzi oraz nadmiarowe połączenia. Świetnym wyborem jest graf Petersena. Jest to graf regularny stopnia 3. To daje nam 15 krawędzi przy 10 wierzchołkach, stąd dodałem jeszcze 4 krawędzie tworząc dodatkowo tzw. warkocz. W czasie eksperymentu przyjąłem również wielkość pakietu jako <b>m = 200 bitów</b>.
</p>
<p>
T = 1/G * SUM_e( a(e)/(c(e)/m - a(e)) )
<br>
Średnie opóźnienie pakietu: <b><span id="meanLatency"></span> ms</b>
</p>
<p>
Symulujemy rozspójnienie grafu (h: 0.95) 1000 razy i obliczamy średnie opóźnienie pakietu i sprawdzamy czy jest mniejsze niż tMax.
Za tMax przyjmujemy średnie opóźnienie grafu nierozspójnionego.
Miara niezawodności: <b><span id="reliability"></span>%</b>
</p>
</div>
</div>
</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.js"></script>
<!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css"></script> -->
<script src="graphlib.js"></script>
<script src="drawing.js"></script>
<script src="index.js"></script>
</body>
</html>