1. 程式人生 > >webrtc筆記:NTP網路時間

webrtc筆記:NTP網路時間

最近在看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標頭檔案中.

採用的是系統已經執行的時間,時間單位精確到納秒.