|
|
xv | |
About the editors |
|
xix | |
Preface from the editors |
|
xxi | |
Acknowledgments |
|
xxiii | |
Acronyms |
|
xxv | |
|
PART 1 FUTURE COMMUNICATION NETWORKS AND SYSTEMS |
|
|
|
Chapter 1 On the need of computing in future communication networks |
|
|
3 | (44) |
|
|
|
|
|
1.1 Evolution of communication networks |
|
|
3 | (7) |
|
1.1.1 The telephone networks: circuit-switched |
|
|
4 | (2) |
|
1.1.2 The Internet: packet-switched |
|
|
6 | (1) |
|
1.1.3 The cellular communication networks |
|
|
7 | (3) |
|
1.2 The 5G communication system |
|
|
10 | (34) |
|
1.2.1 The 5G Atom core: use cases |
|
|
11 | (9) |
|
1.2.2 First tier: the technical requirements |
|
|
20 | (11) |
|
1.2.3 Second tier: the concepts |
|
|
31 | (9) |
|
1.2.4 Third tier: the softwarization technologies |
|
|
40 | (2) |
|
1.2.5 Fourth tier: innovation and novelties |
|
|
42 | (2) |
|
1.3 Softwarization: the game changer for network operators |
|
|
44 | (3) |
|
Chapter 2 Standardization activities for future communication networks |
|
|
47 | (16) |
|
|
|
|
|
|
47 | (3) |
|
2.2 Standardization in telecommunications |
|
|
50 | (2) |
|
2.3 Standardization of future generation networks |
|
|
52 | (11) |
|
2.3.1 3GPP standardization |
|
|
53 | (3) |
|
2.3.2 ETSI standardization |
|
|
56 | (1) |
|
2.3.3 ITU-T standardization |
|
|
56 | (1) |
|
2.3.4 IETF/IRTF standardization |
|
|
57 | (6) |
|
|
|
Chapter 3 Network slicing |
|
|
63 | (14) |
|
|
|
63 | (2) |
|
3.2 Network slice: concept and life cycle |
|
|
65 | (2) |
|
3.3 Network slicing architectures |
|
|
67 | (5) |
|
3.3.1 Single owner, single controller |
|
|
69 | (1) |
|
3.3.2 Single owner, multiple tenants -- SDN proxy |
|
|
70 | (1) |
|
3.3.3 Multiple owners, tenants |
|
|
71 | (1) |
|
3.4 Network slicing examples |
|
|
72 | (5) |
|
Chapter 4 Mobile edge cloud |
|
|
77 | (16) |
|
|
|
|
|
77 | (1) |
|
|
78 | (3) |
|
|
78 | (1) |
|
|
79 | (1) |
|
|
80 | (1) |
|
4.2.4 General architecture |
|
|
80 | (1) |
|
|
81 | (5) |
|
4.4 MEC example implementations |
|
|
86 | (7) |
|
|
86 | (1) |
|
4.4.2 Ball sorting machine |
|
|
87 | (1) |
|
4.4.3 Ambulance demonstrator |
|
|
87 | (1) |
|
4.4.4 Seamless migration for autonomous cars |
|
|
88 | (5) |
|
Chapter 5 Content distribution |
|
|
93 | (14) |
|
|
|
|
|
93 | (2) |
|
5.2 Content delivery networks |
|
|
95 | (2) |
|
5.2.1 Content distribution |
|
|
96 | (1) |
|
|
97 | (1) |
|
5.3 Information-centric networking |
|
|
97 | (10) |
|
5.3.1 Operation primitives and packet types |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
100 | (1) |
|
5.3.4 Node architecture and packet handling |
|
|
100 | (3) |
|
5.3.5 Content-based security |
|
|
103 | (4) |
|
PART 3 ENABLING TECHNOLOGIES |
|
|
|
Chapter 6 Software-defined networks |
|
|
107 | (12) |
|
|
|
6.1 Networking in today's Internet |
|
|
107 | (2) |
|
|
109 | (3) |
|
6.2.1 What is software-defined networking? |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
111 | (1) |
|
6.3 Technologies and standards |
|
|
112 | (7) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (3) |
|
|
116 | (1) |
|
|
117 | (2) |
|
Chapter 7 Network function virilization |
|
|
119 | (16) |
|
|
|
119 | (2) |
|
7.2 Network function virtualization |
|
|
121 | (3) |
|
7.3 NFV-SDN architectures |
|
|
124 | (2) |
|
7.4 Programmable protocol stack |
|
|
126 | (4) |
|
7.5 Virtualization of RAN and BBU splitting |
|
|
130 | (5) |
|
|
|
Chapter 8 Machine learning |
|
|
135 | (34) |
|
|
|
|
135 | (1) |
|
|
136 | (26) |
|
8.2.1 Problem formulation |
|
|
136 | (1) |
|
8.2.2 Supervised learning workflow |
|
|
137 | (9) |
|
8.2.3 Linear and logistic regression |
|
|
146 | (3) |
|
8.2.4 Support vector machines |
|
|
149 | (2) |
|
|
151 | (4) |
|
8.2.6 Artificial neural networks |
|
|
155 | (4) |
|
8.2.7 Convolutional neural networks |
|
|
159 | (3) |
|
|
162 | (1) |
|
8.4 Reinforcement learning |
|
|
163 | (6) |
|
8.4.1 Finite Markov decision processes |
|
|
163 | (2) |
|
|
165 | (1) |
|
8.4.3 The exploration vs. exploitation dilemma |
|
|
165 | (1) |
|
|
166 | (3) |
|
|
169 | (28) |
|
|
|
|
9.1 Interflow network coding -- the basics |
|
|
169 | (6) |
|
9.1.1 The butterfly network |
|
|
170 | (3) |
|
9.1.2 Alice and Bob topology |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
174 | (1) |
|
9.2 Intraflow network coding -- now it gets interesting |
|
|
175 | (22) |
|
9.2.1 How to create coded packets |
|
|
180 | (5) |
|
9.2.2 RLNC and the butterfly |
|
|
185 | (1) |
|
9.2.3 Impact of the coding parameters |
|
|
186 | (5) |
|
9.2.4 The potential of recoding |
|
|
191 | (6) |
|
Chapter 10 Compressed sensing |
|
|
197 | (22) |
|
|
10.1 Compressed sensing theory |
|
|
197 | (6) |
|
10.1.1 Problem formulation |
|
|
197 | (2) |
|
10.1.2 Mathematical background |
|
|
199 | (2) |
|
10.1.3 Sparse and compressible signals |
|
|
201 | (1) |
|
10.1.4 Measurement matrix design |
|
|
201 | (2) |
|
10.2 Basic reconstruction algorithms |
|
|
203 | (4) |
|
|
204 | (1) |
|
|
205 | (1) |
|
|
206 | (1) |
|
10.2.4 Reconstruction strategies discussion |
|
|
206 | (1) |
|
10.3 Sparse representation |
|
|
207 | (2) |
|
10.3.1 Well-known transforms |
|
|
207 | (1) |
|
10.3.2 Sparsifying dictionary/dictionary learning |
|
|
208 | (1) |
|
10.4 Distributed compressed sensing |
|
|
209 | (4) |
|
10.4.1 Joint sparsity models |
|
|
211 | (2) |
|
10.4.2 DCS reconstruction algorithms |
|
|
213 | (1) |
|
10.5 Compressed sensing for communications |
|
|
213 | (6) |
|
10.5.1 Compressed sensing for WSN |
|
|
214 | (1) |
|
10.5.2 Kronecker compressed sensing |
|
|
214 | (5) |
|
PART 5 BUILDING THE TESTBED |
|
|
|
Chapter 11 Mininet: an instant virtual network on your computer |
|
|
219 | (12) |
|
|
|
|
219 | (2) |
|
|
221 | (3) |
|
11.2.1 Create a network topology |
|
|
221 | (2) |
|
11.2.2 Interact with a network |
|
|
223 | (1) |
|
11.2.3 Programmable network with SDN |
|
|
223 | (1) |
|
11.3 Demystifying Mininet |
|
|
224 | (5) |
|
11.3.1 Resource management and isolation |
|
|
224 | (2) |
|
11.3.2 Configurable data plane |
|
|
226 | (3) |
|
11.4 Create a tiny topology from scratch |
|
|
229 | (2) |
|
Chapter 12 Docker: containerize your application |
|
|
231 | (14) |
|
|
|
12.1 Introduction to Docker |
|
|
231 | (1) |
|
12.2 Containers vs virtual machines |
|
|
232 | (1) |
|
12.3 Management, orchestration and external tools |
|
|
233 | (3) |
|
|
234 | (2) |
|
|
236 | (1) |
|
12.4 Getting started with Docker |
|
|
236 | (9) |
|
|
236 | (4) |
|
12.4.2 Building an image -- Dockerfile |
|
|
240 | (1) |
|
12.4.3 Services and stacks |
|
|
241 | (2) |
|
|
243 | (2) |
|
Chapter 13 ComNetsEmu: a lightweight emulator |
|
|
245 | (14) |
|
|
|
|
|
|
|
245 | (4) |
|
13.2 ComNetsEmu in a nutshell |
|
|
249 | (3) |
|
13.2.1 Test environment management |
|
|
249 | (1) |
|
13.2.2 Application container management |
|
|
250 | (2) |
|
13.3 Examples for getting started |
|
|
252 | (7) |
|
|
253 | (2) |
|
13.3.2 Docker-in-Docker for resource limitation |
|
|
255 | (4) |
|
|
|
Chapter 14 Realizing network slicing |
|
|
259 | (18) |
|
|
|
|
14.1 Network slicing in Mininet |
|
|
259 | (4) |
|
|
259 | (1) |
|
14.1.2 Link capacity slicing |
|
|
260 | (3) |
|
14.2 Network slicing in ComNetsEmu |
|
|
263 | (14) |
|
14.2.1 Example 1: topology slicing |
|
|
265 | (3) |
|
14.2.2 Example 2: service slicing |
|
|
268 | (5) |
|
14.2.3 Example 3: SDN proxy-based slicing |
|
|
273 | (4) |
|
Chapter 15 Realizing mobile edge clouds |
|
|
277 | (12) |
|
|
|
|
|
277 | (3) |
|
15.2 Mechanisms and practical implementation |
|
|
280 | (3) |
|
15.2.1 Without SDN/NFV technologies |
|
|
280 | (1) |
|
15.2.2 With SDN/NFV technologies |
|
|
280 | (3) |
|
15.3 ComNetsEmu experimentation |
|
|
283 | (1) |
|
|
284 | (5) |
|
15.4.1 Latency measurement results on SDN controller |
|
|
284 | (2) |
|
15.4.2 Latency measurement at client side |
|
|
286 | (3) |
|
Chapter 16 Machine learning for routing |
|
|
289 | (8) |
|
|
|
|
289 | (1) |
|
16.2 Fitting reinforcement learning to routing |
|
|
289 | (4) |
|
16.2.1 Designing state and action space |
|
|
290 | (1) |
|
|
291 | (1) |
|
|
292 | (1) |
|
|
293 | (4) |
|
|
293 | (1) |
|
16.3.2 Running the example |
|
|
294 | (1) |
|
|
295 | (1) |
|
16.3.4 Changing parameters |
|
|
296 | (1) |
|
Chapter 17 Machine learning for flow compression |
|
|
297 | (16) |
|
|
|
297 | (3) |
|
17.2 The compression oracle |
|
|
300 | (1) |
|
|
301 | (5) |
|
17.3.1 Examples of predefined oracles |
|
|
303 | (1) |
|
17.3.2 Defining oracles using machine learning |
|
|
304 | (2) |
|
|
306 | (3) |
|
17.5 The interactive environment |
|
|
309 | (4) |
|
Chapter 18 Machine learning for congestion control |
|
|
313 | (12) |
|
Christian Leonard Vielhaus |
|
|
|
313 | (1) |
|
18.2 Characterizing congestion |
|
|
313 | (2) |
|
|
315 | (2) |
|
|
317 | (2) |
|
18.5 Example with ComNetsEmu |
|
|
319 | (3) |
|
|
322 | (3) |
|
|
322 | (1) |
|
|
322 | (1) |
|
|
323 | (2) |
|
Chapter 19 Machine learning for object detection |
|
|
325 | (14) |
|
|
|
|
|
325 | (5) |
|
19.2 Distributed YOLO with compression |
|
|
330 | (5) |
|
19.2.1 Distributed YOLO: VNF and server |
|
|
330 | (1) |
|
|
331 | (1) |
|
|
332 | (1) |
|
19.2.4 Feature map compression |
|
|
333 | (2) |
|
|
335 | (4) |
|
19.3.1 Infinite forwarding VNF |
|
|
336 | (1) |
|
19.3.2 Limited forwarding VNF |
|
|
337 | (2) |
|
Chapter 20 Network coding for transport |
|
|
339 | (12) |
|
|
|
|
339 | (2) |
|
20.2 Network coding as virtualized network function |
|
|
341 | (1) |
|
20.2.1 Virtualization approaches |
|
|
341 | (1) |
|
20.2.2 Coding the traffic |
|
|
342 | (1) |
|
20.3 Multihop recoding example |
|
|
342 | (2) |
|
20.4 Adaptive redundancy example |
|
|
344 | (7) |
|
20.4.1 Delivery probability of packets |
|
|
344 | (2) |
|
20.4.2 Running the example |
|
|
346 | (2) |
|
|
348 | (3) |
|
Chapter 21 Network coding for storage |
|
|
351 | (10) |
|
|
|
351 | (1) |
|
|
351 | (2) |
|
21.3 Network coding in distributed storage |
|
|
353 | (1) |
|
|
354 | (7) |
|
|
355 | (2) |
|
21.4.2 Simple network code with replication |
|
|
357 | (1) |
|
21.4.3 Network coding with recoding |
|
|
358 | (3) |
|
Chapter 22 In-network compressed sensing |
|
|
361 | (10) |
|
|
|
|
361 | (1) |
|
22.2 Point-to-point scenario |
|
|
362 | (3) |
|
22.2.1 Using DCT for data sparsification |
|
|
363 | (1) |
|
22.2.2 Using a trained dictionary for data sparsification |
|
|
364 | (1) |
|
22.3 Single-cluster scenario |
|
|
365 | (5) |
|
22.3.1 Using DCT for data sparsification |
|
|
365 | (2) |
|
22.3.2 Using a trained dictionary for data sparsification |
|
|
367 | (3) |
|
|
370 | (1) |
|
Chapter 23 Security for mobile edge cloud |
|
|
371 | (18) |
|
|
|
|
|
|
371 | (1) |
|
23.2 Network segmentation |
|
|
372 | (3) |
|
|
372 | (2) |
|
|
374 | (1) |
|
|
374 | (1) |
|
23.3 Network isolation exercise |
|
|
375 | (5) |
|
23.3.1 Blacklisting and whitelisting |
|
|
376 | (1) |
|
23.3.2 Stateful filtering |
|
|
377 | (1) |
|
|
378 | (2) |
|
23.4 Secure network tunnels |
|
|
380 | (2) |
|
|
380 | (2) |
|
|
382 | (1) |
|
|
382 | (1) |
|
23.5 Secure network tunnel exercise |
|
|
382 | (7) |
|
|
383 | (1) |
|
|
384 | (5) |
|
|
|
Chapter 24 Connecting to the outer world |
|
|
389 | (12) |
|
|
|
389 | (1) |
|
24.2 Connecting ComNetsEmu to the Internet |
|
|
389 | (5) |
|
24.2.1 Manual host configuration |
|
|
390 | (3) |
|
|
393 | (1) |
|
24.2.3 Using DNS resolution |
|
|
393 | (1) |
|
24.3 Connecting different test bed VMs |
|
|
394 | (5) |
|
|
399 | (2) |
|
|
399 | (1) |
|
|
399 | (2) |
|
Chapter 25 Integrating time-sensitive networking |
|
|
401 | (12) |
|
|
|
|
401 | (1) |
|
25.2 IEEE802.1AS -- if timing matters |
|
|
402 | (2) |
|
25.3 Different shapes of packets -- IEEE802.1 Qav and IEEE802.1Qbv |
|
|
404 | (3) |
|
25.3.1 Credit-based shaper |
|
|
404 | (3) |
|
|
407 | (1) |
|
25.4 IEEE802.1Qci -- you shall not pass! |
|
|
407 | (2) |
|
25.5 IEEE802.1Qbu, IEEE802.3br -- filling the gaps |
|
|
409 | (1) |
|
25.6 Hands-on: time-sensitive queueing in the new Linux kernel 5.2 |
|
|
410 | (3) |
|
|
410 | (1) |
|
25.6.2 Using the TAS simulator |
|
|
410 | (1) |
|
|
411 | (1) |
|
25.6.4 Measurement and results |
|
|
411 | (2) |
|
Chapter 26 Integrating software-defined radios |
|
|
413 | (18) |
|
|
|
|
|
413 | (2) |
|
|
415 | (3) |
|
26.2.1 What is programmable in SDR? |
|
|
415 | (1) |
|
26.2.2 Design considerations |
|
|
416 | (1) |
|
26.2.3 Design constraints |
|
|
417 | (1) |
|
|
418 | (1) |
|
26.3.1 Universal Software Radio Peripheral (USRP) |
|
|
418 | (1) |
|
|
418 | (1) |
|
|
419 | (12) |
|
|
420 | (1) |
|
26.4.2 OFDM transceiver exercise |
|
|
420 | (3) |
|
26.4.3 Latency measurement exercise |
|
|
423 | (8) |
|
|
|
Chapter 27 Networking tools |
|
|
431 | (26) |
|
|
|
|
|
27.1 Connectivity testing -- ping |
|
|
432 | (1) |
|
27.2 Basic network administration -- iproute2 |
|
|
433 | (3) |
|
|
433 | (1) |
|
|
434 | (1) |
|
|
435 | (1) |
|
27.3 Traffic generation -- iPerf |
|
|
436 | (2) |
|
27.4 Process monitoring -- htop |
|
|
438 | (1) |
|
27.5 Network traffic manipulation -- TC |
|
|
439 | (5) |
|
27.6 Traffic monitoring -- tcpdump/Wireshark |
|
|
444 | (4) |
|
|
445 | (1) |
|
|
446 | (2) |
|
27.7 Rapid Python prototyping -- Jupyter |
|
|
448 | (3) |
|
27.8 Hands-on example to tie all tools together |
|
|
451 | (6) |
Bibliography |
|
457 | (16) |
Index |
|
473 | |