网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议,用来使客户端和服务器之间进行时钟同步,提供高精准度的时间校正。NTP服务器从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC,客户端再从服务器请求和接收时间。
NTP基于UDP报文进行传输,使用的UDP端口号为123。

为什么时钟同步很重要?

出于诸多原因,精确的时间对于网络至关重要,比如:

  • 网络管理:从不同网络设备采集来的日志信息进行分析时,需要以时间作为参照依据。如果不同设备上的系统时间不一致,会因先后顺序等问题给故障定位带来障碍。
  • 计费系统:计费业务对于时间尤其敏感,要求所有设备的时间保持一致,否则会引起计费不准确,导致用户质疑、投诉等。
  • 协同处理:多个系统协同处理同一个复杂事件,为保证正确的执行顺序,多个系统必须参考同一时钟。
  • 系统时间:某些应用或服务需要准确的时间来标记用户登录、交易等操作信息,确保可追溯记录。
  • 因此有一个统一的标准时间对于网络而言意义重大。

NTP就是用来使网络中的各个主机时钟同步的一种协议,他把主机的时钟同步到协调世界时UTC,其精度在LAN网络内可达1毫秒内,在WAN网络上可以达到几十毫秒内。

NTP协议发展历史

NTP是由美国Delaware大学David L .Mills教授设计的,是最早用于网络中时钟同步的标准之一。NTP是从时间协议和ICMP时间戳报文演变而来,NTP的版本演进如下所示。

NTP时钟层级

NTP允许客户端从服务器请求和接收时间,而服务器又从权威时钟源(例如原子钟、GPS)接收精确的协调世界时UTC。

NTP以层级来组织模型结构,层级中的每层被称为Stratum。通常将从权威时钟获得时钟同步的NTP服务器的层数设置为Stratum 1,并将其作为主时间服务器,为网络中其他的设备提供时钟同步。而Stratum 2则从Stratum 1获取时间,Stratum 3从Stratum 2获取时间,以此类推。时钟层数的取值范围为1~16,取值越小,时钟准确度越高。层数为1~15的时钟处于同步状态;层数为16的时钟被认为是未同步的,不能使用的。

NTP同步原理

NTP最典型的授时方式是Client/Server方式,如下图所示。

  • 客户端首先向服务端发送一个NTP请求报文,其中包含了该报文离开客户端的时间戳t1;
  • NTP请求报文到达NTP服务器,此时NTP服务器的时刻为t2。当服务端接收到该报文时,NTP服务器处理之后,于t3时刻发出NTP应答报文。该应答报文中携带报文离开NTP客户端时的时间戳t1、到达NTP服务器时的时间戳t2、离开NTP服务器时的时间戳t3;
  • 客户端在接收到响应报文时,记录报文返回的时间戳t4。
  • 客户端用上述4个时间戳参数就能够计算出2个关键参数:
  • NTP报文从客户端到服务器的往返延迟delay。
  • 客户端与服务端之间的时间差offset。
    根据方程组:

    可以解得时间差为:

    NTP客户端根据计算得到的offset来调整自己的时钟,实现与NTP服务器的时钟同步。

AOSP

  • 修改时区
    在编译的时候比如 device.mk的文件中添加如下 来修改默认时区.
PRODUCT_PROPERTY_OVERRIDES += \persist.sys.timezone=Asia/Shanghai
  • 修改NTP服务器地址:
    frameworks/base/core/res/res/values/config.xml 文件中 找到
<string translatable="false" name="config_ntpServer">ntp7.aliyun.com</string>

ADB

adb shell "settings put global ntp_server ntp1.aliyun.com"

