Warum sind anfängliche Verbindungen immer langsamer

2

Dies ist mir zum ersten Mal aufgefallen, als ich mit Insomnia (HTTP-Clients) einige meiner API-Endpunkte testete.

Die erste Anfrage, die ich an meinen API-Server (und andere) stelle, ist immer 100 ms +, aber sequenzielle Anfragen sind immer sehr schnell, was die Latenz betrifft.

Erstes Anforderungsbild

Zweites Anforderungsbild

Wie ist das möglich? Ich habe versucht, bei jeder Anfrage zufällige Daten zu senden, und dies geschieht immer noch. Vor kurzem habe ich auch von Google vom QUIC-Protokoll gehört, mit dem Handshake-Request-Roundtrips für gängige Server von ~ 3 auf 0 reduziert werden sollen. Dies ist sehr sinnvoll für das, was gerade passiert, aber QUIC wird noch nicht einmal im gesamten Internet eingesetzt.

Kirk122
quelle
2
Ist DNS beteiligt?
Kamil Maciorowski
Haha. Das war's dann. Aber warum dauert DNS 100ms +?
Kirk122
2
Es hängt wirklich von Ihrem Setup ab. Eine mögliche Erklärung (unter Berücksichtigung von DNS) wäre jedoch, dass Ihr Client keinen zwischengespeicherten Eintrag für diesen Server hat. Bevor eine Anfrage gestellt werden kann, muss ein DNS-Lookup durchgeführt werden, um festzustellen, mit welchem ​​Server eine Verbindung hergestellt werden soll. Möglicherweise unterstützen der Server und Ihr Client auch Keep Alive, sodass die Verbindung zwischen Anforderungen möglicherweise nicht geschlossen wird.
Seth
QUIC kann Latenzen reduzieren, jedoch nicht auf Null. Es funktioniert, indem es einen eigenen Mechanismus erstellt, der sich mit udp ähnlich wie tcp verhält und einige der Grenzen des tcp-Protokolls überwindet. Es ist jedoch keine Magie.
Davidgo
Es kann sich auch um die Sitzungsverwaltung auf dem Remote-Endpunkt handeln. Wenn Sie zum ersten Mal eine Verbindung herstellen, werden der Verbindung Ressourcen zugewiesen und Threads gestartet. Danach verwenden Sie nur noch dieselben Ressourcen, bis das Zeitlimit abgelaufen ist und sie freigegeben werden.
Appleoddity

Antworten:

0

Wie bereits in den Kommentaren zu Ihrem ersten Beitrag erwähnt, könnte es sich um DNS handeln, was eine sehr vernünftige Idee hinsichtlich der Ursache der Verzögerung ist.

Es gibt jedoch keine Möglichkeit für uns, die tatsächliche Antwort auf Ihre Frage zu erfahren. Wir wissen nicht, was mit Ihrem Setup los ist , und wir können es auch nicht, ohne Zugriff.

Es gibt ein Tool, mit dem Sie das Problem diagnostizieren können. Fiddler ist ein exzellentes Werkzeug, das ich sehr empfehlen kann. Es kann helfen, webbasierte Probleme zu diagnostizieren. Ich schlage vor, Sie probieren es aus.

Keltari
quelle