1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

23
1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav

Transcript of 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

Page 1: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

1

A Tetherless Computing Architecture

Darcy Kroeker

S. Keshav

Page 2: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

2

Background – Routing in Time-Varying Networks

This network is partitioned into disconnected components Routing from A to B is impossible But… routing from A toward B is possible when components collide … even if A and B are never connected So… make sure the components collide once in a while

AA B

This requires a store-and-forward delivery mechanism similar to mail and e-mail.

Page 3: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

3

Where Is This Important?Mars

Mars RoverMars

Base Station

MarsSatellite

EarthSatellite

EarthBase Station

Page 4: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

4

Where Is This Important?Developing Regions

Challenges: Infrastructure is unreliable (eg. electricity, connectivity) Communication and access to Internet is poor in rural areas Costs must be very low to be affordable

Idea: Use buses as “data mules” to ferry data between disconnected networks Data hops on the bus, hops off again closer to destination We trade communication response time for low cost, by using mechanical backhaul (bus) for

remote links

Key Applications E-mail with attachments Offline web browsing

Page 5: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

5

DTN – Remaining Problems

Routing DTN reference implementation includes three routing algorithms:

Static: uses static (manually configured) routing tables Flood Link State

We need a dynamic routing protocol that supports a high degree of node mobility.

Node Mobility Nodes drop out and re-appear in a different place in the network! How to notify other nodes of the new location? How to re-direct any bundles already in transit to the old location?

Our Tetherless Computing Architecture (TCA) addresses these problems

DTNRG goes a long way toward a solution, but from our perspective there are a few remaining problems:

Page 6: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

6

TCA OverviewNode Types All nodes run the TCA Protocol There are three types of nodes:

Mobile: a leaf node (an end-user device typically, such as a phone, laptop, or PC) Router: forwards data between nodes Gateway: a special type of Router with a permanent connection to Internet

Village Kiosk(Router)

Bus(Router)

Phone(Mobile)

Bus Terminal(Gateway)

Page 7: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

7

TCA OverviewRegions A collections of nodes sharing a single gateway forms a Region A Region is a disconnected network in general

Village Kiosk(Router)

Bus(Router)

Phone(Mobile) Bus Terminal

(Gateway)

Region

Page 8: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

8

TCA OverviewA Higher-Level View : Many Regions Unlike Regions, the Internet is usually available and connected Gateways are the points at which the Regions connect to the Internet A Region is associated with the gateway that serves it TCA uses the Internet to host a Registry containing the current location (Region) of

each node

Region ARegion A

Region BRegion B

Region CRegion C

Gateway A

Gateway BGateway C

Internet

Registry

Page 9: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

9

TCA Protocol Stack

The TCA Protocols deal with: Registering a mobile node in the network Routing bundles addressed to a mobile node Route discovery

Convergence Layer

Bundle Layer

Application Layer

TCP UDP …

DTN

TCA

TCA Protocol Implementation: Mostly implemented at the Application Layer Uses the services of the DTN Bundle Layer

Before discussing the protocols, some background on naming and addressing….

Page 10: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

10

TCA Naming and Addressing

Naming in DTN The naming scheme in DTN is borrowed from existing Internet standards Names are URIs, of the form <scheme name>:<scheme-specific part, or ssp> The <scheme name> specifies the format and meaning of the <ssp> Each “endpoint” in DTN (an application-level source or sink of bundles) has a URI “Endpoint ID”

Example: dtn://blackice.uwaterloo.ca

Naming in TCA TCA defines a custom scheme named “tca” TCA Endpoint ID’s are of the form: tca://<host>/<app> where

<host> is a GUID (globally unique identifier) of the node (analogous to <ip address> in TCP) <app> is the identifier of an application on that node (analogous to <port> in TCP)

Example: tca://blackice/app

These names are just identifiers, not sufficient information to actually contact a node.

Page 11: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

11

Addresses In addition to its name, each node has an address at which it may be contacted This address is tied to a particular convergence layer (eg. tcp) This address is again expressed as a URI:

Example: tcp://5.6.7.8:5000

A route (or a single hop thereof) can be expressed as a mapping from name to address

TCA Naming and Addressing Contd.

tca://blackice/app tcp://5.6.7.8:5000

name address

Unlike in TCP/IP, in TCA it is not necessary (or even useful) for addresses to be known globally. Only a node’s nearest neighbors – its direct contacts – need to know its address.

For example:

means: to send a bundle to the endpoint named tca://blackice/app, send it using thetcp concvergence layer, to the TCP/IP address 5.6.7.8 port 5000.

Page 12: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

12

TCA Late-Bound Bundles

Region ARegion A

Region BRegion B

Region CRegion C

tca://gwaaddr: 1.2.3.4:5

Tca://gwbtca://gwc

Internet

Registrytca://blackice

tca://hail

tca://hurricane

tca://windstorm

Example: hail sends bundle to blackice bundle is forwarded up the default route to hail’s gateway hail’s gateway looks up blackice’s gateway in the Registry and send bundle blackice’s gateway forwards the bundle to blackice along known route

tca://blackice > 1.2.3.4:5

Page 13: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

13

Details:

Each node knows the address of the next hop router toward its gateway. This is its default route used for all bundles addressed to unknown endpoints.

This enables routing from hail in Region C toward gateway C.

Each node knows the address of the previous hop router toward any router that has previously registered with it. (registration to be discussed later).

This enables routing from gateway A to blackice in region A, assuming blackice has previously registered in region A.

Implementation Notes: The Registry is implemented as a Distributed Hash Table (using OpenDHT). The Registry contains the SHA1 hash of an endpoint id, not the endpoint id itself.

TCA Late-Bound Bundles Contd.

