210 likes | 482 Views
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
E N D
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
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 Setup MPTCP Client MPTCP Proxy Server 1. SYN MP_CAPABLE Intercept 3. SYN ACK MP_CAPABLE 2. SYN ACK NON MP_CAPABLE 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 Transfer MPTCP Client MPTCP Proxy Server F1 seqno. 1000 DSN 0 seqno. 1, 2, 3 F2. seqno. 2000 DSN 1 F1 seqno. 1001 DSN 2
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
Resource Manage • Version Control System Google Code + SVN http://code.google.com/p/mptcp-proxy/ • Documentation Evernote: 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 Issues Because 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 Risk Define minimum requirements, keep the whole processing as fast as the plan.