Ad-hoc networks are characterized by highly dynamic multi hop wireless connectivity and offer challenges related to unique issues of congestion, channel error, routing instability and network partitioning. Dealing with these issues requires precise detection of network states, which we accomplished by measuring appropriate metrics, such as packet out of order, inter-arrival delay differences, connection throughput, round trip time etc. We evaluated the performance of TCP under a variety of network conditions running two important routing protocols namely Dynamic Source Routing (DSR) and Dynamic Sequential Distance Vector (DSDV) routing. These protocols belong to different class of routing protocols. DSR is an on-demand whereas DSDV is a link-state routing protocol. In this project, we carried out detailed simulations of a sizable ad-hoc network using NS2 to study the dynamics of the two routing protocols related to the performance of TCP by calculating the above metrics. We observed that congestion in ad-hoc network exhibits dynamic behavior and sometime it is not as bas as in case of fixed networks. For example we observed that node mobility introduces transience to congestion by dissipating congestion at bottleneck nodes. We observed in at least one scenario that node movement totally avoids congestion. We evaluated the performance under channel error conditions by measuring packets out of order and packet losses for both protocols. We also studied the routing characteristics of both protocols under identical mobility conditions. Finally, we evaluated the worst-case performance under extreme network condition by combining congestion, channel error and node mobility.