[go: up one dir, main page]

DE112004002233B4 - Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen - Google Patents

Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen Download PDF

Info

Publication number
DE112004002233B4
DE112004002233B4 DE112004002233.9T DE112004002233T DE112004002233B4 DE 112004002233 B4 DE112004002233 B4 DE 112004002233B4 DE 112004002233 T DE112004002233 T DE 112004002233T DE 112004002233 B4 DE112004002233 B4 DE 112004002233B4
Authority
DE
Germany
Prior art keywords
network device
time
data
network
local counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE112004002233.9T
Other languages
English (en)
Other versions
DE112004002233T5 (de
Inventor
David Thomas Bingham
James Andrew Stelzig
Behrouz Poustchi
Cristian Hudici
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nimcat Networks Inc
Original Assignee
Nimcat Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nimcat Networks Inc filed Critical Nimcat Networks Inc
Publication of DE112004002233T5 publication Critical patent/DE112004002233T5/de
Application granted granted Critical
Publication of DE112004002233B4 publication Critical patent/DE112004002233B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0641Change of the master or reference, e.g. take-over or failure of the master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13096Digital apparatus individually associated with a subscriber line, digital line circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13107Control equipment for a part of the connection, distributed control, co-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13196Connection circuit/link/trunk/junction, bridge, router, gateway
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13213Counting, timing circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1336Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13396Signaling in general, in-band signalling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Electric Clocks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Um die Zeit zwischen Netzwerkeinrichtungen gleichmäßig zu synchronisieren, um ein genaues Führen einer Anzeige einer gegenwärtigen Zeit zu ermöglichen, wird eine der Netzwerkeinrichtungen als Referenz für die Zeit betrachtet und die anderen Netzwerkeinrichtungen synchronisieren deren Anzeigen der gegenwärtigen Zeit mit der Referenz. Um Kopien von Daten bei einer Vielzahl von Netzwerrkeinrichtungen zu synchronisieren, hält jede Netzwerkeinrichtung einen Zähler, der den Ablauf von Zeit, nicht jedoch notwendiger Weise die gegenwärtige Zeit, repräsentiert. Der Zähler jeder Einrichtung wird periodisch synchronisiert mit den Zählern aller anderen Netzwerkeinrichtungen. Wenn Daten geändert werden an einer Netzwerkeinrichtung, wird der Wert des Zählers zu der Zeit des Änderns in Zusammenhang mit den geänderten Daten gespeichert. Gespeicherte Zählerwerte werden verwendet, um zu bestimmen, ob eine lokale Kopie oder eine abgesetzte Kopie der Daten wahrscheinlich neuer und deshalb vorzuziehen ist. Es kann eine weitere Prüfung angewandt werden, wenn ein Zählerwertvergleich nicht schlüssig ist.

Description

  • Querverweis auf verwandte Anmeldungen
  • Die vorliegende Anmeldung beansprucht den Nutzen der vorbekannten provisorischen Anmeldung mit der laufenden Nummer 60/523,140, eingereicht am 19.11.2003, auf deren Inhalt hiermit ausdrücklich Bezug genommen wird.
  • Technisches Gebiet
  • Die Erfindung betrifft die Synchronisation von Zeit und Daten zwischen Netzwerkeinrichtungen in Kommunikationsnetzwerken, wie zum Beispiel in Peer-to-Peer-Netzwerken.
  • Hintergrund der Erfindung
  • Bei vielen bekannten leitungsvermittelten oder paketvermittelten Fernsprechlösungen stellt ein zentralisiertes Anlagenelement (z.B. eine Vermittlung oder Nebenstellenanlage (PBX)) Fähigkeiten von Rufabschluß, Rufverarbeitung, Vermittlung und/oder Rufabwicklung bereit. In großen Systemen kann es sich bei den zentralen Geräten um einen leistungsstarken Computer handeln, der eine Anzahl von Funktionen auf Leiterplatten steuert, die als Anschlußkarten bezeichnet werden, die Fernsprechapparate mit dem Computer verbinden. In kleinen Systemen (z.B. in Systemenmit zehn oder weniger Endapparaten) kann die zentrale Intelligenz tatsächlich in einem „goldenen“ Fernsprechapparat verankert sein, der speziell dafür ausgelegt ist, die Zentralverarbeitungsgeräte zu halten.
  • Ungeachtet der Form, die die zentralen Geräte annehmen, werden gewöhnlich mehrere Endapparate (z.B. verdrahtete öder drahtlose Fernsprechapparate) mit den zentralen Geräten verbunden. Die Endapparate sind im Vergleich zu den zentralen Geräten in der Regel „dumme“ Einrichtungen. Das heißt, Endapparate können einfach Gabelschalterinformationen und Tastenbetätigungen (z.B. Mehrfrequenz- oder DTMF-Töne) zu den zentralen Geräten senden und Signale von den zentralen Geräten, wie zum Beispiel Wählton, Rufton oder Voice-Signale in Schall (oder in bestimmten Fällen in Bilder oder Video) umsetzen. Die Endapparate sind sich in der Regel nicht über die Existenz etwaiger anderer Endapparate bewußt und besitzen keine naturgemäße Kapazität, sich selbst mit einem anderen Endapparat zu verbinden.
  • In zentralisierten Fernsprechsystemen wird die Administration und Entdeckung von Fernsprechapparaten in einem Netzwerk in der Regel durch die zentralen Geräte durchgeführt. Zum Beispiel kann in einem traditionellen leitungsvermittelten zeitlich gemultiplexten (Time Division Multiplexing, TDM-)Fernsprechsystem jeder Endapparat mit einem Port an den zentralen Rufverarbeitungsgeräten verbunden werden. Als Teil einer beim Herauffahren stattfindenden Initialisierungssequenz sagt in der Regel jeder Endapparat den zentralen Geräten seine Verfügbarkeit an. Die zentralen Geräte überwachen jeden Port auf solche Ansagen, während neue Endapparate verbunden werden, und können somit neu hinzugefügte Endapparate „entdecken“.
  • In zentralisierten VoIP-Fernsprechsystemen (voice-overinternet-protocol (IP)) wird eine sehr ähnliche, aber etwas kompliziertere Prozedur verwendet; ein Endapparat sagt jedoch immer noch über das Netzwerk den zentralen Rufverarbeitungsgeräten seine Verfügbarkeit an. Wie in der Technik bekannt ist, handelt es sich, bei VoIP um die Übertragung von Rufen über ein Datennetzwerk auf der Basis des IP. Die Kommunikation findet in Form von Paketdaten statt, so daß keine feste Verbindung besteht, wie im Fall von leitungsvermittelten Netzwerken. Bei der Kommunikation kann es sich um Text, Stimme (Voice), Graphik oder Video handeln. IP-Geräte können zur Interoperabilität Standards wie zum Beispiel H.323 und SIP (Session Initiation Protocol) genügen. Der Standard H.323 beschreibt im allgemeinen, wie Multimedia-Kommunikation zwischen Endgeräten, Netzwerkgeräten und Diensten stattfinden soll. Der SIP-Standard deckt die technischen Anforderungen zum Aufbauen, Modifizieren und Abbauen von Multimediasitzungen über das Internet ab. Im vorliegenden Gebrauch bedeutetder Begriff „Ruf“ eine Multimediakommunikation zwischen zwei Endpunkten und schließt eine Voice-Fernsprechverbindung ein.
  • Gleichgültig, ob die zentralen Geräte leitungsvermittelt oder paketvermittelt sind, werden während des Verlaufs des Entdeckens eines neuen Endapparats die zentralen Geräte gewöhnlich automatisch eine Rufnummer (DN, „Directory Number“), die eine Form von Netzwerkadresse ist, zuweisen und verwalten. Bei der DN kann es sich z.B. um eine PBX-Durchwahl handeln. Da DNs verschiedenen Apparaten zugewiesen werden, werden die DNs zu einer Liste von DNs hinzugefügt, die in den zentralen Geräten geführt wird. Häufig können die zentralisierten Geräte nur auf der Basis dieser zentralisierten Liste die Identität des physischen Endapparats bestimmen, der angerufen werden soll, wenn eine DN von einem anrufenden Endapparat weitergeleitet wird. DNs sind nur ein Beispiel für Daten, die zentral durch die zentralen Geräte zur möglichen Verwendung durch mehr als einen Endapparat geführt werden können. Andere Beispiele beinhalten z.B. Benutzernamen und Benutzer-Rufabwicklungsoptionen.
  • Eine andere Verantwortlichkeit der zentralen Geräte kann darin bestehen, Endapparate über das aktuelle Datum bzw. die aktuelle Uhrzeit zu informieren. Obwohl es sich bei jedem Endapparat um eine digitale Einrichtung handeln kann, die eine Zeitgeberschaltung enthält, die ein lokales Datum bzw. eine lokale Uhrzeit (auch einfach als „lokale Zeit“ bezeichnet) führen kann, kommt es bei solchen Zeitgeberschaltungen gewöhnlich mit der Zeit zu signifikanten Driften. Folglich werden mehrere Endapparate, die anfänglich dieselbe Zeit anzeigen, und die zum Vorrücken der Zeit unabhängig gelassen werden, wahrscheinlich immer mehr zueinander desynchronisiert. Aus diesem Grund kann man mit zentralen Geräten verbundene Endapparate periodisch synchronisieren, indem z.B. jeder Endapparat periodisch angewiesen wird, seine lokale Zeit mit der von den zentralen Geräten geführten Zeit, die als die korrekte „Netzwerkzeit“ betrachtet wird, zu synchronisieren.
  • Da die mit größerer Verarbeitungskapazität und größerem Speicher verbundenen Kosten weiter abnehmen, wird die Aufnahme einer Rufverarbeitungsmaschine in jeden mit einem Netzwerk verbundenen Fernsprechapparat machbar. In solchen Systemen kann es wünschenswert sein, die zentralen Geräte zu eliminieren. Ein solches dezentralisiertes System kann als verteiltes Fernsprechsystem bezeichnet werden.
  • Nachteiligerweise eignet sich der oben beschriebene Ansatz zum Synchronisieren der Zeit über mehrere Endapparate hinweg nur schlecht für ein dezentralisiertes oder verteiltes Fernsprechsystem, da möglicherweise keine zentralisierten Geräte existieren.
  • Ein Problem in bezug auf die Zeitsynchronisation ist das Aufrechterhalten der Synchronisation (d.h. Kohärenz) zwischen Kopien von Daten in mehreren Endapparaten. In einem verteilten Fernsprechsystem kann von jedem Endapparat gefordert werden, seine eigene lokale Kopie (d.h. Version) von Daten zu führen, die in einem zentralisierten System zentral geführt worden wären. Wenn in einem Endapparat (z.B. aufgrund von Benutzereingabe oder einer Aktualisierung durch einen Systemadministrator) eine Kopie von Daten verändert wird, wird die aktualisierte Kopie in diesem Endapparat nicht mehr mit den Kopien dieser Daten in anderen Endapparaten synchronisiert (d.h. übereinstimmen). Es wird deshalb gewöhnlich wünschenswert oder notwendig sein, die aktualisierte Kopie der Daten zu jedem anderen Endapparat zu verbreiten. Natürlich ist es möglich, daß eine weitere Kopie derselben Daten nahezu gleichzeitig mit der ersten Änderung an einem anderen Endapparat verändert wird. Ein zuverlässiges Verfahren zur Bestimmung, welcher der beiden in Konflikt stehenden Datenwerte vorzuziehen ist (d.h. welche Kopie oder Version der Daten aufrechterhalten oder verworfen werden soll) wird benötigt.
  • In bestimmten Systemen wurden Zeitstempel zur Auflösung von Datenkonflikten in diesen Situationen verwendet. Das Prinzip solcher Verfahren ist gewöhnlich „die neueste Kopie gewinnt“. Damit solche Verfahren zuverlässig arbeiten, erfordern Netzwerkeinrichtungen natürlich eine einheitliche Sicht der Zeit (die manchmal als „Netzwerkzeit“ bezeichnet wird). In verallgemeinerten Datenverarbeitungsumgebungen kann man dies durch Verwendung eines Zeitservers erreichen. Ein Zeitserver ist eine Datenverarbeitungseinrichtung, die eine präzisere Repräsentation von Datum/Uhrzeit als andere Netzwerkeinrichtungen führt. Klient-Netzwerkeinrichtungen können sich durch Verwendung.eines standardisierten Protokolls auf den Zeitserver beziehen, um die Netzwerkzeit abzufragen, und können dann ihre lokale Zeit (gegebenenfalls unter Anwendung von Zeitzoneneinstellungen) setzen. Nachteiligerweise sind solche Zeitserver in bestimmten Netzwerken möglicherweise nicht verfügbar.
  • Bei bestimmten synchronisierten Fernsprechnetzwerken wird durch Verwendung spezieller Zeitsignale, die über spezielle Strecken abgeliefert werden, eine millisekundenpräzise Netzwerkzeit geführt. Dieser Ansatz kann große Genauigkeit ergeben, aber solche Implementierungen sind komplex und die assoziierten Kosten können als zu groß betrachtet werden.
  • Ein weiteres Problem, das mit der Verwendung von Zeitstempeln zur Auflösung von Datensychronisationskonflikten verbunden ist, besteht darin, daß in bestimmten Situationen der Wert eines Zeitstempels, der mit einem veränderten Datenelement assoziiert ist, möglicherweise kein zuverlässiger Indikator des relativen Alters dieser Daten ist. Dies ist auf den Umstand zurückzuführen, daß in bestimmten Situationen Zeitgeber, aus denen Zeitstempel erzeugt werden, auf nichtlineare Weise zu „springen“ scheinen können. Wenn zum Beispiel Zeitgeber auf Sommerzeit umgestellt werden, kann die Zeit scheinbar um eine Stunde vor- oder zurückspringen. Alternativ dazu kann die Zeit scheinbar vor- oder zurückspringen, wenn ein Zeitgeber durch einen Systemadministrator zurückgesetzt wird. In diesen Situationen können Daten mit einem „neueren“ Zeitstempel tatsächlich eine ältere Kopie dieser Daten als eine Version mit einem „älteren“ Zeitstempel repräsentieren. Folglich sind herkömmliche Synchronisationstechniken auf Zeitstempelbasis möglicherweise für die Datensynchronisation in verteilten Netzwerken nicht geeignet.
  • Aus die US 6 125 368 A ist ein Fehler-tolerantes Generieren von Zeitstempeln eines parallelen Mehrknoten-Datenbanksystems, bei welchem jeder Knoten eine logische Uhr zum Generieren von Zeitstempeln besitzt, bekannt. Im Einzelnen können die logischen Uhren synchronisiert werden, indem jeder Knoten, der eine Nachricht sendet, dieser Nachricht seinen aktuellen Zeitstempel hinzufügt. Wenn ein Knoten hierbei einen Zeitstempel empfängt, der größer ist als der Wert der zu dem Knoten gehörenden logischen Uhr, setzt der Knoten seine eigene logische Uhr zumindest auf den Wert des empfangenen Zeitstempels. Ferner sendet und empfängt jeder Knoten kontinuierlich eine Nachricht mit einem Zeitstempel, zumindest einmal in einem vorgegebenen Zeitraum. Um zu gewährleisten, daß eine Nachricht mit dem jüngsten Zeitstempel jeden Knoten innerhalb des vorgegebenen Zeitraums erreicht, kann dies erfordern, daß jeder Knoten in einem Rundlauf-Verfahren mit jedem anderen Knoten in dem System kommunizieren muss. Denn da einer der Knoten die schnellste logische Uhr besitzt, empfängt dann auch jeder andere Knoten den Zeitstempel von dieser schnellsten logischen Uhr und kann damit jeweils seine eigene logische Uhr synchronisieren. Dies bringt allerdings eine umfangreiche, quadratisch anwachsende Anzahl von erforderlichen Nachrichten mit sich.
  • In der US 6 581 075 B1 wird vorgeschlagen, einen Datensatz einer Datenbank zu aktualisieren, wenn der Zeitstempel einer eingehenden Datensatz-Aktualisierungsanfrage wesentlich größer, d.h. aktueller, ist, als ein mit dem zu aktualisierenden Datensatz verknüpfter Zeitstempel. Ergänzend, alternativ kann auch eine Aktualisierung eines Datensatzes erfolgen, wenn eine, der Datensatz-Aktualisierungsanfrage beigeordnete Priorität oder eine dem Knoten beigeordnete Priorität, welcher die Datensatz-Aktualisierungsanfrage sendet, höher ist als eine mit dem zu aktualisierenden Datensatz verknüpfte Zeitstempel mit dem zu aktualisierenden Datensatz verknüpfter Priorität.
  • In einem verteilten Fernsprechsystem wäre folglich ein alternatives Verfahren zum Synchronisieren der Zeit zwischen Endapparaten und zum Aufrechterhalten der Datenkohärenz zwischen Endapparaten oder anderen Formen von Netzwerkeinrichtungen wünschenswert. Allgemeiner wäre in verteilten Systemen, wie zum Beispiel verteilten Peer-to-Peer-Multimedia-Kommunikationssystemen, ein Verfahren zum Synchronisieren der Zeit und zum Aufrechterhalten von Datenkohärenz zwischen Netzwerkeinrichtungen wünschenswert.
  • Die Lösung gemäß vorliegender Erfindung ist durch ein Verfahren mit den Merkmalen des anhängenden Anspruchs 1, durch ein Kommunikationsnetzwerk mit den Merkmalen des anhängenden Anspruchs 21 und durch eine Netzwerkeinrichtung mit den Merkmalen des anhängenden Anspruchs 41 gegeben. Bevorzugte Ausführungsformen sind Gegenstand der Unteransprüche.
  • Kurzfassung der Erfindung
  • Um die Zeit zwischen gleichermaßen zum präzisen Führen einer Anzeige der aktuellen Zeit fähigen Netzwerkeinrichtungen zu synchronisieren, wird eine der Netzwerkeinrichtungen als Referenz für die Zeit angesehen und die anderen Netzwerkeinrichtungen synchronisieren ihre Anzeigen der aktuellen Zeit mit der Referenz. Um Kopien von Daten in mehreren Netzwerkeinrichtungen zu synchronisieren, führt jede Netzwerkeinrichtung einen Zähler, der den Ablauf der Zeit, aber nicht unbedingt die aktuelle Zeit, repräsentiert. Der Zähler in jeder Einrichtung wird periodisch mit den Zählern anderer Netzwerkeinrichtungen synchronisiert. Wenn Daten in einer Netzwerkeinrichtung geändert werden, wird der Wert des Zählers zum Zeitpunkt der Änderung in Assoziation mit den geänderten Daten gespeichert. Mit gespeicherten Zählerwerten wird bestimmt, ob eine lokale Kopie oder eine abgesetzte Kopie der Daten wahrscheinlich neuer und deshalb vorzuziehen ist. Es kann eine weitere Prüfung angewandt werden, wenn ein Zählerwertvergleich nicht schlüssig ist.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird in einer Netzwerkeinrichtung von mehreren Netzwerkeinrichtungen ein Verfahren mit den folgenden Schritten bereitgestellt: Führen eines ersten Zählers zum Repräsentieren des Ablaufs der Zeit dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu jedem beliebigen vorherigen Zeitpunkt ist; und wenn Daten verändert werden, um zu geänderten Daten zu werden: Speichern des Werts des ersten Zählers zum Zeitpunkt der Änderung der Daten in Assoziation mit den geänderten Daten; und Senden einer Anzeige der geänderten Daten zusammen mit dem Wert des ersten Zählers zum Zeitpunkt der Änderung der Daten zu einer anderen Netzwerkeinrichtung.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird in einer Netzwerkeinrichtung von mehreren Netzwerkeinrichtungen ein Verfahren mit den folgenden Schritten bereitgestellt: Empfangen von Anzeigen einer aktuellen Zeit von anderen Netzwerkeinrichtungen, wobei jede der Netzwerkeinrichtungen gleichermaßen zur Führung einer präzisen Repräsentation der aktuellen Zeit fähig ist; Bestimmen, welche der anderen Netzwerkeinrichtungen eine Referenz für Zeit ist; und Synchronisieren eines Zeitgebers mit einer von der Referenz für Zeit empfangenen Anzeige einer aktuellen Zeit.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird eine Netzwerkeinrichtung bereitgestellt, die für folgendes ausgelegt ist: Führen eines ersten Zählers zum Repräsentieren des Ablaufs der Zeit dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu jedem beliebigen vorherigen Zeitpunkt ist; und wenn Daten verändert werden, um zu geänderten Daten zu werden: Speichern des Werts des ersten Zählers zum Zeitpunkt der Änderung der Daten in Assoziation mit den geänderten Daten; und Senden einer Anzeige der geänderten Daten zusammen mit dem Wert des ersten Zählers zum Zeitpunkt der Änderung der Daten zu einer anderen Netzwerkeinrichtung.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung wird eine Netzwerkeinrichtung bereitgestellt, die für folgendes ausgelegt ist: Empfangen von Anzeigen einer aktuellen Zeit von anderen Netzwerkeinrichtungen, wobei jede der Netzwerkeinrichtungen gleichermaßen zur Führung einer präzisen Repräsentation der aktuellen Zeit fähig ist; Bestimmen, welche der anderen Netzwerkeinrichtungen eine Referenz für Zeit ist; und Synchronisieren eines Zeitgebers mit einer von der Referenz für Zeit empfangenen Anzeige einer aktuellen Zeit.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung wird ein maschinenlesbares Medium bereitgestellt, das maschinenausführbaren Code zur Ausführung in einer Netzwerkeinrichtung von mehreren Netzwerkeinrichtungen enthält, umfassend: maschinenausführbaren Code zum Führen eines ersten Zählers zum Repräsentieren des Ablaufs der Zeit dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu jedem beliebigen vorherigen Zeitpunkt ist; und maschinenausführbaren Code zum, wenn Daten verändert werden, um zu geänderten Daten zu werden: Speichern des Werts des ersten Zählers zum Zeitpunkt der Änderung der Daten in Assoziation mit den geänderten Daten; und Senden einer Anzeige der geänderten Daten zusammen mit dem Wert des ersten Zählers zum Zeitpunkt der Änderung der Daten zu einer anderen Netzwerkeinrichtung.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung wird ein maschinenlesbares Medium bereitgestellt, das maschinenausführbaren Code zur Ausführung in einer Netzwerkeinrichtung von mehreren Netzwerkeinrichtungen enthält, umfassend: maschinenausführbaren Code zum Empfangen von Anzeigen einer aktuellen Zeit von anderen Netzwerkeinrichtungen, wobei jede der Netzwerkeinrichtungen gleichermaßen zur Führung einer präzisen Repräsentation der aktuellen Zeit fähig ist; maschinenausführbaren Code zum Bestimmen, welche der anderen Netzwerkeinrichtungen eine Referenz für Zeit ist; und maschinenausführbaren Code zum Synchronisieren eines Zeitgebers mit einer von der Referenz für Zeit empfangenen Anzeige einer aktuellen Zeit.
  • Weitere Aspekte und Merkmale der vorliegenden Erfindung werden für Durchschnittsfachleute bei Durchsicht der folgenden Beschreibung spezifischer Ausführungsformen der Erfindung in Verbindung mit den beigefügten Figuren ersichtlich.
  • Figurenliste
  • Es werden nun Ausführungsbeispiele der Erfindung mit Bezug auf die beigefügten Zeichnungen beschrieben. Es zeigen:
    • 1 ein Fernsprechsystem mit mehreren vernetzten Endapparaten („Peers“) mit der Fähigkeit zur Zeit- und Datensynchronisation gemäß einer Ausführungsform der Erfindung;
    • 2 ein teilweises Blockschaltbild eines Endapparats des Fernsprechsystems von 1;
    • 3 ein Funktionsblockschaltbild von in dem Endapparat von 2 wirkender Software;
    • 4 eine Routing-Tabelle des Endapparats von 2;
    • 5 eine von einem Endapparat während der Peer-Entdeckung implementierten Automaten;
    • 6 ein Flußdiagramm der Funktionsweise eines Endapparats in dem in 5 gezeigten Anfangszustand;
    • 7 ein Flußdiagramm der Funktionsweise eines Endapparats in einem in 5 gezeigten Rufnummer-Sondierungszustand;
    • 8 ein Flußdiagramm der Funktionsweise eines Endapparats in einem in 5 gezeigten DN-Setzzustands;
    • 9 ausführlicher ein in 3 gezeigtes Zeit- und Datensynchronisationsmodul;
    • 10 einen Automaten, der die Zeitsynchronisation zwischen den Endapparaten von 1 regelt;
    • 11 die Funktionsweise eines Endapparats in einem in 10 gezeigten Initialisierungszustand;
    • 12 die Funktionsweise eines Endapparats in dem in 10 gezeigten Freilaufzustand;
    • 13 die Funktionsweise eines Endapparats in einem in 10 gezeigten Aktivzustand;
    • 14 einen beispielhaften Datenbank-Datensatz, der in einer Datenbank eines Endapparats gespeichert werden kann;
    • 15 die Initialisierung eines Zählers für die Datensequenznummer (DSN), der zum Zwecke der Datensynchronisation verwendet wird;
    • 16 die Funktionsweise zum Synchronisieren von DSN-Zählern zwischen Endapparaten zu Zwecken der Datensynchronisation;
    • 17 die Funktionsweise zum Speichern veränderter Daten in einem Endapparate gemäß Datensynchronisationsoperation; und
    • 18 die Funktionsweise zum Synchronisieren von Daten in einem Endapparat mit einer abgesetzten Kopie der Daten in einem anderen Endapparat.
  • Ausführliche Beschreibung
  • Als Übersicht, es ist wünschenswert, daß jeder Endapparat in einem beispielhaften verteilten Fernsprechsystem, welches kein zentrales Element von Routing- oder Vermittlungsausstattung aufweist (oder allgemeiner für jede Netzwerkeinrichtung in einer Gruppe vernetzter Netzwerkeinrichtungen), eine einheitliche Repräsentation der Zeit (die als „Netzwerkzeit“ bezeichnet wird) aufrechtzuhalten. Der Klarheit halber bedeutet „Netzwerkzeit“ eine einheitliche Sicht der Zeit, die sich mehrere Netzwerkeinrichtungen in einem Netzwerk teilen, die die tatsächliche Zeit präzise wiedergibt oder auch nicht. Außerdem ist es wünschenswert, daß die Zeitsynchronisation ohne zuviel Kommunikationsoverhead zwischen Endapparaten erzielt wird.
  • Um dieses Ergebnis zu erreichen, verwendet jeder Endapparat dieselbe Auswahltechnik zur Auswahl einer der Endapparate als Referenz für Zeit. Da die von jedem Endapparat verwendete Auswahltechnik dieselbe ist, wählt jeder Endapparat denselben Endapparat als Referenz für Zeit. Die Auswahl basiert nicht auf einer überlegenen Fähigkeit des gewählten Endapparats, präzise die Zeit zu führen. Es kann eine beliebige Technik verwendet werden, die zuverlässig einen Endapparat aus mehreren Endapparaten auswählt. Zum Beispiel kann der Endapparat mit der niedrigsten Hardwareadresse von allen anderen aktiven Endapparate ausgewählt werden.
  • Nachdem die Referenz für Zeit ausgewählt wurde, synchronisiert jeder Endapparat periodisch seinen Zeitgeber mit Zeitstempeln in von der Referenz für Zeit empfangenen Nachrichten. Zu Einheitlichkeitszwecken und um übermäßige Zeitsynchronisationsverarbeitung zu vermeiden, wird keine Synchronisation unter Verwendung von Zeitstempeln in von anderen Endapparaten empfangenen Nachrichten durchgeführt.
  • Außerdem ist die Aufrechterhaltung der Synchronisation (d.h. Kohärenz) zwischen Kopien von Daten, die in mehreren Endapparaten in einem verteilten Fernsprechsystem (oder allgemeiner zwischen mehreren Netzwerkeinrichtungen) gespeichert werden, wünschenswert. Wenn Daten in einem gegebenen Endapparat geändert werden, sollte die Änderung zuverlässig zu anderen Endapparaten verbreitet werden. In einer beliebigen gegebenen Situation, in der zwei verschiedene Versionen derselben Daten existieren, sollte einheitlich von jedem Endapparat eine zuverlässige Art und Weise der Bestimmung, welche Version „wahr“ (d.h. vorzuziehen) ist, angewandt werden.
  • Um dieses Ergebnis zu erreichen, führt jeder Endapparat einen Zähler, der das Ablaufen der Zeit repräsentiert, so daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist (d.h. der Zähler kann nicht zurückgesetzt werden, um einen früheren Zeitpunkt anzuzeigen). Der Zähler zeigt nicht die aktuelle Zeit an und wird somit nicht von solchen scheinbaren nichtlinearen Sprüngen der Zeitgebereinstellungen, wie zum Beispiel Sommerzeit oder Einstellung des lokalen Datums bzw. der lokalen Uhrzeit betroffen; in solchen Situationen verfolgt der Zähler einfach weiter das Ablaufen der Zeit.
  • Bei einer Ausführungsform ist der Zähler in jedem Endapparat ein monoton zunehmender Zähler, der zunimmt, um das Ablaufen der Zeit anzuzeigen (z.B. wird er jede Sekunde inkrementiert).
  • Der Zähler in einem Endapparat wird periodisch mit den Zählern anderer Endapparate synchronisiert. Die Synchronisation umfaßt ein Vergleichen der aktuellen Werte der Zähler in verschiedenen Endapparaten und ein Vorrücken des Zählers, dessen. Wert ein geringeres Ablaufen von Zeit repräsentiert (wobei es sich im Fall eines monoton zunehmenden Zählers um den kleineren Wert handelt), um mit dem Zähler übereinzustimmen, der ein größeres Ablaufen von Zeit repräsentiert (den größeren Wert).
  • Wenn Daten in einem Endapparat geändert werden, wird ein „Schnappschuß“ des Werts des Zählers zum Zeitpunkt der Änderung erfaßt und in Assoziation mit den geänderten Daten gespeichert. Kopien der geänderten Daten werden zusammen mit dem erfaßten Zählerwert zu anderen Endapparaten gesendet. Ein Empfänger-Endapparät, der eine lokale Kopie der Daten besitzt, besitzt dann auch einen assoziierten gespeicherten Zählerwert, der den Zeitpunkt der Erzeugung oder der letzten Aktualisierung der lokalen Kopie angibt. Der Empfänger vergleicht den empfangenen Zählerwert mit dem gespeicherten Zählerwert. Die Daten, die mit dem Zähler assoziiert sind, der ein längeres Ablaufen von Zeit wiedergibt (wobei es sich im Fall eines monoton zunehmenden Zählers um den höherwertigen Zähler handelt) werden als neuer und somit als vorzuziehen betrachtet; diese Daten werden vom Empfänger behalten. Wenn diese lokale Kopie als vorzuziehen befunden wird, wird eine Kopie zu dem sendenden Endapparat weitergeleitet, um es diesem Endapparat zu erlauben, die vorzuziehende Kopie zu speichern. Wenn die Zählerwerte gleich sind, kann eine weitere Prüfung (z.B. niedrigste Hardwareadresse) angewandt werden, um sich gleichförmig auf eine vorzuziehende Datenversion zu einigen.
  • Bei einer alternativen Ausführungsform ist der Zähler in jedem Endapparat ein monoton abnehmender Zähler, der abnimmt, um das Ablaufen von Zeit anzuzeigen (z.B. wird er jede Sekunde dekrementiert). In diesem Fall würden kleinere Werte ein größeres Ablaufen von Zeit und somit neuere Daten repräsentieren. Bei solchen Ausführungsformen würde die Zählersynchronisation zwischen Endapparaten umfassen, den Zähler mit dem größeren Wert auf den kleineren Wert zu setzen.
  • Zeit- und Datensynchronisationsfähigkeiten können in Verbindung mit Peer-Entdeckungsfähigkeiten bereitgestellt werden, wodurch die Netzwerkeinrichtung andere Netzwerkeinrichtungen (Peers) in einem Peer-to-Peer-Netzwerk erkennen und von diesen erkannt werden kann. Eine Übersicht über die Peer-Entdeckungsoperation in einer beispielhaften Ausführungsform folgt nun. Diese Übersicht liefert einen Kontext für die nachfolgende Beschreibung der Zeit- und Datensynchronisationsoperation.
  • PEER-ENTDECKUNG
  • In einem beispielhaften verteilten Fernsprechsystem, in dem ein zentrales Element von Routing- oder Vermittlungsausstattung fehlt, können bestimmte Merkmale wünschenswert sein. Ein wünschenswertes Merkmal kann die Fähigkeit sein, automatisch jedem Endapparat bei anfänglicher Verbindung des Endapparats mit einem Netzwerk eine eindeutige DN zuzuweisen, wobei vorzugsweise eine Bemühung erfolgt, Konflikte zwischen den von verschiedenen Endapparaten in dem Netzwerk gewählten DNs zu minimieren. Ein weiteres wünschenwertes oder obligatorisches Merkmal besteht darin, sicherzustellen, daß jedem Endapparat die DN jedes anderen mit dem Netzwerk verbundenen Endapparats bewußt gemacht wird, so daß jeder Endapparat Rufe zu anderen Endapparaten herstellen kann. Ein weiteres wünschenswertes Merkmal ist die Fähigkeit, eine einem Endapparat zugewiesene DN auch nach Trennung des Endapparats von dem Netzwerk oder bei Verlust der Stromversorgung des Endapparats zu erhalten (wobei beides dazu führt, daß ein Endapparat „inaktiv“ wird). Die Motivation für das Erhalten der DN kann darin bestehen, zu verhindern, daß die DN des inaktiven Endapparats als Folge der vorübergehenden Trennung des Endapparats von dem Netzwerk (z.B. aufgrund einer fehlerhaften Verbindung zwischen dem Endapparat und dem Netzwerk, eines einfachen Verlusts der Stromversorgung oder einer Herausbewegung eines drahtlosen Endapparats aus der Reichweite) neu zugewiesen wird, wobei diese Neuzuweisung zu Verwirrung seitens eines anrufenden Teilnehmers darüber, welcher Endapparat angerufen wurde, führen könnte.
  • Um diese Merkmale zu unterstützen, benachrichtigt ein Endapparat (z.B. ein Fernsprechapparat, ein PDA (Portable Digital Assistant), ein PC (Personal Computer), ein drahtloses Endgerät, eine TTI (Think Trunk Interface) oder eine anderweitige Netzwerkeinrichtung), der für eine Ausführungsform der vorliegenden Erfindung beispielhaft ist, bei der anfänglichen Verbindung mit einem Netzwerk in einem „fabrikfrischen“ Zustand (d.h. noch unkonfiguriert) die anderen Endapparate in dem Netzwerk (seine „Peers“) über seine Verbindung mit dem Netzwerk mittels einer Netzwerkverbindungsbenachrichtigung. Die Netzwerkverbindungsbenachrichtigung enthält eine mit dem Endapparat assoziierte eindeutige Kennung, wie zum Beispiel eine Adresse der Medienzugangssteuerung (MAC - „Media Access Control). Wie aus der Technik bekannt ist, ist eine MAC-Adresse eine eindeutige Hardwareadresse oder Hardwarenummer, die als eindeutige Kennung für eine Netzwerkeinrichtung dient. Die Netzwerkverbindungsbenachrichtigung kann die Form einer Nachricht „I_AM_HERE“ annehmen, die mehrmals gesendet wird, um die Wahrscheinlichkeit zu vergrößern, daß die Nachricht empfangen wird (mindestens im Fall, daß keine Bestätigung von anderen Peers für jede empfangene Nachricht gesendet wird, wie bei der vorliegenden Ausführungsform).
  • Der frisch verbundene Endapparat empfängt außerdem Existenzbenachrichtigungen von anderen Endapparaten. Eine Existenzbenachrichtigung ist eine Anzeige der Existenz eines Endapparats, der entweder zur Zeit Präsenz in dem Netzwerk hat (d.h. aktiv ist und mit dem Netzwerk verbunden ist) oder zuvor eine Präsenz in dem Netzwerk hatte (d.h. zuvor aktiv und verbunden war, aber nun getrennt und inaktiv geworden ist). Bei der vorliegenden Ausführungsform kann eine Existenzbenachrichtigung eine beliebige Nachricht der folgenden Typen sein: „I_AM_HERE“ (zuvor beschrieben), „PEER_ASSERT“ (nachfolgend beschrieben) oder „INACTIVE_PEER_ASSERT“ (nachfolgend beschrieben). Jede Existenzbenachrichtigung enthält die eindeutige Kennung des Endapparats in Bezug auf den die Nachricht gesendet wurde. Die beiden letzteren Arten von Nachrichten („PEER_ASSERT“ und „INACTIVE_PEER_ASSERT“) liefern zusätzlich eine Anzeige bereits beanspruchter DNs und werden nur empfangen, wenn der frisch verbundene Endapparat sich einem Netzwerk anschließt, in dem mindestens ein Endapparat bereits eine DN beansprucht hat.
  • Aus den Existenznachrichten wird eine Liste aller Endapparate in dem Netzwerk (die als Routing-Tabelle bezeichnet wird) erzeugt. Die Endapparate in der Liste werden nach ihren eindeutigen Netzwerkeinrichtungskennungen sortiert. Für etwaige Endapparate, die bereits DNs beansprucht haben, wird in der sortierten Liste die beanspruchte DN angegeben. Der frisch verbundene Endapparat weist dann eine Ordinalposition in der Liste auf.
  • Um eine voraussichtliche DN auszuwählen, kann der frisch verbundene Endapparat ein mit seiner Ordinalposition in der Liste assoziiertes Offset zu einer Basis-DN addieren. In einem System, bei dem die DN eine PBX-Durchwahl repräsentiert, kann zum Beispiel unter der Annahme, daß der neue Endapparat der dritte in einer Liste von fünf Endapparaten ist, die voraussichtliche DN als 203 bestimmt werden (ein Offset gleich der Ordinalposition des Endapparats, d.h. 3, plus einer Basis-DN von 200). Durch Basieren der Auswahl einer voraussichtlichen DN auf der mit dem Endapparat assoziierten eindeutigen Ordinalposition wird die Auswahl eindeutiger voraussichtlicher DNs durch verschiedene Endapparate gefördert. Dabei wird ein Szenario angenommen, bei dem sich mehrere fabrikfrische Endapparate gleichzeitig einem Netzwerk anschließen, das keine existierende Endapparate mit zuvor zugewiesenen DNs aufweist. Das Prinzip besteht darin, zu versuchen zu verhindern, daß verschiedene Endapparate anfänglich dieselbe voraussichtliche DN auswählen, was zu einer zeitaufwendigen Konfliktauflösungsverarbeitung führen kann.
  • Nach Auswahl seiner voraussichtlichen DN benachrichtigt der frisch verbundene Endapparat dann jeden anderen Endapparat über seine voraussichtliche DN. Dies wird als eine „DN-Sondierung“ bezeichnet. Wenn kein anderer Endapparat Einwände gegen die Beanspruchung der voraussichtlichen DN durch den frisch verbundenen Endapparat hat (wobei ein etwaiger Einwand möglicherweise auf einem existierenden Anspruch auf diese DN durch einen der anderen Endapparate basiert), beansprucht der frisch verbundene Endapparat die voraussichtliche DN als seine eigene. Der frisch verbundene Endapparat kann den Ablauf eines vorbestimmten Zeitintervalls erlauben, bevor er seine voraussichtliche DN beansprucht, um dem anderen Endapparat genug Zeit zu geben, um etwaige Einwände zu erheben. Unter der Annahme, daß die voraussichtliche DN erfolgreich beansprucht wurde, benachrichtigt der frisch verbundene Endapparat jeden anderen Endapparat über seinen Anspruch auf diese DN. Der frisch verbundene Endapparat speichert außerdem die beanspruchte DN im nichtflüchtigen Speicher, so daß die zugewiesene DN abgerufen werden kann, wenn der Endapparat die Stromversorgung verliert. Außerdem kann die Routing-Tabelle gespeichert werden.
  • Falls der frisch verbundene Endapparat sich einem etablierten Netzwerk anschließt, können die anderen Endapparate in dem Netzwerk bereits ihre DNs gewählt haben. In diesem Fall ist es möglich, daß die von dem frisch verbundenen Endapparat gewählte voraussichtliche DN bereits einem der existierenden Endapparate zugewiesen ist. Wenn zum Beispiel die Ordinalposition des frisch verbundenen Endapparats in der sortierten Liste von Endapparaten von dem Ende der Liste verschieden ist (z.B. wenn die eindeutige Kennung des neuen Endapparats diesen irgendwo in der Mitte der sortierten Liste plaziert), wird die voraussichtliche DN, die resultiert, wenn das mit der Ordinalposition des frisch verbundenen Endapparat assoziierte Offset zu der Basis-DN addiert wird, die DN eines der existierenden Endapparate repräsentieren.
  • Im Hinblick auf diese Möglichkeit konsultiert der frisch verbundene Fernsprecher, bevor er versucht, andere Endapparate über seine voraussichtliche DN zu benachrichtigen, zuerst seine Routing-Tabelle, um zu bestimmen, ob die voraussichtliche DN bereits von etwaigen anderen Endapparaten in dem Netzwerk beansprucht wird. Wenn die voraussichtliche DN bereits von einem anderen Apparat beansprucht wird, kann die frisch verbundene DN eine andere voraussichtliche DN wählen, z.B. durch Addieren eines Offset, wie zum Beispiel 1 zu der größten in der Liste gefundenen DN, bevor etwaige der anderen Endapparate über seine Wahl benachrichtigt werden. Dadurch wird möglicherweise ein unnötiges Kommunikationsoverhead in dem Netzwerk vermieden, das andernfalls resultieren könnte, wenn der frisch verbundene Endapparat jeden anderen Endapparat über seine voraussichtliche DN benachrichtigt, nur um einen Einwand von einem der anderen Endapparate zu empfangen, der diese DN bereits beansprucht hat.
  • Nachdem eine frisch verbundener Endapparat erfolgreich eine DN beansprucht hat, benachrichtigt der Endapparat periodisch die anderen Endapparate in dem Netzwerk über seinen Anspruch auf diese DN. Bei der vorliegenden Ausführungsform nimmt jede periodische Benachrichtigung die Form einer Nachricht „PEER_ASSERT“ an, die als „Herzschlag“ des frisch verbundenen Endapparats dient, wodurch fortgesetzte Netzwerkpräsenz und fortgesetzter Anspruch auf seine DN angezeigt wird. Die anderen Endapparate in dem Netzwerk überwachen die Benachrichtigungen. Bei der vorliegenden Ausführungsform erfolgen die periodischen Benachrichtigungen in zufälligen Zeitintervallen (z.B. zwischen 0 und 2 Sekunden). Wenn eine vorbestimmte Zeitdauer ohne Empfang einer Benachrichtigung von einem Endapparat verstreicht, wird angenommen, daß dieser Endapparat inaktiv geworden ist. Die periodische Benachrichtigung dient außerdem dazu, zu verhindern, daß ein nachfolgend hinzugefügter Endapparat versucht, diese DN als seine eigene zu beanspruchen. Wenn zum Beispiel ein anderer Endapparat diese DN als seine voraussichtliche DN gewählt hat und auf etwaige Einwände von anderen Endapparaten wartet, kann die Benachrichtigung als Einwand gegen den Anspruch dieser DN durch diesen Endapparat dienen. Außerdem können ausdrückliche Einwände (z.B. DN-CONFLICT-Nachrichten) gesendet werden.
  • Wenn ein Endapparat, der eine DN beansprucht hat, sich von dem Netzwerk trennt oder die Stromversorgung verliert, wird er wahrscheinlich nicht in der Lage sein, periodisch die anderen Endapparate in dem Netzwerk über seinen Anspruch auf seine DN zu benachrichtigen. Ein anderer Endapparat in dem Netzwerk, der sich über die Inaktivität des getrennten Endapparats bewußt geworden ist (z.B. durch Fehlen etwaiger neuerer PEER_ASSERT-Nachrichten von diesem Endapparat) schreitet in diesem Fall ein und beginnt damit, periodisch die anderen Endapparate in dem Netzwerk über den Umstand zu benachrichtigen, daß, obwohl der getrennte Endapparat inaktiv ist, seine DN bereits beansprucht wurde. Der Endapparat, der eingeschritten ist, der zweckmäßigerweise als „Surrogat“ bezeichnet wird, ist dafür verantwortlich, diese periodischen Benachrichtigungen (die die Form der nachfolgend beschriebenen „INACTIVE_PEER_ASSERT-Nachrichten“ annehmen können) zu senden, zusätzlich zu einer periodischen Benachrichtigung der anderen Endapparate über seinen Anspruch auf seine eigene DN. Es kann ein Algorithmus angewandt werden, um zu entscheiden, welcher Endapparat das Surrogat für einen inaktiven Endapparat sein soll. Die im Namen des inaktiven Endapparats gesendeten periodischen Benachrichtigungen des Surrogats können verhindern, daß ein nachfolgend hinzugefügter Endapparat versucht, die DN des getrennten Endapparats als seine eigene zu beanspruchen.
  • Wenn sich der getrennte Endapparat später wieder mit dem Netzwerk verbindet, kann er die Benachrichtigung der anderen Endapparate über seine DN (die er sich aus dessen nichtflüchtigen Speicher wieder abrufen kann) in seinem eigenen Namen wieder aufnehmen. Wenn der Surrogat-Endapparat die Wiederverbindung erkennt, kann er damit aufhören, die anderen Endapparate über die DN des wiederverbundenen Endapparats zu benachrichtigen, da der wiederverbundene Endapparat seine Verantwortung wieder aufgenommen hat.
  • Mit Bezug auf 1 ist ein Fernsprechsystem 10 (oder „Telefonsystem 10“) gezeigt, das die Peer-Entdeckung gemäß einer Ausführungsform der Erfindung ausnutzt. Das Fernsprechsystem 10 besitzt eine TTI (Thin-Trunk-Schnittstelle) 40 und mehrere Fernsprechapparate 100-1 bis 100-N (jeweils eine Form von Endapparat und eine Form von Netzwerkeinrichtung), die durch eine Vermittlung 20 mit einem lokalen Netzwerk (LAN) 30 verbunden sind. Als Alternative kann die Vermittlung 20 durch ein Netzwerk-Hub ersetzt werden. Der Klarheit halber sind nur vier Fernsprechapparate gezeigt, es können jedoch insgesamt N Fernsprechapparate mit N ≥ 2 vorliegen und ferner ist bei bestimmten Ausführungsformen der Erfindung N eine große Zahl, zum Beispiel im Bereich von tausenden. Die Thin-Trunk-Schnittstelle 40 ist zum Beispiel eine einfache analoge oder digitale T1/E1-Schnittstelle oder jede beliebige andere PSTN-Schnittstelle und liefert eine zwischenwirkende (im engl. „Interworking“-) Schnittstelle einer Ortsvermittlungsstellen oder des öffentlichen Fernsprechwählnetzes (PSTN, „Public Switched Telephone Network“) und ist an einer Anzahl von Fernsprech-„Leitungen“ 1, 2, 3, 4 angekoppelt. Die Leitungen 1, 2, 3, 4 sind Doppelleitungen, die Einrichtungen repräsentieren, die von einer Ortsvermittlungsstelle oder dem PSTN (nicht gezeigt) bereitgestellt werden. Bei bestimmten Ausführungsformen der Erfindung gibt es viele Leitungen, die mehrere Thin-Trunk-Schnittstellen erfordern. Wenn zum Beispiel 8 Leitungen zu dem PSTN erforderlich sind, kann eine zweite Thin-Trunk-Schnittstelle zu dem System 10 hinzugefügt. werden.
  • Im Gegensatz zu herkömmlichen zentralisierten Fernsprechsystemen besitzt das System 10 von 1 als Merkmal verteilte Rufverarbeitung. Diese verteilte Rufverarbeitung kann eine Anzahl von Fähigkeiten, einschließlich zum Beispiel verteilte Voice-Mail, als Merkmale besitzen.
  • Mit Bezug auf 2 ist ein teilweises Blockschaltbild eines beispielhaften Fernsprechapparats 100-X (mit X = 1 bis N) des Fernsprechsystems 10 von 1 gezeigt. Eine Zentralprozessoreinheit (CPU) 530, eine Speicherverwaltungseinheit (MMU) 545 und ein Direktzugriffsspeicher (RAM) 535 stellen die Grundlage einer rechnerischen Einrichtung bereit. Diese rechnerische Einrichtung ist zur Codierung und Decodierung von Audiosignalen mit einem digitalen Signalprozessor (DSP) 520 verbunden. Der DSP 520 ist an eine Audioschnittstelle 510 angeschlossen. Außerdem ist die rechnerische Einrichtung mit einer Dreiportvermittlung 525 verbunden, um eine Verbindung mit einem LAN und einem PC (Personal Computer) zu erlauben. Außerdem ist die rechnerische Einrichtung mit vielen Peripheriegeräten verbunden, wie zum Beispiel mit nichtflüchtigem Flash-Speicher 540, einer Infrarot-(IR)-Schnittstelle 550, einem Tastenfeld- und Tastenschnittstelle 555, einer Steuerung 560 für eine Flüssigkristallanzeige (LCD) und einer PCMCIA-Schnittstelle (Personal Computer Memory Card International Association) 565 zur Ermöglichung einer standardisierten Expansion des Endapparats 100. Obwohl eine spezifische Architektur gezeigt ist, kann allgemeiner jeder beliebige Fernsprecher auf der Basis von Paketen (z.B. des Internetprotokolls (IP)) verwendet werden, vorausgesetzt, daß genug Verarbeitungs- und Speicherkapazität zur Implementierung der nachfolgend beschriebenen Verfahren verfügbar ist. Zum Beispiel könnte ein massenproduziertes IP-Telefon wie zum Beispiel die von Mitel, Nortel Networks, Avaya, Siemens, NEC, Pingtel oder 3COM hergestellten verwendet werden (z.B. Nortel i2004, Siemens optiPoint 410 oder Avaya 4610).
  • Mit Bezug auf 3 ist ein Funktionsblockschaltbild von in dem Telefonapparat 100-X von 2 wirkender Software gezeigt. Die Software wird in der Regel in dem RAM 535 von 2 gespeichert und auf der CPU 530 ausgeführt und kann von einem maschinenlesbaren Medium 32 aus geladen werden, bei dem es sich um einen magnetischen oder optischen Datenträger, ein Band, einen Chip oder eine andere Form von Primär- oder Sekundärspeicherung handeln könnte. Allgemeiner kann die Software als eine beliebige geeignete Kombination von maschinenausführbarem Code implementiert werden, der im Speicher zur Ausführung durch allgemeine oder spezielle Prozessoren, Firmware, Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), am Einsatzort programmierbare Gate-Arrays (FPGAs), allgemeine oder spezielle Logik, im Speicher gespeichert wird.
  • Ein System-Dispatcher 120 stellt Kommunikation und Ablaufplanung zwischen verschiedenen Funktionselementen bereit, darunter ein Ruf- bzw. Verbindungsverarbeitungsmodul 70, ein Voice-Mail-Modul 80, ein Wählregelmodul 90, ein Peer-Entdeckungsmodul 110, ein Zeit- und Datensynchronisationsmodul 122, ein Display-Handler 130, ein Audio-Handler 14,0 und ein Eingangs-Handler 150.
  • Das Verbindungsverarbeitungsmodul 70 tritt mit einem Protokollstapel 60 in Wechselwirkung, um einen Rufaufzubauen und abzubauen und um Voice-Kanäle aufzubauen. Die Verbindungsverarbeitungsmodule 70 einer Anzahl von Apparaten dienen zusammen zum Abliefern von PBX-artigen Rufverarbeitungsfähigkeiten auf verteilte Weise ohne Notwendigkeit zentralisierter Geräte.
  • Das Voice-Mail-Modul 90 stellt Voice-Mail-Dienste bereit, wenn ein Ruf angekommen ist und ein Benutzer die Verbindung nicht entgegennehmen kann.
  • Das Wählregelmodul 90 enthält eine Menge von Wählregeln für das Verbindungsverarbeitungsmodul 70, die steuern, wie Rufe bzw. Verbindungen hergestellt werden, und wendet diese an.
  • Das Peer-Entdeckungsmodul 110 ermöglicht Peer-Entdeckung, wenn ein Endapparat 100-X anfänglich mit einem Netzwerk verbunden ist, und ist der Mittelpunkt des vorliegenden Abschnitts („Peer-Entdeckung“).
  • Das Synchronisationsmodul 122 gibt dem Endapparat 100-X Zeit- und Datensynchronisationsfähigkeiten zum Synchronisieren seines (nicht gezeigten) Zeitgebers mit dem Zeitgeber eines anderen Endapparats, der eine Referenz für Zeit ist, und zur Förderung der Einheitlichkeit seiner Daten in bezug.auf andere Kopien derselben Daten in anderen Endapparaten in dem Netzwerk 30. Das Modul 122 wird in dem folgenden Abschnitt („ZEIT- UND DATENSYNCHRONISATION“) beschrieben.
  • Der Display-Handler 130 ist für das Formatieren und Anzeigen von Informationen für einen Benutzer verantwortlich.
  • Der Audio-Handler 140 ist so ausgelegt, daß er Audio-Töne abspielt, wie zum Beispiel Ruf-, Belegt-, Anruf-Wartetöne, oder ist so ausgelegt, daß er sich bei Empfang einer Audionachricht von dem System-Dispatcher 120 mit einem Voice-Kanal aus dem Netzwerk zu dem Handapparat-Lautsprecher (oder Lauthörfernsprecher) verbindet.
  • Der Eingangs-Handler 150 ist für die Überwachung von Funktionen wie zum Beispiel Tastenbetätigung, Gabelbetätigung, Lautstärketasten, Freisprech- und Stummschaltetaste und zum Informieren des System-Dispatchers 120 über entsprechende zu unternehmende Aktionen verantwortlich.
  • 4 zeigt eine Routing-Tabelle 200, die von jedem Endapparat 100-X in dem Fernsprechsystem 10 erzeugt und geführt wird. Die Routing-Tabelle repräsentiert eine Angabe der anderen Endapparate mit einer Präsenz in dem LAN 30 (einschließlich Endapparate, die möglicherweise inaktiv geworden sind). Wie beschrieben werden wird, erzeugt ein Endapparat 100-X die Routing-Tabelle 200 durch Speichern von Informationen aus mehreren „I_AM_HERE“-Nachrichten und möglicherweise anderen Arten von Nachrichten (z.B. „PEER_ASSERT“-Nachrichten), die von anderen Endapparaten in dem Netzwerk 30 empfangen werden. Bei der vorliegenden Ausführungsform enthält die Routing-Tabelle 200 außerdem einen Eintrag für den aktuellen Endapparat 100-X, so daß die Tabelle 200 eine Zusammenfassung aller mit dem Netzwerk 30 assoziierten Endapparate repräsentiert.
  • Wie in 4 gezeigt, speichert die Routing-Tabelle 200 verschiedene Arten von Informationen bezüglich jedes der Endapparate mit einer Präsenz in dem Netzwerk 30, einschließlich einer DN (Spalte 210), MAC-Adresse (Spalte 220), IP-Adresse (Spalte 230), Einrichtungstyp (Spalte 250) und eines Aktiv-Flag (Spalte 293).
  • Die DN (Spalte 210) ist eine Rufnummer, die einer PBX-Durchwahl analog ist. Wenn eine DN in Spalte 210 für einen Endapparat erscheint, wird angenommen, daß diese DN von diesem Endapparat beansprucht worden ist. Wenn ein Endapparat noch keine DN beansprucht hat (z.B. wenn er gerade eben seine Präsenz in dem Netzwerk 30 angesagt oder nur eine voraussichtliche DN gewählt hat, die noch nicht definitiv beansprucht wurde), ist Spalte 210 für diesen Endapparat leer. Obwohl die DNs in Spalte 210 in 4 in aufsteigender Reihenfolge gezeigt sind, versteht sich, daß die DNs in nicht aufsteigender oder nicht sequenzieller Reihenfolge vorliegen könnten, abhängig von der Reihenfolge, in der die Endapparate zu dem Netzwerk hinzugefügt werden, oder von anderen Faktoren, wie ersichtlich werden wird.
  • Die MAC-Adresse (Spalte 220) ist eine eindeutige Hardwareadresse oder Hardwarenummer, die als eindeutige Kennung für jeden Endapparat dient. Es versteht sich, daß MAC-Adressen bei der vorliegenden Ausführung zum Auflösen von Konflikten verwendet werden können, wenn verschiedene Endapparate dieselbe DN wählen. In Spalte 220 wird eine MAC-Adresse für jeden in der Routing-Tabelle 200 erscheinenden Endapparat spezifiziert. In der Routing-Tabelle 200 werden die Endapparate in aufsteigender MAC-Adressenreihenfolge sortiert. Eine alternative Ausführungsform könnte die Endapparate in absteigender Reihenfolge sortieren.
  • Die IP-Adresse (Spalte 240) repräsentiert zum Beispiel im Fall von VoIP-Endapparaten die IP-Adresse, die jedem Endapparat zugewiesen ist.
  • Der Einrichtungstyp (Spalte 250) ist eine Anzeige des Typs jeder Netzwerkeinrichtung in dem Netzwerk 30. Bei dem vorliegenden Beispiel ist jede Netzwerkeinrichtung ein (durch den Wert „SET“ in Spalte 250 identifizierter) Endapparat. Bei alternativen Ausführungsformen können Netzwerkeinrichtungen auch andere Arten von Einrichtungen sein, wie zum Beispiel Gateways oder Thin-Trunk-Schnittstellen. Die hier beschriebene Peer-Entdeckung kann ungeachtet des' Einrichtungstyps für Netzwerkeinrichtungen durchgeführt werden.
  • Das Aktiv-Flag (Spalte 293) ist eine Anzeige, ob ein Endapparat gerade aktiv ist oder nicht. Wie bereits beschrieben, senden Endapparate periodisch PEER_ASSERT-Nachrichten zu anderen Endapparaten, um die anderen Endapparate darüber zu informieren, daß sie immer noch aktiv sind, und um andere Informationen anzugeben. Wenn ein Endapparat 100-X für ein vorbestimmtes Zeitintervall (z.B. dreimal eine feste Dauer zwischen PEER_ASSERT-Nachrichten, wobei die feste Dauer zum Beispiel zwei Sekunden betragen kann) keine PEER_ASSERT-Nachrichten empfangen hat, wird der Status des Endapparats, für den keine PEER_ASSERT-Nachrichten empfangen wurden, in der Routing-Tabelle 200, die von dem Endapparat 100-X geführt wird, auf inaktiv gesetzt. Nachdem der inaktive Endapparat das Senden von PEER_ASSERT-Nachrichten wieder aufnimmt, wird der Status dieses Endapparats wieder auf aktiv zurückgesetzt.
  • 5 zeigt einen Automaten, der von einem beispielhaften Endapparat 100-X während der Peer-Entdeckung gemäß einer Ausführungsform der Erfindung implementiert wird. Für die Zwecke von 5 wird angenommen, daß der Endapparat 100-X während des Prozesses des Herauffahrens und der Initialisierung entweder von einem DHCP-Server (Dynamic Host Configuration Protocol) in einem jeweiligen Netzwerk oder durch Verwendung eines Zeroconf (Standard der Internet Engineering Task Force, gerade in der rezensenten Warteschlange für Kommentaranforderungen (RFC) als „draftietf-zeroconf-ipv4-linklocal-17.txt“) auf Fachleuten bekannte Weise eine IP-Adresse erhalten hat.
  • Nachdem die IP-Adresse erhalten wurde, tritt der Endapparat 100-X in den anfänglichen „I_AM_HERE“-Zustand 800 ein, wodurch angezeigt wird, daß der Endapparat 100-X Präsenz in dem Netzwerk 30 hat. In diesem Zustand 800 „sagt“ sich der. Endapparat 100-X „an“, indem er die anderen Endapparate in dem Netzwerk 30 über seine Präsenz in dem Netzwerk 30 benachrichtigt, und fängt an, Benachrichtigungen von anderen Netzwerkeinrichtungen bezüglich ihrer Präsenz in dem Netzwerk 30 zu empfangen. Bei der vorliegenden Ausführungsform sagt sich der Endapparat 100-X mittels einer I_AM_HERE-Nachricht an, die die MAC-Adresse und die IP-Adresse des Endapparats 100-X enthält, die im Multicast-Verfahren zu anderen Endapparaten in dem Netzwerk gesendet wird. Wie Fachleuten wohlbekannt ist, bedeutet „Multicasting“ das Übertragen einer einzigen Nachricht zu mehreren Empfängern, wobei es sich um eine Teilmenge der Gesamtzahl potentieller Empfänger in einem Netzwerk handeln kann. Wenn dieselbe Nachricht zu einer Gruppe von Empfängern gesendet werden soll, kann Multicasting effizienter als Rundsendung sein (wobei alle Netzwerkeinrichtungen, auch die, für die die Nachricht nicht bestimmt ist, die Nachricht empfangen) oder als Unicasting (Punkt-zu-Punkt-Übertragungen zwischen zwei Netzwerkeinrichtungen, die einmal pro beabsichtigtem Empfänger wiederholt wird). Im Fall von VoIP-Endapparaten kann es sich bei dem Multicasting um IP-Multicasting handeln, so wie es in den RFC 1112 mit dem Titel „Host extensions for IP Multicasting“, die Fachleuten vertraut sein werden, beschrieben wird.
  • Der Endapparat sendet die I_AM_HERE-Multicast-Nachricht N mal, wobei N eine positive ganze Zahl größer oder gleich 1 ist. Bei Ausführungsformen, bei denen Endapparate Teil eines sehr großen Netzwerks bilden, ist es möglich, daß mehrere oder alle Endapparate gleichzeitig mit Strom versorgt werden und somit jeweilige Empfangspuffer in den Endapparaten in dem Netzwerk mehrere Nachrichten auf einmal empfangen können. Bei bestimmten Ausführungsformen der Erfindung ist N für jeden Endapparat gleich drei oder mehr, um sicherzustellen, daß die I_AM_HERE-Multicast-Nachrichten auch dann zu den anderen Endapparaten abgeliefert werden, wenn die Empfangspuffer übergelaufen sind. Die I_AM_HERE-Multicast-Nachrichten werden in zufälligen Intervallen gesendet (z.B. jeweils zwischen null und zwei Sekunden). Das Senden der N I_AM_HERE-Nachrichten in zufälligen Intervallen anstatt von festen Intervallen kann das Risiko reduzieren, dass die I_AM_HERE-Multicast-Nachricht von einem oder mehreren Endapparaten nicht empfangen wird. Bei Verwendung von festen Intervallen kann die Reihenfolge, in der I_AM_HERE-Nachrichten von verschiedenen Endapparaten während jedes der N Übertragungsintervalle an einem gegebenen Endapparat erscheinen würden, für jedes Intervall gleich sein, und die zuletzt ankommenden Nachrichten können beständig fallengelassen werden. Indem Nachrichten in zufälligen Intervallen gesendet werden, kann die Reihenfolge, in der Nachrichten während eines Intervalls ankommen, von der Reihenfolge verschieden sein, in der sie während eines anderen Intervalls ankommen. Der Endapparat bzw. die Endapparate, dessen bzw. deren Nachricht bzw. Nachrichten fallengelassen werden, kann bzw. können sich also von Intervall zu Intervall ändern und es kann eine größere Wahrscheinlichkeit bestehen, daß eine der N I_AM_HERE-Nachrichten von einem bestimmten Endapparat empfangen wird.
  • Es wird angemerkt, daß die obige Beschreibung ein Nachrichtenübermittlungsprotokoll voraussetzt, bei dem der Empfang individueller Nachrichten nicht ausdrücklich bestätigt wird, was im Hinblick einer möglichen Reduktion des Gesamtnachrichtenverkehrs im Vergleich zu einem Protokoll, bei dem eine ausdrückliche Bestätigung beim erfolgreichen Empfang einer Nachricht gesendet wird, bevorzugt werden kann.
  • Während des Anfangszustands 800, wartet der Endapparat 100-X außerdem auf Nachrichten von anderen Endapparaten in dem Netzwerk 30, die Informationen enthalten, die notwendig sind, um die Routing-Tabelle 200 aufzubauen oder zu aktualisieren (4).
  • Von dem Anfangszustand 800 aus geht der Automat beim Auftreten eines beliebigen von drei Ereignissen in einen DN-Sondierungszustand 900 über. Das erste Ereignis ist das Ablaufen eines vorbestimmten Zeitintervalls, das dafür bestimmt ist, dem Endapparat 100-X genug Zeit zu geben, um I-_AM_HERE-Nachrichten von anderen Endapparaten zu empfangen und seine Routing-Tabelle 200 aufzubauen. Das zweite Ereignis ist eine Bestimmung, daß der aktuelle Endapparat 100-X bereits eine DN in seinem nichtflüchtigen Speicher gespeichert hat. Das dritte Ereignis ist der Empfang einer INACTIVE_PEER_ASSERT-Nachricht mit einer MAC-Adresse, die mit der MAC-Adresse des aktuellen Endapparats 100-X übereinstimmt, wodurch eine Situation widergespiegelt wird, in der der aktuelle Endapparat 100-X zu dem Aktivzustand zurückkehrt und gerade eine in seinem Namen durch sein Surrogat gesendete INACTIVE_PEER_ASSERT-Nachricht empfangen hat.
  • Im DN-Sondierungszustand 900 wählt der Endapparat 100-X eine voraussichtliche DN und sendet M DN_PROBE-Multicast-Nachrichten zu den anderen Endapparaten, um zu bestimmen, ob etwaige der anderen Endapparate etwaige Einwände dagegen haben, daß der Apparat 100-X die voraussichtliche DN beansprucht, wobei M eine ganze Zahl größer oder gleich eins ist. Die Idee des möglichen Sendens von mehr als einer DN_PROBE- Nachricht besteht darin, die Wahrscheinlichkeit zu vergrößern, daß jeder der anderen Endapparate in dem Netzwerk mindestens eine Kopie der Nachricht empfängt. Bei der vorliegenden Ausführungsform enthält die DN_PROBE- Nachricht die MAC-Adresse und die IP-Adresse des sendenden Endapparats sowie die voraussichtliche DN, die von dem sendenden Endapparat gewählt wurde. Wenn keine Antwort auf die DN_PROBE-Nachrichten von den anderen Endapparaten kommt, wird angenommen, daß kein anderer Endapparat etwaige Einwände hat und der Endapparat 100-X tritt in einen DN-Setzzustand 700 ein, indem er die DN als seine eigene beansprucht. Dies geschieht gleichgültig, ob die voraussichtliche DN des aktuellen Endapparats eine frisch gewählte DN oder eine vom nichtflüchtigen Speicher abgerufene persistente DN ist.
  • Der DN-Setzzustand 700 repräsentiert den stationären Zustand, in dem der Endapparat 100-X eine DN erfolgreich beansprucht hat. In diesem Zustand sendet der Endapparat 100-X periodisch eine PEER_ASSERT-Multicast-Nachricht zu den anderen Endapparaten in dem Netzwerk, um einen periodischen Indikator bereitzustellen, daß der Endapparat aktiv und „gesund“ bleibt. Die PEER_ASSERT-Nachricht der vorliegenden Ausführungsform enthält eine IP-Adresse, eine MAC-Adresse und eine beanspruchte DN. Außerdem enthält die PEER_ASSERT-Nachricht den aktuellen Wert eines Zählers, mit dem der Ablauf der Zeit verfolgt wird (wie später ausführlicher in dem nachfolgenden Abschnitt „ZEIT- UND DATENSYNCHRONISATION“ beschrieben werden wird). Wenn sich zeigt, daß während des DN-Setzzustands 700 ein Konflikt zwischen der beanspruchten DN und einer von einem anderen Endapparat beanspruchten DN besteht, geht der Automat wieder in den DN-Sondierungszustand 900 über. Ein Beispiel für eine Situation, in der sich zeigen kann, daß ein Konflikt besteht, kann der Fall sein, in dem ein Netzwerk in zwei Subnetzwerke segmentiert wird (z.B. beim Ausfall eines virtuellen privaten Netzwerks (VPN), das normalerweise zwei Subnetzwerke an geographisch abgesetzten Standorten verbindet). Während das Netzwerk segmentiert ist, ist es möglich, daß Endapparate in separate Segmente gesteckt werden, wobei verschiedene Endapparate auf verschiedenen Subnetzwerken dieselbe DN beanspruchen. Wenn die Netzwerksegmente wieder verbunden werden, kann sich zeigen, daß ein Konflikt besteht. In diesem Fall ist eine Auflösung des Konflikts notwendig.
  • 6 ist ein Flußdiagramm der Funktionsweise eines Endapparats 100-X im Anfangszustand 800 von 5. Zu Anfang wird bestimmt, ob eine DN für den aktuellen Endapparat 100-X persistiert hat (810). Bei der vorliegenden Ausführungsform hat eine DN persistiert, wenn der Endapparat 100-X zuvor den Initialisierungszustand 800, den DN-Sondierungszustand 900 und den DN-Setzzustand 700 durchlaufen hat, um so zuvor eine DN beansprucht zu haben. In diesem Fall ist die beanspruchte DN in nichtflüchtigem Speicher gespeichert worden, wie zum Beispiel in einem Flash-Speicher. Der Zweck des Speicherns der DN in nichtflüchtigem Speicher ist das Erhalten der DN, falls der Endapparat 100-X inaktiv wird, z.B. aufgrund eines versehentlichen Verlusts der Stromversorgung oder einer Trennung von dem Netzwerk 30, so daß die DN bei Rückkehr in einen Aktivzustand wieder beansprucht werden kann.
  • Wenn bei 810 bestimmt wird, daß eine DN für den Endapparat 100-X persistiert hat, geht der Automat zu dem DN-Sondierungszustand 900 über (905). Die Annahme besteht in diesem Fall darin, daß die anderen Endapparate in dem Netzwerk bereits über die Präsenz des Endapparats 100-X in dem Netzwerk benachrichtigt wurden, auch wenn die anderen Endapparate den Endapparat 100-X gerade als inaktiv betrachten.
  • Wenn dagegen in 810 bestimmt wird, daß der Endapparat keine persistente DN aufweist, zeigt dies an, daß sich der Endapparat 100-X bislang in einem unkonfigurierten (im Hinblick auf DN und Routing-Tabelle 200) „fabrikfrischen“ Zustand befindet. In diesem Fall wird ein Zähler zum Verfolgen, wieviele der N Instanzen der I_AM_HERE-Nachricht gesendet wurden, auf null initialisiert (812). Dann wird ein Zufallstimer zwischen 0 und 2 Sekunden und ein zweiter Timer für 2 Sekunden gesetzt (814). Das Intervall von 2 Sekunden für den zweiten Timer soll sicherstellen, daß genug Zeit zum Empfangen von Nachrichten von anderen Netzwerkeinrichtungen zum Zwecke des Aufbauens der Routing-Tabelle 200 (4) gegeben wird. Diese Dauer könnte bei anderen Ausführungsformen natürlich unterschiedlich sein. Der Zähler wird inkrementiert (816) und der Endapparat tritt in einen Zustand „Warte auf Nachrichten“ (820) ein, in dem er auf den Empfang einer Nachricht wartet.
  • Wenn der Zufallstimer während des Warte-auf-Nachricht-Zustands abläuft, wird eine I_AM_HERE-Multicast-Nachricht zu den anderen Endapparaten (822) gesendet und der Endapparat 100-X kehrt zu dem Warte-auf-Nachricht-Zustand zurück (820).
  • Etwaige von etwaigen anderen Endapparaten in dem Netzwerk bei 820 empfangene Nachrichten werden auf einen Typ geprüft (840) .
  • Wenn die empfangene Nachricht eine DN_CONFLICT-Nachricht ist, ignoriert der Endapparat die DN_CONFLICT-Nachricht (da diese Nachricht im Anfangszustand 800 nicht empfangen werden sollte) und der Automat kehrt zu dem Warte-auf-Nachricht-Zustand zurück (820).
  • Wenn die empfangene Nachricht eine von einem anderen Endapparat gesendete I_AM_HERE-Nachricht ist, werden Daten aus der empfangenen I_AM_HERE-Nachricht (z.B. MAC-Adresse und IP-Adresse) zu der Routing-Tabelle 200 hinzugefügt.
  • Wenn die empfangene Nachricht eine von einem anderen Endapparat gesendete PEER_ASSERT-Nachricht oder DN_PROBE-Nachricht ist, dann können Daten in der PEER_ASSERT- oder DN_PROBE-Nachricht zu der Routing-Tabelle 200 hinzugefügt werden (diese Nachrichten werden später ausführlicher beschrieben).
  • Wenn die empfangene Nachricht INACTIVE-PEER_ASSERT ist, können in der INACTIVE-PEER_ASSERT-Nachricht enthaltene Daten zur Aktualisierung der Routing-Tabelle 200 verwendet werden (870) (z.B. wenn der sendende Endapparat sich zuvor nicht in der Routing-Tabelle 200 befand, kann er hinzugefügt werden). Danach wird die MAC-Adresse in der INACTIVE-PEER_ASSERT-Nachricht mit der lokalen MAC-Adresse verglichen (d.h. der MAC-Adresse des aktuellen Endapparats 100-X) (872).
  • Wenn sich zeigt, daß sie gleich sind, repräsentiert dies eine Situation, in der der aktuelle Endapparat 100-X nach einer Periode der Inaktivität in einen Aktiv-Zustand zurückkehrt und gerade eine Nachricht von einem anderen Endapparat empfangen hat, der im Namen des Endapparats 100-X INACTIVE-PEER_ASSERT-Nachrichten sendet. In diesem Fall geht der Endapparat in den DN-Sondierungszustand über (905).
  • Wenn dagegen die MAC-Adresse in der empfangenen INACTIVE-PEER_ASSERT-Nachricht von der lokalen MAC-Adresse verschieden ist, kehrt der Endapparat zu dem Warte-auf-Nachricht-Zustand zurück und wartet auf weitere Nachrichten (820).
  • Wenn während des Warte-auf-Nachricht-Zustands der zweite Timer abläuft, wird bestimmt, ob der Zähler einen Maximalwert von N erreicht hat (880).
  • Wenn diese Bestimmung zeigt, daß der Wert des Zählers N nicht überstiegen hat, zeigt dies an, daß weniger als N I_AM_HERE-Nachrichten gesendet wurden. In diesem Fall werden der Zufallstimer und der zweite Timer zurückgesetzt (814) und der Wert des Zählers wird inkrementiert (816) bevor man in den Wartezustand zurückkehrt (820).
  • Wenn dagegen die Bestimmung von 880 zeigt, daß der Wert des Zählers gleich N ist, zeigt dies an, daß N I_AM_HERE-Nachrichten gesendet wurden. In diesem Fall geht der Automat des Endapparats 100-X in den DN-Sondierungszustand über (906).
  • 7 ist ein Flußdiagramm der Funktionsweise eines Endapparats 100-X im DN-Sondierungszustand 900 von 5. Wie in 7 gezeigt, gibt es zwei Eintrittspunkte in den DN-Sondierungszustand 800. Der erste Eintrittspunkt kommt von dem Anfangszustand 900 bei 905 und repräsentiert eine Situation, in der der aktuelle Endapparat nach einer Periode der Inaktivität seine DN vom nichtflüchtigen Speicher abgerufen hat. Der zweite Eintrittspunkt kommt auch von dem Anfangszustand 800, aber bei 906, und repräsentiert eine Situation, in der der Endapparat 100-X nicht zuvor eine DN beansprucht hat. In dem letzteren Fall wählt der Endapparat bei 910 eine voraussichtliche DN (im ersteren Fall ist die voraussichtliche DN die abgerufene DN).
  • Um eine voraussichtliche DN zu wählen (910) bestimmt der Endapparat 100-X seine Ordinalposition in der (sortierten) Liste von Endapparaten der Routing-Tabelle 200 (4). Wenn zum Beispiel der Endapparat 100-X der erste in der Liste ist, kann die gewählte voraussichtliche DN 1 (seine Ordinalposition) plus einer Basis-DN von etwa 200 für eine voraussichtliche DN von 201 sein. Durch Basieren der Auswahl der voraussichtlichen DN auf der mit dem Endapparat assoziierten eindeutigen Ordinalposition wird eine Auswahl einer eindeutigen voraussichtlichen DN durch jeden Endapparat in dem Szenario gefördert, in dem sich mehrere fabrikfrische Endapparate gleichzeitig einem Netzwerk anschließen, das keine existierenden Endapparate mit zuvor zugewiesenen DNs aufweist.
  • Um vor potentiellen DN-Konflikten zu schützen, die auftreten können, wenn der Endapparat 100-X sich einem etablierten Netzwerk anschließt, konsultiert der Endapparat 100-X bei 910 außerdem seine Routing-Tabelle 200 (4), um zu bestimmen, ob die gewählte voraussichtliche DN bereits einem anderen Endapparat zugewiesen ist. Wenn die voraussichtliche DN bereits zugewiesen ist, kann die frisch verbundene DN eine andere voraussichtliche DN wählen, z.B. durch Addieren eines Offset von zum Beispiel 1 zu der größten in der Liste gefundenen DN.
  • Im Anschluß an 910 (oder von dem Eintrittspunkt 905 aus) wird ein Zähler, dessen Zweck darin besteht, die Anzahl der Instanzen der DN_PROBE-Nachricht, die gesendet wurden, zu verfolgen, initialisiert (912) und inkrementiert (914). Es wird eine Instanz der DN_PROBE-Nachricht gesendet, und ein Timer, mit dem das (feste oder zufällige) Zeitintervall zwischen DN_PROBE-Nachrichteninstanzen gezählt wird, wird gesetzt (916). Der Endapparat 100-X tritt dann in einen „Warte-auf-Ereignis“-Zustand (920) ein.
  • Wenn ein Endapparat dieselbe DN wie ein anderer, auch im Sondierungszustand befindlicher Endapparat wählt, betrachtet das Endgerät die MAC-Adresse beider in dem Netzwerk sondierten Einrichtungen (es wird ein Konflikt erhoben). Bei einer Ausführungsform behält, wenn ein Konflikt zwischen Endapparaten mit derselben DN besteht, der Endapparat mit der niedrigsten MAC-Adresse die DN und der andere Endapparat muß eine andere DN erhalten.
  • Es wird angemerkt, daß ein weiterer Eintrittspunkt (908) in den DN-Sondierungszustand 900 von dem DN-Setzzustand 700 aus existiert. Dieser Eintrittspunkt 908 repräsentiert eine Situation, in der es sich gezeigt hat, daß ein Konflikt zwischen der von dem Endapparat 100-X beanspruchten DN und der von einem anderen oder anderen der anderen Endapparate in dem Netzwerk beanspruchten öder gewünschten DN besteht. In einem solchen Fall beginnt die Operation wie oben beschrieben bei 910.
  • Wenn der Timer abläuft, bestimmt der Endapparat 100-X, von dem Warte-auf-Ereignis-Zustand (920) aus, ob die gewünschte Anzahl M von DN_PROBE-Nachrichten bereits gesendet wurde (980). Wenn bestimmt wird, daß bereits M DN_PROBE-Nachrichten gesendet wurden, bestimmt der Endapparat als nächstes, ob die voraussichtliche DN aus DN in dem nichtflüchtigen Speicher (982) abgerufen wurde. Wenn die Bestimmung 982 positiv ausfällt, geht der Automat über 707 in den DN-Setzzustand 700 über, andernfalls geht er über 705 in den DN-Setzzustand 700 über.
  • Wenn dagegen bei 980 bestimmt wird, daß weniger als M DN_PROBE-Nachrichten gesendet wurden, kehrt die Operation zu 914 zurück.
  • Wenn eine Nachricht von einem anderen Endapparat empfangen wird, hängt von dem Warte-auf-Ereignis-Zustand (920) aus die weitere Operation von dem Nachrichtentyp der empfangenen Nachricht ab, der bei 930 bestimmt wird.
  • Wenn der Nachrichtentyp eine I_AM_HERE-Nachricht anzeigt, fügt der Endapparat in der I_AM_HERE-Nachricht enthaltene Daten zu der Routing-Tabelle 200 hinzu, wenn die Daten nicht bereits präsent sind (932), bevor er in den Warte-auf-Ereignis-Zustand (920) zurückkehrt.
  • Wenn der Nachrichtentyp eine PEER_ASSERT-Nachricht anzeigt, wird die DN aus der PEER_ASSERT-Nachricht mit der lokalen DN (d.h. der gewählten voraussichtlichen DN) verglichen (934). Wenn die DNs übereinstimmen, repräsentiert dies eine Situation, in der ein anderer Endapparat die DN setzt, die der Endapparat 100-X versuchshalber ausgewählt hat. In diesem Fall kehrt die Operation zu 910 zurück. Wenn dagegen die DNs nicht übereinstimmen, wird die Routing-Tabelle 200 mit den in der PEER_ASSERT-Nachricht enthaltenen Daten aktualisiert, wenn ein Eintrag für das Endgerät, das die PEER_ASSERT-Nachricht gesendet hat, bereits existiert, und wenn der Eintrag nicht bereits exitiert, werden die in der PEER_ASSERT-Nachricht enthaltenen Daten zu der Routing-Tabelle 200 hinzugefügt, um den Eintrag zu erzeugen (932).
  • Wenn der Nachrichtentyp anzeigt, daß eine INACTIVE-PEER_ASSERT-Nachricht empfangen wurde, werden die in der INACTIVE-PEER_ASSERT-Nachricht enthaltenen Daten zu der Routing-Tabelle 200 hinzugefügt, wenn nicht bereits ein Eintrag existiert, oder die Routing-Tabelle 200 wird mit den Daten aktualisiert, wenn der Eintrag existiert (940). Dann wird die MAC-Adresse in der INACTIVE-PEER_ASSERT-Nachricht mit der MAC-Adresse des Endapparats 100-X verglichen (942).
  • Wenn die MAC-Adressen unterschiedlich sind, kehrt der Endapparat 100-X zu dem Warte-auf-Ereignis-Zustand (920) zurück.
  • Wenn dagegen die MAC-Adressen gleich sind, repräsentiert dies eine Situation, in der der aktuelle Endapparat 100-X nach einer Periode der Inaktivität in den Aktiv-Zustand zurückkehrt und gerade eine Nachricht von einem anderen Endapparat empfangen hat, der INACTIVE-PEER_ASSERT-Nachrichten im Namen des Endapparats 100-X sendet. In diesem Fall erfolgt ein weiterer Vergleich (944) zwischen der DN in der INACTIVE-PEER_ASSERT-Nachricht und der gerade sondierten DN (d.h. der gewählten voraussichtlichen DN).
  • Wenn die DNs nicht übereinstimmen, repräsentiert dies eine Situation, in der der Endapparat 100-X gerade eine DN sondiert, die von der in der INACTIVE-PEER_ASSERT-Nachricht spezifizierten DN unterschiedlich ist. Dazu kann es kommen, wenn die in dem nichtflüchtigen Speicher des Endapparats 100-X gespeicherte persistente DN gelöscht oder verfälscht wurde, während der Endapparat 100-X inaktiv war. In diesem Fall wird, um zu verhindern, daß der Endapparat 100-X eine andere DN als die zuvor beanspruchte sondiert, die gewählte voraussichtliche DN auf die DN aus der Nachricht (946) zurückgesetzt, und die Operation kehrt zu 912 zurück, so daß der Endapparat 100-X Schritte durchführt, um seine zuvor beanspruchte DN zu sondieren.
  • Wenn sich dagegen zeigt, daß die DNs übereinstimmen (bei 944), repräsentiert dies eine Situation, in der der Endapparat 100-X gerade dieselbe DN wie in der INACTIVE-PEER_ASSERT-Nachricht spezifiziert sondiert, wodurch die zuvor von dem Endapparat 100-X beanspruchte DN, bevor er als inaktiv bestimmt wurde, repräsentiert werden sollte. In diesem Fall kehrt die Operation zu dem Warte-auf-Ereignis-Zustand (920) zurück.
  • Wenn der Nachrichtentyp anzeigt, daß eine DN_CONFLICT-Nachricht empfangen wird, kann dies eine Situation repräsentieren, in der ein anderer Endapparat Einwände gegen die sondierte voraussichtliche DN hat. In diesem Fall erfolgt ein Vergleich (950) zwischen der DN in der DN_CONFLICT-Nachricht und der gerade sondierten DN.
  • Wenn die DNs nicht übereinstimmen, wird keine weitere Aktion in bezug auf die DN_CONFLICT-Nachricht unternommen und die Operation kehrt zu dem Warte-auf-Ereignis-Zustand (920) zurück. Falls die DN_CONFLICT-Nachricht gemulticastet wird, repräsentiert dies das Ignorieren einer für einen anderen Endapparat bestimmten DN_CONFLICT-Nachricht. Falls die DN_CONFLICT-Nachricht geunicastet wird, kann dies eine Situation repräsentieren, in der eine zweite von zwei DN_CONFLICT-Nachrichten von verschiedenen Endapparaten empfangen wurde und ignoriert wird, weil, da die erste DN_CONFLICT-Nachricht empfangen wurde, der aktuelle Endapparat damit begonnen hat, eine andere DN zu sondieren, als die, die er zuvor sondiert hat.
  • Wenn sich dagegen bei 950 zeigt, daß die DNs übereinstimmen, repräsentiert dies eine Situation, in der ein anderer Endapparat Einwände gegen die von dem aktuellen Endapparat 100-X voraussichtlich gewählte DN hat. In diesem Fall kehrt die Operation zu 910 zurück, so daß eine andere voraussichtliche DN gewählt und sondiert werden kann.
  • Wenn der Nachrichtentyp anzeigt, daß eine DN_PROBE-Nachricht empfangen wurde, sondiert ein anderer Endapparat eine gewählte voraussichtliche DN sehr ähnlich wie der aktuelle Endapparat 100-X seine gewählte voraussichtliche DN sondiert. Die voraussichtliche DN des anderen Endapparats (die in der ankommenden DN_PROBE-Nachricht angegeben wird) wird mit der lokal ausgewählten voraussichtlichen DN verglichen (960).
  • Wenn die DNs nicht übereinstimmen, wird keine weitere Aktion in bezug auf die ankommende DN_PROBE-Nachricht unternommen und die Operation kehrt zu dem Warte-auf-Ereignis-Zustand (920) zurück.
  • Wenn sich dagegen bei 960 zeigt, daß die DNs übereinstimmen, bedeutet dies, daß ein anderer Endapparat dieselbe DN wie der aktuelle Endapparat 100-X sondiert. In diesem Fall existiert ein Konflikt zwischen den voraussichtlichen DNs. Bei der vorliegenden Ausführungsform werden solche Konflikte auf der Basis der eindeutigen MAC-Adressen der jeweiligen Endapparate aufgelöst. Insbesondere wird es dem Endapparat mit der niedrigsten MAC-Adresse („niedrigste aktive MAC“ oder LAM) erlaubt, die DN zu beanspruchen, und der andere Endapparat wählt eine andere DN. Es versteht sich, daß auch andere gleichermaßen gültige Konfliktauflösungsverfahren angewandt werden können. Zum Beispiel kann es bei einer alternativen Ausführungsform der höchsten aktiven MAC erlaubt werden, die DN zu beanspruchen. Die Einzelheiten des gewählten Verfahrens sind nicht wichtig, solange das Verfahren einheitlich in jedem Endapparat angewandt wird.
  • Gemäß dem operativen Konfliktauflösungsverfahren wird also die MAC-Adresse in der DN_PROBE-Nachricht mit der lokalen MAC-Adresse verglichen (962). Wenn die MAC-Adresse in der DN_PROBE-Nachricht einen kleineren Wert als die lokale MAC-Adresse aufweist, wird es dem anderen Endapparat erlaubt, die DN zu beanspruchen, und der aktuelle Endapparat kehrt zu 910 zurück, um eine andere voraussichtliche DN zu wählen. Andernfalls ignoriert der Endapparat die DN_PROBE-Nachricht durch Rückkehr in den Warte-auf-Ereignis-Zustand (920) zurück, wodurch effektiv seine voraussichtliche DN aufrechterhalten wird.
  • 8 ist ein Flußdiagramm der Funktionsweise des Endapparats 100-X in dem in 5 gezeigten DN-Setzzustand. Wie bereits beschrieben, kann der Endapparat von dem DN-Sondierungszustand 900 aus ohne persistente DN in diesen Zustand übergehen (705). In diesem Fall nimmt der Endapparat 100-X anfänglich die voraussichtliche DN an, die gerade in dem DN-Sondierungszustand 900 sondiert wurde (710). Danach wird eine gemulticastete PEER_ASSERT-Nachricht zu anderen Endapparaten in dem Netzwerk gesendet 712.
  • Alternativ dazu kann der Endapparat von dem DN-Sondierungszustand 900 aus mit einer persistenten DN (707) übergehen, wobei in diesem Fall die Operation bei 712 beginnt.
  • Nach 712 wird ein Timer für ein zufälliges Zeitintervall zwischen 0 Sekunden und 2 Sekunden gesetzt (714). Der Endapparat 100-X wartet dann auf den Empfang einer Nachricht oder auf das Ablaufen eines Timers in dem „Warte-auf-Nachricht“-Zustand (720).
  • Wenn der Timer abläuft, kehrt die Operation zu 712 zurück und es wird eine weitere Multicast-PEER_ASSERT-Nachricht gesendet.
  • Wenn eine DN_CONFLICT-Nachricht empfangen wird, verifiziert der Endapparat, ob die in der DN_CONFLICT-Nachricht enthaltene DN mit der lokalen DN in Konflikt steht (732).
  • Wenn bestimmt wird, daß die in der DN_CONFLICT-Nachricht enthaltene DN mit der lokal beanspruchten DN übereinstimmt, zeigt dies einen Konflik aufgrund duplizierter DNs in dem Netzwerk an. In diesem Fall wird eine weitere Bestimmung durchgeführt, ob der abgesetzte konfliktierende Endapparat aktiv ist (733).
  • Wenn sich zeigt, daß der abgesetzte Apparat aktiv ist und wenn das operative Konfliktauflösungsverfahren (d.h. niedrigste aktive MAC-Adresse behält recht) anzeigt, daß der aktuelle Endapparat seine beanspruchte DN behalten sollte (734), kehrt die Operation zu 712 zurück, wodurch bewirkt wird, daß der Endapparat sofort eine weitere PEER_ASSERT-Nachricht sendet.
  • Wenn dagegen in 734 bestimmt wird, daß der aktuelle Endapparat seine beanspruchte DN nicht behalten sollte, wird die Routing-Tabelle 200 (4) mit den Daten in der DN_CONFLICT-Nachricht aktualisiert (735). Genauer gesagt kann der Endapparat mit der konfliktierenden DN zusammen mit seiner DN zu der Routing-Tabelle 200 hinzugefügt werden. Der Zweck davon ist, daß wenn der aktuelle Endapparat 100-X nachfolgend eine voraussichtliche DN auswählt, die zufällig mit der konfliktierenden DN übereinstimmt, eine Prüfung der voraussichtlichen DN im Vergleich zu den DNs in der Routing-Tabelle 200 den Konflikt enthüllt.
  • Danach werden jegliche Konfliktwarnungen deaktiviert (736) und der Endapparat 100-X kehrt zu dem DN-Sondierungszustand 900 zurück (908). Eine Konfliktwarnung ist eine Benachrichtigung über einen DN-Konflikt, die bei bestimmten Ausführungsformen zu einem Systemadministrator gesendet werden kann. Konfliktwarnungen werden gewöhnlich nur in solchen Fällen erhoben, in denen ein Systemadministrator manuell eine DN auf die beanspruchte DN eines existierenden Endapparats zurückgesetzt hat.
  • Wenn in 733 bestimmt wird, daß die abgesetzte Endeinrichtung inaktiv ist, werden etwaige präsente DN-Konfliktwarnungen deaktiviert (736) und der Endapparat geht in den DN-Sondierungszustand 900 über (908).
  • Nochmals mit Bezug auf den Warte-auf-Nachricht-Zustand 720 wird, wenn eine PEER_ASSERT-Nachricht empfangen wird und wenn die DN in der PEER_ASSERT-Nachricht gleich der DN eines oder mehrerer inaktiver Endapparate in der Routing-Tabelle 200 ist, dadurch eine Situation repräsentiert, in der möglicherweise von dem aktuellen Endapparat 100-X gefordert wird, im Namen eines inaktiven Endapparats eine INACTIVE_PEER_ASSERT-Nachricht zu senden. Zu dieser Situation kann es zum Beispiel kommen, wenn ein Netzwerk in Subnetzwerke segmentiert wird, so daß Endapparate in einem Subnetzwerk Endapparate in einem, anderen Subnetzwerk als inaktiv betrachten. Ein Endapparat in einem Subnetzwerk kann PEER_ASSERT-Nachrichten senden, während sein Surrogat, das sich in dem anderen Subnetzwerk befindet, in seinem Namen INACTIVE-PEER_ASSERT-Nachrichten sendet. Nach Wiederverbindung der Subnetzwerke könnte das Surrogat ein PEER_ASSERT von dem Endapparat empfangen, von dem es noch glaubt, daß er inaktiv ist.
  • Die Bestimmung, ob der aktuelle Endapparat 100-X eine INACTIVE_PEER_ASSERT-Nachricht im Namen eines inaktiven Endapparats senden soll, basierte auf einem operativen Verfahren zur Bestimmung, welcher Endapparat für das Senden von INACTIVE_PEER_ASSERT-Nachrichten im Namen eines inaktiven Peers verantwortlich ist (oder welche Endapparate verantwortlich sind). Bei der vorliegenden Ausführungsform weist das operative Verfahren diese Verantwortung einem und nur einem Endapparat pro gegebenem inaktiven Peer zu (wobei möglicherweise derselbe Endapparat für mehrere inaktive Peers verantwortlich ist). Die Idee, nur einen Endapparat für das Senden von INACTIVE_PEER_ASSERT-Nachrichten für einen beliebigen gegebenen inaktiven Peer verantwortlich zu machen, ist, eine unnötige Übertragung duplizierter INACTIVE_PEER_ASSERT-Nachrichten zu vermeiden. Bei solchen Verfahren ist es wünschenswert sicherzustellen, daß jeder Endapparat für eine Dauer, die länger als die Zeit ist, die erforderlich ist, um einen inaktiven Endapparat zu erkennen, in seinem Anfangszustand 800 (5) bleibt.
  • Das operative Verfahren ist in der nachfolgenden Tabelle dargestellt: Tabelle 1: Für inaktive Peer-Setzungen verantwortliche Peers.
    Fern.-App. Zustand Sendet Inaktiv- Setzungen? Im Namen von?
    A Inaktiv - -
    B Aktiv Ja B
    C Inaktiv - -
    D Aktiv Nein -
    E Aktiv Ja F, G
    F Inaktiv - -
    G Inaktiv - -
    H Aktiv Ja A
  • Die ersten beiden Spalten von Tabelle 1 repräsentieren eine Teilmenge der in der Routing-Tabelle 200 von 4 geführten Informationen, die für die Bestimmung von „Surrogat“-Peers (d.h. Peers, die für das Senden von INACTIVE_PEER_ASSERT-Nachrichten im Namen anderer inaktiver Peers verantwortlich sind) relevant ist. Jede Zeile in Tabelle 1 repräsentiert eine Netzwerkeinrichtung, wie in der ersten Spalte identifiziert, in einem hypothetischen Netzwerk. Es versteht sich, daß die Netzwerkeinrichtungen von Tabelle 1 nach einer bestimmten eindeutigen Kennung, wie zum Beispiel MAC-Adressen, wie in der Routing-Tabelle 200, sortiert sind. Der Aktiv- oder Inaktiv-Status jeder Netzwerkeinrichtung wird in der zweiten Spalte von Tabelle 1 angegeben.
  • Bei dem operativen Verfahren wirkt eine aktive Netzwerkeinrichtung als Surrogat für jede inaktive Netzwerkeinrichtung, die ihr in Tabelle 1 folgt (d.h. sich in einer niedrigeren Zeile befindet), wobei keine aktive Netzwerkeinrichtung in der Liste zwischen dem Surrogat und der inaktiven Netzwerkeinrichtung dazwischen kommt. Wie zum Beispiel in Tabelle 1 gezeigt, wirkt die Netzwerkeinrichtung E als Surrogat für die Netzwerkeinrichtungen F und G, da diese Einrichtungen beide inaktiv sind und der Einrichtung E folgen, wobei keine andere aktive Einrichtung zwischen ihnen und Einrichtung E kommt.
  • Falls eine inaktive Netzwerkeinrichtung der ersten aktiven Netzwerkeinrichtung in der sortierten Liste zuvorkommt (z.B. wie im Fall für die Netzwerkeinrichtung A), dann wird die letzte aktive Netzwerkeinrichtung in der sortierten Liste (Netzwerkeinrichtung A) als ihr Surrogat wirken.
  • Es versteht sich, daß bei alternativen Ausführungsformen anderen Verfahren zum Zuweisen von Surrogaten verwendet werden können. Zum Beispiel kann ein alternatives Verfahren eine aktive Netzwerkeinrichtung als Surrogat für inaktive Einrichtungen zuweisen, die ihr in der Routing-Tabelle vorausgehen, statt ihr nachzufolgen. Bei einem anderen Verfahren kann eine Netzwerkeinrichtung als Surrogat für alle inaktiven Einrichtungen neben ihr in der Tabelle wirken, wobei der Begriff „neben“ hier mehrere zusammenhängende inaktive Netzwerkeinrichtungen entweder unmittelbar über oder unmittelbar unter einem Surrogat in einer Routing-Tabelle bedeutet. Bei dem letzteren Verfahren besitzt jede inaktive Netzwerkeinrichtung zwei Surrogate. Dieser Redundanzgrad kann bei bestimmten Ausführungsformen erwünscht sein.
  • Wieder mit Bezug auf 8 verifiziert der Endapparat 100-X im Anschluß an 738, ob eine in der empfangenen PEER_ASSERT-Nachricht enthaltene DN mit der lokal beanspruchten DN übereinstimmt (740). Wenn sie übereinstimmen, schreitet die Operation wie zuvor beschrieben mit 734 voran. Wenn die DNs nicht übereinstimmen, fügt der Endapparat 100-X entweder die Daten in der PEER_ASSERT-Nachricht zu der Routing-Tabelle hinzu oder verwendet sie zum Aktualisieren des relevanten Eintrags in der Tabelle (741).
  • Als nächstes wird bestimmt, ob die in der PEER_ASSERT-Nachricht enthaltene DN einer DN eines inaktiven Eintrags entspricht, für den der aktuelle Endapparat 100-X als Surrogat wirkt (742). Wenn die Bestimmung positiv ausfällt, wird eine DN_CONFLICT-Nachricht als eine Multicast-Nachricht gesendet, die einen Konflikt von DNs anzeigt (746), bevor zu 720 zurückgekehrt wird, um auf eine weitere Nachricht zu warten. Wenn die Bestimmung von 742 negativ ausfällt, kehrt der Endapparat 100-X sofort zu 720 zurück, um auf eine weitere Nachricht zu warten.
  • Wenn während des Warte-auf-Nachricht-Zustands 720 eine I-_AM_HERE-Nachricht empfangen wird, fügt der Endapparat 100-X den Eintrag in der Routing-Tabelle 200 (4), der dem Endapparat entspricht, von dem die I_AM_HERE-Nachricht stammt, hinzu oder aktualisiert ihn mit Daten aus der I-_AM_HERE-Nachricht (750) und schreitet dann zu 762 voran (unten beschrieben).
  • Wenn bei 720 eine DN_PROBE-Nachricht empfangen wird, vergleicht der Eridapparat die DN in der DN_PROBE-Nachricht mit der lokal beanspruchten DN (760). Wenn sie übereinstimmen, repräsentiert dies eine Situation, in der ein anderer Endapparat die beanspruchte DN des aktuellen Endapparats 100-X als seine voraussichtliche DN gewählt hat. In diesem Fall kehrt die Operation zu 712 zurück, um sofort eine Multicast-PEER_ASSERT-Nachricht zu senden, um effektiv den anderen Endapparat darüber zu benachrichtigen, daß die DN, die er versuchsweise gewählt hat, bereits beansprucht ist.
  • Wenn der Vergleich von 760 zeigt, daß die DNs nicht übereinstimmen, konsultiert der Endapparat 100-X die Routing-Tabelle 200, um zu bestimmen, ob die in der DN_PROBE-Nachricht enthaltene DN einer DN eines inaktiven Endapparats entspricht (762). Wenn die in der DN_PROBE-Nachricht enthaltene DN einem inaktiven Endapparat entspricht, wird eine INACTIVE_ASSERT_MESSAGE-Nachricht zu einem Endapparat gesendet, aus dem die DN_PROBE-Nachricht stammte, vorausgesetzt, daß der aktuelle Endapparat als das Surrogat für diesen inaktiven Endapparat angesehen wird (unter Verwendung des oben beschriebenen operativen Verfahrens). Danach kehrt die Operation zu 720 zurück, um auf eine weitere Nachricht zu warten. Wenn die,in 762 durchgeführte Konsultierung anzeigt, daß der Einleiter der DN_PROBE-Nachricht aktiv ist, kehrt der Endapparat 100-X direkt zu 720 zurück, um auf eine weitere Nachricht zu warten.
  • Wenn also, als Zusammenfassung der Peer-Entdeckungsoperation, mehrere Endapparate, die den Automaten von 5 implementieren, mit einem Netzwerk verbunden sind und an der oben beschriebenen Operation teilnehmen, um an dem stationären Zustand (d.h. dem DN-Setzzustand 700) anzukommen, wird jeder automatisch eine DN gewählt haben, wobei etwaige DN-Konflikte zwischen Endapparaten automatisch ohne Notwendigkeit eines menschlichen Eingriffs aufgelöst wurden. Darüber hinaus wird jeder Endapparat automatisch eine lokale Routing-Tabelle 200 erzeugt haben, die die DN jedes anderen Endapparats in dem Netzwerk gepaart mit anderen Informationen (z.B. IP-Adressen), die ausreichen, um es dem Endapparat zu erlauben, einen beliebigen anderen Endapparat anzurufen, nachdem die DN dieses Endapparats gewählt wurde, enthält. Auch wenn der Endapparat inaktiv wird, wird darüber hinaus seine DN, wenn er wieder mit dem Netzwerk verbunden wird, persistieren.
  • ZEIT- UND DATENSYNCHRONISATION
  • Bei der vorliegenden Ausführungsform werden Zeitsynchronisation und Datensynchronisation durch das Zeit- und Datensynchronisationsmodul 122 (3) durchgeführt, das in 9 ausführlicher dargestellt ist.
  • Wie dargestellt, enthält das Zeit- und Datensynchronisationsmodul 122 Zeitsynchronisationskomponenten, einschließlich eines Zeitsynchronisationsautomaten 986 und eines Zeitgebers 988, der lokale Zeit (auch als ein „lokaler Zeitgeber 988“ bezeichnet) anzeigt. Diese Komponenten werden zum Zwecke der Zeitsynchronisation zwischen Endapparaten verwendet. Der Zeitsynchronisations-Automat 986 regelt die Operation für das periodische Synchronisieren des lokalen Zeitgebers 988 des aktuellen Endapparats mit lokalen Zeitgebern 988 anderer Endapparate. Zwischen Zeitsynchronisationen rückt der Zeitgeber 988 durch Empfangen regelmäßiger Anzeigen des Ablaufens eines vorbestimmten Zeitintervalls (das zweckmäßigerweise als „Ticks“ bezeichnet wird) voran, wobei es sich zum Beispiel um Intervalle von einer Sekunde handeln kann (oder um andere Dauern abhängig von den Bedürfnissen der spezifischen Anwendung). Ticks werden von einem Timer 990 möglicherweise in Form von Interrupts für Softwareentitäten bereitgestellt.
  • Das Modul 122 enthält außerdem Datensynchronisationskomponenten, die ein Datensynchronisationssteuermodul 992 und einen Zähler 994 für die lokale Datensequenznummer (DSN) umfassen. Das Datensynchronisationsmodul 992 regelt die Operation für das Synchronisieren lokaler Kopien von Daten mit Kopien von Daten in abgesetzten Endapparaten. Bei der vorliegenden Ausführungsform ist der lokale DSN-Zähler 994 in jedem Endapparat ein monoton zunehmender Zähler. Wie Fachleuten bekannt ist, ist eine „monoton zunehmende“ Funktion von einem halbgeordneten Definitionsbereich in einen halbgeordneten Wertebereich dergestalt, daß x > y f(x) ≥ f(y) zur Folge hat. Der Zähler 994 repräsentiert das Ablaufen der Zeit, aber nicht unbedingt der aktuellen Zeit. Die DSN der vorliegenden Ausführungsform ist ein monoton zunehmender Wert, der von dem Zähler 994 geführt wird. Höhere DSN-Werte repräsentieren spätere Zeitpunkte als kleinere DSN-Werte. Der Wert der DSN wird bei jedem „Tick“ von dem Timer 990 (9) inkrementiert und kann gelegentlich nichtlinear vorgerückt werden (d.h. um mehr als einen „Tick“), je nachdem wie es notwendig ist, um die lokale DSN mit der DSN an abgesetzten Endapparaten zu synchronisieren. Wie beschrieben werden wird, benutzt das Modul 992 den Wert des lokalen DSN-Zählers 994, um zu bestimmen, ob eine lokale Kopie von Daten oder eine abgesetzte Kopie von Daten wahrscheinlich neuer und deshalb vorzuziehen ist. Bei der vorliegenden Ausführungsform werden Daten in jedem Endapparat in einer Datenbank 996 gespeichert, die lokal zu dem Endapparat gehört.
  • Als veranschaulichendes Beispiel wird die Operation für Zeit- und Datensynchronisation im Kontext der Peer-Entdeckungsoperation beschrieben, so wie sie durch das Peer-Entdeckungsmodul 110 (3, oben beschrieben) bereitgestellt wird. Es versteht sich jedoch, daß Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen außerhalb des Kontext der Peer-Entdeckung durchgeführt werden kann.
  • Beginnend mit der Zeitsynchronisation ist das Ziel der Zeitsynchronisation die Bereitstellung eines Mechanismus, wodurch mehrere Netzwerkeinrichtungen eine einheitliche Sicht der Zeit haben, die als „Netzwerkzeit“ bezeichnet wird.
  • 10 zeigt den Automaten 986 von 9, der die Zeitsynchronisation zwischen Endapparaten regelt. 10 wird von der Perspektive eines beispielhaften Endapparats 100-1, der den Automaten 986 ausführt, aus beschrieben. Es versteht sich, daß auch die anderen Endapparate 100-2, 100-3 und 100-4 denselben Automaten 986 auf ähnliche Weise ausführen.
  • Zu Anfang (z.B. beim Herauffahren des Endapparats 100-1) tritt der Endapparat 100-1 in einen Initialisierungszustand 1700 ein. Im Initialisierungszustand 1700 initialisiert der Endapparat 100-1 seinen lokalen Zeitgeber 988 (9) auf eine Weise, die nachfolgend in Verbindung mit 11 beschrieben werden wird. Die Initialisierung des lokalen Zeitgebers 988 ermöglicht es dem Endapparat 100-1, den Prozeß der Peer-Entdeckung zu beginnen, bevor er eine genaue Kenntnis der „Netzwerkzeit“ besitzt.
  • Wenn die lokale Zeitinitialisierung abgeschlossen ist, geht der Endapparat 100-1 in einen Freilaufzustand 1800 über. Im Freilaufzustand wird der Zeitgeber 988 in dem Endapparat 100-1 gemäß aus dem Timer 990 (9) empfangenen „Ticks“ vorgerückt. Da noch keine Zeitsynchronisation mit anderen Endapparaten durchgeführt worden ist, versteht sich, daß die lokale Zeit in dem Endapparat 100-1 von der in anderen Endapparaten geführten lokalen Zeit verschieden sein kann. Der Freilaufzustand 1800 kann mit dem DN-Sondierungszustand 900 von 5 zusammenfallen.
  • Nach dem Empfang einer PEER_ASSERT-Nachricht geht der Endapparat 100-1 in, einen Aktiv-Zustand 1900 über. Zu Anfang synchronisiert der Endapparat 100-1 seinen lokalen Zeitgeber 988 mit einem in der empfangenen PEER_ASSERT-Nachricht erscheinenden Zeitstempel. Es versteht sich, daß diese Synchronisation durchgeführt wird, gleichgültig, ob die Netzwerkeinrichtung, die die PEER_ASSERT-Nachricht gesendet hat, als Referenz für Zeit angesehen wurde oder nicht. Statt dessen wird der Zeitgeber beim Empfang einer PEER_ASSERT-Nachricht von irgendeinem Endapparat zurückgesetzt, auf der Basis eines impliziten Verständnisses, daß irgendein Endapparat (oder eine andere Netzwerkeinrichtung), der eine PEER_ASSERT-Nachricht gesendet hat, in seinen DN-Setzzustand 700 (5) eingetreten ist. Im DN-Setzzustand 700 wurde eine Netzwerkeinrichtung entweder bereits mit „Netzwerkzeit“ synchronisiert oder ist die einzige aktive Netzwerkeinrichtung in dem Netzwerk und repräsentiert somit de facto die Netzwerkzeit.
  • Im Aktiv-Zustand 1900 synchronisiert der Endapparat 100-1 periodisch seinen lokalen Zeitgeber 988 mit den in empfangenen PEER_ASSERT-Nachrichten empfangenen Zeitstempeln neu. Um jedoch ein übermäßiges Verarbeitungsoverhead zu vermeiden, das resultieren kann, wenn viele Endapparate aktiv PEER_ASSERT-Nachrichten in einem Netzwerk senden, wird die Neusynchronisation nicht mit jeder empfangenen PEER_ASSERT-Nachricht durchgeführt. Statt dessen wird die Synchronisation nur unter Verwendung von PEER_ASSERT-Nachrichten durchgeführt, die von einer Netzwerkeinrichtung (z.B. einem anderen Endapparat oder einer bestimmten anderen Netzwerkeinrichtung) empfangen wird, die als Referenz für Zeit angesehen wurde (auch als „Master-Referenz“ bezeichnet).
  • Die Wahl einer Master-Referenz für die Netzwerkzeit basiert nicht auf einer Fähigkeit der Master-Netzwerkeinrichtung, die Zeit genauer als jede andere Netzwerkeinrichtung führen zu können. Statt dessen ist die Wahl einer Master-Referenz für die Netzwerkzeit einfach eine eindeutige Identifikation einer Netzwerkeinrichtung als die Netzwerkeinrichtung, mit der Zeitsynchronisation durchgeführt werden soll. Jede Netzwerkeinrichtung sollte gleichermaßen dazu fähig sein, zuverlässig die Master-Referenz zu identifizieren. Das Ziel des Zeitsynchronisationsverfahrens besteht darin, sicherzustellen, daß die lokale Zeit aller Netzwerkeinrichtungen synchronisiert ist, nicht unbedingt damit die synchronisierte lokale Zeit die tatsächliche Zeit genau wiedergibt. Die Sicherstellung, daß die gemeinsame „Netzwerkzeit“ die tatsächliche Zeit wiedergibt (die z.B. durch einen Zeitgeber des Typs Stratum 3 geführt wird, wie zum Beispiel bei einem öffentlichen Fernsprechwählnetz (PSTN)) kann separat gewährleistet werden, z.B. durch einen. Zeitjustierbefehl oder eine Nachricht, die periodisch durch eine Netzwerkeinrichtung mit einer genauen Repräsentation der Zeit (wie zum Beispiel eine TTI 40 (1)) ausgegeben oder gesendet, wird, die Anrufer-ID-Informationen von einer ankommenden Verbindung einschließlich Datum-/Zeitinformationen mit einer Genauigkeit von 1 Sekunde empfangen hat, die zum Beispiel von einer PSTN-Vermittlung geführt werden können).
  • Bei der vorliegenden Ausführungsform wird die Master-Netzwerkeinrichtung auf der Basis ihrer MAC-Adresse ausgewählt. Genauer gesagt wird die Netzwerkeinrichtung mit der niedrigsten aktiven MAC-Adresse („LAM“, Lowest Active MAC) als der Master designiert. In alternativen Ausführungsformen können andere Techniken zum Designieren eines Master verwendet werden. Zum Beispiel kann die Einrichtung mit der höchsten aktiven MAC-Adresse gewählt werden. Alternativ dazu kann man eine andere Netzwerkeinrichtungskennung, wie zum Beispiel eine Seriennummer der Netzwerkeinrichtung als die eindeutige Kennung verwenden. Der genaue Ansatz zur eindeutigen Identifizierung der Master-Referenz ist nicht entscheidend, solange jede Netzwerkeinrichtung einheitlich dieselbe Netzwerkeinrichtung als die Master-Referenz auswählt.
  • Wenn der Endapparat 100-1 im Aktiv-Zustand 1900 sich selbst als inaktiv auf „transitive Weise“ ansieht, d.h. inaktiv aber mit der Fähigkeit, beim Auftreten eines Ereignisses automatisch wieder aktiv zu werden, geht der Endapparat 100-1 von dem Aktiv-Zustand 1900 aus wieder in den Freilaufzustand 1800 über. Dazu kann es zum Beispiel kommen, wenn der Endapparat 100-1 einen DN-Konflikt zwischen sich selbst und einem anderen Endapparat erkennt. Die Idee hinter dem Übergang in den Freilaufzustand 1800 in dieser Situation besteht darin, daß, da der Endapparat 100-1 nicht mehr unbedingt zuverlässig mit einem Netzwerk verbunden ist, keine Zeitsynchronisation durchgeführt werden sollte, bis eine zuverlässige Verbindung wiederhergestellt ist.
  • 11 zeigt die Funktionsweise des Endapparats 100-1 während des Initialisierungszustands 1700 von 10. Zu Anfang wird bestimmt, ob ein Wert für den lokalen Zeitgeber persistiert hat, z.B. ob eine Batterie den lokalen Zeitgeber 988 am Laufen gehalten hat (1701). Eine Batterie-Sicherung kann es dem lokalen Zeitgeber 988 erlauben zu laufen, auch wenn der Endapparat 100-1 die Stromversorgung verliert.
  • Wenn die Bestimmung von 1701 positiv ausfällt, wird ein persistierter Wert für die lokale Zeitgeberquelle gelesen (1702). Das „Lesen“ des lokalen Zeitgebers in 1702 kann einfach umfassen, sich auf den aktuellen Wert des lokalen Zeitgebers zu verlassen, unter der Voraussetzung, daß der Zeitgeber weitergelaufen ist, auch wenn der Endapparat 100-1 ohne Stromversorgung gewesen ist.
  • Wenn dagegen die Bestimmung von 1701 negativ ausfällt, wird der lokale Zeitgeber auf einen geeigneten Initialisierungswert initialisiert, wie zum Beispiel auf ein „Nulldatum“ (1703). Das Nulldatum kann dasselbe sein, das das MicroSoft® Disk Operating System („MSDOS“) verwendet, d.h. 1.1.1980, oder kann ein anderer Wert sein.
  • Gleichgültig, ob der lokale Zeitgeber persistiert hat oder auf einen geeigneten Initialisierungswert initialisiert worden ist, wird es ihm ermöglicht, frei zu laufen (1704), und der Endapparat 100-1 geht in den Freilaufzustand 1800 (10) über.
  • 12 zeigt die Funktionsweise des Endapparats 100-1 im Freilaufzustand 1800 von 10. Ein Endapparat kann auf eine von zwei Weisen in den Freilaufzustand 1800 eintreten:
    1. 1. Wie oben beschrieben von dem Initialisierungszustand 1700 aus; oder
    2. 2. von dem Aktiv-Zustand 1900 aus, wenn bestimmt wird, daß der Endapparat inaktiv geworden ist (wird später beschrieben).
  • Bei der vorliegenden Ausführungsform fällt der Freilaufzustand 1800 mit dem DN-Sondierungszustand 900 des Peer-Entdeckungs-Automaten (5) zusammen. Während der Endapparat dabei ist, eine DN zu sondieren, wartet er also auf eine Nachricht, die ein Anzeige der „Netzwerkzeit“ enthält, im Vergleich zu der die Zeitsynchronisation durchgeführt werden kann. Es sollte jedoch auch beachtet werden, daß in bestimmten Fällen ein Endapparat auch nachdem er in den DN-Setzzustand 700 des Peer-Entdeckungs-Automaten vorgerückt ist, in dem Freilaufzustand 1800 bleiben kann. Dazu kann es zum Beispiel kommen, falls der Endapparat die erste in einem Netzwerk zu aktivierende Netzwerkeinrichtung ist, so daß keine andere Netzwerkeinrichtung mit der Fähigkeit zum Senden von PEER_ASSERT-Nachrichten existiert.
  • Mit Bezug auf 12 wartet der Endapparat 100-1 anfänglich auf eine PEER_ASSERT-Nachricht von einem beliebigen anderen Endapparat (1801). Während des Wartens in 1801 läuft der lokale Zeitgeber 988 weiter frei.
  • Nach dem Empfang einer PEER_ASSERT-Nachricht von einem beliebigen anderen Endapparat synchronisiert die Netzwerkeinrichtung ihren lokalen Zeitgeber 988 im Vergleich zu dem Zeitstempel aus der PEER_ASSERT-Nachricht (1802). Die Verwendung des PEER_ASSERT-Nachrichten-Zeitstempels basiert wiederum auf einem impliziten Verständnis, daß eine beliebige Netzwerkeinrichtung, die eine PEER_ASSERT-Nachricht sendet, bereits mit der „Netzwerkzeit“ synchronisiert wurde oder die „Netzwerkzeit“ de facto repräsentiert.
  • Der Klarheit halber, wenn zwei Endapparate gleichzeitig in den „Warte-auf-PEER_ASSERT-Nachricht“-Zustand 1801 eintreten, besteht kein Stillstand zwischen den Endapparaten, da jeder Endapparat unabhängig von dem Warten in dem Zustand 1801 in den DN-Setzzustand 700 (des Peer-Entdeckungs-Automaten von 5) vorrücken kann, wobei in diesem Fall der Eridapparat damit beginnt, PEER_ASSERT-Nachrichten zu dem anderen Endapparat zu senden.
  • Da der lokale Zeitgeber 988 des Endapparats 100-1 nun die „Netzwerkzeit“ wiedergibt, geht der Endapparat in den Aktiv-Zustand 1900 (1803) über.
  • 13 zeigt die Funktionsweise des Endapparats 100-1 im Aktiv-Zustand 1900 von 10. Im Aktiv-Zustand synchronisiert die Netzwerkeinrichtung periodisch ihren lokalen Zeitgeber mit Zeitstempeln, die in PEER_ASSERT-Nachrichten enthalten sind, die von einer Netzwerkeinrichtung empfangen werden, die als eine „Master“-Referenz für Netzwerkzeit angesehen wird, wobei es sich bei der vorliegenden Ausführungsform um die Netzwerkeinrichtung mit der niedrigsten MAC-Adresse aller aktiven Netzwerkeinrichtungen handelt. Der Klarheit halber wird angemerkt, daß die MAC-Adressen inaktiver Netzwerkeinrichtungen bei der Bestimmung der „niedrigsten MAC-Adresse“ nicht berücksichtigt werden.
  • Wie in 13 gezeigt, untersucht der Endapparat 100-1 zu Anfang seine Routing-Tabelle 200 (4), um zu bestimmen, welcher aktive Endapparat die niedrigste MAC-Adresse aufweist (1901). Wenn bestimmt wird, daß ein anderer Endapparat die niedrigste MAC-Adresse jeder aktiven Netzwerkeinrichtung (1902) besitzt, konfiguriert der Endapparat 100-1 das Peer-Entdeckungs-Modul 110 (3) so, daß ein Ereignis erzeugt wird, wenn eine PEER_ASSERT-Nachricht von diesem Endapparat empfangen wird (1903). Andernfalls oder im Anschluß an 1903 wird ein Verzögerungstimer auf eine Verzögerung von z.B. 2 Sekunden gesetzt (1904), und der Endapparat tritt in eine „Warte-auf-Ereignis“-Zustand ein (1905).
  • In 1905 wartet die Netzwerkeinrichtung auf eines von vier Ereignissen:
    1. 1. Ablaufen des 2-Sekunden-Timers, wodurch angezeigt wird, daß für eine Dauer von 2 Sekunden keine PEER_ASSERT-Nachricht von einer Netzwerkeinrichtung mit der LAM empfangen wurde. In diesem Fall wird die Anforderung von 1903 aufgehoben (1906) und die Operation kehrt zu 1901 zurück, um einen Synchronisations-Nachrichtenzyklus zu wiederholen. Die Idee hinter dem Aufheben der Anforderung (in 1906) und dem anschließenden sofortigen Regenerieren einer anderen Anforderung (in 1903 während der nächsten Iteration) besteht darin, daß das Ablaufen des Timers wahrscheinlich eine Situation wiedergibt, in der der Endapparat 100-1seine Fähigkeit verloren hat, Nachrichten von der Master-Netzwerkeinrichtung zu empfangen (z.B. aufgrund eines Problems mit der Master-Netzwerkeinrichtung oder einer Segmentierung des Netzwerks). Durch Wiederholen der Operation in 1901 bis 1903 kann eine neue Netzwerkeinrichtung mit niedrigster aktiver MAC (LAM), die von der während der vorherigen Iteration identifizierten LAM verschieden ist, identifiziert werden (da die erste LAM nun inaktiv sein kann).
    2. 2. Ein Local_Inactive-Ereignis, das anzeigt, daß der aktuelle Endapparat 100-1 auf transitiver Basis inaktiv werden wird (d.h. der Endapparat wurde inaktiv, kann aber beim Auftreten eines bestimmten Ereignisses automatisch wieder aktiv werden). Ein solches Ereignis kann zum Beispiel bei Erkennung eines DN-Konflikts mit einem anderen Endapparat erzeugt werden. In diesem Fall arbeitet der Endapparat100-1 weiter, auch wenn er von anderen Endapparaten als inaktiv angesehen wird (d.h. keine PEER_ASSERT-Nachrichten mehr sendet). In diesem Fall wird die (in 1903 gestellte) Anforderung an das Peer-Entdeckungs-Modul 110 und an den Timer (gestellt in 1904) aufgehoben (in 1907), und der Endapparat 100-1 geht in den Freilaufzustand 1800 über.
    3. 3. Ein Local-Inactive-Ereignis, das andauernde Inaktivität des aktuellen Endapparats 100-1 (d.h. daß der Endapparat inaktiv geworden ist und wahrscheinlich nicht mehr aktiv wird, wenigstens nicht automatisch beim Auftreten eines bestimmten Ereignisses) anzeigt. Dazu kann es zum Beispiel aufgrund einer administrativen Aktion kommen, z.B. bei einer Dekommissionierung des Endapparats 100-1. In diesem Fall werden die Anforderung an das Peer-Entdeckungs-Modul 110 (gestellt in 1903) und an den Timer (gestellt in 1904) aufgehoben (in 1911) und die Operation des Zeitsynchronisations-Automaten 986 hört. auf.
    4. 4. Empfang einer PEER_ASSERT-Nachricht von der Master-Netzwerkeinrichtung (d.h. von dem Endapparat mit der niedrigsten MAC-Adresse aller aktiven Endapparate). In diesem Fall synchronisiert der Endapparat 100-1 seinen Zeitgeber unter Verwendung des Zeitstempels aus der PEER_ASSERT-Nachricht (1908). Obwohl dies zu einer bestimmten Unheitlichkeit zwischen Netzwerkeinrichtungen führen kann, die aus Netzwerkausbreitungsverzögerungen resultiert, kann eine solche Uneinheitlichkeit für viele Anwendungen toleriert werden. Wenn zum Beispiel typische Verzögerungen von weniger als 5 Millisekunden in einem LAN-Segment erwartet werden können, kann eine solche Verzögerung für eine Zeitgeberpräzision von 0,1 Sekunden oder mehr vernachlässigbar sein. Falls die erforderliche Genauigkeit jedoch in derselben Größenordnung wie die erwarteten Verzögerungen liegt, kann eine Einstellung von Zeitgebern, um die Verzögerung zu berücksichtigen, angesagt sein (z.B. über das öffentliche Internet, wobei die nominale Verzögerung erwartungsgemäß viel größer ist, kann eine Verzögerungseinstellung angesagt sein). Fachleute werden mit Mechanismen zur Messung und Einstellung von Zeitgebern bei Anwesenheit von Netzwerkausbreitungsverzögerungen vertraut sein, die der Implementierer für den Einsatz wählen kann. Der Timer wird dann aufgehoben (1910) und die Operation kehrt zu 1901 zurück, um einen Synchronisationszyklus zu wiederholen.
  • Es wird angemerkt, daß, während Endapparate oder andere Netzwerkeinrichtungen zu dem Netzwerk 30 hinzugefügt oder aus diesem entfernt werden, die Einrichtung, die als Referenz für Zeit dient, wechseln kann, weil z.B. die Identität der Netzwerkeinrichtung mit der niedrigsten MAC-Adresse aller aktiven Einrichtungen wechseln kann. Eine periodische Wiederholung der Operation bei 1901, 1902, 1903 und 1904 ermöglicht es dem Endapparat 100-1, seine Designierung einer Master-Netzwerkeinrichtung zurückzusetzen, falls sich die Identität der Master-Netzwerkeinrichtung mit der Zeit ändern sollte.
  • Die in 10 bis 13 dargestellte Ausführungsform wurde im Kontext der Peer-Entdeckung beschrieben, wobei PEER_ASSERT-Nachrichten verwendet werden, um Zeitstempel für Synchronisation zu erhalten; es versteht sich jedoch, daß die Erfindung nicht auf die Verwendung von PEER_ASSERT-Nachrichten zum Erhalten von Zeitstempeln beschränkt ist. Es kann jede beliebige Nachricht verwendet werden, die einen Zeitstempel enthält, der eine Repräsentation einer Referenzzeit wiedergibt.
  • Bei bestimmten Ausführungsformen der Erfindung operiert eine als Referenz für Zeit designierte Netzwerkeinrichtung proaktiv an den Zeitgebern anderer Netzwerkeinrichtungen, um diese mit ihrem eigenen Zeitgeber zu synchronisieren. Zum Beispiel wird bei bestimmten Ausführungsformen der Erfindung eine Netzwerkeinrichtung mit einem Zeitgeber als Referenz für Zeit zum Beispiel von einem Systemadministrator designiert. Die als Referenz für Zeit designierte Netzwerkeinrichtung kann eine Liste führen, zum Beispiel die Routing-Tabelle 200 von 4, die andere der anderen Netzwerkeinrichtungen identifiziert, die aktiv sind, und synchronisiert periodisch Zeitgeber der anderen Netzwerkeinrichtungen mit ihrem eigenen Zeitgeber.
  • Bei bestimmten Ausführungsformen der Erfindung bestimmt eine Netzwerkeinrichtung, ob sie eine Referenz für Zeit ist, unter Verwendung von Informationen in der Netzwerkeinrichtung. Diese Informationen können zum Beispiel eine MAC-Adresse oder eine beliebige andere geeignete eindeutige Kennung von Netzwerkeinrichtungen sein. Wenn die Netzwerkeinrichtung eine Referenz für Zeit ist, sendet die Netzwerkeinrichtung einen Zeitstempel zu einer oder mehreren anderen Netzwerkeinrichtungen zur Synchronisation der anderen Netzwerkeinrichtungen durch Verwendung des Zeitstempels. Bei bestimmten Ausführungsformen der Erfindung konsultiert die Netzwerkeinrichtung ihre Routing-Tabelle 200, um zu bestimmen, welche Netzwerkeinrichtungen den Zeitstempel empfangen sollen. Bei bestimmten Ausführungsformen der Erfindung bestimmt die Netzwerkeinrichtung, ob sie eine Referenz für Zeit ist, als Reaktion auf den Empfang einer Nachricht von einer der anderen Netzwerkeinrichtungen. Bei anderen Ausführungsformen der Erfindung bestimmt die Netzwerkeinrichtung periodisch, ob sie eine Referenz für Zeit ist, und wenn dies der Fall ist, sendet sie einen Zeitstempel zu den anderen Netzwerkeinrichtungen zur Synchronisation durch Verwendung des Zeitstempels.
  • Zusätzlich zu der Durchführung der Zeitsynchronisation zwischen Endapparaten wie oben beschrieben, können bestimmte Ausführungsformen der Erfindung ein Verfahren zum manuellen Setzen oder Einstellen der Netzwerkzeit in einer beliebigen Netzwerkeinrichtung bereitstellen. Dies kann mittels manueller administrativer Aktion durchgeführt werden (z.B. setzt ein Systemadministrator die Zeit in einer Netzwerkeinrichtung). Eine Netzwerkeinrichtung kann bei einer solchen manuellen Konfiguration dafür ausgelegt sein, ihre neu eingestellte lokale Zeit zu allen anderen Netzwerkeinrichtungen zu verbreiten, mit der Idee, daß eine manuell gesetzte Zeit wahrscheinlich auf einer genauen Kenntnis der tatsächlichen Zeit basiert, die in jeder Netzwerkeinrichtung wiedergegeben werden sollte. Bei bestimmten Ausführungsformen kann die Verbreitung als Reaktion auf den Empfang bestimmter zuverlässiger externer. Zeitinformationen in der Netzwerkeinrichtung durchgeführt werden, zum Beispiel aus Informationen der Anruferidentifikation, die von einem Fernsprechnetzwerk eines öffentlichen Betreibers bereitgestellt werden, oder durch ein Zeitverteilungsprotokoll wie etwa NTP oder SNTP von einem Zeitserver. Dies kann die Auswirkung haben, die Netzwerkzeit periodisch mit einer genauen Repräsentation der tatsächlichen Zeit zu synchronisieren.
  • Als Übergang von Zeitsynchronisation zu Datensynchronisation zeigen 14 bis 18 ein Verfahren zum Synchronisieren von Daten zwischen Netzwerkeinrichtungen (d.h. zum Aufrechterhalten der Kohärenz zwischen Kopien von Daten in verschiedenen Netzwerkeinrichtungen). Bei der vorliegenden Ausführungsform benutzt das Verfahren monoton zunehmende Zähler, die in jedem Endapparat zur Datensynchronisation geführt werden. Die Zähler verfolgen den Ablauf der Zeit (werden z.B. jede Sekunde inkrementiert), geben aber nicht unbedingt das aktuelle Datum öder die aktuelle Uhrzeit wieder. Der Wert eines Zählers wird als Datensequenznummer (DSN) bezeichnet. Es versteht sich, daß eine DSN von scheinbaren nichtlinearen Zeitsprüngen, wie zum Beispiel Sommerzeit oder Einstellen des lokalen Datums bzw. der lokalen Uhrzeit nicht betroffen wird; in solchen Situationen nimmt die DSN einfach weiter zu.
  • Gemäß dem in 14 bis 18 dargestellten Verfahren werden Schritte unternommen, um die DSN in verschiedenen Netzwerkeinrichtungen zu synchronisieren. Wenn Daten in einem gegebenen Endapparat geändert werden, wird ein „Schnappschuß“ der aktuellen DSN in dieser Netzwerkeinrichtung erfaßt und mit diesen Daten assoziiert. Wenn die veränderten Daten zu anderen Netzwerkeinrichtungen verbreitet werden, begleitet sie der assoziierte erfaßte DSN-Wert. Kopien dieser Daten, die in anderen Netzwerkeinrichtungen existieren, werden jeweils einen assoziierten Schnappschuß-DSN-Wert aufweisen, der die DSN zum Zeitpunkt der Erzeugung oder letzten Aktualisierung der Kopie repräsentiert. Die neu erfaßte DSN wird mit der existierenden DSN verglichen, um zu bestimmen, welche Version der Daten behalten werden soll, wobei größere DSN-Werte im allgemeinen neuere und somit vorzuziehende Daten anzeigen.
  • 14 zeigt einen beispielhaften Datenbank-Datensatz 1400, der in der Datenbank 996 (9) eines Endapparats gespeichert werden kann. Der beispielhafte Datensatz 1400 enthält einen Schlüssel 1402, eine erfaßte DSN 1404, eine Netzwerkeinrichtungs-ID 1406 und Daten 1408. Der Schlüssel 1402 ist eine eindeutig auflösbare Referenz auf Daten 1408. Die Verwendung von Schlüsseln zur eindeutigen Referenzierung von Daten ist Fachleuten auf dem Gebiet der Datenbanken wohlbekannt. Die DSN 1404 ist ein Schnappschuß eines DSN-Zählers 994 zum Zeitpunkt der letzten Änderung (d.h. Erzeugung oder Aktualisierung) der Daten 1408. Die DSN 1404 dient als Indikator des relativen Alters der Daten 1408 im Vergleich zu anderen Kopien der Daten 1408, die in anderen Netzwerkeinrichtungen existieren können. Die Netzwerkeinrichtungs-ID 1406 ist eine Kennung, die die Netzwerkeinrichtung, die die Daten 1408 erzeugt hat, eindeutig identifiziert. Bei der vorliegenden Ausführungsform ist die Netzwerkeinrichtungs-ID 1406 eine MAC-Adresse; es können bei alternativen Ausführungsformen jedoch auch andere Formen eindeutiger Kennungen verwendet werden. Bei den Daten 1408 schließlich, handelt es sich um ein interessierendes Datenelement (oder um mehr als ein Datenelement).
  • 15 zeigt die Initialisierung des lokalen DSN-Zählers 994 von 9 in einem beispielhaften Endapparat 100-1. Die Initialisierung findet in der Regel beim Herauffahren des Endapparats 100-1 statt. Anfänglich wird bestimmt, ob eine lokale Datenbank 996 existiert (1502). Wenn eine neue Einrichtung zum ersten Mal gestartet wird (z.B. von einem „fabrikfrischen“ Zustand), existiert keine lokale Datenbank 996. In dieser Situation wird eine Vorgabe-DSN erhalten (1504). Wenn sich jedoch zeigt, daß eine Datenbank 996 existiert (die z.B. von dem Endapparat 100-1 vor einer Inaktivitätsperiode in dem nichtflüchtigen Speicher gespeichert worden sein kann) wird jeder Datensatz 1400 ( 14 ) der lokalen Datenbank 996 gescannt und die höchste in dem DSN-Feld 1404 jedes Datensatzes gespeicherte DSN wird vermerkt (1506).
  • Danach wird mit dem erhaltenen oder vermerkten DSN-Wert der lokale DSN-Zähler 994 von 9 (1508) initialisiert (z.B. beschrieben). Danach wird der DSN-Zähler 994 freigegeben (d.h. aktiviert) (1510), um so in regelmäßigen Intervallen, die durch den Timer 990 (9) gemessen werden, wie zuvor beschrieben implementiert zu werden.
  • 16 zeigt die Funktionsweise des Datensynchronisationsmoduls 992 (9) zur Einstellung des lokalen DSN-Zählers 994 in einem beispielhaften Endapparat 100-1, so wie es für Kohärenz mit den DSN-Zählern 912 in anderen Endapparaten innerhalb akzeptabler Fehlertoleranzen notwendig ist.
  • Zu Anfang wartet das Datensynchronisationsmodul 992 auf das Auftreten eines von zwei Typen von „DSN-Ereignissen“ (1602).
  • Der erste Typ von DSN-Ereignis ist der Empfang eines „Tick“ von dem Timer 990 (9). Beim Empfang eines „Tick“ von dem Timer 990 wird der lokale Zähler für die DSN 912 inkrementiert (1604) und die Steuerung kehrt zu 1602 zurück, um auf weitere Ereignisse zu warten.
  • Der zweite Typ von DSN-Ereignis ist der Empfang einer PEER_ASSERT-Nachricht von einem anderen Endapparat. Die PEER_ASSERT-Nachricht enthält den aktuellen Wert des DSN-Zählers in der abgesetzten Netzwerkeinrichtung, die die PEER_ASSERT-Nachricht gesendet hat (oder mindestens den Wert des DSN-Zählers in der abgesetzten Netzwerkeinrichtung zum Zeitpunkt des Sendens der PEER_ASSERT-Nachricht). In diesem Fall wird der DSN-Wert aus der Nachricht extrahiert (1606) und mit dem aktuellen Wert des lokalen DSN-Zählers 994 verglichen (1608).
  • Wenn bei 1608 bestimmt wird, daß der Wert der DSN des abgesetzten Endapparats größer als der aktuelle Wert des lokalen DSN-Zählers 994 ist (d.h. ein größeres Ablaufen von Zeit als das Ablaufen von Zeit, das durch den lokalen DSN-Zähler 994 angegeben wird, repräsentiert), wird der lokale DSN-Zähler 994 vorgerückt, um mit dem abgesetzten DSN-Wert übereinzustimmen, z.B. durch Überschreiben des Werts des lokalen DSN-Zählers 994 mit dem extrahierten abgesetzten DSN-Wert (1610). Wenn dies von jedem Endapparat durchgeführt wird, werden mit der Zeit alle Endapparate mit der höchsten von jeglichem Endapparat geführten DSN synchronisiert. Es wird die höchste DSN verwendet, weil, wenn ein anderer DSN-Wert (z.B. niedrigste DSN) zur Synchronisation verwendet würde, die DSN in einem oder mehreren Endapparaten abnehmen kann. Abnahmen der DSN-Werte sind zu vermeiden, so daß höhere DSN-Werte einheitlich neuere Datenänderungen anzeigen. Danach kehrt die Steuerung zu 1602 zurück, um auf weitere DSN-Ereignisse zu warten.
  • Wenn Statt dessen in 1608 bestimmt wird, daß die DSN der abgesetzten Netzwerkeinrichtung kleiner oder gleich dem Wert des lokalen DSN-Zählers 994 ist, kehrt die Steuerung einfach zu 1602 zurück, um auf weitere DSN-Ereignisse zu warten.
  • 17 zeigt die Funktionsweise des Datensynchronisationsmoduls 992 (9) zum Speichern geänderter Daten in einem Endapparat bei einer Änderung an den Daten. Zu Anfang wird ein „Schnappschuß“ des Werts des lokalen DSN-Zählers 994 zum Zeitpunkt der Änderung der Daten genommen und mit den Daten assoziiert (1710). Die Assoziation kann zum Beispiel durch Speichern des erfaßten DSN-Werts in einem Datensatz 1400 (14) zusammen mit den neu geänderten Daten erzielt werden. Die Daten werden dann lokal zusammen mit ihrem assoziierten Schnappschuß-DSN-Wert z.B. in der Datenbank 996 gespeichert (1712).
  • Danach werden andere Endapparate über die geänderten Daten benachrichtigt (1714). Bei der vorliegenden Ausführungsform nimmt die Benachrichtigung die Form einer Nachricht an, die eine Kopie der geänderten Daten zusammen mit dem erfaßten DSN-Wert enthält. Abhängig von der Beschaffenheit der Daten kann die Anzahl der Endapparate oder andere Netzwerkeinrichtungen, die eine Benachrichtigung über die geänderten Daten benötigen können, unterschiedlich sein. Es kann zum Beispiel wünschenswert sein, daß Änderungen an globalen administrativen Daten zu allen Netzwerkeinrichtungen in dem Netzwerk 30 verbreitet werden, während andere Änderungen möglicherweise nur zu einer Teilmenge von Netzwerkeinrichtungen verbreitet werden, die ein Kopie der Daten benötigen. Jeder Endapparat, der die geänderten Daten empfängt, unternimmt dann eine Operation, um zu bestimmen, ob seine lokale Kopie Aktualisierung erfordert, auf eine Weise, die nun in Verbindung mit 18 beschrieben werden wird.
  • 18 zeigt die Funktionsweise zum Aufrechterhalten der Kohärenz zwischen einer lokalen Kopie von Daten und einer abgesetzten Kopie der Daten beim Empfang einer Benachrichtigung, die anzeigt, daß eine abgesetzte Kopie der Daten geändert wurde. Zu Anfang wird eine Benachrichtigung. über die Datenänderung in einem abgesetzten Endapparat empfangen (1810). Die Benachrichtigung nimmt die Form einer Nachricht an, die eine Kopie der geänderten Daten zusammen mit einem erfaßten Wert der DSN des sendenden Endapparats zum Zeitpunkt der Änderung der Daten enthält. Alternative Ausführungsformen können nur eine Anzeige der geänderten Daten (z.B. einen die Daten eindeutig identifizierenden Schlüssel) anstelle einer Kopie der geänderten Daten enthalten. Danach wird die in Assoziation mit der lokalen Kopie der Daten gespeicherte DSN abgerufen (1812). Das Abrufen kann umfassen, einen in der empfangenen Benachrichtigung empfangenen Schlüssel zum Abrufen eines entsprechenden Datensatzes von einer lokalen Datenbank 996 zu verwenden, die einen DSN-Wert 1404 enthält, der zum Zeitpunkt der Erzeugung oder letzten Aktualisierung der lokalen Daten 1408 erfaßt wurde. Der als der „gespeicherte DSN-Wert“ bezeichnete DSN-Wert wird dann mit dem DSN-Wert verglichen, der aus dem Endapparat empfangen wird, der die Fernänderungsbenachrichtigung einleitet (1814).
  • Wenn der Vergleich in 1814 anzeigt, daß der empfangene DSN-Wert kleiner als der gespeicherte DSN-Wert ist, gibt dies eine Situation wieder, in der die lokalen Daten neuer sind und deshalb gegenüber der Version aus der abgesetzten Netzwerkeinrichtung vorzuziehen sind. Folglich werden die lokalen Daten erhalten. Darüber hinaus wird der andere Endapparat (und werden andere Netzwerkeinrichtungen) über die Daten in der lokalen Netzwerkeinrichtung benachrichtigt (1816). Die letztere Aktion wird unternommen, um zu bewirken, daß etwaige abgesetzte Netzwerkeinrichtungen, die veraltete Kopien der Daten besitzen, ihre Kopien aktualisieren; sie kann auf analoge Weise zu 1714 von 17 durchgeführt werden.
  • Wenn der Vergleich 1814 statt dessen zeigt, daß der empfangene DSN-Wert größer als der gespeicherte DSN-Wert ist, gibt dies eine Situation wieder, in der die empfangene Kopie der Daten neuer und deshalb gegenüber der lokal gespeicherten Version vorzuziehen ist. Folglich werden die empfangenen Daten lokal zusammen mit dem empfangenen DSN-Wert gespeichert (1818), z.B. durch überschreiben der zuvor gespeicherten Daten und des zuvor gespeicherten DSN-Werts.
  • Wenn der Vergleich in 1814 anzeigt, daß der empfangene DSN-Wert gleich dem gespeicherten DSN-Wert ist, wird eine weitere Prüfung angewandt, um zu bestimmen, ob die empfangene Kopie der Daten vorzuziehen sind, oder die gespeicherten Daten. Bei der vorliegenden Ausführungsform nimmt diese weitere Prüfung die Form eines Vergleichs zwischen der MAC-Adresse des abgesetzten Endapparats und der MAC-Adresse des lokalen Endapparats an (1820). Der Endapparat mit der niedrigeren MAC-Adresse wird als über die vorzuziehende Version der Daten verfügend angesehen. Dies basiert nicht auf irgendeiner naturgemäßen Überlegenheit der von der Netzwerkeinrichtung mit der niedrigeren MAC-Adresse geführten Daten, sondern richtet einfach eine einheitliche Regel ein, die, wenn sie einheitlich in jeder Netzwerkeinrichtung in einem Netzwerk angewandt wird, dazu führen sollte, daß jede Netzwerkeinrichtung dieselbe Schlußfolgerung darüber zieht, wessen Kopie eines Datenelements vorzuziehen ist.
  • In dem Fall, daß der Vergleich von 1820 zeigt, daß die MAC-Adressen der abgesetzten und der lokalen Netzwerkeinrichtung gleich sind, dann gilt die in 1810 empfangene Benachrichtigung tatsächlich für die lokale Netzwerkeinrichtung. In diesem Fall ist keine Aktion erforderlich.
  • Für Fachleute ist erkennbar, daß Modifikationen an der oben beschriebenen Ausführungsform vorgenommen werden können, ohne von dem Wesen der Erfindung abzuweichen. Obwohl die beschriebene Ausführungsform zum großen Teil auf Peers verweist, die Endapparate sind, versteht sich zum Beispiel, daß die beschriebenen Verfahren gleichermaßen auf andere Peers als Endapparate, wie zum Beispiel auf andere Formen von Netzwerkeinrichtungen, anwendbar sind. Außerdem können Netzwerkeinrichtungen durch eine beliebige Form von Netzwerk, nicht nur durch ein LAN, verbunden sein. Obwohl die Peer-Entdeckungs-Beschreibung auf das Auswählen, Sondieren und Setzen von Rufnummern verweist, versteht sich ferner, daß die beschriebenen Verfahren gleichermaßen für andere Netzwerkadressen als Rufnummern gelten.
  • In bezug auf die beschriebene Zeitsynchronisationsoperation ist es nicht notwendig, daß eine Netzwerkeinrichtung PEER_ASSERT-Nachrichten zum Zwecke periodischer Synchronisation benutzt. Es kann jede beliebige ankommende Übermittlung von einer anderen Netzwerkeinrichtung.oder einem anderen Peer verwendet werden, von der bekannt ist, daß sie die Netzwerkzeit repräsentiert.
  • In bezug auf die beschriebene Datensynchronisationsoperation wird angemerkt, daß es sich bei alternativen Ausführungsformen bei den Zählern in jeder Netzwerkeinrichtung (durchweg) um monoton abnehmende Zähler (anstelle von monoton zunehmenden Zählern) handeln kann, wobei jeder Zähler z.B. jede Sekunde dekrementiert wird. In diesem Fall würden kleine Werte einen größeren Ablauf von Zeit und somit neuere Daten repräsentieren. Bei solchen Ausführungsformen würde die Zählersynchronisation zwischen Endapparaten umfassen, den Zähler mit dem größeren Wert auf den kleineren Wert zu setzen.
  • Außerdem sollte beachtet werden, daß die Ausdrücke „monoton zunehmender Zähler“ und „monoton abnehmender Zähler“ nicht auf Hardwarezähler beschränkt sind. Statt dessen kann jeder beliebige Mechanismus, mit dem man einen monoton zunehmenden oder abnehmenden Wert führen kann, benutzt werden. Darüber hinaus wird angemerkt, daß eine praktische Notwendigkeit darin bestehen kann, solche Zähler zum Beispiel auf einem Nullwert (für monoton zunehmende Zähler) oder einen Maximalwert (für monoton abnehmende Zähler) zurückzusetzen oder „umzuklappen“, wenn eine maximale Zeitdauer, die durch den verwendeten Zähler oder Mechanismus repräsentiert werden kann, erreicht ist.
  • Zusätzlich wird angemerkt, daß bestimmte Ausführungsformen möglicherweise nicht automatisch Kopien geänderter Daten in abgehende Änderungsbenachrichtigungen einfügen (die bei 1714 von 17 und 1816 von 18 gesendet werden). Statt dessen könnte eine Anzeige, welche Daten sich geändert haben (z.B. eindeutige Datenbankschlüssel) gesendet werden, ohne die geänderten Daten mit einzuschließen. Dieser Ansatz kann verwendet werden, falls die geänderten Daten besonders groß sind, so daß es unerwünscht wäre, Netzwerkbandbreite zu belegen, indem eine Kopie der geänderten Daten gesendet wird, solange es nicht bestätigt wird, daß die Kopie in einer abgesetzten Netzwerkeinrichtung eine Aktualisierung erfordert.
  • Obwohl die oben beschriebenen Verfahren und der oben beschriebene Automat als von oder in jeder Netzwerkeinrichtung implementiert beschrieben wurden, versteht sich schließlich, daß sie außerhalb der Netzwerkeinrichtung implementiert werden könnten aber dennoch mit der Netzwerkeinrichtung assoziiert sind (z.B. in einem Peripheriegerät). In diesem Fall würde man die Verfahren und den Automaten immer noch als von oder in der Netzwerkeinrichtung ausgeführt betrachten.
  • Im Hinblick auf die obigen Lehren sind zahlreiche weitere Modifikationen und Varianten der vorliegenden Erfindung möglich. Es versteht sich deshalb, daß die Erfindung innerhalb der Schutzumfangs der angefügten Ansprüche anders als hier spezifisch beschrieben ausgeübt werden kann.

