DE10313874A1 - Bestimmung eines verfügbaren Servers - Google Patents
Bestimmung eines verfügbaren ServersInfo
- Publication number
- DE10313874A1 DE10313874A1 DE10313874A DE10313874A DE10313874A1 DE 10313874 A1 DE10313874 A1 DE 10313874A1 DE 10313874 A DE10313874 A DE 10313874A DE 10313874 A DE10313874 A DE 10313874A DE 10313874 A1 DE10313874 A1 DE 10313874A1
- Authority
- DE
- Germany
- Prior art keywords
- server
- synchronized
- unsynchronized
- network
- group
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0641—Change of the master or reference, e.g. take-over or failure of the master
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Abstract
Bei einem Verfahren wird ein erster verfügbarer Server unter einem oder mehreren Servern ansprechend auf ein Anforderungspaket bestimmt. Die Netzzeit von dem ersten verfügbaren Server wird auf einen Client angewendet, um seinen Systemtakt zu synchronisieren.
Description
- Diese Erfindung bezieht sich allgemein auf Computernetze. Spezieller bezieht sich die Erfindung auf eine Zeitsynchronisierung innerhalb eines Netzes.
- Herkömmliche Computersysteme unterhalten typischerweise einen internen Takt (z. B. einen Systemtakt), um das Datum und die Uhrzeit eines Tages zu verfolgen. Bei vielen verschiedenen Anwendungen, z. B. dem Verwalten und Aufspüren einer elektronischen Post (E-Mail), dem zeitlichen Bestimmen von Sicherungskopien von Daten auf einem Netz, dem Synchronisieren von Kommunikationen zwischen Clients und Servern, dem Verwalten von Multimediatelekonferenzen etc., sind exakte Zeit- und Datumsmessungen erforderlich. Zeittakte, die durch die meisten Computersysteme unterhalten werden, unterliegen tendenziell einem bestimmten Fehlerbetrag oder einer "Drift". Daher wird notwendig, solche Takte zu verschiedenen Uhrzeiten auf einen exakten Referenztakt zu synchronisieren, um dadurch die Genauigkeit der Anwendungen zu erhöhen.
- Eine Anzahl von Lösungen ist zum Synchronisieren der Systemtakte von Computersystemen entwickelt worden. Bei einer Lösung stellt der Benutzer eines Computersystems den Takt manuell ein, immer wenn der Takt scheinbar gedriftet ist. Diese Technik ist jedoch sowohl für den Benutzer unpraktisch als daß sie auch ihren eigenen Ungenauigkeiten unterliegt.
- Eine höher entwickelte Lösung macht von einem Server Gebrauch, der auf ein Netz, wie z. B. dem Internet, arbeitet. Das Servercomputersystem unterhält einen hochgenauen Zeittakt, wie z. B. eine Atomuhr, und liefert exakte Zeitlesungen an andere Computersysteme auf dem Netz unter Verwendung eines Kommunikationsprotokolls, wie z. B. NTP (NTP = Network Time Protocol = Netzzeitprotokoll) oder SNTP (SNTP = Simple Network Time Protocol = einfaches Netzzeitprotokoll). Bei dieser Art der Anordnung kann ein Client- Computersystem eine Anforderung nach einer genauen Zeitlesung über das Internet an den NTP- oder SNTP-Server senden, wenn es notwendig ist, seinen internen Takt zu synchronisieren. Die Anforderung kann zu einem von einer Anzahl von sekundären Servern geroutet werden, die als Mittler zwischen den Client-Systemen, die eine Taktsynchronisierung erfordern, und einem primären NTP- oder SNTP-Server funktionieren. Die Verwendung von solchen sekundären Servern soll allgemein das Laden auf dem primären NTP- oder SNTP-Server reduzieren. Ein primärer NTP- oder SNTP-Server kann beispielsweise durch eine Regierungsentität unterhalten werden, während der Zugriff auf die primären NTP- oder SNTP- Server durch sekundäre NTP- oder SNTP-Server reguliert wird, die beispielsweise durch Universitäten und gewerbliche Unternehmen zur Verwendung durch ihre Studenten bzw. Mitarbeiter unterhalten werden.
- Die bekannten Lösungen weisen jedoch bestimmte Haken und Nachteile auf. Ein exemplarisches Problem, das den bekannten NTP- und SNTP-basierten Taktsynchronisierungstechniken zugeordnet ist, ist, daß die sekundären Server durch die Synchronisierungsanforderungen tendenziell überlastet werden können. Dieses Problem kann bei den sekundären Servern, die große Netze bedienen, üblicher sein. Ein großes gewerbliches Unternehmen kann beispielsweise einen sekundären Server unterhalten, der hunderte oder taüsende von Client-Systemen bedient. Daher kann das Eintreten von einer großen Anzahl von Synchronisierungsanforderungen innerhalb eines kurzen Zeitraums den Betrieb des sekundären Servers beträchtlich verlangsamen. Dieser Effekt ist unerwünscht, speziell wenn der sekundäre Server auch für andere Dienste verantwortlich ist.
- Andere Probleme, die den bekannten Taktsynchronisierungstechniken zugeordnet sind, sind eine unpraktische Handhabung für Benutzer und eine Unterbrechung der Aktivitäten des Benutzers. Die Synchronisierung eines Zeittaktes eines Computersystems wird typischerweise unter der Steuerung einer Netzanwendungssoftware ausgeführt, die auf dem Computersystem ausgeführt wird, das die Kommunikationsvorrichtung des Computersystems betreibt, um auf einen Netzserver zuzugreifen. In einer Privathaushaltsumgebung, in der der Zugriff auf das Internet typischerweise durch die Verwendung eines Modems bereitgestellt wird, muß die Netzsoftware eine Modemeinwahlroutine ausführen, um eine Verbindung zum Internet einzurichten. Es ist für ein Computersystem nicht wünschenswert, ein Hinauswählen von alleine zu initiieren, immer wenn eine Taktsynchronisierung erforderlich ist, da sich dies störend auf den Benutzer auswirken kann. Folglich sind Netzsoftwareprodukte üblicherweise konfiguriert, um den Zeittakt nur zu synchronisieren, wenn bestimmt worden ist, daß eine aktive Netzverbindung existiert. Dieser Lösungsansatz weist den Nachteil auf, daß der Zeittakt in einer Situation im Privathaushalt nur synchronisiert wird, wenn der Benutzer tatsächlich auf das Internet zugreift, was nicht mit der erforderlichen Häufigkeit geschieht, um die Genauigkeit des Takts beizubehalten.
- Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zu schaffen, die eine zuverlässige Synchronisation zwischen einem Client und einem Netz ermöglichen.
- Diese Aufgabe wird durch ein Verfahren gemäß den Ansprüchen 1 und 43, eine Vorrichtung gemäß Anspruch 17, ein System gemäß Anspruch 30 sowie ein computerlesbares Medium gemäß Anspruch 55 gelöst.
- Gemäß einem Ausführungsbeispiel bezieht sich die vorliegende Erfindung auf ein Verfahren zum Synchronisieren eines Takts in einem Client mit einer Netzzeit von einem Server. Bei dem Verfahren wird ein Anforderungspaket übertragen, und es werden ein oder mehrere Datenpakete von zumindest einem Server ansprechend auf das Anforderungspaket empfangen. Die ein oder mehreren Datenpakete werden basierend auf der Reihenfolge des Empfangs von jedem der ein oder mehreren Datenpakete sortiert. Ein Test wird ausgeführt, um das erste synchronisierte Paket von den ein oder mehreren Datenpaketen zu bestimmen. Zusätzlich wird ein erster synchronisierter Server ansprechend auf ein Finden des ersten synchronisierten Pakets ausgewählt.
- Gemäß einem anderen Ausführungsbeispiel bezieht sich die vorliegende Erfindung auf eine Vorrichtung zum Synchronisieren eines Systemtakts in einem Client. Die Vorrichtung umfaßt eine Einrichtung zum Übertragen einer Anforderung nach einer Zeitsynchronisierung, eine Einrichtung zum Empfangen von Antworten von einer Mehrzahl von Servern, eine Einrichtung zum Bestimmen, eine Einrichtung zum Speichern der Reihenfolge des Empfangs der Antworten und eine Einrichtung zum Bestimmen, ob eine beliebige der Antworten von einem synchronisierten Server ist.
- Gemäß noch einem weiteren Ausführungsbeispiel bezieht sich die vorliegende Erfindung auf ein System zur Synchronisierung eines Systemtakts in einem Client. Das System umfaßt ein Zeit-Synchronisations-Modul, das zur Speicherung und Ausführung auf dem Client konfiguriert ist. Zusätzlich ist das Zeit-Synchronisations-Modul betreibbar, um eine Anforderung nach einer Zeitsynchronisierung an einen oder mehrere Server zu übertragen und Antworten von dem einen oder den mehreren Servern zu empfangen. Das Zeit- Synchronisations-Modul ist ferner konfiguriert, um zu bestimmen, ob die antwortenden Server synchronisiert sind, sowie die Reihenfolge, in der die Server antworteten, und um die Netzzeit von dem ersten synchronisierten Server zum Antworten anzuwenden.
- Gemäß einem weiteren Ausführungsbeispiel bezieht sich die vorliegende Erfindung auf ein Verfahren. Bei dem Verfahren wird ein erster verfügbarer Server aus einem oder mehreren Servern ansprechend auf ein Anforderungspaket bestimmt. Zusätzlich wird eine Netzzeit von dem ersten verfügbaren Server angewendet.
- Gemäß einem anderen Ausführungsbeispiel bezieht sich die vorliegende Erfindung auf ein computerlesbares Speicherungsmedium, auf dem ein oder mehrere Computerprogramme eingebettet sind. Das eine oder die mehreren Computerprogramme implementieren ein Verfahren und umfassen einen Satz von Anweisungen zum Bestimmen eines ersten verfügbaren Servers aus einer Mehrzahl von Servern ansprechend auf ein Anforderungspaket und zum Anwenden einer Netzzeit von dem ersten verfügbaren Server.
- Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend, Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
- Fig. 1 ein vereinfachtes Diagramm eines exemplarischen Netzes gemäß einem Ausführungsbeispiel der Erfindung,
- Fig. 2 ein Blockdiagramm einer exemplarischen Rechenplattform, in der ein Ausführungsbeispiel der Erfindung implementiert ist,
- Fig. 3 ein exemplarisches Blockdiagramm einer Architektur für eine Netzvorrichtung, die in Fig. 1 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung,
- Fig. 4A bis 4B zusammen ein Flußdiagramm für einen Betriebsmodus des Zeit-Synchronisations-Moduls, das in Fig. 3 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung,
- Fig. 5A zusammen ein Flußdiagramm gemäß einem anderen bis 5B Ausführungsbeispiel der vorliegenden Erfindung und
- Fig. 6 ein Flußdiagramm, das eine Betriebsweise eines Servers gemäß einem Ausführungsbeispiel der Erfindung darstellt.
- Der Einfachheit halber und zu Darstellungszwecken werden die Grundsätze der vorliegenden Erfindung durch überwiegende Bezugnahme auf ein exemplarisches Ausführungsbeispiel derselben beschrieben. In der nachstehenden Beschreibung sind zahlreiche spezifische Einzelheiten aufgeführt, um ein eingehendes Verständnis der vorliegenden Erfindung zu ermöglichen. Fachleute mit Durchschnittsqualifikation werden jedoch darauf hingewiesen, daß die vorliegende Erfindung ohne Einschränkung auf diese spezifischen Einzelheiten praktiziert werden kann. In anderen Fällen sind bekannte Verfahren und Strukturen nicht ausführlich beschrieben worden, um das Verstehen der vorliegenden Erfindung nicht in unnötiger Weise zu erschweren.
- Ein Ausführungsbeispiel der vorliegenden Erfindung bezieht sich auf ein Synchronisieren von Takten in Netzvorrichtungen, z. B. Druckern, Photokopierern, Personalcomputern und ähnlichen Vorrichtungen. Spezieller kann ein Zeitsynchronisierungsmodul (das nachstehend als "Zeit-Sync"-Modul bezeichnet wird), das auf einer Netzvorrichtung ausgeführt wird, konfiguriert sein, um den Systemtakt einer Netzvorrichtung auf einen Netzserver zu synchronisieren. Das Zeit- Synchronisations-Modul kann die Synchronisierung unter Nutzung des SNTP ausführen. Das Zeit-Synchronisations-Modul kann in Verbindung mit der Client-Software, die auf der Netzvorrichtung ausgeführt wird, arbeiten. Alternativ kann das Zeit-Synchronisations-Modul in die Client-Software integriert sein.
- Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung kann ein Zeit-Synchronisations-Modul konfiguriert sein, um eine Synchronisierungsanforderungsnachricht an ein Netz rundzusenden (oder sammelzusenden), wobei das Netz mehrere Netzserver enthalten kann. Das Zeit-Synchronisations-Modul kann konfiguriert sein, um Datenpakete von den antwortenden Netzservern zu analysieren, und zu bestimmen, ob ein antwortender Server synchronisiert ist. Wenn das Zeit- Synchronisations-Modul bestimmt hat, daß ein antwortender Server synchronisiert ist, kann das Zeit-Synchronisations- Modul die Zeit von einem Antwortpaket des ersten antwortenden synchronisierten Servers verwenden und den Systemtakt für die Netzvorrichtung aktualisieren.
- Bei einem anderen Ausführungsbeispiel der vorliegenden Erfindung kann das Zeit-Synchronisations-Modul konfiguriert sein, um eine Synchronisierungsanforderungsnachricht an ein Netz rundzusenden (oder sammelzusenden), wobei das Netz mehrere Netzserver enthalten kann. Das Zeit- Synchronisations-Modul kann die Antwortpakete von den antwortenden Netzservern sortieren. Das Zeit- Synchronisations-Modul kann die Antwortpakete in zwei Gruppen auf Grundlage dessen, ob der Server synchronisiert ist, organisieren: (1) Wenn der antwortende Server synchronisiert ist, wird die Serveradresse und die entsprechende Netzzeit in eine geordnete Gruppe basierend auf der Reihenfolge des Empfangs plaziert und (2) wenn der antwortende Server nicht synchronisiert ist, wird die Serveradresse und die entsprechende Netzzeit in eine zweite geordnete Gruppe basierend auf der Reihenfolge des Empfangs plaziert.
- Wenn ein Zeit-Synchronisations-Modul die Antwortpakete von den synchronisierten Servern enthält, kann das Zeit- Synchronisations-Modul konfiguriert sein, um eine Durchschnittszeit und Standardabweichung für die synchronisierten Server zu berechnen. Das Zeit-Synchronisations-Modul kann dann den ersten synchronisierten Server, der in ein gegebenes Vielfaches der berechneten Standardabweichung fällt, durch die Reihenfolge in der Gruppe wählen. Das Zeit-Synchronisations-Modul kann anschließend die Zeit von dem ausgewählten Netzserver verwenden, um den Systemtakt zu aktualisieren.
- Wenn das Zeit-Synchronisations-Modul bestimmt hat, daß nur nicht synchronisierte Netzserver antworteten, kann das Zeit-Synchronisations-Modul konfiguriert sein, um eine Durchschnittszeit und Standardabweichung für die nicht synchronisierten Server zu berechnen. Das Zeit- Synchronisations-Modul kann dann den ersten nichtsynchronisierten Server, der in ein gegebenes Vielfaches der berechneten Standardabweichung fällt, durch Reihenfolge des Empfangs in der Gruppe wählen. Das Zeit-Synchronisations- Modul kann anschließend die Zeit von dem ausgewählten Netzserver verwenden, um den Systemtakt zu aktualisieren.
- Dementsprechend kann eine Netzvorrichtung Antworten von den Netzservern, die im wesentlichen weniger beschäftigt sind und sich (netztechnisch) in nächster Nähe befinden, bevor die Netzvorrichtung Antworten von stärker belasteten Servern oder Netzservern empfängt, die sich in relativ weiter Entfernung befinden, durch Nutzung eines Ausführungsbeispiels des Zeit-Synchronisations-Moduls empfangen. Durch Auswählen des ersten synchronisierten Servers, der in das ausgewählte Vielfache der Standardabweichung fällt, kann die Last auf mehreren Servern und die Last auf dem Netz besser ausbalanciert werden. Bei einer großen Netzkonfiguration kann dies den Verkehr über ein Teilnetz hinaus wesentlich reduzieren.
- Fig. 1 stellt ein Blockdiagramm eines exemplarischen Netzes 10 dar, wobei ein Ausführungsbeispiels der vorliegenden Erfindung praktiziert werden kann. Fachleute mit Durchschnittsqualifikation werden darauf hingewiesen, daß das Netz 10, das in Fig. 1 dargestellt ist, eine verallgemeinerte schematische Darstellung darstellt und daß andere Komponenten hinzugefügt oder existierende Komponenten entfernt oder modifiziert werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen.
- Wie in Fig. 1 gezeigt ist, kann das Netz 10 ein LAN (LAN = Local Area Network - lokales Netz), ein weites Netz, ein globales Telekommunikationssystem, z. B. das Internet, oder eine bestimmte Kombination aus denselben sein. Zusätzlich kann das Netz 10 eine Mehrzahl aus Teilnetzen 12 und 14 umfassen, die verbunden sind, um das Netz 10 über Router 18 zu bilden. Alternativ können Netzschalter, Brücken und anderen ähnlichen Vorrichtungen ersetzt oder in Verbindung mit den Routern 18 verwendet werden.
- Das Netz 10, einschließlich der Teilnetze 12 und 14, kann eine Mehrzahl von Servern 20 bis 30 umfassen. Einige der Server 20 bis 30 können Server aufweisen, z. B. primäre oder sekundäre Server. Die verbleibenden Server 20 bis 30 können konzipiert sein, um im Netz 10 Netzdienste auszuführen (z. B. um Softwareanwendungen, Datenspeicherung etc. bereitzustellen). Zusätzlich können einige der Server 20 bis 30 eine Kombination aus verschiedenen Funktionen ausführen (z. B. Zeitdienste, Datenspeicherung, etc.).
- Das Netz 10 kann auch eine Mehrzahl von Netzvorrichtungen 32 bis 42 umfassen. Die Netzvorrichtungen 32 bis 42 können Personalcomputer, Laptops, persönliche digitale Assistenten, Drucker und ähnliche Vorrichtungen umfassen, die an das Netz 10 durch jeweilige Netzschnittstellen angebracht sein können.
- Das Netz 10 und die Teilnetze 12 bis 14 können Kommunikationsdienste an die Clients 32 bis 43 durch ein verdrahtetes Protokoll, wie z. B. IEEE 802.3, einen Token-Ring, X.25 etc., drahtlose Protokolle, wie z. B. Cellular Digital Packet Data (Zellulare digitale Paketdaten), Mobitex, IEEE 801.11b, Wireless Application Protocol (drahtloses Anwendungsprotokoll), Global System for Mobiles (globales System für Mobiltelephone) etc., oder eine Kombination aus denselben liefern.
- Fig. 2 stellt ein Blockdiagramm einer exemplarischen Rechenplattform 200 dar, die für einige oder für alle Netzvorrichtungen 32 bis 42 und/oder die Server 20 bis 30 in Fig. 1 repräsentativ ist. Fachleute werden darauf hingewiesen, daß an der dargestellten Konfiguration in Übereinstimmung mit den hierin beschriebenen Techniken viele Variationen vorgenommen werden können. Die Rechenplattform 200 kann beispielsweise für einen Drucker verändert werden, wobei eine Maus und eine ausbaubare Speicherungseinheit ausgelassen werden.
- Die Rechenplattform 200 umfaßt einen oder mehrere Prozessoren, wie z. B. einen Prozessor 202, der konfiguriert ist, um eine Ausführungsplattform für eine Netzvorrichtung, wie z. B. eine Netzvorrichtung 32 (Fig. 1), bereitzustellen. Befehle und Daten vom Prozessor 202 können über ein Kommunikationsbus 204 kommuniziert werden.
- Die Rechenplattform 200 umfaßt auch einen Hauptspeicher 206, vorzugsweise einen RAM (RAM = Random Access Memory- Direktzugriffsspeicher), wobei die Software für die Netzvorrichtung 32 während einer Laufzeit ausgeführt werden kann. Zusätzlich kann ein sekundärer Speicher 208 ebenfalls in der Rechenplattform 200 umfaßt sein. Der sekundäre Speicher 208 umfaßt beispielsweise ein Festplattenlaufwerk 210 und/oder ein ausbaubares Speicherungslaufwerk 212, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Kompaktdisklaufwerk und dergleichen darstellt. Das ausbaubare Speicherungslaufwerk 212 kann eine Kopie der Software für die Speicherungsvorrichtung 32 speichern. Zusätzlich kann das ausbaubare Speicherungslaufwerk 212 von einer ausbaubaren Speicherungseinheit 214, z. B. einer Diskette, Kompaktdisk etc., lesen und/oder an dieselbe schreiben.
- Ein Benutzer kann sich mit der Rechenplattform 200 durch eine Tastatur 216, eine Maus 216 und eine Anzeige 220 schnittstellenmäßig verbinden. Ein Anzeigeadapter 222 kann zwischen dem Kommunikationsbus 204 und der Anzeige 220schnittstellenmäßig verbunden sein, um Anzeigedaten vom Prozessor 202 zu empfangen und um die Anzeigedaten in Anzeigebefehle, die auf der Anzeige 220 sichtbar sind, umzuwandeln. Die Rechenplattform 200 kann mit einem Netz durch eine Netzschnittstelle 224 schnittstellenmäßig verbunden sein.
- Einige oder alle Aspekte des Zeit-Synchronisations-Moduls, die hierin beschrieben sind, können in einer Software verkörpert sein. Das Zeit-Synchronisations-Modul kann beispielsweise in einem Client 32 bis 42 ansprechend auf seinen Prozessor 202, der Sequenzen von Anweisungen ausführt, die in einem Speicher, z. B. dem Speicher 208, enthalten sind, ausgeführt werden. Die Anweisungen können vom Hauptspeicher 206, z. B. dem RAM, ausgeführt und von einem permanenten Speicher, wie z. B. einer Massenspeicherungsvorrichtung und/oder einer oder mehreren anderen Fernnetzvorrichtungen, geladen werden. In letzterem Fall kann die Netzvorrichtung eine Sequenz von Anweisungen über ein Netz an eine Fernnetzvorrichtung ansprechend auf eine Nachricht, die an die Netzvorrichtung übertragen wurde, übertragen. Während die Netzvorrichtung die Anweisungen über die Netzverbindung von der Fernnetzvorrichtung empfängt, speichert die Netzvorrichtung die Anweisungen in einem Speicher, z. B. zur späteren Ausführung oder zur Ausführung während des Empfangs der Anweisungen.
- Fig. 3 stellt ein Blockdiagramm einer exemplarischen Architektur 300 für eine Netzvorrichtung 32 bis 42, die in Fig. 1 gezeigt ist, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dar. Fachleute mit Durchschnittsqualifikation werden darauf hingewiesen, daß die Architektur 300, die in Fig. 3 dargestellt ist, eine verallgemeinerte Darstellung darstellt und daß andere Komponenten hinzugefügt oder existierende Komponenten ausgebaut oder modifiziert werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen.
- Wie in Fig. 3 gezeigt ist, umfaßt die Architektur 300 ein Zeit-Synchronisations-Modul 310, ein Betriebssystem 320 und eine Netzschnittstelle 330. Das Zeit-Synchronisations-Modul 310 kann konfiguriert sein, um eine Synchronisierungsanforderungsnachricht an eine Mehrzahl von Netzservern, z. B. die Server 20 bis 30, wenn diese aufgerufen worden sind, zu senden (z. B. sammelsenden oder rundsenden). Das Zeit- Synchronisations-Modul 310 kann auch konfiguriert sein, um Antwortpakete von den antwortenden Netzservern zu analysieren, um zu bestimmen, ob der antwortende Server synchronisiert ist. Wie nachstehend ausführlicher beschrieben ist, kann die Analyse der Antwortpakete dazu verwendet werden, um zu bestimmen, ob die antwortenden Server synchronisiert oder nichtsynchronisiert sind. Wenn das Zeit- Synchronisations-Modul 310 bestimmt hat, daß der Server synchronisiert ist, kann das Zeit-Synchronisations-Modul 310 die Zeit von einem Antwortpaket verwenden und den Systemtakt für den Client, der das Zeit-Synchronisations- Modul ausführt, synchronisieren.
- Bei einem anderen Ausführungsbeispiel der vorliegenden Erfindung kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um eine Synchronisierungsanforderungsnachricht an eine Mehrzahl von Servern, z. B. Server 20 bis 30, zu senden. Das Zeit-Synchronisations-Modul 310 kann die Antwortpakete von den antwortenden Netzservern gemäß der Reihenfolge ihres Empfangs sortieren. Das Zeit- Synchronisations-Modul 310 kann die Antwortpakete in zwei Gruppen auf Basis der Synchronisierung der antwortenden Server organisieren: (1) Wenn der antwortende Server synchronisiert ist, kann die Serveradresse und die entsprechende Netzzeit in eine geordneten Gruppe basierend auf der Empfangsreihenfolge plaziert werden und (2) wenn der antwortende Server nicht synchronisiert ist, können die Serveradresse und die entsprechende Netzzeit in eine zweite geordnete Gruppe basierend auf der Empfangsreihenfolge plaziert werden.
- Das Zeit-Synchronisations-Modul 310 kann konfiguriert sein, um eine Durchschnittszeit und Standardabweichung von den Datenpaketen, die von den synchronisierten Servern empfangen wurden, zu berechnen. Das Zeit-Synchronisations-Modul 310 kann dann den ersten synchronisierten Server, der in ein gegebenes Vielfaches der berechneten Standardabweichung fällt, durch die Reihenfolge in der Gruppe wählen. Das Zeit-Synchronisations-Modul 310 kann anschließend die Zeit von dem ausgewählten Netzserver verwenden, um den Systemtakt zu aktualisieren.
- Wenn das Zeit-Synchronisations-Modul 310 bestimmt hat, daß keine synchronisierten Netzserver antworteten, kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um eine Durchschnittszeit und Standardabweichung für die nicht synchronisierten Server zu berechnen. Das Zeit- Synchronisations-Modul 310 kann dann den ersten nicht synchronisierten Server, der in ein gegebenes Vielfaches der berechneten Standardabweichung fällt, durch die Reihenfolge des Empfangs in der Gruppe wählen. Das Zeit- Synchronisations-Modul 310 kann anschließend die Zeit von dem ausgewählten Netzserver verwenden, um den Systemtakt zu aktualisieren.
- Das Zeit-Synchronisations-Modul 310 kann ferner konfiguriert sein, um mit dem Betriebssystem 320 schnittstellenmäßig verbunden zu sein. Spezieller kann das Zeit- Synchronisations-Modul 310 mit dem Betriebssystem 320 durch eine API (API = Application Program Interface = Anwendungsprogrammschnittstelle, nicht gezeigt) schnittstellenmäßig verbunden sein. Das Betriebssystem 320 kann konfiguriert sein, um die Softwareanwendung, Daten und jeweiligen Hardwarekomponenten (z. B. Anzeigen, Plattenlaufwerke etc.) der Netzvorrichtung, z. B. 32 bis 42, zu verwalten. Die MICROSOFT-WINDOWS-Familie von Betriebssystemen, UNIX, HEWLETT- PACKARD HP-UX, LINUX, RIM OS und andere ähnliche Betriebssysteme können das Betriebssystem 320 implementieren.
- Das Betriebssystem 320 kann mit der Netzschnittstelle 330 durch einen Vorrichtungstreiber (nicht gezeigt) gekoppelt sein. Die Netzschnittstelle 330 (z. B. die Netzschnittstelle 224, die in Fig. 2 gezeigt ist) kann konfiguriert sein, um einen Kommunikationsport für die Netzvorrichtung, z. B. 36, über das Netz 10 (in Fig. 1 gezeigt) bereitzustellen. Die Netzschnittstelle 330 kann unter Verwendung einer Netzschnittstellenkarte, einer drahtlosen Schnittstellenkarte oder einer anderen ähnlichen Eingabe- /Ausgabevorrichtung implementiert sein.
- Fig. 4A bis 4B stellen zusammen ein Flußdiagramm für einen exemplarischen Betriebsmodus 400 des Zeit-Synchronisations- Moduls 310, das in Fig. 3 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung dar. Daneben stellen die Fig. 5A bis 5B zusammen ein Flußdiagramm für einen exemplarischen Betriebsmodus 500 des Zeit-Synchronisations-Moduls 310, das in Fig. 3 gezeigt ist, gemäß einem anderen Ausführungsbeispiel der Erfindung dar. Fachleute mit Durchschnittsqualifikation werden darauf hingewiesen, daß die Betriebsmodi 400 und 500 verallgemeinerte Darstellungen darstellen und daß andere Schritte hinzugefügt oder existierende Schritte entfernt oder modifiziert werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen.
- Die in den Betriebsmodi 400 und 500 dargestellten Schritte können jeweils als ein Hilfsprogramm, Programm, Teilprogramm und in einem beliebigen gewünschten computerzugreifbaren Medium enthalten sein. Zusätzlich können die Betriebsmodi 400 und 500 jeweils durch ein Computerprogramm, das in einer Vielfalt an Formen sowohl aktiv als auch inaktiv existieren kann, verkörpert sein. Jeder der Betriebsmodi 400 und 500 kann beispielsweise als ein Softwareprogramm (Softwareprogramme) existieren, das (die) aus Programmanweisungen in einem Quellencode, Objektcode, ausführbaren Code oder anderem Format besteht (bestehen). Ein beliebiger Teil der vorstehenden Aufzählung kann auf einem computerlesbaren Medium verkörpert sein, das Speicherungsvorrichtungen und Signale in komprimierter oder unkomprimierter Form enthält.
- Exemplarische computerlesbare Speicherungsvorrichtungen umfassen einen herkömmlichen Computersystem-RAM, -ROM, -EPROM, -EEPROM und magnetische oder optische Platten oder Bänder. Exemplarische computerlesbare Signale, egal ob diese unter Verwendung eines Trägers moduliert sind oder nicht, sind Signale, für die ein Computersystem, das das Computerprogramm hostet oder betreibt, für einen Zugriff auf dieselben konfiguriert sein kann, einschließlich Signale, die durch das Internet oder andere Netze heruntergeladen werden. Konkrete Beispiele des vorhergehenden umfassen eine Verteilung der Programme auf einem CD-ROM oder über einen Internet-Download. In gewissem Sinne ist das Internet an sich als eine abstrakte Entität ein computerlesbares Medium. Das gleiche gilt für Computernetze im allgemeinen. Obwohl in den nachstehenden Beschreibungen von Fig. 4A bis 4B und Fig. 5A bis 5B auf das Sync-Modul 310, das in Fig. 3 dargestellt ist, wo es bestimmte Funktionen ausführt, speziell Bezug genommen wird, wird darauf hingewiesen, daß jene Funktionen durch eine beliebige elektronische Vorrichtung, die die vorstehend beschriebenen Funktionen ausführen kann, ausgeführt werden können.
- Unter erstmaliger Bezugnahme auf Fig. 4A kann das Zeit- Synchronisations-Modul 310 konfiguriert sein, um bei Schritt 405 in einem Ruhezustand oder Leerlaufzustand (idle state) zu sein. Das Zeit-Synchronisations-Modul 310 kann konfiguriert sein, um ein Anforderungspaket bei Schritt 410 zu erzeugen. Spezieller kann das Anforderungspaket durch Instantiieren eines SNTP-Pakets mit Nullen erzeugt werden. Zusätzlich kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um das Versionsfeld auf drei zu setzen und auch das Modusfeld auf drei des SNTP-Pakets zu setzen. Bei Schritt 415 kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um das Anforderungspaket beispielsweise mit einer Adresse von 244.0.0.1 auf einem Port 123 sammelzusenden. Alternativ kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um das Anforderungspaket in einer beliebigen bekannten Weise zu formatieren, um eine Sammelsendung an eine Mehrzahl von Servern auszuführen.
- Das Zeit-Synchronisations-Modul 310 kann konfiguriert sein, um zu bestimmen, ob irgendwelche Antwortpakete bei Schritt 420 empfangen worden sind. Bei Schritt 425 wird bestimmt, ob irgendwelche Antworten innerhalb einer vorbestimmten Zeitdauer empfangen wurden. Daher kann durch einen Auswahl- ()-Befehl ein Zeitablauf implementiert werden. Alternativ kann ein Zeitgeber, z. B. ein Zeitgebermodul (nicht gezeigt), in der Netzvorrichtung 32 bis 42 vorgesehen sein, der nach der Ausführung der Sammelsendung initiiert werden kann. Es wird darauf hingewiesen, daß die vorbestimmte Zeitdauer gemäß den individuellen Präferenzen eingestellt werden kann und abhängig von verschiedenen Faktoren, z. B. einer Zeitsynchronisierungsoptimierung, Last auf den Servern etc., variieren kann.
- Wenn bei Schritt 425 kein Zeitablauf eingetreten ist, kann der Betriebsmodus 400 zu Schritt 420 zurückkehren, um zu bestimmen, ob beliebige Antwortpakete empfangen worden sind. Dieser Prozeß kann fortgesetzt werden, bis bei Schritt 425 ein Zeitablauf eintritt.
- Wenn zumindest ein Antwortpaket nicht innerhalb der vorbestimmten Zeitdauer empfangen worden ist, kann das Zeit- Synchronisations-Modul 310 konfiguriert sein, um eine Rundsendung des Anforderungspakets z. B. mit einer Adresse von 255.255.255.255 auf dem Port 123 bei Schritt 430 auszuführen. Es wird darauf hingewiesen, daß die Rundsendung mit einer beliebigen angemessenen geeigneten Adresse und einem beliebigen angemessenen geeigneten Port ausgeführt werden kann. Bei Schritt 435 wird bestimmt, ob beliebige Antwortpakete empfangen worden sind. Bei Schritt 440 wird bestimmt, ob ein Zeitablauf eingetreten ist. Diesbezüglich kann ein Zeitgeber, z. B. ein Zeitgebermodul (nicht gezeigt), in der Netzvorrichtung 32 bis 42 vorgesehen sein, der nach dem Ausführen der Rundsendung initiiert werden kann. Alternativ kann die Zeitmessung eine Fortsetzung des Zeitgebers sein, der nach der Ausführung der Rundsendung initiiert wurde. In jeder Hinsicht wird darauf hingewiesen, daß die vorbestimmte Zeitdauer gemäß individueller Präferenzen eingestellt werden kann und abhängig von verschiedenen Faktoren, z. B. der Zeitsynchronisierungsoptimierung, der Last auf den Servern etc., variieren kann.
- Wenn bei Schritt 440 kein Zeitablauf eingetreten ist, kann der Betriebsmodus 400 zu Schritt 420 zurückkehren, um zu bestimmen, ob beliebige Antworten von der Sammelsendung (Schritt 415) oder der Rundsendung (Schritt 430) empfangen worden sind. Dieser Prozeß kann fortgesetzt werden, bis ein Zeitablauf bei Schritt 440 eintritt. Wenn eine Zeitablauf eintritt, kann der Betriebsmodus 400 das Zeit- Synchronisations-Modul 310 in den Ruhezustand bei Schritt 405 zurücksetzen.
- Unter Bezugnahme auf Fig. 4B, wenn zumindest eine Antwort durch das Zeit-Synchronisations-Modul 310 bei Schritt 420 oder Schritt 435 empfangen worden ist, können die Datenpakete von den Servern, die den empfangenen Antwortpaketen zugeordnet sind, durch das Zeit-Synchronisations-Modul 310 bei Schritt 445 gelesen werden. Das Datenpaket kann Informationen enthalten, die sich auf die Serveradresse beziehen, die die Antwort sowie einen Hinweis darüber, ob die Zeit synchronisiert worden ist, sendete. Das Zeit- Synchronisations-Modul 310 kann eine oder mehrere Antworten bei Schritt 420 oder Schritt 435 empfangen.
- Bei Schritt 450 wird das Datenpaket verwendet, um zu bestimmen, ob ein beliebiger der antwortenden Server synchronisiert worden ist. Bei einem Ausführungsbeispiel kann bestimmt werden, daß der Server synchronisiert ist, indem bestimmt wird, ob das Sprunganzeigefeld Null (0), das Modusfeld vier (4), das Versionsfeld entweder drei (3) oder vier (4) ist, das Stratumfeld sich im Bereich von 1 bis einschließlich 15 befindet und der Übertragungszeitstempel anzeigt, daß der Zeitpunkt älter als der 1. Juni 2001 ist. Die vorstehend umrissenen Informationen können von den empfangenen Datenpaketen gelesen werden. Es wird darauf hingewiesen, daß bestimmt werden kann, daß ein Server in einer beliebigen anderen angemessenen geeigneten Weise, die Fachleuten allgemein bekannt ist, synchronisiert ist.
- Wenn der antwortende Server synchronisiert ist, wird die Netzzeit von diesem Server angewendet, um den Systemtakt bei Schritt 455 zu aktualisieren. Im Anschluß an die Anwendung der Netzzeit, kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um zum Ruhezustand (Schritt 405) zurückzukehren.
- Wenn keiner der antwortenden Server synchronisiert werden soll, d. h. die antwortenden Server sollen bei Schritt 450 nicht synchronisiert werden, kann bei Schritt 460 bestimmt werden, ob das Datenpaket, das von diesem Server empfangen wurde, das erste empfangene Paket ist, z. B. der erste Server ist, um zu antworten. Wenn das Datenpaket bei Schritt 465 das erste Datenpaket sein soll, werden die Informationen, die in dem Datenpaket enthalten sind, beispielsweise im Hauptspeicher 206 (Fig. 2) gespeichert. Das Zeit-Synchronisations-Modul 310 kann dann ein Datenpaket von einem anderen Server bei Schritt 445 lesen und bestimmen, ob dieser Server, beispielsweise in der vorstehend beschriebenen Weise, synchronisiert worden ist.
- Bei Schritt 460, wenn bestimmt worden ist, daß das Datenpaket nicht das erste Paket ist, z. B. nach zumindest einmaliger Wiederholung der Schritte 445 und 450, kann dann das Zeit-Synchronisations-Modul 310 bei Schritt 470 bestimmen, ob das Datenpaket das letzte empfangene Datenpaket ist. Wenn das Datenpaket nicht das letzte Paket ist, dann kann bei Schritt 445 ein anderes Datenpaket gelesen werden, um zu bestimmen, ob der antwortende Server synchronisiert ist. Wenn bestimmt wird, daß der Server synchronisiert worden ist, kann die Netzzeit von diesem Server bei Schritt 455 wieder auf den Systemtakt angewendet werden. Diesbezüglich kann der Systemtakt der Netzvorrichtung der Netzzeit des ersten synchronisierten Servers, der antwortete, entsprechen.
- Wenn das Datenpaket bei Schritt 470 das letzte Datenpaket sein soll, dann kann die Netzzeit von dem ersten gespeicherten Paket (von Schritt 465) auf den Systemtakt der Netzvorrichtung bei Schritt 475 angewendet werden. Im Anschluß an die Anwendung der Netzzeit von dem ersten nicht synchronisierten Server kann das Zeit-Synchronisations- Modul 310 konfiguriert sein, um zum Ruhezustand zurückzukehren (Schritt 405).
- Fig. 5A und 5B stellen zusammen ein Flußdiagramm eines Betriebsmodus 500 gemäß einem anderen Ausführungsbeispiel der Erfindung dar. Die Schritte 405 bis 414 sind mit jenen Schritten, die in Fig. 4A dargestellt und vorstehend beschrieben sind, identisch. Daher wird von einer ausführlichen Beschreibung der Schritte 405 bis 440 in Fig. 5A aus praktischen Gründen abgesehen. Statt dessen stützt sich die Beschreibung, die vorstehend im Hinblick auf Fig. 4A vorgesehen wurde, auf die Unterstützung der nachstehenden Beschreibung von Fig. 5A.
- In Fig. 5A, wobei bei Schritt 420 begonnen wird, werden die Datenpakete, wenn beliebige Antworten von beliebigen Servern empfangen werden, bei Schritt 505 von den Servern gelesen. Bei Schritt 510 werden die Datenpakete in einem Speicher, z. B. dem Speicher 210 (Fig. 2), gespeichert. Die Reihenfolge des Empfangs der Datenpakete und ihre entsprechenden Server können ebenfalls im Speicher gespeichert werden. Zusätzlich können die Server in zwei Kategorien gespeichert werden, einer Kategorie für synchronisierte Server und einer anderen für nicht synchronisierte Server.
- Daher kann z. B. eine Datenbank, eine verknüpfte Liste, eine Tabelle etc. (nicht gezeigt) im Speicher 206 mit Eingaben von den synchronisierten Servern, die in der Reihenfolge angeordnet sind, in der sie durch das Zeit- Synchronisations-Modul 310 empfangen wurden, und von nicht synchronisierten Servern, die in der Reihenfolge angeordnet sind, in der sie empfangen wurden, erzeugt werden. Es wird darauf hingewiesen, daß das unmittelbare Ausführungsbeispiel der Erfindung jene Situationen umfaßt, in denen alle antwortenden Server synchronisiert oder nicht synchronisiert sind.
- Dieser Prozeß kann so lange fortgesetzt werden, bis ein Zeitablauf eintritt, wie bei Schritt 515 angezeigt ist. Spezieller können vor dem Eintreten des Zeitablaufs zusätzliche Datenpakete von den Servern gelesen (Schritt 505) und gespeichert werden (Schritt 510). Wie vorstehend festgestellt wurde, kann ein Zeitgeber, z. B. ein Zeitgebermodul (nicht gezeigt) in der Netzvorrichtung 32 bis 42 vorgesehen sein und nach dem Empfang eines ersten Datenpakets initiiert werden. Es wird darauf hingewiesen, daß die vorbestimmte Zeitdauer gemäß individueller Präferenzen eingestellt und abhängig von verschiedenen Faktoren, z. B. der Zeitsynchronisierungsoptimierung, der Last auf den Servern etc. variieren kann.
- Nach dem Eintreten des Zeitablaufs bei Schritt 515 kann das Zeit-Synchronisations-Modul 310 bestimmen, ob ein beliebiger der antwortenden Server bei Schritt 520 synchronisiert worden ist. Die Bestimmung, ob die antwortenden Server synchronisiert sind, kann gemäß der Art und Weise, die vorstehend im Hinblick auf Fig. 4B beschrieben wurde, vorgenommen werden.
- Wenn beliebige Pakete von den synchronisierten Servern empfangen worden sind, kann das Zeit-Synchronisations-Modul 310 die Netzzeiten von diesen Servern bei Schritt 525 mitteln. Das Zeit-Synchronisations-Modul 310 kann auch eine Standardabweichung der Netzzeiten bei Schritt 530 berechnen. Bei Schritt 535 kann sich das Zeit-Synchronisations- Modul 310 durch die geordnete Liste von synchronisierten Servern gemäß ihrer Empfangsreihenfolge tasten und bei Schritt 540 den ersten synchronisierten Server wählen, der in ein vorbestimmtes Vielfaches der Standardabweichung fällt. Das vorbestimmte Vielfache der Standardabweichung kann gemäß individueller Implementierungen ausgewählt werden und gemäß verschiedener Aspekte, z. B. dem Genauigkeitspegel, der von dem Systemtakt in der Netzvorrichtung erfordert wird, variieren. Daher kann das vorbestimmte Vielfache der Standardabweichung, wenn z. B. eine Systemtaktimplementierung einen hohen Genauigkeitspegel erfordert, relativ niedrig eingestellt werden.
- Bei Schritt 545 kann die Netzzeit von dem Server, der bei Schritt 540 ausgewählt wurde, auf den Systemtakt der Netzvorrichtung angewendet werden. Das Zeit-Synchronisations- Modul 310 kann dann konfiguriert sein, um zum Ruhezustand bei Schritt 405 zurückzukehren.
- Wenn keiner der Server synchronisiert worden ist (Schritt 520), kann das Zeit-Synchronisations-Modul 310 konfiguriert sein, um die Netzzeiten von den ansprechenden nicht synchronisierten Servern bei Schritt 550 zu mitteln. Das Zeit- Synchronisations-Modul 310 kann auch eine Standardabweichung der Netzzeiten bei Schritt 555 berechnen. Bei Schritt 560 kann sich das Zeit-Synchronisations-Modul 310 durch die geordnete Liste von nicht synchronisierten Servern nach ihrer Empfangsreihenfolge tasten und den ersten nicht synchronisierten Server auswählen, der in ein vorbestimmtes Vielfaches der Standardabweichung bei Schritt 565 fällt. Das vorbestimmte Vielfache der Standardabweichung kann gemäß individueller Implementierungen ausgewählt werden und gemäß verschiedener Überlegungen, z. B. dem Genauigkeitspegel, der von dem Systemtakt in der Netzvorrichtung erfordert wird, variieren. Daher kann das vorbestimmte Vielfache der Standardabweichung, z. B. wenn eine Systemtaktimplementierung einen hohen Genauigkeitspegel erfordert, relativ niedrig eingestellt werden.
- Bei Schritt 570 kann die Netzzeit von dem Server, der bei Schritt 565 ausgewählt wurde, auf den Systemtakt der Netzvorrichtung angewendet werden. Das Zeit-Synchronisations- Modul 310 kann dann konfiguriert sein, um zum Ruhezustand bei 405 zurückzukehren.
- Fig. 6 stellt ein exemplarisches Flußdiagramm für einen Betriebsmodus 600 eines Servers, z. B. des Servers 20, der in Fig. 1 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung dar. Fachleute mit Durchschnittsqualifikation werden darauf hingewiesen, daß der Betriebsmodus 600 eine verallgemeinerte Darstellung darstellt und daß andere Schritte hinzugefügt oder existierende Schritte entfernt oder modifiziert werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen.
- Die im Betriebsmodus 600 dargestellten Schritte können als ein Hilfsprogramm, Programm oder Teilprogramm in einem beliebigen gewünschten computerzugreifbaren Medium enthalten sein. Zusätzlich kann der Betriebsmodus 600 durch ein Computerprogramm verkörpert sein, das in einer Vielfalt an Formen sowohl aktiv als auch inaktiv existieren kann. Der Betriebsmodus 600 kann beispielsweise als ein Softwareprogramm existieren, das aus Programmanweisungen in einem Quellencode, Objektcode, ausführbaren Code oder anderen Formaten besteht. Ein beliebiger Punkt der vorstehenden Aufzählung kann als ein computerlesbares Medium verkörpert sein, das Speicherungsvorrichtungen und Signale in komprimierter oder unkomprimierter Form umfaßt.
- Exemplarische computerlesbare Speicherungsvorrichtungen umfassen einen herkömmlichen Computersystem-RAM, -ROM, -EPROM, -EEPROM und magnetische oder optische Platten oder Bänder. Exemplarische computerlesbare Signale, ob unter Verwendung eines Trägers moduliert oder nicht, sind Signale, für die ein Computersystem, das das Computerprogramm hostet oder betreibt, konfiguriert sein kann, um auf dieselben zuzugreifen, einschließlich Signale, die durch das Internet oder andere Netze heruntergeladen werden. Konkrete Beispiele der vorstehenden Ausführungen umfassen eine Verteilung der Programme auf einem CD-ROM oder über einen Internet-Download. In gewissem Sinne ist das Internet an sich, als eine abstrakte Entität, ein computerlesbares Medium. Das gleiche gilt für Computernetze im allgemeinen.
- Ein Server, z. B. der Server 20, kann sich bei Schritt 605 in einem Ruhezustand befinden. Bei Schritt 610 kann der Server eine Anforderung nach einer Zeitsynchronisierung, z. B. von einem Zeit-Synchronisations-Modul 310, empfangen. Diese Anforderung kann in einem beliebigen angemessenen geeigneten Format, z. B. Sammelsenden, Rundsenden oder dergleichen, erfolgen. Ansprechend auf die Anforderung kann der Server bei Schritt 615 ein Antwortpaket einschließlich beispielsweise der Netzzeit und der Serveradresse zur Übertragung an die anfordernde Netzvorrichtung erzeugen. Bei Schritt 620 kann der Server das Antwortpaket an die Netzvorrichtung übertragen, wo es durch das Zeit- Synchronisations-Modul 310 empfangen werden kann. Der Server kann dann in den Ruhezustand bei Schritt 605 zurückkehren.
Claims (62)
1. Verfahren (400) zum Synchronisieren eines Systemtakts
in einem Client mit einer Netzzeit von einem Server
(20-30), wobei das Verfahren (400) folgende Schritte
aufweist:
Übertragen (415, 430) eines Anforderungspakets;
Empfangen (42-0, 435) von einem oder mehreren Datenpaketen von zumindest einem Server (20-30) ansprechend auf das Anforderungspaket;
Durchführen eines Tests (505) bezüglich eines ersten synchronisierten Pakets von dem einen oder den mehreren Datenpaketen; und
Auswählen (540) eines ersten synchronisierten Server (20-30) ansprechend auf ein Finden des ersten synchronisierten Pakets.
Übertragen (415, 430) eines Anforderungspakets;
Empfangen (42-0, 435) von einem oder mehreren Datenpaketen von zumindest einem Server (20-30) ansprechend auf das Anforderungspaket;
Durchführen eines Tests (505) bezüglich eines ersten synchronisierten Pakets von dem einen oder den mehreren Datenpaketen; und
Auswählen (540) eines ersten synchronisierten Server (20-30) ansprechend auf ein Finden des ersten synchronisierten Pakets.
2. Verfahren (400) gemäß Anspruch 1, das ferner folgenden
Schritt aufweist:
Anwenden (455, 475) einer Netzzeit des ersten
synchronisierten Server (20-30) auf den Systemtakt des
Client.
3. Verfahren (400) gemäß Anspruch 1 oder 2, bei dem der
Schritt des Übertragens (415, 430) des
Anforderungspakets ein Ausführen eines Sammelsendens des
Zeitanforderungspakets aufweist.
4. Verfahren (400) gemäß einem der Ansprüche 1 bis 3, das
ferner folgenden Schritt aufweist:
Erwarten von Antworten von dem zumindest einen Server
(20-30) ansprechend auf einen nicht abgelaufenen
Zeitablaufwert.
5. Verfahren (400) gemäß Anspruch 4, das ferner folgenden
Schritt aufweist:
Ausführen eines Rundsendens des Anforderungspakets
ansprechend auf den abgelaufenen Zeitablaufwert.
6. Verfahren (400) gemäß einem der Ansprüche 1 bis 5, das
ferner folgende Schritte aufweist:
Sortieren (505) des einen oder der mehreren Datenpakete basierend auf der Reihenfolge des Empfangs von jedem der einen oder mehreren Datenpakete;
Bestimmen (450), ob ein Datenpaket von einem nicht synchronisierten Server (20-30) ein erstes Datenpaket ist, das ansprechend darauf, daß keine synchronisierten Server (20-30) antworten, empfangen wurde; und
Speichern des Datenpakets von dem nicht synchronisierten Server (20-30) ansprechend darauf, dass der nicht synchronisierte Server (20-30) ein erster nicht synchronisierter Server (20-30) ist, der geantwortet hat.
Sortieren (505) des einen oder der mehreren Datenpakete basierend auf der Reihenfolge des Empfangs von jedem der einen oder mehreren Datenpakete;
Bestimmen (450), ob ein Datenpaket von einem nicht synchronisierten Server (20-30) ein erstes Datenpaket ist, das ansprechend darauf, daß keine synchronisierten Server (20-30) antworten, empfangen wurde; und
Speichern des Datenpakets von dem nicht synchronisierten Server (20-30) ansprechend darauf, dass der nicht synchronisierte Server (20-30) ein erster nicht synchronisierter Server (20-30) ist, der geantwortet hat.
7. Verfahren (400) gemäß Anspruch 6, das ferner folgende
Schritte aufweist:
Bestimmen (450), ob das Datenpaket von dem nicht synchronisierten Server (20-30) ein letztes Datenpaket ist, das ansprechend darauf, dass der nicht synchronisierte Server (20-30) nicht der erste nicht synchronisierte Server (20-30) ist, der geantwortet hat, empfangen wurde; und
Anwenden (455, 475) einer Netzzeit auf den Client von dem gespeicherten Datenpaket ansprechend darauf, daß das Datenpaket von dem nicht synchronisierten Server (20-30)das letzte Datenpaket ist, das empfangen wurde.
Bestimmen (450), ob das Datenpaket von dem nicht synchronisierten Server (20-30) ein letztes Datenpaket ist, das ansprechend darauf, dass der nicht synchronisierte Server (20-30) nicht der erste nicht synchronisierte Server (20-30) ist, der geantwortet hat, empfangen wurde; und
Anwenden (455, 475) einer Netzzeit auf den Client von dem gespeicherten Datenpaket ansprechend darauf, daß das Datenpaket von dem nicht synchronisierten Server (20-30)das letzte Datenpaket ist, das empfangen wurde.
8. Verfahren (400) gemäß einem der Ansprüche 1 bis 7, das
ferner folgende Schritte aufweist:
Kategorisieren (505) von antwortenden Servern (20-30) in eine synchronisierte Gruppe oder einer nicht synchronisierte Gruppe; und
Ordnen (505) der synchronisierten Gruppe und der nicht synchronisierten Gruppe auf Basis der Reihenfolge des Empfangs.
Kategorisieren (505) von antwortenden Servern (20-30) in eine synchronisierte Gruppe oder einer nicht synchronisierte Gruppe; und
Ordnen (505) der synchronisierten Gruppe und der nicht synchronisierten Gruppe auf Basis der Reihenfolge des Empfangs.
9. Verfahren (400) gemäß Anspruch 8, das ferner folgenden
Schritt aufweist:
Mitteln (550) der Netzzeiten von der synchronisierten
Gruppe.
10. Verfahren (400) gemäß Anspruch 9, das ferner folgenden
Schritt aufweist:
Berechnen (525) einer Standardabweichung der
Netzzeiten von der synchronisierten Gruppe.
11. Verfahren (400) gemäß Anspruch 10, das ferner folgende
Schritte aufweist:
Tasten (535) durch die geordnete synchronisierte Servergruppe; und
Auswählen (540) eines ersten synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
Tasten (535) durch die geordnete synchronisierte Servergruppe; und
Auswählen (540) eines ersten synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
12. Verfahren (400) gemäß Anspruch 11, das ferner
folgenden Schritt aufweist:
Anwenden (445) der Netzzeit von dem ersten
synchronisierten Server (20-30) zum Synchronisieren des
Systemtakts auf dem Client.
13. Verfahren (400) gemäß Anspruch 8, das ferner folgenden
Schritt aufweist:
Mitteln (550) der Netzzeiten von den Datenpaketen der
nicht synchronisierten Gruppe.
14. Verfahren (400) gemäß Anspruch 13, das ferner
folgenden Schritt aufweist:
Berechnen (555) einer Standardabweichung der
Netzzeiten von den Datenpaketen der nicht synchronisierten
Gruppe.
15. Verfahren (400) gemäß Anspruch 14, das ferner
folgenden Schritt aufweist:
Tasten (560) durch die geordnete nicht synchronisierte Servergruppe; und
Auswählen (565) eines ersten nicht synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
Tasten (560) durch die geordnete nicht synchronisierte Servergruppe; und
Auswählen (565) eines ersten nicht synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
16. Verfahren (400) gemäß Anspruch 15, das ferner
folgenden Schritt aufweist:
Anwenden (570) der Netzzeit von dem ausgewählten nicht
synchronisierten Server (20-30) zum Synchronisieren
des Systemtakts auf dem Client.
17. Vorrichtung zum Synchronisieren eines Systemtakts in
einem Client, wobei die Vorrichtung folgende Merkmale
aufweist:
eine Einrichtung zum Übertragen einer Anforderung für eine Zeitsynchronisierung;
eine Einrichtung zum Empfangen von Antworten von einer Mehrzahl von Servern (20-30);
eine Einrichtung zum Bestimmen der Reihenfolge des Empfangs der Antworten; und
eine Einrichtung zum Bestimmen, ob eine beliebige der Antworten von einem synchronisierten Server (20-30) ist.
eine Einrichtung zum Übertragen einer Anforderung für eine Zeitsynchronisierung;
eine Einrichtung zum Empfangen von Antworten von einer Mehrzahl von Servern (20-30);
eine Einrichtung zum Bestimmen der Reihenfolge des Empfangs der Antworten; und
eine Einrichtung zum Bestimmen, ob eine beliebige der Antworten von einem synchronisierten Server (20-30) ist.
18. Vorrichtung gemäß Anspruch 17, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Anwenden der Netzzeit von dem
ersten antwortenden synchronisierten Server (20-30).
19. Vorrichtung gemäß Anspruch 17 oder 18, die ferner
folgende Merkmale aufweist:
eine Einrichtung zum Speichern der Reihenfolge des Empfangs der Antworten;
eine Einrichtung zum Bestimmen, ob ein Datenpaket von einem ersten antwortenden nicht synchronisierten Server (20-30) ist ansprechend darauf, daß keine synchronisierten Server (20-30) antworten; und
eine Einrichtung zum Speichern des Datenpakets ansprechend darauf, daß das Datenpaket von dem ersten antwortenden nicht synchronisierten Server (20-30) ist.
eine Einrichtung zum Speichern der Reihenfolge des Empfangs der Antworten;
eine Einrichtung zum Bestimmen, ob ein Datenpaket von einem ersten antwortenden nicht synchronisierten Server (20-30) ist ansprechend darauf, daß keine synchronisierten Server (20-30) antworten; und
eine Einrichtung zum Speichern des Datenpakets ansprechend darauf, daß das Datenpaket von dem ersten antwortenden nicht synchronisierten Server (20-30) ist.
20. Vorrichtung gemäß Anspruch 19, die ferner folgende
Merkmale aufweist:
eine Einrichtung zum Bestimmen, ob das Datenpaket von einem nicht synchronisierten Server (20-30) das letzte Datenpaket ist, das ansprechend darauf, daß der nicht synchronisierten Server (20-30) nicht der erste nicht synchronisierte Server (20-30) ist, der antworten soll; und
eine Einrichtung zum Anwenden einer Netzzeit auf die Netzvorrichtung von dem gespeicherten Datenpaket ansprechend darauf, daß das Datenpaket von dem nicht synchronisierten Server (20-30) das letzte Datenpaket ist, das empfangen wurde.
eine Einrichtung zum Bestimmen, ob das Datenpaket von einem nicht synchronisierten Server (20-30) das letzte Datenpaket ist, das ansprechend darauf, daß der nicht synchronisierten Server (20-30) nicht der erste nicht synchronisierte Server (20-30) ist, der antworten soll; und
eine Einrichtung zum Anwenden einer Netzzeit auf die Netzvorrichtung von dem gespeicherten Datenpaket ansprechend darauf, daß das Datenpaket von dem nicht synchronisierten Server (20-30) das letzte Datenpaket ist, das empfangen wurde.
21. Vorrichtung gemäß einem der Ansprüche 17 bis 20, bei
dem die Einrichtung zum Bestimmen und Speichern der
Reihenfolge des Empfangs der Antworten eine
Einrichtung zum Gruppieren der antwortenden Server (20-30) in
eine synchronisierte Gruppe oder eine nicht
synchronisierte Gruppe aufweist.
22. Vorrichtung gemäß Anspruch 21, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Mitteln der Netzzeiten von der
synchronisierten Gruppe.
23. Vorrichtung gemäß Anspruch 22, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Berechnen (530) einer
Standardabweichung der Netzzeiten der synchronisierten Gruppe.
24. Vorrichtung gemäß Anspruch 23, die ferner folgende
Merkmale aufweist:
eine Einrichtung zum Tasten durch die geordnete synchronisierte Servergruppe; und
eine Einrichtung zum Auswählen (540) des ersten synchronisierten Servers (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
eine Einrichtung zum Tasten durch die geordnete synchronisierte Servergruppe; und
eine Einrichtung zum Auswählen (540) des ersten synchronisierten Servers (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
25. Vorrichtung gemäß Anspruch 24, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Anwenden der Netzzeit von dem
ersten synchronisierten Server (20-30).
26. Vorrichtung gemäß Anspruch 21, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Mitteln der Netzzeiten von der
nicht synchronisierten Gruppe.
27. Vorrichtung gemäß Anspruch 26, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Berechnen einer
Standardabweichung der Netzzeiten der nicht ynchronisierten Server
(20-30).
28. Vorrichtung gemäß Anspruch 27, die ferner folgende
Merkmale aufweist:
eine Einrichtung zum Tasten durch die geordnete nicht synchronisierte Servergruppe; und
eine Einrichtung zum Auswählen eines ersten nicht synchronisierten Servers, der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
eine Einrichtung zum Tasten durch die geordnete nicht synchronisierte Servergruppe; und
eine Einrichtung zum Auswählen eines ersten nicht synchronisierten Servers, der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt.
29. Vorrichtung gemäß Anspruch 28, die ferner folgendes
Merkmal aufweist:
eine Einrichtung zum Anwenden der Netzzeit von dem
ersten nicht synchronisierten Server (20-30) zum
Synchronisieren des Systemtakts auf dem Client.
30. System zum Synchronisieren eines Systemtakts in einem
Client, wobei das System folgende Merkmale aufweist:
ein Zeit-Synchronisations-Modul (310), das zur
Speicherung und Ausführung auf dem Client konfiguriert
ist, wobei das Zeit-Synchronisations-Modul betreibbar
ist, um eine Anforderung nach einer Zeit an einen oder
mehrere Server (20-30) zu übertragen, um Antworten von
dem einen oder den mehreren Servern (20-30) zu
empfangen, um zu bestimmen, ob die antwortenden Server (20-30)
synchronisiert oder nicht synchronisiert sind, und
die Reihenfolge, in der die Server (20-30)
antworteten, zu bestimmen und um die Netzzeit von dem ersten
synchronisierten Server (20-30), der antwortet,
anzuwenden.
31. System gemäß Anspruch 30, das ferner folgende Merkmale
aufweist:
ein Netz (10); und
eine Mehrzahl von Servern (20-30);
wobei das Zeit-Synchronisations-Modul (310) konfiguriert ist, um zumindest entweder eine Rundsende- oder eine Sammelsendeanforderung nach einer Zeitsynchronisierung an die Mehrzahl von Servern (20-30) durch das Netz (10) zu übertragen.
ein Netz (10); und
eine Mehrzahl von Servern (20-30);
wobei das Zeit-Synchronisations-Modul (310) konfiguriert ist, um zumindest entweder eine Rundsende- oder eine Sammelsendeanforderung nach einer Zeitsynchronisierung an die Mehrzahl von Servern (20-30) durch das Netz (10) zu übertragen.
32. System gemäß Anspruch 30 oder 31, bei dem das Zeit-
Synchronisations-Modul (310) konfiguriert ist, um ein
Datenpaket von einem ersten nicht synchronisierten
Server (20-30), der antwortet, ansprechend darauf, daß
keine synchronisierten Server (20-30) antworten, zu
speichern.
33. System gemäß Anspruch 32, bei dem das Zeit-
Synchronisations-Modul (310) ferner konfiguriert ist,
um die Netzzeit von dem gespeicherten Datenpaket
ansprechend darauf, daß keine weiteren Antworten von dem
einen oder den mehreren Servern (20-30) empfangen
werden, anzuwenden.
34. System gemäß einem der Ansprüche 30 bis 33, bei dem
das Zeit-Synchronisations-Modul (310) konfiguriert
ist, um geordnete Gruppen von synchronisierten und
nicht synchronisierten Servern (20-30) zu speichern.
35. System gemäß Anspruch 34, bei dem das Zeit-
Synchronisations-Modul (310) konfiguriert ist, um die
Netzzeiten von der synchronisierten Gruppe zu mitteln.
36. System gemäß Anspruch 35, bei dem das Zeit-
Synchronisations-Modul (310) ferner konfiguriert ist,
um eine Standardabweichung der Netzzeiten zu
berechnen.
37. System gemäß Anspruch 36, bei dem das Zeit-
Synchronisations-Modul (310) ferner konfiguriert ist,
um sich durch die geordnete Liste von synchronisierten
Servern (20-30) zu tasten und um einen ersten
synchronisierten Server (20-30) auszuwählen, der in einer
vorbestimmtes Vielfaches der berechneten
Standardabweichung fällt.
38. System gemäß Anspruch 37, bei dem das Zeit-
Synchronisations-Modul (310) ferner konfiguriert ist,
um die Netzzeit von dem ersten synchronisierten Server
(20-30) anzuwenden, um den Systemtakt auf dem Client
zu synchronisieren.
39. System gemäß Anspruch 34, bei dem das Zeit-
Synchronisations-Modul (310) konfiguriert ist, um die
Netzzeiten von der nicht synchronisierten Gruppe zu
mitteln.
40. System gemäß Anspruch 39, bei dem das Zeit-
Synchronisations-Modul ferner konfiguriert ist, um
eine Standardabweichung der Netzzeiten zu berechnen.
41. System gemäß Anspruch 40, bei dem das Zeit-
Synchronisations-Modul (310) ferner konfiguriert ist,
um sich durch die geordnete Liste von nicht
synchronisierten Servern (20-30) zu tasten und um einen ersten
nicht synchronisierten Server (20-30) auszuwählen, der
in ein vorbestimmtes Vielfaches der berechneten
Standardabweichung fällt.
42. System gemäß Anspruch 41, bei dem das Zeit-
Synchronisations-Modul (310) ferner konfiguriert ist,
um die Netzzeit von dem nicht synchronisierten Server
(20-30) anzuwenden, um den Systemtakt auf der
Netzvorrichtung zu synchronisieren.
43. Verfahren (400), das folgende Schritte aufweist:
Bestimmen (450) eines ersten verfügbaren Server (20-30) aus einem oder mehreren Servern (20-30) ansprechend auf ein Anforderungspaket; und
Anwenden (455, 475) einer Netzzeit von dem ersten verfügbaren Server (20-30).
Bestimmen (450) eines ersten verfügbaren Server (20-30) aus einem oder mehreren Servern (20-30) ansprechend auf ein Anforderungspaket; und
Anwenden (455, 475) einer Netzzeit von dem ersten verfügbaren Server (20-30).
44. Verfahren (400) gemäß Anspruch 43, bei dem der Schritt
des Anwendens (455, 475) der Netzzeit von dem ersten
verfügbaren Server (20-30) ein Anwenden (455, 475) der
Netzzeit von dem ersten verfügbaren synchronisierten
Server (20-30) aufweist,
45. Verfahren (400) gemäß Anspruch 43 oder 44, das ferner
folgenden Schritt aufweist:
Speichern (465) eines Datenpakets von einem ersten
verfügbaren nicht synchronisierten Server (20-30)
ansprechend darauf, dass keine Antwort von einem
synchronisierten Server (20-30) erhalten wird.
46. Verfahren (400) gemäß Anspruch 45, das ferner
folgenden Schritt aufweist:
Anwenden (455, 475) der Netzzeit von dem gespeicherten
Datenpaket ansprechend auf ein finales Datenpaket, das
empfangen wird.
47. Verfahren (400) gemäß einem der Ansprüche 43 bis 46,
das folgende Schritte aufweist:
Empfangen (420, 435) einer Mehrzahl von Datenpaketen von einem oder mehreren Servern (20-30);
Durchführen eines Tests (505) bezüglich eines synchronisierten Pakets von der Mehrzahl von Datenpaketen; und
Sortieren (505) der Mehrzahl von Datenpaketen basierend auf der Reihenfolge des Empfangs der Mehrzahl von Datenpaketen.
Empfangen (420, 435) einer Mehrzahl von Datenpaketen von einem oder mehreren Servern (20-30);
Durchführen eines Tests (505) bezüglich eines synchronisierten Pakets von der Mehrzahl von Datenpaketen; und
Sortieren (505) der Mehrzahl von Datenpaketen basierend auf der Reihenfolge des Empfangs der Mehrzahl von Datenpaketen.
48. Verfahren (400) gemäß Anspruch 47, das ferner folgende
Schritte aufweist:
Kategorisieren (505) des einen oder der mehreren Server (20-30) in eine synchronisierte Gruppe oder nicht synchronisierte Gruppe; und
Ordnen (505) der synchronisierten Gruppe oder nicht synchronisierten Gruppe.
Kategorisieren (505) des einen oder der mehreren Server (20-30) in eine synchronisierte Gruppe oder nicht synchronisierte Gruppe; und
Ordnen (505) der synchronisierten Gruppe oder nicht synchronisierten Gruppe.
49. Verfahren (400) gemäß Anspruch 48, das ferner
folgenden Schritt aufweist:
Mitteln (525) der Netzzeiten von der synchronisierten
Gruppe.
50. Verfahren (400) gemäß Anspruch 49, das ferner
folgenden Schritt aufweist:
Berechnen (530) einer Standardabweichung der
Netzzeiten der synchronisierten Gruppe.
51. Verfahren (400) gemäß Anspruch 50, das ferner folgende
Schritte aufweist:
Tasten (535) durch die geordnete synchronisierte Gruppe;
Auswählen (540) eines ersten synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (545) der Netzzeit von dem ersten synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
Tasten (535) durch die geordnete synchronisierte Gruppe;
Auswählen (540) eines ersten synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (545) der Netzzeit von dem ersten synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
52. Verfahren (400) gemäß Anspruch 48, das ferner
folgenden Schritt aufweist:
Mitteln (550) der Netzzeit von der nicht
synchronisierten Gruppe.
53. Verfahren (400) gemäß Anspruch 52, das ferner
folgenden Schritt aufweist:
Berechnen (555) einer Standardabweichung der
Netzzeiten der nicht synchronisierten Server (20-30).
54. Verfahren (400) gemäß Anspruch 53, das ferner folgende
Schritte aufweist:
Tasten (560) durch die geordnete nicht synchronisierte Gruppe;
Auswählen (565) eines ersten nicht synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (570) der Netzzeit von dem ersten nicht synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
Tasten (560) durch die geordnete nicht synchronisierte Gruppe;
Auswählen (565) eines ersten nicht synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (570) der Netzzeit von dem ersten nicht synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
55. Computerlesbares Speicherungsmedium, auf dem ein oder
mehrere Computerprogramme eingebettet sind, wobei das
eine oder die mehreren Computerprogramme ein Verfahren
implementieren, wobei das eine oder die mehreren
Computerprogramme einen Satz von Anweisungen aufweisen,
um folgende Schritte auszuführen:
Bestimmen (450) eines ersten verfügbaren Server (20-30) aus einem oder mehreren Servern (20-30) ansprechend auf ein Anforderungspaket; und
Anwenden (455, 475) einer Netzzeit von dem ersten verfügbaren Server (20-30).
Bestimmen (450) eines ersten verfügbaren Server (20-30) aus einem oder mehreren Servern (20-30) ansprechend auf ein Anforderungspaket; und
Anwenden (455, 475) einer Netzzeit von dem ersten verfügbaren Server (20-30).
56. Computerlesbares Speicherungsmedium gemäß Anspruch 55,
bei dem das eine oder die mehreren Computerprogramme
ferner einen Satz von Anweisungen aufweisen:
wobei der Schritt des Anwendens (455, 475) der
Netzzeit von dem ersten verfügbaren Server (20-30) ein
Anwenden (545) der Netzzeit von dem ersten verfügbaren
synchronisierten Server (20-30) aufweist.
57. Computerlesbares Speicherungsmedium gemäß Anspruch 55
oder 56, bei dem das eine oder die mehreren
Computerprogramme ferner einen Satz von Anweisungen aufweisen,
um folgende Schritte auszuführen:
Speichern (465) eines Datenpakets von einem ersten verfügbaren nicht synchronisierten Server (20-30) ansprechend darauf, daß keine Antwort von einem synchronisierten Server (20-30) erhalten wird; und
Anwenden (455, 475) der Netzzeit von dem gespeicherten Datenpaket ansprechend auf ein finales Datenpaket, das empfangen wird.
Speichern (465) eines Datenpakets von einem ersten verfügbaren nicht synchronisierten Server (20-30) ansprechend darauf, daß keine Antwort von einem synchronisierten Server (20-30) erhalten wird; und
Anwenden (455, 475) der Netzzeit von dem gespeicherten Datenpaket ansprechend auf ein finales Datenpaket, das empfangen wird.
58. Computerlesbares Speicherungsmedium gemäß einem der
Ansprüche 55 bis 57, bei dem das eine oder die
mehreren Computerprogramme ferner einen Satz von
Anweisungen aufweisen, um folgende Schritte auszuführen:
Empfangen (420, 435) einer Mehrzahl von Datenpaketen von einem oder mehreren Server (20-30)n;
Durchführen eines Tests (505) bezüglich eines synchronisierten Pakets von der Mehrzahl von Datenpaketen; und
Sortieren (505) der Mehrzahl von Datenpaketen basierend auf der Reihenfolge des Empfangs der Mehrzahl von Datenpaketen.
Empfangen (420, 435) einer Mehrzahl von Datenpaketen von einem oder mehreren Server (20-30)n;
Durchführen eines Tests (505) bezüglich eines synchronisierten Pakets von der Mehrzahl von Datenpaketen; und
Sortieren (505) der Mehrzahl von Datenpaketen basierend auf der Reihenfolge des Empfangs der Mehrzahl von Datenpaketen.
59. Computerlesbares Speicherungsmedium gemäß Anspruch 58,
bei dem das eine oder die mehreren Computerprogramme
ferner einen Satz von Anweisungen aufweisen, um
folgende Schritte auszuführen:
Kategorisieren (505) des einen oder der mehreren Server (20-30) in eine synchronisierte Gruppe oder in eine nicht synchronisierte Gruppe;
Ordnen (505) der synchronisierten Gruppe und der nicht synchronisierten Gruppe;
Mitteln (525) der Netzzeiten von der synchronisierten Gruppe; und
Berechnen (530) einer Standardabweichung der Netzzeiten der synchronisierten Gruppe.
Kategorisieren (505) des einen oder der mehreren Server (20-30) in eine synchronisierte Gruppe oder in eine nicht synchronisierte Gruppe;
Ordnen (505) der synchronisierten Gruppe und der nicht synchronisierten Gruppe;
Mitteln (525) der Netzzeiten von der synchronisierten Gruppe; und
Berechnen (530) einer Standardabweichung der Netzzeiten der synchronisierten Gruppe.
60. Computerlesbares Speicherungsmedium gemäß Anspruch 59,
bei dem das eine oder die mehreren Computerprogramme
einen Satz von Anweisungen aufweisen, um folgende
Schritte auszuführen:
Tasten (535) durch die geordnete synchronisierte Gruppe;
Auswählen (540) eines ersten synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (455, 475) der Netzzeit von dem ersten synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
Tasten (535) durch die geordnete synchronisierte Gruppe;
Auswählen (540) eines ersten synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (455, 475) der Netzzeit von dem ersten synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
61. Computerlesbares Speicherungsmedium gemäß Anspruch 58,
bei dem das eine oder die mehreren Computerprogramme
ferner einen Satz von Anweisungen aufweisen, um
folgende Schritte auszuführen:
Kategorisieren (505) des einen oder der mehreren Server (20-30) in eine synchronisierte Gruppe oder eine nicht synchronisierte Gruppe;
Ordnen (505) der synchronisierten Gruppe und der nicht synchronisierten Gruppe; und
Mitteln (550) der Netzzeit für die nicht synchronisierte Gruppe; und
Berechnen (555) einer Standardabweichung der Netzzeiten der nicht synchronisierten Server (20-30).
Kategorisieren (505) des einen oder der mehreren Server (20-30) in eine synchronisierte Gruppe oder eine nicht synchronisierte Gruppe;
Ordnen (505) der synchronisierten Gruppe und der nicht synchronisierten Gruppe; und
Mitteln (550) der Netzzeit für die nicht synchronisierte Gruppe; und
Berechnen (555) einer Standardabweichung der Netzzeiten der nicht synchronisierten Server (20-30).
62. Computerlesbares Speicherungsmedium gemäß Anspruch 61,
bei dem das eine oder die mehreren Computerprogramme
ferner einen Satz von Anweisungen aufweisen, um
folgende Schritte auszuführen:
Tasten (560) durch die geordnete nicht synchronisierte Gruppe;
Auswählen (565) eines ersten nicht synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (570) der Netzzeit von dem ersten nicht synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
Tasten (560) durch die geordnete nicht synchronisierte Gruppe;
Auswählen (565) eines ersten nicht synchronisierten Server (20-30), der in ein vorbestimmtes Vielfaches der berechneten Standardabweichung fällt; und
Anwenden (570) der Netzzeit von dem ersten nicht synchronisierten Server (20-30), um den Systemtakt auf dem Client zu synchronisieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/125,507 US7185111B2 (en) | 2002-04-19 | 2002-04-19 | Available server determination |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10313874A1 true DE10313874A1 (de) | 2003-11-13 |
Family
ID=29214798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10313874A Withdrawn DE10313874A1 (de) | 2002-04-19 | 2003-03-21 | Bestimmung eines verfügbaren Servers |
Country Status (2)
Country | Link |
---|---|
US (1) | US7185111B2 (de) |
DE (1) | DE10313874A1 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10249296A1 (de) * | 2002-10-22 | 2004-05-06 | Jetter Ag | Verfahren zur Synchronisation von Teilnehmern eines Netzwerkes |
US7539777B1 (en) * | 2002-10-25 | 2009-05-26 | Cisco Technology, Inc. | Method and system for network time protocol forwarding |
EP1553713A1 (de) * | 2004-01-09 | 2005-07-13 | Thomson Multimedia Broadband Belgium | Vorrichtung und Verfahren zur Zeitsynchronisierung und zugehörige Produkte |
JP4537133B2 (ja) * | 2004-07-09 | 2010-09-01 | キヤノン株式会社 | プリンタ及び制御方法及びプログラム並びに記憶媒体 |
US8180882B2 (en) * | 2004-07-22 | 2012-05-15 | Tyco Electronics Subsea Communications Llc | Distributed messaging system and method for sharing network status data |
US7899894B2 (en) | 2006-08-30 | 2011-03-01 | International Business Machines Corporation | Coordinated timing network configuration parameter update procedure |
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 |
US8738792B2 (en) * | 2007-01-31 | 2014-05-27 | International Business Machines Corporation | Server time protocol messages and methods |
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 |
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 |
US7991833B2 (en) * | 2008-10-24 | 2011-08-02 | Seiko Epson Corporation | User interface for projection device remote control |
CN102546135B (zh) * | 2010-12-31 | 2016-08-03 | 富泰华工业(深圳)有限公司 | 主备服务器切换系统及方法 |
IN2015CH03249A (de) * | 2015-06-27 | 2015-07-10 | Wipro Ltd |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602992A (en) * | 1993-11-29 | 1997-02-11 | Intel Corporation | System for synchronizing data stream transferred from server to client by initializing clock when first packet is received and comparing packet time information with clock |
US5812749A (en) * | 1996-12-27 | 1998-09-22 | Mci Communication Corporation | Method of and system for testing network time protocol client accuracy |
US5968133A (en) * | 1997-01-10 | 1999-10-19 | Secure Computing Corporation | Enhanced security network time synchronization device and method |
US6094672A (en) * | 1997-05-19 | 2000-07-25 | Novell, Inc. | Method and system for time synchronization management |
US6351467B1 (en) * | 1997-10-27 | 2002-02-26 | Hughes Electronics Corporation | System and method for multicasting multimedia content |
US6327274B1 (en) * | 1998-09-15 | 2001-12-04 | Nokia Telecommunications, Inc. | Method for estimating relative skew between clocks in packet networks |
US6311283B1 (en) * | 1998-09-17 | 2001-10-30 | Apple Computer, Inc. | Need based synchronization of computer system time clock to reduce loading on network server |
US6711137B1 (en) * | 1999-03-12 | 2004-03-23 | International Business Machines Corporation | System and method for analyzing and tuning a communications network |
US6581110B1 (en) * | 1999-12-07 | 2003-06-17 | International Business Machines Corporation | Method and system for reading and propagating authenticated time throughout a worldwide enterprise system |
US7023816B2 (en) * | 2000-12-13 | 2006-04-04 | Safenet, Inc. | Method and system for time synchronization |
US7194556B2 (en) * | 2001-03-30 | 2007-03-20 | Intel Corporation | Method and apparatus for high accuracy distributed time synchronization using processor tick counters |
-
2002
- 2002-04-19 US US10/125,507 patent/US7185111B2/en not_active Expired - Lifetime
-
2003
- 2003-03-21 DE DE10313874A patent/DE10313874A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US7185111B2 (en) | 2007-02-27 |
US20030200338A1 (en) | 2003-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10313874A1 (de) | Bestimmung eines verfügbaren Servers | |
DE112004002233B4 (de) | Zeit- und Datensynchronisation zwischen Netzwerkeinrichtungen | |
DE102006032108B4 (de) | System und Verfahren für eine Mehr-Ort-Testausführung | |
DE69909791T2 (de) | Verteilte rechnerumgebung mit echt-zeit ablauffolgenlogik und zeit-deterministischer architektur | |
Shoch et al. | The “worm” programs—early experience with a distributed computation | |
DE10105153B4 (de) | System zur automatischen Konfiguration eines tragbaren Gerätes eines Nutzers, wie insbesondere eines tragbaren Computergerätes, Software-Produkt und Verfahren zur automatischen Konfiguration eines Computersystems eines Nutzers und Programmierbares Speichermedium | |
EP0765062B1 (de) | Synchronisierung zwischen verschiedenen Computeranbieterumgebungen | |
DE112012004025B4 (de) | Systeme und Verfahren, die randomisierte Taktfrequenzen verwenden, um systematische Zeitstempel-Granularitätsfehler in Netzwerk-Paketkommunikationen zu verringern | |
DE102012218528B4 (de) | Verwendung von Push-Benachrichtigungen zur Verringerung offener Browser-Verbindungen | |
DE69937715T2 (de) | Verbessertes Zwei-Phasen-Bindungsprotokoll | |
DE102005051980B4 (de) | System und Verfahren zur Netzwerkübertragung eines Informationsverarbeitungssystem-Images | |
DE69837431T2 (de) | Verfahren zur verfügungsstellung von zeitsynchronisierung in einem netzwerk | |
DE112011104955T5 (de) | Master-Vorrichtung und Slave-Vorrichtung und Zeitsynchronisationsverfahren | |
DE112018007914T5 (de) | Kommunikationsvorrichtung, kommunikationssystem, kommunikationsverfahren und kommunikationsprogramm | |
DE112017007691T5 (de) | Kommunikationssystem, Master-Einrichtung und Slave-Einrichtung | |
Branco et al. | Managing very large distributed data sets on a data grid | |
EP1198911A1 (de) | Synchronisierungsverfahren und -system für taktquellen bei insbesondere paketvermittelnden kommunikationssystemen | |
DE112018007928B4 (de) | Zeitsynchronisationssystem, Zeitmaster, Verwaltungsmaster und Zeitsynchronisationsverfahren | |
DE112012005046B4 (de) | Koordinieren von Schreiboperationsabfolgen in einem Datenspeichersystem | |
DE112018008085B4 (de) | Kommunikationssystem, Listenverbreitungsstation, Kommunikationsverfahren und Kommunikationsprogramm | |
DE112018007913B4 (de) | Kommunikationsvorrichtung, kommunikationssystem, kommunikationsverfahren und kommunikationsprogramm | |
DE60301873T2 (de) | Internes zeichengabeverfahren zur unterstützung der taktsynchronisation von über ein drahtloses lokales netzwerk verbundenen knoten | |
DE60038589T2 (de) | Verfahren und Einrichtung zur Steuerung der Synchronisation zwischen zwei seriellen Kommunikationsbussen eines Netzes | |
EP1754128A1 (de) | Dezentrale zeitintervallsynchronisation in verteilten netzwerken | |
DE102022117904A1 (de) | System und verfahren zum konfigurieren mehrerer ptp-ports einer netzvorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8130 | Withdrawal |