P2P网络下分布式文件共享场景的测试
P2P网络介绍
P2P是Peer-to-Peer的缩写,“Peer”在英语里有“对等者、伙伴、对端”的意义。因此,从字面意思来看,P2P可以理解为对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”,学术界则统一称为对等网络(Peer-to-Peer networking)或对等计算(Peer-to-Peer computing)。

P2P对等网络的基本模型
P2P对等网络是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。
简单一点说,P2P对等网络是一种网络结构的思想,与目前网络中占据主导地位的客户端/服务器(C/S=Client/Server)结构的主要区别在于:P2P对等网络结构中不存在中心节点(或中心服务器);每个参与者(节点)的地位对等,既充当服务器(Server),为其他节点提供服务,同时也享用其他节点提供的服务,即客户端(Client);而对等节点(Peer)之间无需经过第三方中间实体就可以实现互相访问。

C\S架构 vs P2P架构
分布式文件共享场景的应用
P2P网络计算技术正不断应用到军事、商业、政务、电信、通讯等领域。根据具体应用不同,可以把P2P应用大致分为文件内容共享和下载、流媒体技术、计算能力和存储共享等方面,本文中主要对P2P网络技术中文件内容共享和下载进行测试说明。
BT客户端下载一个共享文件的过程是客户端首先解析种子文件,获取待下载的共享文件的一些信息,其中包括Tracker服务器的地址。然后客户端连接Tracker获取当前下载该文件的所有下载者的IP和端口信息,之后客户端根据IP和端口信息连接其他下载者,从他们那里下载文件,同时也会把自己已经下载的部分提供给其他下载者下载。
基于ALPS平台在P2P网络技术的测试
针对P2P对等网络技术,信而泰ALPS测试平台可以通过Application Simulator 测试组件,对BitTorrent(BT)和eDonkey这两种协议进行基本功能模拟及性能测试,并输出详细的测试统计结果。
信而泰BigTao、Daryu及Darpeng2000E测试设备所搭载的ALPS测试平台具备了多种测试插件,ALPS平台可以通过Application Simulator插件实现 BitTorrent Simulator功能和eDonkey Simulator功能。

BigTao测试平台

DarYu测试平台

Darpeng2000E测试平台
可通过浏览器界面进行相应的Application Simulator 插件的创建,相关IP/port资源的预留、应用模型、流量模型和负载类型的配置,实现测试例的创建、修改、保存、删除、执行、测试结果的查看等功能。
ALPS BitTorrent 协议仿真功能,重点仿真Tracker HTTP Protocol和Peer Wire Protocol两个协议,分别对应仿真客户端与Tracker 交互,以及客户端从Peer处下载数据的流程,通过在此平台上的配置,可以实现Download File和Upload File两种action,Download File表示客户端向远端peer请求数据,Upload File表示远端peer向客户端请求数据,表示数据传输的两个方向。


eDonkey又称为ED2K协议,用于对等客户端之间的通信,众多的对等客户端形成了基于服务器的P2P文件共享系统。目前我们的ALPS eDonkey用于仿真client与client交互的场景。

除了协议仿真测试之外,这两种协议也可以支持作为攻击测试的应用背景流和混合流量测试。
- 可以在攻击测试的同时,通过配置p2p协议流量作为攻击测试中的背景流量,来测试被测设备对流量类型种类的区分与相应处理能力

- 可以通过在Application Simulator组件中创建多条应用流,构造混合流量,来测试被测设备对混合流量的接收能力。

以Bittorrent为例,在ALPS上模拟Bittorrent Download协议仿真的主要操作步骤:
1、占用端口,配置网络邻居
2、配置应用流及应用配置
3、创建测试例
4、保存并运行测试例

将“新建速率”配置为200,在结果统计中新建速率结果为1400,这是因为Bittorrent需要运行BitTorrent Tracker 和BitTorrent Peer 这两个程序流,分别模拟 BitTorrent 对等方与跟踪器服务器通信和BitTorrent 点对点协议,整个过程需要六条peer会话和一条控制会话,因此新建速率统计结果与新建速率预设值就是七倍的关系。
补充说明
根据抓包现象可以看出,真实BT下载的时候,对于client来说,只有一个IP(11.0.0.7),但是提供下载文件的人是不同的IP,这里模拟提供下载文件的人的时候,没有占用多个IP,只用了一个IP,但是必须要用不同的端口号,所以抓包看IP是相同的,端口号有6个(6881-6886);而在测试例中是两个flow,六条peer会话和一条控制会话,因此新建统计结果与预设值就是“6+1”倍的关系。






