Ntp原理和客户端程序的设计优质PPT.ppt

上传人:b****1 文档编号:14316172 上传时间:2022-10-22 格式:PPT 页数:27 大小:596KB
下载 相关 举报
Ntp原理和客户端程序的设计优质PPT.ppt_第1页
第1页 / 共27页
Ntp原理和客户端程序的设计优质PPT.ppt_第2页
第2页 / 共27页
Ntp原理和客户端程序的设计优质PPT.ppt_第3页
第3页 / 共27页
Ntp原理和客户端程序的设计优质PPT.ppt_第4页
第4页 / 共27页
Ntp原理和客户端程序的设计优质PPT.ppt_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Ntp原理和客户端程序的设计优质PPT.ppt

《Ntp原理和客户端程序的设计优质PPT.ppt》由会员分享,可在线阅读,更多相关《Ntp原理和客户端程序的设计优质PPT.ppt(27页珍藏版)》请在冰豆网上搜索。

Ntp原理和客户端程序的设计优质PPT.ppt

用于发送报告有关数据包的传送错误的协议。

TCP:

为应用程序提供可靠的通信连接。

适合于一次传输大批数据的情况,滑动窗口协议。

三次握手:

abbaabUDP:

提供了无连接通信,且不对传送包进行可靠的保证,适合于一次传输少量数据。

应用层:

telnet,ftp,smtp,pop3.dns,snmp,http,tftp传输层:

tcp/udp网络层:

icmp,igmp,ipv4,ipv6,bgp,rip网络接口层:

arp,rarp,mpls,ppp,slip,Ntp原理和客户端程序的设计,一.网络基础二.Socket介绍和常用函数三.udp编程四.Ntp协议和客户端程序的实现和调试五.TCP编程六.Tcp和Udp客户端服务端的例子七.开发环境的构建和TortoiseSVN,二.1.socket概念,在Linux中的网络编程是通过socket接口来进行的。

socket是一种特殊的I/O接口,它也是一种文件描述符,是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且能够实现不同机器上的进程之间的通信。

有三种类型:

流式(SOCK_STREAM)数据报(SOCK_DGRAM)原始(SOCK_RAW),二.2.Socket相关数据结构,structsockaddrunsignedshortsa_family;

/*协议族*/charsa_data14;

/*协议地址,包含该socket的IP地址和端口号。

*/;

structsockaddr_inshortintsa_family;

/*协议族*/unsignedshortintsin_port;

/*端口号*/structin_addrsin_addr;

/*IP地址*/unsignedcharsin_zero8;

