Bonjour (software)

Last updated
Bonjour
Other names
  • mDNSResponder
  • Rendezvous
Developer(s) Apple Inc.
Initial releaseAugust 2002;21 years ago (2002-08)
Stable release
1790.40.31 / November 1, 2022;13 months ago (2022-11-01)
Repository
Operating system macOS, Windows, Linux, *BSD, iOS
Type Zero-configuration networking
License Apple Inc.Proprietary Freeware; portions under the Apache license
Website developer.apple.com/bonjour/ OOjs UI icon edit-ltr-progressive.svg

Bonjour is Apple's implementation of zero-configuration networking (zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as printers, other computers, and the services that those devices offer on a local network using multicast Domain Name System (mDNS) service records.

Contents

The software comes built-in with Apple's macOS and iOS operating systems. Bonjour can also be installed onto computers running Microsoft Windows. Bonjour components may also be included within other software such as iTunes and Safari.

It was originally introduced in 2002 with Mac OS X 10.2 with the name Rendezvous. It was renamed in 2005 to Bonjour following an out-of-court trademark dispute settlement. [1] [2]

Overview

Bonjour provides a general method to discover services on a local area network. The software is widely used throughout macOS, and allows users to set up a network without any configuration. As of 2010 it is used to find printers and file-sharing servers.

Notable applications using Bonjour include:

Software such as Bonjour Browser or iStumbler, both for macOS, can be used to view all services declared by these applications. Apple's "Remote" application for iPhone and iPod Touch also uses Bonjour to establish connection to iTunes libraries via Wi-Fi. [3]

Bonjour only works within a single broadcast domain, which is usually a small area, without special DNS configuration. macOS, Bonjour for Windows and AirPort Base Stations may be configured to use Wide Area Bonjour which allows for wide area service discovery via an appropriately configured DNS server.

Applications generally implement Bonjour services using standard TCP/IP calls, rather than in the operating system. Although macOS provides various Bonjour services, Bonjour also works on other operating systems. Apple has made the source code of the Bonjour multicast DNS responder, the core component of service discovery, available as a Darwin open source project. The project provides source code to build the responder daemon for a wide range of platforms, including Mac OS 9, macOS, Linux, *BSD, Solaris, VxWorks, and Windows. Apple also provides a user-installable set of services called Bonjour for Windows and Java libraries.

Licensing

Bonjour is released under a terms-of-limited-use license by Apple. It is freeware for clients, though developers and software companies who wish to redistribute it as part of a software package or use the Bonjour logo may need a licensing agreement. The source code for mDNSResponder is available under the Apache License. [4]

Naming

Apple originally introduced the Bonjour software in August 2002 as part of Mac OS X 10.2 under the name "Rendezvous". On August 27, 2003 Tibco Software Inc announced that it had filed a lawsuit for trademark infringement. [5] Tibco had an enterprise application integration product called TIBCO Rendezvous on the market since 1994 and stated that it had tried to come to an agreement with Apple Computer. In July 2004 Apple Computer and Tibco reached an out-of-court settlement; [6] specifics of the settlement were not released to the public. On April 12, 2005, Apple announced the renaming of Rendezvous to "Bonjour". [1]

The current name Bonjour is French for the morning or afternoon greeting, "good day". The previous name Rendezvous is French for "meeting", "appointment" or "date". [7]

Other implementations

Bonjour version 2.0, released on February 24, 2010, works with Microsoft Windows 2000, 2003, XP, Vista, 7, 8, 8.1, 10, and 11. [8] Systems use it primarily to facilitate the installation, configuration, and use of network printers, and thus it runs from startup. When Bonjour is fully implemented on Windows, some features—such as iChat—allow for communication between Windows and Mac OS. Bonjour for Windows also adds zeroconf capabilities to Internet Explorer, and provides a zeroconf implementation to Java VMs. [8] [9]

Some third-party applications, such as Adobe's Photoshop CS3 suite, [10] also come bundled with Bonjour to take advantage of zeroconf technology.

