Vehicular communications, referring to information exchange among vehicles, pedestrians, and infrastructures, have become very popular and been widely studied recently due to its great potential to support intelligent transportation and various safety applications. Via vehicular communications, manually driving vehicles and autonomous vehicles can collect useful information to improve traffic safety and support infotainment services. In this paper, we provide a comprehensive overview of recent research on enabling efficient vehicular communications from the network layer perspective. First, we introduce general applications and unique characteristics of vehicular networks and the corresponding classifications. Based on different driving patterns of vehicles, we divide vehicular networks into two categories, i.e., manually driving vehicular networks and automated driving vehicular networks, and then discuss the available communication techniques, network structures, routing protocols, and handoff strategies applied in these vehicular networks. Finally, we identify the challenges confronted by the current vehicular communications and present the corresponding research opportunities.