Title: Class 13: The Internet
Date: 2014-03-06
Category: Classes
Tags: operating systems, scheduling, mutual exclusion
Author: David Evans

   <div class="todo">
<b>Enjoy your break!</b>
</div>

<center>
<iframe src="http://www.slideshare.net/slideshow/embed_code/32006892" width="476" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br>
[Videos](http://www.youtube.com/playlist?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09)
</center>

## Projects

<center>
<iframe width="640" height="360" src="//www.youtube-nocookie.com/embed/hELYWgAsYH0?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09" frameborder="2" allowfullscreen></iframe>
</center>

Start thinking about what you want to do for your final project.  The
only requirement is that your project be _fun_, _relevant_, _technically
interesting_, and _useful_ (or at least very strong on two of these).
You can work with any size team you want.  If you have a good idea for a
project and prefer to work on it instead of PS4, you can arrange to do
this by convincing me your project is worthwhile by 19 March.

For inspiration, see [Last Semester's cs4414 Projects](http://rust-class.org/0/pages/final-projects.html).

# Some Spring Break Reading

Here are some (optional but highly recommended!) readings to get you in the mood for post-Spring Break kernel hacking:

- [Gary Kildall and the 40th Anniversary of the Birth of the PC Operating System](http://www.computerhistory.org/atchm/gary-kildall-40th-anniversary-of-the-birth-of-the-pc-operating-system/) (David Laws, Computer History Museum)

- [Servo: Inside Mozilla's mission to reinvent the web browser for the
  multi-core
  age](http://www.zdnet.com/servo-inside-mozillas-mission-to-reinvent-the-web-browser-for-the-multi-core-age-7000026606/)
  (ZDNet, 24 February 2014)

- Sandvine's [Global Internet Phenomena Report](https://www.sandvine.com/downloads/general/global-internet-phenomena/2013/2h-2013-global-internet-phenomena-report.pdf)

# Benchmarking for Customers

<center>
<iframe width="640" height="360" src="//www.youtube-nocookie.com/embed/SvWwozIOMbI?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09" frameborder="0" allowfullscreen></iframe>
</center>

What does it mean to _cheat_ on a benchmark?
<div class="gap">
</div>

How should competitive benchmarks be designed to prevent cheating?
<div class="gap">

</div>

# Networks

<center>
<iframe width="640" height="360" src="//www.youtube-nocookie.com/embed/Qw0ZNFMYfvs?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09" frameborder="0" allowfullscreen></iframe>
</center>


What should you do if you want to reduce the _latency_ of your web
server for important clients in Charlottesville?

<div class="gap">

</div>


What should you do if you want to increase the _bandwidth_ of your web
server for important clients in Charlottesville?
<div class="gap">

</div>

Why is it useful to have different protocol layers in a network?

<div class="gap">

</div>

What are the drawbacks of having different protocol layers?
<div class="gap">

</div>

<center>
<iframe width="640" height="360" src="//www.youtube-nocookie.com/embed/fc8Zt_rHnAA?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09" frameborder="0" allowfullscreen></iframe>
</center>

How does the Internet prevent _zombie packets_?

<div class="gap">

</div>

For your zhtta server, which protocol layer is most inefficient?

<div class="gap">

</div>

**Challenge.** Find a host on the Internet whose latency from
  Charlottesville is higher than the latency to reach Bussleton,
  Australia.  (Post in comments below.)

# Bandwidth

<center>
<iframe width="640" height="360" src="//www.youtube-nocookie.com/embed/j5SYaURMhHI?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09" frameborder="0" allowfullscreen></iframe>
</center>

What has higher bandwidth, a fiber-optic cable or an ocean liner?
<div class="gap">

</div>

What can you do to improve bandwidth?
<div class="gap">
</div>

# Switching

<center>
<iframe width="640" height="360" src="//www.youtube-nocookie.com/embed/rFEszV6Uw94?list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09" frameborder="0" allowfullscreen></iframe>
</center>

What are the advantages and disadvantages of packet switching compared to circuit switching?
<div class="gap">
</div>

What is an internetwork?
<div class="gap">
</div>

Who "invented" the "Internet"?
<div class="gap">
</div>

# Links

[History of Packets](http://packets.robbiehott.com) by Robbie Hott

Tim Berners-Lee's [_Answers for Young
People_](http://www.w3.org/People/Berners-Lee/Kids.html):

> **So do you think the Web is basically been a good idea or a bad one?**

_Some people point out that the Web can be used for all the wrong
things. For downloading pictures of horrible, gruesome, violent or
obscene things, or ways of making bombs which terrorists could use._

_Other people say how their lives have been saved because they found out
about the disease they had on the Web, and figured out how to cure it._

_I think the main thing to remember is that any really powerful thing can
be used for good or evil. Dynamite can be used to build tunnels or to
make missiles. Engines can be put in ambulances or tanks. Nuclear power
can be used for bombs or for electrical power._

_So what is made of the Web is up to us. You, me, and everyone else._

_Here is my hope._

_The Web is a tool for communicating._

_With the Web, you can find out what other people mean. You can find out
where they are coming from._

_The Web can help people understand each other._

_Think about most of the bad things that have happened between people in
your life. Maybe most of them come down to one person not understanding
another. Even wars._

_Let's use the web to create neat new exciting things._

_Let's use the Web to help people understand each other._


<div id="disqus_thread"></div>

<script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'rust-class'; // required: replace example with your forum shortname
	var disqus_url = 'http://www.rust-class.org/class-13-the-internet.html';

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
