In a mobile ad hoc network, nodes move arbitrarily, cooperating to forward data for other nodes not within wireless transmission range. Mobility presents a fundamental challenge to routing and transport protocols. In this talk, I will present my work addressing the challenges mobility presents to on-demand routing protocols and to TCP. On-demand routing protocols use route caches to make routing decisions. Due to mobility, cached routes easily become stale. To address the cache staleness issue, prior work used adaptive timeout mechanisms. However, heuristics cannot accurately estimate timeouts because topology changes are unpredictable. I propose to proactively disseminate the broken link information to the nodes that have cached the link. I define a new cache structure to maintain the information necessary for cache updates and design a distributed cache update algorithm. This algorithm is the first work that proactively updates route caches in an adaptive manner. Simulation results show that proactive cache updating is more efficient than adaptive timeout mechanisms. Due to mobility, TCP performance degrades significantly. Prior work provided link failure feedback to TCP so that TCP can avoid invoking congestion control mechanisms for packet losses caused by route failures. However, TCP still does not perform well because of frequent data and ACK losses. I propose to make routing protocols aware of lost TCP packets and help reduce TCP timeouts. I design two mechanisms that exploit cross-layer information awareness: early packet loss notification (EPLN) and best-effort ACK delivery (BEAD). Simulation results show that the two mechanisms significantly improve TCP throughput.