A classic routing protocol Dynamic Source Routing (DSR) can quickly establish a routing path but it is prone to cause a congestion and load unbalance under a presence of high amount of traffic. To improve the performance of DSR in large data networks and to solve various problems caused by network congestion, an improved DSR(DSR-p) is proposed. DSR-p has the congestion control ability by using Hello messages to find out the congestion status of links and establishing a ``bypass“ based on the congestion status. In addition, a congestion parameter γ is introduced to define the status of a link, whether the link is congested(red) or not(green).Simulations with Truetime, a network simulation library,were performed to evaluate the performance of DSR-p. The simulation results show that the DRS-p can effectively improve packet delivery rate (PDR) and reduce end-to-end delay (ED), routing overhead (EO) and energy consumption. Furthermore, the experimental tests were conducted with Telos B Mote TPR2420 on TinyOS platform. The test results demonstrate DSR-p outperforms DSR on PDR performance as the amount of transmitted data is larger, increasing by 5.6% as the packet sending rate reaches 900 packets/h. Therefore, both simulation and experimental results prove that the proposed DSR-p performs more efficiently than the conventional DSR.