1. System Time, Time Stamp, Epoch 비교
ㅇ 시스템 시간 (System Time) : 시간 기준
- 시스템 전체에서 사용하는 시간 기준
. 例) MPEG 시스템 시간 동기, 망 동기, 타이밍/클럭 등
ㅇ 타임스탬프 (Time Stamp) : 시간 경과
- 일반적으로, 어떤 기준 시각(보통, Epoch)부터 경과 시간을 수치값으로 주는 문자열
. 例) 세계 표준시(UTC)의 자정으로부터 밀리 초 단위로 표시하는 수치 문자열
. 例) Unix Timestamp : Unix Epoch (1970-01-01 00:00:00) 부터 경과된 밀리 초
ㅇ 에포크 (Epoch) : 시간 기원
- 중요한 사건,변화가 일어난 정적인 시간 기원
. 例) Unix Epoch : 1970년 1월 1일 새벽 0시 (유닉스 출현 기원)
. 例) Prime Epoch : 1900년 1월 1일 새벽 0시 (NTP 프로토콜에서 사용하는 기원)
. 例) GPS Epoch : 1980년 1월 6일 일요일 0시 0분 0초 (GPS 시간 기원)
2. [컴퓨터 하드웨어] 컴퓨터에서 제공하는 2가지 시간 기준
ㅇ 실시각 (현재 시각 제공) (RTC, Real Time Clock, Calendar Time)
- 컴퓨터 본체의 시계
- 통상, 운영체제는, 최초 기동시 1회 정도 읽고, 그이후 시간 관계를 유지하게됨
. 세계표준시(UTC)를 따라, 특정 표준시점으로부터 측정된 달력시간을 주로 말함
ㅇ 타이머 (경과 시간 제공) (Timer Interrupt)
- 통상, 컴퓨터 내부 진동 주기에 따른 틱(tick, 1/주파수 [sec]) 수를 제공함
. 시스템(운영체제) 시작 이후에 상대적인 경과 시간(Uptime)은 이 틱 수로 계산되어짐
- 컴퓨터 아키텍처별 타이머 인터럽트 주파수 例)
. PC x86 계열 : 100 Hz
.. (100분의 1초 마다 1번 즉, 10 밀리초 마다 tick 발생. 초당 100회 발생)
. Alpha 칩 계열 : 1024 Hz
. ARM 프로세서 계열 : 100 Hz
* 각 아키텍처에서도 경우(버젼)에 따라 주파수가 달라지기도 함
3. [운영체제] Unix/Linux 시간
ㅇ Unix Epoch (유닉스 시간 기원)
- Unix/Linux에서 기준이 되는 시각 : 1970년 1월 1일 새벽 0시 (유닉스 출현 시기)
ㅇ Unix/Linux Epoch Timestamp
- 바로, 유닉스 시간기원(Epoch)부터 경과된 컴퓨터 아키텍처에 따른 틱 수를 말함
.. 보통 밀리초 또는 마이크로초 단위의 틱 수
.. 시스템 호출 time() 또는 gettimeofday()에서 구해짐
ㅇ 소프트웨어 클럭 해상도 : 지피(Jiffy) 값으로 주어짐
- 과거에는 운영체제 커널 버전 마다 고정되었으나, 현재는 설정 가능 함
. 보통, 지피 값은 10(100 Hz), 4(250 Hz), 1(1000 Hz) 밀리 초 등
.. Linux 커널 소스 상수 HZ 에 저장됨
4. [프로토콜] 특정 프로토콜 헤더에 포함되는 타임스탬프 필드
ㅇ 스트림화된 패킷들 내에서 각 패킷 간에 시간 관계을 나타냄
ㅇ 통상적으로, 랜덤한 초기값부터 카운터에 의해 1씩 증가시킴
- 끝에 도달하면 다시 처음부터 시작되며 순환됨
※ 例) RTP 스트림 내 각 RTP 패킷이 샘플링되어 송신된 시간 필드 ☞ RTP 패킷 참조
- (동일 : 일련의 패킷들의 타임스탬프 값이 같은 경우)
. 특정 비디오 장면이 같은 시간에 샘플링되었음을 의미
- (들쭉날쭉 : 일련의 패킷들의 타임스탬프 값이 단조적으로 증가하지 않는 경우)
. MPEG 화면 픽처 처럼 시간 순서가 어긋나며 전후 화면으로부터 예측되었음을 의미
- (단조증가 : 일련의 패킷들의 타임스탬프 값이 단조적으로/연이어 증가하는 경우)
. 오디오 패킷 흐름 같은 경우, 연이어 증가되는 번호 순서를 갖음