In this paper we study the performance of TCP over wireless ad-hoc networks. We present a comprehensive set of simulation results and identify the key factors that impact TCP's performance over ad-hoc networks. We use a variety of parameters including link failure detection latency, route computation latency, packet level route unavailability index, and flow level route unavailability index to capture the impact of mobility. We relate the impact of mobility on the different parameters to TCP's performance by studying the throughput, loss-rate, and retransmission timeout values at the TCP layer. We conclude from our results that existing approaches to improve TCP performance over mobile ad-hoc networks have identified and hence focused only on a subset of the affecting factors. In the process we identify a comprehensive set of factors influencing TCP performance. Finally, using the insights gained through the performance evaluations, we propose a framework called Atra consisting of three simple and easily implementable mechanisms at the MAC and routing layers to improve TCP's performance over ad-hoc networks. We demonstrate that Atra improves on the throughput performance of a default protocol stack by 50%-100%.