Installers on Windows systems normally place Bonjour files in a folder called "Bonjour" within the "Program Files" folder. It modifies Windows system-registry entries related to internal network configuration and operation. Bonjour runs as mDNSResponder.exe. Communications across the network take place over UDP port 5353, which may require reconfiguring some personal or corporate firewalls that block Bonjour packets. A full installation of Bonjour for Windows will include a plug-in for Internet Explorer, a printer wizard, and the network communication services. Not all components are included when installed as part of a third-party application or as a component of other Apple software such as iTunes.

Some VPN clients are configured so that local network services are unavailable to a computer when VPN software is active and connected. [8] In such a case no local zeroconf services are available to Bonjour or any other zeroconf implementation.

In September 2008, two security vulnerabilities were found in Bonjour for Windows. [11] Certain installations of Bonjour for Windows lack an uninstaller and do not display a human-readable entry in the Windows services listing. [12]

In 32- and 64-bit releases of Windows 7, some older but still available versions of Bonjour services can disable all network connectivity by adding an entry of 0.0.0.0 as the default gateway. This was a bug reported in 2013. [13]

The open-source IM clients Pidgin, Kopete and Adium support the Bonjour IM protocol, as does the closed-source Trillian client.

Browsers

A number of browsers allow an end-user to graphically explore the devices found using Bonjour.

Discovery / Bonjour Browser

Discovery is a Creative Commons-licensed macOS application that displays all services declared using Bonjour. The program was originally called Rendezvous Browser, but changed its name in version 1.5.4 after Apple changed the protocol's name to Bonjour; since version 2.0, it has been renamed again, to Discovery. For certain protocols, double-clicking a list item will launch the associated helper. Version 1.5.6 was the first universal binary release.

Future versions will allow users to completely define a service, instead of relying on the author to do so.

Bonjour Browser was recommended for service discovery in MacAddict #123.

Discovery is available on the Apple App Store. [14]

JBonjourBrowser

A student research project at Columbia University produced a Java-based system to match the functionality of Bonjour Browser, called JBonjourBrowser. JBonjourBrowser is open-source and available under the GPL.

JBonjourBrowser was built to emulate the functionality of Bonjour Browser, and at the same time work on multiple platforms. It requires Apple's Bonjour Java library to run.

Bonjour Browser for Windows

A native Windows application offers similar functions to Bonjour Browser for Mac OS. Bonjour Browser for Windows is offered for free by Hobbyist Software and HandyDev Software.

mDNSBrowser

A commercial implementation called mDNSBrowser is offered by Netputing Systems Inc.

See also

Related Research Articles

AppleTalk is a discontinued proprietary suite of networking protocols developed by Apple Computer for their Macintosh computers. AppleTalk includes a number of features that allow local area networks to be connected with no prior setup or the need for a centralized router or server of any sort. Connected AppleTalk-equipped systems automatically assign addresses, update the distributed namespace, and configure any required inter-networking routing.

<span class="mw-page-title-main">Mac OS X Server</span> Server software for macOS

Mac OS X Server is a series of discontinued Unix-like server operating systems developed by Apple Inc. based on macOS. It provided server functionality and system administration tools, and tools to manage both macOS-based computers and iOS-based devices, network services such as a mail transfer agent, AFP and SMB servers, an LDAP server, and a domain name server, as well as server applications including a Web server, database, and calendar server.

The Simple Service Discovery Protocol (SSDP) is a network protocol based on the Internet protocol suite for advertisement and discovery of network services and presence information. It accomplishes this without assistance of server-based configuration mechanisms, such as Dynamic Host Configuration Protocol (DHCP) or Domain Name System (DNS), and without special static configuration of a network host. SSDP is the basis of the discovery protocol of Universal Plug and Play (UPnP) and is intended for use in residential or small office environments. It was formally described in an IETF Internet Draft by Microsoft and Hewlett-Packard in 1999. Although the IETF proposal has since expired, SSDP was incorporated into the UPnP protocol stack, and a description of the final implementation is included in UPnP standards documents.

