[so] Proiecte de diploma - Multipath TCP

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun Oct 30 11:36:32 EET 2011


Salutare!

Găsiți mai jos o descriere un set de propuneri de proiecte de diplomă
pentru lucrul la Multipath TCP. Multipath TCP este un standard internet
recent care împarte o conexiune TCP pe mai multe căi între sursă și
destinație.

Proiectele de diplomă se vor desfășura pe perioada semestrului 2 sub
coordonarea lui Costin Raiciu și Răzvan Deaconescu.

Cei care sunt interesați de lucrul la aceste proiecte sunt rugați să
trimită un e-mail lui Costin și Răzvan[1][2] până cel târziu luni, 7
noiembrie 2011, în care să precizeze proiectul/proiectele de care sunt
interesați și să atașeze un CV. Interviurile pentru proiecte vor avea
loc miercuri, 9 noiembrie, începând cu ora 10:00, în sala ED217.

[1] costin.raiciu at cs.pub.ro
[2] razvan.deaconescu at cs.pub.ro

Happy hacking,
Costin & Răzvan
---
Multipath TCP (MPTCP) (http://datatracker.ietf.org/wg/mptcp/charter/) is
a newly proposed internet standard that takes a single TCP connection
and splits it across many paths between the source and the destination.
MPTCP is applicable in the Internet for multi-homed servers, in
data-centers and on mobile devices.

The current Linux implementation (http://mptcp.info.ucl.ac.be/) is still
research grade code and needs a few improvements to fully unleash the
potential of MPTCP.


Project 1. Hardware Offload support for MPTCP (linux kernel
implementation).

Description: To be deployed in datacenters, MPTCP needs to be able to
run at least as fast as TCP on 10Gbps interfaces. TCP uses hardware
offload for this purpose: segmentation ofload allows the kernel to send
large segments (64KB) to the NIC, and the NIC segments them out to the
proper MTU and puts them on the wire. The receiver uses receive offload,
where segments are coalesced before they are processed by the kernel.
This project is about implementing TSO and LRO support for MPTCP. 


Projects 2,3. Implement MPTCP as a portable user-level library over UDP
(Project 2, more difficult) or TCP (project 3, easier). 

Integrate with existing apps by writing a special socket library.
Description: MPTCP changes the kernel, and deployment requires both the
server and the client to be changed. An alternative deployment model
is to do a user-level library implementation of MPTCP that can be easily
ported to many operating systems. A requirement for both these projects
is that unmodified applications can use MPTCP, and that the OS kernel
must not change.

Implementing MPTCP over TCP is relatively easy, but can create problems
if/when flow control kicks in. Also, the amount of buffering needed at
the receiver might be much bigger.

Implementing MPTCP over UDP can bring much more performance, but is also
difficult as reliable delivery, etc, must also be implemented for the
system to work well. 


Project 4. Implementing support in MPTCP for the sendfile syscall and
other operations needed by complex applications such as Apache Hadoop.

This project is about changing the kernel to support large-scale
processing such as Hadoop (and maybe other apps) and then 
experimenting with these applications to test their benefits from MPTCP.
---



More information about the so mailing list