JMU
Homework Assignment 9


  1. Recall that Ethernet frames can not have a data section that is more than 1500 octets long. Hence, when using TCP/IP over Ethernet, it is sometimes necessary to use multiple frames/fragments.
    1. How many frames/fragments would be used to transmit an HTTP GET request (over Ethernet) to www.cs.jmu.edu for the page named index.html assuming that, after the GET "line", there are 3240 octets of HTTP header (including the carriage return and line feed characters)? (Hint: HTTP uses TCP which uses IP which, in this case, uses Ethernet.)
    2. What is the length of each frame/fragment?
    3. What is the fragment offset for each frame/fragment?
    4. Without using a loop, if statement, or conditional operator, write an expression (in the programming language of your choice) for calculating the length of the "short" frame/fragment, given the number of frames/fragments (in a variable named numberOfFrames), the IP header length (in a variable named ipHeaderLength), the TCP header length (in a variable named tcpHeaderLength), and the HTTP payload length (in a variable named httpPayloadLength).
    5. Challenge Yourself (This question is not required): Without using a loop, if statement, or conditional operator, write an expression (in the programming language of your choice) for calculating the number of IP fragments in terms the payloadLength, ethernetLength and headerLength. (Note: You can ignore the details of TCP for this question and focus on IP fragmentation.)
  2. In lecture we said that broadcasts in ARP over Ethernet are sent to FF:FF:FF:FF:FF:FF (that is, 255:255:255:255:255:255). Why aren't they sent to FF.FF.FF.FF (that is 255.255.255.255)? In other words, why does this address have six "components" and not four "components"?
  3. You should remember that the application layer protocol HTTP uses TCP at the link layer.
    1. Why does HTTP use TCP used rather than UDP?
    2. What is the major drawback of TCP for HTTP 1.0, especially for delivering WWW pages?
    3. How does persistent HTTP resolve this problem?
  4. Consider the following network which, for simplicity, uses "simplified" IP addresses of the form #.# (where the number to the left of the period is the network portion and the number to the right of the period is the host portion) and "simplified" MAC addresses of the form @@.
    IPandEthernet.png

    For this question, the device R is both a link layer switch (for aa, bb, cc, dd, and gg) and a network/internetwork layer router. Similarly, the device S is both a link layer switch (for ee, hh, kk, and mm) and a network/internetwork layer router.

    Suppose that an application bound to port 2801 on workstation A wants to use UDP to send the message "Dude!" to an application bound to port 1932 on workstation E. Suppose further that the header for the transport layer protocol contains only the from port and the to port, the header for the network/internetwork protocol contains only the from IP address and to IP address, and the header for the physical/link layer protocol contains only the from MAC address and the to MAC address.

    1. Illustrate the complete physical/link layer frame created by the application on A.
    2. Illustrate the complete physical/link layer frame when it leaves R.
    3. Illustrate the complete physical/link layer frame when it leaves S.
  5. Returning to the network in the previous question, now suppose that network 2 is a private network and that device S is now also a network address translator (NAT).

    Further, suppose that an application on E wants to open a TCP connection bound to port 3401 on 2.2 to an HTTP server bound to port 80 on 1.3. In addition, suppose that the transport layer protocol now includes an 8-bit field in which the lowest-order bit is the ACK field, and the next lowest-order bit is the SYN field.

    1. Illustrate the first complete physical/link layer frame created (for this purpose) on E.
    2. Illustrate the complete physical/link layer frame when it leaves S (assuming that it cannot use port 3401).
    3. What information must S store in order for it to play the role of a NAT?
  6. Suppose the local area network (LAN) 1.x used a bus topology like the following:
    bus-network.png

    rather than a star topology. What issues would arise and at what layer of the protocol stack? In other words, what protocol(s) did not have to be used in the star topology that will have to be used in the bus topology?

  7. Suppose you have an active TCP connection with a server in an IP anycast group. Now suppose that the server fails. Ideally, you would like another server in the group to "pick up" the connection. Why can't this be accomplished with IP anycast alone?
  8. Suppose you have a desktop computer with both a wired Ethernet connection and a Wi-Fi connection.
    1. What benefits would accrue from using Multipath TCP (MPTCP) in this situation?
    2. Suppose a particular TCP packet was sent over the Wi-Fi channel/path but could not be acknowledged because that channel/path became inactive after the packet was sent. What would need to be done to re-send the packet over the Ethernet channel/path? In other words, could the Wi-Fi frame just be re-sent over the Ethernet channel/path?
    3. Given that the payload of Wi-Fi frames can be larger than the payload of Ethernet frames (i.e., that the maximum transmission unit (MTU) for Wi-Fi is larger than the MTU for Ethernet), what problem could arise in the situation described in the previous question and how might it be avoided?
  9. Challenge Yourself (This question is not required): Suppose you had built a queueing model of a simple IP network before you knew about fragmentation. How would you need to change the parameters of that model to incorporate fragmentation?

Copyright 2013