TTL
데이터나 패킷이 유효하게 존재할 수 있는 시간 또는 횟수를 의미합니다. "이 데이터는 여기까지만 살아있어"라고 수명을 정해주는 것입니다.
사용되는 곳에 따라 의미가 조금 다름
| 분야 | TTL 의미 |
|---|---|
| 네트워크 (IP 패킷) | 패킷이 거칠 수 있는 최대 라우터 수 (홉 수) |
| DNS | 캐시된 DNS 레코드의 유효 시간 (초 단위) |
| 캐시 (Redis 등) | 캐시 데이터의 만료 시간 |
| CDN | 콘텐츠가 엣지 서버에 유지되는 시간 |
네트워크에서의 TTL
패킷 생성 (TTL=64)
↓ 라우터1 통과 → TTL=63
↓ 라우터2 통과 → TTL=62
↓ ...
↓ TTL=0 → 패킷 폐기
- 라우터를 하나 지날 때마다 TTL이 1씩 감소
- 0이 되면 패킷 삭제 → 무한 루프 방지 목적
ping명령어로 TTL 확인 가능
DNS에서의 TTL
google.com A 142.250.196.4 TTL=300
- 300초(5분) 동안 이 IP 주소를 캐싱해도 됨
- TTL이 지나면 다시 DNS 서버에 질의
- TTL이 짧으면: 변경 반영 빠름, 하지만 DNS 서버 부하 증가
- TTL이 길면: 부하 감소, 하지만 변경 반영 느림
캐시에서의 TTL
// Redis 예시
redis.setex("user:1", 3600, userData); // 1시간 후 자동 삭제
- 지정된 시간이 지나면 데이터 자동 만료
- 오래된 데이터가 남아있는 문제 방지