A causal approach to the study of TCP performance