An ultrapeer is a special node on the gnutella file sharing network. Ultrapeers was designed to help counter the problem of network fragmentation, which considerably reduces the amount of search results returned on any given search.
Each gnutella servent that supports the ultrapeer system automatically decides, if it is worthy of becoming an ultrapeer. The decision is made based on apparent bandwidth and CPU load so only the best nodes become ultrapeers.
Each ultrapeer can have hundreds of child nodes which are called leaf nodes. Each leaf node hashes the file names of the files it is sharing and creates an index of them. These hash indice are then forwarded to the ultrapeer which uses them in determining if queries are ment to be forwarded to a specific leaf node or not. This significantly reduces bandwidth requirements on individual nodes, and brings the entire network closer together.