Por que o IP localhost 127.0.0.1?
Geeks em todo o mundo conhecem seu host local como 127.0.0.1, mas por que esse endereço específico, de todos os endereços disponíveis, é reservado para o host local? Leia para se aprofundar na história dos anfitriões locais.
Imagem por GMPhoenix; disponível como papel de parede aqui.
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas da comunidade..
A questão
O leitor do SuperUser, Roee Adler, curioso sobre o IP local do host, colocou a seguinte pergunta para a comunidade:
Eu me perguntei qual é a origem da decisão de fazer
localhost
endereço IP127.0.0.1
. Qual é o significado de127
? qual é o significado de0.0.1
?
Qual é o significado, de fato? Embora seja possível viver toda a sua existência nerd sem saber a resposta para essas perguntas, estamos prontos para nos aprofundar.
As respostas
Diversos colaboradores contribuíram para responder à pergunta de Roee, cada uma de suas contribuições ajuda a esclarecer como o 127.0.0.1 é o lugar que todos chamamos de lar. John T escreve:
127 é o último número de rede em uma rede de classe A com uma máscara de sub-rede de
255.0.0.0
.127.0.0.1
é o primeiro endereço atribuível na sub-rede.127.0.0.0
não pode ser usado porque esse seria o número do fio. Mas usar qualquer outro número para a parte do host deve funcionar bem e voltar a usar127.0.0.1
. Você pode tentar você mesmo fazendo ping127.1.1.1
se você quiser. Por que eles esperaram até o último número de rede para implementar isso? Eu não acho que está documentado.
Hyperslug faz algumas investigações de arquivo, pesquisando antigos memorandos sobre o assunto:
Menção mais antiga que eu posso encontrar sobre a tarefa de 127 como loopback é novembro de 1986 RFC 990 de Reynolds e Postel:
O endereço zero deve ser interpretado como significando "isto", como em "esta rede".
Por exemplo, o endereço 0.0.0.37 poderia ser interpretado como o host 37 nesta rede.
…
O nero de rede de classe A 127 recebe a funo de? Loopback ?, ou seja, um datagrama enviado por um protocolo de nel superior para um endere de rede 127 deve fazer o loop de volta dentro do hospedeiro. Nenhum datagrama “enviado” para um endereço de rede deve aparecer em qualquer rede em qualquer lugar.
Já em setembro de 1981, as RFC 790, 0 e 127 já estavam reservadas:
000.rrr.rrr.rrr Reservado [JBP]… 127.rrr.rrr.rrr Reservado [JBP]0 e 127 foram as únicas redes Classe A reservadas em 1981. 0 foi usado para apontar para um host específico, de modo que 127 foram deixados para loopback.
Eu sei que isso não responde a pergunta, mas isso é o mais antigo possível. Pode ter sido mais sensato escolher 1.0.0.0 para loopback, mas isso já foi dado à BBN Packet Radio Network.
Enquanto todos nós sabemos e amamos 127.0.0.1 como o localhost, vale a pena notar que não será o localhost para sempre. 127.0.0.1 é como o host local é designado nas comunicações IPv4 e, como o IPv6 assume lentamente, ele será designado por um número muito mais intuitivo: 0: 0: 0: 0: 0: 0: 0: 1.
Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira os tópicos de discussão completos aqui.