Ao configurar seu computador para se conectar à internet, você (ou o software instalado para se conectar ao seu provedor) precisa informar ao computador qual o servidor que deve ser usado para a conversão de nomes de domínios em endereços de IP. Em alguns sistemas, o DNS é mantido na máquina quando se conecta ao provedor; em outros, é um processo um pouco mais complicado. Se estiver trabalhando com o sistema Windows 95/98/ME, você pode visualizar o endereço de seu servidor atual com o comando WINIPCFG.EXE (IPCONFIG para Windows 2000/XP). Em um computador com sistema UNIX, digite nslookup e o nome de sua máquina. Qualquer programa que necessite se conectar a um servidor para informar um nome de domínio sabe com qual servidor esta conexão deve ser feita, pois o endereço de IP está presente no sistema operacional.
O browser, então, contata o servidor e informa: “Eu preciso que você converta o nome de um domínio em um endereço de IP para mim.” Se você digitar em seu browser, "www.hsw.com.br", por exemplo, ele converte esta URL em um endereço de IP. O browser entregará "www.hsw.com.br" ao seu servidor padrão e pedirá para que este a converta.
O servidor talvez já conheça o endereço de IP para www.hsw.com.br. Este será o caso quando uma consulta recente a este mesmo site tiver acontecido (servidores utilizam o cache de endereços de IP para acelerar o processo). Neste caso, o servidor retorna o endereço de IP imediatamente.
Vamos supor que o servidor precisa começar o processo do início. O servidor iniciará uma busca pelo endereço de IP contatando um dos servidores raiz, que reconhecem os endereços de IP de todos os servidores que manejam os domínios principais. Seu servidor perguntará ao raiz sobre o www.hsw.com.br e este irá dizer (presumindo nenhum cache): “desconheço o endereço de IP para este domínio, mas aqui está um endereço de IP para os servidores COM.” Obviamente, estes servidores de raiz são vitais para todo o processo, então:
; This file holds the information on root name servers ; needed to initialize cache of Internet domain name ; servers (e.g. reference this file in the ; "cache .O formato é um pouco estranho, mas basicamente mostra que a lista possui endereços de IP de 13 diferentes servidores raiz." configuration file of BIND domain : name servers). ; ; This file is made available by InterNIC registration ; services under anonymous FTP as ; file /domain/named.root ; on server FTP.RS.INTERNIC.NET ; -OR- under Gopher at RS.INTERNIC.NET ; under menu InterNIC Registration Services (NSI) ; submenu InterNIC Registration Archives ; file named.root ; ; last update: Aug 22, 1997 ; related version of root zone: 1997082200 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG ; . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; temporarily housed at NSI (InterNIC) ; . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ; ; housed in LINX, operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; temporarily housed at ISI (IANA) ; . 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; housed in Japan, operated by WIDE ; . 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File
O servidor raiz sabe os endereços de IP de milhares de servidores,responsáveis pelos principais domínios. Ele retorna ao seu servidor o endereço de IP de um servidor do domínio COM. O seu servidor, então, envia ao servidor COM uma requisição pelo endereço de IP dos servidores que executam o domínio HOWSTUFFWORKS.COM. Ao receber esta informação, o seu servidor entra em contato com os servidores do HOWSTUFFWORKS.COM e requisita o endereço de IP para o site www.hsw.com.br. Ao encontrar, este endereço de IP retorna ao seu servidor, que o repassa ao seu browser e visualiza a página da web.
Um dos principais fatores para fazer isto funcionar é a redundância. Existem vários servidores em todos os níveis: se um deles falhar, outros podem assumir as requisições. Há, por exemplo, três diferentes máquinas responsáveis por requisições aos servidores do HOWSTUFFWORKS.COM. As três máquinas precisariam falhar para ocorrer um problema.
Outro fator importante é a execução do cache. Quando um servidor executa uma requisição, ele cria um cache de todos os endereços de IP que recebe. Após ter feito a requisição a um servidor raiz para qualquer domínio COM, ele sabe o endereço de IP do servidor responsável por este domínio, então não precisa mais incomodar os servidores raiz para adquirir esta informação. Os servidores podem fazer isto em todas as requisições, o que mantém as coisas menos confusas.
No entanto, os servidores não armazenam estas informações para sempre. Esta ordenação possui um componente chamado Tempo de Vida (TTL - Time To Live), que controla o tempo que um servidor armazenará essa informação. Ao receber um endereço de IP, o servidor também recebe o TTL. O servidor armazena este endereço de IP neste período de tempo (varia de minutos até dias) e então descarta a informação. O TTL permite que as mudanças nos servidores se propaguem, mas nem todos os servidores respeitam o TTL que recebem. Quando o HowStuffWorks migrou para novos servidores, foi preciso três semanas para a transição difundir-se pela rede. Colocamos um pequeno aviso que dizia “novo servidor” no canto superior esquerdo de nossa página, para que as pessoas soubessem se estavam visualizando o novo ou o antigo servidor durante a transição.