iChat Built-in instant messaging software application for Mac OS X

iChat is a discontinued instant messaging software application developed by Apple Inc. for use on its Mac OS X operating system. It supported instant text messaging over XMPP/Jingle or OSCAR (AIM) protocol, audio and video calling, and screen-sharing capabilities. It also allowed for local network discussion with users discovered through Bonjour protocols.

Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require manual operator intervention or special configuration servers. Without zeroconf, a network administrator must set up network services, such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS), or configure each computer's network settings manually.

The Service Location Protocol is a service discovery protocol that allows computers and other devices to find services in a local area network without prior configuration. SLP has been designed to scale from small, unmanaged networks to large enterprise networks. It has been defined in RFC 2608 and RFC 3224 as standards track document.

The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is a proprietary network protocol, and part of the Apple File Service (AFS), that offers file services for macOS, classic Mac OS, and Apple II computers. In OS X 10.8 Mountain Lion and earlier, AFP was the primary protocol for file services. Starting with OS X 10.9 Mavericks, Server Message Block (SMB) was made the primary file sharing protocol, with the ability to run an AFP server removed later in macOS 11 Big Sur. AFP supports Unicode file names, POSIX and access-control list permissions, resource forks, named extended attributes, and advanced file locking.

The Web Proxy Auto-Discovery (WPAD) Protocol is a method used by clients to locate the URL of a configuration file using DHCP and/or DNS discovery methods. Once detection and download of the configuration file is complete, it can be executed to determine the proxy for a specified URL.

<span class="mw-page-title-main">Avahi (software)</span> Zero-configuration networking (zeroconf) implementation

Avahi is a free zero-configuration networking (zeroconf) implementation, including a system for multicast DNS/DNS-SD service discovery. It is licensed under the GNU Lesser General Public License (LGPL).

In computer networking, the multicast DNS (mDNS) protocol resolves hostnames to IP addresses within small networks that do not include a local name server. It is a zero-configuration service, using essentially the same programming interfaces, packet formats and operating semantics as unicast Domain Name System (DNS). It was designed to work as either a stand-alone protocol or compatibly with standard DNS servers. It uses IP multicast User Datagram Protocol (UDP) packets and is implemented by the Apple Bonjour and open-source Avahi software packages, included in most Linux distributions. Although the Windows 10 implementation was limited to discovering networked printers, subsequent releases resolved hostnames as well. mDNS can work in conjunction with DNS Service Discovery (DNS-SD), a companion zero-configuration networking technique specified separately in RFC 6763.

NetBoot was a technology from Apple which enabled Macs with capable firmware to boot from a network, rather than a local hard disk or optical disc drive. NetBoot is a derived work from the Bootstrap Protocol (BOOTP), and is similar in concept to the Preboot Execution Environment. The technology was announced as a part of the original version of Mac OS X Server at Macworld Expo on 5 January 1999. NetBoot has continued to be a core systems management technology for Apple, and has been adapted to support modern Mac Intel machines. NetBoot, USB, and FireWire are some of the external volume options for operating system re-install. NetBoot is not supported on newer Macs with T2 security chip or Apple silicon.

A LAN Messenger is an instant messaging program for computers designed for use within a single local area network (LAN).

Apple Open Directory is the LDAP directory service model implementation from Apple Inc. A directory service is software which stores and organizes information about a computer network's users and network resources and which allows network administrators to manage users' access to the resources.

The domain name .local is a special-use domain name reserved by the Internet Engineering Task Force (IETF) so that it may not be installed as a top-level domain in the Domain Name System (DNS) of the Internet. As such it is similar to the other special domain names, such as .localhost. However, .local has since been designated for use in link-local networking, in applications of multicast DNS (mDNS) and zero-configuration networking (zeroconf) so that DNS service may be established without local installations of conventional DNS infrastructure on local area networks.