Claims (60)

  1. Verfahren in einem verteilten Peer-to-Peer-Kommunikationsnetzwerk mit mehreren Netzwerkeinrichtungen zum Synchronisieren von Zeit und zum Aufrechthalten von Datenkohärenz zwischen den Netzwerkeinrichtungen, bei welchem eine Liste aller Netzwerkeinrichtungen des Kommunikationsnetzwerkes erzeugt wird, und mit den folgenden Schritten in jeder Netzwerkeinrichtung des Kommunikationssystems: Auswählen von einer der Netzwerkeinrichtungen aus der Liste aller Netzwerkeinrichtungen als Referenz für die Zeit, wobei in jeder Netzwerkeinrichtung dieselbe Auswahltechnik wie in jeder der anderen Netzwerkeinrichtungen verwendet wird; Führen eines lokalen Zählers zum Repräsentieren des Ablaufens von Zeit dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist; und - wenn Daten geändert werden, um zu geänderten Daten zu werden, Speichern des Werts des lokalen Zählers zum Zeitpunkt der Änderung der Daten in Assoziation mit den geänderten Daten, und Senden einer Anzeige der geänderten Daten zusammen mit dem Wert des lokalen Zählers zum Zeitpunkt der Änderung der Daten zu wenigstens einer anderen Netzwerkeinrichtung, wobei die Anzeige der geänderten Daten eine Kopie der geänderten Daten ist; und - auf das Empfangen einer Nachricht mit Zeitstempel von einer anderen Netzwerkeinrichtung hin, Synchronisieren des eigenen lokalen Zählers mit einer empfangenen Anzeige eines Werts eines lokalen Zählers, der in der anderen Netzwerkeinrichtung geführt wird, um den Ablauf von Zeit zu repräsentieren, dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist; und - beim Empfang einer Anzeige einer Änderung an einer abgesetzten Kopie der geänderten Daten durch die andere Netzwerkeinrichtung und eines assoziierten Werts des lokalen Zählers der anderen Netzwerkeinrichtung zum Zeitpunkt der Änderung der abgesetzten Kopie, Vergleichen des gespeicherten Werts des eigenen lokalen Zählers mit dem empfangenen Wert des lokalen Zählers dieser anderen Netzwerkeinrichtung und Bestimmen, ob die gespeicherten geänderten Daten oder die abgesetzte Kopie der geänderten Daten auf der Basis dieses Vergleichs vorzuziehen sind, wobei, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen geringeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, das Bestimmen bestimmt, daß die gespeicherten Daten der abgesetzten Kopie der Daten vorzuziehen sind und eine Kopie der gespeicherten Daten zu einer anderen Netzwerkeinrichtung gesendet wird.
  2. Verfahren nach Anspruch 1, wobei jede Netzwerkeinrichtung einen lokalen Zeitgeber hat, und diesen periodisch mit den Zeitstempeln synchronisiert, die in den Nachrichten enthalten sind, die von der als Referenz für die Zeit ausgewählten Netzwerkeinrichtung empfangenen werden.
  3. Verfahren nach Anspruch 1 oder 2, ferner mit dem folgenden Schritt, dass die als Referenz für die Zeit auszuwählende Netzwerkeinrichtung basierend auf der Hardware-Adresse ausgewählt wird.
  4. Verfahren nach wenigstens einem der Ansprüche 1 bis 3, ferner mit dem folgenden Schritt, dass diejenige Netzwerkeinrichtung als Referenz für die Zeit ausgewählt wird, welche die niedrigste oder höchste Hardwareadresse hat.
  5. Verfahren nach wenigstens einem der Ansprüche 1 bis 4, wobei die Netzwerkeinrichtungen Endapparate sind, die über Rufnummern identifiziert werden.
  6. Verfahren nach wenigstens einem der Ansprüche 1 bis 5, ferner umfassend den Schritt des periodischen Synchronisierens der als Referenz für die Zeit ausgewählten Netzwerkeinrichtung mit einer genauen Repräsentation der tatsächlichen Zeit.
  7. Verfahren nach wenigstens einem der Ansprüche 1 bis 6, wobei, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, das Bestimmen bestimmt, daß die abgesetzte Kopie der geänderten Daten den gespeicherten geänderten Daten vorzuziehen ist.
  8. Verfahren nach wenigstens einem der Ansprüche 1 bis 7, bei dem ferner, wenn das Vergleichen anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, die gespeicherten geänderten Daten mit der abgesetzten Kopie ersetzt werden.
  9. Verfahren nach wenigstens einem der Ansprüche 1 bis 8, bei dem ferner, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung gleich dem gespeicherten Wert des eigenen lokalen Zählers ist, eine weitere Prüfung angewandt wird, um zu bestimmen, ob die gespeicherten Daten vorzuziehen sind, oder die abgesetzte Kopie der Daten.
  10. Verfahren nach Anspruch 9, wobei das Anwenden einer weiteren Prüfung umfaßt, eine eindeutige Kennung der einen Netzwerkeinrichtung mit einer eindeutigen Kennung der anderen Netzwerkeinrichtung zu vergleichen.
  11. Verfahren nach Anspruch 10, wobei die eindeutigen Kennungen Hardwareadressen sind.
  12. Verfahren nach Anspruch 11, wobei, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung größer als die Hardwareadresse der anderen Netzwerkeinrichtung ist, das Bestimmen bestimmt, daß die abgesetzte Kopie der Daten den gespeicherten Daten vorzuziehen ist.
  13. Verfahren nach Anspruch 12, bei dem ferner, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung größer als die Hardwareadresse der anderen Netzwerkeinrichtung ist, die gespeicherten Daten mit der abgesetzten Kopie ersetzt werden.
  14. Verfahren nach Anspruch 11, wobei, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung kleiner als die Hardwareadresse der anderen Netzwerkeinrichtung ist, das Bestimmen bestimmt, daß die gespeicherten Daten der abgesetzten Kopie der Daten vorzuziehen sind.
  15. Verfahren nach Anspruch 14, bei dem ferner, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung kleiner als die Hardwareadresse der anderen Netzwerkeinrichtung ist, eine Kopie der gespeicherten Daten zu der anderen Netzwerkeinrichtung gesendet wird.
  16. Verfahren nach wenigstens einem der Ansprüche 1 bis 15, wobei das Synchronisieren die folgenden Schritte umfaßt: Vergleichen des Werts des lokalen Zählers der anderen Netzwerkeinrichtung aus der empfangenen Anzeige mit einem aktuellen Wert des eigenen lokalen Zählers; und auf der Basis des Vergleichs, Bestimmen, ob der Wert des eigenen lokalen Zählers eingestellt werden soll.
  17. Verfahren nach wenigstens einem der Ansprüche 1 bis 16, bei dem ferner, wenn der Vergleich anzeigt, daß der Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der aktuelle Wert des eigenen lokalen Zählers repräsentiert, der Wert des eigenen lokalen Zählers auf den Wert des lokalen Zählers der anderen Netzwerkeinrichtung gesetzt wird.
  18. Verfahren nach wenigstens einem der Ansprüche 1 bis 17, wobei, die Liste aller Netzwerkeinrichtungen verschiedene Arten von Informationen bezüglich jeder der Netzwerkeinrichtungen mit einer Präsenz in dem Netzwerk umfasst, einschließlich einer Rufnummer, MAC-Adresse, IP-Adresse, eines Einrichtungstyps und eines Aktiv-Flags.
  19. Verfahren nach wenigstens einem der Ansprüche 1 bis 18, wobei der eigene lokale Zähler und der lokale Zähler der anderen Netzwerkeinrichtung monoton zunehmende Zähler umfassen.
  20. Verfahren nach Anspruch 19, wobei das Führen eines eigenen lokalen Zählers ein periodisches Inkrementieren des eigenen lokalen Zählers bei Ablauf eines vorbestimmten Zeitintervalls umfaßt.
  21. Verteiltes Peer-to-Peer-Kommunikationsnetzwerk mit mehreren Netzwerkeinrichtungen zum Synchronisieren von Zeit und zum Aufrechthalten von Datenkohärenz zwischen den Netzwerkeinrichtungen, wobei das Kommunikationsnetzwerk eine Liste aller Netzwerkeinrichtungen des Kommunikationsnetzwerkes umfasst, und ausgebildet ist, um mit jeder Netzwerkeinrichtung des Kommunikationssystems eine der Netzwerkeinrichtungen aus der Liste aller Netzwerkeinrichtungen als Referenz für die Zeit auszuwählen, wobei jede Netzwerkeinrichtung dieselbe Auswahltechnik wie jede der anderen Netzwerkeinrichtungen verwendet; einen lokalen Zählers zum Repräsentieren des Ablaufens von Zeit dergestalt zu führen, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist; und - wenn Daten geändert werden, um zu geänderten Daten zu werden, den Werts des lokalen Zählers zum Zeitpunkt der Änderung der Daten in Assoziation mit den geänderten Daten zu speichern, und eine Anzeige der geänderten Daten zusammen mit dem Wert des lokalen Zählers zum Zeitpunkt der Änderung der Daten zu wenigstens einer anderen Netzwerkeinrichtung zu senden, wobei die Anzeige der geänderten Daten eine Kopie der geänderten Daten ist; und - auf das Empfangen einer Nachricht mit Zeitstempel von einer anderen Netzwerkeinrichtung hin, den eigenen lokalen Zählers mit einer empfangenen Anzeige eines Werts eines lokalen Zählers zu synchronisieren, der in der anderen Netzwerkeinrichtung geführt wird, um den Ablauf von Zeit zu repräsentieren, dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist; und - beim Empfang einer Anzeige einer Änderung an einer abgesetzten Kopie der geänderten Daten durch die andere Netzwerkeinrichtung und eines assoziierten Werts des lokalen Zählers der anderen Netzwerkeinrichtung zum Zeitpunkt der Änderung der abgesetzten Kopie, den gespeicherten Werts des eigenen lokalen Zählers mit dem empfangenen Wert des lokalen Zählers dieser anderen Netzwerkeinrichtung zu vergleichen und zu bestimmen, ob die gespeicherten geänderten Daten oder die abgesetzte Kopie der geänderten Daten auf der Basis dieses Vergleichs vorzuziehen sind, wobei, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen geringeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, das Bestimmen bestimmt, daß die gespeicherten Daten der abgesetzten Kopie der Daten vorzuziehen sind und eine Kopie der gespeicherten Daten zu einer anderen Netzwerkeinrichtung gesendet wird.
  22. Kommunikationsnetzwerk nach Anspruch 21, wobei jede Netzwerkeinrichtung einen lokalen Zeitgeber hat, und diesen periodisch mit den Zeitstempeln synchronisiert, die in den Nachrichten enthalten sind, die von der als Referenz für die Zeit ausgewählten Netzwerkeinrichtung empfangenen werden.
  23. Kommunikationsnetzwerk nach Anspruch 21 oder 22, welches ferner ausgebildet ist, daß von jeder Netzwerkeinrichtung die als Referenz für die Zeit auszuwählende Netzwerkeinrichtung basierend auf der Hardware-Adresse auszuwählen ist.
  24. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 23, welches ferner ausgebildet ist, daß von jeder Netzwerkeinrichtung diejenige Netzwerkeinrichtung als Referenz für die Zeit auszuwählen ist, welche die niedrigste oder höchste Hardwareadresse hat.
  25. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 24, wobei die Netzwerkeinrichtungen über Rufnummern identifizierbare Endapparate sind.
  26. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 25, welches ferner ausgebildet ist, die als Referenz für die Zeit ausgewählte Netzwerkeinrichtung mit einer genauen Repräsentation der tatsächlichen Zeit periodisch zu synchronisieren.
  27. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 26, welches ausgebildet ist, daß, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, das Bestimmen bestimmt, daß die abgesetzte Kopie der geänderten Daten den gespeicherten geänderten Daten vorzuziehen ist.
  28. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 27, welches ferner ausgebildet ist, daß, wenn das Vergleichen anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, die gespeicherten geänderten Daten mit der abgesetzten Kopie ersetzt werden.
  29. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 28, welches ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung gleich dem gespeicherten Wert des eigenen lokalen Zählers ist, eine weitere Prüfung angewandt wird, um zu bestimmen, ob die gespeicherten Daten vorzuziehen sind, oder die abgesetzte Kopie der Daten.
  30. Kommunikationsnetzwerk nach Anspruch 29, wobei das Anwenden einer weiteren Prüfung umfaßt, eine eindeutige Kennung der einen Netzwerkeinrichtung mit einer eindeutigen Kennung der anderen Netzwerkeinrichtung zu vergleichen.
  31. Kommunikationsnetzwerk nach Anspruch 30, wobei die eindeutigen Kennungen Hardwareadressen sind.
  32. Kommunikationsnetzwerk nach Anspruch 31, welches ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung größer als die Hardwareadresse der anderen Netzwerkeinrichtung ist, das Bestimmen bestimmt, daß die abgesetzte Kopie der Daten den gespeicherten Daten vorzuziehen ist.
  33. Kommunikationsnetzwerk nach Anspruch 32, welches ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung größer als die Hardwareadresse der anderen Netzwerkeinrichtung ist, die gespeicherten Daten mit der abgesetzten Kopie ersetzt werden.
  34. Kommunikationsnetzwerk nach Anspruch 31, welches ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung kleiner als die Hardwareadresse der anderen Netzwerkeinrichtung ist, das Bestimmen bestimmt, daß die gespeicherten Daten der abgesetzten Kopie der Daten vorzuziehen sind.
  35. Kommunikationsnetzwerk nach Anspruch 34, welches ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die Hardwareadresse der einen Netzwerkeinrichtung kleiner als die Hardwareadresse der anderen Netzwerkeinrichtung ist, eine Kopie der gespeicherten Daten zu der anderen Netzwerkeinrichtung gesendet wird.
  36. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 35, welches ferner ausgebildet ist, daß von jeder Netzwerkeinrichtung beim Synchronisieren der Werts des lokalen Zählers der anderen Netzwerkeinrichtung aus der empfangenen Anzeige mit einem aktuellen Wert des eigenen lokalen Zählers zu vergleichen ist und auf der Basis des Vergleichs zu bestimmen ist, ob der Wert des eigenen lokalen Zählers eingestellt werden soll.
  37. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 36, welches ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß der Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der aktuelle Wert des eigenen lokalen Zählers repräsentiert, der Wert des eigenen lokalen Zählers auf den Wert des lokalen Zählers der anderen Netzwerkeinrichtung gesetzt wird.
  38. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 37, wobei, die Liste aller Netzwerkeinrichtungen verschiedene Arten von Informationen bezüglich jeder der Netzwerkeinrichtungen mit einer Präsenz in dem Netzwerk umfasst, einschließlich einer Rufnummer, MAC-Adresse, IP-Adresse, eines Einrichtungstyps und eines Aktiv-Flags.
  39. Kommunikationsnetzwerk nach wenigstens einem der Ansprüche 21 bis 38, welches ferner ausgebildet ist, daß der jeweils eigene lokale Zähler und der lokale Zähler der anderen Netzwerkeinrichtung monoton zunehmende Zähler umfassen.
  40. Kommunikationsnetzwerk nach Anspruch 39, welches ferner ausgebildet ist, daß das Führen eines eigenen lokalen Zählers ein periodisches Inkrementieren des eigenen lokalen Zählers bei Ablauf eines vorbestimmten Zeitintervalls umfaßt.
  41. Netzwerkeinrichtung für ein verteiltes Peer-to-Peer-Kommunikationsnetzwerk mit mehreren Netzwerkeinrichtungen zum Synchronisieren von Zeit und zum Aufrechthalten von Datenkohärenz zwischen den Netzwerkeinrichtungen, umfassend: eine Zentralprozessoreinheit, ein Peer-Entdeckungsmodul zur Peer-Entdeckung einer weiteren Netzwerkeinrichtung, die mit dem Netzwerk verbunden ist, einen Speicher mit einer Liste aller Netzwerkeinrichtungen des Kommunikationsnetzwerkes, wobei eine der Netzwerkeinrichtungen aus der Liste aller Netzwerkeinrichtungen als Referenz für die Zeit ausgewählt ist, und jede Netzwerkeinrichtung hierzu dieselbe Auswahltechnik wie jede der anderen Netzwerkeinrichtungen verwendet, und ein Zeit- und Datensynchronisationsmodul mit einen lokalen Zähler zum Repräsentieren des Ablaufens von Zeit dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist; und ausgebildet: - wenn Daten geändert werden, um zu geänderten Daten zu werden, den Werts des lokalen Zählers zum Zeitpunkt der Änderung der Daten in Assoziation mit den geänderten Daten zu speichern, und eine Anzeige der geänderten Daten zusammen mit dem Wert des lokalen Zählers zum Zeitpunkt der Änderung der Daten zu wenigstens einer anderen Netzwerkeinrichtung zu senden, wobei die Anzeige der geänderten Daten eine Kopie der geänderten Daten ist; und - auf das Empfangen einer Nachricht mit Zeitstempel von einer anderen Netzwerkeinrichtung hin, den eigenen lokalen Zählers mit einer empfangenen Anzeige eines Werts eines lokalen Zählers zu synchronisieren, der in der anderen Netzwerkeinrichtung geführt wird, um den Ablauf von Zeit zu repräsentieren, dergestalt, daß die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen gegebenen Zeitpunkt mindestens so groß wie die repräsentierte Dauer abgelaufener Zeit zu einem beliebigen vorherigen Zeitpunkt ist; und - beim Empfang einer Anzeige einer Änderung an einer abgesetzten Kopie der geänderten Daten durch die andere Netzwerkeinrichtung und eines assoziierten Werts des lokalen Zählers der anderen Netzwerkeinrichtung zum Zeitpunkt der Änderung der abgesetzten Kopie, den gespeicherten Werts des eigenen lokalen Zählers mit dem empfangenen Wert des lokalen Zählers dieser anderen Netzwerkeinrichtung zu vergleichen und zu bestimmen, ob die gespeicherten geänderten Daten oder die abgesetzte Kopie der geänderten Daten auf der Basis dieses Vergleichs vorzuziehen sind, wobei, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen geringeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, das Bestimmen bestimmt, daß die gespeicherten Daten der abgesetzten Kopie der Daten vorzuziehen sind und eine Kopie der gespeicherten Daten zu einer anderen Netzwerkeinrichtung gesendet wird.
  42. Netzwerkeinrichtung nach Anspruch 41, wobei diese einen lokalen Zeitgeber hat und diesen periodisch mit den Zeitstempeln synchronisiert, die in den Nachrichten enthalten sind, die von der als Referenz für die Zeit ausgewählten Netzwerkeinrichtung empfangenen werden.
  43. Netzwerkeinrichtung nach Anspruch 41 oder 42, welche ferner ausgebildet ist, daß die als Referenz für die Zeit auszuwählende Netzwerkeinrichtung basierend auf der Hardware-Adresse auszuwählen ist.
  44. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 43, welche ferner ausgebildet ist, daß diejenige Netzwerkeinrichtung als Referenz für die Zeit auszuwählen ist, welche die niedrigste oder höchste Hardwareadresse hat.
  45. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 44, wobei diese ein über eine Rufnummer identifizierbarer Endapparat ist.
  46. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 45, welche ferner ausgebildet ist, dass die als Referenz für die Zeit ausgewählte Netzwerkeinrichtung mit einer genauen Repräsentation der tatsächlichen Zeit periodisch zu synchronisieren ist.
  47. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 46, welche ausgebildet ist, daß, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, das Bestimmen bestimmt, daß die abgesetzte Kopie der geänderten Daten den gespeicherten geänderten Daten vorzuziehen ist.
  48. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 47, welche ferner ausgebildet ist, daß, wenn das Vergleichen anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der gespeicherte Wert des eigenen lokalen Zählers repräsentiert, die gespeicherten geänderten Daten mit der abgesetzten Kopie ersetzt werden.
  49. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 48, welche ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß der empfangene Wert des lokalen Zählers der anderen Netzwerkeinrichtung gleich dem gespeicherten Wert des eigenen lokalen Zählers ist, eine weitere Prüfung angewandt wird, um zu bestimmen, ob die gespeicherten Daten vorzuziehen sind, oder die abgesetzte Kopie der Daten.
  50. Netzwerkeinrichtung nach Anspruch 49, wobei das Anwenden einer weiteren Prüfung umfaßt, eine eigene eindeutige Kennung mit einer eindeutigen Kennung der anderen Netzwerkeinrichtung zu vergleichen.
  51. Netzwerkeinrichtung nach Anspruch 50, wobei die eindeutigen Kennungen Hardwareadressen sind.
  52. Netzwerkeinrichtung nach Anspruch 51, welche ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die eigene Hardwareadresse größer als die Hardwareadresse der anderen Netzwerkeinrichtung ist, das Bestimmen bestimmt, daß die abgesetzte Kopie der Daten den gespeicherten Daten vorzuziehen ist.
  53. Netzwerkeinrichtung nach Anspruch 52, welche ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die eigene Hardwareadresse größer als die Hardwareadresse der anderen Netzwerkeinrichtung ist, die gespeicherten Daten mit der abgesetzten Kopie ersetzt werden.
  54. Netzwerkeinrichtung nach Anspruch 51, welche ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die eigene Hardwareadresse kleiner als die Hardwareadresse der anderen Netzwerkeinrichtung ist, das Bestimmen bestimmt, daß die gespeicherten Daten der abgesetzten Kopie der Daten vorzuziehen sind.
  55. Netzwerkeinrichtung nach Anspruch 54, welche ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß die eigene Hardwareadresse kleiner als die Hardwareadresse der anderen Netzwerkeinrichtung ist, eine Kopie der gespeicherten Daten zu der anderen Netzwerkeinrichtung gesendet wird.
  56. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 55, welche ferner ausgebildet ist, daß beim Synchronisieren der Wert des lokalen Zählers der anderen Netzwerkeinrichtung aus der empfangenen Anzeige mit einem aktuellen Wert des eigenen lokalen Zählers zu vergleichen ist und auf der Basis des Vergleichs zu bestimmen ist, ob der Wert des eigenen lokalen Zählers eingestellt werden soll.
  57. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 56, welche ferner ausgebildet ist, daß, wenn der Vergleich anzeigt, daß der Wert des lokalen Zählers der anderen Netzwerkeinrichtung einen größeren Ablauf von Zeit als der aktuelle Wert des eigenen lokalen Zählers repräsentiert, der Wert des eigenen lokalen Zählers auf den Wert des lokalen Zählers der anderen Netzwerkeinrichtung gesetzt wird.
  58. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 57, wobei die Liste aller Netzwerkeinrichtungen verschiedene Arten von Informationen bezüglich jeder der Netzwerkeinrichtungen mit einer Präsenz in dem Netzwerk umfasst, einschließlich einer Rufnummer, MAC-Adresse, IP-Adresse, eines Einrichtungstyps und eines Aktiv-Flags.
  59. Netzwerkeinrichtung nach wenigstens einem der Ansprüche 41 bis 58, welche ferner ausgebildet ist, daß der jeweils eigene lokale Zähler einen monoton zunehmenden Zähler umfasst.
  60. Netzwerkeinrichtung nach Anspruch 59, welches ferner ausgebildet ist, daß das Führen des eigenen lokalen Zählers ein periodisches Inkrementieren des eigenen lokalen Zählers bei Ablauf eines vorbestimmten Zeitintervalls umfaßt.
DE112004002233.9T 2003-11-19 2004-11-19 Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen Expired - Lifetime DE112004002233B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US52314003P 2003-11-19 2003-11-19
US60/523,140 2003-11-19
PCT/CA2004/002000 WO2005050463A1 (en) 2003-11-19 2004-11-19 Time and data synchronization between network devices

Publications (2)

Publication Number Publication Date
DE112004002233T5 DE112004002233T5 (de) 2006-10-05
DE112004002233B4 true DE112004002233B4 (de) 2018-07-12

Family

ID=34619577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004002233.9T Expired - Lifetime DE112004002233B4 (de) 2003-11-19 2004-11-19 Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen

Country Status (4)

Country Link
US (1) US7542485B2 (de)
DE (1) DE112004002233B4 (de)
GB (1) GB2425915B (de)
WO (1) WO2005050463A1 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660297B2 (en) 2002-06-13 2010-02-09 Nice Systems Ltd. Voice over IP forwarding
WO2004093476A1 (ja) * 2003-04-16 2004-10-28 Nec Corporation 移動通信システム、基地局、移動局、及びそれらに用いる無線通信方法
US7298707B2 (en) * 2004-01-21 2007-11-20 Cisco Technology, Inc. System and method for controlling the flooding of information in a network environment
US8229454B1 (en) 2004-03-22 2012-07-24 Avaya Inc. Personal location information management
US8462961B1 (en) * 2004-05-27 2013-06-11 Singlewire Software, LLC Method and system for broadcasting audio transmissions over a network
US8141118B2 (en) * 2004-07-26 2012-03-20 Microsoft Corporation Data broadcasting receiver power management
US7653018B2 (en) * 2004-07-27 2010-01-26 Microsoft Corporation Differential update for data broadcasting
US8930579B2 (en) * 2004-09-13 2015-01-06 Keysight Technologies, Inc. System and method for synchronizing operations of a plurality of devices via messages over a communication network
US8244913B1 (en) * 2004-10-13 2012-08-14 Progress Software Corporation Replication horizon determination with an independent distributed database system
WO2006054190A1 (en) * 2004-11-16 2006-05-26 Koninklijke Philips Electronics N.V. Time synchronization in wireless ad hoc networks of medical devices and sensors
US8001076B2 (en) * 2005-07-12 2011-08-16 International Business Machines Corporation Ranging scalable time stamp data synchronization
US7970017B2 (en) * 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
US9049285B2 (en) * 2005-12-01 2015-06-02 At&T Intellectual Property I, L.P. Synchronization of client application data between POTS telephone and content portal through PSTN
US7899894B2 (en) 2006-08-30 2011-03-01 International Business Machines Corporation Coordinated timing network configuration parameter update procedure
US8738792B2 (en) * 2007-01-31 2014-05-27 International Business Machines Corporation Server time protocol messages and methods
US7689718B2 (en) * 2007-01-31 2010-03-30 International Business Machines Corporation Channel subsystem server time protocol commands and system therefor
US9112626B2 (en) * 2007-01-31 2015-08-18 International Business Machines Corporation Employing configuration information to determine the role of a server in a coordinated timing network
US7738503B2 (en) * 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US8068588B2 (en) * 2007-06-26 2011-11-29 Microsoft Corporation Unified rules for voice and messaging
US7983702B2 (en) * 2007-07-09 2011-07-19 Qualcomm Incorporated Synchronization of a peer-to-peer communication network
US8811372B2 (en) * 2007-07-09 2014-08-19 Qualcomm Incorporated Synchronization of a peer-to-peer communication network
US8780885B2 (en) * 2007-07-09 2014-07-15 Qualcomm Incorporated Synchronization of a peer-to-peer communication network
US7961708B2 (en) * 2007-07-10 2011-06-14 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
US8520704B2 (en) * 2007-07-10 2013-08-27 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
US8494007B2 (en) * 2007-07-10 2013-07-23 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
US9848372B2 (en) 2007-07-10 2017-12-19 Qualcomm Incorporated Coding Methods of communicating identifiers in peer discovery in a peer-to-peer network
US8630281B2 (en) 2007-07-10 2014-01-14 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
US8532025B2 (en) * 2008-02-01 2013-09-10 Qualcomm Incorporated Signaling overhead reduction methods and systems using SUB-DL-UL-MAP and HARQ-MAP in mobile WiMAX
US7925916B2 (en) 2008-04-10 2011-04-12 International Business Machines Corporation Failsafe recovery facility in a coordinated timing network
US8416811B2 (en) * 2008-04-10 2013-04-09 International Business Machines Corporation Coordinated timing network having servers of different capabilities
US8606873B2 (en) * 2008-06-27 2013-12-10 Qualcomm Incorporated Methods and apparatus for securely advertising identification and/or discovery information
US7873862B2 (en) * 2008-10-21 2011-01-18 International Business Machines Corporation Maintaining a primary time server as the current time server in response to failure of time code receivers of the primary time server
JP5239752B2 (ja) * 2008-10-31 2013-07-17 富士通株式会社 同期メッセージ発行システム、同期メッセージ発行方法および同期メッセージ発行プログラム
US10320635B2 (en) * 2009-06-11 2019-06-11 Talari Networks Incorported Methods and apparatus for providing adaptive private network centralized management system timestamp correlation processes
JP2011164962A (ja) * 2010-02-10 2011-08-25 Buffalo Inc データ複製装置およびデータ複製方法
US8571014B2 (en) 2010-03-02 2013-10-29 Vitesse Semiconductor Corporation Distributed packet-based timestamp engine
KR20130106354A (ko) 2010-08-26 2013-09-27 톰슨 라이센싱 무선 근거리 통신망 장치에 사용되는 화이트 스페이스
US9042366B2 (en) 2010-09-30 2015-05-26 Vitesse Semiconductor Corporation Timestamp predictor for packets over a synchronous protocol
US8793402B2 (en) * 2011-08-26 2014-07-29 International Business Machines Corporation Synchronizing time across a plurality of devices connected to a network
FR2979719B1 (fr) * 2011-09-02 2014-07-25 Thales Sa Systeme de communications permettant la transmission de signaux entre des equipements terminaux raccordes a des equipements intermediaires relies a un reseau ethernet
US8918675B2 (en) * 2011-12-19 2014-12-23 Microsoft Corporation Rectifying corrupt sequence values in distributed systems
US8977883B2 (en) * 2012-11-20 2015-03-10 Roche Diagnostics Operations, Inc. Time synchronization improvements for interoperable medical devices
JP6512111B2 (ja) * 2013-06-28 2019-05-15 日本電気株式会社 通信システム、ネットワーク及びue並びにそれらの通信方法
US20150139250A1 (en) * 2013-11-18 2015-05-21 Pica8, Inc. Synchronized network statistics collection
US10439908B2 (en) 2014-12-23 2019-10-08 Talari Networks Incorporated Methods and apparatus for providing adaptive private network centralized management system time correlated playback of network traffic
WO2016208285A1 (ja) * 2015-06-22 2016-12-29 ソニー株式会社 通信制御装置、通信制御方法、ネットワークスイッチ、経路制御方法、及び通信システム
WO2017077361A1 (en) * 2015-11-02 2017-05-11 Telefonaktiebolaget Lm Ericsson (Publ) Technique to align a radio interface frame timing reference in a pool of radio equipment controllers
US10816937B2 (en) 2016-07-12 2020-10-27 Stryker Corporation Patient support apparatuses with clocks
US10341672B2 (en) * 2017-02-03 2019-07-02 Korea Advanced Institute Of Science And Technology Method and system for media synchronization
CN113612564B (zh) * 2017-08-23 2024-06-14 华为技术有限公司 一种报文处理的方法和网络设备
JP6988863B2 (ja) * 2019-08-08 2022-01-05 横河電機株式会社 プロトコルコンバータ、データ伝送方法、データ伝送プログラム、及び、データ伝送システム
CN110674157B (zh) * 2019-09-29 2022-04-19 成都吉胜科技有限责任公司 一种基于局域网的数据缓存方法
WO2022009373A1 (ja) * 2020-07-09 2022-01-13 三菱電機株式会社 時刻同期装置、時刻同期方法、及び、時刻同期プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108782A (en) * 1996-12-13 2000-08-22 3Com Corporation Distributed remote monitoring (dRMON) for networks
US6125368A (en) 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
US6581075B1 (en) 2000-12-28 2003-06-17 Nortel Networks Limited System and method for database synchronization

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0128271B1 (ko) * 1994-02-22 1998-04-15 윌리암 티. 엘리스 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US6493338B1 (en) 1997-05-19 2002-12-10 Airbiquity Inc. Multichannel in-band signaling for data communications over digital wireless telecommunications networks
US6052363A (en) * 1997-09-30 2000-04-18 Northern Telecom Limited Method for causal ordering in a distributed network
US6269095B1 (en) * 1998-02-04 2001-07-31 Siemens Information And Communication Networks, Inc. B-channel synchronization for G 723 1 vocoding
US6535505B1 (en) * 1998-09-30 2003-03-18 Cisco Technology, Inc. Method and apparatus for providing a time-division multiplexing (TDM) interface among a high-speed data stream and multiple processors
US6449622B1 (en) * 1999-03-08 2002-09-10 Starfish Software, Inc. System and methods for synchronizing datasets when dataset changes may be received out of order
US6661811B1 (en) * 1999-02-12 2003-12-09 Koninklijke Philips Electronics N.V. Method of and apparatus for communicating isochronous data
WO2000062470A1 (en) 1999-04-14 2000-10-19 Saphire Communications, Inc. Universal synchronous network system for internet processor and web operating environment
US6587461B1 (en) * 1999-06-08 2003-07-01 Cisco Technology, Inc. TDM switching system and ASIC device
WO2001019005A1 (en) 1999-09-03 2001-03-15 Broadcom Corporation System and method for the synchronization and distribution of telephony timing information in a cable modem network
US6751573B1 (en) * 2000-01-10 2004-06-15 Agilent Technologies, Inc. Performance monitoring in distributed systems using synchronized clocks and distributed event logs
US6898204B2 (en) * 2000-04-07 2005-05-24 Broadcom Corporation Method of determining a collision between a plurality of transmitting stations in a frame-based communications network
US6522629B1 (en) * 2000-10-10 2003-02-18 Tellicent Inc. Traffic manager, gateway signaling and provisioning service for all packetized networks with total system-wide standards for broad-band applications including all legacy services
US6766407B1 (en) * 2001-03-27 2004-07-20 Microsoft Corporation Intelligent streaming framework
US7151945B2 (en) * 2002-03-29 2006-12-19 Cisco Systems Wireless Networking (Australia) Pty Limited Method and apparatus for clock synchronization in a wireless network
JP5078357B2 (ja) * 2003-11-12 2012-11-21 アバイア カナダ コーポレーション ピアの発見

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108782A (en) * 1996-12-13 2000-08-22 3Com Corporation Distributed remote monitoring (dRMON) for networks
US6125368A (en) 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
US6581075B1 (en) 2000-12-28 2003-06-17 Nortel Networks Limited System and method for database synchronization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
, Rumen: Verteilte Betriebssysteme. 1. Auflage. Düsseldorf: VDI-Verlag, 1994, S.172-174. ISBN: 3-18-401345-6 *