AOSP ~ NTP ( 网络时间协议 )相关推荐

  1. Linux的归档及压缩,Linux的cron时间计划任务, NTP网络时间协议 , 查看网络连接...

    linux的归档及压缩:                   1.节约空间                   2.方便对零散文档的管理     tar集成备份工具:         -c:    创 ...

  2. 时间协议ntp服务器,NTP网络时间协议(HP_UX)

    之前写过一篇NTP的东西.但是其中有很多错误.也不够详细.这次经过多次实验,反复比较和分析,并且在HP800电话的帮助下,终于写出了一篇我自己认为比较完整和正确的文档. NTP网络时间协议 (一)NT ...

  3. Linux下 C/C++ NTP网络时间协议详解

    NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议.它是通过网络在计算机系统之间进行时钟同步的网络协议.NTP 在公共互联网上通常能够保持时间延迟 ...

  4. 网络时间协议服务器检测,NTP(网络时间协议)【NTP时间同步服务器】

    网络时间协议(英语:Network Time Protocol,简称NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议之一.NTP由特拉华大学David.Mills ...

  5. ntp协议中 服务器失效怎么办,排除网络时间协议(NTP)故障

    本文提供信息关于怎样排除故障与网络时间协议(NTP)的常见问题. 思科建议您有一好了解NTP如何工作和一好知识网络时间协议. 本文档不限于特定的软件和硬件版本. 有关文档规则的详细信息,请参阅 Cis ...

  6. redhat linux 7 ntp,技术|RHCE 系列(十):在 RHEL/CentOS 7 中设置 NTP(网络时间协议)服务器...

    网络时间协议 - NTP - 是运行在传输层 123 号端口的 UDP 协议,它允许计算机通过网络同步准确时间.随着时间的流逝,计算机内部时间会出现漂移,这会导致时间不一致问题,尤其是对于服务器和客户 ...

  7. 阿里云内网和公共NTP服务器(网络时间协议-时间同步服务)

    关键字:阿里云内网和公共NTP服务器(网络时间协议-时间同步服务) 一.简介: NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议. 在计算机 ...

  8. 网络时间协议(NTP)

    目录 一.NTP - - Neatwork Time Protocol 二.Chrony 1.chronyd  & chronyc 1.1安装 1.2 查看运行状态 1.3常用命令 2. ch ...

  9. 网络时间协议(NTP)--网络大典

    网络时间协议(NTP)是一种通过因特网服务于计算机时钟的同步时间协议.它提供了一种同步时间机制,能在庞大而复杂多样因特网中用光速调整时间分配.它使用的是可返回时间设计方案,其特点是:时间服务器是一种分 ...

最新文章

  1. 报名 | AI TIME 6 论道机器翻译——离我们还有多远?
  2. 语义分析的一些方法(中篇)
  3. OpenGL 光照贴图Lighting maps
  4. python pos函数_使用python+sklearn实现特征提取
  5. Jenkins的入门(二)配置
  6. python猜猜我是几,我在python中猜数游戏的问题
  7. 01 GOF设计模式的定义和分类
  8. linux 下动手实现bash -lR 命令
  9. TMC2208电机驱动简介
  10. MPLS LDP基础
  11. 蓝牙核心协议学习 -- 基带协议(Baseband)翻译最终版
  12. c语言对称字母菱形AABAABCBA,[工学]c语言实验报告.doc
  13. abp .net core linux,Abp vNext框架 从空项目开始 使用ASP.NET Core Web Application-笔记
  14. 保险产品即Token,众安科技的新区块链项目背后有何门道?
  15. 上海中学高考2021成绩查询,2021上海地区高考成绩排名查询,上海高考各高中成绩喜报榜单...
  16. python 四则运算
  17. obsidian之快速拆分文件的插件note-refactor操作手册
  18. 单项选择题标准化考试系统C语言课程设计
  19. 【luogu P3214】卡农(数学)(DP)
  20. 2019年ipa发布苹果应用商店审核指南

热门文章

  1. python opencv 凸包 convexHull
  2. TestBird成为全球最大手游测试平台
  3. SQL之case when then用法(用于分类统计)
  4. 一加5应用未安装怎么解决_一加手机x安装不了软件下载是什么原因?怎么解决?...
  5. Python 函数 | zip 函数详解
  6. fortran matlab eng,[转载]关于MATLAB转FORTRAN的几点注意
  7. Python 计时器(秒钟、秒表)
  8. html2canvas实现一键截图
  9. 三原色是红黄蓝对吗_三原色是红黄蓝吗??
  10. CentOS 6.5 安装使用iscsi-initiator