Społeczność Golang udostępnia stronę demonstracyjną HTTP / 2, aby porównać wydajność pomiędzy HTTP 1.1 i HTTP / 2.
Możemy wybrać różne latency
, np. Opóźnienie 0s, opóźnienie 30 ms, opóźnienie 200 ms.
- Czy
latency
terminologia informatyczna? - Co to znaczy?
- Jaka jest różnica między
latency
iRound Trip Time
?
Odpowiedzi:
Opóźnienie sieci to czas, jaki zajmuje wysłanie czegoś z hosta źródłowego do hosta docelowego. Opóźnienie składa się z wielu elementów, a opóźnienie może być różne od A do B i od B do A.
Czas podróży w obie strony to czas potrzebny na przesłanie żądania ze źródła do miejsca docelowego oraz na odpowiedź w celu powrotu do pierwotnego źródła. Zasadniczo opóźnienie w każdym kierunku plus czas przetwarzania.
źródło
„Opóźnienie” może oznaczać różne rzeczy. Ogólnie rzecz biorąc, jest to pewnego rodzaju opóźnienie - opóźnienie aplikacji to czas reakcji aplikacji (od wejścia do wyjścia), opóźnienie sieci opóźnienie uzyskania pakietu z punktu A do B itd.
„Czas podróży w obie strony” jest mniej lub bardziej dobrze zdefiniowany jako opóźnienie sieci od punktu A do B iz powrotem. Jest to suma wszystkich opóźnień w kodowaniu, kolejkowaniu, przetwarzaniu, dekodowaniu i propagacji w obu kierunkach. Zasadniczo jest to opóźnienie, kiedy A może oczekiwać odpowiedzi od B na żądanie, które wymaga bardzo niewielkiego przetworzenia.
Bardzo często czas podróży w obie strony jest porównywany z czasem pingowania między A i B. Czas pingowania może zapewnić dobrą wartość dla efektywnego RTT, ale może to być również coś innego, ze względu na potencjalne różnice w routingu i przetwarzaniu między używanymi pakietami ICMP przez ping i te dla faktycznie używanych pakietów protokołów.
W twoim przypadku „opóźnienie” oznacza sztuczne opóźnienie w serwerze HTTP, które dodaje się do już obecnych opóźnień. Jeśli więc masz efektywny czas podróży w obie strony na serwer wynoszący 50 ms i wybierzesz „opóźnienie 200 ms”, możesz oczekiwać odpowiedzi na żądanie w ciągu 250 ms (plus narzut związany z przetwarzaniem na serwerze).
źródło
Aby dodać trochę tła do innych odpowiedzi, należy pamiętać, że opóźnienia sieciowe mogą się znacznie różnić i wpływać na wrażenia użytkownika.
Jednym z najbardziej oczywistych źródeł opóźnień sieci jest odległość: sygnały przenoszące dane przemieszczają się mniej więcej z prędkością światła, więc im dłuższa odległość między klientem a serwerem, tym większe opóźnienie. Komunikacja między dwoma komputerami połączonymi kablem Ethernet zajmie kilka milisekund. Komunikacja z serwerem za oceanem zajmie dziesiątki lub setki milisekund. Komunikacja przez satelitę geostacjonarną zajmie setki milisekund.
Jest to wyraźnie widoczne podczas wykonywania polecenia ping, który mierzy czas podróży w obie strony, który w tym przypadku jest bardzo zbliżony do sumy opóźnienia w obu kierunkach.
Kilka innych rzeczy, które mają wpływ na opóźnienie:
Opóźnienie może mieć duży wpływ na wrażenia użytkownika (lub nie):
Nawet w przypadkach nieinteraktywnych opóźnienie może mieć wpływ (co ilustruje przykład PO): gdy jest wiele małych plików do pobrania, opóźnienie może spowodować dłuższy całkowity czas ładowania, jeśli protokół będzie musiał czekać na jeden plik do całkowitego pobrania przed rozpoczęciem pobierania następnego, w porównaniu z protokołem, który umożliwi wysłanie wielu żądań na raz, a odpowiedzi będą wysyłane bez przerwy między kolejnymi plikami.
źródło
Czas podróży w obie strony (RTT) to czas, jaki zajmuje pakietowi przejście z wysyłającego punktu końcowego do odbierającego punktu końcowego iz powrotem. Istnieje wiele czynników, które wpływają na RTT, w tym opóźnienie propagacji, opóźnienie przetwarzania, opóźnienie kolejkowania i opóźnienie kodowania. Czynniki te są zasadniczo stałe dla danej pary komunikujących się punktów końcowych. Ponadto przeciążenie sieci może dodać element dynamiczny do RTT.
Czy RTT i ping są takie same?
Czas podróży w obie strony i czas pingowania są często uważane za synonimy. Chociaż czas pingowania może zapewnić dobre oszacowanie RTT, różni się tym, że większość testów ping jest wykonywana w ramach protokołu transportowego przy użyciu pakietów ICMP. Natomiast RTT jest mierzony na warstwie aplikacji i obejmuje dodatkowe opóźnienie przetwarzania generowane przez protokoły i aplikacje wyższego poziomu (np. HTTPS).
Co z RTT i opóźnieniami sieci?
Opóźnienie sieci jest ściśle powiązane, ale różni się od RTT. Opóźnienie to czas, jaki zajmuje pakietowi przejście od punktu końcowego wysyłającego do punktu końcowego odbierającego. Wiele czynników może wpływać na opóźnienie usługi. Opóźnienie nie jest wyraźnie równe połowie RTT, ponieważ opóźnienie może być asymetryczne między dowolnymi dwoma danymi punktami końcowymi. RTT obejmuje opóźnienie przetwarzania w punkcie końcowym echa.
Więcej informacji znajdziesz w tym blogu na RTT .
źródło