`
jiangzhongwei_66
  • 浏览: 6302 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

NtpV3Impl1

阅读更多
package org.apache.commons.net.ntp;

import java.net.DatagramPacket;

// Referenced classes of package org.apache.commons.net.ntp:
//            TimeStamp, NtpV3Packet, NtpUtils

public class NtpV3Impl
    implements NtpV3Packet
{

    public NtpV3Impl()
    {
        buf = new byte[48];
    }

    public int getMode()
    {
        return ui(buf[0]) >> 0 & 7;
    }

    public String getModeName()
    {
        return NtpUtils.getModeName(getMode());
    }

    public void setMode(int mode)
    {
        buf[0] = (byte)(buf[0] & 248 | mode & 7);
    }

    public int getLeapIndicator()
    {
        return ui(buf[0]) >> 6 & 3;
    }

    public void setLeapIndicator(int li)
    {
        buf[0] = (byte)(buf[0] & 63 | (li & 3) << 6);
    }

    public int getPoll()
    {
        return buf[2];
    }

    public void setPoll(int poll)
    {
        buf[2] = (byte)(poll & 255);
    }

    public int getPrecision()
    {
        return buf[3];
    }

    public void setPrecision(int precision)
    {
        buf[3] = (byte)(precision & 255);
    }

    public int getVersion()
    {
        return ui(buf[0]) >> 3 & 7;
    }

    public void setVersion(int version)
    {
        buf[0] = (byte)(buf[0] & 199 | (version & 7) << 3);
    }

    public int getStratum()
    {
        return ui(buf[1]);
    }

    public void setStratum(int stratum)
    {
        buf[1] = (byte)(stratum & 255);
    }

    public int getRootDelay()
    {
        return getInt(4);
    }

    public double getRootDelayInMillisDouble()
    {
        double l = getRootDelay();
        return l / 65.536000000000001D;
    }

    public int getRootDispersion()
    {
        return getInt(8);
    }

    public long getRootDispersionInMillis()
    {
        long l = getRootDispersion();
        return (l * 1000L) / 65536L;
    }

    public double getRootDispersionInMillisDouble()
    {
        double l = getRootDispersion();
        return l / 65.536000000000001D;
    }

    public void setReferenceId(int refId)
    {
        for(int i = 3; i >= 0; i--)
        {
            buf[12 + i] = (byte)(refId & 255);
            refId >>>= 8;
        }

    }

    public int getReferenceId()
    {
        return getInt(12);
    }

    public String getReferenceIdString()
    {
        int version = getVersion();
        int stratum = getStratum();
        if(version == 3 || version == 4)
        {
            if(stratum == 0 || stratum == 1)
                return idAsString();
            if(version == 4)
                return idAsHex();
        }
        if(stratum >= 2)
            return idAsIPAddress();
        else
            return idAsHex();
    }

    private String idAsIPAddress()
    {
        return ui(buf[12]) + "." + ui(buf[13]) + "." + ui(buf[14]) + "." + ui(buf[15]);
    }
分享到:
评论

相关推荐

    NTPv4最新源代码

    1. **ntp_proto.c**: 这包含了NTP协议的核心实现,处理协议报文的接收和发送,包括时间戳的交换和计算。 2. **ntp_request.c**: 这部分代码处理客户端向NTP服务器发起的请求,如获取时间、设置时间或进行对等体...

    ntp网络时间协议第4版

    3. **RFC5907:NTPv4服务器和客户端的配置**:该文档提供了配置NTP服务器和客户端的指导,包括如何设置时间源、如何优化性能、如何处理网络条件变化以及如何进行故障恢复。它还可能包含关于时区和夏令时调整的建议。...

    NTP RFC文档

    NTPv4的设计目标是向后兼容先前的版本,包括由RFC 1305定义的NTP版本3(NTPv3),同时针对现代工作站在快速局域网上的准确性提高到微秒级别的十的次方。NTPv4采用了一种改进的动态服务器发现方案,这使得在许多情况...

    NTP4 protocol

    相较于NTP版本3(NTPv3),NTPv4引入了一系列改进,包括适应IPv6的修改后的协议头和用于支持Autokey公钥认证方案的新头部扩展字段。 #### 核心架构与原理 NTPv4的设计基于一种分布式系统模型,其中的每个节点都...

    nTPV-开源

    nTPV是销售点(POS)系统。 设计用于管理餐厅,酒吧,咖啡馆和类似的企业。 它基于KDE,QT,并使用XmlRpc和DCOP作为通信方法。 它使用postgresql作为数据库后端。

    ntp protocol architecture

    NTPv3和NTPv4引入了额外的安全性和功能增强。 1. **认证**:使用数据加密标准(DES)或消息摘要5(MD5)算法来保护NTP报文不被篡改。 2. **扩展字段**:允许在NTP报文中包含额外信息,如身份验证信息等。 - **扩展...

    网络时间协议原理及应用

    NTP协议经历了多次版本迭代,从最初的NTPv1到广泛使用的NTPv3,再到截至2000年10月的最新版本NTPv4。每个新版本都提升了协议的性能和安全性。NTPv4引入了更多的优化,增强了抵抗攻击和干扰的能力,同时保持了对早期...

    NTP协议Demo程序

    3. 使用UDP套接字将Base64编码后的字符串发送到NTP服务器的特定端口(通常为123)。 4. 服务器接收请求,处理后返回包含当前时间戳的NTP响应报文。 5. 客户端接收到响应后,进行Base64解码,恢复原始的二进制报文。 ...

    时久网络时钟软件STD-mwltx+netslave 3u液晶+网络子钟6.5.rar

    时久网络时钟软件支持NTPv4协议,具有高精度和良好的网络适应性,无论是在局域网还是广域网环境下都能有效工作。此外,软件还具备自动校准和故障恢复机制,即使在网络不稳定或服务器暂时不可用的情况下,也能保持...

    SNTP protocol rfc 5905

    NTPv4是基于NTPv3(RFC 1305)进行改进的新版本,并保持了向后兼容性。 #### NTP v4 特性 NTP v4的主要改进包括: - **协议头部修改**:为了适应IPv6地址族,对协议头部进行了调整。 - **准确性提升**:通过改进的...

    网络时间协议原理及应用.ppt

    NTP协议经历了多次版本更新,从最初的NTPv1到目前广泛使用的NTPv3,以及最新的NTPv4版本,其功能和性能都在不断优化。NTP软件可以在多种操作系统上安装和运行,如UNIX、Windows NT、Mac OS等,以实现跨平台的时间...

    ntp.tar.gz_NTP 获取_ntp 系统时间_获取网络时间

    9. **NTPv4和NTPv5**:NTP的最新版本是NTPv4,尽管NTPv5已经发布,但大多数实现仍在使用NTPv4,因为它提供了足够的功能和稳定性。 10. **其他时间同步协议**:除了NTP,还有一些其他时间同步协议,如PTP(Precision...

    北斗卫星授时介绍借鉴.pdf

    多达4路独立10/100Base-T NTP输出接口,支持NTPv2、NTPv3、NTPv4及SNTP。设备采用模块化结构设计,输出信号类型丰富并可按照客户要求定制。 北斗卫星授时方案的应用: 北斗卫星授时方案的应用非常广泛,包括电力...

    时间同步客户端

    - 支持多种时间服务器协议,如NTPv3或NTPv4。 - 显示当前系统时间与时间服务器时间的偏差。 - 可调整的时间同步频率,以平衡精度和系统资源的消耗。 - 提供日志和诊断功能,帮助排查时间同步问题。 - 在多网卡环境下...

    ntp客户端源码,linux和vxworks下

    2. **协议实现**:NTP协议包括多个版本,如NTPv3和NTPv4。客户端源码需要实现这些协议,以便与服务器进行通信。这涉及到网络I/O、UDP报文的解析和构建等。 3. **时间同步算法**:NTP使用精密的时间同步算法,如...

    18种协议抓包文件

    HSRP、ICMPv4、ICMPv6、NTPv3、BGP4、CDP、EIGRP、 MPLS unicast+multicast、 PIM、RIPng、RIPv2、SDP_SIP、Q931、IAX2、IGMP、RTSP、SCTP、MGCP; 来源1:https://wiki.wireshark.org/SampleCaptures 来源2:...

    低成本GPS时钟同步服务器设计.pdf

    该设计基于NTPv4协议,适用于分布式控制系统(DCS)和数据采集与监控系统(SCADA)等对时钟同步有严格要求的场景。 文章首先指出,时钟同步对于分散系统的正常运行至关重要,尤其是对于事件顺序记录(SOE)等功能的...

    terraform_hacking_lab:在AWS EC2上为Hackazon,dvwa和果汁店设置Terraform

    一般的有关此项目的更多... 执行terraform init 执行terraform apply variables.tf文件: variable "aws_access_key" { default = "D0NTPV5HCR3DST0G1THVB"}variable "aws_secret_key" { default = "D0NTPV5HCR3DST0G

    ntp-4.1.2.tar.gz

    NTPv4.1.2是该协议的一个版本,本文将深入探讨其核心概念、工作原理以及在Linux环境下的应用。 一、NTP简介 NTP最初由David L. Mills在1985年设计,其主要目标是在分布式系统中提供准确的时间同步。NTP通过校准...

    上海交通大学硕士学位论文开题报告

    Mills提出后,经历了多个发展阶段,目前广泛应用的是NTPv3版本,而最新版本NTPv4仍在研究测试中。SNTP作为NTP的一个子集,适用于对时间精度要求不高的场合。国内对NTP的研究主要集中在国家授时中心和高校组织中。 ...

Global site tag (gtag.js) - Google Analytics