COSC 6377 - Computer Networks

Fall 2011

MW 2:30-4:00pm at AH301

InstructorOmprakash Gnawali

Homework - 1

Due: September 14, 2011

Q1: The Growth of the Internet

Prepare three plots that show how the Internet has grown during 2000-2010:
  1. The number of nodes connected to the Internet
  2. The number of web-enabled smartphones
  3. The number of Facebook users.
On the same graphs, extrapolate the growth to 2015. Justify your prediction.

Pleaes cite all the sources of data you use.

Q2: Stop-and-Wait Protocol

Lets consider a 10 KB/s link with 100ms latency and frame size of 1 KB.
  1. What is the minimum wait time in a stop-and-wait protocol? How do you determine the right wait time? Why the difference between minimum and "right" wait time?
  2. The link utilization is 100% if the sender transmits 10 KB of information every second. If we are using a frame size of 1 KB, what is the maximum link utilization with the basic stop-and-wait protocol?
  3. We can use a sliding window to improve efficiency of stop-and-wait protocol. If the sender window size is 5, what is the maximum link utilization?

Q3: Ethernet

  1. What is the maximum length of cable you are allowed to use in 100BASET?
  2. Assume the speed of signaling in the wire is 0.7c and a 64 byte minimum frame size. How much of the wire is occupied by a single bit?
  3. Calculate the maximum cable length with the assumptions above. If your calculated length is different from the suggested length, explain the reason for the difference.

Q4: Distance Vector Routing

One of the students in COSC6377 had a brilliant idea about extending Distance Vector routing by not only keeping track of the minimum cost path to each destination but also the second best path.
  1. Why would you want this extension?
  2. What changes are necessary in the basic distance vector routing to support backup (second best) routes in addition to the shortest path? The resulting protocol should provide the primary and a backup path from each node to every destination in the network.
  3. Design an algorithm that helps a node decide when it should use the second best route. Justify each choice you make in your algorithm design.

Q5: Exploring Internet Topology and Routing

Data sets Write a program in C / C++ / Perl / Python / Java etc. that will accept the following commands as the command line argument:
  1. describe as number. Outputs the name of the AS identified by number and all the adjacent AS, their names, and also notates the relationship with the adjacent AS.
  2. route shortest as1 as2. Prints the shortest path (in terms of hops) between as1 and as2. If no path exists between as1 and as2, prints an error message.
  3. route cheapest-first as1 as2. Prints the path between as1 and as2 that will incur the least expense for as1. If no path exists between as1 and as2, prints an error message.
  4. route cheapest-second as1 as2. Prints the path between as1 and as2 that will incur the least expense for as2. If no path exists between as1 and as2, prints an error message.
  5. route cheapest as1 as2. Prints the path between as1 and as2 that will incur the least expense for everyone. If no path exists between as1 and as2, prints an error message.

Your program should make a direct connection to the URL above, download the data and load it without creating any temporary file. The main program should be named as-explorer with appropriate extension depending on the programming language you decide to use.

You should be able to write this program in a single source file.

Some additional questions:

  1. Which country has the largest number of AS?
  2. Which country has the most per-capita AS?

Q6: BGP

In this question we will explore real-world Internet routes between different ASes.

Download the BGP table either directly from the routeviews project site: http://archive.routeviews.org/oix-route-views/2011.08/oix-full-snapshot-2011-08-28-2000.bz2 or download a local copy of the BGP table snapshot. The file is 30MB and will expand to nearly 1GB. Make sure you have enough disk space before you attempt this problem.

You can find more information about how the data was collected on this link: http://www.routeviews.org/

  1. Draw two trees representing all the paths from route-views.routeviews.org (which is where all the above data was collected) to UH. In one tree, use AS numbers and in the second tree use AS names. Does the topology make sense geographically?
  2. What is the best path between this router and UH? Why?
  3. Run traceroute or tracepath to route-views.routeviews.org from UH. What path do you see? Is this path the same as one of the paths you drew above? If they are different, why are they different? If they are the same, is that surprising?
  4. Compare the UH->route-views.routeviews.org and route-views.routeviews.org->UH paths that you got in this question to the path you got in Q4. You can search for the AS corresponding to the IP address in the path on ARIN website: https://www.arin.net/

Q7: TCP

  1. Label X and Y axes
  2. Label all the points in the graph where the slope of the curve changes. For example, if a line changes the direction, curves, changes value, etc.
  3. What are the green and red lines?
  4. What is the main difference in mechanisms employed on the two graphs? Label the two graphs.

Homework Submission

Submit HW through Moodle. You should submit two files. One source code file (no binary) for Q5 and one PDF with answers. If your code is written in more than one file, put all the files in a single zip file but the main file should still be called as-explorer. If your program requires a library, the library must be included in your zip file. Include a README that tells us how to compile your program, preferably a single Makefile.