CSCI 356 / Fall 2024

Computer Networking

Homework 4

Note: We haven't yet covered in class all the topics that appear below, but we have covered some, and will cover others soon, and you can find material in the texbook on these topics as well.

Q1. Ethernet and ARP

In the network shown below, nodes A through G are hosts, node H is an Ethernet hub, node S is an Ethernet switch. Host G acts as an IP-level router (i.e. a gateway) between the two subnets.

(a) Invent a plausible MAC address address for everything in this network that should have a MAC address. All of the network interfaces in Subnet1 were manufactured by the same company (you pick the company), and all of the network interfaces in Subnet2 were manufactured by some second company (again, you pick). You can find tables of manufacturer prefixes online. Hints: Should each host have a MAC address? Or each network interface? Or each wire connecting two devices? What about the hub and/or switch?

(b) Suppose Subnet1 is allocated IP block 197.15.35.0/24, and Subnet2 is allocated IP block 200.40.17.192/26. Invent a plausible IP address for everything in this network that should have an IP address. Hints: Should each host have an IP address? Or each network interface? Or each wire? What about the hub and/or switch?

(c) Suppose host A wishes to send an IP packet to host B, and host A already knows the correct IP address for B, but not B's MAC address. Show the ARP "who-has" query A would send, and the ARP "is-at" reply it would recieve. Also indicate which other hosts would learn some information to store in their ARP tables during this exchange. Although ARP packets are actually encoded entirely in binary, you can just show them in text form.

(d) Suppose a DNS resolver is running on Host D, and Host A wishes to make a DNS query. Host A must therefore send a UDP packet to Host D. Depending on the ARP and forwarding tables in the network, sending this DNS query can also require some additional packets (ARP queries, ARP replies, etc.) to be sent. Assume all ARP tables on all hosts are initially empty, and all forwarding tables on switches are also initially empty. Show, in some detail, all of the packets that are involved in getting A's DNS query to reach D. You should include all related ARP queries and replies (no need to show the entire ARP packets in full detail, but show enough detail to explain what is happening). Describe what is contained in each packet (e.g. UDP source and dest ports, IP source and dest addresses, Ethernet MAC source and dest addresses, ARP information), which host sends each packet, and which hosts receive each packet. Say what each recipient does with each packet it receives.

Q2. Distance Vector Routing

Consider this network of IP routers. Assume all edges have cost 1, and the routers use a distance vector routing protocol.

(a) Show the contents of the initial routing table for router A at the start of the protocol. Similarly show the routing table for C, D, and G, which are A's direct neighbors. Note: each router's table should have an entry only for itself and its direct neighbors, since these ones are typically configured manually, and the identities of more distant routers are not yet known.

Next, suppose the following events happen in sequence. Describe (or illustrate with diagrams) the changes that these tables undergo as each router receives new advertisements. Of course, if some router doesn't receive a particular advertisement, then that router's table won't change during that step.

(b) Host B advertises to all of its neighbors.

(c) Next, after some time, C advertises to all of its neighbors.

(d) Finally, after more time, D advertises to all of its neighbors.

Note that not all routers receive all advertisements: A only directly receives two of the three advertisements that are sent above, for example. You will also have to reconstruct a little bit of what is happening on other routers beyond just the four mentioned in the question. Assume all advertisements arrive at their destinations and are processed immediately, and the advertisements listed above are the only ones sent. All other routers would presumably send advertisements soon, at some later time.

Q3. Link State Routing

Consider this network of IP routers, with edge costs shown, using a link state routing protocol. Commonly used link state protocols like OSPF and IS-IS are quite complex, and also vary a lot in the details. So we'll use a simplified version here.

(a) Show the initial link-state table for each router, containing only information about its directly connected links. F's table, for example, will have an entry only for the link between E and F with cost 4. A's table will have only entries for the two links it has, to C and E, each with the same cost.

Suppose link-state flooding is implemented by having a router send its advertisement, via IP packets, to every other router it knows of. However, a router only knows about the routers mentioned in its table. So at the start, A only knows about the existence of C and E, since those are the only routers mentioned in its table. Later, as A learns more information, A will be able to advertise to more routers.

(b) Pick a router and show what happens when that router advertises the contents of its table to all the routers it knows of. In other words, show the changes made by all routers that receive the advertisement.

(c) Starting from this new state, pick a different router, do the same, showing how that router's advertisement affects other tables. Then pick another router and do the same, etc. Continue doing so until all routers have identical tables, containing informationa about every link. Be sure to make it clear what sequence of router advertisements you have chosen, and remember that routers advertise not just to their neighbors, and not to "everyone", but to all routers they know about given the infromation in their table at the time of their advertisement.

(d) Initially, before any advertiseemnts, this network is fragmented in the sense that some routers don't know how to reach certain other routers (and don't even know of their existence). At what point in your sequence above does the network becomes fully connected, such that every router knows some path to reach every other router. The answer will depend on what order you chose for the advertisements. It might be early on, after just one or two advertisements. Or it could be at the very end, once all the tables are complete. Or it might be inbetween, when just enough links are present in the tables to connect all the routers but before some links are known by all routers.

Extra credit: Count-to-Infinity

Consider the count-to-infinity problem in the distance vector routing.

(a) Can the count-to-infinity problem occur if we decrease the cost of some link? Why, or why not? Either show an example network where decreasing a link cost would lead to a count-to-infinity problem, or argue that no such situation could occur.

(b) How about if we add a new link between two routers that did not previously have a direct link? Again, explain why this can't lead to count-to-infinity problems, or show an example where it does.

Submissions

Submit your single-file-PDF response here.