Como os aplicativos clientes sabem usar o IPv4 ou o IPv6?

16

Como os servidores / computadores / usuários / aplicativos sabem solicitar um recurso pela Internet com um endereço IPv6 e um endereço IPv4?

    
por Bobby S 22.03.2012 / 19:24

3 respostas

19

A primeira coisa que um cliente determina é quais protocolos estão disponíveis. Vamos supor que o IPv4 e o IPv6 estejam disponíveis (caso contrário, a resposta a qual protocolo escolher será trivial;) Ele fará uma pesquisa de DNS para os registros A (endereço IPv4) e AAAA (endereço IPv6). Se apenas um tipo for retornado, ele usará isso. Se os endereços IPv4 e IPv6 forem retornados, o comportamento padrão dependerá um pouco do software cliente. Normalmente, o RFC 3484 é usado.

De acordo com os padrões oficiais, ele deve preferir o IPv6, mas como há algumas (0,01% ou menos) máquinas que configuraram mal o IPv6, os clientes ficaram mais inteligentes. A maioria dos navegadores hoje em dia tentará se conectar através do IPv6, mas se eles não conseguirem uma conexão ativa dentro de 300 milissegundos, eles tentarão se conectar ao IPv4 em paralelo. A primeira conexão que é bem sucedida é então usada. Isso é abordado na RFC da Happy Eyeballs .

A Apple mudou isso no Lion. Lá, o sistema operacional realmente controla o desempenho de todas as conexões e, se determinar que a conexão IPv4 tem latência menor do que a conexão IPv6, começará a preferir o IPv4. Mas se a conexão IPv4 ficar mais lenta, ela poderá voltar para o IPv6. Dê uma olhada no este tópico da lista de discussão para uma discussão sobre esse recurso.

Para o usuário, não importa se o IPv4 ou IPv6 é usado, desde que funcione. O IPv4 e o IPv6 devem ser fornecidos igualmente bem. Os sites devem funcionar exatamente da mesma forma no IPv4 do que no IPv6, etc.

O IPv4 permanecerá em uso por muitos anos. Ele se tornará inutilizável quando novos serviços (sites, jogos, etc.) forem implantados apenas no IPv6, porque não haverá mais endereços IPv4 a serem usados. E, em algum momento, tudo o que funciona no IPv4 também funcionará no IPv6. Nesse momento, desabilitar o IPv4 economizará tempo e dinheiro (por que manter dois protocolos quando um é suficiente?).

    
por 22.03.2012 / 20:10
2

O passo intermediário que está sendo usado agora é conhecido como encapsulamento. Essencialmente, os pacotes IPv6 viajam dentro dos pacotes IPv4 até chegarem a um ponto em que podem ser removidos do encapsulamento IPv4 e enviados para o outro lado em uma rede IPv6 completa. É claro que há muito mais complexidade do que isso, mas o conceito básico por grande é o mesmo em toda a linha.

À medida que mais e mais dispositivos se tornam capazes de IPv6 e as pessoas se familiarizam com o uso dos endereços, o IPv6 aumentará o uso. Eu não acredito (opinião pessoal) que o IPv6 realmente será adotado e verá uma expansão em larga escala no SMB e no mercado pessoal até que o espaço IPv4 se torne uma mercadoria cara.

Em algum momento no futuro relativamente distante em que o IPv6 alimenta uma esmagadora maioria do tráfego, eu pude ver uma reversão do destino para o IPv4, onde o tráfego IPv4 deve ser encapsulado dentro de pacotes IPv6 regulares e corretores de túneis servem um similar (mas invertido) papel devido à falta de atribuições amplas de roteamento / IP IPv4.

    
por 22.03.2012 / 19:34
-2

Acho que você está perguntando como um aplicativo decide como escolher. Do lado do programa, depende da implementação do aplicativo. Se o codificador fizer do IPv6 uma prioridade mais alta que o IPv4, por exemplo, ele primeiro tentará usar getipv6addr (). Se isso for desconfigurado ou falhar, ele tentará usar getaddr (), etc. Com base nisso, o aplicativo enviará a solicitação pelo IPv6 primeiro ou vice-versa.

    
por 11.12.2014 / 11:54

Tags