webrtc筆記:NTP網路時間
阿新 • • 發佈:2018-12-24
最近在看webrtc中的video jitter buffer,裡面有部分對時間單位的統一的設計.
以linux為例,系統函式獲取的時間有2種:
1.從系統開始執行(可以理解到開機)到現在所經歷的時間,時間精度到納秒.
struct timespec ts;//包含有秒和納秒的結構體
clock_gettime(CLOCK_MONOTONIC,&ts); //從系統開始執行到現在的時間
2.獲取當前電腦距離格林尼治時間的相對時間,時間單位精確到微秒.
比如我們當前電腦的時間就是:
在linux下是通過系統函式 ,來獲取相對時間的.
struct timeval tv; gettimeofday(&tv,NULL);
(如果我們手動調整了我們電腦的時間,那麼對應的我們獲取到的時間也就會發生改變!)
在網路中,時間是沒有統一的標準的,比如時區不一樣,北京時間21:58對應的是美國時間08:58,就算是同一個時區的,電腦上的時間顯示也會不一樣,有的是人為調整了時間.
接下來,我們來研究一下:webrtc是如何統一網路時間的!!!
在webrtc中,我們是用 TickTime類來表示當前時間,該類的定義位於webrtc/system_wrappers/interface/tick_util.h標頭檔案中.
採用的是系統已經執行的時間,時間單位精確到納秒.