-4

Мне просто было любопытно, как «пакеты веб-запросов» перемещаются из моего браузера (как только я набираю www.google.com) на сервер Google и обратно.

Пожалуйста, ответьте мне в двух возможных сценариях; один из них, когда я печатаю www.google.com из моего дома (в котором нет ничего, кроме беспроводного маршрутизатора), а другой - когда я использую свою офисную сеть, где есть коммутаторы, DNS-серверы, шлюзы по умолчанию и прочее.

Насколько я понимаю в офисной сети, запрос поступает с моей машины -> коммутатор -> шлюзы по умолчанию (я полагаю, это маршрутизаторы) -> DNS-серверы -> Центры обработки данных -> веб-сервер ... Я прав?

3 ответа3

4

запрос поступает с моего компьютера -> коммутатор -> шлюзы по умолчанию (я полагаю, это маршрутизаторы) -> DNS-серверы -> Центры обработки данных -> веб-сервер. Я прав?

Нет.

PC -> Ethernet broadcast: ARP-request: 
    "what is ethernet address for IP-address of DNS server?"
DNS-Server: ARP-response: "My Ethernet address is a:b:c:d:e:f"
PC -> DNS: "What is the IP-address of www.google.com?"
DNS-Server -> ISP DNS: "What is the IP-address of www.google.com?"
ISP-DNS -> DNS server 
    "I don't do recursive, do your own work, google.com DNS at 2.3.4.5, 4.5.6.7"
DNS-Server -> 2.3.4.5 "What is the IP-address of www.google.com?"
2.3.4.5 -> DNS-Server "I refuse your connection attempt!"
DNS-Server -> 4.5.6.7 "What is the IP-address of www.google.com?"
4.5.6.7 -> DNS Server 
    "www.google.com is 1.2.3.4; google.com DNS at 4.5.6.7, 3.2.1.3"
DNS-server -> PC "www.google.com is 1.2.3.4"
PC -> Ethernet broadcast: ARP request: 
    "what is ethernet address for IP-address of router?"
Router -> PC: "my ethernet address is d:e:a:d:b:e"
PC -> Router: IP to 1.2.3.4 "get / HTTP1.1; host: www.google.com"
Router -> PC: ICMP redirect: "for 1.2.3.x use router2.internal at 192.168.0.253"
PC -> Ethernet broadcast: ARP-Request: 
    "what is ethernet address for 192.168.0.253?"
Router2 -> PC: "my ethernet address is b:e:e:f:f:o"
PC -> Router2: IP packet for 1.2.3.4 ("get / HTTP1.1; host: www.google.com")
Router2 -> Router3 "1 IP packet  for 1.2.3.4 (...)"
Router3 -> Router4 "3 IP packets for 1.2.3.4 (...)" (he split em)
Router4 -> Router5 "3 IP packets  for 1.2.3.4 (...)"
Router3 -> Router2 "Routing change, line to Router 4 outage, find new route!"
Router5 -> Akamai mirror 
    "{external IP of Router2} sent you 'get / HTTP1.1; host: www.google.com'"
...
etc etc etc etc etc etc etc
(thousands of packets later)
PC .... { hmm, I still need 4 images and two CSS files, can't display page yet ... }
(hundreds of packets later)

Я пропустил сведения о коммутаторе, коллизиях, задержках, дросселировании, повторных передачах, связующем дереве, тайм-аутах, NAT, трехсторонних квитированиях, одновременных постоянных HTTP-соединениях и сотнях других вещей, которые происходят постоянно. Заполнение всех шагов займет тысячи строк (если не десятки или сотни тысяч), как описано выше.

0

Попробуйте выполнить трассировку из командной строки (хотя это только 1 направление, поэтому попадет в пункт назначения, но не вернется). Это не гарантирует, что сработает или предоставит подробную информацию о каждом шаге, но может дать вам представление.

В командной строке (при условии Windows) введите

tracert 8.8.8.8 

8.8.8.8 - это Google DNS

Подробнее о трассировке

0

Вы бросаете много вещей вместе:

Независимо от того, находитесь ли вы дома или на работе, пакет передается между вашим компьютером и сервером через коммутаторы и маршрутизаторы. Конечно, дома эти переключатели и т.д. Могут не находиться внутри ваших стен.

Шлюз по умолчанию - это просто информация о том, какой маршрутизатор использовать, если явно не указан другой маршрут.

DNS-сервер отвечает на дополнительный запрос для поиска адреса серверов, и никакой другой ваш трафик не проходит через DNS.

Центр обработки данных - это просто место, где живут серверы и сетевое оборудование. Так что да, на самом деле вы проходите через центры обработки данных, но они также могут быть установлены в палатке в глубине леса.

Это все для пакетов. Веб-запрос построен поверх чистой сети. Смотрите стандарт HTTP для этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .