Although Vehicular Ad-hoc Network (VANET) is not a new topic, it continues to provide new research challenges and problems. The main objective of VANET is to help a group of vehicles to set up and maintain a communication network among them without using any central base station or any controller. One of the major applications of VANET is in the critical medical emergency situations where there is no infrastructure while it is critical to pass on the information for saving human lives. However, along with these useful applications of VANET, emerge new challenges and problems. Lack of infrastructure in VANET puts additional responsibilities on vehicles. Every vehicle becomes part of the network and also manages and controls the communication on this network along with its own communication requirements. Vehicular ad-hoc networks are responsible for the communication between moving vehicles in a certain environment. A vehicle can communicate with another vehicle directly which is called Vehicle to Vehicle (V2V) communication, or a vehicle can communicate to an infrastructure such as a Road Side Unit (RSU), known as Vehicle-to-Infrastructure (V2I). Figure 1 shows a typical VANET scenario. The main contributions of this paper are to present state