Conventionally, most network protocols assume that the network entities who participate in the network activities will always behave as instructed. However, in practice, most network entities are selfish: they will try to maximize their own benefits instead of altruistically contributing to the network by following the prescribed protocols. Thus, new protocols should be designed for the non-cooperative network that is composed of selfish entities. In this paper, we specifically show how to design truthful multicast protocols for non-cooperative networks such that these selfish entities will follow the protocols out of their own interests. By assuming that every entity has a fixed cost for a specific multicast, we give a general framework to decide whether it is possible and how, if possible, to transform an existing multicast protocol to a truthful multicast protocol by designing a proper payment protocol. We then show how the payments to those relay entities are shared fairly among al...