||In traditional overlay multicast network, all peers are treated as equal regardless of their importance and contribution to the network. In this thesis, we consider that each user may have a different cost function depending on his privilege, delay to source, available bandwidth, and the like. We propose a fully distributed and scalable protocol to construct an overlay tree to minimize the overall cost of the users. It uses aggregation to account for the total cost of one's descendants, and reduces tree cost by a continuous improvement process. Through simulation, we show that our protocol converges reasonably quickly. When compared with other schemes, our resultant overlay tree offers differentiated services to users by appropriately taking into account individual user's cost functions. Moreover, it is shown that the bandwidth efficiency of our system can be adjusted easily by tuning a system parameter.