ntp协议原理linux网络编程,NTP协议

一:NTP的工作原理(UDP端口 123)

83bf2c321aac5dfdf86bca2e2e67c272.png

NTP工作原理:

上图是NTP的基本工作原理,路由器A和路由器B通过网络连接,它们都有自己独立的系统时钟,要实现各自的系统时钟的自动同步,作如下的假设:

—路由器A和B的系统时钟同步之前,路由器A的时钟设定为10:00:00am,路由器B的时钟设定为11:00:00am。

—以路由器B为NTP时间服务器,即路由器A将使自己的时钟与路由器B的时钟同步。

—数据包在路由器A和B之间单向传输所需要的时间为1秒。

时钟同步的过程:

系统时钟同步的工作过程如下:

—路由器A发送一个NTP消息包给路由器B,该消息包带有它离开路由器A时的时间戳,该时间戳为10:00:00am(T1)。

—当此NTP消息包到达路由器B时,路由器B加上自己的时间戳,该时间戳为11:00:01am(T2)。

—当此NTP消息包离开路由器B时,路由器B再加上自己的时间戳,该时间戳为11:00:02am(T3)。

—当路由器A接收到该响应消息包时,加上一个新的时间戳,该时间戳为10:00:03am(T4)。

NTP的工作模式:

按照实现同步所必须的模式组合,有以下几种常用的模式:

服务器 / 客户模式(server / client)

对等体模式(symmetric active / symmetric passive)

广播模式(broadcast server / broadcast client)

组播模式(multicast server / multicast client)

关于NTP的层数及时间戳:

层数(取值范围 1-15):

层数是NTP中一个比较重要的概念,它基本上可以说是代表了一个时钟的准确度,层数为1的时钟准确度最高,从1到15依次递减.

时间戳:

Reference Timestamp:本地时钟最后一次被设定或校准的时间

Originate Timestamp: 同步请求报文离开发送端时的本地时间

Receive Timestamp:同步请求到达被请求端时的本地时间

Transmit Timestamp:应答报文离开应答者时的本地时间

时钟过滤及时钟选择:

时钟过滤:

时钟过滤是针对本地时钟的同一个对等体而言,用来从这个给定的对等体选择最好的时间样本.

时钟选择:

时钟选择是针对不同的对等体,比如一个client可以配置多个server,还可以配置多个peer,这样它分别向各个server和被动对等体发送时钟同步报文,在接收到应答报文后利用时钟选择算法选择出最好的时钟进行同步.

二:NTP数据报文格式

cdc5ae3d2ffbbfd4f19176c4369c5969.png

NTP的实现模型:

e3e388fe90da7b1ff9a8241739098acc.png

—在模型中,一台主机上运行了三个进程,这三个进程共享同一分块的数据文件,每一个对等体使用数据文件中一个特定的分块,三个进程通过报文传送系统互相连接。

发送进程:

—由每个对等体中的独立的计时器控制,收集数据文件中的信息并向它的对等体发送NTP报文;每个NTP报文中包括报文发送时的本地时间戳、上次接收到报文的时间戳和其它确定层次和管理关联所必须的信息。

接收进程:

—接收NTP报文(也可能包括其它协议的报文)和来自于与主机直接相连的Radio Clocks 的信息。

更新过程:

—在接收到NTP报文时或其它时间启动,它处理来自于每一个对等体的偏移数据,并用选择算法选择出最好的对等体。

本地时钟进程:

—根据由更新过程中产生的偏移数据用一定的机制对本地时钟的相位和频率进行调节。

NTP实验:

下面的部分是转载的别人的,在此说声感谢:

一、使用windows2003作为时钟源

ParametersType -> NTP

ConfigAnnounceFlags -> 5

TimeProvidersNtpServerEnabled -> 1

TimeProvidersNtpClientSpecialPollInterval -> 900

ConfigMaxPosPhaseCorrection -> 172800

ConfigMaxNegPhaseCorrection -> 172800

ConfigLocalClockDispersion -> 0 (Previous 10)

Run the commands to restart the time service:

- net stop w32time

- net start w32time

二:思科设备作为客户端配置

1、配置命令

clock timezone CST 8

ntp server x.x.x.x

ntp source  interface

2状态检查

show ntp status

show ntp associations detail

3注意事项

如果没有同步,最好先no ntp server 再重新配置ntp server

三、思科设备作为源

clock timezoneCST 8

ntp source Loopback0

ntp authenticate

ntp authentication-key 1234 md5 104D000A0618 7

ntp trusted-key 1234

ntp master 3

四、Linux作为时间源

如果你的服务器是Linux,请先用如下指令查看本机是否已安装ntp serverrpm -qa|grep ntp如无,则安装上此RPM包。也可安装tar包。配置NTP serverNTP server的主配置文件为/etc/ntp.conf现对/etc/ntp.conf的各项进行说明#设置此服务器同上层服务器做时间同步的IP地址,prefer意味着首选IP地址server 61.246.176.141 preferserver 210.59.157.10 preferserver 202.112.7.150 preferserver 203.116.5.254  #asia.pool.ntp.orgserver 202.162.32.12  #1.asia.pool.ntp.orgserver 202.155.248.212 #0.asia.pool.ntp.org#记录上次我们的NTP server与上层NTP server连线时所花费的时间driftfile /etc/ntp/drift#设置默认策略为允许任何主机进行时间同步restrict default ignore#设置允许访问此时间服务器的时间服务的IP地址restrict 127.0.0.1    # 开启內部环路lorestrict 192.168.0.2  # 主机本身的 IP 也同時开启restrict 211.101.48.56restrict 192.168.1.0 mask 255.255.255.0 意味着允许192.168.1.0/24子网内主机可同步restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap #允许任何主机跟此服务器进行时间同步#指定阶层编号为5,降低其优先度。fudge 127.127.1.1 stratum 5#设置ntp日志的pathstatsdir /var/log/ntp/#设置ntp日志文件logfile /var/log/ntp/ntp.logkeys /etc/ntp/keys

NTP server的维护1、 启动service ntpd start或者ntpd –p /var/log/ntpd.pid或手工指定配置文件的带path的全名如ntpd –c /etc/ntp/ntp.conf –p /var/log/ntpd.pid2、 停止service ntpd stop3、 ntpq –p  查看本机和上层服务器的时间同步结果4、 ntptrace  可以用來追踪某台时间服务器的时间对应关系5、 ntpdate IP 客户端要和NTP server进行时钟同步。6、 查看ntp日志/var/log/ntp/ntp.log客户端的配置LINUX客户端:echo “10 5 * * * root /usr/sbin/ntpdate 192.168.5.3;/sbin/hwclock -w”>>/etc/crontab意为每天凌晨的5:10同NTP server进行一次时钟同步,并写入本机BIOS

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值