日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ntp的實現(xiàn)原理是什么

麥辣雞腿堡 ? 來源:UndefinedReference ? 作者:jinbao.tang ? 2023-10-27 14:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ntp實現(xiàn)原理

我們看一下為啥說ntp從實現(xiàn)時間同步的角度來說是很簡單的。在pc上,以windows為例,手動關(guān)閉打開一下自動更新時間,會觸發(fā)一次ntp時間同步。

這個時候,我們可以拿到ntp完整的request/response報文,如下:

ntp client request:

圖片

ntp server response:

圖片

如上圖,我們可以看到,我們可以拿到同步原理提到的t1, t2, t3;而t4是client接收到server response時的時間,那么上述時間分別是如何來的呢。

* t1: client發(fā)送request的前一刻,記下當(dāng)前utc時間,然后塞入到request transmit timestamp中去。但是這個不能作為真正的t1來使用,因為前面提到了,ntp是使用的udp,所以有可能會丟包。因此真正的t1應(yīng)該ntp server收到client request時,從request報文中提取到t1,最后再給到client使用。也就是上圖的t1。
* t2: 也就是server收到client request的時間
* t3: server發(fā)送response的時間
* t4: client收到server response的時間
  
  知道這些原理之后,我們就可以很好設(shè)計出我們的代碼實現(xiàn)思路,如下:
 

C++                  
//ntp client                  
// send request with t1                  
std::chrono::time_point_cast(          
        std::chrono::system_clock::now());          
std::time_t time_stamp = time_point.time_since_epoch().count();          
request_message_- >SetTransTs(time_stamp);          
int ret = SendMsg(request_message_- >GetData(), MESSAGE_LENGTH);          


// receive response, and get t1, t2, t3          
int ret = RecvMsg(request_message_- >GetData(), MESSAGE_LENGTH);          
auto req_tx_ts_ = response_message_- >GetOriginTs();  // t1          
auto req_rx_ts_ = response_message_- >GetRecvTs();    // t2          
auto resp_tx_ts_ = response_message_- >GetTransTs();  // t3          
auto time_point = std::chrono::time_point_cast(          
        std::chrono::system_clock::now());          
std::time_t time_stamp = time_point.time_since_epoch().count();          
auto resp_rx_ts_us_ = static_cast(time_stamp);  // t4            

auto offset =            
        req_rx_ts_us_ - req_tx_ts_us_ + resp_tx_ts_us_ - resp_rx_ts_us_;            
offset /= 2;            

// adjust the clock            
AdjustClock(offset);
C++                  
// ntp server                  
// receive ntp request message                  
RecvMsg(request_message_- >GetData(), MESSAGE_LENGTH);                  
// get receive request_frame timestamp, get t1, t2                  
auto time_point = std::chrono::time_point_cast(          
        std::chrono::system_clock::now());          
auto req_rx_ts = time_point.time_since_epoch().count();//t2          
auto req_tx_ts = request_message_- >GetTransTs();//t1          

// send ntp response message          
response_message_- >SetOriginTs(req_tx_ts);//t1          
response_message_- >SetRecvTs(req_rx_ts);//t2          
auto time_point = std::chrono::time_point_cast(          
        std::chrono::system_clock::now());          
