Opportunis*c ¡Mobility ¡with ¡ Mul*path ¡TCP ¡ Cos*n ¡Raiciu ¡ Department ¡of ¡Computer ¡Science ¡ University ¡Politehnica ¡of ¡Bucharest ¡ ¡ ¡ Joint ¡work ¡with ¡Dragos ¡Niculescu, ¡Marcelo ¡Bagnulo ¡(UC3M) ¡ and ¡Mark ¡Handley ¡(UCL) ¡
Mobile ¡Devices ¡Everywhere! ¡ Smartphones ¡ Tablets ¡ Cars ¡ • Network ¡connec*vity ¡is ¡a ¡requirement ¡ • Wifi, ¡3G, ¡Bluetooth ¡ • Vastly ¡different ¡proper*es ¡
Problem ¡Statement ¡ • Connec*vity ¡is ¡transient ¡for ¡mobile ¡nodes ¡ – A ¡few ¡seconds ¡for ¡Wifi ¡at ¡driving ¡speeds ¡[Bala2010] ¡ ¡ • TCP ¡connec*ons ¡use ¡one ¡interface ¡ – When ¡link ¡goes ¡down, ¡connec*on ¡dies ¡ ¡ • How ¡can ¡we ¡u*lize ¡all ¡these ¡links ¡to ¡get ¡the ¡ best ¡performance? ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡ Make ¡Before ¡Break ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡ Make ¡Before ¡Break ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡ Make ¡Before ¡Break ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡ Ac*vely ¡Use ¡Mul*ple ¡Interfaces ¡
What ¡is ¡a ¡good ¡mobility ¡strategy? ¡ 3G ¡celltower ¡ Ac*vely ¡Use ¡Mul*ple ¡Interfaces ¡
Mobility ¡Solu*ons ¡ ¡ Survive ¡ Make ¡ Mul,ple ¡ ¡ Connec,on ¡ Before ¡ Links ¡ Break ¡ Current ¡Mobile ¡ No ¡ No ¡ No ¡ Stacks ¡ Mobile ¡IP ¡ Yes ¡ Yes ¡ No ¡ TCP-‑Migrate ¡ Yes ¡ Yes ¡ No ¡
Mobility ¡Solu*ons ¡ ¡ Survive ¡ Make ¡ Mul,ple ¡ ¡ Connec,on ¡ Before ¡ Links ¡ Break ¡ Current ¡Mobile ¡ No ¡ No ¡ No ¡ Stacks ¡ Mobile ¡IP ¡ Yes ¡ Yes ¡ No ¡ TCP-‑Migrate ¡ Yes ¡ Yes ¡ No ¡ Mul*path ¡TCP ¡ Yes ¡ Yes ¡ Yes ¡
Mul*path ¡TCP: ¡Overview ¡ n MPTCP ¡uses ¡mul*ple ¡paths ¡in ¡the ¡network ¡for ¡one ¡ transport ¡connec*on ¡ – Opens ¡mul*ple ¡subflows ¡which ¡carry ¡data ¡over ¡the ¡ different ¡paths ¡ – Different ¡paths ¡are ¡selected ¡by ¡using ¡different ¡addresses ¡ and/or ¡ports ¡ • MPTCP ¡is ¡a ¡drop ¡in ¡replacement ¡for ¡TCP ¡ ¡ – Works ¡with ¡unmodified ¡apps ¡ – Works ¡over ¡the ¡exis*ng ¡network ¡ ¡ ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ SYN ¡ ¡ MP_CAPABLE ¡X ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ N ¡ ¡ Y S ¡ ¡ Y N O I J
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ ¡ ¡ C K A / N Y S X ¡ N ¡ I O J
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡A ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ STATE ¡B ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡A ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ STATE ¡B ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡A ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ ¡ T A A D STATE ¡B ¡ B ¡ ¡ Q S E CWND ¡ ¡ ¡ 2 Q : E S D Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡A ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ ¡ T A A D STATE ¡B ¡ B ¡ ¡ Q S E CWND ¡ ¡ ¡ 2 Q : E S D Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
MPTCP ¡Mobile ¡Architecture ¡ 3G ¡celltower ¡ STATE ¡A ¡ CWND ¡ Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡ ¡ T A A D STATE ¡B ¡ B ¡ ¡ Q S E CWND ¡ ¡ ¡ 2 Q : E S D Snd.SEQNO ¡ Rcv.SEQNO ¡ … ¡
What ¡if ¡the ¡remote ¡server ¡is ¡not ¡ MPTCP ¡enabled? ¡ • This ¡will ¡be ¡the ¡case ¡for ¡ini*al ¡deployment ¡ • Solu*on: ¡use ¡an ¡MPTCP ¡proxy ¡ – Will ¡be ¡deployed ¡by ¡the ¡mobile ¡operator ¡ – Phones ¡will ¡be ¡configured ¡with ¡the ¡proxy’s ¡ address ¡via ¡DHCP ¡ • The ¡proxy ¡can ¡also ¡help ¡with: ¡ – Simultaneous ¡move ¡ – Peer ¡to ¡peer ¡opera*on ¡
Proxy ¡Func*onality: ¡ ¡ Server ¡Does ¡Not ¡Speak ¡MPTCP ¡ 3G ¡celltower ¡ MPTCP ¡ ¡ Proxy ¡
Proxy ¡Func*onality: ¡ ¡ Server ¡Does ¡Not ¡Speak ¡MPTCP ¡ 3G ¡celltower ¡ MPTCP ¡ ¡ Proxy ¡
Proxy ¡Func*onality: ¡ ¡ Server ¡Speaks ¡MPTCP ¡ 3G ¡celltower ¡ MPTCP ¡ ¡ Proxy ¡
Proxy ¡Func*onality: ¡ ¡ Server ¡Speaks ¡MPTCP ¡ 3G ¡celltower ¡ MPTCP ¡ ¡ Proxy ¡
Evalua*on ¡ • The ¡benefits ¡come ¡from ¡using ¡mul*ple ¡ interfaces ¡concurrently ¡ • We ¡considered ¡mul*ple ¡scenarios: ¡ – Indoor ¡mobility ¡(trace) ¡ – Outdoor ¡mobility ¡(simula*on) ¡ • 3G ¡and ¡WIFI ¡connec*vity ¡varies ¡ – Link ¡speeds ¡and ¡varia*ons ¡taken ¡from ¡[Bala2010, ¡ Bychk2006] ¡
Algorithms ¡under ¡test ¡ • TCP ¡3G, ¡TCP ¡WiFi ¡ ¡ • WiFi ¡First: ¡switch ¡to ¡WiFi ¡if ¡available ¡ ¡ • Op*mal ¡TCP ¡= ¡Migrate ¡TCP ¡+ ¡Oracle ¡ ¡ • MPTCP ¡
Outdoors ¡Mobility, ¡Walking ¡ 10 3G 8 WiFi 6 Mb/s 4 2 0 0 5 10 15 20 25 Time(min)
Outdoors ¡Mobility, ¡Walking ¡ TCP 3G 2.5 Throughput-Walking (Mb/s) 2 1.5 1 0.5 0 0 20 40 60 80 100 WiFi Coverage (%)
Outdoors ¡Mobility, ¡Walking ¡ TCP 3G TCP Wifi 2.5 Throughput-Walking (Mb/s) 2 1.5 1 0.5 0 0 20 40 60 80 100 WiFi Coverage (%)
Outdoors ¡Mobility, ¡Walking ¡ TCP 3G Wifi First TCP Wifi Throughput-Walking (Mb/s) 2.5 2 1.5 1 0.5 0 0 20 40 60 80 100 WiFi Coverage (%)
Outdoors ¡Mobility, ¡Walking ¡ TCP 3G Wifi First TCP Wifi Optimal TCP Throughput-Walking (Mb/s) 2.5 2 1.5 1 0.5 0 0 20 40 60 80 100 WiFi Coverage (%)
Outdoors ¡Mobility, ¡Walking ¡ TCP 3G Optimal TCP TCP Wifi MPTCP Wifi First Throughput-Walking (Mb/s) 2.5 2 1.5 1 0.5 0 0 20 40 60 80 100 WiFi Coverage (%)
Similar ¡Improvements ¡in ¡All ¡Tests ¡ ¡ • MPTCP ¡vs. ¡Op*mal ¡TCP: ¡10 ¡-‑ ¡20% ¡ • MPTCP ¡vs. ¡WiFi ¡First: ¡50 ¡-‑ ¡100% ¡ ¡
Energy ¡Experiments ¡ • Bits/Joule ¡varies ¡for ¡the ¡same ¡interface ¡ • How ¡do ¡we ¡know ¡which ¡is ¡the ¡more ¡efficient ¡ interface? ¡ – Periodically ¡ac*vate ¡all ¡interfaces ¡ – Measure ¡Bits/Joule ¡ – Switch ¡to ¡the ¡most ¡efficient ¡one ¡ • Compared ¡to ¡TCP ¡WiFI ¡MPTCP ¡improves: ¡ – Energy ¡efficiency ¡by ¡7% ¡ – Throughput ¡by ¡50% ¡ ¡
MPTCP ¡Overheads ¡ • CPU ¡overheads ¡ – Depend ¡on ¡the ¡number ¡of ¡subflows ¡ – Negligible ¡for ¡x86 ¡and ¡few ¡subflows ¡ • Network ¡overheads ¡ – 20B ¡in ¡each ¡segment ¡~ ¡1.5% ¡ • Memory ¡overheads ¡ – Receive ¡buffer ¡grows ¡as ¡max(RTT)*sum(BW) ¡ across ¡all ¡paths ¡
Recommend
More recommend