170 likes | 302 Views
Name-based Shim6: A name-based approach to host mobility. Zhongxing Ming Javier Ubillos Mingwei Xu. Name-based Sockets - The Problem. addr = gethostbyname (someString ); …… connect( …, addr , … ); write( … ); close( … ); connect (…, addr , …); write( … ); colse( … );.
E N D
Name-based Shim6: A name-based approach to host mobility Zhongxing Ming Javier Ubillos Mingwei Xu Tsinghua University
Name-based Sockets - The Problem addr = gethostbyname (someString ); …… connect( …, addr, … ); write( … ); close( … ); connect (…, addr, …); write( … ); colse( … ); • FQDN resolution and IP management is dealt with by the application • All cool stuff have to be implemented by the application. • Mobility • Multi-homing • IPv4/IPv6 agnosticism • NA(P)T traversal • Path diversity exploitation • Etc… Tsinghua University
Socket abstractions • Developers seem to like them… • One implementation for every framework • More often than not • Resolve once • Resue IP • Resue IP • Resue IP • Resue IP • Resue IP • …… Tsinghua University
Cherry picking • Provide the socket abstraction developers like. • Do allow all the cool functions of surrogate addresses • But don’t introduce new indirections • And be explicit about that it is different Tsinghua University
The approach Host Network • New API • Not binary compatible • A session layer • Easy transition Minor changes or none Compatible Middle-boxes unaffected Tsinghua University
How is this different? Application Transport SCTP Name-based sockets Network HIP Outside the host LISP Tsinghua University
API • listen() – Prep for incoming session • Fd = listen(src_name, dst_name, local_port, transport); • open() – Initiate outgoing sesion • Fd = open(src_name, dst_name, remote_port, transport); • accept() – Receive incoming session • (src_name, dst_name, fd) = accept(fd); • read() – Receive data • Data = read(fd); • write() – Send data • Write(fd, data); • close() – Close session • Close(fd); Tsinghua University
Mobile NBS • It has been a long struggle to manage mobility in today’s IP networks. • NBS allows mobile device users to move from one network to another while maintaining the connection. • DNS and Shim6 is involved to support mobile NBS • No triangular routing • Fast handover • Good reliability Tsinghua University
ULID Update NBS src_name dst_name Before shim6 state establishment src_ip dst_ip NBS Shim6 hash(src_name) hash(dst_name) src_name dst_name src_loc dst_loc hash(src_name) hash(dst_name) After shim6 state establishment Tsinghua University
Modified State Machine Original Shim6 State Machine Modified Shim6 State Machine Tsinghua University
Mobile NBS – Basic Scenario Correspondent Host (B) Name: www.corres-host.com IP: 59.72.38.236 59.72.38.1 DNS ⑥ AR3 ③ ⑦ ② 166.111.1.1 202.111.2.1 AR1 AR2 DNS ⑤ ① ⑥ ④ Mobile Node (A) Name: www.mobile-node.com IP: 166.111.3.4 Mobile Node (A) Name: www.mobile-node.com IP: 202.111.2.3 Tsinghua University
Mobile NBS – Concurrent Move ④ ③ A ① ③ ⑤ ② DNS AR2 AR4 ⑥ AR3 AR1 ⑤ ③ ② ④ ③ ① Tsinghua University B
Implementation & Evaluation Tsinghua University
Performance Throughput graph during movement Handover time for different IEEE 802.11b cards Tsinghua University
DNS Delay • Bernhard Age et al studies various DNS resolvers around • the world and found that there • are only less than 1\% of the • cases for which DNS resolvers • take more that 100ms to answer • Concurrent move is not very • likely to occur • Thus DNS delay won’t be a • problem in practice Tsinghua University
Summary Propose and implement name-based sockets as a socket-API abstraction so that an application developer may use names instead of IP-addresses. improve Shim6 and integrate it with name-based sockets to provide mobility functionality. Evaluate the performance of the proposed mechanism using a real testbed. Tsinghua University
Questions? Tsinghua University