CS475: Computer Networks - The Link Layer

Activity Goals

The goals of this activity are:
  1. To explain the role and responsibility of the Link Layer
  2. To demarcate a protocol data unit using bit flags
  3. To use an ARP table to track mac addresses on a switch
  4. To differentiate between a hub and a switch
  5. To define a packet including its boundaries and standardizing features
  6. To explain the use of a sliding window protocol for efficient in-order transmission
  7. To explain the role and function of Link Layer protocols such as ARP and the Ethernet and WiFi frame

Supplemental Reading

Feel free to visit these resources for supplemental background reading material.

The Activity

Directions

Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to discuss your findings with the class, and the rest of the group should help that member prepare their response. Answer each question individually from the activity, and compare with your group to prepare for our whole-class discussion. After class, think about the questions in the reflective prompt and respond to those individually in your notebook. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.

Model 1: A Link Layer Ethernet Frame Encapsulating a Packet

Ethernet Type II Frame format.svg
Public Domain, Link
Ethernet frame

Questions

  1. These packets are comprised of individual bits, so that a receiver observes a stream of ones and zeros. How can we be sure we're reading from the start of a message, and that we didn't start listening in the middle?
  2. What do you think it means to "frame" a packet? What might a "preamble" have to do with framing at the link layer?
  3. What constitutes an address at the link layer? How large is this address, and how does it differ from an IP address?
  4. The Ethernet frame is nothing more than a sequence of bits. How might we indicate when a packet begins and ends so that receivers know how to parse the data?
  5. An 802.11 WiFi frame supports additional message types to request permission and acknowledge permission to and from an access point to communicate. Why does this differ from an 802.3 Ethernet frame?
  6. An 802.11 WiFi frame contains an additional address field beyond the sender and receiver links. What address might this represent?
  7. The MAC address ff:ff:ff:ff:ff:ff is a reserved address that does not represent a single node. What might this address represent, and what would a switch do upon encountering such a message?
  8. How might a broadcast message help to populate a switch or computer ARP table?

Model 2: The Cyclic Redundancy Check (CRC)

let x = the bits representing the coefficients of a polynomial with coefficients 1 or 0 let i = 0 let result = input + ([0] * len(x)) # append len(x) 0 bits to the end of input repeat until result[:len(input)] == 0: # until the non-remainder bits are 0 let wnd = result[i:i+len(x)] # the leftmost bits of the input wnd = wnd XOR x result[i:i+len(x)] = wnd i = i + 1 crc_encoding = result[:-len(x)] # the rightmost bits of the output

Questions

  1. How often does this CRC execute while a packet transits from a source to a destination across multiple hops?
  2. In addition to the CRC, a final check is made by the receiver at a higher layer of the network stack. Why might this extra check occur?
  3. CRC can be used to correct single bit errors. What types of bit errors can the CRC detect, even if it cannot correct them?
  4. The resulting encoding can be thought of as a remainder. In your own words, what is the relationship between the remainder, the input, and the polynomial coefficient bits?

Model 3: The ARP Protocol

Wireshark ARP Trace
2550T-PWR-Front

Questions

  1. How might each computer keep track of the MAC addresses of the nodes around it?
  2. What would happen if a node's IP address changes? What can we do about this?
  3. What would happen if a new node connected to a switch? Does the switch have to be set up to communicate with it? Why or why not?
  4. Initially, a switch might not know which interface a particular node is connected to. Switches are unable to send ARP packets on their own: what should the switch do if it receives a packet destined for a node whose MAC address is currently unknown to it?
  5. How might an "improved hub" (called a "switch") use this information to reduce collisions within its collision domain? Beyond the information provided by an ARP packet, what information does the switch need to store?
  6. Suppose a packet transits from a source to a destination through several intermediate nodes. How might the Link Layer frame be updated at each step?
  7. What happens if the MAC Address of the next hop is unknown to a particular node, and it does not learn it after sending an ARP request?

Submission

I encourage you to submit your answers to the questions (and ask your own questions!) using the Class Activity Questions discussion board. You may also respond to questions or comments made by others, or ask follow-up questions there. Answer any reflective prompt questions in the Reflective Journal section of your OneNote Classroom personal section. You can find the link to the class notebook on the syllabus.