ProgMP is a programming model for Multipath TCP scheduling. It provides powerful abstractions to develop own application- and preference-aware schedulers. This page provides an interactive demo. You can specify your own MPTCP scheduler and run it on our server, i.e., you can download content from our server using your own Multipath TCP scheduler.
This demo page provides only limited features without MPTCP. You may specify scheduler, but can not use them interactively. Check amIusingMPTCP.de for more details.
Check our ProgMP page for a detailed introduction, an overview of the language, and scheduler examples.
{{output}}
We provide basic control and measurement features to fiddle with your specified scheduler. You may download a small file, watch the experienced application-layer round-trip time, and set scheduler registers.
This demo page provides only limited features without MPTCP. You may specify scheduler, but can not use them interactively. Check amIusingMPTCP.de for more details.
You may set scheduler registers using our extended socket API, e.g., ProgMP.setRegister(
,
)
You may download a small file to test how your scheduler performs.
{{downloadResult}}
Subflows:
Application-layer round-trip time*:{{appRTT}}ms
Debugging output of the specified scheduler:
{{dmesg}}
* The application-layer round-trip time is measured with HTTP requests.
We would like to ask you for feedback. Please contact us if you have further comments.
How familiar are you with MPTCP?
Do you have (previous) experiences with MPTCP scheduler development?
Do you have experiences with Kernel Dev?
Do you think ProgMP is a convenient way to specify MPTCP schedulers?
This page is a proof of concept and a research prototype. It uses persistent HTTP connections and ProgMP to provide isolated Multipath TCP schedulers. This page is still experimental and only supports IPv4 and HTTP. HTTPS will be supported soon. Please contact us if you experience problems.
You can use our ProgMP demo from your applications, e.g., in iOS, using our API. You can control the scheduler connection for http://demo.progmp.net:86/v1/check_connection
with the following requests:
POST
to http://demo.progmp.net/api/setScheduler
with {scheduler="your scheduler"}
POST
to http://demo.progmp.net/api/setDefaultScheduler
http://demo.progmp.net/api/getdmesg
Note: For scheduler control, we rely on port 80. The test connections are running on port 86. This ensures that you can always modify your scheduler (e.g., reset).
This work has been funded by MAKI to make the Internet more adaptive.
Feel free to contact Alexander Frömmgen and Amr Rizk for comments and questions.