Apple's Bonjour Sleep Proxy service is an open source component of zero-configuration networking, designed to assist in reducing power consumption of networked electronic devices.

<span class="mw-page-title-main">AirPrint</span> Feature by Apple

AirPrint is a feature in Apple Inc.'s macOS and iOS operating systems for printing without installing printer-specific drivers.

<span class="mw-page-title-main">Google Cloud Print</span> Remote printing service run by Google

Google Cloud Print was a Google service that allowed users to print from any Cloud Print-aware application on any device in the network cloud to any printer with native support for connecting to cloud print services – without Google having to create and maintain printing subsystems for all the hardware combinations of client devices and printers, and without the users having to install device drivers to the client, but with documents being fully transmitted to Google. Starting on July 23, 2013 it allowed printing from any Windows application, if Google Cloud Printer was installed on the machine.

RTP-MIDI is a protocol to transport MIDI messages within Real-time Transport Protocol (RTP) packets over Ethernet and WiFi networks. It is completely open and free, and is compatible both with LAN and WAN application fields. Compared to MIDI 1.0, RTP-MIDI includes new features like session management, device synchronization and detection of lost packets, with automatic regeneration of lost data. RTP-MIDI is compatible with real-time applications, and supports sample-accurate synchronization for each MIDI message.

Network Device Interface (NDI) is a software specification developed by the technology company NewTek that enables high-definition video to be delivered, received, and communicated over a computer network in a low-latency, high-quality manner. The specification is royalty-free and allows for frame accurate switching, making it suitable for use in live production environments.

References

  1. 1 2 Marc Krochmal (April 12, 2005). "Rendezvous is changing to..." rendezvous-dev mailing list. Apple Computer. Archived from the original on March 19, 2007. Retrieved October 11, 2006.
  2. "Apple to rename Rendezvous technology "Bonjour"". appleinsider.com. February 18, 2005. Retrieved March 14, 2015.
  3. "Android DACP Remote Control". Jeffrey Sharkey. Retrieved February 23, 2009.
  4. "mDNSResponder source code". Apple. Archived from the original on June 3, 2017. File 'LICENSE' within each mDNSResponder source code download.
  5. "TIBCO Software Inc. Sues Apple Computer, Inc. for Trademark Infringement" (Press release). TIBCO Software. August 27, 2003. Retrieved October 11, 2006.
  6. Daniel Drew Turner (July 22, 2004). "Apple Settles TIBCO Suit, Renames Rendezvous". eWeek . Retrieved October 11, 2006.[ permanent dead link ]
  7. "bonjour". merriam-webster.com. Retrieved July 28, 2010.
  8. 1 2 3 "Bonjour Downloads". Apple Inc. March 8, 2010. Retrieved March 8, 2010.
  9. Apple Inc. "Leopard Sneak Peek – iChat". Archived from the original on November 27, 2006. Retrieved November 28, 2006.
  10. "CS3 Doesn't Install Spyware". Adobe Systems. January 4, 2007. Retrieved February 7, 2009.
  11. "About the security content of Bonjour for Windows 1.0.5". Apple Inc. September 15, 2008. Retrieved May 27, 2009.
  12. "Completly[sic] Uninstall and Remove Bonjour Service and Files (mDNSResponder.exe, mdnsNSP.dll) for Windows". Amarjeet Rai. February 11, 2008. Retrieved July 5, 2009.
  13. "Windows 7 - Two default gateway 0.0.0.0". microsoft.com. Archived from the original on May 7, 2013. Retrieved April 22, 2012.
  14. Ballard, Lily. "Discovery – DNS-SD Browser". Apple. Retrieved May 26, 2020.
  15. "Mac OS X v10.6: About Wake on Demand (Apple Article HT3774)". Apple. August 27, 2009. Retrieved September 15, 2009. Setting up Wake on Demand", "Setting up a Bonjour Sleep Proxy