Page 14: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

14

TCA Registration

Region ARegion A

Region BRegion B

Region CRegion C

tca://gwaaddr: 1.2.3.4:5

tca://gwbtca://gwc

Internet

Registrytca://blackice

tca://hail

tca://hurricane

tca://windstorm

Example: blackice registers blackice sends a special registration bundle up the default route the “reverse path” is constructed along the way gateway updates the Registry with blackice’s new location if a previous registration for blackice existed, gateway initiates a change-of-address

tca://blackice > 1.2.3.4:5

Page 15: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

15

Details: The register bundle is forwarded up the default route. Each node along the way modifies the register bundle, adding its address as

last_hop Each node along the way adds the route back to the mobile to its routing table, using

the last_hop address Gateway C checks the Registry to see if blackice has previously registered in a

different region, deleting the previous entry if any. In either case, Gateway C adds the new Registry entry for blackice, specifying its own

address as blackice’s gateway. If blackice had previously registered in another region, Region B, Gateway C sends a

“change of address” bundle (COA) to Gateway B. Gateway B forwards the COA toward blackice’s previous location using the reverse

path. At each hop along the reverse path, the node destroys its route table entry for

blackice after forwarding the COA.

Implementation Notes: No race condition! If a bundle is in-flight to a route undergoing destruction, it becomes

a regular unbound bundle at some point. Thereafter, the right thing happens. Registration bundles are sent to the special endpoint id tca://registry

TCA Registration Contd.

Page 16: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

16

Motive Most infrastructure nodes (“permanent” Routers and Gateways) will have their route

tables configured manually on setup. Mobiles (and perhaps some Routers) need to choose routes dynamically, based on

their current location

Details Similar to DHCP Node A detects a new link. eg. potential neighbour node B at tcp://5.6.7.8:5000 Node A probes the DTN port on this link by sending an ASK bundle If B is a TCA router, it responds with an ADV bundle ADV contains B’s eid, and the eid of its reachable gateway In future, ADV could contain additional info (link schedule, capacity, etc.) Node A can now decide whether to add a permanent route to B … and if so, whether to make this route its default route.

TCA Route Discovery

Page 17: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

17

TCA Protocol Implementation

Convergence Layer

Bundle Layer

TCA Controller

TCP …

DTN

TCA

TCA Control logic is implemented outside DTN for greater separation of concerns TCA Controller runs as an ordinary DTN client application All Control messages are sent as bundles through the ordinary DTN API Inter-Node Control bundles are sent to the eid of the destination Controller Inter-Layer Control bundles are sent to a special eid tca://localhost/bundlelayer

Convergence Layer

Bundle Layer

TCA Controller

TCP …

Convergence Layer

Bundle Layer

TCA Controller

TCP …

register(eid)

mobile router gatewayregister(eid) register(eid)

Page 18: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

18

TCA Control Bundles

Cross-Calls (Inter-Node)src = tca://<host_eid>/admindest = tca://<host_eid>/admin

register(mobile_eid, link_spec)coa(mobile_eid, gateway_link_spec)ask(link_spec)adv(link_spec, adv_str)

Down-Calls (Inter-Layer)src = tca://<host_eid>/admindest = tca://localhost/bundlelayer

add_route(pattern, link_spec)del_routes(pattern)get_routes(pattern)

Up-Calls (Inter-Layer)src = tca://localhost/bundlelayerdest = tca://<host_eid>/admin

ask_sentadv_sentcoa_sentcontact_downcontact_uplink_availablelink_unavailablereg_received(mobile_eid, link_spec)routes(route_list)unb_received(eid)

Complete Control API documentation: http://www.mindstream.watsmore.net/wiki/index.php?title=TCA_Source

Page 19: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

19

ASK Protocol – Sequence Diagram

Src Controller Src BL

add_route

ask

Dest BL Dest Controller

ask

ask_sent

del_route

ask_received

add_route

adv

adv

adv_sent

del_route

adv

Page 20: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

20

REGISTER Protocol – Sequence Diagram

Controller BL Controller BL Controller BL

Mobile Router Gateway

App

register(mobile_eid, NULL)

reg_received

register(mobile_eid, link_spec)

register(mobile_eid, link_spec)

reg_received

register(mobile_eid, link_spec)

register(mobile_eid, link_spec)

reg_received

Page 21: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

21

Layering TCA Control over Bundle Layer Q: Is it the “right” separation of concerns? Q: What functionality belongs in each layer? Q: One process or two? Q: Even if “right”, is it worth the trouble? A: No clear answer. Similar to question of which parts of a protocol stack belong in

kernel, and which in user-level code.

TCA Design Controversy

Inter-Layer Communication as Bundles Q: Is this a good idea? A: Similar to the question of control-over-data channel versus separate control

channel. We have opted for control-over-data channel.

Page 22: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

22

We have a concrete application driving all future work:Government services offered through kiosks in rural India

Plan to use a bus and kiosk network, running TCA protocols

Topics of Current Research Mutual Authentication (Bus-Kiosk, Kiosk-User) More advanced routing protocols using multiple routes:

Multiple buses with different schedules, destinations, gateways Flow control – utilizing finite bus capacity:

Maximize fairness Maximize throughput

Mixed-media communications Cheap, high-capacity bus (but slow!) Expensive, low-capacity cell network (but always available!) OCMP uses policy definitions to send data using most suitable medium

Future Work

Page 23: 1 A Tetherless Computing Architecture Darcy Kroeker S. Keshav.

23

1. TCA solves two of the problems with DTN: Node mobility Routing in a changing network

2. The Control API provides an extension point for future work

3. We hope our approach has applications of social importance in developing regions

Conclusion