COSC 6377 - Computer Networks
Fall 2011
MW 2:30-4:00pm at AH301
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:
- The number of nodes connected to the Internet
- The number of web-enabled smartphones
- 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.
- 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?
- 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?
- 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
- What is the maximum length of cable you are allowed to use in
100BASET?
- 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?
- 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.
- Why would you want this extension?
- 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.
- 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
- AS information:
http://as-rank.caida.org/data/2011.01/as2info.2010.08.txt [Local Copy]
- AS relationship:
http://as-rank.caida.org/data/2011.01/as-rel.2011.01.16.txt [Local Copy]
Write a program in C / C++ / Perl / Python / Java etc. that will
accept the following commands as the command line argument:
- 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.
- 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.
- 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.
- 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.
- 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:
- Which country has the largest number of AS?
- 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/
- 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?
- What is the best path between this router and UH? Why?
- 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?
- 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
- Label X and Y axes
- 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.
- What are the green and red lines?
- 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.