This paper gives two reasons for incast, namely, block tail time out (BTTO) and block head time out (BHTO). The former is about the lost of one of the several last packet, which cannot produce enough dupack to signal fast retransmit; the latter is about the lost of whole window of flow, which the sender is waiting for ACK before sending more data.

By developing an analytical model, it is found that BTTO is the cause for small number of concurrent flows to exhibit incast, and BHTO is the cause for large number of concurrent flows to exhibit incast.

The model is formed as follows: Assuming we have \(N\) flows in an incast scenario. Because they are synchronized, their window increase is also synchronized. Then we can model the queue dynamic as \(Q_i=\min[(NW_i-CD-\phi)^+, B]\), with \(W_i\) the window size in \(i\)-th RTT, \(C\) is the link speed, \(D\) is the propagation delay constant, and \(\phi\) accounts for the variation in queueing delay as seen by different packet, as we expect the queue length increase by \(N\) in each RTT, the mean of \(\phi\) is \(N/2\). From this, we can derive the RTT dynamics, the window dynamics, and number of packets sent, as well as probability that a particular packet who joins the queue will see the queue full.

There are some assumptions in the analysis: (1) It assumes the TCP flows are undergoing congestion avoidance in the dynamics. (2) It assumes they are fully synchronized, i.e. equal window size at anytime before the packet drop.

Bibliographic data

@inproceedings{
   title = "Modeling and Understanding TCP Incast in Data Center Networks",
   author = "Jiao Zhang and Fengyuan Ren and Chuang Lin",
   booktitle = "Proc. INFOCOM",
   address = "Shanghai, China",
   pages = "1377-1385",
   month = "Apr",
   year = "2011",
}