1. 概述

1.1背景介绍

我们经常在用户的网络中发现大量的P2P应用,占用了网络中大量的宝贵带宽资源,用户的网络管理者也知道内网中存在这些应用,也采取了一些限制措施,但是效果并不一定理想。本文试着以数据包为基础来分析这类软件的原理,并提出相应的限制办法。

1.2 P2P 及P2SP 技术简介

P2P(Peer to Peer),用户对用户,即对等计算或对等网络,可以简单的定义成通过直接交换,共享计算机资源和服务。在P2P 网络环境中,彼此连接的计算机均处于对等的地位,每台计算机既能充当网络服务的请求者,又能对其他计算机的请求做出响应,提供资源与服务。通常这些资源和服务包括信息的共享与交换、计算资源的共享使用、存储资源的使用等。

P2SP 全称是Peer to Server&Peer,是迅雷首创的一种下载技术,并于2003年在美国申请了专利,也申请了全球专利,具有较高的技术含量。P2SP技术在下载的稳定性和下载的速度上,都比传统的P2P或P2S有了非常大的提高。用户对服务器和用户,不同于P2P,也不同于P2S(Peer to Server),P2SP 下载方式实际上是对P2P 技术的进一步延伸,它不但支持P2P 技术,同时还通过多媒体检索数据库这个桥梁把原本孤立的服务器资源和P2P 资源整合到一起。在传统的传输技术中用户一次只能连接一个服务器进行下载,而P2SP 技术能搜索某一内容在其他服务器上镜像并将其存储于数据库中,用户能同时从多个服务器上下载内容,如图1 所示。在P2SP 中通过引入服务器作为资源数据来源的方法,避免了P2P 中资源提供不稳定的问题。迅雷是 P2SP 的典型代表,它利用独特的"多媒体搜索引擎技术",不再是单纯的服务器多线程下载或者单纯的P2P 内容传递,而是把所有P2P 资源与原本孤立的服务器及其镜像资源进行整合,可以同时从多个服务器端下载文件,这样下载速度更快,同时下载资源更丰富,下载稳定性更强。

图1 P2SP原理

1.3 P2SP 应用的工作原理

P2SP 应用包括两部分,第一部分是P2S,即Peer to Server,属于传统的C/S 体系结构,第二部分是P2P,即Peer to Peer,也就是P2P 体系结构,P2SP 应用通过资源服务器将C/S和P2P 两种体系结构进行了整合。首先明确,资源服务器是指专门用于自动收集存储资源信息和向客户端发放所需拥有资源的地址列表,节点服务器是指拥有该资源并可以提供下载的HTTP 或FTP 服务器。基于P2SP 文件下载应用的一般工作流程如下:

图2 P2SP应用的工作原理图

  1. 客户端在因特网上得到下载资源的链接,链接可以通过下载软件站点获取,比如天空软件站,也可以通过资源搜索引擎获取,比如迅雷旗下的狗狗。我们称这个链接所指向的资源为原始资源。客户端通过HTTP 或者FTP 请求原始资源,从原始资源地址获取数据。
  2. 客户端根据原始资源的名称、大小等信息计算其HASH 值,此HASH 值能够唯一地标识该资源。然后通过HASH 值向资源服务器发出请求,请求因特网上具有该资源的其他节点服务器列表和在线的客户端列表。资源服务器分别返回这两种地址列表。
  3. 客户端向节点服务器发起请求,从这些节点服务器获取数据,进行P2S 下载。
  4. 客户端向其他客户端发起请求,从这些在线客户端获取数据,进行P2P 下载。

可以发现,P2SP 下载实际上是一种多资源多协议下载方式,可以博采众长,因而具有很高的下载速度和稳定性。

  1. 迅雷下载分析

2.1准备工作

先打开科来网络分析系统,同时关闭电脑上不必要的软件,以免影响分析。

开始抓包:

2.2打开迅雷开始下载过程

首先我们在人人影视上找到一个要下载的影片:

我们使用普通下载,然后自动打开迅雷的下载页面:

此时我们在科来网络分析系统里面查看TCP会话和UDP会话:

我们注意到,点击完下载的一刻,迅雷软件就会连接到人人影视的资源列表里面:

迅雷开始获取影片信息。

之后把相关的影片信息上传到了迅雷服务器上:

开始下载,第一个先在115网盘里面开始了下载,先查询了u.115.com的IP地址,然后开始了下载:

可以看到,迅雷软件通过HTTP访问的都是为了获取相关影片信息,以及一些可以通过HTTP下载的FTP下载的服务器。

我们关注一下这些TCP Other的数据:

可以看到主要是一些BT网络的连接,以便获取相关种子信息等等。

通过这样不断的种子信息交换,不同端点的主机之间建立起来的庞大的数据交互:

