Sharing large files across the Internet can be tough. Although residential Internet service providers often tout maximum speeds of 700 megabits per second or more, this is rarely achieved in routine communication, because a chain is only as good as its weak link. Increasing the number of chains---by breaking the file into parts, and downloading each part from a different source at the same time---ineluctably increases transfer speeds, provided of course that all the parts exist. Of course, once that file is located on both ends, the chain becomes a sort of ad hoc mesh, asymptotically increasing reliability for future downloaders. Such is the essence of peer-to-peer downloading. Unlike HTTP or FTP, there is no defined client or server role; we speak instead of botb servents assuming identical parts in the business of sharing.
Many methods exist to enable this form of file transfer; among them is the famed Torrent methodology, beloved of Linux distributions and other non-profit concerns with a need to conserve bandwidth. Also among them is Gnutella. Both of these are fine protocols with a long history of use (and, sadly, abuse) with their own strengths and weaknesses; in general, Torrent excels when one knows where to look or is seeking to transfer a collection of related files, and Gnutella is best at all other times. Though many examples of Torrent utilities exist, there are but four Gnutella servents in active development to-day. WireShare is one such Gnutella servent.