/*填充0以保持与structsockaddr同样大小/;

这两个数据类型是等效的,可以相互转换,通常使用sockaddr_in更为方便,二.3SocketAPI相关常用函数,基本函数:

socket()bind()connect()listen()accept()send()recv()sendto()shutdown()recvfrom()close().字节顺序:

htons()htonl()ntohs()ntohl().字符串的IP和32位的IP:

(“192.168.0.1”structin_addr)inet_aton(),inet_pton(),inet_addr().IP和域名的转换:

gethostbyname()getaddrinfo()gethostbyaddr().其它属性相关函数set/getsockopt()fcntl()ioctl()select()getsockname,二.3SocketAPI部分函数说明,socket():

用于建立一个socket连接。

bind():

用于将本地IP地址绑定到端口号,主要用于TCP的连接,listen():

用于创建一个等待队列,在其中存放未处理的客户端连接请求。

accept():

用于等待并接收客户端的连接请求,它通常从等待队列中取出第一个未处理的连接请求。

connect():

在TCP中用于与服务器端建立连接,send()和recv():

分别用于发送和接收数据,,Ntp原理和客户端程序的设计,一.网络基础二.Socket介绍和常用函数三.udp编程四.Ntp协议和客户端程序的实现和调试五.TCP编程六.Tcp和Udp客户端服务端的例子七.开发环境的构建和TortoiseSVN,三.1UDP介绍,UDP协议是一种无连接、不可靠的传输层协议。

使用该协议只是把应用程序传来的数据加上UDP头包括端口号、段长等字段,作为UDP数据包发送出去,但是并不保证数据包能到达目的地,其可靠性由应用层来提供。

就像发送一封写有地址的一般信件,却不保证信件能到达一样。

因为协议开销少,与TCP协议相比,UDP更适用于应用在低端的嵌入式领域中。

很多场合中,如网络管理SNMP、域名解析DNS、简单文件传输协议TFTP,大都使用UDP协议。

UDP具有TCP所望尘莫及的速度优势。

虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,这无疑使速度受到严重的影响。

而UDP将安全和排序等功能移交给上层应用来完成,极大地降低了执行时间,使速度得到了保证。

UDP协议的最早规范于1980年发布,尽管时间已经很长,但是UDP协议仍然继续在主流应用中发挥着作用,包括视频电话会议系统在内的许多应用都证明了UDP协议的存在价值。

因为相对于可靠性来说,这些应用更加注重实际性能,所以为了获得更好的使用效果(例如,更高的画面帧刷新速率)往往可以牺牲一定的可靠性(例如,会面质量)。

这就是UDP和TCP两种协议的权衡之处。

根据不同的环境和特点,两种传输协议都将在今后的网络世界中发挥更加重要的作用。

三.2UDP协议的流程图,Ntp原理和客户端程序的设计,一.网络基础二.Socket介绍和常用函数三.udp编程四.Ntp协议和客户端程序的实现和调试五.TCP编程六.Tcp和Udp客户端服务端的例子七.开发环境的构建和TortoiseSVN,四.1Ntp介绍和特点,NTP(NetworkTimeProtocol)是由美国德拉瓦大学的DavidL.Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间的一种通信协议。

NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。

RFC2030Mills1996描述了SNTP(SimpleNetworkTimeProtocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP的一个子集。

特点:

1.从UTC获取标准时间2.NTP服务器分层提供服务3.过滤算法选择时间的最佳路径和来源4.识别机制抗干扰和恶意破坏,四.2NTP数据包格式,Ntp数据包格式的介绍在在RFC2030的第404行NTPpacket=NTPheader+FourTimeStamps=48bytes+header,16bytes233888共32bitsLIVNModeStratumPollPrecisionRootDelay(32bits)RootDispersion(32bits)ReferenceIdentifier(32bits)Timestamp1,8bytesReferenceTimestamp(64bits)Timestamp2,8bytesOriginateTimestamp(64bits)Timestamp3,8bytesReceiveTimestamp(64bits)Timestamp4,8bytesTransmitTimestamp(64bits)KeyIdentifier(optional)(32bits)Messagedigest(optional)(128bits),四.3NTP数据包各字段的说明,字段说明(请阅读RFC2030的453行)*LI:

LeapYearIndicator,跳跃指示器,警告在当月最后一天的最终时刻插入的迫近闺秒(闺秒)。

*VN:

VersionNumber,版本号。

*Mode:

模式,0预留;

1对称行为;

3客户机;

4服务器;

5广播;

6NTP控制信息*Stratum:

层级。

*Poll:

PollInterval,有符号整数表示连续信息间的最大间隔。

*Precision:

有符号整数表示本地时钟精确度。

*RootDelay:

有符号固定点序号表示主要参考源的总延迟,很短时间内的位15到16间的分段点。

*RootDispersion:

无符号固定点序号表示相对于主要参考源的正常差错。

*ReferenceIdentifier:

识别特殊参考源。

*ReferenceTimestamp*OriginateTimestamp:

这是向服务器请求分离客户机的时间,采用64位时标格式。

*ReceiveTimestamp:

这是向服务器请求到达客户机的时间,采用64位时标(Timestamp)格式。

*TransmitTimestamp:

这是向客户机答复分离服务器的时间,采用64位时标(Timestamp)格式。

*Authenticator(可选):

主要标识符和信息数字域就包括已定义的信息认证代码(MAC)信息。

四.4NTP较时客户端程序的操作,客户端:

1.初始化数据报头按如下初始化:

第一个字节和TransmitTimestamp(可以不)填上对应的内容.其它部分清02.向服务器发送请求3.等待服务器返回4.解析服务器返回的内容(在RFC2030的第631行)原文如下:

AunicastoranycastclientinitializestheNTPmessageheader,sendstherequesttotheserverandstripsthetimeofdayfromtheTransmitTimestampfieldofthereply.Forthispurpose,alloftheNTPheaderfieldsshownabovecanbesetto0,exceptthefirstoctetand(optional)TransmitTimestampfields.Inthefirstoctet,theLIfieldissetto0(nowarning)andtheModefieldissetto3(client).TheVNfieldmustagreewiththeversionnumberoftheNTP/SNTPserver;

四.5时间戳格式(timestampformat),时间戳格式(timestampformat)在RFC2030的第350行低32位是整数部分.高32位是小数部分NTP服务器上的时间戳为从1900年1月1日0时0分开始到至今的秒数(UTC时间)PC机上的时间戳为1970年1月1日0时0分到至今的秒数(程序中的time(NULL)返回的是UTC时间),四.5时间的计算(网络延时与时钟偏差的测量),TimestampNameIDWhenGeneratedOriginateTimestampT1timerequestsentbyclientReceiveTimestampT2timerequestreceivedatserverTransmitTimestampT3timereplysentbyserverDestinationTimestampT4timereplyreceivedatclientt为服务器和客户端之间的时间偏差;

d为两者之间的往返时间T2=T1+t+d/2;

T2-T1=t+d/2;

T4=T3-t+d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1