# A Brief Review of Multipath TCP for Vehicular Networks
## 2 TCP and MPTCP
### Overview of Multipath TCP
MPFlex also used a policy engine to provide a higher level control on how to utilize multiple paths according to user requirements. [PERSON] et al. in [30] proposed a security protocol for multipath TCP, namely secure connection multipath TCP (SCMTCP). The SCMTCP has three modules, including SCMTCP with MP_CAPABLE (SCMTCP_MPC), SCMTCP with MP_JOIN (SCMTCP_MPJ), and SCMTCP with ADD_ADDR (SCMTCP_ADA). SCMTCP_MPC generates a private key and public key. At the initial subflow establishment stage, the public keys will be exchanged along with the MP_CAPABLE option. SCMTCP also employs a third-party certificate authority to ensure the successful exchange of public keys. SCMTCP_MPC is for protecting MPTCP from man-in-the-middle attack. When adding a new subflow to the existing MPTCP connection, SCMTCP_MPJ also generates a unique key and exchanges key information along with MP_JOIN. SCMTCP_MPJ is for protecting MPTCP from denial of service. Likewise, SCMTCP_ADA also generates a unique key and exchanges it along with ADD_ADDR. As mentioned above, improving the throughput is one of the main goals in MPTCP. [PERSON] et al. [31] proposed a Q-learning-based MPTCP algorithm. The main idea is to find out a policy to select the best combination of proper interface and congestion control method according to different network conditions so as to maximize the overall throughput. Based on the Q-learning algorithm, the sender decides whether to use single path or multiple paths for data transmissions. Congestion control mechanisms, such as opportunistic linked increases algorithm (OLIA) [32], Cubic [16], and Westwood [33] are discussed. In [34], [PERSON] et al. proposed a path selection method based on throughput  
Figure 2: Multipath TCP initial subflow handshake and subsequent subflow handshake. prediction and available bandwidth for MPTCP. Firstly, they studied the effects of path characteristics for MPTCP throughput. Then they analyzed the reasons why a bad path affects MPTCP performance seriously. They consider that it is not necessary to utilize MPTCP when the best single path is enough. This is because in that case, the improvement of bandwidth will be very limited by aggregating bandwidth of multiple paths due to TCP friendliness requirements. Moreover, inefficient paths may bring negative effects on overall throughput due to their longer RTTs and higher loss rates. However, this study uses a static method and further studies are required to apply the idea in dynamic environments. MPTCP exposes standard socket API to applications. However, some applications fail to fully manage the multiple paths. To overcome this limitation, [PERSON] et al. [35] proposed a MPTCP path manager that enables applications to control multiple paths of MPTCP. The path manager is separated into data plane and control plane. The data plane remains in kernel for data transmissions. The control plane is for managing the subflows. A new interprocess communication mechanism is proposed to enhance the interaction between the applications and MPTCP kernel. The mechanism behaves as a bridge to connect the in-kernel path manager with subflow controller running in userspace. This brings great convenience to control different paths by a subflow controller. Voice recognition technology has made remarkable progress in recent years and is applied in many devices such as car navigation and smartphones. In [36], [PERSON] et al. studied the performance of voice-activated applications in the context of MPTCP environments by utilizing the MONROE platform which is based on container technology. In order to satisfy the restriction of the MONROE platform, they port the MPTCP Linux code into the Linux kernel library. Meanwhile, since most of the popular voice recognition systems are closed source, they modified iperf3 to overcome this limitation. Results show that MPTCP plays a role in enhancing the performance of voice-activated applications.