Pregunta

Imagina que un usuario sentado en una Ethernet conectados a la PC.Él tiene un navegador abierto.Que tipos "www.google.com" en la barra de direcciones y golpea a entrar.

Ahora dime lo que el primer paquete que aparecen en la Ethernet.

He encontrado esta pregunta aquí: Preguntas de la entrevista en la Programación de la cavidad y Multi-Threading

Como no soy un experto en redes, me gustaría saber la respuesta (yo supongo que es "depende" ;) ).

Con una herramienta como Wireshark, yo obviamente se pueden comprobar mis propios equipos comportamiento.Me gustaría saber si los paquetes veo (por ejemplo,ARP, DNS, VRRP) son los mismos en cada configuración de ethernet (dependiente del sistema operativo?el conductor?el navegador, incluso :)?) y cuales son las condiciones en las cuales aparecen.Estar en la capa de enlace de datos, es tal vez, incluso, dependiente de la física de la red (conectado a un hub/switch/router)?

¿Fue útil?

Solución

Las respuestas que hablan sobre el uso de ARP para encontrar el servidor DNS son generalmente mal.

En particular, la resolución de direcciones IP para las direcciones IP fuera de la red es no hacer usando ARP, y no es responsabilidad del router para responder a una consulta de tales ARP.

fuera de la red de enrutamiento se realiza por la máquina cliente saber qué direcciones IP están en las subredes locales a los que está conectado. Si la dirección IP solicitada no es local, entonces la máquina cliente se refiere a su tabla de enrutamiento para averiguar qué puerta de enlace para enviar el paquete a.

Por lo tanto, en la mayoría de casos el primero paquete enviado a cabo será una petición ARP para encontrar la dirección MAC de la puerta de enlace predeterminada, si no es que ya están en la caché ARP.

Sólo entonces puede enviar la consulta DNS a través de la puerta de enlace. En este caso, el paquete se envía a la dirección IP del servidor DNS en el campo de destino IP, pero con la dirección MAC de la puerta de entrada en el paquete de Ethernet.

Otros consejos

Siempre se puede descargar Wireshark y echar un vistazo.


A pesar de echar a perder la diversión.

Si se asume, la dirección IP de la máquina no se almacena en caché y la dirección MAC del servidor DNS no se almacena en caché, lo primero que se enviará será una emisión ARP mensaje tratando de averiguar la dirección MAC del servidor DNS (que el router responderá a con su propia dirección) .

A continuación, el nombre de host se resolverá mediante DNS. A continuación, la dirección IP devuelta será resuelta mediante ARP (de nuevo el router responde con su propia dirección), y finalmente, en realidad se enviará el mensaje HTTP.

En realidad, depende de una variedad de condiciones iniciales que se dejan sin especificar.

  1. Suponiendo que el PC se está ejecutando un sistema operativo que contiene un local de almacenamiento en caché de DNS de resolución (la mía), la primera cosa que sucede antes de que los paquetes que se envían es se busca en la caché para una dirección IP.Esto es complicado, porque "www.google.com" no es un nombre de dominio totalmente cualificado, es decir,falta el punto final, por lo que la resolución DNS aceptar los registros ya en su caché que coincidan con su búsqueda de dominio de la primera lista.Por ejemplo, si su dominio de búsqueda de la lista es "example.com." seguido por "yoyodyne.com". luego en caché de los recursos de la coincidencia de los nombres "www.google.com.example.com." "www.google.com.yoyodyne.com." y por último "www.google.com." será utilizado si está disponible.Tenga en cuenta también:si el navegador web es una de las más populares, y la PC está funcionando razonablemente sistema operativo actual, y el host tiene al menos una interfaz de red con un alcance global de direcciones IPv6 asignadas (y el host en una red donde www.google.com ha AAAA registros en el DNS de horizonte), a continuación, la dirección remota del servidor puede ser IPv6 no IPv4.Esto será importante más adelante.

  2. Si el control remoto de la dirección de la web de Google servidor localmente en caché de DNS, y la ARP/ND6 caché contiene una entrada para la dirección IPv4/IPv6 (respectivamente) de un router por defecto, entonces el primer paquete transmitido será un paquete SYN TCP procedente de la dirección de la interfaz conectado al router y destinado para la caché remota dirección IPv4/IPv6.Alternativamente, el router por defecto podría ser accesible a través de algún tipo de capa 2 o capa 3 del túnel, en cuyo caso, el paquete SYN será debidamente encapsulado.

  3. Si el control remoto de la dirección de la web de Google servidor no localmente en caché, el anfitrión de primera necesidad para la consulta para la Una y/o registros AAAA en el dominio DNS de la lista de búsqueda en secuencia hasta que se obtiene una respuesta positiva.Si el primer DNS resolver la dirección del servidor en la configuración de resolución es en uno de los locales de subred IPv4 rangos, o en un local adjunto prefijo IPv6 con el L=1 bit se establece en el anuncio de enrutador, y la ARP/ND6 caché ya contiene una entrada para la dirección en cuestión, entonces, el primer paquete que el host de envío es directo consulta DNS para un registro o Un registro AAAA coincidencia que el primer nombre de dominio completo en el dominio de la lista de búsqueda.Alternativamente, si el primer servidor DNS no es direccionable en el enlace, y un router por defecto tiene un ARP/ND6 entrada de la caché ya, entonces la consulta DNS paquete será enviado al router por defecto para avanzar para el servidor DNS.

  4. En el caso de que el local en el enlace servidor DNS o un enrutador predeterminado (respectivamente, como en el caso anterior, puede ser) no tiene ninguna entrada en el ARP/ND6 caché, el primer paquete que el host envía una solicitud de ARP o un ICMP6 de solicitud de vecino por la dirección correspondiente.

Oh, pero espera...es aún más horrible.Hay enrevesado raros los casos extremos en que el primer paquete que el host envía podría ser un LLMNR consulta, un IKE iniciación, o...o...o...¿cuánto realmente se preocupan por todo esto, buckaroo?

  

Depende

En eso tienes razón. P.ej. no el caché DNS local contiene la dirección? Si no, entonces una búsqueda de DNS es probable que sea lo primero.

Si el nombre de host no está en la caché DNS ni en el archivo hosts, primer paquete irá a DNS.

De lo contrario, el primer paquete será HTTP GET.

Bueno, lo que intenta hacer, lo primero que sucede es algún protocolo Ethernet datos relacionados. En particular, los adaptadores Ethernet tienen que decidir si el bus Ethernet está disponible (por lo que hay un poco de detección de colisiones que tienen lugar aquí)

Es difícil responder a su pregunta, ya que depende mucho del tipo de red Ethernet que está utilizando. Más información sobre la transmisión de Ethernet se puede encontrar aquí y aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top