Wie begrüßen sich Apple-Geräte gegenseitig? - Ein interessanter Vortrag über das Bonjour-Protokoll

Wie begrüßen sich Apple-Geräte gegenseitig? - Ein interessanter Vortrag über das Bonjour-Protokoll

Schüler, die die gesamte Apple-Familie nutzen, haben sicherlich schon Erfahrungen mit der nahtlosen Verbindung mehrerer Geräte gemacht, beispielsweise mit dem Übertragen von Fotos und Dateien per AirDrop, der TV-Bildschirmprojektion per AirPlay, dem automatischen Teilen von Hotspot-Passwörtern, dem Entsperren von Mac und iPhone per Apple Watch, kontinuierlichem Kamera-/Skizzier-/Markierungsvorgang usw. Das Grundprinzip besteht darin, Daten zwischen Geräten, die über WLAN oder Bluetooth in derselben iCloud angemeldet sind, schnell zu synchronisieren.

Das Problem besteht darin, dass Geräte die IP-Adressen der anderen Geräte kennen müssen, wenn sie in einem lokalen Netzwerk kommunizieren möchten. Am Beispiel der AirPlay-Bildschirmprojektion besteht der erste Schritt darin, dass das Endgerät wie das iPhone das Zielgerät zur Bildschirmprojektion (also den Fernseher) im lokalen Netzwerk finden muss, bevor Audio-, Video-, Bild- oder Bildschirminhalte auf den Fernseher projiziert werden können.

In den meisten Fällen wird die IP-Adresse des Geräts über das dynamisch zugewiesene DHCP-Protokoll bezogen. Wie also erkennen sich Geräte gegenseitig? Hier kommt das Bonjour-Protokoll ins Spiel!

Was ist das Bonjour-Protokoll?

Bonjour ist ein von Apple implementiertes Netzwerkprotokoll ohne Konfiguration. Das Wort „Bonjour“ kommt aus dem Französischen und bedeutet „Hallo“ oder „Guten Morgen“. Das Protokoll soll die Netzwerkkonfiguration vereinfachen und es Geräten ermöglichen, sich innerhalb eines lokalen Netzwerks problemlos zu erkennen und miteinander zu kommunizieren, ganz so, als würden sich Menschen begrüßen.

Mit Bonjour müssen Benutzer IP-Adressen oder Gerätenamen nicht manuell konfigurieren. Geräte oder Anwendungen können die erforderlichen Dienste oder andere interaktive Anwendungen automatisch erkennen und so eine automatische Verbindung, Kommunikation und einen automatischen Datenaustausch ohne Benutzereingriff ermöglichen.

Abbildung 1 Zusammenschaltung von Geräten in einem LAN

Wie funktioniert das Bonjour-Protokoll?

1. Grundlagen des Bonjour-Protokolls

Bonjour basiert hauptsächlich auf zwei Standardnetzwerkprotokollen: mDNS (Multicast-DNS) und DNS-SD (DNS Service Discovery) und ist auf dem Standard-DNS-Framework aufgebaut und erweitert.

1.1 mDNS-Protokoll

Das mDNS-Protokoll basiert auf UDP/IP und verwendet zur Kommunikation die Multicast-Adresse 224.0.0.251 und Port 5353. Das mDNS-Protokoll implementiert die Hostnamenauflösung innerhalb eines LAN durch Multicast-Abfragen und -Antworten, ohne dass ein DNS-Server konfiguriert werden muss. Das Datenpaketformat des mDNS-Protokolls entspricht dem Standard-DNS-Protokoll. Es unterstützt standardmäßige DNS-Abfragedatensatztypen und erweitert einige der darin enthaltenen Konzepte.

Unter anderem werden Ressourceneinträge zum Austausch von Nachrichteninhalten zwischen Hosts in einem lokalen Netzwerk verwendet und enthalten die folgenden Schlüsselfelder:

NAME: gibt den Nachrichteninhalt an

TYPE: Gibt den Typ des Nachrichteninhalts an

Darüber hinaus können je nach TYPE-Typ die folgenden wichtigen DNS-Eintragformate definiert werden:

Ein Datensatz: die Entsprechung zwischen dem Hostnamen und IPv4

AAAA-Eintrag: die Entsprechung zwischen Hostname und IPv6

PTR-Datensatz: Zeichnet die Entsprechung zwischen dem Diensttyp und dem Namen der Dienstinstanz auf und wird im Allgemeinen zum Abfragen und Erkennen von Dienstinstanzen verwendet

SRV-Eintrag: zeichnet den Hostnamen und die Portinformationen der Dienstinstanz auf

TXT-Eintrag: Bietet zusätzlichen beschreibenden Text für den Dienst, aufgezeichnet im Format „Schlüssel = Wert“, wie z. B. MAC-Adresse, Geräte-ID usw.

JEDER Datensatz: beliebiger Typ, im Allgemeinen in Abfragen verwendet

1.2 DNS-SD-Protokoll

Das mDNS-Protokoll definiert die grundlegende Struktur von Nachrichten und den Nachrichtenübertragungsprozess. Auf dieser Grundlage definiert das DNS-SD-Protokoll spezifische Elemente wie Dienstname, Dienstinstanzname, Domänennamenlänge/-sequenz usw. weiter, verwendet drei Ressourcendatensätze: PTR, SRV und TXT, um einen Dienst vollständig zu beschreiben, und legt eine einfache Methode zur Diensterkennung und -beschreibung fest.

Der Dienstname setzt sich üblicherweise aus einem Unterstrich „_“ und einem Protokollnamen zusammen, als feste Kennung wird am Ende des Domänennamens „local“ verwendet. Das Format ist <Diensttyp>.<Domänenname>.local, z. B.: _printer._tcp.local, _airplay._tcp.local

Die Dienstinstanz wird durch ihren Instanznamen im Format <Dienstinstanz>.<Diensttyp>.<Domänenname> identifiziert, z. B.: PrintsAlot._printer._tcp.local

MyMac._airplay._tcp.local

Das Bonjour-Protokoll implementiert die Hostnamenauflösung sowie die Dienstregistrierung und -erkennung innerhalb des lokalen Netzwerks über die beiden oben genannten Protokolle und bietet so eine Grundlage für Netzwerke ohne Konfiguration.

2. Bonjour-Diensterkennungsprozess

Um zu verstehen, wie Bonjour funktioniert, müssen wir nur darüber nachdenken, wie das oben erwähnte mDNS-Protokoll und das DNS-SD-Protokoll kombiniert werden, um zu interagieren.

Das Bonjour-Protokoll kann als organische Kombination aus mDNS und DNS-SD betrachtet werden. Insbesondere verweist das DNS-SD-Protokoll über den PTR-Eintrag auf die Dienstinstanz und stellt den Hostnamen und den Port der Instanz über den SRV-Eintrag bereit. Nachdem diese Informationen abgerufen wurden, muss lediglich der Hostname über mDNS aufgelöst werden, um die IP-Adresse abzurufen und die Zuordnungsbeziehung vom Dienstnamen zur IP-Adresse abzuschließen, wodurch eine End-to-End-Verbindung hergestellt wird. Es ist zu beachten, dass die von DNS-SD veröffentlichten und abgefragten Datensatzinformationen basierend auf der von mDNS definierten Multicast-Gruppe und Portnummer übertragen werden.

Als Nächstes geben wir ein konkretes Beispiel, um zu veranschaulichen, wie der gesamte Bonjour-Diensterkennungsprozess abgeschlossen wird. Angenommen, ein iPad-Gerät im lokalen Netzwerk möchte einen Musikfreigabedienst veröffentlichen. Dies umfasst im Wesentlichen die folgenden drei Schritte:

2.1 Service-Veröffentlichung

Zunächst wählt das Gerät nach dem Zufallsprinzip eine verfügbare Link-Local-IP-Adresse aus, beispielsweise 192.168.1.23, und veröffentlicht sie im LAN. Zweitens wird der mDNS-Responder gestartet und der Hostname my-ipad.local angefordert. Nachdem bestätigt wurde, dass kein Konflikt vorliegt, wird der Hostname verwendet. Anschließend startet das Gerät den Musikfreigabedienst auf TCP-Port 1010. Schließlich wird der Musikdienst veröffentlicht und der DNS-Eintrag über mDNS-Multicast erstellt:

SRV-Eintrag: Der Inhalt ist der Dienstinstanzname „Xiao Lis Musikdienst._Musik._tcp.local.“ und verweist auf den TCP-Dienstport 1010 auf dem Hostnamen my-ipad.local.

PTR-Eintrag: Der Inhalt ist der Dienstname „_music._tcp.local.“ und verweist auf den Dienstinstanznamen „Xiao Lis Musikdienst._music._tcp.local.“

TXT-Record: liefert zusätzliche Informationen zum Gerät, wie beispielsweise die MAC-Adresse „MAC=D3:AA:E2:30:B0:E1“

Wenn andere Geräte im lokalen Netzwerk diese Datensätze empfangen, werden sie analysiert und zwischengespeichert.


Abbildung 2 Beispiel für den Service-Veröffentlichungsprozess

2.2 Diensterkennung

Wenn eine Client-Anwendung den Musikfreigabedienst benötigt, erstellt sie eine Dienstabfragenachricht vom Typ _music._tcp und sendet die Abfrageanforderung per Multicast über mDNS an das gesamte LAN. Nach Erhalt der Abfrageanforderung antwortet das Gerät, das den Dienst bereitstellen kann, mit einem PTR-Eintrag. Dieser Antwortdatensatz enthält den Dienstinstanznamen „Xiao Li's Music Service._music._tcp.local“. Die Clientanwendung kann dann den Namen der Dienstinstanz aus dem PTR-Eintrag extrahieren und ihn der Serverliste hinzufügen.

Abbildung 3 Beispiel für einen Service-Erkennungsprozess

2.3 Service-Auflösung

Die Dienstauflösung wird durchgeführt, nachdem die Diensterkennung abgeschlossen ist. Die Anwendung wählt den Namen der Dienstinstanz aus und sendet per Multicast an das LAN, um den entsprechenden SRV-Eintrag abzufragen. Nachdem der Dienstanbieter geantwortet hat, gibt er den aktuellen Hostnamen und die Portnummer der Dienstinstanz zurück. Nachdem die Anwendung den Hostnamen erhalten hat, sendet sie erneut eine Multicast-mDNS-Abfrageanforderung, um die dem Hostnamen entsprechende IP-Adresse aufzulösen. Schließlich stellt die Anwendung basierend auf der erhaltenen IP-Adresse und Portnummer eine Verbindung mit der Dienstinstanz her, um die Auflösung abzuschließen.

Abbildung 4 Beispiel für einen Service-Lösungsprozess

An diesem Punkt ist der gesamte Prozess der automatischen Registrierung und Erkennung des Musik-Sharing-Dienstes abgeschlossen. Der gesamte Prozess ist effizient und bequem und erfordert kein menschliches Eingreifen. Durch die Einrichtung eines guten Netzwerkkanals kann das Clientgerät die relevanten Musikressourcen auf dem Server durchsuchen und abspielen.

Nach Jahren der Entwicklung hat sich Bonjour zu einem Standarddienst für Apple und andere Plattformen entwickelt und bietet eine offene, praktische und effiziente Lösung für Netzwerke ohne Konfiguration. Bonjour basiert auf den Protokollen mDNS und DNS-SD und ist daher äußerst kompatibel mit der vorhandenen Netzwerkinfrastruktur. Es wird häufig in persönlichen und Unternehmensnetzwerken sowie in IoT-Geräten verwendet und vereinfacht die Netzwerkkonfiguration und -verwaltung erheblich. Angesichts des kontinuierlichen Wachstums des Smart-Hardware-Geschäfts werden die entsprechenden Technologien auch in Zukunft breite Anwendungs- und Entwicklungsperspektiven in der Netzwerkverbindung haben.

Verweise

[1] Apple. Entwicklerressourcen – Bonjour [EB/OL]. (2023)[2023-07-21]. https://developer.apple.com/bonjour/.

[2] Wu Yueqian. LAN-Geräteerkennung: Bonjour-Protokoll [EB/OL]. (28.09.2016)[21.07.2023]. https://blog.csdn.net/yueqian_scut/article/details/52694411.

[3] Yuweifeng. Netzwerkprotokoll mDNS20170217[EB/OL]. (2017-02-17)[2023-07-21]. https://www.cnblogs.com/yuweifeng/p/6409182.html.

Autor: Wang Jiankai

Einheit: China Mobile Smart Home Operation Center

<<:  Die lokale Temperatur sinkt um mehr als 10 °C! Eine neue Kaltluftwelle kommt

>>:  Verstopfung durch übermäßiges Essen während der Feiertage? Hör auf, Bananen zu essen! Der wahre „Verstopfungskiller“ ist →

Artikel empfehlen

Ist Laufen auf nüchternen Magen am Morgen effektiv zum Abnehmen?

Das Thema Gewichtsverlust erfreut sich heutzutage...

Kann die Ära der kostenlosen Hardware bei LeTV vollständig anbrechen?

Wie das Sprichwort sagt: Es gibt nichts umsonst a...

Hilft das tägliche Sit-up dabei, Bauchfett zu verlieren?

Sit-ups sind eine gängige Fitnessmethode, die von...

Ich entgifte jedes Mal, wenn ich es mache, und es fühlt sich so gut an.

Yoga-Meister sagen, das Leben sei Übung, Essen un...

Worauf sollten Sie bei der Morgengymnastik achten?

Viele Menschen haben die Angewohnheit, morgens Sp...

7 wesentliche Elemente für den Erfolg der virtuellen Realität

Ausländischen Medienberichten zufolge wird die Vi...

Ist der Winter wirklich zum Bergsteigen geeignet?

Wenn wir unseren Körper gesünder halten wollen, m...

Entdecken Sie die Xbox-bezogenen Funktionen unter Win 10

Als vorherige Generation des Windows-Betriebssyst...

Wie man durch Kniebeugen Gewicht verliert

Fettleibigkeit ist für Mädchen ein Tabu und sie a...

Kann regelmäßiges Seilspringen beim Abnehmen in den Beinen helfen?

Dicke Beine sind ein weit verbreitetes Problem mo...

Welche Kampfsportarten sollten Frauen lernen?

Wir sehen oft, dass viele Männer Frauen schikanie...