Welcome to Computer Networking

Key Ideas for Today

  • Throughput (Bandwidth)
  • Latency (Delay)
  • Bits and Bytes

If you don't work hard to really really get these then lots of things later will not make sense!

How much bandwidth does Netflix use each night at Luther?

What is Bandwidth

Comes from the analog electronics era.

In the Digital era, it is a measure of throughput. That is how many bits per second we are pushing through the pipe.

If you download 1 million bits in 5 seconds what is your bandwidth?

BW = bits/time

Depends on what quality you want:

  • Good 0.3 GB per hour
  • Better 0.7 GB per hour
  • Best 1 GB per hour
  • Best HD 2.3 GB per hour

Lets look at the low end case and the high end case. Low first. How do we convert these numbers into bandwidth?
How do we usually measure bandwidth?

Lets convert GigaBytes (GB) per hour into Megabits (Mb) per second (Mbps)

  • kilo -- $10^3$
  • Mega -- $10^6$
  • Giga -- $10^9$
  • Tera -- $10^{12}$
  • Peta -- $10^{15}$

Please just use these orders of magnitude. Some people get all out of whack over whether a kilobyte is 1000 bytes or 1024 bytes. In this book, and in this class a kilobyte is 1000 bytes. If this upsets you, get over it now. If you do homework and use 1024 your answers will be different than mine and the answer key I got from the authors. This will make all of your calculations more difficult. According to Wikipedia and other authorities 1024 bytes or $2^{10}$ bytes is really a kibibyte http://en.wikipedia.org/wiki/Kibibyte


In [2]:
bytesPerSecond = 2.3e9 / 60 / 60
print(bytesPerSecond)


638888.8888888889

Gives us a result of how many bytes per second. Remember that there are 8 bits in every byte.


In [3]:
bitsPerSecond = bytesPerSecond * 8
print(bitsPerSecond)


Out[3]:
5111111.111111111

gives us the number of bits per second


Now do the math for High Def.

What is Luther's total bandwidth??

How many students does it take watching netflix at Good, and Best HD to use it all up??


In [4]:
lutherbw = 2.0e9
lutherbw / bitsPerSecond


Out[4]:
391.30434782608694

In [9]:
%pylab inline
rates = [0.3e9, 0.7e9, 1.0e9, 2.3e9]
numStudents = [lutherbw / (8*x/60/60) for x in rates]
plot(rates,numStudents)


Populating the interactive namespace from numpy and matplotlib

The World Cup 2014

According to FIFA: "The 2014 FIFA World Cup™ has set new records for streaming data traffic around the world, as football fans watch matches online in greater numbers than ever before."

Lets look at the bandwidth used for the U.S. going to one particular game, the round of 16 match between the U.S. and Belgium where 5.3 million people streamed! the game online.

How much bandwidth did FIFA/ESPN use during the World Cup?

Make some reasonable assumptions, do some googling, and figure out how much bandwidth the World Cup consumed in video streaming?

Bandwidth Used:


How much bandwidth do you think there is going across the atlantic?

cable map


In [0]:

Delay and Loss

In addition to bandwidth what are the other factors that may effect the time it takes to transmit information over the internet?

Sources of delay

  • Processing -- How long does it take the router to route?
  • Queueing -- A busy router might have lots of frames backed up to process; how long does a frame have to wait?
  • Transmission -- See bandwidth -- how long does it take to send this frame?
  • propagation -- How long does it take for the electrons to get from point A to B?

total delay = $d_{proc} + d_{queue} + d_{trans} + d_{prop}$


In [ ]:
decorahToLondon_meters = 6503e3
earthToSatellite_meters = 35786e3

delay = distance / speed


In [ ]:
satDelay = 2 * earthToSatellite_meters / 3.0e8
print(satDelay)
fiberDelay = decorahToLondon_meters / 2.5e8
print(fiberDelay)

Lets suppose that the fiber optic link is OC-48 which means it has a throughput of $48 \cdot 51.8$Mbps or 2.448Gbps. From now on we'll refer to throughput as R. The bandwidth delay product is defined as $R \cdot d_{prop}$ Lets calculate the bandwidth delay product for the fiber link:


In [ ]:
Rfiber = 2.448e9
print(Rfiber * fiberDelay)
  • What are the units of the bandwidth product?
  • What does it mean?

In [ ]:
decorahToLondon_meters / (Rfiber * fiberDelay)

In [ ]:
Rsat = 1e9
earthToSatellite_meters / (Rsat * satDelay)

In [ ]: