The dynamic nature of vehicular ad hoc network (VANET) induced by frequent topology changes and node mobility, imposes critical challenges for vehicular communications. Aggravated by the high volume of information dissemination among vehicles over limited bandwidth, the topological dynamics of VANET causes congestion in the communication channel, which is the primary cause of problems such as message drop, delay, and degraded quality of service. To mitigate these problems, congestion detection, and control techniques are needed to be incorporated in a vehicular network. Congestion control approaches can be either open-loop or closed loop based on pre-congestion or post congestion strategies. We present a general architecture of vehicular communication in urban and highway environment as well as a state-of-the-art survey of recent congestion detection and control techniques. We also identify the drawbacks of existing approaches and classify them according to different hierarchical schemes. Through an extensive literature review, we recommend solution approaches and future directions for handling congestion in vehicular communications.