|
来源:中国虚拟主机评测论坛 编辑:liuhui 时间:2006-8-31 0:29:41 |
|
中国的CDN与亚洲、乃至世界上的CDN大国相比怎么样呢?不久前韩国最大的CDN运营商CDNetworks曾到中国来并与王松交流了相互的经验。事后王松感慨良多,他说:“实际上,比起中国来,韩国的CDN起步时间还要晚一些,但是他们的发展速度比我们要快很多。韩国的CDN是从2001年起才开始正式投入使用,但到现在它在世界上却是做得最好的,这和韩国整个互联网的大环境有很大的关系。到韩国你会发现它的互联网已经发展得非常好,像网络游戏、流媒体服务以及宽带接入等等都发展的非常好。 别看韩国的面积可能只相当与中国的一个省,而且到目前为止韩国的CDN只有8个节点,但是这8个节点支撑的是可以达到100G的流量,这在世界上都是屈指可数的,从这就可以看出韩国已经把互联网的应用做到极致。美国的AKAMAI公司,它有1000多个节点,带宽也才70~80G;而中国的CDN网络虽然目前有50多个节点,但却只能支撑30G左右的流量。从已建成的CDN网络的规模上来看,中国的CDN网络建设规模很大,应该可以发挥出更大的作用,在互联网上提供更丰富的服务,但是现在看来却恰恰相反,这也反映出互联网发展的水平和CDN网络规模的不对称。
究其原因,这些现状还是由于中国互联网的整体应用水平不高所造成的。在韩国,宽带接入基本普及,约有58%的用户使用xDSL,34%的用户使用专线,韩国是世界上解决最后一公里接入问题最好的国家之一;同时,韩国的多媒体市场极其丰富,多媒体内容的发展把宽带接入的利润最大化。基于这两个原因,韩国网上流媒体服务的质量要求很高,而且要满足大文件(一般在500M~600M)的高速下载,所以目前韩国CDN的主要利润来源(80%)就是来自与流媒体服务,来自Http的可能只有20%。这与中国或者美国的AKAMAI的利润来源正好相反,所以说在一定程度上韩国已经实现了很多人对未来互联网发展的设想,他们基于互联网应用的发展,很值得我们去学习和参考。
在韩国有三四家电信运营商,其中一家的市场占有率可能达到70%,但是你会发现这些从事互联网应用的商家以及运营商在专业化合作上做得非常好,大家都是以谋求共同发展为目标,比如像韩国的这家CDNetworks公司。它的合作伙伴大都是韩国市场占有率很大的企业,比如韩国最大的游戏厂商、电信运营商等。而在我国这个方面可能就不太一样,当然这也需要一个过程,需要互联网真正发展起来,需要得到大家的认同。
与韩国相比,中国的CDN最缺乏的可能还是市场的开发和推广。王松讲:“不久前参加“第八届中国国际电子商务大会”,有很多网站的老总都还不知道CDN是什么?这可能就是我们和韩国差距所在的因素之一。还有一个因素就是和市场相配套的体系的建立,如果从纯技术的角度来说,中国的CDN技术并不比美国、韩国差多少,而且,韩国的CDN技术也不是世界上最好的,但为什么它的CDN服务会如此繁荣呢?关键就在于他们对于市场的开发和推广非常得充分。
另外一个不可或缺的因素——就是政府应该有相应的政策来保护像CDN这样的新型产业。韩国CDN之所以在短短几年内快速起飞,很大一部分是得利于韩国政府一直把CDN当作是一种新型产业给予保护,才使得CDN有了一个相对有序的市场来发展。”
如果说韩国的互联网发展已经领先于世界,韩国的CDN发展已经后来者居上,那么中国的CDN发展将去向何方,前途如何?王松认为国内CDN市场正在进入市场成长期,潜力巨大。虽然最终用户的需求和企业对IT管理的需求是CDN业务发展的内在拉动力,虽然流媒体业务发展缓慢、内容提供商的盈利模式不清晰也将会导致用户对CDN业务的接受程度和业务需求在相当长的一段时间内会比较低而限制CDN的向前发展,但是中国互联网新一轮的发展正崭露头角、蒸蒸日上,这需要CDN这样新技术的支撑。我们也看到,国内外CDN市场环境存在着明显的差异性,中国的CDN运营模式不能去照搬国外运营商的业务运营模式,而应立足本国实际,发挥自身优势,挖掘一己特色,一句话,中国的CDN发展必须靠自己。 首先声明,下面的内容都是我个人根据一些工具形成的猜想。并不保证和现实中各大门户网站所用的架构一摸一样,不过我认为八九不离十了。
网易、新浪和搜狐在国内的知名度可谓无人不知无人不晓。他们每天的点击率都在千万以上。这样大的访问量对于网易、搜狐等来说怎样利用有限的资源让网民获得最快的速度成为首要的前提,毕竟现在网络公司已经离开了烧钱的阶段,开始了良性发展,每一笔钱砸下去都需要一定回响才行的。另一方面,技术人员要绞尽脑汁,不能让用户老是无法访问、或者访问速度极慢。这样就算有再好的编辑、再好的销售,他们也很难将广告位卖出去,等待他们的将是关门。当然这些情况都没有发生,因为他们的技术人员都充分的利用了现有资源并将他们发挥到了极至。说到底就是用squid做web cache server,而apache在squid的后面提供真正的web服务。当然使用这样的架构必须要保证主页上大部分都是静态页面。这就需要程序员的配合将页面在反馈给客户端之前将页面全部转换成静态页面。好了基本架构就这样,下面说说我怎么猜到的以及具体的架构:
法宝之一:nslookup
实战:
nslookup
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses: 61.172.201.230, 61.172.201.231, 61.172.201.232, 61.172.201.233
61.172.201.221, 61.172.201.222, 61.172.201.223, 61.172.201.224, 61.172.201.225
61.172.201.226, 61.172.201.227, 61.172.201.228, 61.172.201.229
Aliases: , jupiter.sina.com.cn
这里可以看到新浪在首页上用到了那么多IP,开始有人会想果然新浪财大气粗啊。其实不然,继续往下看:
nslookup news.sina.com.cn
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses: 61.172.201.228, 61.172.201.229, 61.172.201.230, 61.172.201.231
61.172.201.232, 61.172.201.233, 61.172.201.221, 61.172.201.222, 61.172.201.223
61.172.201.224, 61.172.201.225, 61.172.201.226, 61.172.201.227
Aliases: news.sina.com.cn, jupiter.sina.com.cn
细心的人可以发现了news这个频道的ip数和首页上一样,而且IP也完全一样。也就是这些IP在sina的DNS上的名字都叫taurus.sina.com.cn,那些IP都是这个域的A记录。而news,sports,jczs.news。。。都是CNAME记录。用DNS来做自动轮询。还不信,再来一个,就体育频道好了:
nslookup sports.sina.com.cn
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses: 61.172.201.222, 61.172.201.223, 61.172.201.224, 61.172.201.225
61.172.201.226, 61.172.201.227, 61.172.201.228, 61.172.201.229, 61.172.201.230
61.172.201.231, 61.172.201.232, 61.172.201.233, 61.172.201.221
Aliases: sports.sina.com.cn, jupiter.sina.com.cn
其他的可以自己试。好了再来看看sohu的情况:
nslookup
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: pagegrp1.sohu.com
Addresses: 61.135.132.172, 61.135.132.173, 61.135.132.176, 61.135.133.109
61.135.145.47, 61.135.150.65, 61.135.150.67, 61.135.150.69, 61.135.150.74
61.135.150.75, 61.135.150.145, 61.135.131.73, 61.135.131.91, 61.135.131.180
61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.132.80
Aliases:
--------------------------------------------
nslookup news.sohu.com
Server: ns-px.online.sh.cn
Address: 202.96.209.5
Non-authoritative answer:
Name: pagegrp1.sohu.com
Addresses: 61.135.150.145, 61.135.131.73, 61.135.131.91, 61.135.131.180
61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.132.80, 61.135.132.172
61.135.132.173, 61.135.132.176, 61.135.133.109, 61.135.145.47, 61.135.150.65
61.135.150.67, 61.135.150.69, 61.135.150.74, 61.135.150.75
Aliases: news.sohu.com
情况和sina一样,只是从表面来看sohu的IP数要多于sina的IP数,那么sohu上各个频道用的服务器就要多于sina了?当然不能这么说,因为一台服务器可以绑定多个IP,因此不能从IP数的多少来判断用了多少服务器。
从上面这些实验可以基本看出sina和sohu对于频道等栏目都用了相同的技术,即squid来监听这些IP的80端口,而真正的web server来监听另外一个端口。从用户的感觉上来说不会有任何的区别,而相对于将web server直接和客户端连在一起的方式,这样的方式明显的节省的带宽和服务器。用户访问的速度感觉也会更快。
1. 难道就根据几个域名的ip相同就可以证明他们是使用squid的嘛?
当然不是,前面都只是推测。下面才是真正的证实我上面的猜测。先nslookup一把sina的体育频道。
nslookup sports.sina.com.cn
Server: ns1.china.com
Address: 61.151.243.136
Non-authoritative answer:
Name: taurus.sina.com.cn
Addresses:61.172.201.231, 61.172.201.232, 61.172.201.233, 61.172.201.9
61.172.201.10, 61.172.201.11, 61.172.201.12, 61.172.201.13, 61.172.201.14
61.172.201.15, 61.172.201.16, 61.172.201.17, 61.172.201.227, 61.172.201.228
61.172.201.229, 61.172.201.230
Aliases: sports.sina.com.cn, jupiter.sina.com.cn
然后直接访问这些ip中的任意一个ip试试看,访问下来的结果应该是如下图所示:
由此可以证明sina是在DNS中设置了很多ip来指向域名sqsh-19.sina.com.cn,而其他各种相同性质的频道都只是sqsh-19.sina.com.cn一个别名,用CNAME指定。DNS的设置应该是这样的,然后server方面,通过squid 2.5.STABLE5(最新的稳定版为STABLE6)来侦听80端口。上面这些是根据一些信息分析而出的,应该基本正确的。下面一些就是我的个人的猜想:
它的真正的web server也同样是侦听80端口,因为在squid配置文件中有一项是:
httpd_accel_port 80
如果你设成其他端口号(比如88)的话,那上图的错误信息就会变成
While trying to retrieve the URL:
工具2:nmap扫描程序:可以用来检查服务器开了什么端口。
我现在用nmap来扫描sina的一个ip:61.172.201.19来进行分析
bash-2.05$ nmap 61.172.201.19
Starting nmap 3.50 ( ) at 2004-07-30 13:31 GMT
Interesting ports on 61.172.201.19:
(The 1657 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap run completed -- 1 IP address (1 host up) scanned in 73.191 seconds
可以看到他对外只开了2个端口,80端口就是刚才我们说的squid打开的,这点刚才已经验证过了。而22端口是用来ssh远程连接的,主要是sa用来远程操作服务器用的安全性非常高的方法。
工具3:lynx或者其他可以读取http头文件的工具及小程序:
直接看例子比较好理解:
HTTP/1.0 200 OK
Date: Fri, 30 Jul 2004 05:49:47 GMT
Server: Apache/2.0.49 (Unix)
Last-Modified: Fri, 30 Jul 2004 05:48:16 GMT
Accept-Ranges: bytes
Vary: Accept-Encoding
Cache-Control: max-age=60
Expires: Fri, 30 Jul 2004 05:50:47 GMT
Content-Length: 180747
Content-Type: text/html
Age: 37
X-Cache: HIT from sqsh-230.sina.com.cn
Connection: close
上面是sina的http头的反馈信息。里面有很多有价值的东东哦:)譬如,它后面的apache是用2.0.49,还设了过期时间为2分钟。最后修改时间。这些都是要在编译apache的时候载入的,特别是Last-Modified还需要小小的改一把源码--至少我是这样做的。
综上所述
sina的架构应该是前面squid,按照现在的服务器2u,2g内存一般每台服务器至少可以跑4个squid2.5stable5. 这样它16个ip就用了4台服务器。后面一层是apache2.0.49应该会用2台。这2台可能用的全是私有ip,通过前面的squid服务器在hosts文件中指定。具体的实现方法我会下次整理出我做实验的文档:)而apache的htdocs可能是有一个或2个磁盘阵列作nfs。apache mount nfs server的时候应该是只读的,然后另外还有服务器转门用来做编辑器服务器,用来编辑人员更新文章。这台服务器应该对nfs server是具有可写的权限。
----这就一套完整的sina所运用的方案,当然很多是靠猜测的,我没有和sina的技术人员有过任何沟通(因为一个也不认识),否则我也就不会写出来了。其他sohu,163应该也有这样的架构。
最后声明:这只是一些静态页面组成频道的一个架构,sina还有很多其他服务器,什么下载,在线更新等不在这个架构中 |
 |
|
 |
|