从数据包谈如何封杀P2SP类软件

  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禁止端口策略,可以起到较好的效果。

时间: 2024-10-22 12:57:06

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

macos或类linux 系统安装ettercap + gtk3 抓取并分析邻居数据包

最近邻居夜生活猖獗,打游戏"砸键盘".搞直播弹琴唱歌以及各种与人视频聊天,每天半夜十二点以后,笑声.骂声.弹琴声.唱歌声轮番上阵,先前公用路由是我控制的,密码只有我一人知道,还能限个速.这两天这哥们找个了人把路由器初始化,然后自己设置了管理密码,更疯狂的猖獗的闹腾了.好吧,你有张良计,我有过墙梯. "Ettercap是一款强大的可以被称为神器的工具,同类型软件中的佼佼者.Ettercap是开源企且跨平台 的,Ettercap在某些方面和dsniff有相似之处,同样可以很方便的

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

UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个字节.由于udp包头占8个字节,而在ip层进行封装后的ip包头占去20字节,所以这个是udp数据包的最大理论长度是2^16-1-8-20=65507. 然而这个只是udp数据包的最大理论长度.首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层.网络层.运输层.应用层.UDP属于运输

简谈packet tracer软件使用时数据包分叉状态

这种分叉的状态是我们在使用模拟模式时,会看到数据包发出后会分叉为多个,发送给很多终端,再一次发送时会发现这种状况又消失了.这是为什么呢? 首先我们会通过ping的命令去测试是否通信,ping发出的数据包类型是ICMP(网络控制消息协议). 交换机属于二层设备又称二层交换,代表OSI七层的前两层,不支持网络层. 当发送端给输出端发送数据包时,需要目标主机的MAC地址,发送端会查询本地的MAC地址列表,如果该列表中,没有目标主机的MAC地址,则会发送MAC地址请求包,我们又叫ARP,ARP经过交换设

数据包的分类和调度-Linux TC的另一种解释

如果从分层递归的角度理解Linux的TC框架,很容易将队列分为有类队列和无类队列,这个角度上看,有类队列和无类队列的地位是平等的.但实际上,它们 之间是有层次关系的.之所以将其分为有类队列和无类队列,完全是实现意义上的,你可以看到,Linux对于TC框架的实现非常紧凑,正是基于这种递归的 "排队规则,类别,过滤器"三元组来进行的.但是抛开实现,我们需要用一种更加合理的方式来彻底理解数据包调度. 1.数据包调度 数 据包调度是一个层次,隔离了网卡驱动的收发模块和协议栈.也就是说,数据包从

数据包传输的全过程

第一个 什么是FTP? FTP是英文File Transfer Protocol的缩写,意思是文件传输协议.它和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件.相比于HTTP,FTP协议要复杂得多.复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令:另一个是数据链路,用来上传或下载数据. FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式. PORT(主动)方式的连接过程是:客户

一个简单的SOCKET程序的数据包结构和封解包函数

/*练习写套接字通信程序时候写的一段代码,本来想写个聊天室但写来写去进度卡在界面上接节下来都是通信部分的代码 因为只是试验用所以都是用C写的,等界面部分完工后会用类来封装一下 因为本人E文很烂所以变量和函数的命名是具有中国特色的,求理解.不过我注释的很详细了 谨以此文纪念我那坑爹的编程自学生涯......................**/ #include "stdio.h" #include <windows.h> //////////////////////////

python 脚本开发实战-当当亚马逊图书采集器转淘宝数据包

开发环境python2.7.9 os:win-xp exe打包工具pyinstaller 界面tkinter ============================================= 最近有个朋友让我写个小功能,采集当当网数据,生成淘宝数据包 需要采集出版社,作者,主图,价格 采集方式是搜索书名或者ISBN编号 废话不多说,老司机开始上路了 首先,分析当当网数据,这里祭出大杀器,firefox下fire-bug,查看网络数据不再话下 查看源码 <ul id="compon

TCP/IP数据包结构具体解释

[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,可是它是互联网的基础,在各方面都有广泛的应用.由IP协议衍生的协议族有10数种(据我所知),以后还会出现 很多其它的基于IP的协议- 先从实际出发吧! 一般我们在谈上网速度的时候,专业上用带宽来描写叙述,事实上不管说网速或者带宽都是不准确

分析数据包(Microsoft Visual Studio 2010)

// Fenxi1.cpp : 定义控制台应用程序的入口点.//代码如下:#include "stdafx.h"#include "pcap.h"#include "bittypes.h"#pragma comment(lib,"ws2_32.lib")typedef struct ip_address{    u_char byte1;    u_char byte2;    u_char byte3;    u_char