auto resp_tx_ts = time_point.time_since_epoch().count();          
response_message_- >SetTransTs(resp_tx_ts);//t3          
SendMsg(response_message_- >GetData(), MESSAGE_LENGTH);
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 車載
    +關(guān)注

    關(guān)注

    18

    文章

    717

    瀏覽量

    84896
  • 時間同步
    +關(guān)注

    關(guān)注

    1

    文章

    237

    瀏覽量

    10667
  • 時鐘同步
    +關(guān)注

    關(guān)注

    0

    文章

    142

    瀏覽量

    13608
  • NTP
    NTP
    +關(guān)注

    關(guān)注

    1

    文章

    267

    瀏覽量

    15088
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    RT-Thread 4.1.1為什么啟用NTP實現(xiàn)開機自動同步時間后報超時?

    RT-Thread 4.1.1為什么啟用NTP實現(xiàn)開機自動同步時間后報超時?
    發(fā)表于 04-14 09:38

    RT-Thread 4.1.1怎啟用NTP實現(xiàn)開機自動同步時間后報超時,為什么?

    RT-Thread 4.1.1怎啟用NTP實現(xiàn)開機自動同步時間后報超時
    發(fā)表于 06-13 07:20

    RT-Thread 4.1.1設(shè)置ntp自動同步時間后報超時了,怎么處理?

    RT-Thread 4.1.1怎啟用NTP實現(xiàn)開機自動同步時間后報超時
    發(fā)表于 09-25 07:53

    基于NTP的高精度時鐘同步系統(tǒng)實現(xiàn)

    基于NTP的高精度時鐘同步系統(tǒng)實現(xiàn)Windows操作系統(tǒng)內(nèi)置的NTP授時精度不高,分辨率最高只有10 ms。給出一個基于Windows操作系統(tǒng)的計算機網(wǎng)絡(luò)同步時鐘實現(xiàn)方案,該方案可以有
    發(fā)表于 09-19 09:21

    NTP服務(wù)的搭建方法

    NTP服務(wù)搭建服務(wù)端安裝檢查是否安裝NTP [root@jie ~] # rpm -q ntp ntp-4.2.2p1-7.el5安裝方式NTP
    發(fā)表于 07-15 07:17

    CentOS的ntp服務(wù)器搭建

    ntp】CentOS上搭建ntp服務(wù)器,并實現(xiàn)時間同步
    發(fā)表于 03-20 11:18

    NTP協(xié)議簡介

    一、NTP協(xié)議簡介??網(wǎng)絡(luò)時間協(xié)議NTP(Network Time Protocol)的主要開發(fā)者是美國特拉華大學(xué)的MILLS David L教授設(shè)計實現(xiàn)的,由時間協(xié)議、ICMP時間戳消息及IP時間
    發(fā)表于 07-29 06:50

    通過NTP獲取Epoch/Unix時間NTP代表網(wǎng)絡(luò)時間

    通過NTP獲取 Epoch/Unix時間NTP代表“網(wǎng)絡(luò)時間協(xié)議”,它是用于在計算機系統(tǒng)之間進行時鐘同步的網(wǎng)絡(luò)協(xié)議。 換句話說,它用于同步網(wǎng)絡(luò)中的計算機時鐘時間。本文將介紹如何使用帶Arduino
    發(fā)表于 01-27 06:03

    求解關(guān)于AT ESP8266 無法實現(xiàn)NTP時間同步的問題?

    聯(lián)網(wǎng),本以為可以大功時,卻發(fā)現(xiàn)NTP無法同步。關(guān)于NTP配置的各種文檔看了很多,使用都很簡單,沒有特殊的配置要求。但是搞了一下午沒有任何進展。希望各位前輩幫忙分析。如上圖,組件全部加載成功,NTP已經(jīng)
    發(fā)表于 03-15 14:36

    NK-980IoT評測EMAC功能模塊(二)

    IEEE1588介紹IEEE1588是網(wǎng)絡(luò)精密時鐘同步協(xié)議也稱PTP,利用傳統(tǒng)的NTP實現(xiàn)的能PTP能達到s級,利用EMAC帶IEEE1588的芯片比如NUC980應(yīng)當(dāng)能達到ms級甚至更高,也有PYH帶時鐘的如DP83640。
    發(fā)表于 04-08 14:49

    基于NTP的網(wǎng)絡(luò)時統(tǒng)系統(tǒng)的實現(xiàn)

    本文基于NTP 協(xié)議針對某具體廣域網(wǎng)的結(jié)構(gòu)特點和應(yīng)用需求進行了網(wǎng)絡(luò)時統(tǒng)系統(tǒng)的框架設(shè)計,并根據(jù)具體應(yīng)用給出了實現(xiàn)算法,通過編程實現(xiàn)和網(wǎng)絡(luò)構(gòu)建得到的仿真實驗結(jié)果,驗證
    發(fā)表于 09-12 16:53 ?62次下載

    實現(xiàn)嵌入式linux自動同步網(wǎng)絡(luò)時間---NTP

    因為ARM板斷電重啟問題,為保證能獲取到準(zhǔn)確的實時時間,所以需要實現(xiàn)自動從網(wǎng)絡(luò)上獲取時間,這就需要用到NTP。NTP是網(wǎng)絡(luò)時間協(xié)議(Network Time Protocol)的簡稱,它是用來同步網(wǎng)
    發(fā)表于 11-02 09:36 ?12次下載
    <b class='flag-5'>實現(xiàn)</b>嵌入式linux自動同步網(wǎng)絡(luò)時間---<b class='flag-5'>NTP</b>

    安徽京準(zhǔn) NTP網(wǎng)絡(luò)校時器 NTP服務(wù)器 電廠應(yīng)用方案

    【安徽京準(zhǔn)】NTP網(wǎng)絡(luò)校時器(NTP服務(wù)器)電廠應(yīng)用方案
    的頭像 發(fā)表于 08-08 09:27 ?1030次閱讀
    安徽京準(zhǔn) <b class='flag-5'>NTP</b>網(wǎng)絡(luò)校時器 <b class='flag-5'>NTP</b>服務(wù)器 電廠應(yīng)用方案

    國產(chǎn)麒麟系統(tǒng) NTP網(wǎng)絡(luò)時間服務(wù)器實現(xiàn)信創(chuàng)平臺自主可控

    【國產(chǎn)麒麟系統(tǒng)】NTP網(wǎng)絡(luò)時間服務(wù)器實現(xiàn)信創(chuàng)平臺自主可控
    的頭像 發(fā)表于 08-09 10:25 ?3677次閱讀
    國產(chǎn)麒麟系統(tǒng) <b class='flag-5'>NTP</b>網(wǎng)絡(luò)時間服務(wù)器<b class='flag-5'>實現(xiàn)</b>信創(chuàng)平臺自主可控

    常見NTP服務(wù)器軟件比較

    的時間同步。 1. NTP (Network Time Protocol) 優(yōu)點: 標(biāo)準(zhǔn)實現(xiàn)NTPNTP協(xié)議的官方實現(xiàn),遵循RFC 5
    的頭像 發(fā)表于 12-18 15:14 ?4205次閱讀
    鲁甸县| 莱西市| 都匀市| 阿荣旗| 宜君县| 天门市| 阿勒泰市| 汤阴县| 高尔夫| 锡林郭勒盟| 娄烦县| 藁城市| 巴中市| 白山市| 米林县| 大港区| 德惠市| 满洲里市| 兖州市| 互助| 西乌珠穆沁旗| 邹平县| 靖安县| 营口市| 保定市| 黄浦区| 沈丘县| 榆中县| 延吉市| 会宁县| 固始县| 闸北区| 军事| 防城港市| 肥乡县| 松潘县| 德兴市| 张家口市| 新源县| 平湖市| 兴城市|