登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北边的风

IT 钓鱼 养生

 
 
 

日志

 
 

迅雷协议分析笔记  

2010-04-22 20:05:14|  分类: 网络分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
迅雷的原理,就是在下载文件时,向服务器询问会有哪些地方还有相同的文件,如果有,有同时在这些地方一起下载,以达到加速的目的。上面提到的服务器,不妨称为索引服务器。迅雷使用的是被称为p2sp的技术。

索引服务器有三个:58.254.39.4, 58.254.39.6 和 58.254.39.8。当这三个服务器都无法连接时,就不能搜索到其它有相同文件的站点,因此无法加速下载。
迅雷索引服务器直接使用80端口(根据参考文献,迅雷以前曾用其它端口,80端口以前仅作为备用端口),因为80端口是浏览网页的端口,封它的代价太大,所以要禁迅雷一般不能用封端口的办法,只能封IP。
当三个索引服务器的IP都被封时,用迅雷下载会依次发生以下现象:
1.迅雷尝试连接58.254.39.4,会尝试三次,三次的timeout分别(精确)是3, 6, 12秒。
2.尝试连接58.254.39.6,也是三次,方法同1
3.尝试连接58.254.39.8,同1
4.如果以上都失败,则休息120秒,然后返回1。
在连接索引服务器的同时,如果原始连接(就是在网页上要用迅雷下载的链接)可以下载,就会并行地下载。


迅雷使用的端口和IP地址众多,有论坛和各种网页(广告)的地址,垃圾信息众多,没有好的网络工具进行过滤。我在分析时利用了python帮助分析。方法是:
准备九个要下载的文件的地址
对每个要下载的文件,做以下工作:
1.打开ethereal,将缓冲设为100M,开始抓包
2.用迅雷下载文件
3.不必等2进行完毕,停止抓包,将数据导出为文本文件。
4.停止下载
这样得到九个文本文件。用python抓出每个文本文件中出现过的IP,重复的不计,分别存到九个新的文本文件ip1.txt~ip9.txt中
再用python分析这九个新的文本文件,统计每个IP出现的次数,将出现了多次的IP打印出来,去掉那些肯定不是迅雷服务器的IP(比如自己的IP以及DNS的IP等),得到大约十个"可疑"的IP地址。
打开防火墙(我用的天网),封掉这些IP地址,发现迅雷不能使用,说明所有的服务器地址都在那十个中。然后再手动排除,最后得到迅雷索引服务器的地址。
IP的分析只需要简单的正则表达式,数据结构用字典,很容易,代码就不贴了,相信也没人想看代码。
  评论这张
 
阅读(2009)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018