Also Published As

Publication number Publication date
GB0611344D0 (en) 2006-07-19
DE112004002233T5 (de) 2006-10-05
GB2425915B (en) 2008-01-02
US7542485B2 (en) 2009-06-02
WO2005050463A1 (en) 2005-06-02
US20050135429A1 (en) 2005-06-23
GB2425915A (en) 2006-11-08

Similar Documents

Publication Publication Date Title
DE112004002233B4 (de) Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen
DE60311266T2 (de) Clock-synchronisationsmethode für fehlertolerante ethernet-netzwerke
DE102007035209B4 (de) Nutzung von Mobilität in Unternehmen
DE602005001911T2 (de) Geplante Ermittlung von Netz-Betriebsmittelverfügbarkeit
DE69333633T2 (de) Vorrichtung und verfahren zur reduzierung des leistungsverbrauchs in einem mobilen kommunikations empfänger
DE69026004T2 (de) Fernsprechkommunikationssystem
DE102011101963B4 (de) SIP-Ankerpunkte zum Belegen von gemeinsamen Kommunikationsprotokollen
DE602004011484T2 (de) Verfahren und Vorrichtung zum Synchronisieren von Uhren von Netzknoten
DE112013000506B4 (de) Verwaltungsprotokoll für verteilte Strukturen
DE102008062983B4 (de) Intelligenter Lastausgleich für Call-Center-Anwendungen
US20030103468A1 (en) Multi-site teleconferencing system
DE10238546A1 (de) Verfahren zur Bereitstellung von Ressourcen in Kommunikations-Netzwerken
DE102008036453A1 (de) Verfahren zum Versenden von Daten und Kommunikationseinrichtung
DE10345051B4 (de) Verfahren zum Aufbau einer Kommunikationsverbindung in einem direkt kommunizierenden Kommunikationsnetzwerk
EP1198911A1 (de) Synchronisierungsverfahren und -system für taktquellen bei insbesondere paketvermittelnden kommunikationssystemen
DE69838326T2 (de) Wiedergewinnung von gruppeninformation unter mobilen systemen
DE19939057C2 (de) Verfahren zur Aktualisierung von teilnehmerbezogenen Daten eines Telekommunikationsnetzes
DE112004003043B4 (de) System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk
EP1520391B1 (de) Kommunikationsnetz mit kommunikationskomponenten mit client- und server-funktionalitäten und mit suchfunktionen
EP3603041A1 (de) Verfahren zum betreiben eines kommunikationssystems, telekommunikationsvorrichtung sowie computerprogrammprodukt
DE60208653T2 (de) Örtlich verteiltes Telekonferenzsystem
EP1520389B1 (de) Netzwerk mit in kommunikationskomponenten integrierten suchfunktionen
EP1317123A1 (de) Örtlich verteiltes Telekonferenzsystem
DE2141333A1 (de) Nachrichtenuebertragungssystem
LU503288B1 (de) Verfahren zur Synchronisation von Sensoreinheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20111111

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R071 Expiry of right