As a result of growth of Internet in recent years, different data flows should contend each other for more resources. On the other hand, some applications need to have a guaranteed bandwidth. So, we need a fair resource allocation algorithm with an acceptable QoS guarantee for all applications. This procedure is more vital for End networks. So for meeting these requirements, traffic management and bandwidth allocation methods are necessary. In this thesis, we analyze different methods of bandwidth allocation in data networks. At first, we analyze network layer algorithms that are used for resource allocation and QoS guarantee. Then we study several bandwidth allocation algorithms which are activated by end users to be able to increase QoS by allocating bandwidth among different data flows. After that we simulate a typical algorithm in OPNET. For making that algorithm perfect, we will introduce a bandwidth management system. This system has a hierarchical structure that is working in two levels. At the first level, user’s request would be analyzed based on each user’s weight. If there is enough bandwidth, the request will be accepted and guaranteed. At the second level, a user’s flows will be managed based on allocated rate of each flow. This part of algorithm is locally implemented in every user’s computer. We prove simulative that this algorithm not only prepares a guaranteed minimum rate for each user, but also the remained rate could be allocated in a best-effort manner.