Bonjour/Zeroconf Project

People

Gunho Lee and Junda Liu

Reason

The mobile nature of cellphones makes fixed or server-based network configuration unnecessary and difficult.

What is Bonjour/Zeroconf?

From wikipedia: Zeroconf or Zero Configuration Networking is a set of techniques that automatically create a usable IP network without configuration or special servers. In short:

  • IP allocating without DHCP server
  • Naming resolution without DNS server
  • Service publishing/discovery without directory server

Bonjour (formerly Rendezvous)is Apple's version.

How?

Major Implementations

From wikipedia:

Apple Bonjour

The most widely adopted Zeroconf solution is Bonjour (formerly Rendezvous) from Apple Inc., which uses multicast DNS and DNS Service Discovery. Apple changed its preferred Zeroconf technology from SLP to mDNS and DNS-SD between Mac OS 10.1 and 10.2, though SLP continues to be supported by Mac OS. Apple's mDNSResponder has interfaces for C and Java[9] and is available on BSD, Mac OS X, Linux, other POSIX based operating systems and Windows. The Windows downloads are available from Apple's website.

Avahi

Avahi is a Zeroconf implementation for Linux and BSDs. It implements IPv4LL, mDNS and DNS-SD. It is part of most Linux distributions, and is installed by default on some. If run in conjunction with nss-mdns it also offers host name resolution. Avahi also implements binary compatibility libraries that emulate Bonjour and the historic mDNS implementation Howl, so software made to use those implementations can also utilize Avahi through the emulation interfaces.

Avahi on maemo

Canola claims to support avahi, but unfortunately it is NOT open source. We also have problem in installing canola on N800.

Get the source code

Stable Release

Avahi is available from

http://avahi.org/download/

The latest version is 0.6.22

Release announcement is available here

http://avahi.org/browser/trunk/docs/NEWS?format=raw

Development

Hourly Snapshots of avahi and libdaemon from SVN:

http://0pointer.de/public/libdaemon-snapshot.tar.gz

http://0pointer.de/public/avahi-snapshot.tar.gz

You can checkout the current development code using Subversion:

svn checkout svn://svn.0pointer.de/avahi/trunk avahi

Requirement

From Avahi wiki:

  • expat
  • libdaemon
  • Linux 2.4 or 2.6 with IP multicasting enabled, NetBSD, FreeBSD or Darwin/MacOSX
  • glib2 (optional)
  • DBUS 0.3x or newer (optional, for IPC with client applications)
  • gtk2 + glade2 (optional, for the GUI avahi-discover-standalone tool)
  • Qt 3 (optional)
  • Qt 4 Core (optional)
  • doxygen (optional, for the API documentation)
  • Python2.4, pygtk2 (optional, for some client tools)
  • python-twisted (optional, for the tool avahi-bookmarks)
  • Mono (optional, for the C# bindings)
  • libcap (optional, for chroot() support on linux)
  • gdbm (optional, for the service type database)

Compile

Avahi has very good documentation, just download the source and follow the instructions. Remember to disable unusable options.

Develop

Architecture overview

Bindings

Web resources

 
shortproject/bonjour.txt · Last modified: 2008/03/18 08:42 by jdliu
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki