Übersicht
DNS ordnet einen Hostnamen (bestehend aus einem Domänennamen + optionaler Subdomäne, z. B. example.com oder www.example.com) einem adressierbaren Rechner (nach IP-Adresse) irgendwo im Internet zu. DNS arbeitet, indem es mehrere rekursive Abfragen durchführt, bis die Rechneradresse aufgelöst ist.
Prozess
Erste Abfrage
Ein ganz triviales Beispiel: Nehmen wir an, ein Browser greift zum ersten Mal auf http://example.com zu. Da dies der erste Zugriff auf den Hostnamen ist, muss ein vollständiger Lookup durchgeführt werden:
- (0 ms) Der Browser fragt den lokalen DNS-Resolver (auf demselben Computer) ab, wo example.com ist
- Der lokale DNS antwortet mit einem negativen Ergebnis
- Browser verwendet die in seiner Netzwerkkonfiguration konfigurierten DNS-Server, um abzufragen, wo example.com ist
- (2 ms) DNS-Server fragt die Wurzel (
.
) Nameserver, bei denencom.
ist - (42 ms) Root-Nameserver geben autoritative TLD-Server an den DNS-Server zurück
- DNS-Server fragt autoritative TLD-Server, wo
Beispiel.com.
ist - (26 ms) TLD-Server antwortet zurück mit dem Webhost Nameserver delegiert an
Beispiel.com.
- DNS-Server fragt Webhost-Nameserver zurück, was
Beispiel.com.
ist - (15 ms) Webhost-Nameserver antworten, dass der A-Eintrag für
Beispiel.com.
ist1.2.3.4
- Browser sendet
GET / HTTP/1.1
fürBeispiel.com.
an1.2.3.4:80
- Webserver, der auf 1.2.3.4:80 lauscht, sucht seine Konfiguration im Speicher nach, findet eine Übereinstimmung und entspricht Indexdateiund serviert es unter einer
HTTP/1.1 200 OK
Antwort - Browser rendert Ihre Webseite
Eingeklammerte Begriffe sind der Overhead, der bei jedem Schritt der Abfrage entsteht. In diesem Beispiel beträgt der gesamte DNS-Overhead 85 ms. Der Netzwerk-Overhead variiert in Abhängigkeit von der physischen Entfernung von jedem DNS-Resolver, der abgefragt wird, um eine Antwort zu erhalten: größere Entfernung -> mehr Netzwerkkabel, die zu überwinden sind.
Gepufferte Abfrage
Aufgrund des Overheads, der bei der Auflösung von IP-Adressen entsteht, wird in jedem Schritt der Abfrage ein Cache eingebaut, um die Netzwerklatenz zu reduzieren. Dieser Wert wird bestimmt durch den TTL (time-to-live) Parameter, ein Überbleibsel von DNS-Spezifikation, eingeführt 1987, als die Netzwerklatenz hoch war, die Verbindungen sporadisch waren und eine rekursive Abfrage bis zu 30 Sekunden dauern konnte, wenn sie nicht sogar ganz ausfiel.
- (0 ms) Der Browser fragt den lokalen DNS-Resolver (auf demselben Computer) ab, wo example.com ist
- (1 ms) lokaler DNS-Resolver hat Ergebnis im Cache, liefert
1.2.3.4
- Browser sendet
GET / HTTP/1.1
fürBeispiel.com.
an1.2.3.4:80
- Webserver, der auf
1.2.3.4:80
sucht seine Konfiguration im Speicher nach, findet eine Übereinstimmung, entsprechend Indexdateiund serviert es unter einerHTTP/1.1 200 OK
Antwort - Browser rendert Ihre Webseite
Da eine DNS-Antwort auf demselben Computer, der die Seite anfordert, im Speicher erfolgt, werden alle weiteren DNS-Schritte übersprungen, was zu einer DNS-Antwortzeit von 1 ms führt.