cdn内容分发网络快的原因是解决了最后一公里的问题,dns中心控制服务器将用户指向离用户比较近的接入服务器来进行服务,从而使得用户到内容的距离变短。
在进行域名查询时,常常会得到一个TTL(time to live)值,如同ping时一样。
TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服 务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将 不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
TTL值设置的应用:
一.增大TTL值,以节约域名解析时间,给网站访问加速。
一般情况下,域名的各种记录是极少更改的,很可能几个月、几年内都不会有什么变化。我们完全可以增大域名记录的TTL值让记录在各地DNS服务器 中缓存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回 域名解析记录。
二.减小TTL值,减少更换空间时的不可访问时间。
更换空间99.9%会有DNS记录更改的问题,因为缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效。 结果就是有的人可能访问到了新服务器,有的人访问到了旧服务器。仅仅是访问的话,这也不是什么大问题,但如果涉及到了邮件发送,这个就有点麻烦了,说不定 哪封重要信件就被发送到了那已经停掉的旧服务器上。
TTL(time to live)是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。当对网络上的主机进行ping操作的时候,本地机器会发出一个数据包,数据包经过一定数量的路由器传 送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络 开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。默认情况下,Linux系 统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。当不知道目的主机的操作系统的时候 我们可以根据TTL来猜测,但是不一定100%准确,如果目的主机是windows,但是经过了比如75个路由器,那么TTL的返回值是 128-75=53,那么你可能认为这个目的主机是Linux系统,但是一般不会经过那么多的路由器,所以通过TTL来判断目的主机的操作系统还是有一定的依据的。
CDN网络的域名解析过程:
[caption id="attachment_413" align="aligncenter" width="386" caption="cdn dns示意"][/caption]
常用网络命令ping参考
最近因为网络问题导致一些服务器不可用,闹腾了好几天,整理了一下网络诊断中产用的几个网络命令,便于后续自己遇到问题时能够比较方便的判断和跟进!
一 ping
它是用来检查网络是否通畅或者网络连接速度的命令。ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。
基本上,ping 从您的服务器向目标服务器发送 Internet 控制消息协议(Internet Control Message Protocol,ICMP)数据包,然后接收来自目标服务器的响应。如果收到响应,那么您能够连接到目标服务器。使用 ping 是确定是否存在问题、数据在服务器之间的传输速度,以及您是否能够连接目标的简单而快速的方法。
下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。
1 -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。
2 -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。
3 -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。
说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。
下面我们举个例子来说明一下具体用法。
这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是 win98。这里time值越小越好啦,说明你连接对方的服务器就越快。
(小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix)
至于利用ping命令可以快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击……这些就靠大家自己发挥了。
但有些时候,ping 不能作为确认能够连接到服务器的唯一工具,因为服务器可能通过防火墙阻止了 ICMP 请求。以下示例显示 ICMP 被阻止并模拟无法连接到 IBM.com 的 IP 地址 129.42.18.103 的情况:
ping 129.42.18.103
PING 129.42.18.103: (129.42.18.103): 56 data bytes
^C
----129.42.18.103 PING Statistics----
6 packets transmitted, 0 packets ...