Experiments on six commercial TCP implementations using a software fault injection tool