Midterm #2 Study Question Answers
  1. Define flow control and congestion control, and explain the difference between them.
      Flow control is a mechanism to keept he sender from overrunning the receiver's buffer and causing correct data to be dropped. Congestion control is a mechanism to keep all senders from overrunning the buffers in network routers, causing the entire network to collapse from congestion (little data is correctly delivered).

  2. Every connection to a single listening socket creates a TCP circuit bound to the same receiving port. How does the receiving OS differentiate between connections from different hosts to the same listening socket? Between connections from the same port but from different applications?
      The OS differentiates between connections form different hosts using the sendr's IP address. The OS differentiates between different connetions to the same port but from different application using the sending port number, chosen by the sender's operating system.

  3. Explain the Additive Increase, Multiplicative Decrease algorithm for TCP windows size. How does it result in a sawtooth that averages 3/4 of the optimal window size?
      Every time there is an acknowledgement of a segment correctly delivered, the sending window size in increased by adding a constant (eg +1). When a segment is dropped, the sending window size is decreased by a contant factor (eg *0.5) In a stable state, the window size will vary linearly between the optimum window size (the maximum at which drops do not occur due to router buffer overrun) and half that value. Assuming a slope of 1 in the additive increase, the average will be 3/4 of that optimal value.

  4. Give and fully explain one reason why there is no standard reliable transport layer protocol for point-to-multipoint communication.
      The algorithms used to build multicast tree are sensitive to the density of receivers in the network. If many nodes are receivers then a "dense" protocol is most efficient. If many nodes are not receivers the a "sparse" protocol is most efficient. What's more, the density of receivers may change over time or be different in different parts of the network. Thus, efforts to craft a single one-size-fits-all point-to-multipoint protocol have not been successful.