In this paper, we address the rate control, the Medium Access Control (MAC) and the routing problem for cooperative Vehicular Ad-Hoc Network (VANET) in the framework of cross-layer design. At first, we introduce the cooperative communication conception to VANET, and propose an opportunistic cooperation strategy to improve the system performance. And then, we develop a cross-layer solution which consists of the link capacity detection with adjusting persistence probability at the MAC Layer, the flow rate control with the maximal utility at the Transport Layer and the routing design at the Network Layer. This proposal is designed in distributed manner in order to support a simple and efficient implementation for VANET. Furthermore, some practical issues, such as fairness and network cost, are presented for implementing the proposed solution and improving the system performance. Simulation results show that the proposed opportunistic cooperation strategy combined with joint control algor...