1. An Efficient Packet Scheduler For Multipath TCP
Guided by : Prof. Sanjit Kumar Barik
TEAM members :
Subham Satyakam Mohanty (1901104098)
Shubham Jena (1901104090)
Soumya prakash Behera (1901104093)
Satyajit Patra (2021104032)
2. CONTENTS
MPTCP
MPTCP Architecture
MPTCP Scheduler
Congestion Control
Scheduler Designing Process
Testing and Evaluation of Scheduler
Performance Analysis
Conclusion
Reference
3. PROBLEM STATEMENT
Our Problem Statement is to design an efficient packet scheduler which can be able to satisfy following
parameters.
1. MPTCP Scheduler adds redundancy e.g. the connection will stay active, even if one link fails.
2. MPTCP Scheduler reduces congestion. MPTCP makes it possible to steer traffic away from congested links.
3. MPTCP Scheduler can increase efficiency. The protocol can take advantage of additional interfaces e.g.
parallel paths
5. MPTCP
Technology Overview:
MPTCP is a protocol that uses multiple network connections to create a faster and more robust connection
compared to traditional connections. These connections can be over different media like Wi-Fi, cellular, or
Ethernet. MPTCP is backward compatible with traditional TCP, making it easy to implement with existing
systems. MPTCP extends TCP by introducing the ability to utilize multiple paths simultaneously to achieve
scalability and redundancy
Motivations for MPTCP development
Increase network efficiency
MPTCP allows for better use of available network
resources, like bandwidth and paths, leading to
faster and more reliable communication.
Improve Fault Tolerance
MPTCP increases the fault tolerance of a network by
utilizing multiple available paths. This leads to
uninterrupted network connections even when faced
with path failures.
6. Benefits of Multipath TCP
Increased Speed and Throughput:
MPTCP uses multiple paths of communication, which leads to increased speed and throughput,
resulting in better user experience.
Improved Fault-Tolerance:
MPTCP provides built-in fault tolerance. This means that if a path fails, the connection is not
broken, and the data can still be transmitted over other paths.
Improved Fault-Tolerance:
MPTCP provides built-in fault tolerance. This means that if a path fails, the connection is not
broken, and the data can still be transmitted over other paths.
7. Working of MPTCP?
Data transfer:
During data transfer, MPTCP transmits the data through one or more subflows based on their
current availability and status.
Sub flow setup:
The client and server establish multiple connections, also called subflows, to enable MPTCP.
Path management:
MPTCP also monitors the availability of subflows and manages the creation, migration, and
release of paths dynamically.
10. Three Way Handshake in MPTCP
SYN+Option
SYN+ACK+Option
ACK
SYN+OtherOption
SYN+ACK+OtherOption
ACK
11. Challenges
Complexity
MPTCP is more complex than TCP. It requires additional network resources and more processing
power.
Interoperability Issues
Today, not all networks or devices might support Multipath TCP, leading to compatibility issues.
Security Challenges
Multipath TCP presents challenges in the areas of security, routing, and addressing, requiring
careful consideration when configuring networks to use this protocol.
12. Congestion Control
Congestion control is a fundamental mechanism in computer networks that aims to regulate the flow of data in order
to prevent network congestion. Network congestion occurs when the amount of data being transmitted exceeds the
available capacity of the network, leading to performance degradation, increased latency, and packet loss.
Packet Scheduling
It assigns transmission rates for each subflow of MPTCP based on the congestion level on each path. It
ensures that no path is overloaded and all paths are used.
Subflow Control
It aims to decrease the transmission rates across all paths equally to avoid congestion and ensure that
data is transmitted smoothly.
Fairness Decision
It decides how much data to send over each connection path to ensure fairness between different
connections and prevents the creation of an advantage for a specific connection.
13. MPTCP Scheduler Design
Multi-Path Transmission Control Protocol (MPTCP) offers significant benefits over
traditional TCP/IP by simultaneously utilizing multiple network paths for data
transmission. However, effective MPTCP scheduling requires carefully designed
algorithms and implementation details. This document will explore the different aspects
of MPTCP scheduler design and their implications on performance and future
development.
14. MPTCP Scheduler Algorithms:
Round Robin
Selects subflows in a cyclic order, evenly distributing data across all available paths. Simple and
fair, but may not be optimal for all scenarios.
Hybrid
Combines multiple algorithms, such as round robin and least used subflow. Provides a good
balance between fairness and efficiency.
15. Design Objectives of MPTCP Scheduler:
Efficiency
The scheduler should maximize the
utilization of the network resources,
prevent congestion, and reduce
packet loss.
Fairness
The scheduler should distribute the
traffic equally among the available
paths and avoid overloading any
particular path.
Robustness
The scheduler should be resilient to
path failures, network changes, and
device mobility
16. Testing and Evaluation of MPTCP Scheduler
Experimental
Setup The scheduler was tested on a
variety of scenarios using a custom
testbed with real-world network
topologies and traffic patterns.
Performance
Metrics The performance of the
scheduler was evaluated using standard
metrics such as throughput, latency,
fairness, and congestion control
Results
The results showed that MPTCP
HyPA outperformed the existing
schedulers in terms of efficiency,
fairness, and robustness.
17. Implementation of MPTCP in Linux Kernel:
The latest Linux Kernels include MPTCP support as a loadable module that is not loaded by default. To
enable MPTCP in Linux Kernel, it is necessary to compile the MPTCP kernel module from Kernel source code
and load it onto the system.
Kernel Source Code
The source code is a collection of instructions written in programming languages that can be compiled
into an executable program called Kernel.
Terminal
Use the terminal to compile the kernel module and load it into the system.
18. Configuring and Enabling MPTCP on Linux:
To configure and enable MPTCP on Linux, the following steps are required:
1.Install the MPTCP-enabled Kernel by loading the MPTCP kernel module
2.Install the MPTCP-tools package
3.Enabling MPTCP by configuring the sysctl variables
4.Restarting the network service to apply the changes
19. Installation of MPTCP:
Step 1: Download all files of
https://github.com/multipath-tcp/mptcp/releases
* We have downloaded mptcp v0.95 , kernel 4.19
Step 2: Change directory to the folder where these files are saved using ‘ cd ’ command.
Step 3: Enter the following commands
sudo dpkg -i linux*.deb
sudo apt-get install -f
sudo wget https://github.com/multipath-tcp/mptcp-scripts/blob/master/scripts/rt_table/mptcp_up
sudo cp mptcp_up /etc/network/if-up.d/
sudo chmod 755 /etc/network/if-up.d/mptcp_up
sudo wget https://raw.githubusercontent.com/multipath-tcp/mptcp-scripts/master/scripts/rt_table/mptcp_down
sudo cp mptcp_down /etc/network/if-post-down.d/
sudo chmod 755 mptcp_down /etc/network/if-post-down.d/mptcp_down
sudo sed -i 's/GRUB_TIMEOUT_STYLE=hidden/GRUB_TIMEOUT_STYLE=menu/g' /etc/default/grub
sudo sed -i 's/GRUB_TIMEOUT=0/GRUB_TIMEOUT=10/g' /etc/default/grub
sudo update-grub
20. Step 4: Enter the following command to check whether mptcp is enabled or not
sysctl -a | grep mptcp.enabled
*To disable mptcp:
sysctl net.mptcp.enabled=0
*To enable mptcp:
sysctl net.mptcp.enabled=1
Step 5: Reboot the system.
Step 6: Choose Advance option for Ubuntu
in the GRUB menu, then choose the
Ubuntu, with Linux version_number.mptcp
21. Step 7: After successful booting, to check whether mptcp is working or not, go to the http://multipath-tcp.org/ website
and click the link shown in the image
22. Step 8: After successful booting, to check whether mptcp is working or not, go to the http://multipath-tcp.org/ website
and click the link shown in the image
23. MPTCP Installation in NS3:
A few MPTCP implementations already exist, some of which already used in production environments such as Apple’s
voice recognition system Siri. Among the implementations, the Linux one is the oldest one with some impressive
achievements and likely used in all the commercial product. Work is also done to improve the MPTCP support on other
operatingsystemssuchasSolarisandFreeBSD.HenceaskingwhydevelopingaMPTCPsimulatorisalegitimatequestion.In
thissectionwedescribeourmotivationsandthetechnicalaspectsofourimplementation.Wealsopresentafewtoolswe
developedtoeasetestingandanalysisofrelatedMPTCPtraces.
35. CONCLUSION
Our project focused on the design and implementation of an MPTCP scheduler. Through extensive research
and experimentation, we have successfully developed a scheduler that effectively manages multiple
subflows in MPTCP connections. Our scheduler optimizes the allocation of network resources, enhances
throughput, and minimizes latency. We conducted various tests and simulations, which demonstrated
improved performance compared to traditional TCP scheduling algorithms. The project's outcome
highlights the potential benefits of utilizing MPTCP schedulers in real-world scenarios, paving the way for
more efficient and reliable communication over multipath networks. Further improvements and
optimizations can be explored to enhance the scheduler's performance and adaptability to diverse network
conditions.
36. FUTURE WORK
In our limited time, we suggested a simple method that can compare two scheduling algorithms
on the basis of throughput, which will be useful to all academics when comparing their algorithms
to prior scheduling algorithms. After comparing, they will be able to plan and execute their future
work on MPTCP schedulers.
37. [1] A. Singh, C. Goerg, A. Timm-Giel, M. Scharf and T. Banniza, "Performance comparison of scheduling algorithms for multipath transfer," 2012
IEEE Global Communications Conference (GLOBECOM), Anaheim, CA, USA, pp. 2653-2658, 2012
[2] F. Yang, P. Amer and N. Ekiz, "A Scheduler for Multipath TCP," 2013 22nd International Conference on Computer Communication and
Networks (ICCCN), Nassau, Bahamas, 2013, pp. 1-7,2012
[3] O. Bonaventure, M. Handley and C. Raiciu, An overview of Multipath TCP. USENIX login;, October 2012.
[4] Y. Cui, L. Wang, X. Wang, Y. Wang, F. Ren and S. Xia, "End-to-end coding for TCP," in IEEE Network, vol. 30, no. 2, pp. 68-73, March-April 2016
[5] Yeon-sup Lim, Don Towsley, Erich M. Nahum, Richard J. Gibbens,” ECF: An MPTCP Path Scheduler to Manage Heterogeneous Paths” ACM
SIGMETRICS / International Conference on Measurement and Modeling of Computer Systems,PP 33–34, June-2017.
[6] S. Ferlin, Ö. Alay, O. Mehani and R. Boreli, "BLEST: Blocking estimation-based MPTCP scheduler for heterogeneous networks," IFIP
Networking Conference (IFIP Networking) and Workshops, Vienna, Austria, pp. 431-439, 2016
[7] E. Dong, M. Xu, X. Fu and Y. Cao, "LAMPS: A Loss Aware Scheduler for Multipath TCP over Highly Lossy Networks," 2017 IEEE 42nd
Conference on Local Computer Networks (LCN), Singapore, pp. 1-9 ,2017,
[8] F. Yang, Q. Wang and P. D. Amer, "Out-of-Order Transmission for In-Order Arrival Scheduling for Multipath TCP," 2014 28th International
Conference on Advanced Information Networking and Applications Workshops, Victoria, BC, Canada, pp. 749-752 , 2014
[9] Yihua Ethan Guo, Ashkan Nikravesh, Z. Morley Mao, Feng Qian, Subhabrata Sen,” Accelerating Multipath Transport Through Balanced
Subflow Completion” MobiCom '17: Proceedings of the 23rd Annual International Conference on Mobile Computing and Networking,PP. 41–
153, October 2017
References: