Peer-to-peer system performance is dependent on the routing efficiency of the underlying overlay network. Overlay congestion, which may occur during the forwarding process on peers, can have an adverse impact on the performance of an overlay network. Although previous work has been aware of its existence and taken measures against it, the study of overlay congestion has received little attention. As a result, little is known about its system performance impact and how well it is handled currently. In this work, we initiate an investigation of congestion control and message loss in a specific peer-to-peer system--the Gnutella network. Our work starts with an analysis of Gnutella servent implementations. This reveals the heterogeneity among their implementations of congestion control. We next undertake a measurement study to characterize the message loss behavior in a Gnutella network and how it relates to the congestion control mechanisms implemented by the servents. We then use packet-level simulations to understand the global performance of
certain Gnutella congestion control mechanisms.