Kann mich jemand zu Informationen über das genaue Verhalten des Browsers weiterleiten, wenn der Browser mehrere A-Datensätze für einen bestimmten Hostnamen (z. B. ip1 und ip2) erhält und auf einen von ihnen nicht zugegriffen werden kann?
Ich interessiere mich für GENAUE Details, wie (aber nicht beschränkt auf):
- Bekommt der Browser 2 IPs vom Betriebssystem oder nur eine?
- Welche IP wird der Browser zuerst versuchen (zufällig oder immer die erste)? Angenommen, der Browser wurde mit der fehlgeschlagenen IP1 gestartet
- Wie lange wird der Browser ip1 ausprobieren?
- Wenn der Benutzer "Stopp" drückt, während er auf ip1 wartet, und dann auf "Aktualisieren" klickt
- Welche IP wird der Browser versuchen?
- Was passiert, wenn das Zeitlimit überschritten wird - wird es IP2 versuchen oder einen Fehler geben? (Und wenn Fehler, welche IP wird Browser versuchen, wenn Benutzer auf Aktualisieren klickt).
- Wenn ein Benutzer auf Aktualisieren klickt, versucht ein Browser eine neue DNS-Suche?
Nehmen wir nun an, der Browser hat zuerst versucht, IP2 zu verwenden.
- Verwendet der Browser für die nächste Seitenanforderung weiterhin ip2 oder wechselt er zufällig die ips?
- Wie lange behalten Browser IPs in ihrem Cache?
- Wenn Browser eine neue DNS-Anfrage senden und die gleichen IP-Adressen erhalten, wird sie dann weiterhin dieselbe IP verwenden, von der bekannt ist, dass sie funktioniert, oder der Prozess beginnt von vorne und versucht möglicherweise eine der beiden?
Natürlich kann alles browserabhängig sein und auch zwischen Versionen und Plattformen variieren. Ich würde mich über ein Maximum an Details freuen.
Der Zweck davon - Ich versuche zu verstehen, was genau Benutzer erleben werden, wenn Round-Robin-DNS verwendet wird und einer der Hosts ausfällt.
Bitte, ich frage NICHT, wie schlecht der DNS-Lastenausgleich ist, und bitte antworten Sie nicht mit "Nicht tun", "Es ist eine schlechte Idee", "Sie brauchen Heartbeat / Proxy / BGP / was auch immer" und so weiter.
quelle
Antworten:
Immerhin musste ich die "Forschung" selbst machen. Hier ist das Verhalten von Chromium (Version 12.0.742.112) (läuft unter Ubuntu 11.04):
Im Allgemeinen funktioniert es so: Versuchen Sie es mit der 1. IP. Versuchen Sie nach Ablauf der Zeit (nach 189 Sek.) Die 2. IP. Keine Fehlermeldungen, bis alle ips versucht haben. Die nächste Verbindung wird wieder von der ersten IP gestartet (auch wenn sie erst vor einer Sekunde fehlgeschlagen ist und die zweite IP funktioniert hat - Browser ist das egal)
Eine interessante Sache: Der TCP-Verbindungsversuch wird nicht abgebrochen, wenn der Benutzer auf Abbrechen klickt - dh wenn ich auf Abbrechen drücke und nach 60 Sekunden auf Wiederholen klicken, wird die Seite in 130 Sekunden angezeigt (189 vom ersten Versuch an). Wenn ich jedoch auf Abbrechen klicke und auf klicke refresh nach 190 Sekunden, wird der Prozess von Anfang an beginnen.
Zu den Artikeln in der Originalfrage:
Nicht getestet. In diesem Blog wird angegeben , dass Chrome DNS nur für bis zu 1 Minute zwischenspeichert, wenn wir uns chrome: // net-internals / # dns: ansehen.
Kapazität: 100 Lebensdauer (ms) für erfolgreiche Einträge: 60000 Lebensdauer (ms) für Fehlereinträge: 0
Wenn die erste IP funktioniert, ist der Prozess derselbe und beim ersten Versuch immer erfolgreich.
quelle
Anstatt den Leuten zu sagen, was Sie nicht wollen, warum nicht erklären, was Sie erreichen wollen?
Wenn Sie nur nach bekannten Daten suchen, untersuchen Sie sich selbst oder lesen Sie die Dokumentation des Browsers (es gibt Hunderte), über den Sie sprechen.
Es kann Ihnen jedoch helfen zu wissen, dass dies nichts mit DNS zu tun hat.
Wenn ein Browser eine Anfrage erhält, prüft er zunächst in seinen verschiedenen Caches, ob die URL oder, falls nicht, der Hostname bereits vorhanden ist.
Wenn nicht, wird der Systemauflöser getroffen, um den Hostnamen aufzulösen.
Wenn die IP, die es zurückerhält, nicht antwortet, wird dies mit Sicherheit intern als negatives Suchergebnis zwischengespeichert. Wenn Sie also dieselbe URL erneut direkt anfordern, in der Hoffnung, einen anderen A-Datensatz dafür zu finden, hat dies wahrscheinlich keinen Zweck, da dies der Fall ist habe das Hostnamen-Ergebnis zusammen mit dem negativen IP-Ergebnis gespeichert.
Oder Sie könnten weitere Informationen bereitstellen.
EDIT: Ich sehe, Sie haben einige Informationen zwischen all den anspruchsvollen und klugen Arbeiten geliefert.
Sehr gut:
Sie scheinen auch nicht zu wissen, dass DNS-Einträge überall zwischengespeichert werden, insbesondere auf Clients. Diese Datensätze verfallen, je nachdem, was der Domaininhaber beabsichtigt hat oder welche Caches zwischen Ihnen und ihm konfiguriert wurden. Eine Stunde bis ein Tag ist üblich. Erwarten Sie also nicht, dass der Resolver eine weitere DNS-Abfrage ausführt, wenn Sie wie ein Verrückter auf Aktualisieren klicken.
quelle