Source: https://web.eecs.umich.edu/~zmao/Papers/aro_mobisys11.pdf