Analyzing Distributed Network Conditions: Understanding Protocols And Their Performance