# Enhancing Real-Time Video Streaming Quality via MPT-GRE Multipath Network
## 3 Overview of MPT-GRE Technology  
The traditional TCP/IP protocol stack design restricts communication sessions to a single network interface, even though modern IT devices have multiple interfaces. To improve user experience by increasing throughput and resilience to network failure, a research group at Debrecen University developed a network layer multipath solution called MPT [17]. MPT creates a tunnel over multiple paths using the GRE-in-UDP encapsulation, distinguishing itself from other solutions such as Multipath TCP (MPTCP) and Huawei's GRE Tunnel Bonding Protocol. MPT can function as a router, distributing packets across different networks between the tunnel endpoints to establish a site-to-site multipath connection. MPT is independent of the IP version, making it suitable for IPv6 transition purposes [18].  
MPT is an extension of the GRE-in-UDP encapsulation, offering enhanced performance by enabling the load balancing of GRE traffic across multiple paths. A GRE-in-UDP tunnel improves load distribution in Equal-Cost Multipath (ECMP) networks by using the UDP source port, providing additional entropy for ECMP hashing, and distributing traffic more effectively across multiple paths. As illustrated in Figure 1, the MPT architecture extends the GRE in UDP by enabling multiple physical paths. While it shares some similarities with MPTCP in utilizing multiple paths, MPT differs in its underlying technology by relying on UDP as the transport layer and building on GRE in UDP to provide a tunnel IP layer, supporting TCP and UDP protocols. Huawei's GRE Tunnel Bonding Protocol has similar objectives but uses GRE without UDP encapsulation, limiting it to two physical interfaces. MPT's use of GRE in UDP allows it to avoid this limitation, making it a more flexible multipath solution.  
Figure 2 illustrates the process of transmitting and receiving data packets in MPT. When a packet is received from the tunnel interface, the MPT software identifies its connection specification. This specification governs the behavior of multipath communication and determines how packets are allocated to available paths. Once a path is selected, the user data packet is encapsulated as a GRE-in-UDP data unit. This encapsulation may optionally include GRE sequence numbers for reordering purposes. The simplest GRE header consists of four octets: 16 bits of zeros and 16 bits for protocol type identification, such as 0x0800 for IPv4 or 0x86 DD for IPv6 on the tunnel interface. The GRE-in-UDP data unit is then encapsulated within a UDP/IP data unit for the chosen path, with the destination UDP port number set to 4754, the GRE-in-UDP port. The path definition dictates the IP addresses  
Figure 1: The conceptual architecture of MPT-GRE [17].  
used, which can be IPv4 or IPv6. After encapsulation, the packet is transmitted through the designated physical interface. When a packet arrives from the physical interface, its destination UDP port number is checked to ensure it matches the GRE-in-UDP port (4754). The MPT software processes the packet by identifying the connection based on the source and destination IP addresses in the tunnel IP header. It then performs various validation checks, such as verifying connection validity, the GRE sequence number, and the GRE key value (if present). If the packet passes all checks and reordering is not required, it is immediately forwarded to the transport and application layers via the tunnel interface. If reordering is enabled and the GRE sequence number reveals missing data units, the packet is temporarily stored in a buffer array for reordering before further transmission [19].