Restructered pre-import
This commit is contained in:
+83
@@ -0,0 +1,83 @@
|
||||
# Assumptions
|
||||
|
||||
- There is at least one mesh node.
|
||||
- Meshes are not built through collusion, i.e., each person setting up a
|
||||
node does not do so knowing that others are as well.
|
||||
- Mesh nodes are able to broadcast the existence of services they run
|
||||
("I run a microblog!")
|
||||
- Services can be activated on a node (implying that their presence will
|
||||
be announced) or deactivated (implying that their presence will not be
|
||||
announced)
|
||||
- Mesh nodes continually listen for announcements of services from
|
||||
neighboring mesh nodeds
|
||||
- Mesh nodes maintain directories of services running on neighboring
|
||||
mesh nodes
|
||||
- ...except when a service is designed to automatically federate with
|
||||
others of a like type (i.e., announcements of content from one will
|
||||
automatically be incorporated into cached announcements on the node)
|
||||
- Clients neither broadcast nor listen for service announcements
|
||||
- Smartphones
|
||||
- MP3 players
|
||||
- Computers not running Byzantium
|
||||
|
||||
# Existing protocols
|
||||
|
||||
- Avahi/ZeroConf/mDNS
|
||||
- Included in Porteus Linux
|
||||
- Host can publish running services
|
||||
- Host can be informed of services running on other hosts
|
||||
- User does not have to specifically configure any of this
|
||||
- Host admins may have to configure this
|
||||
- Bindings for multiple languages are available
|
||||
- Protocol in a nutshell:
|
||||
- Ad-hoc DHS over IP multicast (224.0.0.251, port 5353/UDP)
|
||||
- Each node has a resource record for each service
|
||||
- SRV
|
||||
- TXT
|
||||
- PTR
|
||||
- Types documented in /usr/share/avahi/service-types on
|
||||
Windbringer. File is part of Avahi on all systems.
|
||||
- HAS NOTHING TO DO WITH dnsmasq!
|
||||
- Resolution is done by the host running an Avahi implementation -
|
||||
broadcast a resolution request to the multicast domain and listen
|
||||
for a response
|
||||
- Node needs to have its hostname set (machinename.local)
|
||||
- Ignores point-to-point links by default. Add
|
||||
"allow-point-to-point=yes" in avahi-daemon.conf
|
||||
- Do mesh interfaces have the POINTTOPOINT flag?
|
||||
- wide-area functionality seems relevant to a mesh.
|
||||
- deny-interfaces=eth0 in avahi-daemon.conf may be necessary to
|
||||
prevent mDNS traffic from going over gateways.
|
||||
- avahi-daemon implements service announcement and listening, and
|
||||
interfaces with Avahi-enabled client apps.
|
||||
- avahi-dnsconfd connects to avahi-daemon and keeps track of unicast
|
||||
DNSes detected.
|
||||
- Read manage for avahi-daemon.conf!
|
||||
- Will need an /etc/avahi/services/foo.service XML file for each
|
||||
service offered by a node.
|
||||
- Manpage avahi.service(5) documents all required XML tags.
|
||||
- Each mesh node will have a list of all mesh nodes it's heard from in
|
||||
recent memory. This can be used to build the directory of
|
||||
neighboring services.
|
||||
|
||||
<!-- -->
|
||||
|
||||
- XMPP service discovery
|
||||
- Message oriented, based on XML
|
||||
- Jabber's protocol.
|
||||
- [XEP-0030](http://xmpp.org/extensions/xep-0030.html)
|
||||
- Used for discovering other XMPP entities/services implemented by
|
||||
XMPP servers.
|
||||
- Could be used for discovering and federating apps running on other
|
||||
nodes (i.e., distributed microblog).
|
||||
|
||||
# Notes
|
||||
|
||||
- KDE comes with something called Personal File Server, which allows
|
||||
arbitrary directories to be made available over HTTP(S?). It's
|
||||
Avahi-enabled. KDE is packagedwith Porteus. There's our file dump.
|
||||
- avahi-bookmarks allows the user to access HTTP resources with a web
|
||||
browser.
|
||||
- nss-mdns should be enabled in /etc/nssswitch.conf.
|
||||
|
||||
[Category:Byzantium](Category:Byzantium "wikilink")
|
||||
Reference in New Issue
Block a user