Upload
oscar-robertson
View
220
Download
0
Tags:
Embed Size (px)
Citation preview
MultiPath TCP Proxy
Presented by: Yongzhi Zhuang,Wei Zeng,
Jianlei Zhang
TCP
• two functions: reliable transmit and congestion control
• 95% Internet traffic driven by TCP• Single TCP connection not support different
application interfaces
Today, high demanding applications increaseing very fast.
MultiPath TCP
• Allow single data connection to use for multi interfaces
• Resource pooling helps to increase bandwidth• Possible to switch between interfaces• Establish several subflows for the same
connection
MPTCP Scenario
MultiPath Proxy
• Problem: – most of the servers not support MultiPath TCP
• Solution:– set up a proxy on the path
MPTCP Scenario(mobile client)
• MPTCP client sends SYN to proxy with the server’s address, proxy initiates connection to server.
MPTCP Scenario(mobile client)
• New subflow connets to the server
MPTCP Scenario(mobile client)
• After the proxy knows server is MP_CAPABLE, sends ADD_ADDRESS to client.
• New subflow will be set up directly from client to server with proxy used as backup.
• Data traffic not bother proxy.
Our Goal
• Primary Goal:– Implement a basic MPTCP proxy between MPTCP
client and Non-MPTCP server, then increasingly improve its functionality
• Optional Goal:– Consistent with congestion control algorithm– TCP checksum validation
MPTCP Proxy
MPTCP Client
MPTCP Proxy
Server
Implicit vs. Explicit
• Explicit Proxy– Configured client to use the proxy for all
connection– Signaling Problem: How to tell the real destination
• Implicit Proxy– Transparent to Client and Server– Deploy on the direct routing path between Client
and Server– Inspect and then inject the packet
Connection SetupMPTCP Client
MPTCP Proxy
Server
1. SYN MP_CAPABLE
2. SYN ACK NON MP_CAPABLE3. SYN ACK MP_CAPABLE
Intercept
4. ADD_ADDR(Address of Proxy)5. Tell Client to use proxy directly (e.g. REMOVE_ADDR(Address of Server))
Connection Setup: Issues
• Intercept the packet and establish the connection without breaking the original handshake
• Client’s other interface may use other path to establish sub connection with server before we indicate the client to use proxy
Data TransferMPTCP Client
MPTCP Proxy
Server
seqno. 1, 2, 3F2. seqno. 2000 DSN 1
F1 seqno. 1001 DSN 2
F1 seqno. 1000 DSN 0
Data Transfer: Issues
• Data Sequence Number Mapping • Data re-assemble and re-order • Acknowledgement Mechanism• Congestion Control and Performance
Approach
• User space packet handling • Data transfer
• Data Sequence mapping between sub-flows• Basic Acknowledgement mechanism
• TCP Proxy MPTCP Proxy• State machine• Rules about how to transform packet and
what need to be transform
Role • Yongzhi, Zhuang
– Key coder
• Jianlei, Zhang– Documentation work meeting notes & report writing– Testing & evaluation
• Wei, Zeng– Project manager
assign work to each member, keep project processing in time– Seconder coder
Time Plan• Background Research – 2 week • Initial Design - 1 week• Implementation – 5 weeks
– Minimum requirements• Packets handle • Connection setup• Data uplink forwarding • Data downlink forwarding
– Optional Functions• Congestion Control• Checksum
• Testing and Evaluation – 2 weeks• Dissertation Writing – 2 weeks
Gantt Chart
Resource Manage
• Version Control SystemGoogle Code + SVNhttp://code.google.com/p/mptcp-proxy/
• DocumentationEvernote: using a shared account to manage
meeting notes, design drafts, relative materials.
Risk Management• Schedule flaws
Lack of through understanding the work involved, under estimate the time need to complete certain function. Group members may have some unexpected issues in this summer.
•Technical IssuesBecause of the current internet structure and protocol, we
may meet some unsolvable problem.
• Design mistake and Bug We may spend a a lot time in going wrong direction, and solving bug.
Control RiskDefine minimum requirements, keep the whole processing as fast as the plan.