Time to Live
TTL é uma sigla do inglês Time to Live, que significa o número de saltos entre máquinas que os pacotes podem demorar numa rede de computadores antes de serem descartados (máximo de 255).[1]
Qualquer roteador está programado para desconectar uma unidade do TTL aos pacotes que o atravessam. Esta é uma forma de evitar que os pacotes permaneçam na rede por tempo infinito, caso o roteamento não esteja a ser feito devidamente, como no caso de looping.[1]
Este valor também é útil no rastreio dos caminhos percorridos pelos pacotes, como faz a ferramenta tracerouting.[1]
Visão geral
O Protocolo original RFC DARPA descreve o TTL como sendo:[2]
O Tempo para Viver (”Time to Live”, em inglês) é um indicação do tempo máximo de vida de um datagrama na internet. Ela é definida pelo remetente do datagrama e diminui nos pontos em que é processada ao longo da rota. Se o tempo chegar a zero antes que o datagrama chegue a seu destino, ele é destruído. O tempo para viver pode ser visualizado como um tempo limite para auto-destruição.[2] (Tradução livre)
Pacotes IP
No Protocolo de Internet, o TTL compõe um campo de 8-bits. No cabeçalho IPv4, o TTL é o 9° octeto de 20. No cabeçalho IPv6, é o 8° octeto de 40. O valor máximo para TTL é 255, sendo equivalente ao valor máximo de um octeto em si. O valor inicial recomendado é de 64.[3][4]
O valor do tempo para viver pode ser visto como o tempo máximo que um datagrama IP pode existir num sistema de internet. O campo TTL é definido pelo remetente do datagrama e é reduzido a cada roteador no caminho para seu destino. Se o campo TTL chegar a zero antes que o datagrama chegue ao seu destino final, o pacote é então descartado e um datagrama ICMP de erro (11 - Tempo Excedido) é enviado de volta ao remetente. O motivo da existência desse campo TTL é evitar que um datagrama sem destino funcional fique circulando para sempre no sistema, sobrecarregado-o com pacotes “imortais”.
Na teoria, dentro do IPv4, o TTL é medido em segundos, porém cada host que passa pelo datagrama deve diminuir o seu TTL em pelo menos uma unidade. Assim, na prática, o TTL é reduzido a cada salto. Para refletir essa prática, o campo foi renomeado para “limite de saltos” no IPv6.
Registros em DNS
Os TTLs também são usados no DNS, onde que eles são definidos por um servidor de nomes autoritativo para um registro específico.[5][6]
Quando um servidor de nomes de cache (recursivo) pede por um registro no servidor de nomes autoritativo, o cache é mantido pelo tempo indicado pelo TTL (em segundos). Se um resolvedor stub pedir o mesmo registro antes que o TTL tenha expirado, o servidor de cache simplesmente retornará com o registro de recurso já no cache ao invés de solicitar ao servidor autoritativo de novo.[7]
TTLs menores causam mais carga para servidores de nomes autoritativos, mas podem ser muito úteis quando o endereço de serviços vitais como servidores web ou registros MX está sendo alterado, e o valor de TTL é geralmente diminuído pelo administrador DNS logo antes de mudar o lugar do serviço, a fim de diminuir possíveis perturbações.
As unidades utilizadas são em segundos. Antigamente, o valor mais comum para TTL de DNS era 86400 segundos, que é equivalente a 24 horas. Um valor de TTL de 86400 segundos significa que, se um registro DNS em um servidor autoritativo DNS fosse mudado, os servidores DNS ao redor do mundo ainda poderiam estar mostrando o valor antigo no seu cache por até 24 horas depois da mudança.
Novos métodos de DNS que fazem parte do sistema de recuperação de desastres podem ter valores TTL intencionalmente muito baixos. Por exemplo, um TTL de 300 segundos faria com que registros chave expirassem em 5 minutos, ajudando a garantir que os registros sejam descarregados rapidamente em todo o mundo. Isso habilita aos administrados a capacidade de editar e atualizar registros de forma eficiente.
Valores TTL são “por registro” e configurar este valor em registro específicos às vezes é honrado automaticamente por todos os sistemas DNS padrão no mundo. Contudo, é um problema persistente que alguns servidores DNS de cache configuram seus próprios TTLs independentemente dos registros autoritativos, assim, não é garantido que todos os servidores DNS menores terão novos registros quando o TTL expirar.
HTTP
O tempo para viver também pode ser expressado como o dia e hora que um registro expira. O cabeçalho Expires: em respostas HTTP, o cabeçalho Cache-Control: max-age em ambas solicitações e respostas e o campo expires em cookies HTTP expressam o tempo para viver destas formas.
Ver também
Referências
- ↑ a b c «TTL (Time to Live) – O que é ?». palpitedigital.com. Consultado em 16 de setembro de 2016
- ↑ a b ed, J. Postel (setembro de 1981). «INTERNET PROTOCOL - DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION». Internet Standart 5
- ↑ «Default TTL Values in TCP/IP». Cópia arquivada em 12 de fevereiro de 2013
- ↑ «IP OPTION NUMBERS». The current recommended default time to live (TTL) for the Internet Protocol (IP) is 64 [RFC791], [RFC1122]. 30 de novembro de 2012
- ↑ «Resource Records - BIND 9 9.21.7-dev documentation». Bind9.readthedocs.io. Internet Systems Consortium. 2023
- ↑ «Setting TTLs - BIND 9 9.21.7-dev documentation». Bind9.readthedocs.io. Internet Systems Consortium. 2023
- ↑ «TTL in cache - BIND 9 9.21.7-dev documentation». Bind9.readthedocs.io. Internet Systems Consortium. 2023.
Subsequent user requests for the same query will be answered from the resolver’s cache until the TTL of the cached answer has expired, when it will be flushed from the cache