* Why network is a good component for gray box techniques ?

  - Narrow interface.
  - Opportunities to look at the contents of the packets.
  - Consists of large number of components so that a single interface
    cannot be used.
  - New changes cannot be deployed easily and changes can occur only at
    the end points.

* Congestion Avoidance and Control

  - What do the end points want to know ?

    + Bandwidth : Grow until the congestion indicator is shown (lost
      packets)
    + Lost packets and RTT : To know that congestion has occurred.
    + RTT : state/cost of the network ?

  - Use the existing communication between the end points to find
    congestion.

  - Slow start

    + set cwnd = 1;
    + grow exponentially and probe for bandwidth.

  - Assumption : Lost packets imply congestion. This assumption doesn't
    affect the correctness.

  - "network is congested" signal is delivered automatically.

  - This assumption doesn't hold for wireless networks. So new methods for
    inferring congestion are proposed in "A comparison of mechanisms for
    improving TCP performance over wireless links - H.Balakrishnan,
    V.Padmanabhan, S.Seshan, R.Katz"

  - What GrayBox techniques can be used to make the congestion avoidance
    work better ?

    + Probes cannot be used (the network state changes frequently).
    + Algorithmic mirroring cannot be used (endpoints cannot see all the
      network traffic).
    + Microbenchmarking cannot be used (the network state changes
      frequently).
    + Fingerprinting ?

  - Limitations of the above congestion avoidance scheme

    + Wireless networks
    + RTT calculation
    + Available bandwidth is known only after probes.
    + The algorithm doesn't backoff until the congestion actually occurs.

* RED

  - Assumes that the endpoint backs-off on dropped packets.
  - DECbit makes different assumptions.
  - RED algorithm.
  - To avoid affecting the bursty traffic maintain an average queue size.
  - Congestion can be notified explicitly or by dropping a packet.
  - End points may not behave well and they all cannot be tracked.
  - Limitations of RED:
    + Lots of parameters to configure for RED gateways.
  
* In both the above case studies inferences are made only for
  performance. So it doesn't affect the correctness.