P2P网络下分布式文件共享场景的测试的更多相关文章
- go语言打造p2p网络
传送门: 柏链项目学院 就像1000个人眼中有1000个哈姆雷特一样,每个人眼中的区块链也是不一样的!作为技术人员眼中的区块链就是将各种技术的融合,包括密码学,p2p网络,分布式共识机制以及博弈论等. ...
- linux下P2P协议(BitTorrent)-libtorrent库编译,测试
1.libtorrent 简介,下载和编译 libtorrent简介 libtorrent是功能齐全的C ++ bittorrent的p2p协议实现,专注于效率和可伸缩性.它可以在嵌入式设备和台式机上 ...
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技 ...
- 详解区块链P2P网络
根据前一篇文章<从微观到宏观理解区块链>我们已经了解到,微观上,区块链本质就是一种不可篡改且可追踪溯源的哈希链条:宏观上,还具备了另外三个基本特征:分布式存储.P2P 网络和共识机制.分布 ...
- Windows和Linux的Jmeter分布式集群压力测试
Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...
- 以太坊—P2P网络
Chord算法 1.Chord 概念 Chrod算法是P2P中的四大算法之一,是有MIT(麻省理工学院)于2001年提出 . Chord的目的是提供一种能在P2P网络快速定位资源的的算法,Chord并 ...
- JXTA 2: 具有高性能、海量伸缩性的 P2P 网络
这是来自developerWorks的一篇文章,地址是 https://www.ibm.com/developerworks/cn/java/j-jxta2/ ———————————————————— ...
- P2P 网络核心技术:Gossip 协议
背景 Gossip protocol 也叫 Epidemic Protocol (流行病协议),实际上它还有很多别名,比如:“流言算法”.“疫情传播算法”等. 这个协议的作用就像其名字表示的意思一样, ...
- 微服务架构下分布式Session管理
转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号”. 一.应用架构变 ...
- IPFS网络是如何运行的(p2p网络)
IPFS是一个p2p网络,先来看看BitTorrent的p2p网络是如何工作的? 想要bt下载一个文件,首先你需要一个种子文件torrent,种子文件包含至少一个 Tracker(一台服务器地址)信息 ...
随机推荐
- 替换GitLab的方案之Gitea
概述 官网:https://docs.gitea.com/zh-cn/ GitHub地址:https://github.com/go-gitea/gitea Gitea 是一个轻量级的 DevOps ...
- java Set HashSet详解
Set集合 就像把对象随意扔进罐子里,无法记住元素的添加顺序.Set某种程度就是Collection,方法没有不同,只是行为稍微不同,(不允许重复元素),如果一定要往里加两个相同元素,添加失败add( ...
- 可编程Modbus网关在非标称重仪表的应用
1.概述 上海卓岚信息科技有限公司是一家专业提供工业物联网解决方案的高新技术企业,注册商标"ZLAN".公司研发的产品:物联网芯片.串口转以太网模块.串口服务器.可编程Modbus ...
- 学习spring cloud记录9-nacos深一步学习
前言 统一配置管理将各个服务的配置管理起来,如果发生变化,可以主动向服务发送信息.配置管理服务也在nacos中. 配置热更新 在配置列表新建配置 发布后,这个配置已经进入统一配置管理 服务配置拉去 项 ...
- idea集成翻译插件
在读开源代码时,英文注释看起来比较吃力,于是安装一个翻译插件第一步:安装TranslateHelper插件 配置 IDEA -> Preferences -> Plugins ,安装Tra ...
- OLAP分析数据库适用场景及主流产品对比
本文分享自天翼云开发者社区<OLAP分析数据库适用场景及主流产品对比>,作者:刘****鑫 随着企业数字化程度不断提升,数据分析场景越老越丰富,企业在以下几种场景下可能需要使用OLAP(O ...
- vue的keep-alive,后台播放音乐?
vue的keep-alive,是否能做到后台播放音视乐? 答案当然是不能. 因为处于失活状态的组件,其真实dom已经从页面移除了,只将其存放到了内存中. dom都不存在了,还播放啥. 能做什么? 顶多 ...
- Efficient C++ 阅读笔记
Efficient C++ 阅读笔记 技术要点: reference 永远没有成为NULL的机会 如果出现 那么请隔离那个写出这种代码的程序员 在写程序的时候为了系统的健壮性能,一定要测试 指针的可用 ...
- paraview 导出表面网格
简介 RT 步骤 如下所示 然后save data即可
- GraphQL类型系统如何让FastAPI开发更高效?
扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ 1. GraphQL类型系统基础 ...
