[[TOC(Other/Summer/2017*, depth=4)]]
= Mobility First : Multihoming Extension =
----
== Introduction ==
=== Mobility First ===
[http://www.orbit-lab.org/wiki/Tutorials#MobilityFirstTutorials MobilityFirst] (MF) is an emerging proposal for the new standard of the 5G networking! Mobility first takes a new approach to the Internet by focusing on increasingly dominating communications of mobile devices. The new architecture will pave the ground for a variety of new features including improved scalability, robust wireless signals, enhanced security, a context-sensitive network among other goodies. More information about MobilityFirst can be found on their ([http://mobilityfirst.winlab.rutgers.edu/ website]). A brief introduction of the relevant concepts are summarized below.
{{{
#!html
}}}
''This diagram illustrates a projection with increased dominance of mobile devices present in the network. Gone is the dominance of the server-client model - awaken mobile devices!''
The old TCP/IP model worked great with servers and desktops that staid put for most of the time. A desktop computers' identity is closely attached to its network address. With MF, identities of machines (ID) are separated from their network address (NA). Instead of using static IPs to identify machines, all devices now have '''Dynamic''' Name Address Bindings. These bindings are called Global Unique Identifiers (GUID). In such a way, a group a devices owned by a single user can share the same GUID. Hence, all machines must go through a '''Global Name Resolution Service''' (GNRS) which indicates the routing needed to reach said address. The GNRS uses a Distributed Hash Table (DHT) to store routing information in a loosely decentralized way. Unlike the current routing methods of DNS, GNRS stores tons of metadata within the network to make ''context-dependent'' situations. Some examples include performing multihoming or allow for geolocation.
=== Multihoming ===
Multihoming is a concept that allows for a single device to use multiple interfaces at once. In practice, this means using different physical networks. This is useful for smart phones with two radios that can communicate with wifi and LTE signals simultaneously. Current devices only support the automatice switching between interfaces which is slow (takes a second to restart) and *not* multihoming.
\\
{{{
#!html
}}}
''Here is an illustration of what multihoming in practice!''
== Mission ==
Our goal is to implement multihoming in the MF framework and create improvements to the the efficient division of work between hosts as well as proper lead balancing throughout the network said data is routed through.
== Implementation ==
Our project used the [http://www.orbit-lab.org/wiki orbit nodes]. We used several nodes on [http://www.orbit-lab.org/wiki/Hardware/bDomains/cSandboxes/dSB4#SB4 sandbox4] to create a topology of our own. The client and server endpoints were equipped with several network interfaces that supported two ethernet connections, one wifi/wimax card. Additional [http://www.orbit-lab.org/wiki/Tutorials/g0WmLTE/Tutorial3#BasicLTETutorial usb dongles] can provide connectivity to the LTE base stations also available in sb4. The intermediate routers ran on CLICK-based software which turned the nodes into live routers. The endpoints ran on a custom stack for the MF network and an additional node was used for the GNRS server which was connected to all nodes.
Bifurcation was performed by adjusting the router code to divide the chunks of data into two streams and forwarding these packets along different routes. Different routing policies are built into the system that adjust the ratio of data based on link quality and path length. A study done on the performance of this round robin routing showed that this technique can actually impede performance when the connection quality vary too much. TODO: add citation
{{{
#!html
}}}
== Results ==
TODO: Elaborate + screenshots
We have successfully conducted multihoming by adjusting the router code on the bifurcation end. We were able to use the {{{sender}}} and {{{receiver}}}.
== Presentations ==
You can view our weekly presentations in the presentations below:
* [https://drive.google.com/open?id=0BzAYx2Yq67CeWXpFOXZVQ1N1OTQ Week 1]
* [https://docs.google.com/presentation/d/1JSTJZacLzUO7vRiQtxRMsJMtoVGD11_XK-il9fc3QrQ/edit?usp=sharing Week 2]
* [https://drive.google.com/open?id=14tqKGW5R_oUw710NFpQHuQNo5D3uJQl5hPHIKYDqVDg Week 3]
* [https://drive.google.com/open?id=1kbNRPVnLNxd_PjmlfCI2JHXxNTMzHxD-m9czliMfriE Week 4]
* [https://drive.google.com/open?id=1QTqSmtJGI7TSSA2t8LAAF3OjBkK3MthyGUY17su1Uqo Week 5]
* [https://drive.google.com/open?id=1Ek0N4U7zfrpU0UXzaLvw1TmPjWc2zwtZnwtV7GpTH70 Week 6]
* [https://drive.google.com/open?id=1T6qA-O-YjnJ4gMxJMKcV51b9p2rvI9fDNxlpXSS5lic Week 7]
* [https://drive.google.com/open?id=0B8CZndxqhU4YM3NSVnl2a2dRSlk Week 8]
* [https://drive.google.com/open?id=0B8CZndxqhU4YM3NSVnl2a2dRSlk Week 9]
* [https://drive.google.com/open?id=1Apn6SwxNxNf5EOPRrimLwtSbthpdzbjhyyysiHSxOJI Week 10]
* [https://drive.google.com/open?id=1LCZh_6pYkY70EAV456ahZw50ht9mKmNNUPOl2LOLOZA Week 11]
* [https://drive.google.com/open?id=0B8CZndxqhU4YZ3N6NjI3WlFJU28 Final Presentation (short)]
== People ==
{{{
#!html
|
|
Brian Qiu Electrical and Computer Engineering
Rutgers University |
Ramya Tadepalli Electrical and Computer Engineering
Rutgers University |
Project guided by Ivan Seskar & Dipankar Raychaudhuri
With thanks to WINLAB Staff and Faculty for hosting the 2017 Intern Program program for which the project would not exist without.
}}}
= External References =
* [http://mobilityfirst.winlab.rutgers.edu/ Mobility First Project Hompage]
* [http://mobilityfirst.orbit-lab.org/wiki/Proto MobilityFirst Prototype Documentation]
* S. Mukherjee, A. Baid, I. Seskar, D. Raychaudhuri, "Network-Assisted Multihoming in the MobilityFirst Future Internet Architecture", In Proceedings of IEEE PIMRC 2014 [http://mobilityfirst.winlab.rutgers.edu/Resources.html PDF]