(信号与信息处理专业论文)p2p网络仿真数据统计及数据交互过程演示.pdf_第1页
(信号与信息处理专业论文)p2p网络仿真数据统计及数据交互过程演示.pdf_第2页
(信号与信息处理专业论文)p2p网络仿真数据统计及数据交互过程演示.pdf_第3页
(信号与信息处理专业论文)p2p网络仿真数据统计及数据交互过程演示.pdf_第4页
(信号与信息处理专业论文)p2p网络仿真数据统计及数据交互过程演示.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i摘 要 作为近年来网络通信领域备受关注的重要技术之一,对等网络相关协议算法不断涌现, 其功能和性能均需实验加以测试与验证。 利用软件的方法对对等网络进行仿真,可以在缺乏硬件支持的情况下,获取网络设计或优化所需要的网络性能数据,为相关研究提供参考依据。由于网络仿真过程输出数据量大、需要统计的参量多,系统、高效的仿真数据统计分析已成为网络仿真分析的一个重要问题。 本论文首先介绍了对等网络的技术背景,对等网络仿真分析的研究现状和面临的一些问题;接着描述了对等网络仿真数据分析和协议交互演示的需求。结合几种对等网络仿真统计分析的基本需求,定义了相关对等网络仿真协议交互过程数据记录文件及其所包含的数据项和格式;根据这些交互过程数据记录文件,基于 matlab 软件平台,一方面采用动画的形式再现了对等网络中节点之间协议和数据交互的完整过程,另一方面还计算分析得到相应的统计参量;最后还以一种对等网络直播协议和一种对等网络下载协议仿真为例,分别进行了仿真数据统计分析和协议交互过程动画演示的测试,计算分析得到所需的各类统计参量,并以动画的形式重现了节点之间的数据传输过程。 测试和分析结果表明,所提出的对等网络仿真数据统计分析和协议交互动画演示系统已经实现了所定义的功能,能够为相关对等网络协议的大规模仿真分析提供系统、高效的统计分析手段。 本论文的研究结果,可以进一步应用于大规模对等网络仿真统计分析和相关协议的功能验证,有利于相关协议算法的进一步研究和分析。 关键词关键词:对等网络; 仿真; 统计分析; 动画演示 iiabstract a large quantity of protocol algorithms about p2p are constantly emerging, which is one of the most important technology receives much concern. the functions and performance of these algorithms need to be tested and verified by experiments. the simulation of p2p network, which only using software, can obtain the performance data of network design and optimization, provide reference to network research in the situation of lack of hardware. however, due to the large volume of data and statistical parameters, a systematic and high efficient statistic analysis of simulation data has become an important problem of network simulation. the thesis firstly introduced the technology background of p2p network, the research status of p2p network simulation, and some problems facing. secondly this thesis described the requirements of p2p network simulation analysis and the animation of p2p network data transmission. according to these requirements of some p2p algorithms, this thesis defined some data record formats of statistic analysis and animation of p2p network data transmission. based on those data record, this thesis realized statistic analysis and animation of p2p network data transmission with matlab. at last, this thesis took mtn live broadcast algorithm and mtn download algorithm as examples, tested the functions of statistic analysis and animation of p2p network data transmission, obtained all kinds of parameters needed accurately, reproduced the process of p2p network data transmission. through the test results, this p2p network simulation analysis and the animation of p2p network data transmission system has realized the required function, is able to provide a systematic and high efficient statistic analysis solution to the analysis of p2p protocol algorithms. the result of this thesis can also used in large scale p2p network simulation statistic analysis, and is helpful for the further research of related protocol algorithms. keywords: peer-to-peer network; simulation; performance statistics; animation 独创性声明 本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工作及取得的研究成果。尽我所知,除文中已标明引用的内容外,本论文不包含任何其他人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在_年解密后适用本授权书。 本论文属于 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 11 绪论绪论 1.1 课题背景概述 近年来,对等(peer-to-peer,p2p)网络迅速成为网络通信领域关注的焦点,并被看作影响因特网(internet)未来的重要科技之一1。目前 p2p 技术在文件共享、分布式计算、基于 internet 通信等多个领域中的应用已经取得了很大的成功。p2p 应用系统由于方便、快捷和开销少的特点受到了数以千万网络用户的欢迎。根据几大网络运营商统计,p2p 应用占据了 internet 整个流量的 50%2。而 p2p 应用提供的即时通讯技术也在逐步取代传统的通讯服务,从而引发了电信服务商、电信设备商和网络营运商的新一轮的业务整合。 p2p 技术揭开了 internet 发展的新时代的序幕,为 internet 带来新的生命,是构建智能化、个性化的 internet 的开端。因此,研究 p2p 仿真分析技术对于提升 p2p系统的性能有着重要意义。 p2p 技术的一个重要特点是数量庞大的用户,由于数量庞大,所以对于 p2p 技术的研究方式主要是采取软件仿真,而对于仿真得出的数据进行分析也就成为一个重要课题3。 1.1.1 p2p 网络技术背景 计算机的处理能力的增强和价格的降低使得计算机得以广泛普及。然而,计算机的使用效率极低,如何有效利用这些计算资源成为了一个热点问题。利用快速发展的网络技术将各种计算资源整合到一起,从而实现高性能的分布计算和资源的高效利用, 自然而然地成为研究者们关注的问题4。伴随着计算机性能及其网络速度的快速增长,p2p 应用作为新型的大规模分布式应用迅速发展起来,并很快取代 web成为 internet 上占用带宽最多的应用系统5。 p2p 起源于最初的联网通信方式,如在建筑物内 pc 通过局域网互联,不同建筑物间通过 modem 远程拨号互联。其中建立在 tcp/ip 协议之上的通信模式构成了今日互联网的基础,所以从基础技术角度看,p2p 不是新技术,而是新的应用技术模式6。 现在互联网是以客户机/服务器(client/server, c/s)结构的应用模式为主的,这样的应用必须在网络内设置一个服务器,信息通过服务器才可以传递7。信息或是先集中上传到服务器保存,然后再分别下载(如网站),或是信息按服务器上专有规则(软 2件)处理后才可在网络上传递流动(如邮件)。但是如果利用 p2p 系统软件,普通的个人电脑就可以不通过服务器直接与另一个拥有同样的 p2p 系统软件的个人电脑形成互联,双方共享资源,协同完成某种行动8。而拥有同一 p2p 软件的设备和用户,可以形成一个为其自己所有的在互联网上的 p2p 专用网9。 互联网的 c/s 模式要在互联网上设置拥有强大处理能力和大带宽的高性能计算机,配合高档的服务器软件,再将大量的数据集中存放在上面,并且要安装多样化的服务软件,在集中处理数据的同时可以对互联网上其它个人电脑进行服务,提供或接收数据,提供处理能力及其它应用10。对于一台与服务器联机并接受服务的个人电脑来说,这台个人电脑就是客户机,其性能可以相对弱小。这类网络应用模型有着一个明显的缺点就是:随着服务的客户数目的增多,服务端所需要占用的资源也随之增加,显而易见最终制约了客户机数目的增长11 12。 而 p2p 技术的特征就是弱化了服务器的作用,甚至取消服务器。它的核心思想是,所有参与系统的结点处于完全对等的地位,没有客户机和服务器之分,也可以说每个结点既是客户机,也是服务器13;既向别人提供服务,也享受来自别人的服务。p2p 运算带来的好处首先是经济性:不需要功能强大的服务器进行集中的运算,而是把闲置的运算能力加以利用;另一个好处就是社区性:可以组建一个专门的环境,在这个环境内不仅可以共享资源、共同合作,而且安全性好、效率高。 c/s 模式造成互联网络上的集中,无论信息资源还是成本资源均向同一方向集中,这样的模式符合一对多、强对弱的社会关系形式,如政府对个人、对企业,大企业对小企业,学校对学生,企业对职工等等关系14。而 p2p 方式将导致信息数量、成本资源都向互联网各点均匀分布,也就是所谓“边缘化”的趋势。此模式符合“一对一”的特点,以及彼此相当的社会关系形式,如个人对个人,规模相当的企业之间,等等。因此,两种方式是并存的,相互补充的。 目前,在学术界、工业界对于 p2p 并没有一个统一的定义,以下是近年来很多研究者对 p2p 技术的基本内涵进行的概括: 一类利用位于 internet 边缘的资源(包括存储、计算周期、内容、人)的应用。它是 p2p 系统最早的定义。 一个平等、自治的自组织网络,它的目标是在网络环境中避免中央服务器而去平等地共享服务资源。 分散的、自组织的分式布系统,系统中的主要通信是对称的。 所有参与系统的结点(指 internet 上的计算机)处于完全对等的地位,没有客户机和服务器之分,也可以说每个结点既是客户机,也是服务器;既向别人提供服务,也享受来自别人的服务15。 3虽然上述定义稍有不同,但共同点都是 p2p 可以充分利用边缘结点资源,形成一个自组织网络。在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其它结点提供服务, 同时也享用其它结点提供的服务。 p2p 技术的特点体现在以下几个方面: 1. 非中心化:网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,无需服务器的介入,避免了可能的瓶颈。 2. 可扩展性:在 p2p 网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。网络可以本能地适应需求,理论上可以实现无限的系统可扩展性。 3. 健壮性:p2p 网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。由于服务是分散在各个结点之间进行的,p2p 架构天生具有耐攻击、高容错的优点。部分结点或网络遭到破坏对其它部分的影响很小。 4. 高性价比:采用 p2p 架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。 5. 隐私保护:在 p2p 网络中,由于信息的传输分散在各结点之间进行,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,在 p2p 中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。 6. 负载均衡:p2p 系统可以根据策略灵活分布信息。一方面,p2p 系统的分配算法多能将负载平均分配到结点; 另一方面, p2p 系统的负载均衡模块可以监控各种信息的流量和请求率,然后在结点之间利用负载迁移算法转移负载。 7. 信息内容更丰富:各个网络参与者都可能是信息提供者,随着网络规模扩大,信息必将越来越丰富。当网络增长的时候,共享信息的数量和范围都将随之增长16。 1.1.2 p2p 仿真分析的发展现状 p2p 作为备受关注的分布式系统之一, 大量新系统结构与相关算法不断涌现, 其可行性、正确性均需实验加以测试与验证。物理实验作为一种重要的网络研究方法,在以往的网络设计及研究中曾扮演了重要的角色,但其对硬件的需求比较大,因此实践起来比较困难。对于 p2p 网络这类环境复杂,拓扑规模庞大的系统一般可通过仿真实验加以验证。利用软件的方法对 p2p 网络进行仿真,可以在缺乏硬件支持的 4情况下,在一台计算机上按需要设计各种拓扑结构,通过建立网络设备、链路和协议模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据,为网络研究提供参考依据。利用软件进行网络仿真的方法不但可以有效地提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费,而且提高了研发效率,修改容易,形象直观。国外还出现了很多专门针对 p2p 网络的仿真软件,如 freenet、peersim、p2psim 等等,这些软件通常会针对一种或几种协议进行仿真,而且很多都是开源的。这些软件对于仿真出的数据会有一些初步的分析,但是在大规模的仿真中,这些初步的分析就会出现麻烦。以 ns217为例,1000个节点仿真生成的数据有几 g 大小,自带的分析工具几乎不可能分析。数据统计的环境是计算机和数学软件。数学类应用软件主要有:matlab、mathmatics、maple、mathcad 等。这些软件都是功能强大的数学通用系统,它们的内部函数几乎包括了数学、物理中的所有函数,而且还允许自定义函数。如何把特定数据分析和数学软件的使用有机结合起来,让研究者学会用计算机的计算与模拟功能去研究和模拟网络,使抽象的问题具体化是网络仿真数据分析的一个重要环节18 19。所以,本文提出一种自定义的数据格式让仿真软件输出,然后使用 matlab 编写了分析程序,实现对大规模仿真生成数据的分析,同时还能重现小规模仿真时节点之间数据传输。 1.2 课题来源与意义 本研究课题来源于华中科技大学电信系互联网中心和广州电信研究院的合作项目,是国家下一代互联网(cngi)示范项目基于 p2p 的数字媒体业务研发及应用实验的一个重要组成部分。该项目的应用和推广将带动国内的媒体制作、媒体提供、网络运营、终端产品生产等一系列产业的发展,形成一个优良的产业链。并综合利用 p2p、网格、qos、drm 等多种技术20,自主创新低成本、高质量、可运营、可维护的新型电信级数字媒体业务网络 mtn (media telecom network, 媒体电信网)21,构建大规模基于 p2p 的安全诚信的数字媒体业务应用仿真实验环境,研发基于p2p 的安全诚信的点播、直播、下载等数字媒体业务,并在中国电信 cngi 网络上部署实验系统, 完成点播、 直播、 下载等基于 p2p 安全诚信的数字媒体应用示范22 23。 本文研究的 p2p 网络仿真数据统计及协议交互过程演示,是课题的主要研究内容之一, 相应成果将直接用于课题研究过程中对独立设计或相关文献提出的多种 p2p协议算法的网络仿真性能分析。 1.3 论文内容与组织 5本论文研究 p2p 网络仿真数据统计及协议交互过程演示,内容主要包括: ? 设计和定义p2p网络仿真数据统计和协议交互过程动画演示所需的仿真过程输出数据文件及其内容和格式; ? 根据各种 p2p 协议算法仿真统计分析的需求, 设计和实现大规模 p2p 网络仿真数据统计软件,可根据 p2p 网络仿真过程输出的数据文件,计算得到相应的应用和网络性能统计参量; ? 设计 p2p 网络协议交互和数据传输过程动画演示软件, 能够根据 p2p 网络仿真过程输出的数据文件,再现对等节点之间的控制消息交互和数据传输过程。 本论文共分六章,其余各章内容安排如下: 第二章对 p2p 网络仿真数据统计及协议交互过程演示的需求进行分析,并简要介绍软件开发所基于的 matlab 软件平台。 第三章结合 p2p 网络仿真数据统计及协议交互过程演示的需求,给出 p2p 网络仿真数据统计和协议交互过程动画演示所需的仿真过程输出数据文件及其内容和格式设计与定义。 第四章给出 p2p 网络仿真数据统计及协议交互过程演示的总体设计和主要模块详细设计,内容包括数据解析、各种数据统计、协议交互动画生成和存储。 第五章介绍 p2p 网络仿真数据统计及协议交互过程演示软件的主要功能测试结果,并给出部分实例。 第六章为结束语,对论文工作进行总结,并展望后续工作。 62 仿真技术与需求分析 2.1 p2p 仿真技术 用软件的方法对 p2p 网络进行仿真,可以在缺乏硬件支持的情况下,在计算机上按需要设计各种拓扑结构,通过建立网络设备、链路和协议模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据,为网络研究提供参考依据242526。以下介绍几种现今主流的 p2p 仿真技术。 freepastry 27真器是一个采用 java 的 pastry 协议的开源应用的仿真器。 仿真器变量的设置,如节点的个数、生成事件的数量等,依靠启动本地仿真器时的命令行输入。 freenet 28真器用来分析 freenet 协议,评价了不同的缓存算法,采用两步机制来支持多消息发送的事件处理。 neurogrid29是一个基于 java 的覆盖仿真器,侧重于仿真文件共享系统中的搜索协议的仿真。neurogrid 产生的目的是用于比较 freenet, gnutella and neurogrid 协议的优劣,这与其他只适用于特定的 p2p 系统的仿真器不同,neurogrid 可以仿真包括分布式 dns 和分布式 e-mail 协议。该仿真器是一个单线程离散事件仿真器,能读取用户运行时修改的属性文件,用户修改的变量包括需要仿真的协议名称、网络特征和选择进行搜索的成员数量。统计结果可以被单独保存在文件中,用于日后分析。 3ls30 (3-level-simulator)是为覆盖网络仿真的开源仿真器,开发时声称克服了已有仿真器存在的问题,具有可扩展性、可用性和层次细节,可以分别定义网络级、协议级和用户级仿真环境。网络通信只能在相同的层次间进行,网络层仿真底层的网络,用一个二维的矩阵存储节点间的距离。协议层表示需要仿真的实际协议;用户层表示来自用户的实际输入,仿真器可以通过一个图形接口或文件的方式得到输入。3ls 的应用并不十分令人满意,由于被仿真器执行的每个事件占用主存储器来更容易通过一个图形接口重现网络。这限制了能够仿真的节点的数量,通常 2gb 内存的机器只能仿真一千个节点。因为这个原因,3ls 通常可以被用做编译器,在仿真网络的动态性能方面的支持能力是非常有限的。 gnusim: 一个通用 gnutella 和非结构化 p2p 网络仿真器, 使用 c+语言实现的,基于事件驱动的 p2p 网络和协议仿真器, 用于构造 gnutella 和非结构 p2p 网络模型。该仿真器的目的是验证在 p2p 网络中使用的各种模式,并评估其性能和价值16。另外,该模型还被用来测量与比较 p2p 网络中的具有查询内容和下载功能的不同模型 7的性能。考虑到 p2p 网络中非可控负载的重要性,该仿真器重点提供了一些变量来仿真故障率现象。另外,为评估应用了 qos 方法的 p2p 系统的性能,提供了三个与qos 相关的变量。 peersim31是用 java 实现、基于组件技术的仿真器,更好地支持了 p2p 网络的可扩展性和动态性。它使用两种模型,一种是基于环的模型,另一种是基于事件的模型。 它支持基于对象的有标准组件的编程,实现同一接口的组件可以很容易地替代其他的组件。 2.2 相关协议网络仿真统计参量 面对大规模的 p2p 虚拟网络,如何有效地监测与评估使得 p2p 网络性能已经变得越来越重要p2p 服务提供者需要通过测量 p2p 的网络性能,监测其业务运行状况,合理而有效地部署和规划网络资源,使之提供更优质的服务;p2p 用户需要利用 p2p 的网络性能测量数据选择服务质量最佳的 p2p 服务网络。两大国际标准组织 itu_t 和 ietf 曾经对 ip 网络性能参数,分别制定出各自的标准。itu-t sg13 工作组在建议 y.154032定义了 ip 包传输时延、时延变化、误差率、丢失率、虚假率、吞吐量和可用性等参数。ietf 的 ippm(ip performance metrics)工作组又定义了连接性 测度(rfc2678)、单向延迟测度(rfc2679)、单向分组丢失测度(rfc2680)、往返延迟测度(rfc2681) 33。然而,此类 ip 性能测度均定义在网络层,无法满足应用层 p2p覆盖网络的性能监测需求。 在分析 p2p 网络特性时,需要根据大规模 p2p 网络仿真原始数据计算得到一般性、p2p 算法共有、p2p 算法独有三类统计参量,分别介绍如下: 2.2.1 一般性统计参量 网络绝对吞吐量(mbps) 单个参量,网络流出流量速率之和,由下列公式得到: 网络绝对吞吐量 peer 接收流量速率34 网络相对吞吐量(%) 单个参量,网络绝对吞吐量(mbps)占网络输出链路速率之和的比例,可由下式计算: 网络相对吞吐量 peer 接收流量速率/ 网络输出链路速率。 网络输出链路速率是 peer 与网络之间链路的下行速率。 82.2.2 p2p 算法共有参量 目录服务器(rm, dr, tracker 等)连接压力 与目录服务器同时保持的应用层(p2p)连接的 peer 数目,是一个随时间变化的曲线35。 目录服务器(rm, dr, tracker 等)带宽压力(%) 目录服务器输出流量速率与目录服务器输出链路速率(mbps)相除的结果,是一个随时间变化的曲线36。 流媒体源服务器(直播, 点播)连接压力 流媒体源服务器同时输出的媒体数据流数目,是一个随时间变化的曲线。 流媒体源服务器(直播, 点播)带宽压力 流媒体源服务器输出媒体数据流量速率(mbps) 与流媒体服务器输出链路速率(mbps)相除的结果,是一个随时间变化的曲线37。 2.2.3 p2p 算法独有参量 a 下载算法 peer 下载时间(s) 每个节点下载完成时刻与加入会话时刻相减所得,未完成下载的需设置为 038。 平均下载时间(s) 所有 peer 平均的单个参量,可用下式得到: 平均下载时间 peer 下载时间/ peer 总数39。 下载时间分布 下载时间在各区间的 peers 数目, 取不同的区间构成一个关于下载时间的分布图40。 未完成下载 peer 比例(%) 单个参量,可用下式得到: 未完成下载 peer 比例 未完成下载 peer 数/ peer 总数41。 b 直播算法 平均播放停滞次数 所有 peer 平均播放停滞次数,可用下式得到: 平均播放停滞次数 peer 播放停滞次数/ peer 总数42。 播放停滞次数分布 9播放停滞次数在各区间的 peers 数目, 取不同的区间构成一个关于播放停滞次数的分布图43。 平均归一化播放停滞时间(%) 可用下式得到:平均归一化播放停滞时间 peer 归一化播放停滞时间/ peer总数。该值是所有节点归一化播放停滞时间的平均值44。 归一化播放停滞时间分布 归一化播放停滞时间在各区间的 peers 数目, 取不同的区间构成一个关于归一化播放停滞时间的分布图。 平均起始播放滞后时间(s) 所有 peer 平均起始播放滞后时间的单个参量,可用下式得到: 平均起始播放滞后时间 peer 起始播放滞后时间/ peer 总数。 起始播放滞后时间分布 起始播放滞后时间在各区间的 peers 数目, 取不同的区间构成一个关于起始播放滞后时间的分布函数 平均开始播放等待间隔(s): 所有 peer 平均开始播放等待间隔的单个参量,可用下式得到: 平均开始播放等待间隔 (peer 开始播放时刻 - peer 加入时刻) / peer 总数。 开始播放等待间隔分布 开始播放等待间隔在各区间的 peers 数目, 取不同的区间构成一个关于开始播放等待间隔的分布图。 直播失败比例(%) 可用下式得到: 直播失败比例始终未能获得数据或播放的 peer 数目/ peer 总数45。 c 点播算法 平均播放停滞次数 所有 peer 平均播放停滞次数的单个参量,可用下式得到: 平均播放停滞次数 peer 播放停滞次数/ peer 总数。 播放停滞次数分布 播放停滞次数在各区间的 peers 数目, 取不同的区间构成一个关于播放停滞次数的分布图。 平均归一化播放停滞时间(%) 所有 peer 平均归一化播放停滞时间的单个参量,可用下式得到: 平均归一化播放停滞时间 peer 归一化播放停滞时间/ peer 总数。 归一化播放停滞时间分布 归一化播放停滞时间在各区间的 peers 数目, 取不同的区间构成一个关于归一化播放停滞时间的分布图。 平均开始播放等待间隔(s) 所有 peer 平均开始播放等待间隔的单个参量,可用下式得到: 平均开始播放等待间隔 (peer 开始播放时刻 - peer 加入时刻) / peer 总数 1046。 开始播放等待间隔分布 开始播放等待间隔在各区间的 peers 数目, 取不同的区间构成一个关于开始播放等待间隔的分布图。 点播失败比例(%) 可用下式得到: 点播失败比例 始终未能获得数据或播放的 peer 数目/ peer 总数。 平均应用补偿服务比例(%) 所有 peer 平均应用补偿服务比例的单个参量,可用下式得到: 平均应用补偿服务比例 peer 应用补偿服务比例/ peer 总数 应用补偿服务分布:分布函数 应用补偿服务比例在各区间的 peers 数目, 取不同的区间构成一个关于应用补偿服务比例的分布图47。 2.3 协议交互过程动画演示 仿真结果演示总体需求是在中国电信的组网结构下展示各类 p2p 算法应用的系统特性和对网络的影响。 仿真规模较大时,动画演示很难将整个系统的交互传输清晰表现出来,因此需要确定一些较小的有代表性质的演示场景,将数据的交互过程展现在屏幕上。p2p 算法主要有 3 类算法的,需求如下: ? 下载场景:系统服务端(1 个节点)发布大型文件(例如 1gb) ,其余客户端节点(100 个左右)从完全没有内容开始按一定的规律(保证最高并发下载节点数在80 个以上)先后发起请求,进行数据下载,期间节点不下线,仿真该文件从发布到最后被每一个用户下载完毕的全过程。 ? 直播:系统发布一路直播频道,客户端节点(100 个左右)按照设定的规律加入频道,这里假设客户端加入频道后不会离开,则当所有节点加入频道后形成一个稳态结构。要求直播时可通过颜色、字符等直观显示各个节点播放进度的时间差异。 ? 点播:系统发布一个点播文件,客户端(100 个左右)按照设定的规律加入点播,要求每个节点可以动态显示自身播放进度(如播放时间)并用颜色加以区分。 113 p2p 网络仿真过程输出数据网络仿真过程输出数据 由于大规模 p2p 网络涉及到的用户众多,研究者无法实现对各个用户的信息进行统计,所以研究者主要采取仿真的方式进行研究。基于上一节中讨论的需要由仿真得到的各种参数及其定义,本节定义了仿真软件应输出的数据的格式用于实现仿真数据的分析和动画演示。需要输出的数据格式分 5 种,分别为仿真场景数据、流量数据、服务器 trace、peer 行为 trace、peer 交互 trace,具体定义如下: 3.1 仿真场景数据 此数据分 4 部分。文件内容排列如下: sessions # 所有 p2p 会话列表 traces # 仿真产生 trace 文件列表 nodes # 所有节点列表 network # 关注网络拓扑 gateway ip # gateway ip 列表 其中 p2p 会话列表格式如下: 第 1 项 session,表示本场景中各 p2p 会话 id;第 2 项 type,表示 p2p 会话的类型, 其中 1 代表 mtn 下载, 2 代表 mtn 直播, 3 代表 mtn 点播, 33 代表 bittorrent,34 代表 coolstreaming,35 代表 p2vod;第 3 项 description,表示 p2p 会话属性,字段格式为(x, y, z),其中具体含义如下: x:文件长度,单位为 piece,直播类(mtn 直播或 coolstreaming)为 0; y:piece 大小(kbytes); z:流媒体码率,单位为 pieces/秒,文件下载(mtn 下载或 bt)类为 0; 第 4 项 dir,表示目录服务器列表,针对多个目录服务器 id 的情况,如多个 dr 或者tracker,id 之间用分号“; ”隔开;第 5 项 source,表示源服务器列表,针对多个源服务器 id 的情况,如文件下载会话中存在多个种子节点,id 之间用分号“; ”隔开。 trace 文件列表格式如下: 12 第 1 项 type,表示各 trace 文件类型,m 代表标准 ns2 流量数据,s 代表自定义的服务器 trace,a 代表自定义 peer 行为 trace,p 代表自定义 peer 交互 trace;第 2项 trace 代表各 trace 的文件名。 节点列表格式如下: 第 1 项 node,表示 node id,即节点 id 号;第 2 项 ip,表示 node ip,即节点的 ip;第 3 项 type,表示节点类型, p 代表普通 peer, r 代表目录服务器,d 代表目录服务器,s代表流媒体源服务器, c代表补偿服务器, g代表路由节点; 第4项session,表示 p2p 会话 id,服务器如果参与多个 p2p 会话时,则列举其全部 id,之间用分号“;”隔开;第 5 项 in,表示输入链路另一端与该节点连接的节点的 ip 及该链路上的速率(mbps),ip 与其对应的速率之间用“: ”隔开,如果节点有多个网络接口(即路由节点),列举其全部输入链路对应的另一端的节点 ip 以及速率,之间用分号“; ”隔开;第 6 项 out,表示输出链路另一端与该节点连接的节点的 ip 及该链路上的速率(mbps),ip 与其对应的速率之间用“: ”隔开,如果节点有多个网络接口(即路由节点),列举其全部输出链路对应的另一端的节点 ip 以及速率,之间用分号“; ”隔开。 关注网络拓扑格式如下: 第 1 项 layer,表示关注链路所在层数,l_as 代表第一层,l_rt 代表第二层,随机拓扑中该项统一置 0;第 2 项 srnodeid,表示关注链路源节点 id,第 3 项desnodeid,表示关注链路目标节点 id;第 4 项 srnodeip,表示关注链路源节点 ip;第 5 项 desnodeip,表示关注链路目标节点 ip;第 7 项 subnetnum,表示关注链路所属子网号。另外需要注意的是,一条记录对应于一条关注链路。 gateway ip 列表格式如下: 该列表显示整个网络中的 gateway 的 ip, 因为存在 gateway 拥有多个 ip 的情况,所以每行列举出一个 gateway 的所有 ip,之间用“; ”隔开。 3.2 流量数据 格式: 此数据是每隔一个单位时间统计一次。第 1 项 time,表示流量统计的时间;第 132 项 from,表示此流量所在该链路起始端节点 id;第 3 项 to,表示此流量所在链路结束端节点 id;第 4 项 bytes,表示该链路在此单位时间内传输的字节数,单位为byte;第 5 项 pkts;表示该链路在此单位时间间隔内传输的数据包数量;第 6 项 parrivals,表示在此单位时间间隔内收到的数据包数量;第 7 项 pdepartures,表示离开该链路的数据包数量;第 8 项 pdrops,表示该链路丢失的数据包数量;第 9项 barrivals,表示该链路收到的字节数;第 10 项 bdepartures,表示该链路离开的字节数,第 11 项 bdrops,表示该链路丢失的字节数。 3.3 服务器数据 格式: 此数据也是是每隔一个单位时间统计一次。 第 1 项 server, 表示统计的服务器 ip,第 2 项 type,表示服务器类型,有 r(rm,目录服务器),d(dr,目录服务器),s(流媒体源服务器),c(补偿服务器)这几种;第 3 项 session,表示此 p2p 数据的会话 id;第 4 项 connections, 表示需要此服务器提供目录或数据服务的peer数目; 第5项rate,表示此服务器的输出流量速率(mbps)。 3.4 peer 行为数据 格式: 第 1 项 action,表示此 peer 的行为,包括 j (join, 加入)行为,l(leave, 离开)行为,g(get, 首次获得数据)行为,p(play, 开始播放)行为,w(wait, 流媒体停滞播放)行为,u(update neighbors, 更新伙伴关系)行为和 f(finish data retrieval,结束数据下载)行为,而对于下载类算法,f 行为表示下载结束,不再需要获取数据,只提供数据,对于直播类算法,f 行为表示停止获取数据,逻辑上等同于离开,对于 点播类算法,f 行为表示停止获取数据,已得到视频文件的完整数据或者即将离开。 第 2 项 time,表示本行为发生的时刻;第 3 项 peer,表示发生本行为的 peer ip;第 4 项 session,表示本行为的 p2p 会话 id;第 5 项在不同情况下意义不同: 当为 u 时, 此项为 neighbors, 表示所有伙伴 peer ip 列表, 之间用 “; ”隔开; 当本行为是直播会话且为 p 时,此项为 deviation,表示起始播放的媒体时刻滞后于源服务器的时间(s); 当本行为是直播或点播会话且为 w 时,此项为 deviation,表示停滞播放等待数据到达的时间(s); 14 当为 f 时,此项为 assist,通过补偿服务器获取数据 piece 的比例,非 mtn 算法应设置为 0。 3.5 peer 交互数据 格式: 第 1 项 event,表示 p2p 应用层通信事件,包括 i (in, 数据 piece/协议消息输入)事件,o (out, 数据 piece/协议消息输出)事件和 d (drop, 数据 piece/协议消息丢弃)事件;第 2 项 time,表示本事件发生时刻;第 3 项 peer,表示发生本事件 peer 的ip;第 4 项 session,表示本事件的 p2p 会话 id;第 5 项 remote,表示与 peer 项节点进行交互的 peer/server 的 ip;第 6 项 type,指明交互数据的类型,1 表示 protocol message 协议信息,2 表示 subpiece of data 子数据块,3 表示 piece of data 数据块;第7 项 protocol, 指明 p2p 协议类型, 1 表示 mtn 下载, 2 表示 mtn 直播, 3 表示 mtn点播,33 表示 bittorrent,34 表示 coolstreaming,35 表示 p2vod,others 其他未定义;第 8 项 message,指明 p2p 协议控制消息类型,但仅在 type 为 1 时有效,当 type为其他值时,message 统一为 0,目前仅用到高 4 位,低 4 位须设置为 0,见如下定义: ? 下载(bt 和 mtn 文件下载) 0 x00 表示请求加入/传送,peer 向 dr/tracker 请求加入会话,或向其它 peer/补偿服务器请求传送文件 piece; 0 x20 表示应答, dr/tracker/其它 peer/补偿服务器对请求(即 0 x00 类型)消息的回应; 0 x40 表示重连请求,peer 向 dr/tracker 请求新的 peer list; 0 x80 表示离开,peer 通知 dr/tracker 离开本文件下载会话; ? 直播(coolstreaming 和 mtn 直播) 0 x00 表示请求加入/传送, peer 向各种服务器或其他 peer 请求加入会话或传送媒体数据 piece; 0 x20 表示应答,各种服务器或其它 peer 对请求(即 0 x00 类型)消息的回应; 0 x40 表示更新或心跳检测,peer 与各种服务器、其它 peer 之间的保持连接的消息; 0 x80 表示离开/停止数据传送,peer 通知各种服务器或其他 peer,离开会话或停止传送数据 piece; ? 点播(p2vod 和 mtn 点播) 150 x00 表示请求加入/传送, peer 向各种服务器或其他 peer 请求加入会话或传送数据; 0 x20 表示应答,各种服务器或其它 peer 对请求(即 0 x00 类型)消息的回应; 0 x40 表示更新或心跳检测,peer 与各种服务器、其它 peer 之间的保持活动; 0 x80 表示离开/停止数据传送,peer 通知各种服务器或其他 peer,离开会话或停止传送数据; 第 9 项 size,表示 piece 数据块或协议消息的长度(bytes)。 3.6 本章小结 本章主要结合 p2p 网络仿真数据统计及协议交互过程演示的需求,给出 p2p 网络仿真数据统计和协议交互过程动画演示所需的仿真过程输出数据文件及其内容和格式设计与定义。 164 仿真数据统计及协议交互过程演示仿真数据统计及协议交互过程演示 本课题所在的项目主要涉及大规模 p2p 网络的仿真,包括了 3 种流行算法:bittorrent、coolstreaming、p2vod 以及 3 种自行设计的下载、直播、点播算法。本文作者设计了仿真数据统计及协议交互过程演示系统,实现了 p2p 网络仿真数据的统计分析和仿真中协议交互的动画演示。 4.1 总体设计 生成动画存储动画动画演示一般性参数p2p算法共有参数p2p算法独有参数各数据统计数据读取网络拓扑生成matlab 仿真场景数据解析流量数据解析服务器trace解析peer行为trace解析peer交互trace解析仿真数据解析 图 4. 1 整体功能模块框图 17图 4.1 是整个 p2p 网络仿真数据统计及协议交互过程演示的功能模块框图, 主要分 3 个部分:仿真数据解析,数据统计和动画演示,其中数据统计和动画演示的功能是在 matlab gui 中完成的。 仿真数据解析主要是将 ns2 仿真出的 5 种 trace 文件进行解析, 并分别存到各个结构体数组中;数据统计部分则是将各数组中的数据对一般性、p2p 算法共有、p2p算法独有三种类型进行统计,形式主要为单独参数和分布图。 动画演示部分则是由通过解析出的数组,得到网络拓扑及每次数据传输中部分数据得到关于算法的数据交互过程的动画,并储存为文件形式。 4.2 用户界面设计 图形用户界面(gui)是使用图形对象(按钮、文本框、滚动条、菜单等)创建的用户界面,这些对象对用户而言具有明确的含义。图形用户界面是提供人机交互的工具和方法。通过它可以实现数据的输入、处理和输出。guide 是 matlab 提供的一个专门 gui 设计工具48。 实现一个 gui 的过程包括两个基本任务:一是 gui 的组件布局,另一个是 gui组件编程49。另外的任务是保存和发布 gui。这些功能的实现通过图形用户开发环境 guide 来完成。 4.2.1 用户界面的开发环境(guide) guide 提供一系列创建 gui 的工具。主要由 7 部分组成:版面设计器、属性编辑器、菜单编辑器、调整工具,对象浏览顺序编辑器和 m 文件编辑器。在命令窗输入 guide,启动 guide 模板50。用户可以创建新的或打开已经存在的 gui。guide完成下面的任务: ? 输出 gui:使用 guide 输出编辑器, 通过单击和拖拉组件布局 gui 并保存组件资源在一个 fig 文件中; ? gui 编程:guide 自动生成一个控制 gui 如何操作的 m 文件,该 m 文件初始化 gui 界面,并包含一个 gui 回调事件的框架。使用 m 文件编辑器,可以向回调事件中添加代码,运行相关函数。 guide 对话框提供了几种基本类型的 gui 模板。选择一种模板以后,可以查看预览效果。下图 4.2 是 blank gui(default)缺省模板。 18 图 4. 2 blank gui(default)缺省模板 菜单编辑器: 用以创建、 设置、 修改下拉式菜单(menu bar)和弹出式菜单(context bar); 属性编辑器:用以查看、设置、修改

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论