Pergunta

Imagine um usuário sentado em um PC Ethernet-conectado. Ele tem um aberto browser. Ele digita "www.google.com" na barra de endereço e acessos entrar.

Agora me diga o que o primeiro pacote para aparecer na Ethernet é.

Eu encontrei esta pergunta aqui: no soquete de programação e multi -Threading

Como eu não sou um especialista em redes, eu gostaria de ouvir a resposta (eu suponho que é "Depende";)).

Com uma ferramenta como o Wireshark, posso, obviamente, verificar o meu próprio comportamento computadores. Eu gostaria de saber se os pacotes que eu vejo (por exemplo, ARP, DNS, VRRP) são os mesmos em cada configuração ethernet (é dependente do sistema operacional? O motorista? O navegador mesmo :)?) E quais são as condições em que aparecem. Sendo sobre a camada de ligação de dados, que é talvez ainda dependentes da rede física (ligado a um concentrador / interruptor / router)?

Foi útil?

Solução

As respostas que falar sobre o uso de ARP para encontrar o servidor DNS são geralmente errado.

Em particular, a resolução de endereços IP para endereços IP off-net é não feito utilizando ARP, e não é responsabilidade do roteador para responder a tal consulta ARP.

roteamento Off-net é feito pelo cliente máquina de saber quais endereços IP estão em sub-redes locais ao qual está conectado. Se o endereço IP solicitado não é local, em seguida, a máquina cliente refere-se a sua tabela de roteamento para descobrir qual porta de entrada para enviar o pacote para.

Assim, na maioria das circunstâncias o início pacote enviado para fora será um pedido ARP para encontrar o endereço MAC do gateway padrão, se não é já no cache ARP.

Só então ele pode enviar a consulta DNS através do gateway. Neste caso, o pacote é enviado com o endereço IP do servidor de DNS no campo IP de destino, mas com o endereço MAC do gateway no ethernet pacotes.

Outras dicas

Você sempre pode baixar wireshark e dar uma olhada.


Apesar da estragar a diversão.

Assumindo, o endereço IP do host não é armazenada em cache, eo endereço MAC do servidor de DNS não está em cache, a primeira coisa que será enviado será uma transmissão ARP mensagem tentando descobrir o endereço MAC do servidor de DNS (que o roteador irá responder com a sua própria endereço) .

Em seguida, o nome do host será resolvido usando DNS. Então o endereço IP retornado será resolvido usando ARP (novamente o roteador responderá com seu próprio endereço) e, finalmente, a mensagem HTTP serão realmente enviada.

Na verdade, isso depende de uma variedade de condições iniciais que você deixou indeterminado.

  1. Assumindo que o PC está executando um sistema operacional que contém um local de resolvedor cache DNS (mina faz), a primeira coisa que acontece antes de quaisquer pacotes são enviados é o cache é procurado para um endereço IP. Isso é complicado, porque "www.google.com" não é um nome de domínio totalmente qualificado, ou seja, está faltando o ponto à direita, de modo que o resolvedor DNS aceitará quaisquer registros já em seu cache que correspondam a sua lista de domínio de pesquisa em primeiro lugar. Por exemplo, se a sua lista de pesquisa de domínio é "example.com". seguido por "yoyodyne.com." armazenadas em cache recursos que correspondem aos nomes "www.google.com.example.com." "Www.google.com.yoyodyne.com." e, finalmente, "www.google.com". será usado se estiver disponível. Além disso, note: se o navegador web é um dos mais populares, e o PC está executando um sistema operacional razoavelmente atual, eo anfitrião tem pelo menos uma interface de rede com um escopo de endereço global IPv6 atribuído (e o host estiver em uma rede onde www.google.com tem registros AAAA em seu horizonte DNS), então o endereço remoto do servidor pode ser IPv6 não IPv4. Isto será importante mais tarde.

  2. Se o endereço remoto do servidor web Google estava localmente em cache no DNS, eo cache ARP / ND6 contém uma entrada para o endereço IPv4 / IPv6 (respectivamente) de um roteador padrão, então a vontade de pacotes transmitidos primeiramente ser um pacote TCP SYN originada a partir do endereço de interface conectado ao roteador e destinado para o endereço remoto IPv4 / IPv6 em cache. Alternativamente, o router predefinido poderia ser acessível através de algum tipo de camada 2 ou camada 3-túnel, em cujo caso, o pacote SYN será adequadamente encapsulado.

  3. Se o endereço remoto do servidor web Google estava não em cache local, em seguida, o anfitrião terá primeiro de consulta para os e ou registros A / AAAA na lista de pesquisa de domínio DNS em sequência até que ele recebe uma resposta positiva. Se o primeiro DNS resolver endereço do servidor na configuração resolver é em um dos intervalos de locais de sub-rede IPv4, ou em um prefixo IPv6 ligado localmente com o conjunto de bits L = 1 no anúncio de router, e o cache ARP / ND6 já contém uma entrada para o endereço em questão, em seguida, o primeiro pacote do host irá enviar uma consulta DNS direta para qualquer um registro a ou um registro AAAA correspondente ao nome de domínio em primeiro lugar totalmente qualificado na lista de pesquisa de domínio. Alternativamente, se o primeiro servidor DNS não é endereçável on-link, e um roteador padrão tem já uma entrada de cache ARP / ND6, em seguida, o pacote de consulta DNS será enviado para o roteador padrão de transmitir para o servidor DNS.

  4. No caso do servidor DNS local on-link ou um roteador padrão (respectivamente, conforme o caso acima pode ser) não tem nenhuma entrada no cache ARP / ND6, em seguida, o primeiro pacote de acolhimento enviará ou é um ARP pedido ou uma solicitação ICMP6 vizinho para o endereço correspondente.

Oh, mas espera ... é ainda mais horrível. Há casos extremos estranhas tweaky onde o primeiro pacote do host envia pode ser uma consulta LLMNR, uma iniciação IKE, ou ... ou ... ou ... o quanto você realmente se preocupam com tudo isso, buckaroo?

Depende

tem esse direito. Por exemplo. faz o cache DNS local conter o endereço? Se não, então uma pesquisa de DNS é provável que seja a primeira coisa.

Se o nome do host não está em cache DNS nem no arquivo hosts, primeiro pacote vai para o DNS.

Caso contrário, o primeiro pacote será HTTP GET.

Bem, o que você tentar fazer, a primeira coisa que acontecer é algum protocolo Ethernet dados relacionados. Notavelmente, Ethernet adaptadores tem que decidir se o ônibus Ethernet está disponível (por isso há alguns detecção de colisão tomada lugar aqui)

É difícil responder a sua pergunta porque depende muito do tipo de rede ethernet que você está usando. Mais informações sobre a transmissão Ethernet pode ser encontrada aqui e aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top