Incentives play an important role in Bit Torrent-like P2P networks, motivating users to contribute to others to achieve faster average download time for all peers. Recent related studies reveal that two problems remain unresolved in most popular incentive mechanisms for BitTorrent-like systems: 1) incompleteness: contributions are not entirely considered, and 2) unfairness: accumulated contributions are not considered. To solve these two problems, a budget-based incentive mechanism is here proposed. First, the lifetime of a peer is divided into three phases, and a peer's workload model is defined by analyzing the peer's behavior in different phases. Second, based on the entire contributions derived from workload, the peer's profit model is defined. Third, a method is proposed which enables users to create profit budgets empirically. Finally, a new budget-based priority unchoking algorithm is presented which considers the entirety of peers' past, current, and future contributions. It is demonstrated here that the budget-based incentive mechanism leads the system to market equilibrium. To test the effectiveness of the mechanism, a BitTorrent client coupled with TCP protocol analysis tools was run to collect real data and empirically parameterize the profit model. Then a modification to the BitTorrent protocol was implemented and evaluated, in which peers reward one another with profits from contributions. Simulations demonstrate that this incentive mechanism yields faster average download times and higher mean download rates compared with the tit-for-tat mechanism.