2.3 小结

我们注意到,在下载开始后所有信息的交互都会和迅雷的服务器发生关系,那么我们要封杀迅雷只要将这些迅雷服务器给封掉就行了。

我们在DNS日志里面可以看到下载过程中都去查询了哪些域名的IP信息:

三、总结

经过上面的分析,我们可以看到,在迅雷下载过程中,迅雷软件肯定是要连接一些服务器的,那么我们在相关设备上做相应的策略,禁止客户来访问这些域名,来配合BT禁止端口策略,可以起到较好的效果。

从数据包谈如何封杀P2SP类软件的更多相关文章

  1. [置顶] NS2中对TCP数据包和ACK包的TCP Sink类的主要实现代码详尽剖析--吐血放送

    NS2中对TCP数据包和ACK包的TCP Sink类的主要实现代码详尽剖析,限于个人水平,如有错误请留言指出! TcpSink类的recv()方法: void TcpSink::recv(Packet ...

  2. 浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)

    UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...

  3. 【VS开发】浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)

    UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...

  4. 用Java代码实现拦截区域网数据包

    起因: 吃饭的时间在想如果区域网内都是通过路由器上网,那如何实现拦截整个区域网的数据包,从而实现某种窥探欲. 思路:      正常是通过电脑网卡预先设置或分配的IP+网关对路由器进行通讯,比如访问百 ...

  5. iOS开发之Socket通信实战--Request请求数据包编码模块

    实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...

  6. TCP数据包的封包和拆包

    //该段博文为引用,非原创. 封包和拆包 作者:fengge8ylf  博客:http://blog.csdn.net/fengge8ylf 对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就 ...

  7. Linux内核--网络栈实现分析(六)--应用层获取数据包(上)

    本文分析基于内核Linux 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7541907 更多请看专栏,地址http: ...

  8. DatagramSocket收发UDP数据包

    Java的Socket通信分为TCP和UDP两种,Socket和ServerSocket类用于TCP通信,DatagramSocket用于UDP通信. 使用DatagramSocket发送UDP数据包 ...

  9. LoRaWAN协议(二)--LoRaWAN MAC数据包格式

    名词解析 上行:终端的数据发送经过一个或多个网关中转到达网络服务器. 下行:由网络服务器发送给终端设备,每条消息对应的终端设备是唯一确定的,而且只通过一个网关中转. LoRaWAN Classes L ...

随机推荐

  1. Java API 快速速查宝典

    Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...

  2. 【VB超简单入门】二、知识准备

    在开始编程之前,需要先熟悉一下各种操作和术语,以后学习编程才能得心应手. 首先最重要的操作当然就是-电脑的开机关机啦~(开个玩笑哈哈),必须掌握软件的安装和卸载,还有能编写批处理程序对平时的使用也是很 ...

  3. 认识与学习 BASH

    2015-08-03摘自鸟哥 什么是变量? 那么,什么是『变量』呢?简单的说,就是让某一个特定字符串代表不固定的内容就是了.举个大家在国中都会学到的数学例子, 那就是:『 y = ax + b 』这东 ...

  4. AFHTTPClient的异步回调模式

    以前第一个版本,ios的http都用的同步模式,在很多地方会导致线程阻塞,自己开发了一个简易的AFHTTPClient的异步回调模式. 回调的protocol: @protocol MyAFNetwo ...

  5. [转]Try Cloud Messaging for Android

    本文转自:https://developers.google.com/cloud-messaging/android/start

  6. [转]响应式网页设计:rem、em设置网页字体大小自适应

    本文转自:http://www.cnblogs.com/aimyfly/archive/2013/07/19/3200742.html 「rem」是指根元素(root element,html)的字体 ...

  7. UESTC 881 神秘绑架案 --二维DP

    LRJ黑书上的例题. 化简均方差公式: 均值的平方一定,所以只需让矩形的总分的平方和最小即可. 定义:dp[k][x1][y1][x2][y2],以(x1,y1)为左上角坐标,(x2,y2)为右下角坐 ...

  8. UESTC 901 方老师抢银行 --Tarjan求强连通分量

    思路:如果出现了一个强连通分量,那么走到这个点时一定会在强连通分量里的点全部走一遍,这样才能更大.所以我们首先用Tarjan跑一遍求出所有强连通分量,然后将强连通分量缩成点(用到栈)然后就变成了一个D ...

  9. 数字对 (长乐一中模拟赛day2T2)

    2.数字对 [题目描述] 小H是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R < ...

  10. IE插件收集

    IEWatch IEWatch是一个微软IE的内置插件,可以让你看到和分析HTTP/HTTPS头信息,Cookies以及通过GET和POST提交的数据.我是经常用来看页面加载时间 下载最新版本请访问: ...