Most of this material is from Nick McKeown's very readable PhD thesis. We covered the following sections: