4. my iPhone
The Problem
Device-device connectivity is
pretty broken right now due to
middleboxes at the edges of
the internet
my machine here at
the lab
5. Existing Solutions
Technical Centralised & 3rd Party
- Dynamic DNS - Skype & Google talk
- Port Forwarding - Dropbox, Google Drive,
- uPnP Ubuntu One
- STUN - iCloud
- VPN - Remote Desktop
- Iodine Software e.g. LogMeIn
- NAT Punching - Email
- Rendezvous - Facebook, Twitter
- HTTP/SMTP proxy
Although you can fix this with a range of tools, it's very fiddly and
complex to do so or the solutions are platform specific
6. ... and the Signpost Solution
Signposts turn these technical
solutions into tactics, it
automates and manages the
range of tactics to bring back
this end-to-end dream
It's a framework to manage the
maze of tactics so it's highly
extensible
Signposts point devices in
the right direction to find
each other
7. Signposts' View of the World
desktop.heidi.signpost.io
Heidi's Signpost Server workmachine.heidi.signpost.io
dark edge of dark edge of
internet internet
Internet
dark edge of
internet
Now my devices all have
their own domain names
which they can use to refer
to each other
iphone.heidi.signpost.io
8. Signposts' View of the World
Heidi's Signpost
Server workmachine.heidi.signpost.io
desktop.heidi.signpost.io Anil's Signpost
Server
tablet.anil.signpost.io
dark edge dark edge
of internet of internet
Internet
mac.anil.signpost.io
dark edge
dark edge
of internet
of internet
iphone.heidi.signpost.io desktop.anil.signpost.io
laptop.heidi.signpost.io
iphone.anil.signpost.io
9. Abstract away the internet edge
laptop
laptop
jon.signpost.io
iphone
heidi.signpost.io
iphone
desktop
anil.signpost.io
mac
Empower individuals to create their
“own personal cloud” and regain
desktop
control of their digital footprint iphone
10. Your Personal Signpost Server
● Each virtual personal cloud has a Signpost server,
this has a public IP address
● It maintains up-to date information on the
whereabouts of all the devices in the user's personal
cloud
● It has a set of policies which control sharing with other
Signposts' users
● There is a persistent connection between the
Signpost server and all devices in the user's cloud
● Whenever a device in the user's cloud moves location
or network, the Signpost server is notified
11. Making connections
Heidi's Signpost Server
desktop.heidi.signpost.io
workmachine.heidi.signpost.io
● The device that wants to initiate the connection
performs an "effectful" DNS lookup of the domain name
of the other device
● This DNS lookup is destined for the Signpost server of
the other device's owner
● When the Signpost server receives this query, it creates
a path between the devices and returns an IP address
● The two devices are now happily connected
12. Goal Of Tactics
To create a satisfactory connection between two end nodes
that meets the user's requirements.
Possible requirements include:
● Authentication
● Encryption
● Bi-directionality
● Anonymity
● Bypassing firewalls
Signposts can also allow for constraints, such as battery
life, and price of network connections
13. Example - Syncing Directories
My work machine
My home machine
Box
NAT
Firewall
16. The Project Home
Signposts is part of the OCaml Labs Project
www.cl.cam.ac.uk/projects/ocamllabs/
Signposts is Open Source & hosted on GitHub
www.github.com/crotsos/signpostd
Some of the Signposts' team that I would like to thank and probably embarrass