layout: true background-image: url(SlideTemplate/img/Background.png) --- class: center, middle ### A Brief (Hi)Story of Networks and # Communications:
From Fire Signals to NetFlix ### Forschungstage Informatik - 2019 ##### *.hon-speaker[Marlene Böhmer]
Content by: Prof. Dr.-Ing. Thorsten Herfet, Andreas Schmidt, Pablo Gil Pereira, Kelvin Chelli* ##### Telecommunications Lab, Saarland Informatics Campus, 27th and 28th June 2019 --- .speaker[  ] # Who am I? -- Marlene Böhmer is ... ... a **master student** of computer science. ... a **student assistant** at the Telecommunications Lab of **Prof. Thorsten Herfet**. ... working on **Wifi control** of a **drone**. .center.drone[  ] --- class: center, middle # Introduction ??? * The first question we have to ask ourselfes: What is telecommunications? --- # Telecommunications **Definition ([Wikipedia](https://en.wikipedia.org/wiki/Telecommunication))**: *Telecommunication is the **transmission of** signs, signals, writings, images and sounds or **intelligence of any nature** by wire, radio, optical or other electromagnetic systems, as defined by the International Telecommunication Union (ITU).*
**Telecommunication** occurs when the exchange of information between communication participants **includes the use of technology**. It is transmitted either electrically over physical media, such as cables, or via electromagnetic radiation. Such transmission paths are often divided into **communication channels** which afford the advantages of **multiplexing**.
.pull-left[  .small[Source: Frederic Remington] ] .pull-right[  ] ??? * We will deal with: * Mechanisms to encode intelligence. * Technologies for communication. * Communication channels. * Multiplexing. --- # Telecommunication Networks **Definition ([Wikipedia](https://en.wikipedia.org/wiki/Telecommunications_network))**: *A telecommunications network is a collection of **terminal nodes**. **Links are** connected so as to enable telecommunication **between the terminals**.* *The transmission links connect the nodes together. The nodes use **circuit switching**, **message switching** or **packet switching** to pass the signal through the correct links and nodes to reach the correct destination terminal.* *Each terminal in the network usually has a **unique address** so messages or connections can be routed to the correct recipients. The collection of addresses in the network is called the **address space**.* .pull-left[  .small[[Source](https://telovations.files.wordpress.com/2012/09/telephonepoles.jpg)] ] .pull-right[  .small[[Source](http://computernetworkusa.com/wp-content/uploads/2013/02/header2.jpg)] ] ??? You will learn about: * Node types. * Link types. * Switching mechanisms. * Addressing. --- # 21st Century Computer Networking .pull-left[  .right.small[[Source](https://chooseyoursmartphone.files.wordpress.com/2015/07/1.jpg)]  .right.small[[Source](http://img.gawkerassets.com/post/4/2013/02/appsdropbox.jpg)] ] .pull-right[  .right.small[[Source](http://www.ecdl.org/media/shutterstock_1139108621.jpg)]  .right.small[[Source](http://cdn.ttgtmedia.com/visuals/German/article/internet-of-things-1-fotolia.jpg)] ] ??? * Telecommunications is omnipresent today * Mobile computing changed the game. * Significantly increased the usage of Internet-based systems. * Mobile web, and mobile video streaming. * Internet everywhere, services galore. * Mail, Notes, Social Media, News, Photo-Sharing, Telephony, ... * Internet of things connecting everything. * Sensors: Temperature, Humidity, Light, * Locations: Home, Production Environments, Your Body, ... * ... and the kitchen sink. * Highlight different aspects: * Services * Quality of Service * Performance * Security ! How does TC in general work? Let's go back to the past and see. --- # The Internet * Invented as a network to connect: * .fa.fa-fw.fa-graduation-cap[] Academia (exchange research results, etc.) * .fa.fa-fw.fa-shield-alt[] Military (exchange intelligence, reliable communication infrastructure, ...) * Evolved into the ... * largest (51% of the world's population could access it in June 2017), * most ubiquitous, * most versatile (services from Facebook to remote maintenance) and * cheapest to access (no extra fee for international connections, ...) * ... network of mankind. ??? * 1969: Arpanet - connect Universities * 1983: TCP/IP, DNS Introduction * 1993: first Webbrowser with images * Academia: Exchange research results. * Military: Provide a resilient, decentralized communcation system (withstand atomic crisis in cold war) * largest: * first network covering the globe * allowing even small objects to participate * versatile: never ever has the same technology been used to buy groceries and watch videos of cats at the same time. * cheapest to use * clearly not to operate * broadband flat rates made communication nearly free of charge --- class: center, middle # Communication Concepts --- # At the Train Station .pull-left[  ] .pull-right[ Through computer scientist's glasses... * *Party A* communicates * with *Party B* * with *Purpose P* * in *Environment E* * and under *Requirements R* ] .clear[] .alert.alert-info[ **Example**: Alice (*A*) asks Bob (*B*) for the time (*P*) at the train station (*E*). ] -- **.fa.fa-fw.fa-question-circle[] What are the Requirements (*R*)?** ??? Alice is at the train station. Wants to ask Bob for the time. Trains approach all the time. It is noisy. -- * *B*'s answer should be valid (R1). * *E* should not be too noisy (R2). * *A* and *B* should talk same language (R3). * *A* has to say "Good day, may I ask you a question" first (R4).
.light[Because otherwise *B* will think he is impolite and refrain from answering.] --- # Communicate .alert.alert-info.center[ **Meaning (information)** is conveyed via **gestures/speech/... (symbols)**, which stem from an set of **hand positions/words in a language/... (alphabet)**. ] ??? Code information using symbols of an alphabet to build words of a language. -- **Examples** * Information.
.light[Time of day. Sensor readings. Thought: "This is interesting."] * Symbols.
.light[11 o'clock. Tomorrow. In general: Sentences from a language.] * Alphabet.
.light[All words/numbers used to describe time information. In general: Language XYZ.] --- # Time flies by... ??? Question: Where is time passing in our scenario? -> collect at board Go trough points. Calculation: * Processing Delay: 2s (per side) * Transmission Delay: 2s (per side) * Propagation Delay: 5ms (340m/s (Speed of Sound), 2m Distance) * RTT: 2 \* 2s + 2 \* 5ms + 2s = 6,01s -- **Processing Delay ($D_{s}$)**
.light[ * Enquirer: Phrase the question. * Responder: Understand question. Look at the watch. Phrase answer. ] -- **Transmission Delay ($D_{t} = \frac{\text{Data Length}}{\text{Data Rate}} = \frac{L}{R} $)**
.light[ * Enquirer: What time is it? * Responder: Eleven o'clock. ] -- **Propagation Delay ($D_{p} = \frac{\text{Distance}}{\text{Speed of Propagation}} = \frac{d}{c}$)**
.light[ * Natural bound: Speed of sound / light etc. * Distance between mouths and ears. ] -- **Round-Trip Time ($RTT$)**
.light[ * Time between asking the question and receiving the answer. * $RTT = 2 \cdot D_p + 2 \cdot D_t + D_s$ ] --- # Loss **.fa.fa-fw.fa-question-circle[] What can cause misunderstandings?** ??? Where do losses appear? How much data is transmitted? (TrainStation) * Tell another time (retransmit, ARQ). * Tell more than needed (FEC). -- * A cannot understand B because a train is approaching. * B has a horrible accent. **.fa.fa-fw.fa-question-circle[] How can this be solved?** -- * B repeats what he said before.
.light[Later: *Automated Repeat reQuest (ARQ)*.] * B says something like "it's midday, twelve o'clock on the minute".
.light[Later: *Forwarding Error Coding (FEC)*.] -- ** .fa.fa-fw.fa-cube[] Formal Sizes:** * Packet Loss Rate * Bit Error Rate --- # Links .alert.alert-info[ **.fa.fa-fw.fa-lightbulb[] Analogy:** Packet Conveyor Belt. ] .center[  ] -- **.fa.fa-fw.fa-question-circle[] Questions:** * How long does it take for a packet to traverse the belt? ??? * 5sec -- * How large is the throughput (packets per second) if we send a single packet? ??? * 0.2 packets per second -- * How many packets can fit the belt / can be sent back to back? ??? * 5m fit 10 packets a 0.5m -- * What happens if we send more? ??? * We need to buffer or drop! --- # Wired (Conveyor Belt)  --- # Wireless (Conveyor Belt) .center.base-station[ .right.small[[Source](http://www.nowebagency.com/mwc16-nokia-shows-lte-advanced-pro-with-3d-beamforming-to-triple-site-capacity/)] ] --- # Mobile (Conveyor Belt) .small[... and obviously wireless] .center.wireless-car[  ] .small[[Source](https://commons.wikimedia.org/wiki/File:Caddy_and_Antenna.jpg)] --- # One Effect of Mobility .pull-left[ **.fa.fa-fw.fa-question-circle[] How does the sound change, when an ambulance car moves by?** .center[  .small[[Source](https://www.flickr.com/photos/jamin2/3555151084)] ] ] -- .pull-right[ **Doppler Effect**: Relative motion causes frequency-dependent frequency shift. .center[ $\Delta f = \frac{\Delta v}{c} f_0$  ] ] --- # Doppler Compensation in Practice .pull-left[ **.fa.fa-fw.fa-camera-retro[] Original** .center.mobility[  ]
] .pull-right[ **.fa.fa-fw.fa-rss[] Sender** .center.mobility[  ] ] -- .pull-left[ **.fa.fa-fw.fa-sign-in[] Received** .center.mobility[  ] ] -- .pull-right[ **.fa.fa-fw.fa-check-square[] Corrected** .center.mobility[  ] ] --- # Data Network Links **Base Sizes:** * Length $\equiv$ **delay $D, [D]=sec$**. * Speed $\equiv$ **throughput $B, [B]=bps$**.
.light[Also called bandwidth or data rate.
**Careful:** Bandwidth is most of the times given in Hertz and a frequency size.] * Packet size $\equiv$ **packet length $L, [L]=byte$**.
.light[Largest possible packet size: **Maximum Segment Size** ($MSS, [MSS]=byte$).] -- **Composed Sizes:** * Number of *bytes* a link can contain at any time:
*Bandwidth-Delay Product* ($BDP = B \cdot D, [BDP] = byte$). * Number of *packets* a link can contain at any time:
*Window* ($N=\frac{BDP}{MSS}, [N]=1$) --- # Data Network Link - By Example .fa.fa-fw.fa-info-circle[] Given: $MSS = 1280 byte$, $D = 200ms$, $B = 50Mbps$. .fa.fa-fw.fa-question-circle[] How big is the BDP? How many packets can be sent? --
.center[ $BDP = B \cdot D$ ] -- .center[ $= 50Mbps \cdot 200ms = 10Mbit$ ] -- .center[ $= \frac{10 \cdot 1024}{8} kByte = 1280kByte$ ] --
.center[ $N = \frac{BDP}{MSS}$ ] -- .center[ $\frac{1280kByte}{1280Byte} = 1024$ ] --- # Size(s) matter... .small[even for computer scientists] .pull-left[ **.fa.fa-fw.fa-stopwatch[] Time** .smaller[ * **Latency / Delay**
.light[How long something takes in seconds.] * **Forward-Trip Time (FTT)**
.light[How long from source to sink?] * **Round-Trip Time (RTT)**
.light[FTT + way back. Sometimes 2*FTT.] * **Jitter**
.light[Variance of delay.] ] ] -- .pull-right[ **.far.fa-fw.fa-tachometer[] Data Rate** .smaller[ * $R = \frac{Transmitted Data}{Time} \rightarrow [R]=bits/s$ * **Throughput**
.light[Overall data rate.] * **Goodput**
.light[Useful data rate (app data per time).] * **Maximum Bandwidth**
.light[Maximally achievable data rate of a channel. Careful: Not Hertz!] ] ] .clear[] -- .pull-left[ **.fa.fa-fw.fa-trash[] Loss** .small[(Rate usually given in %)] .smaller[ * **Packet Loss Rate**
$plr = \frac{Lost Packets}{Transmitted Packets}, [plr]=1$ ] ] .pull-right[ ** ** .smaller[ * **Bit Error Rate**
$ber = \frac{Wrong Bits}{Total Bits} \rightarrow [ber]=1$ ] ] --- # Networks vs. Services .pull-left[ **.fal.fa-fw.fa-share-alt[] Networks** * Communication systems ... * are itself useful for transmitting. * require an established **network** for access and connectivity. * Examples: * Fire Signal Network * PSTN (Telephone Network) * Internet ] -- .pull-right[ **.fab.fa-fw.fa-youtube[] Services** * Users want something to be done.
.light[e.g. telling someone something] * Doing something is implemented by one or multiple cooperating **services**. * Examples: * Configure my router. * Book a hotel. * Check the weather. * Watch a video. ] --- class: center, middle # Video Streaming on the Internet --- # Video Streaming Services .pull-left[ .center.video-streaming[ .right.small[[Source](https://de.wikipedia.org/wiki/YouTube)] ]
.center.video-streaming[ .right.small[[Source](https://dotesports.com/general/news/how-to-stream-twitch-console-20556)] ] ] .pull-right[ .center.video-streaming[ .right.small[[Source](https://assets.cdn.moviepilot.de/files/9352e1e87338a18da68bbe6c4c574585006854bb06566ae79405314455e8/fill/1080/521/netflix.jpg)] ]
.center.video-streaming[ .right.small[[Source](https://img.ardmediathek.de/standard/00/21/52/09/32/-2062574680/1x1/1280?mandant=ard)] ] ] --- # Streaming vs. Broadcast **.fa.fa-fw.fa-question-circle[] How is video streaming different from traditional TV broadcast?** --
Video Streaming
(Digital) TV Broadcast
Consumption
Individual
Collective
Distribution
Unicast (1:1)
Broadcast (1:N)
Video Start
On Demand
On Time (e.g. 20:15)
Quality
Variable / Adaptive
Binary (Maximum quality or black screen.)
Network
Internet
TV Network (Cable, Satellite, Terrestrial)
Data "Forms"
Video Chunks in Packets
Video Signal over Media
Playback
Controllable
Continuous
-- .alert.alert-danger[ **.fa.fa-fw.fa-exclamation-triangle[] Bottomline:** Multimedia distribution is facing disruptive shifts in paradigms and technologies! .light[Which comes with tremendous need for research and development.] ] --- # Video Coding **.fa.fa-fw.fa-film[] Frame rate ([Wikipedia](https://en.wikipedia.org/wiki/Frame_rate))**: *The frequency at which consecutive images called frames appear on a display*. With 24 frames per second, usually no visible image switching for humans. **.fa.fa-fw.fa-th[] Pixel ([Wikipedia](https://en.wikipedia.org/wiki/Pixel))**: *The smallest controllable element of a picture represented on a screen*. The bits per pixel is the color depth or the number of possible colors. .pull-left[ **.far.fa-fw.fa-tachometer[] Data Rates (uncompressed)** * **HDTV (10-bit, 1080p, 24fps)** $10bit \cdot 1920 \cdot 1080 \cdot 24 fps =$
$62208000 Bps = 59.326 MBps$ * **4K (30-bit, 2160p, 60fps)** $30bit \cdot 4096 \cdot 2160 \cdot 60 fps =$
$1990656000 Bps = 1898.4375 MBps$ ] .pull-right[ **.fa.fa-fw.fa-compress[] Video Compression**: Reduce data rate by removing spatial and temporal redundancy. .center.compression[  ] .center.compression[  ] ] --- # Variable Link Conditions .pull-left[ On the Internet, available resources are not guaranteed to the client and they might change due to... **.fa.fa-fw.fa-wifi[] Wireless Communication**
.light[Fluctuations in link characteristics (e.g. due to interference, shadowing, mobility).] **.fa.fw-fa.fa-truck[] Congestion**
.light[Sending more than a link can handle results in slow download or even losses.] **.fa.fa-fw.fa-chart-pie[] Resource Sharing**
.light[Applications should be fair to others and reduce their throughput on a shared link.] ] .pull-right[ .center.fair-sharing[ .small[[Source](https://biblio.ugent.be/publication/8552455/file/8552457.pdf)] ] .center.fair-sharing[ .small[[Source](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.153.3152&rep=rep1&type=pdf)] ] ] --- # DASH .pull-left[ * Dynamic Adaptive Streaming over HTTP (**DASH**). * HTTP protocol is used to request the video segments. * **Objective**: Best possible quality for available resources. * Compression at different bit rates to overcome throughput fluctuations. * Segmentation to switch across different bit rates. * Video buffer to avoid stopping the playback if slow download. ] -- .pull-right[ * Users complain about... * long time to load the video. * video suddenly stoping. * low video quality. * many quality changes. .center[  .small[[Source](https://www.researchgate.net/profile/Tobias_Hossfeld/publication/271524253_A_Survey_on_Quality_of_Experience_of_HTTP_Adaptive_Streaming/links/55f4224e08ae63926cf2688f/A-Survey-on-Quality-of-Experience-of-HTTP-Adaptive-Streaming.pdf)] ] ] --- class: center, middle # Video Streaming on the Internet ### Data Transport --- # Data Transport * Process-to-process data transport. * **Ports** identify the process the data should be givent to, among all the processes running on a machine. * **TCP** protocol used by DASH (and most Internet applications). * TCP provides reliable transport on the Internet. To do so it implements... * **Congestion control**. Avoid sending more data that the link can transmit and share links in a fair manner. * **Flow control**. Do not send more data than the receiver can process. * **Error control**. Detect and correct the errors introduced by the channel. --- # Congestion Control .pull-left[ .center.congestion[ ].small[Modified Diagram ([Original Source](https://www.gizmodo.com.au/2017/04/nbn-congestion-is-forcing-isps-to-build-their-own-private-networks/))] ] .pull-right.negative-vspace[  ] -- .pull-right[ **.fa.fa-fw.fa-cogs[] Solution** Transport layer can implement congestion control to... * ... avoid lost packets due to buffer overflows. * ... avoid slow downs by not exhausting maximum data rate. * ... ensure fair share of data rate. ] ??? Time: 5m As traffic jams slow down traffic, this also happens on the Internet to packets. --- # Flow Control .pull-left[ **.fa.fa-fw.fa-lightbulb[] Motivation** * End-point resources are limited (receive / send buffers). * Applications consume transport layer buffer, but on demand and not guaranteed. * Transport layer cannot handle more packets than fit in the buffers, hence: * Sending more packets is wasted effort as receiver will discard. * Accepting more packets from application layer is impossible. ] .pull-right.negative-vspace[ ] -- .pull-right[ **.fa.fa-fw.fa-cogs[] Solution** * Peers communicate their buffer sizes and fill levels via feedback. * Rate control algorithms slow down or stop sending of packets when buffers are filled. * Upon exhaustion of sending sides buffer, the application is informed and has to deal with it. ] ??? Time: 4m Draw on board. --- # Error Control .pull-left[ * **Automatic Repeat reQuest (ARQ)**: Send data again if losses are detected. * ACK message to acknowledge data arrived. * Timeout to detect data was lost. * **Forward Error Correction (FEC)**: Add extra data that helps reconstruct the original message if errors appear. ] .pull-right[  ] --- # Wrap-Up #### .fa.fa-fw.fa-home[] Take-Home Messages * **Communication** is about exchange of **information**. * **Networks** are used to provide **services** that follow **protocols**. * We learned about many layers of the ISO/OSI model: * .fa.fa-fw.fa-bolt[] **1 - Physical**: Wires, wireless, mobility. * .fa.fa-fw.fa-link[] **2 - Link**: Conveyor belt and resource sharing.
.fa.fa-fw.fa-share-alt[]
3 - Network
: Addressing.
.fa.fa-fw.fa-truck[]
4 - Transport
: Process-to-Process data transfer, TCP.
...
.fa.fa-fw.fa-shopping-cart[]
7 - Application
: DASH, NetFlix.
.fa.fa-fw.fa-blind[]
8 - User
(sometimes refered to when talking about human errors)
-- **.fa.fa-fw.fa-exclamation-triangle[] Action Points** * Download the task material and this deck at https://bit.ly/2xRzZwU * Boot your PC, Jupyter and start hacking. -- .questions[ Questions? ]