살 시간
Time to liveTTL(Time to live) 또는 홉 제한은 컴퓨터 또는 네트워크에서 데이터의 수명 또는 수명을 제한하는 메커니즘입니다. TTL은 데이터에 연결되거나 데이터에 포함된 카운터 또는 타임스탬프로 구현될 수 있습니다. 규정된 이벤트 수 또는 시간이 경과하면 데이터가 폐기되거나 재검증됩니다. 컴퓨터 네트워킹에서 TTL은 데이터 패킷이 무한히 순환하는 것을 방지합니다. 컴퓨팅 애플리케이션에서 TTL은 일반적으로 성능을 개선하고 데이터의 캐싱을 관리하는 데 사용됩니다.
묘사
원래 DARPA 인터넷 프로토콜의 RFC는 TTL을 다음과 같이 설명합니다[1]: §1.4 .
Time to Live는 인터넷 데이터그램의 수명에 대한 상한을 나타냅니다. 데이터그램의 송신자에 의해 설정되고, 그것이 처리되는 경로를 따라 있는 지점들에서 축소됩니다. 인터넷 데이터그램이 목적지에 도달하기 전에 살아있는 시간이 0에 도달하면 인터넷 데이터그램은 파괴됩니다. 살 수 있는 시간은 자기 파괴적인 시간 제한으로 생각할 수 있습니다.
IP 패킷
인터넷 프로토콜에서 TTL은 8비트 필드입니다. IPv4 헤더에서 TTL은 20의 9번째 옥텟입니다. IPv6 헤더에서는 40의 8번째 옥텟입니다. 최대 TTL 값은 255이며, 단일 옥텟의 최대 값입니다. 권장 초기 값은 64입니다.[2][3]
인터넷 시스템에서 IP 데이터그램이 존재할 수 있는 시간에 대한 상한 값을 생각할 수 있습니다. TTL 필드는 데이터그램의 송신자에 의해 설정되며, 대상으로 가는 경로의 모든 라우터에 의해 축소됩니다. 데이터그램이 목적지에 도착하기 전에 TTL 필드가 0에 도달하면 데이터그램이 폐기되고 ICMP(Internet Control Message Protocol) 오류 데이터그램(11 - Time Exceeded)이 송신자에게 다시 전송됩니다. TTL 필드의 목적은 전달할 수 없는 데이터그램이 인터넷 시스템에 계속 돌고, 그러한 시스템이 결국 그러한 "불멸"의 늪에 빠지는 상황을 피하기 위한 것입니다.
이론적으로 IPv4에서는 생존 시간이 초 단위로 측정되지만 데이터그램을 통과하는 모든 호스트는 TTL을 최소 한 단위 줄여야 합니다. 실제로 TTL 필드는 매 홉마다 하나씩 줄어듭니다. 이러한 관행을 반영하기 위해 IPv6에서는 필드 이름이 홉 제한으로 바뀝니다.
DNS 레코드
TTL은 특정 리소스 레코드에 대해 권한 있는 네임 서버에 의해 설정되는 DNS(Domain Name System)에서도 발생합니다. 캐싱(재귀) 네임 서버가 권한 있는 네임 서버에 리소스 레코드를 쿼리하면 해당 레코드는 TTL에서 지정한 시간(초) 동안 캐시됩니다. TTL이 만료되기 전에 스터브 해결사가 캐싱 네임 서버에 동일한 레코드를 쿼리하면 캐싱 서버는 권한 있는 네임 서버에서 다시 검색하는 대신 이미 캐싱된 리소스 레코드로 간단히 응답합니다. NXDOMAIN(존재하지 않는 도메인) 응답의 TTL은 SOA 레코드의 최소 필드와 SOA 자체의 TTL의 최소값에서 설정되며 해결사가 부정 응답을 캐싱할 수 있는 기간을 나타냅니다.[4][jargon]
TTL이 짧으면 권한 있는 네임 서버에 더 많은 부하가 걸릴 수 있지만 웹 서버나 MX 레코드와 같은 중요한 서비스의 주소를 변경할 때 유용하므로 서비스를 이동하기 전에 DNS 관리자가 서비스 중단을 줄이기 위해 이를 낮추는 경우가 많습니다.
사용된 단위는 초입니다. DNS에 대한 오래된 공통 TTL 값은 24시간인 86400초였습니다. TTL 값이 86400이면 권한 있는 네임 서버에서 DNS 레코드가 변경된 경우 클라이언트가 마지막으로 업데이트한 후 최대 24시간 동안 전 세계의 DNS 서버가 캐시에서 이전 값을 계속 표시할 수 있습니다.
재해 복구(DR) 시스템의 일부인 최신 DNS 방법에는 일부 레코드가 의도적으로 TTL에 매우 낮게 설정될 수 있습니다. 예를 들어, 300초 TTL을 사용하면 키 레코드가 5분 안에 만료되어 이러한 레코드가 전 세계적으로 빠르게 플러시되도록 할 수 있습니다. 이를 통해 관리자는 적시에 레코드를 편집하고 업데이트할 수 있습니다. TTL 값은 "레코드 단위"이며 특정 레코드에 이 값을 설정하는 것은 전 세계 모든 표준 DNS 시스템에서 자동으로 허용됩니다. 그러나 일부 캐싱 DNS 네임 서버가 권한 있는 레코드와 관계없이 자체 TTL을 설정하므로 TTL이 만료된 후 모든 다운스트림 DNS 서버가 새 레코드를 가지고 있다고 보장할 수 없다는 문제가 지속됩니다.
HTTP
사는 시간은 레코드가 만료되는 날짜와 시간으로 표현될 수도 있습니다. HTTP 응답의 헤더, Cache-Control: max-age
요청과 응답 모두에 있는 헤더 필드와 HTTP 쿠키에 있는 필드는 이러한 방식으로 저장할 시간을 표현합니다.
참고 항목
참고문헌
- ^ J. Postel, ed. (September 1981). INTERNET PROTOCOL - DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION. IETF. doi:10.17487/RFC0791. STD 5. RFC 791. IEN 128, 123, 111, 80, 54, 44, 41, 28, 26.인터넷 표준 5. Obsoletes RFC 760. RFC 1349, 2474 및 6864에 의해 업데이트되었습니다.
- ^ "Default TTL Values in TCP/IP". Archived from the original on 2013-02-12. Retrieved 2013-02-19.
- ^ "IP OPTION NUMBERS". 2012-11-30. Retrieved 2013-02-19.
The current recommended default time to live (TTL) for the Internet Protocol (IP) is 64 [RFC791], [RFC1122].
- ^ <mark.andrews@cmis.csiro.au>, Mark Andrews (1998). "Negative Caching of DNS Queries (DNS NCACHE)". tools.ietf.org. doi:10.17487/RFC2308. Retrieved 2018-11-12.