TTL은 "Time to Live"의 약자로, 네트워크에서 데이터 패킷이 유효한 시간을 나타내는 값입니다. 데이터 패킷은 인터넷상에서 전송될 때, 여러 라우터를 거쳐 목적지로 전송됩니다. 이때, 데이터 패킷이 네트워크에서 무한정 반복되는 것을 방지하고, 라우터들이 패킷을 처리하는데 오버헤드를 방지하기 위해 TTL 값이 사용됩니다.
IP 데이터그램이 인터넷 시스템 내에서 존재할 수 있는 시간의 상한선을 의미합니다.
TTL 값은 패킷을 전송할 때 설정되며, 패킷이 라우터를 거칠 때마다 1씩 감소합니다. 이때 TTL 값이 0이 되면, 패킷은 폐기되고 보낸 곳으로 에러 메시지가 전송됩니다. 이렇게 함으로써 패킷이 무한정 반복되는 것을 방지하고, 특정 패킷이 라우터를 계속해서 돌아다니며 네트워크의 성능을 저하시키는 것을 막을 수 있습니다.
TTL 값은 일반적으로 64 또는 128로 설정되며, TTL 값이 작을수록 패킷이 도달하는 라우터 수가 적어지므로 빠른 전송이 가능합니다. 그러나 네트워크가 복잡해질수록 패킷이 목적지까지 도달하는 데 필요한 라우터의 수가 늘어나므로, 너무 작은 TTL 값을 설정하면 패킷이 목적지까지 도달하기 전에 폐기될 가능성이 높아집니다.
DNS에 질의해 응답받은 결괏값을 캐시에서 유지하는 시간을 의미합니다.
DNS에서 권한있는 네임서버는 특정 리소스 레코드의 TTL 값을 설정합니다. 재귀적 캐시 네임서버가 권한있는 네임서버에 질의를 보낼 때, 캐시 네임서버는 그 레코드를 TTL 값에 해당하는 시간동안 캐시에 저장해 둡니다. 추후 스터브 리졸버가 캐시 네임서버에 동일한 레코드에 대한 질의를 보냈을 때, 해당 레코드의 TTL 값이 아직 만료되지 않았다면 캐시 네임서버는 권한있는 네임서버에 질의를 보낼 필요 없이 캐시에 저장된 정보를 이용해 바로 응답을 하게 됩니다.
참고 : 이러한 장점때문에 메일 교환 레코드(mail exchange record)와 같이 주소 변경에 민감한 서비스에 적합합니다. 특정 서비스의 주소가 옮겨지는 경우, 이로 인한 혼란을 최소화하기 위해 DNS 관리자는 관련 레코드의 TTL 값을 낮춥니다.
참고 : 서비스의 성질과 도메인 정보의 갱신 빈도에 따라 TTL 값을 적절히 조절하는 것이 좋습니다. 변경이 빈번하지 않다면 TTL 값을 늘려 DNS 부하를 줄이는 것이 좋고 IDC 이전이나 공인 IP, 서비스 변경이 예정되어 있다면 DNS의 TTL 값을 미리 극도로 줄여 변경을 신속히 적용하는 것이 좋습니다.
위키백과와 'IT 엔지니어를 위한 네트워크 입문'을 참고하여 작성했습니다.
프로젝트 관리 도구 '지라(Jira)'에 대해 알아보자. (0) | 2023.04.02 |
---|---|
세션스토리지 만료시간 설정 방법 (0) | 2023.02.16 |
Hash Router와 Browser Router의 차이점 (0) | 2023.02.07 |
컴파일러 언어와 인터프리터 언어 비교 (0) | 2023.01.03 |