-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf ein System und ein Verfahren
zum Erleichtern der Kommunikation zwischen Domains (Domänen) eines Fernnetzes
(Wide Area Network). Insbesondere bezieht sich die vorliegende Erfindung
auf einen Netzwerk-Server zum Zuordnen von Netzadressnamen zu physikalischen
Netzadressen.
-
HINTERGRUND DER ERFINDUNG
-
Um
die Kommunikation zwischen Kommunikationseinrichtungen über ein
Netzwerk zu erleichtern, wird jeder Netzwerkeinrichtung typischerweise eine
eindeutige numerische Netzadresse zugewiesen. Ein Nutzer, welcher
mit einer der Netzwerkeinrichtungen verbunden ist, braucht dann
nur der Transportschicht des Netzwerks die numerischen Netzadresse
des beabsichtigten Zieles zur Verfügung zu stellen, um mit dem
Ziel zu kommunizieren. Obwohl dieses System in kleinen Netzwerken
zufriedenstellend funktioniert, in welchen Nutzer nur mit einer
kleinen Anzahl von Netzwerk-Kommunikationseinrichtungen kommunizieren,
kann das System nicht leicht auf große Netzwerke übertragen
werden, weil es erfordert, dass jeder Netzwerknutzer sich eine große Anzahl
von eindeutigen numerischen Netzwerkadressen merkt. Aus diesem Grund
wurde das Domainnamen-System (DNS: Domain Name System) von Mockapetris
in 1987 vorgeschlagen (RFC 1034 und RFC 1035 Network Working Group;
heute verfügbar
unter „http://www.ietf.org", als ein Mechanismus
zum Erleichtern der Kommunikation zwischen Kommunikationseinrichtungen über das
Internet.
-
Das
DNS erleichtert die Internet-Kommunikation durch Zuordnen von Domainnamen
zu numerischen (IP, "Internet
Protocol") Netzadressen.
Das DNS besteht grundsätzlich
aus Betriebsmitteldatensätzen
(resource records), Domainnamen-Servern und Auflösern (resolvers). Alle Betriebsmitteldatensätze umfassen
Informationen betreffend jeden Netzwerkknoten, umfassend die IP-Adresse von dem Netzwerkknoten,
und die Domainnamen, die der IP-Adresse zugeordnet sind. Zusammen
stellen die Betriebsmitteldatensätze
für das
Internet einen baumartig strukturierten Domainnamensraum zur Verfügung. Die
Domainnamen-Server sind Internet-Server, welche Informationen betreffend
den Domainnamensraum speichern. Insbesondere weist jeder Domainnamen-Server
eine Datei („zone
file"/„Gebietsdatei") auf, welche die
Betriebsmitteldatensätze,
die seiner eigenen Untermenge des Domainnamensraumes zugeordnet
sind, speichert. Diese Datensätze werden
als autoritative" Datensätze bezeichnet.
Zudem speichern die Domainnamen-Server auf Abfragen von Auflösern Kopien
der Betriebsmitteldatensätze
temporär
zwischen, welche von anderen Domainnamen-Servern beschafft worden
sind, um die Leistung des Abfrageverfahrens zu verbessern, wenn
nichtlokale Daten durch einen Auflöser abgefragt werden. Die Auflöser sind
lokale Programme, welche Informationen von den Domainnamen-Servern
als Antwort auf Abfragen eines Client beschaffen.
-
Typischerweise
weist der Domainname, der einer Netzwerkeinrichtung an einer einzelnen IP-Adresse
zugewiesen ist, ein Kennzeichnungsfeld oberster Ebene (top level
label field) und ein oder mehrere Kennzeichnungsfelder unterer Ebene
(lower level label fields) auf. Die Kennzeichnungsfelder, welche
einen Domainnamen umfassen, sind zueinander durch einen Delimiter
(„.") getrennt, sie und
sind jeweils in dem Domainnamen entsprechend ihrer jeweiligen relativen
Ebene in der Domainnamens-Hierarchie positioniert. Um auf eine einzelne
Netzwerk-Einrichtung zuzugreifen (umfassend das Übertragen einer Email-Nachricht an einen
Empfänger, der
einen Email-Account hat, der in einer entfernt gelegenen Netzwerk-Einrichtung
unterhalten wird), stellt ein Benutzer einem Auflöser (Resolver)
mittels eines Internet-Browsers einen Domainnamen zur Verfügung, der
der gewünschten
Netzwerk-Einrichtung zugeordnet ist. Der Auflöser richtet eine Suchanfrage
an einen Haupt-DNS-Server (root DNS server) mit dem Kennzeichen
der oberen Ebene (top level label), welches in dem Domainnamen identifiziert ist,
um die IP-Adresse des DNS-Servers zu beschaffen, welcher die Gebietsdatei
(zone file) aufweist, welche der Domain der obersten Ebene (top
level domain) zugeordnet ist. Der Auflöser greift dann auf den identifizierten
DNS-Server zu, wobei er die erzielte IP-Adresse verwendet, und mit
der Kennzeichnung, welches die nächst
höhere
Position in der Domainnamen- Hierarchie
belegt (die Kennzeichnung unmittelbar links von der Kennzeichnung
der obersten Ebene in dem Domainnamen) erzielt er die IP-Adresse
von dem DNS-Server, welcher die Gebietsdatei aufweist, die der abgefragten
Kennzeichnung zugeordnet ist. Das Verfahren wird fortgeführt, bis
jede Kennzeichnung in dem Domainnamen aufgelöst worden ist, an welchem Punkt
der zuletzt abgefragte DNS-Server dem Auflöser die IP-Adresse der Netzwerk-Einrichtung zur Verfügung stellt,
die den spezifizierten Domainnamen aufweist. Obwohl das DNS erfolgreich weltweit
implementiert worden ist, leidet es an wenigstens drei Hauptnachteilen.
-
Erstens
müssen
die Domainnamen, welche durch das DNS implementiert werden, den
Regeln für die
ARPANET Host-Namen folgen. Dementsprechend muss jede Kennzeichnung
mit einem „Buchstaben" oder einer der Zahlen
0 bis 9 beginnen und enden und nur „Buchstaben", die Zahlen 0 bis
9 oder einen Bindestrich dort zwischen beinhalten. Zudem kann jeder „Buchstabe" nur einer von 'A' bis 'Z' und 'a' bis 'z' sein.
Als ein Ergebnis ist die Anzahl von verfügbaren Domainnamen stark beschränkt. Zweitens
ist das DNS-System nicht unterscheidend hinsichtlich der Groß-/Kleinschreibung,
so dass zwei Domainnamen, welche eine identische Buchstabenfolge
aufweisen aber deren einzelne Buchstaben hinsichtlich ihrer Groß-/Kleinschreibung
nicht übereinstimmen, zu
derselben Netzadresse aufgelöst
werden. Wie offensichtlich ist, beschränkt dieses Erfordernis zusätzlich die
Anzahl von Domainnamen, die verwendet werden können. Drittens, weil die Betriebsmitteldatensätze für jede Unter-Domain
(Sub-Domain) in den Gebietsdateien gespeichert sind, ist die Anzahl
von Domainnamen und die Geschwindigkeit des Auflösungsverfahrens durch Hardware-Beschränkungen der
Domainname-Server beschränkt.
-
Obwohl
Email-Systeme lange existierten, bevor das DNS eingerichtet worden
ist, liegen die Probleme, welche existierenden Email-Systemen innewohnen,
dicht parallel zu denjenigen des DNS. Insbesondere akzeptieren die
meisten Email-Systeme
nur, als Einbindung eines Teils eines Email-Account-Namens, den
Bindestrich, die Zahlen 0 bis 9 und die Buchstaben 'A' bis 'Z' und 'a' bis 'z', wodurch die
Anzahl der verfügbaren
Account-Namen beschränkt
wird. Wiederum sind die meisten Email-Systeme ebenso nicht groß-/kleinschreibungsunterscheidend,
was zusätzlich
die Anzahl der verfügbaren
Account-Namen beschränkt.
-
Versuche
sind unternommen worden, um einige Nachteile der existierenden Netzadressen-Namens-Systeme
zu lösen.
Zum Beispiel haben RealNames (www.realnames.com) und iDNS (www.idns.org)
Modifikationen an dem existierenden Domainnamens-System vorgeschlagen,
welche versuchen, die Anzahl von verfügbaren Domainnamen zu vergrößern. Beide
Systeme würden
Benutzern ermöglichen,
einen Domainnamen in das URL-Feld ihres Browsers einzugeben, ohne
dass der Name den Regeln für
die ARPANET Host-Namen folgt. Zum Beispiel könnten Teilnehmer in ihren Internet-Browser
einen Domainnamen eingeben, welcher Symbole und/oder Buchstaben
aus einem Zeichensatz einer nicht englischen Sprache umfasst. Der
Domainname würde
einem eigenen RealNames- oder iDNS-Server übertragen, welcher dann den
Domainnamen in einen ARPANET-konformen Domainnamen übersetzen
würde,
zum Auflösen
durch das existierende DNS. Wie offensichtlich ist, können diese
Lösungen einen
Flaschenhals bei der Berechnung verursachen, weil jeder Domainname
zuerst durch ihre eigenen Server übersetzt werden müsste, vor
der Auflösung
durch einen Domainnamen-Server. Zudem würden diese Lösungen nicht
für Email-Adressen
geeignet sein, weil der Bereich der Email-Adresse, welche den Verfasser
und den Empfänger
der Email-Nachricht identifiziert, immer noch durch den Email-POP3-Server
des Empfängers übersetzt
werden müsste.
-
Die
Microsoft-Corporation hat eine Lösung vorgeschlagen
(http://search.ietf.orf/internet-drafts/draft-skwan-utf8-dns-02.txt),
welche die Größe des Zeichensatzes
vergrößern würde, der
für Domainnamen
verfügbar
ist. Entsprechend dieses Vorschlags würden die DNS-Pakete aus dem
existierenden ASCII-Format zu dem UTF-8-Format übergehen. Diese letztere Lösung würde jedoch
erfordern, dass alle Internet-Browser einem Update unterzogen werden
müssten,
bevor Domainnamen, welche die UTF-8 Zeichen verwenden, benutzt würden, weil
die UTF-8 Zeichen bei Verwendung einer Doppelbyte-Struktur codiert
werden. Dementsprechend würde
ein Domainnamen-Server, der derart eingerichtet ist, dass er zum
Beispiel BIND verwendet, ein UTF-8 Zeichen, das er von einem herkömmlichen
Browser als zwei Zeichen anstelle von einem empfängt, fehlerhaft interpretieren,
was zu einer fehlerhaften Auflösung
des Domainnamen führt.
-
Smetaniuk
(„Distributed
Operation of the X.500 Directory"),
Computer Networks and ISDN-Systems, Volume 21, Number 1, March 1991) beschreibt
eine OSI-Spezifikation
für ein
verteiltes globales Online-Verzeichnis einer nicht beschränkten Größe. Das
X.500-Datenverzeichnissystem besteht aus einer Anzahl von Anwendungsprozessen (DSAs),
wobei jeder eine Datenverzeichnis-Informationsbasis (DIB: Directory Information
Base) speichert. Jede DIB umfasst eine hierarchische Anordnung von
Objekten, von denen jedes durch einen relativ unterschiedenen Namen
identifiziert ist.
-
Ein
Name wird dadurch aufgelöst,
dass ein gewünschter
Name von DSA zu DSA durchgeleitet wird, bis ein DSA erreicht wird,
welcher einen Objekteintrag beinhaltet, dessen abgegrenzter Name
mit einem anfänglichen
Bereich des gewünschten
Namens übereinstimmt.
Das DSA bewertet die Abfrage anhand seiner Objekteinträge und sendet,
wenn notwendig, Unterabfragen zu untergeordneten DSAs, welche einen
Objekteintrag bereithalten, dessen unterscheidender Name mit einem
größeren Bereich des
gewünschten
Namens übereinstimmt.
Dieser Schritt wird wiederholt, wobei jeder untergeordnete DSA Unterabfragen
zu weiter ungeordneten DSAs sendet, bis die Unterabfrage zu einem
DSA geleitet wird, der einen Objekteintrag bereithält, dessen
unterscheidender Name mit dem vollständigen gewünschten Namen übereinstimmt.
-
Dann
(
US 5 333 317 ) offenbart
ein Namensauflösungssystem,
welches eine oder mehrere Datenverzeichnisinformationsbasen (DIBs:
Directory Information Bases) umfasst, und einen Registerbaum (index
tree) zu einem X.500-Datenverzeichnis, zum Auflösen eines gewünschten
allgemeinen Namen in einen gespeicherten genormten Namen. Alle DIBs zusammen
umfassen ein verteiltes X.500-Datenverzeichnis,
wobei jede DIB ein Fragment des gesamten X.500-Datenverzeichnisses pflegt.
-
Der
Registerbaum umfasst einen oder mehrere Knoten, wobei jeder einen
Zweigschlüssel
zum Lenken einer Suche des X.500-Datenverzeichnisses beinhaltet.
Jeder Zweigschlüssel
umfasst einen Vorsatz-String (Prefix-String), einen oder mehrere Zweigzeichen
für den
Knoten und einen Zeiger auf Unterbäume des Knotens. Der Vorsatz
beinhaltet den längsten
String von führenden
Zeichen, welche von dem Knoten und jedem Unterbaum des Knotens geteilt
werden. Die Zweigzeichen für
einen Knoten definieren zusammen mit dem Vorsatz für den Stammknoten
den Registereintrag für
den Knoten. Gewünschte
Namen werden aufgelöst,
durch Durchsuchen des Registers von dem Hauptknoten (Root Node)
abwärts,
auf einer Knoten um Knotenbasis, für alle Registerknoten, welche
ein Namensfeld aufweisen, das mit einer Komponente des gewünschten Namens übereinstimmt,
und dann durch Identifizieren eines wahrscheinlichen Treffers durch
Berechnen einer gewichteten Summe der Treffer.
-
BOLOT
J-C ET AL: „EVALUATING
CACHING SCHEMES FOR THE X.500 DIRECTORY SYSTEM" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE
ON DISTRIBUTED COMPUTING SYSTEMS, PITTSBURGH, MAY 25 – 28, 1993, LOS
ALAMITOS, IEEE COMP. SOC. PRESS, US, vol. CONF. 13, 25 May 1993
(1993-05-25), Seiten 112 – 119,
XP000399379 ISBN: 0-8186-3770-6,
offenbart ein weiteres System, welches auf dem X.500-Datenverzeichnis
basiert.
-
Daher
verbleibt ein Bedarf für
ein Netzadressen-Namengebungssystem, welches die Anzahl von verfügbaren Domainnamen
vergrößert, ohne
Flaschenhälse
bei der Berechnung zu erzeugen, und ohne wesentliche Änderungen
an der existierenden Browser-Software zu erfordern. Ferner verbleibt
ein Bedarf für
ein Netzadressen-Namengebungssystem, welches die Größe des Zeichensatzes ausdehnt,
der für
die Komponenten eines Account-Namens von Email-Adressen verfügbar ist.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß eines
ersten Aspekts der vorliegenden Erfindung wird ein Netzadressen-Server mit den Merkmalen
von Anspruch 1 und ein Verfahren zum Auflösen eines Ziel-Netzadressnamens
(eines gewünschten
Netzadressnamens) in eine Netzadresse mit den Merkmalen von Anspruch
5 zur Verfügung gestellt,
welche die Nachteile der Netzadressen-Namengebungssysteme gemäß des Standes
der Technik angehen.
-
Der
Netzadressen-Server gemäß dem ersten
Aspekt der Erfindung ist derart eingerichtet, dass er eine Kennzeichnung
eines Ziel-Adressnamens in eine Netzadresse auflöst, wobei die Kennzeichnung des
Ziel-Adressnamens einen Zweig von einer Ebene eines Netzadressen-Namensraumes
mit mehreren Ebenen definiert. Der Netzadressen-Server ist einer
von einer Vielzahl von Netzadressen-Servern, von denen jeder eindeutig
einem jeweiligen Bereich der Ebene des Adressnamensraumes zugeordnet ist.
Der Netzadressen-Server umfasst eine Adressnamen-Datenbank und einen
Adressnamen-Prozessor, welcher in Verbindung mit der Adressnamen-Datenbank
steht, zum zur Verfügung
Stellen einer Antwort auf eine Abfrage der Netzadresse, welche der Kennzeichnung
des Ziel-Adressnamens entspricht. Die Adressnamen-Datenbank umfasst
eine Anzahl von Datenbank-Datensätzen,
von denen jeder eine eindeutige Kennzeichnung eines Adressnamens
und ferner eine Netzadresse identifiziert, welche eindeutig zu der
Kennzeichnung des Adressnamens zugeordnet ist. Der Adressnamen-Prozessor
umfasst einen Korrelationsprozessor, einen Korrelations-Transceiver,
der in Verbindung mit dem Korrelationsprozessor steht, und einen
Antwort-Prozessor, der in Verbindung mit dem Korrelationsprozessor
und dem Korrelations-Transceiver steht. Der Korrelationsprozessor
ist derart eingerichtet, dass er eine Korrelation zwischen der Kennzeichnung
des Ziel-Adressnamens und dem jeweiligen eindeutigen Adressnamenbereich
bestimmt. Der Korrelations-Transceiver ist derart eingerichtet,
dass er den anderen Netzadressen-Servern einen jeweiligen Hinweis
der bestimmten Korrelation zur Verfügung stellt und einen entsprechenden
Korrelationshinweis von wenigstens einem von den anderen Netzadressen-Servern empfängt. Der
Antwort-Prozessor ist derart eingerichtet, dass er auf die Abfrage
in Übereinstimmung
mit den Korrelationshinweisen eine Antwort zur Verfügung stellt.
-
Das
Verfahren zum Auflösen
eines Ziel-Netzadressnamens, gemäß eines
ersten Aspekts der Erfindung, umfasst die Schritte (1) das Empfangen
auf einem ersten Netzadressen-Server einer Abfrage der Netzadresse,
welche der Kennzeichnung des Ziel-Adressnamens entspricht, wobei der
erste Netzadressen-Server einer einer Vielzahl von Netzadressen-Servern
ist, von denen jeder Datenbank-Datensätze beinhaltet,
welche einen eindeutigen Bereich der Ebene des Adressnamensraumes
definieren, wobei jeder Datenbank-Datensatz eine eindeutige Kennzeichnung
eines Adressnamens einer entsprechenden Netzadresse zuordnet; (2)
auf dem ersten Netzadressen-Server das Bestimmen einer Korrelation
zwischen der empfangenen Kennzeichnung des Ziel-Adressnamens und dem jeweiligen eindeutigen
Adressnamenbereichs; (3) auf dem ersten Domainnamen-Server das zur
Verfügung Stellen
für die
anderen Netzadressen-Server eines jeweiligen Hinweises der Korrelation
und das Empfangen entsprechender Korrelationshinweise von wenigstens
einem der anderen Netzadressen-Server; und (4) auf dem ersten Netzadressen-Server
das zur Verfügung
Stellen einer Antwort auf die Abfrage in Übereinstimmung mit den Korrelationshinweisen.
-
Gemäß eines
zweiten Aspekts der vorliegenden Erfindung wird ein Verfahren zum
Auflösen
von Netzadressnamen mit den Merkmalen von Anspruch 9 zur Verfügung gestellt,
welches die Nachteile der Netzadressen-Namensgebungssysteme gemäß des Standes
der Technik angeht. Das Verfahren zum Auflösen von Netzadressnamen, entsprechend
des zweiten Aspekts der vorliegenden Erfindung, umfasst die Schritte
(1) das zur Verfügung
Stellen einer Vielzahl von Netzadress-Servern zum Abbilden eines hierarchischen
Netzadressen-Namensraumes, wobei der hierarchische Adressnamensraum
eine Vielzahl von Ebenen aufweist, jeder der gesagten Netzadressen-Server
Datenbank-Datensätze
umfasst, welche eine eindeutige Untermenge von einer jeweiligen
Ebene des Adressnamen-Raumes definieren, wobei jeder Datenbank-Datensatz einen eindeutigen Adressnamen
einer entsprechenden Netzadresse zuordnet; (2) das Empfangen eines
Ziel-Adressnamens zum Auflösen,
wobei der Ziel-Adressnamen eine Anzahl von Kennzeichnungen des Adressnamens
umfasst, jede Adressnamen-Kennzeichnung einer der Untermengen von
einer jeweiligen einen der Ebenen des Adressnamen-Raumes zugeordnet ist;
und (3) für
jedes Kennzeichen des Adressnamens das Abfragen von wenigstens einem
der Netzadressen-Servern, welcher die zugeordnete Ebene des Adressnamen-Raumes definiert.
-
In
einer vorzuziehenden Ausführung
der Erfindung umfasst der Netzadressen-Server einen Domainnamen-Server zum
Auflösen
einer Kennzeichnung eines Ziel-Domainnamens durch eine Netzadresse.
Jeder Domainnamen-Server weist eine Antwortzeit für einen
Korrelationshinweis auf, und der Domainnamen-Server, welcher die
Antwort auf die Abfrage zurückleitet,
weist die kürzeste
der Antwortzeiten für
den Korrelationshinweis auf. Vorzugsweise umfasst jeder Datenbank-Datensatz
wenigstens ein Datensatzzeichen (Character) auf, welches einen Datensatz-Zeichensatztyp
aufweist, und einen Identifikator für den Zeichensatz des Datensatzes,
welcher den Zeichensatztyp des Datensatzes identifiziert. Die Kennzeichnung
des Ziel-Domainnamens umfasst wenigstens ein Domainnamen-Zeichen (Character),
welches einen Zeichensatztyp des Domainnamens aufweist, und einen
Identifikator für
den Zeichensatz des Domainnamens, welcher den Zeichensatztyp des
Domainnamens identifiziert. Der Korrelationsprozessor bestimmt die
Korrelation (Übereinstimmung)
zwischen der Kennzeichnung des Ziel-Domainnamens und des jeweils
eindeutigen Domainnamen-Bereichs, durch Abfragen der jeweiligen
Datenbank-Datensätze
mit der Kennzeichnung des Ziel-Domainnamens, und erzielt eine Korrelation der
Domainnamen-Zeichen und des zugeordneten Identifikators für den Domainnamen-Zeichensatz,
mit jedem Datenbank-Datensatz der Datensatz-Zeichen und des zugeordneten Identifikators
des Datensatz-Zeichensatzes.
-
Ferner
wird der Domainnamen-Kennzeichnung von jedem Datenbank-Datensatz
einem Hash-Code zugeordnet, welcher aus einer Hash-Codierungsfunktion
abgeleitet wird, welche den abgeleiteten Hash-Code eindeutig der
entsprechenden Kennzeichnung des Domainnamens zuordnet. Der Korrelationsprozessor
umfasst einen Hash-Code-Prozessor zum Codieren der Kennzeichnung
des Ziel-Domainnamens mit der Hash-Codierungsfunktion und eine Suchmaschine,
die mit dem Korrelationsprozessor in Verbindung steht, zum Abfragen
der Hash-codierten Datenbank-Datensätze mit der Hash-codierten
Kennzeichnung des Domainnamens. Der Korrelationsprozessor erzielt
die Korrelation durch Codieren der Kennzeichnung des Ziel-Domainnamens
mit der Hash-Codierungsfunktion und durch Abfragen der Hash-codierten
Datenbank-Datensätze mit
der Hash-codierten Kennzeichnung des Domainnamens.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Die
vorzuziehende Ausführung
der Erfindung wird nun, nur im Wege eines Beispiels, mit Bezug auf
die Zeichnungen beschrieben werden, in welchen:
-
Die 1 eine
schematische Ansicht eines Auflösungssystems
für Netzadressnamen
entsprechend der vorliegenden Erfindung ist, welche eine Vielzahl
von Netzwerk-Clients, eine Vielzahl von Netzadressen-Servern und
ein Kommunikationsnetzwerk, welches die Netzwerk-Clients und die
Netzadress-Server
untereinander verbindet, darstellt;
-
die 2 eine
schematische Ansicht des Netzadress-Servers ist, der in der 1 dargestellt ist,
welche die Adressnamen-Datenbank und den Korrelationsprozessor,
den Korrelations-Transceiver und den Antwort-Prozessor des Adressnamen-Prozessors
darstellt;
-
die 3a bis 3d schematische
Ansichten von Beispielen von Datenbank-Datensätzen sind, umfassend die Adressnamen-Datenbank,
die in der 2 gezeigt ist;
-
die 4 ein
schematisches Diagramm eines Datenpaketes ist, welches verwendet
wird, um die Namens-Netzadress-Server abzufragen; und
-
die 5 ein
Flussdiagramm ist, welches die Abfolge von Schritten darstellt,
die durch den Netzadress-Server beim Auflösen einer Kennzeichnung eines
Ziel-Netzadressnamens
mit einer Netzadresse ausgeführt
werden.
-
DETAILLIERTE BESCHREIBUNG
DER VORZUZIEHENDEN AUSFÜHRUNG
-
Bezugnehmend
auf die 1 ist ein Auflösesystem
für Netzadressnamen
gezeigt, welches allgemein mit 100 bezeichnet ist, umfassend
eine Vielzahl von Netzwerk-Clients 102, eine Vielzahl von
Netzwerk-Servern 104, eine Vielzahl von Netzadress-Servern 200,
eine Vielzahl von Namensauflösungs-Servern 250 und
ein Kommunikationsnetzwerk 106, welches die Netzwerk-Clients 102,
die Netzwerk-Server 104, die Netzadress-Server 200 und
die Namensauflösungs-Server 250 untereinander
verbindet. Vorzugsweise umfasst jeder Netzwerk-Client 102 einen Personal-Computer,
der mit einer Software zum Kommunizieren mit den Netzwerk-Servern 104 über das
Kommunikationsnetzwerk 106 ausgestattet ist.
-
Typischerweise
umfasst das Kommunikationsnetzwerk 106 das Internet, das
Kommunikationsnetzwerk 106 kann jedoch auch andere Netzwerkformen
umfassen, wie zum Beispiel ein Intranet. Zudem soll verständlich sein,
dass, obwohl das Auflösungssystem 100 für Netzadressnamen
weiter unten als ein Domainnamen-Auflösungssystem beschrieben werden
wird, das Auflösungssystem 100 für Netzadressnamen
andere Anwendungen finden kann, umfassend das Arbeiten als ein Auflösungssystem
für einen
Account-Namen eines Email-Nutzers. Andere Anwendungen des Auflösungssystems 100 für Netzadressnamen
werden für
den Fachmann offensichtlich sein und sind in der vorliegenden Erfindung
eingeschlossen.
-
Wie
in der 2 gezeigt ist, umfasst jeder Netzadress-Server 200 eine
Netzwerkschnittstelle 202 (Interface) zum Kommunizieren
mit den Netzwerk-Clients 102 über das
Kommunikationsnetzwerk 106, und ferner eine zentrale Recheneinheit
(CPU: central processing unit) 204, die in Verbindung mit der
Netzwerkschnittstelle 202 steht, und einen nicht flüchtigen
Speicher (NVM: nonvolatile memory) 206 und einen flüchtigen
Speicher (RAM) 208, die in Verbindung mit der CPU 204 stehen.
Der NVM 206 umfasst vorzugsweise eine magnetische oder
optische Speichereinrichtung und umfasst eine Gebietsdatei 210,
welche Datensätze
aufweist, die Domainnamen zu Netzadressen zuordnet. Der NVM 206 umfasst ebenso
Prozessoranweisungen für
die CPU 204, welche in dem RAM 208 eine Netzadressnamen-Datenbank 212 als
eine Kopie der Gebietsdatei 210 einrichten, und ein Speicherobjekt,
das einen Adressnamenprozessor 214 in Verbindung mit der
Adressnamen-Datenbank 212 definiert. Wie offensichtlich
sein wird, ist die Netzadressnamen-Datenbank 212 in dem
RAM 208 eingerichtet, um die Geschwindigkeit des Auflösungsverfahrens
zu vergrößern, und
auf sie kann in Anwendungen verzichtet werden, in welchen die Geschwindigkeit
kein vorrangiges Anliegen ist.
-
In Übereinstimmung
mit der vorliegenden Struktur des Internets definieren die Domainnamen der
Netzwerkserver 104 (von welchen jeder einer besonderen
Netzadresse zugeordnet ist und eine Vielzahl von Kennzeichnungen
von Domainnamen umfasst) zusammen einen hierarchischen Netzadressen-Namensraum, welcher
eine Vielzahl von Ebenen des Adressnamensraumes umfasst. Zum Beispiel befinden
sich Kennzeichnungen von generischen Domainnamen der obersten Ebene
(top-level domain name labels), wie zum Beispiel COM, EDU, MIL, NET,
ORG, und Kennzeichnungen von länderspezifischen
Domainnamen der obersten Ebene (top-level domain name), wie zum
Beispiel CA, UK, JP etc., auf der obersten Ebene des Netzadressen-Namensraumes. Unterhalb
von jeder Kennzeichnung des Domainnamens oberster Ebene befinden
sich eine Vielzahl von Kennzeichnungen von Domainnamen der zweiten
Ebene (second level domain name), und unterhalb von jeder Kennzeichnung
des Domainnamens zweiter Ebene befindet sich typischerweise wenigstens
ein Kennzeichen eines Domainnamens unterer Ebene. Die Adressnamen-Datenbank 212 von
jedem Netzadressen-Server 200 umfasst eine Vielzahl von
Datenbank-Datensätzen 300,
von denen jeder einen eindeutigen Bereich der Ebene des Adressnamensraumes
definiert.
-
Um
die Geschwindigkeit des Auflösungsverfahrens
zu erhöhen,
ist vorzugsweise jede Ebene des Netzadressen-Namensraumes über eine
Vielzahl von verschiedenen Netzadress-Servern 200 verteilt, wobei
jede Adressnamen-Datenbank 212 einer
eindeutigen Untermenge der Domainnamen-Kennzeichnungen zugeordnet ist, welche
für eine
einzelne Adressnamensraumebene definiert sind. Im wesentlichen ist
jeder Netzadress-Server 200 einem
eindeutigen Bereich des gesamten Adressnamen-Raumes zugeordnet,
wobei die Adressnamen-Datenbanken 212 von allen Netzadress-Servern 200,
die einer einzelne Adressnamensraumebene zugeordnet sind, zusammen
alle die Domainnamen-Kennzeichnungen identifizieren, welche für die zugeordnete
Adressnamensraumebene definiert sind. In Übereinstimmung mit der existierenden
DNS-Struktur umfasst das Netzadressen-Namensauflösungssystem 100 jedoch
vorzugsweise redundante oder sekundäre Netzadressen-Server 200,
so dass jeder eindeutige Bereich des Adressnamen-Raumes durch zwei
oder mehr Netzadress-Server 200 bedient wird.
-
Die
Struktur von typischen Datenbank-Datensätzen 300a, 300b, 300c, 300d sind
im Textformat in der 3 gezeigt. Wie offensichtlich
sein wird, sind die Datenbank-Datensätze 300 im wesentlichen ähnlich zu
den BIND-basierten Betriebsmitteldatensätzen der Textgebietsdatei,
welche vorliegend in dem DNS verwendet werden, das durch Mockapetris beschrieben
wird, dadurch, dass jeder Datenbank-Datensatz 300 ein Adressnamen-Kennzeichen 302 umfasst,
das einen einzelnen Domainnamen identifiziert, und wenigstens eine
Netzadresse 304, welche der Adressnamen-Kennzeichnung 302 zugeordnet
ist. In Übereinstimmung mit
dem existierenden DNS-Abkommen ist jede Netzadresse 304 entweder
(1) eine Netzadress-Server-Netzadresse 304a eines Netzadress-Servers 200,
welcher in seiner Adressnamen-Datenbank 212 einen Netzadressnamen
beinhaltet, welcher der nächst
tieferen Ebene des Netzadressnamensraumes zugeordnet ist, oder (2)
die Domainnamen-Netzadresse 304b des Domainnamens, welcher
aufgelöst
wird.
-
Anders
als jedoch in dem ASCII-Text, welcher in existierenden BIND-basierten
Gebietsdateidatensätzen
verwendet wird, wird vorzugsweise, um die Zeichensatzbeschränkung zu überwinden,
welche dem herkömmlichen
Domainnamen-System innewohnt, jede Adressnamen-Kennzeichnung 302 derart
definiert, dass Zeichen aus dem Unicode-Zeichensatz (ISO 10646)
verwendet werden, weil der Unicode-Zeichensatz Symbole und Zeichen
aus einer Anzahl verschiedener Sprachen umfasst. Um jedoch zu vermeiden,
das Auflösungssystem 100 für Netzadressnamen
auf irgendeinen einzelnen Zeichensatz zu beschränken, wird angestrebt, dass
jede Adressnamen-Kennzeichnung 302 Zeichen
aus irgendeinem von einer Vielzahl von Zeichensätzen verwenden kann. Daher
umfasst jeder Datenbank-Datensatz 300 vorzugsweise ferner
einen Zeichensatzidentifikator, welcher den Zeichensatztyp identifiziert,
welcher verwendet wird, um die Adressnamen-Kennzeichnung 302 zu
definieren.
-
Zum
Beispiel umfasst der Datenbank-Datensatz 300b als den Identifikator 306 für den Zeichensatz
den String „Big5", um den chinesischen
Zeichensatz Big5 zu bezeichnen, wohingegen der Datenbank-Datensatz 300c als
den Identifikator 306 für den
Zeichensatz den String "UTF8" umfasst, um den chinesischen
Doppelbytezeichensatz UTF8 zu bezeichnen. Zudem verarbeitet die
chinesische Spracherweiterung für
den Browser Microsoft Internet Explorer jedes UTF8 Doppelbyte-Zeichen
fehlerhaft als zwei getrennte Zeichen, wodurch er eine fehlerhafte Transformation
der UTF8-Zeichen zur Verfügung stellt.
Daher umfasst der Datenbank-Datensatz 300d als den Identifikator 306 für den Zeichensatz
den String „UTF8-Big5", um den Benutzern
des Internet Explorer die korrekte Auflösung von Domainnamen zur Verfügung zu
Stellen, welche durch UTF8-Zeichen
definiert sind. Zusätzlich
umfasst jeder Datenbank-Datensatz 300 vorzugsweise ebenso
als den Identifikator 306 für den Zeichensatz den String "UTF7", zum Verbinden mit
Auflösungsservern 250 für Namen,
welche nicht 8-bit-kompatibel
sind.
-
Wie
in der 2 gezeigt ist, umfasst in einer Variante die Adressnamen-Datenbank 212 ferner eine
Hash-Tabelle 308, welche eine Vielzahl von Hash-Werten aufweist,
von denen jeder aus jeweils einer der Adressnamen-Kennzeichnungen 302 abgeleitet
worden ist. Wie erläutert
werden wird, verbessert die Hash-Tabelle 308 die Geschwindigkeit
des Auflösungsverfahrens
für den
Domainnamen und kann ausgespart werden, wenn Geschwindigkeit nicht
ein vorrangiges Anliegen ist, oder wenn die Adressnamen-Datenbank 212 nicht
eine große
Anzahl von Datensätzen 300 beinhaltet.
-
Ein
Teil eines Datenpakets 400 zum Abfragen der Netzadress-Server 200 mit
einem Ziel-Domainnamen ist in der 4 gezeigt.
Die Struktur des gesamten Datenpaketes 400 ist im wesentlichen ähnlich zu
dem Datagramm-Nachrichtenformat,
welches von Mockapetris für
herkömmliche
DNS-Abfragen beschrieben wird, dadurch, dass das Datenpaket die
Datensätze
HEADER, QUESTION, ANSWER, AUTHORITY AND ADDITIONAL (nicht gezeigt)
umfasst. Ferner, wie durch Mockapetris beschrieben wird, umfassen
die Datensätze
QUESTION, ANSWER, AUTHORITY AND ADDITIONAL eines oder mehrere der
Felder QNAME, QTYPE, QCLASS, TTL, RDLENGTH und RDATA (nicht gezeigt).
-
Ferner,
wie durch Mockapetris vorgeschlagen wird, umfasst das Feld QNAME
eine Ziel-Domainnamen-Kennzeichnung 402, welche den Ziel-Domainnamen
identifiziert, und einen 8-bit Zeichenanzahlidentifikator 403,
der der Domainnamen-Kennzeichnung 402 vorangestellt ist,
welcher die Anzahl der Zeichen in der Domainnamen-Kennzeichnung
identifiziert. Anstelle dass jeder Zieldomainname nur ASCII-Zeichen
umfasst, wie durch Mockapetris vorgeschlagen wird, wird jedoch vorzugsweise
jede Adressnamen-Kennzeichnung 402 dadurch definiert, dass
Zeichen aus dem Unicode-Zeichensatz verwendet werden. Auf der anderen
Seite, wie oben beschrieben worden ist, wird angestrebt, um zu vermeiden,
das Auflösungssystem 100 für Netzadressnamen
auf einen besonderen Zeichensatz zu beschränken, dass jede Zieldomainnamen-Kennzeichnung 402 Zeichen
aus einem von einer Vielzahl von Zeichensätzen verwenden kann. Daher
umfasst vorzugsweise jedes Datenpaket 400 ebenso einen
16-bit Zeichensatzidentifikator 404, welcher den Zeichensatztyp
identifiziert, der verwendet wird, um die Zieldomainnamen-Kennzeichnung 402 zu
definieren. Wie gezeigt ist, umfasst der Zeichensatzidentifikator 404 einen
2-bit Vorsatzbereich 404a, welcher dem Netzadress-Server 200 anzeigt, dass
das Datenpaket 400 andere als ASCII-Zeichen umfasst, ferner
einen 2-bit Flag-Bereich 404b für zukünftige Erweiterungszwecke
und einen 12-bit Codebereich 404c, welcher den Zeichensatztyp
identifiziert.
-
Vorzugsweise
verwendet der Codebereich 404c eine standardisierte Spezifikation
für die
Identifikation des Zeichensatzes, wie zum Beispiel die MIBenum-Spezifikation, welche
in RFC 1700 vorgeschlagen wird. Somit, wie aus der RFC 1700 offensichtlich
sein wird, bezeichnet der Wert "1000", wenn er in dem
Codebereich 404c verwendet wird, dass die folgende Domainnamen-Kennzeichnung aus
Zeichen aus dem Unicode-Zeichensatz zusammengesetzt ist. Weil jedoch
ein Ziel des Auflösungssystems 100 für Netzadressnamen
ist, die Verwendung eines gemeinsamen Zeichensatzes zu fördern, welcher
in der Lage ist, jedes multinationale Zeichen zu erkennen, wird
erwartet, dass der 12-bit Codebereich 404c, der 2-bit Vorsatzbereich 404a und
der 2-bit Flagbereich 404b zusammen eliminiert werden können, sobald
alle Netzwerkauflösungsadress-Server 200 einen
gemeinsamen Zeichensatz für
die Darstellung von Domainnamen-Kennzeichnungen anwenden. Auf der
anderen Seite wird ebenso erwartet, dass die Domainnamen-Kennzeichnungen
Symbole umfassen, welche nicht Teil von irgendeinem erkannten Zeichensatz
sind, wie zum Beispiel eine grafische Darstellung oder ein Logo,
welches als Marke verwendet wird, in welchem Fall der Codebereich 404c beibehalten
würde,
um den Zeichensatz zu identifizieren, dem das Symbol zugeordnet
ist.
-
Wie
in der 4 gezeigt ist, ist der 2-bit-Vorsatzbereich 404a vorzugsweise
auf „10" gesetzt, um zu identifizieren,
dass die folgende Domainnamen-Kennzeichnung
Nicht-ASCII-Zeichen umfasst. Weil jedoch, wie aus RFC 1035 offensichtlich
sein wird, eine Domainnamen-Kennzeichnung in der Länge auf
63 Achtbitzeichen (Oktetts) begrenzt ist, werden die beiden höchstwertigen
Bits des 8-bit-Zeichenzahlidentifikators 403 typischerweise
gleich „00" sein. Daher, um
die Kompatibilität
mit dem DNS-Standard zu fördern,
wie er durch Mockapetris beschrieben wird, und um die Abwärtskompatibilität mit Namensauflösungs-Servern 250 des
Standes der Technik (welche Nicht-ASCII-Zeichen nicht erkennen)
zu fördern,
falls die Kennzeichnung 402 des Zieldomainnamens nur aus
ASCII-Zeichen besteht, wird vorzugsweise der 16-bit-Zeichensatzidentifikator 404,
welcher anderenfalls dem Zeichenzahlidentifikator-403 für die Domainnamen-Kennzeichnung 402 vorangestellt
sein würde,
eliminiert werden. Zum Beispiel umfassen die letzten beiden „Zeilen" der Daten in dem
Datenpaket 400 nur den 8-bit-Zeichenzahlidentifikator 403 (welcher
identifiziert, dass die letzte Domainnamen-Kennzeichnung in dem
Domainnamen 3 ASCII-Zeichen aufweist) und eine Zieldomainnamen-Kennzeichnung 402,
deren Zeichen zusammen die „com"-Domainnamen-Kennzeichnung
definieren. Hieraus folgt, weil die beiden höchstwertigen Bits des 8-bit-Zeichenzahlidentifikators 403 für eine Domainnamen-Kennzeichnung,
die nur aus ASCII-Zeichen besteht, nicht „10" sein werden, dass die Namensauflösungs-Server 250 in
der Lage sein werden, solch eine Domainnamen-Kennzeichnung aufzulösen, ohne
eine Modifikation an dem DNS-Algorithmus des Standes der Technik.
-
Zurückkehrend
wiederum zu der 2 ist der Adressnamen-Prozessor 214 (welcher
in Verbindung mit der Adressnamen-Datenbank 212 steht)
gezeigt, umfassend einen Korrelationsprozessor 216, einen
Korrelations-Transceiver 218 in Verbindung mit dem Korrelationsprozessor 216 und
einen Antwortprozessor 220 in Verbindung mit dem Korrelationsprozessor 216 und
dem Korrelations-Transceiver 218.
Der Korrelationsprozessor 216 ist derart eingerichtet,
dass er eine Korrelation (Übereinstimmung) zwischen
der Domainnamen-Kennzeichnung 402, welche aufgelöst wird,
und dem eindeutigen Adressnamenbereich, welcher dem besonderen/einzelnen Netzadress-Server 200 zugeordnet
ist, bestimmt. In anderen Worten, der Korrelationsprozessor 216 von jedem
Netzadress-Server 200 ist derart eingerichtet, dass er
bestimmt, ob eine Ziel-Domainnamen-Kennzeichnung 402 (wenn sie
durch einen der Netzwerk-Clients 102 abgefragt wird) einen
entsprechenden Eintrag in der Adressnamen-Datenbank 212 des Netzadress-Servers 200 aufweist.
-
Der
Korrelationsprozessor 216 ist derart eingerichtet, dass
er die Korrelation zwischen der Zieldomainnamen-Kennzeichnung 402 und
dem zugeordneten, eindeutigen Domainnamenbereich des Netzadress-Servers 200 bestimmt,
durch Abfragten der Datenbank-Datensätze 300 des Netzadress-Servers 200 mit
der Zieldomainnamen-Kennzeichnung 402, und dann durch Vergleichen
der Domainnamenzeichen und des zugeordneten Domainnamenzeichensatz-Identifikators 404 mit
den Datensatzzeichen (der Adressnamen-Kennzeichnung 302)
und dem zugeordneten Zeichensatzidentifikator 306 des Datensatzes.
Wie offensichtlich sein wird, fährt
der Korrelationsprozessor 216 damit fort, dass er jeden Datenbank-Datensatz 300 analysiert,
bis entweder ein übereinstimmender
Datenbank-Datensatz 300 in der jeweiligen Adressnamen-Datenbank 212 positioniert
ist, oder bis alle Datenbank-Datensätze 300 in der jeweiligen
Adressnamen-Datenbank 212 analysiert worden sind.
-
Der
Korrelationsprozessor 216 umfasst eine Suchmaschine 222 zum
Abfragen der Datenbank-Datensätze
mit der Domainnamen-Kennzeichnung. In der Variation, welche oben
beschrieben worden ist, in welcher die Adressnamen-Datenbank 212 die
Hash-Tabelle 308 umfasst, umfasst jedoch der Korrelationsprozessor 216 vorzugsweise
auch einen Hash-Code-Prozessor 224 zum Codieren der Ziel-Domainnamen-Kennzeichnung
mit der Hash-Codierungsfunktion, wobei die Suchmaschine 222 in
Verbindung mit dem Hash-Code-Prozessor 224 zum Abfragen
der Hash-codierten Datenbank-Datensätze mit der Hash-codierten
Domainnamen-Kennzeichnung steht. In dieser Variation erzielt der
Korrelationsprozessor 216 die Korrelation durch Codieren
der Ziel-Domainnamen- Kennzeichnung
mit der Hash-Codierungsfunktion, welche verwendet worden ist, um
die Hash-Tabelle 308 zu erzeugen, und dann durch Abfragen
der Hashcodierten Datenbank-Datensätze 300 mit der Hash-codierten
Domainnamen-Kennzeichnung 402.
-
Der
Korrelations-Transceiver 218 von jedem Netzadress-Server 200 ist
derart eingerichtet, dass er den anderen Netzadress-Servern 200 einen
jeweiligen Hinweis der bestimmten Korrelation zur Verfügung stellt,
und dass er entsprechende Korrelationshinweise von wenigstens einem
der anderen Netzadress-Server 200 empfängt. Der Antwortprozessor 220 ist
derart eingerichtet, dass er eine Antwort auf die Abfrage in Übereinstimmung
mit den Korrelationshinweisen zur Verfügung stellt.
-
Die
Arbeitsweise des Netzadressnamen-Auflösungssystem 100 wird
nun mit Bezug auf die 5 beschrieben werden. Um das
Auflösungsverfahren
zu demonstrieren, wird der Name „www.Φ.com" als der Ziel-Domainname verwendet, wie
er durch einen der Netzadress-Server 200 verarbeitet wird.
Wie offensichtlich sein wird, funktionieren alle der Netzadress-Server 200 des
Auflösungssystems 100 für Netzadressnamen
auf ähnliche
Art und Weise.
-
Sobald
die Netzadress-Server 200 aufgestellt worden sind, liest
jeder Netzadress-Server 200 nach
dem Hochfahren seine Gebietsdatei 210 aus seinem NVM 206 und
erzeugt (als eine Kopie) seine Netzadressnamen-Datenbank 212 in
seinem RAM 208. Dann, im Schritt 500, wobei ein
Datenpaket 400 ähnlich
zu demjenigen, welches in der 4 gezeigt ist,
verwendet wird, überträgt einer
der Netzwerk-Clients 102 eine
Abfrageanforderung eines Ziel-Domainnamens (um mit einem der Netzwerk-Server 104 zu
kommunizieren) zu einem der Namensauflösungs-Server 250,
zum Auflösen
des Ziel-Domainnamens in eine Netzadresse. Wie oben beschrieben worden
ist, wenn der Netzwerk-Client 102 kompatibel zu dem Namensauflösungsprotokoll,
welches hier offenbart wird, ist, werden, weil der Zieldomainname das
Zeichen „Φ" beinhaltet, die
beiden höchstwertigen
Bits des 8-bit-Zeichenzahlidentifikators 403 gleich „10" sein.
-
Nach
dem Empfang des Datenpaketes 400 überträgt der Namensauflösungs-Server 250 die
Abfrage an alle Netzadress-Server 200, die der obersten
Ebene (top-level) des Adressnamensraumes zugeordnet sind. In diesem
Beispiel wird die Abfrage zu den Hauptnetzadress-Servern (Root-Netzadress-Servern) 200 zur
Identifikation der Netzadresse von einem der Netzadress-Server 200 übertragen, welcher
dem „COM"-Domainnamensraum
zugeordnet ist. Die Netzwerkschnittstelle 202 der Netzadress-Server 200 der
obersten Ebene empfangen die Abfrage und übertragen die Abfrage zu ihren
jeweiligen Adressnamen-Prozessoren 214. Im Schritt 502 extrahiert
der Adressnamen-Prozessor 214 von
jedem Netzadress-Server 200 der obersten Ebene die Ziel-Domainnamen-Kennzeichnung 402 und
den zugeordneten Zeichensatzidentifikator 404 aus dem Datenpaket 400.
Der Adressnamen-Prozessor 214 bestimmt
dann die Korrelation (Übereinstimmung) zwischen
der Zieladressnamen-Kennzeichnung 402 und dem eindeutigen
Adressnamenbereich, welcher dem jeweiligen Netzadress-Server 200 zugeordnet ist.
-
Um
dies auszuführen, überträgt im Schritt 504 der
Korrelationsprozessor 216 des Netzadress-Servers 200 der
obersten Ebene, welcher der erste ist, welcher die Domainnamenanfrage
empfängt
und bearbeitet (nachfolgend der „erste Netzadress-Server 200 der
obersten Ebene"),
vorzugsweise die Abfrage zu den anderen Netzadress-Servern 200 der
obersten Ebene [[zu den anderen Netzadress-Servern 200 der
obersten Ebene]], mit einem Flag (Bit-Schalter), welches anzeigt,
dass diese anderen Netzadress-Server 200 der obersten Ebene ihre
jeweiligen Antworten zu dem ersten Netzadress-Server 200 der
obersten Ebene übertragen sollen.
Neben der Vergrößerung der
Geschwindigkeit des Auflösungsverfahrens,
wie weiter unten beschrieben werden wird, stellt dieser Schritt
sicher, dass der Netzwerk-Client 102 nur eine einzige Antwort
auf die Domainnamenabfrage empfangen wird.
-
Nachdem
die Anzeige gesendet worden ist, leitet im Schritt 506 der
Hash-Code-Prozessor 216 von
jedem Netzadress-Server 200 der obersten Ebene einen Hash-Code
aus der extrahierten Ziel-Domainnamen-Kennzeichnung 402 und
dem zugeordneten Zeichensatzidentifikator 404 ab. Die Suchmaschine 222 des
Korrelationsprozessors 216 von jedem Netzadress-Server 200 der
obersten Ebene fragt dann die Datenbank-Datensätze 300 von ihren jeweiligen
Netzadressnamen-Datenbanken 212 mit dem abgeleiteten Hash-Code
nach einem übereinstimmenden
Eintrag in ihrer Netzadressnamen-Datenbank 212 ab. Wenn
keine Übereinstimmung
vorhanden ist, stellt im Schritt 508 der Korrelations-Transceiver 218 von
jedem der Netzadress-Server 200 der obersten Ebene dem
ersten Netzadress-Server 200 der obersten Ebene ein Datenpaket
zur Verfügung,
welches anzeigt, dass der Domainname in der Adressnamen-Datenbank 212 des
Netzadress-Servers nicht gefunden worden ist.
-
Auf
der anderen Seite, wenn eine Übereinstimmung
vorhanden ist, antwortet im Schritt 510 der Netzadress-Server 200 der
obersten Ebene, welcher den übereinstimmenden
Eintrag aufweist, dem ersten Netzadress-Server 200 der
obersten Ebene mit der Netzadresse von einem der Netzadress-Server 200,
welche dem „com"-Domainnamensraum
zugeordnet sind. Alternativ, wenn der Netzadress-Server 200 der
obersten Ebene einen maßgeblichen
(autoritativen) Datensatz für
den Domainnamen aufweist, antwortet der Netzadress-Server 200 dem
ersten Netzadress-Server 200 der obersten Ebene mit der Netzadresse,
welche dem Domainnamen zugeordnet ist.
-
Im
Schritt 512 antwortet der erste Netzadress-Server 200 der
obersten Ebene dem Namensauflösungs-Server 250,
welcher die Abfrage gestartet hat, mit der abgefragten Netzadresse.
Wenn der erste Netzadress-Server 200 der obersten Ebene
nur mit der Netzadresse von einem der Netzadress-Server 200 antwortet, überträgt der Namen-Auflösungs-Server 200 die
Abfrage zu den Netzadress-Servern 200,
welche die abgefragte Netzadresse aufweisen. Das Verfahren wiederholt
sich in Übereinstimmung
mit den Schritten 500 bis 512, wobei aber die
Abfrage zu den „com"-Netzadress-Servern 200 übertragen
wird, zur Identifikation der Netzadresse von einem der Netzadress-Server 200,
welche dem „Φ.com"-Domainnamensraum zugeordnet sind. Wie
vorgezogen wird, antwortet im Schritt 512 der erste „com"-Netzadress-Server 200 dem
Netzwerk-Client 102, welcher die Abfrage gestartet hat, entweder
mit der Netzadresse von einem der Netzadress-Server 200, welche dem „Φ.com"-Domainnamensraum
zugeordnet sind, oder mit der abgefragten Netzadresse.
-
Wiederum
wiederholt sich das Verfahren in Übereinstimmung mit den Schritten 500 bis 512,
wobei aber die Abfrage zu den „Φ.com"-Netzadress-Servern 200 übertragen
wird, zur Identifikation der Netzadresse von einem der Netzadress-Server 200,
welche dem „www.Φ.com"-Domainnamensraum
zugeordnet sind. Im Schritt 512 antwortet der erste „Φ.com" Netzadress-Server 200 dem
Namensauflösungs-Server 250,
welcher die Abfrage gestartet hat, entweder mit der Netzadresse,
welche dem Ziel-Domainnamen zugeordnet ist, oder mit einem Hinweis,
dass der Zieldomainname nicht gefunden wurde. Der Netzwerk-Client 102 überträgt dann
die Antwort zu dem Netzwerk-Client 102, um zu ermöglichen,
dass der Netzwerk-Client 102 eine Kommunikation mit dem
Ziel-Netzwerk-Server 104 einrichtet.
-
Wenn
in einer Iteration des Schrittes 512 keine Antwort von
einem der anderen Netzadress-Server 200 empfangen wird
und ein übereinstimmender Eintrag
nicht durch den ersten Netzadress-Server gefunden werden kann, antwortet
der erste Netzadress-Server dem Namensauflösungs-Server 250 im Schritt 512 mit
einem Zeitablaufsfehler.
-
Die
vorliegende Erfindung stellt eine Anzahl von Vorteilen des Standes
der Technik zur Verfügung.
Erstens, durch Aufteilen von jeder Ebene des Domainnamensraumes
in verschiedene Bereiche und durch Zuordnen von jedem Domainnamen-Bereich
zu verschiedenen Netzadress-Servern 200 wird die Anzahl
von verfügbaren
Domainnamen nicht länger
durch die Hardwarebeschränkungen
von einem einzelnen Domainnamen-Server begrenzt. Zweitens, durch
Verteilen des Domainnamensraumes über mehrere Netzadress-Server 200 werden
die Anfangskosten (Start up – Kosten)
zum Einrichten eines Netzadress-Servers 200 vermindert.
Drittens, durch Verwenden des Unicode-Zeichensatzes anstelle des ASCII-Zeichensatzes,
welcher von herkömmlichen Domainnamen-Servern
verwendet wird, kann die Anzahl von Domainnamen erheblich erweitert
werden. Viertens, durch Verwenden eines Identifikators für den Zeichensatz,
um den Zeichensatz einer Domainnamen-Kennzeichnung zu identifizieren,
kann das Auflösungssystem 100 für Netzadressnamen
leicht derart konfiguriert werden, dass es neue Zeichensätze erkennt
und Erweiterungen für
existierende Zeichensätze
akzeptiert. Ferner durch Verwenden der Netzadress-Server 200 als
Account-Netzadress-Server in einem Email-System kann der Typ von
Zeichen, welcher für
die Account-Namen verwendet werden kann, die einem Email-Account
zugeordnet sind, ebenfalls erheblich erweitert werden.
-
Die
vorliegende Erfindung wird durch die Ansprüche definiert, welche hier
angehängt
sind, wobei die vorhergehende Beschreibung beispielhaft für die vorzuziehende
Ausführung
der Erfindung ist. Der Fachmann kann bestimmte Hinzufügungen,
Weglassungen und/oder Modifikationen an der beschriebenen Ausführung vornehmen,
welche, obwohl sie hier nicht ausdrücklich beschrieben worden sind,
nicht von dem Schutzumfang der Erfindung, wie er durch die beigefügten Ansprüche definiert
wird, abweichen.