Traffic state estimation (TSE) refers to the process of the inference of traffic state variables (i.e., flow, density, speed and other equivalent variables) on road segments using partially observed traffic data. It is a key component of traffic control and operations, because traffic variables are measured not everywhere due to technological and financial limitations, and their measurement is noisy. Therefore, numerous studies have proposed TSE methods relying on various approaches, traffic flow models, and input data. In this review article, we conduct a survey of highway TSE methods, a topic which has gained great attention in the recent decades. We characterize existing TSE methods based on three fundamental elements: estimation approach, traffic flow model, and input data. Estimation approach encompasses methods that estimate the traffic state, based on partial observation and a priori knowledge (assumptions) on traffic dynamics. Estimation approaches can be roughly classified into three according to their dependency on a priori knowledge and empirical data: model-driven, data-driven, and streaming-data-driven. A traffic flow model usually means a physics-based mathematical model representing traffic dynamics, with various solution methods. Input data can be characterized by using three different properties: collection method (stationary or mobile), data representation (disaggregated or aggregated), and temporal condition (real-time or historical). Based on our proposed characterization, we present the current state of TSE research and proposed future research directions. Some of the findings of this article are summarized as follows. We present model-driven approaches commonly used. We summarize the recent usage of detailed disaggregated mobile data for the purpose of TSE. The use of these models and data will raise a challenging problem due to the fact that conventional macroscopic models are not always consistent with detailed disaggregated data. Therefore, we show two possibilities in order to solve this problem: improvement of theoretical models, and the use of data-driven or streaming-data-driven approaches, which recent studies have begun to consider. Another open problem is explicit consideration of traffic demand and route-choice in a large-scale network; for this problem, emerging data sources and machine learning would be useful.