В настоящее время я работаю над модулем по работе в сети, и некоторые курсовые работы включали пинг различных веб-сайтов, чтобы исследовать круговую поездку. Я заметил кое-что интересное, делая это, оставив меня озадаченным и ища объяснения. Если я ping -4 google.com
, RTT значительно отличается от того, как я ping -4 www.google.com
. Что я нахожу особенно странным, так это то, что время не бывает ни быстрее, ни медленнее; иногда это быстрее, а иногда медленнее. Почему это происходит?
1 ответ
Ответ на этот вопрос очень прост: одно имя!= тот же хост. Google использует балансировку нагрузки на основе DNS. Просто используйте правильный DNS-клиент, чтобы увидеть, что происходит:
$ dig www.google.com @8.8.4.4
; <<>> DiG 9.11.1-P3 <<>> www.google.com @8.8.4.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19808
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 45 IN A 172.217.21.228
;; Query time: 13 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Sat Oct 28 22:19:15 CEST 2017
;; MSG SIZE rcvd: 59
Время жизни (TTL) ответа очень мало: всего 45 секунд. Конечно, после этого времени появится другой IP-адрес:
$ dig www.google.com @8.8.4.4
; <<>> DiG 9.11.1-P3 <<>> www.google.com @8.8.4.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47841
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 299 IN A 216.58.206.4
;; Query time: 14 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Sat Oct 28 22:19:40 CEST 2017
;; MSG SIZE rcvd: 59
Опять же, TTL очень низкий: 5 минут. С таким коротким TTL вы, скорее всего, будете тестировать материал дольше, чем требуется для истечения срока действия кэшированных ответов DNS.
Это, конечно, верно и для запросов с www.
или без, или, возможно, других поддоменов, таких как maps.
или mail.
или что угодно. С ними вы, скорее всего, получите разные ответы, потому что вы спрашиваете разные имена.