在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

ntp的實現原理是什么

麥辣雞腿堡 ? 來源:UndefinedReference ? 作者:jinbao.tang ? 2023-10-27 14:21 ? 次閱讀

ntp實現原理

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

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

ntp client request:

圖片

ntp server response:

圖片

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

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

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);
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 車載
    +關注

    關注

    18

    文章

    615

    瀏覽量

    83414
  • 時間同步
    +關注

    關注

    1

    文章

    122

    瀏覽量

    10019
  • 時鐘同步
    +關注

    關注

    0

    文章

    89

    瀏覽量

    12788
  • NTP
    NTP
    +關注

    關注

    1

    文章

    176

    瀏覽量

    13938
收藏 人收藏

    評論

    相關推薦

    基于NTP的高精度時鐘同步系統實現

    基于NTP的高精度時鐘同步系統實現Windows操作系統內置的NTP授時精度不高,分辨率最高只有10 ms。給出一個基于Windows操作系統的計算機網絡同步時鐘實現方案,該方案可以有
    發表于 09-19 09:21

    NTP服務的搭建方法

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

    CentOS的ntp服務器搭建

    ntp】CentOS上搭建ntp服務器,并實現時間同步
    發表于 03-20 11:18

    NTP協議簡介

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

    通過NTP獲取Epoch/Unix時間NTP代表網絡時間

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

    求解關于AT ESP8266 無法實現NTP時間同步的問題?

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

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

    IEEE1588介紹IEEE1588是網絡精密時鐘同步協議也稱PTP,利用傳統的NTP實現的能PTP能達到s級,利用EMAC帶IEEE1588的芯片比如NUC980應當能達到ms級甚至更高,也有PYH帶時鐘的如DP83640。
    發表于 04-08 14:49

    基于NTP的網絡時統系統的實現

    本文基于NTP 協議針對某具體廣域網的結構特點和應用需求進行了網絡時統系統的框架設計,并根據具體應用給出了實現算法,通過編程實現和網絡構建得到的仿真實驗結果,驗證
    發表于 09-12 16:53 ?62次下載

    NTP的基本功能和工作原理

    學習完本課程,您應該能夠:了解NTP的基本功能和工作原理,熟悉NTP的各種工作模式,熟練掌握NTP的配置方法。
    發表于 04-12 14:32 ?14次下載

    NTP53321G0JTZ NXP Semiconductors NTP5312和NTP5332 NTAG? 5鏈路

    電子發燒友網為你提供NXP(ti)NTP53321G0JTZ相關產品參數、數據手冊,更有NTP53321G0JTZ的引腳圖、接線圖、封裝手冊、中文資料、英文資料,NTP53321G0JTZ真值表,
    發表于 10-23 19:06

    實現嵌入式linux自動同步網絡時間---NTP

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

    NTP服務器介紹

    NTP服務器 產品介紹: NTP服務器是—款基于CPLD的高精度時頻同步設備。該設備接收GPS、北斗衛星信號,或母鐘信號,通過踉蹤鎖定外部信號馴服內部晶振,采用智能時間優化算法,為用戶提供精確、穩定
    的頭像 發表于 01-17 09:30 ?838次閱讀
    <b class='flag-5'>NTP</b>服務器介紹

    安徽京準 NTP網絡校時器 NTP服務器 電廠應用方案

    【安徽京準】NTP網絡校時器(NTP服務器)電廠應用方案
    的頭像 發表于 08-08 09:27 ?314次閱讀
    安徽京準 <b class='flag-5'>NTP</b>網絡校時器 <b class='flag-5'>NTP</b>服務器 電廠應用方案

    國產麒麟系統 NTP網絡時間服務器實現信創平臺自主可控

    【國產麒麟系統】NTP網絡時間服務器實現信創平臺自主可控
    的頭像 發表于 08-09 10:25 ?1920次閱讀
    國產麒麟系統 <b class='flag-5'>NTP</b>網絡時間服務器<b class='flag-5'>實現</b>信創平臺自主可控

    常見NTP服務器軟件比較

    的時間同步。 1. NTP (Network Time Protocol) 優點: 標準實現NTPNTP協議的官方實現,遵循RFC 5
    的頭像 發表于 12-18 15:14 ?765次閱讀
    主站蜘蛛池模板: 成人a在线| 日韩欧美卡一卡二卡新区| 小雪被撑暴黑人黑人与亚洲女人| 国产精品久久久久久久久ktv | 91中文在线观看| 中文字幕精品一区二区2021年| 天天看a| 天天干干| 国产在线免| 欧美高清xx| 亚洲精品aaa揭晓| 一色屋成人免费精品网站| 校园 春色 欧美 另类 小说| 四虎影院www| 六月婷婷色| 欧美性色欧美a在线观看| 天堂网在线最新版官网| 色视频网站人成免费| 欧美 在线播放| 国产精品17p| 天堂网最新版www中文| 中国同志chinese小彬tv| 一本大道一卡二卡| 亚洲人成电影| 最新日韩中文字幕| 亚洲 欧洲 另类 综合 自拍| 日韩综合图区| 四虎影视院| 免费看日本大片免费| 欧美一级免费观看| 黄色三级视频在线观看| 一级视频在线| 456性欧美欧美在线视频| 欧美性色xo影院在线观看| 午夜久久免影院欧洲| 麻豆美女大尺度啪啪| 伊人操| chinesevideo普通话对白| 男女午夜特黄毛片免费| 色视频网站在线| 丁香五香天堂网|