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(一台服务器地址)信息 ...
随机推荐
- 爆肝整理!0 基础 AI 编程必拿的 3 大神器:源码一键跑 + 推广秘籍 + 私教答疑
2025年预期的 AI 应用爆发并没有到来,但是编程领域却是个特例.AI 编程工具正在引领大模型落地的浪潮,展现出明显的产品市场契合度(Product Market Fit,PMF). 那么在全面智能 ...
- 现在的AI工具已经能够创作音乐了?
本文由 ChatMoney团队出品 随着科技的不断进步,音乐是人类文明的一部分,它在社会.文化.艺术和娱乐领域发挥着重要作用.随着AI技术的发展,AI技术的应用正在以惊人的速度改变音乐创作.演奏.传播 ...
- TCP入门简单例子
TCP的简单例子 TCP最简单聊天室 客户端 连接服务器 Socket 发送消息 package TCP; import java.io.IOException; import java.io.Out ...
- vue3使用composables来取代mixins 来状态复用
前言 最简单理解composables的方式 就是将其视为vue版的自定义hooks 来个demo 比如 页面初始化的时候 我需要请求接口 获取数据 并回填至表单 以前的做法 src/pages/in ...
- win11正式版系统解决电脑卡顿的问题
有雨林木风官网的小伙伴,刚升级安装完原版win11系统,却发现一点都不好用,而非常卡顿,不流畅.原因可能是配置或运行内存占用过多也可能是因为原版系统没有优化过的问题.针对这个问题,雨林木风小编将与大家 ...
- Win11双击文件夹卡死转圈打不开的问题
有一部分雨林木风官网的win11专业版用户,在使用电脑鼠标双击文件夹时,出现无法打开,而且箭头也是一直在转圈圈的问题,这是个什么情况呢?本文中,雨林木风小编将为大家分享详细的解决方法,希望可以帮助到有 ...
- win10系统出现虚拟内存不足的问题
最近有电脑基地的用户发现,用windows10系统的电脑物理内存已经16G,不过在使用程序时还是会弹出虚拟内存不足,将关闭**程序的问题,而系统也变的很卡,但是,出现虚拟内存不足如何设置呢?下面技术员 ...
- inspector 只读属性
需要使用 Unity-ui-extensions 包 使用添加 [ReadOnly]就行
- Java GC知识总结
目录 简介 判断对象是否可达 引用计数法(Reference Counting) 可达性分析法(Reachability Analysis) Java中4种引用与GC的关系 强引用(Strongly ...
- java之实例方法
带static在类中类名直接调用 不带static的方法称为实例方法,实例方法的调用必须先new一对象