IT技术博客大学习 共学习 共进步

大型网站用户定位技术

扶凯 2011-01-05 22:45:41 浏览 2,922 次

其实这个文章叫大型网站用户定位技术,其实今天要讲的不是智能 DNS ,今天是要讲的智能 DNS 的问题,和一些网站对这个的处理,下面要讲的这个技术主要是针对比较大的文件,比如下载和视频之类。为什么要讲这个,主要是我的群中一些朋友吵着想了解一下。我答应了非常非常久了。直到现在才有时间给大家分享一下。

我们知道,现在很多网站的 GLSB 都是基于 DNS 来做。DNS 的解析流程如下。我们来看。

比如,我是北京的用户,我的 DNS 为 202.106.0.20.当我要打开 www.php-oa.com 时,先会给请求发给 ISP 告诉我的 DNS.这个叫 Local DNS 。然后其它的向根域和二级域的查询,都是由 Local DNS 帮我完成的。

当一个网站使用了智能的 DNS 后,智能 DNS 服务器会得到 Local DNS  的 IP 来区分用户的来源。如下,发现 202.106.0.20 这个 Local DNS 的地址,然后到自己收集的地址中一对比,是北京联通用户。然后给我解析 cname 到 bj.www.php-oa.com 这个地址。

这样完成了我最近的用户到最近的网站服务器的目的。

但这个有个小问题,就是当用户设的 DNS 地址不对时,比如现在很多人喜欢使用 google 的 DNS 。时会出现什么样的问题啦?

我们看下面的图片,就会知道。

当使用了错误的 Local DNS 后,用户的定位就不准了。这样会解析到离自己很远的服务器,比如,我使用了 google 的 8.8.8.8 的地址的 Local DNS。这时智能 DNS 只能得到 8.8.8.8 。然后智能 DNS 一查这个地址,是美国。就给解析到国外,我这画的是解析到 hk.www.php-oa.com。

在  Local DNS 地址不准时,解析基本都是不正常的。这些用户的响应和打开就非常慢。

解决方法,使用 IP 定位。

什么是 IP 定位,见下面的图。图实在不怎么样。。。不好意思,随手搞了一下。

当我们打开一个地址时,如下,使用了错误的 Local DNS ,但这些 Local DNS 查的智能 DNS 怎么样只会给出少量的地址,比如南方和北方都只有一个,解析的地址这些不会根着地区变化。

解析到的服务器,其实不是真实的服务器,只是一个 IP 调度器。这时客户端就会试着连接这个调度器,但调度器不吐文件,只会吐出一个 302 的响应,转到别的服务器(真实的最近的服务器)。

因为这些用户真实的请求出来到调度器上,不在是 Local DNS 的 IP ,是用户实际的 IP ,这些可以在调度器上在查 IP 的来源。这些就会非常准。

然后在使用 302 定位。更加高级可以使用 tcp 迁移技术

 在这个时候调度器可以做得非常强大,象大脑一样,多少量,多少请求,有多少热点,请求了多少文件。

使用上面的技术进行用户定位,优点很明显,定位非常非常精准,可以非常快和高效的定位到合适的资源。但不好的一点也很明显,需多进行一次 302 跳转,处理时间变长了一点点,所以非常合适视频网站之类来使用。

建议继续学习

  1. 自建DNS以防止GFW干扰 (阅读 12,941)
  2. 强制刷新本地 DNS 缓存记录 (阅读 10,640)
  3. 2014年1月21日中国互联网DNS瘫痪事件原因分析 (阅读 8,220)
  4. 关于 SOCKS 代理的远端 DNS 解析 (阅读 7,742)
  5. DNS 隧道 (阅读 7,021)
  6. 什么是DNS劫持和DNS污染? (阅读 6,101)
  7. DNS解析过程及DNS TTL值 (阅读 5,901)
  8. 当网站使用CDN后获取客户端真实IP的方法 (阅读 5,823)
  9. CentOS下通过Webmin管理BIND实现DNS轮询 (阅读 5,761)
  10. dig挖出DNS的秘密 (阅读 5,620)