博客网 >

探究视频加速器的原理
作者:分类:默认分类标签:
探究视频加速器的原理
By David.Zhu 2008/06/26


1.视频加速器的原理
    视频加速器能够提供对HTTP浏览器从HTTP服务器获取.flv,.mp4等类型的流媒体内容进行实时加速,其下载原理类似于典型的 BT下载,由Tracker服务器+客户端构成,当一个HTTP Agent向HTTP服务器请求.flv,.mp4类型的数据时,视频加速器能够定位该资源,并向Tracker服务器发送节点请求,实际的下载分为两部分,这两部分同时进行:一部分为从HTTP服务器的下载;一部分走P2P网络,从拥有此资源的其它节点处下载。其实我们完全可以将成熟的P2SP的下载技术和框架应用于此。
    那么剩下一个问题:视频加速器如何截获HTTP浏览器的资源请求并将从P2P网络接受到的数据又回传给它呢?我的第一个念头就是 :BHO.经过分析,我发现他们使用了自动代理配置技术Proxy Auto-Config,简称PAC, 结合注册表和WinInet库的使用,很好的解决了上面的问题。通过动态修改注册表:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
DefaultConnectionSettings
SavedLegacySettings

[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
DefaultConnectionSettings
SavedLegacySettings
将代理服务器设置为:
Use automatic configuration script
Adress=http://localhost:9000/application.pac.
通过WinInet API:InternetSetOption OPTION=INTERNET_OPTION_SETTINGS_CHANGED来实现代理服务器的实时改动。
    这样我们通过PAC文件中FindProxyForURL的实现,就可以实现截获HTTP浏览器的资源请求;同时,由于我们采用的是HTTP Proxy技术来实现于HTTP浏览器的交互,这样将P2P网络中接收到的数据经过HTTP协议封装再传给HTTP浏览器即可。

2.一个视频加速器的PAC文件
    以下是一个某视频加速器的PAC文件,主要实现了对本机地址和LAN地址进行直通,对URL开头为http://并且内容为.flv和.mp4的文件获取进行代理加速。
function FindProxyForURL(url,host){
    if(host == "localhost" || host == "127.0.0.1")
    {
       return "DIRECT";
    }
	var private_re = /^http:\/\/((lisbon)|(0\.0\.0\.0)|(127\.\d+\.\d+\.\d+)|(10
\.\d+\.\d+\.\d+)|(172\.(1[6789]|2[0-9]|3[01])\.\d+\.\d+)|(169\.254\.\d+\.\d+)|(192\.168
\.\d+\.\d+)|(22[3-9]\.\d+\.\d+\.\d+)|(2[3-5][0-9]\.\d+\.\d+\.\d+))+/ig
    if(private_re.test(url) || url.substring(0,7) != "http://")
    {
        return "DIRECT";
    }
    var pattern = /[^\/&]+(\.flv|\.mp4)+(\?|$)/ig;
    if(pattern.test(url))
    {
        return "PROXY localhost:9000";
    }
    else
    {
        return "DIRECT";
    }
}

3.Reference
<< IE的本地域名解析机制 / Extend RichEdit ... >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

David.Zhu

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档