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?).