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(一台服务器地址)信息 ...
随机推荐
- [书籍精读]《你不知道的JavaScript(下卷)》精读笔记分享
写在前面 书籍介绍:JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解.本套书直面当前JavaSc ...
- 特殊恢复:oradebug推进Linux平台SCN的值
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效 ...
- Kafka入门实战教程(2)基于Docker搭建Kafka环境
1 准备工作 这里我们使用一台Linux CentOS系统的服务器来模拟三个Kafka Broker的伪集群(即一台server上开三个不同端口)环境用于学习测试,大概的准备工作有两个: 安装Dock ...
- java set TreeSet详解
TreeSet 是sortedSet的唯一实现类,正如SortedSet名字暗示,TreeSet可以让集合元素处在排好序的状态. 与HashSet相比,TreeSet还额外提供了以下的方法(列出来,混 ...
- tp5 后台日程(日历)安排
1)记录----日程安排 2)需求: ) 1.遍历月份到后台 实现切换月份 并显示当月的今天高亮 设计数据表 ) 2. 添加日程 添加可见用户,只有可见用户才可以看到该发布的日程安排 ) 3.日程提交 ...
- C# 泛型对象转Get请求参数
/// <summary> /// 对象转Get请求参数 /// </summary> /// <returns>< ...
- 前端开发系列022-基础篇之JavaScript和JSON(进阶)
在[javaScript和JSON](http://wendingding.com/2018/04/16/javaScript%E7%B3%BB%E5%88%97%20[05]-javaScript% ...
- Django 实战:Celery 异步任务从环境搭建到调用全掌握
一.Celery入门 介绍 Celery 是一个简单.灵活且可靠的分布式任务队列系统,专注于实时处理的异步任务队列,同时也支持任务调度.Celery是实现异步任务.定时任务的一种工具. Celery ...
- ubuntu 安装flash
安装一直失败 转载 ubuntu 14.04安装flash无效的解决方法 144 作者 Devid 关注 2015.11.20 20:44* 字数 350 阅读 1701评论 1喜欢 0 原文出处:h ...
- opengl 学习 02
opengl 学习 之 02 lesson 简介 绘制三角形,然后加载shader,改变三角形的颜色 link http://www.opengl-tutorial.org/uncategorized ...
