Wireless networks are poised to support the existing congestion control mechanisms inherited from wired network. Hence, an in-depth understanding and comparative evaluation are necessary to effectively assess and enable the possible trade-offs in quality of service, power consumption, implementation complexity, and spectrum utilization that are provided by the various OSI layers. Traditional networking approaches optimize separately each of the three layers: physical layer, medium access and routing. This may lead to suboptimal solutions. In this work, we propose a cross-layer resource allocation scheme for wireless networks, which allocates bandwidth resources while considering link layer states. We study and compare the performance of TCP under the cross-layer optimization and traditional congestion control scheme, and show that TCP starves some flows, whereas cross-layer scheme removes starvation, provides significantly better fairness, and achieves 15% higher aggregate throughput.