# A Brief Review of Multipath TCP for Vehicular Networks
## 2 TCP and MPTCP
### Overview of Multipath TCP

Table 1: _Cont._MP_CAPABLE option to a SYN/ACK packet, the MPTCP session returns to a regular TCP. The exchange of keys in this initial subflow establishment stage also provides cryptographic information for subsequent subflow establishment. The cryptographic information is used by the subsequent subflow to identify which MPTCP connection it wishes to join. After the initial subflow is established, as illustrated in Figure 2, a new subflow can be added to the existing MPTCP connection by conducting a four-way handshake. Firstly, MPTCP initiates the subsequent subflows by sending the MP_JOIN option. Besides the MP_JOIN option, the SYN packet also includes the cryptographic information (receiver token), sender's random numbers (nonce), sender's address ID, and flags. Then the receiver replies with the SYN/ACK packet that includes the receiver's hash-based message authentication code (HMAC), receiver's nonce, receiver's address ID, and flags after receiving the SYN packet. After that, the sender replies with ACK that includes the MP_JOIN option and sender's HMAC. At last, the receiver sends ACK to successfully establish subflow. The HMAC utilizes the keys exchanged in the MP_CAPABLE and nonce (random numbers). MPTCP has a connection-level sequence number and subflow-level sequence number. Connection level sequence number is the data sequence number of packets that is distributed to each subflow before. The subflow-level sequence number is the sequence number of packets on each subflow, which is similar with the sequence number of conventional TCP. The subflow-level sequence number is mapped to the connection-level sequence number, which will enable packets to be transmitted through different paths. As mentioned earlier, in the standard MPTCP connection establishment phase, an initial subflow is needed for exchange signaling information between the sender and receiver in order to enable the data transmission through multiple paths. Considering the connection could be affected by the default path which is suffered from packet losses, [PERSON] et al. [27] proposed robust connection establishment (RobE), a solution that uses additional potential subflows to improve the robustness of establishing multipath data transmissions. After the establishment of initial subflow, the speed of starting up the other subflows is considered to be an important factor for MPTCP performance. In [28], [PERSON] et al. conducted an experiment with two-flow MPTCP. They showed that the delayed startup of additional flows results in low bandwidth utilization for small data. For large data, the concurrent exploitation of Wi-Fi and cellular would result in performance degradation due to bufferbloat. Furthermore, they studied the influence of bufferbloat to MPTCP performance, and provided a solution to mitigate the influence of severe bufferbloat. [PERSON] et al. [29] first put great efforts on the MPTCP performance and cross-layer interactions by conducting a real-word experiment. They discussed the multipath-aware content delivery network (CDN) server selection problem. For example, for small size file transfers, selecting the  
Figure 1: Multipath TCP. servers with minimum latency is reasonable. In contrast, for large size file transfers, selecting the servers that maximize the overall bandwidth is more important. Meanwhile, based on the user trial, a new flexible system for mobile multipath called MPFlex was designed and implemented in this work. The MPFlex employs multiplexing technology and decouples the scheduling algorithm and OS protocol implementation. Multiplexed connections (MCs) are pre-established by only one handshake, instead of conducting handshakes for every subflow establishment, and stayed at a connected state. Thus, the startup time can be reduced largely. Meanwhile, as compared with MPTCP, the scheduler implementation of MPFlex had been greatly simplified by decoupling it from OS, avoiding the entire kernel upgrade for each software update of MPFlex.