




免费预览已结束,剩余46页可下载查看
毕业设计(论文)-基于NS-2的网络多媒体传输研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 基于 ns-2 的网络多媒体传输研究 摘要 摘要 随着视频会议、远程教育等网络多媒体应用的广泛部署,网络多媒体传输技术成为一个重要的研究热点。在对网络多媒体传输的研究过程中,网络模拟技术具有十分重要的作用,网络模拟利用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。 本课题使用了虚拟机(vmware)的fedora操作系统平台,利用evalvid工具,结合ns-2仿真工具,建立研究多媒体信息在有线网络中传输的平台。在网络仿真中,传送端把封包的特征记录写入传送端记录文件,视频接收端产生接收文件。首先利用ffmpeg,mp4box,mp4trace等工具对多媒体格式进行转换;然后编写otcl脚本,设计网络拓扑结构,建立协议代理,配置流量产生器;接着利用ns-2(network simulator, version 2)产生多媒体网络传输的数据信息,提取模拟网络吞吐量变化情况的数据。最后利用这些数据信息评估多媒体网络传输的性能。 关键词:关键词:网络多媒体;ns-2;evalvid abstract research of mutimedia network transmission based on ns-2 abstract along with the deployment of the video conference, remote education and other network multimedia applications, multimedia network transmission technology becomes an important research hotspot. in the research of multimedia network transmission process, network simulation technology plays a very important role. the network simulation models the communication network by computer programs, so the running of the communication networks can be simulated by the simulation programs. the paper constructs the research platform of the multimedia transmission in wire-network by using the fedora operating system in the vmware .the evalvid and ns-2 are installed in the fedora. in the simulation, the senfer of video writer the characteristics of packets into a file rdckrding the sending information; and the receiver creates a file. firstly, the formats of mtltimedia are transformed by ffmpeg, mp4box, mp4trace. secondly, the otcl script is designed to implement the network topology, the protocol agens and the stream generators. then the data information of muhtimedia network transmission is generated by ns-2. the information can be used to abstract the data of the throughput of the simulation network. finally, the performance of multimedia transmission can be evaluated. key words: network multimedia; ns-2; evalvid 目录 第 1 章 绪论第 1 章 绪论 1 1.1 网络多媒体技术的发展动态1 1.1.1 网络多媒体技术发展现状 1 1.1.2 网络多媒体技术发展前景 1 1.1.3 网络多媒体技术与仿真技术 2 1.2 论文研究内容和论文结构2 1.2.1 论文研究主要内容 2 1.2.2 论文组织结构 2 第 2 章 ns-2 和evalvid的理论基础第 2 章 ns-2 和evalvid的理论基础5 2.1 网络仿真技术概述 5 2.2 ns-2 的仿真实现机制 5 2.2.1 ns-2 的仿真层次 5 2.2.2 ns-2 的核心思想 6 2.2.3 ns-2 的主要仿真构件 7 2.3 ns-2 的扩展 8 2.4 网络拓扑结构的组成8 2.4.1 节点 8 1.单播节点的结构8 2.多播节点的结构9 2.4.2 链路 10 1.单向链路10 2.双向链路11 2.4.3 代理 11 2.5 视频流的封装原理 11 2.5.1 mpeg标准 11 2.5.2 mpeg中封包和帧的关系 12 2.6 基于myevalvid 工具的多媒体传输系统12 2.6.1 evalvid的概述 12 2.6.2 evalvid工具的结构 12 2.6.3 myevalvid的系统结构 15 i 目录 ii 2.6.4 运用evalvid视频仿真的基本思路 15 第 3 章 基于ns-2 的网络多媒体传输的仿真设计与实现第 3 章 基于ns-2 的网络多媒体传输的仿真设计与实现 17 3.1 设计中使用的文件 17 3.2 将myevalvid扩展到ns-2 17 3.2.1 定义分组类型的头文件修改 18 3.2.2 业务代理修改18 3.2.3 参数默认值设置 18 3.2.4 myevalvid扩展到ns-2 的具体实现步骤 19 3.3 视频传输仿真设计与实现 20 3.3.1 仿真流程20 3.3.2 视频传输仿真设计与实现 21 1.网络拓扑结构的设计与实现 21 2.代理(agent)的设计与实现 22 3.流量产生器的设计与实现 23 4.数据记录和动画设计 25 第 4 章 多媒体传输仿真结果与性能分析第 4 章 多媒体传输仿真结果与性能分析 27 4.1 仿真实验的整体流程 27 4.2 仿真实验的流程及其结果 27 4.3 实验结果分析评估 31 4.4.1 信息记录文件st_video 31 4.4.2 发送端记录文件sd_video 32 4.4.3 接收端记录文件rd_video 33 4.4.4 仿真数据分析33 1.使用gawk分析trace文件 33 2.gnuplot绘制图形 36 4.4.5 网络吞吐量变化分析 39 第 5 章 总结与展望第 5 章 总结与展望 40 致谢致谢 42 参考文献参考文献 44 前言 前言 前言 随着视频会议、远程教育等网络多媒体应用的广泛部署,网络多媒体传输技术成为一个重要的研究热点,多媒体信息传输的可靠性和质量保证是要考虑的关键因素,因此,通过网络仿真技术,探究网络中多媒体信息传输的质量,分析帧的丢失率等对多媒体信息传输的影响,显得尤为重要。在有线多媒体通信系统中,信道的传输容易受到各种干扰,线缆越长,频率失真越严重,线缆长度加倍,衰减的 db 数也加倍。在对网络多媒体传输的研究过程中,网络模拟技术具有十分重要的作用,网络模拟利用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。 目前国内外对网络多媒体传输进行了大量的研究,但是一直没能给出一种统一的体系结构用来对视频的质量从主观和客观上进行评价。针对以上的问题,jirka klaue在evalvid - a framework for video transmission and quality evaluation中给出了统一评价网络多媒体传输质量的框架和工具集evalvid。 利用evalvid工具,结合 ns-2 来实现网络多媒体传输的网络环境的仿真。 iii 第 1 章 绪论 第 1 章 绪论 第 1 章 绪论 1.1 网络多媒体技术的发展动态 1.1 网络多媒体技术的发展动态 1.1.1 网络多媒体技术发展现状 1.1.1 网络多媒体技术发展现状 随着计算机视频会议、远程教育学习、视频点播(vod) 、远程医疗诊断等网络多媒体应用的广泛部署, 网络多媒体技术已是计算机领域中一个被广泛关注的热点领域。该技术是 20 世纪 80 年代中后期开始逐渐发展起来的一项技术。它对人类的学习、生活、工作产生了深远的影响。一方面,多媒体技术使计算机能同时处理视频、音频和文本等各种信息,提高了信息的多样性;另一方面,网络通信技术打消了人们之间的地域限制,提高了信息的瞬时性,二者结合所产生的网络多媒体技术把计算机的交互性、通信的分布性及电视的真实性有效地融为一体,成为当前信息社会的一个重要标志。近几年来,随着网络多媒体技术的迅速发展,网络多媒体通信相关产业呈一日千里之势。 尽管网络多媒体技术通常引人注目,但由于它涉及的技术层面广泛,包括数据库管理系统、计算机结构、多媒体操作系统、高速网络、通信协议、网络管理及相关的各种技术,因此在传输技术方面还有待进一步发展,目前,网络多媒体技术仍处于起步阶段,今后,随着网络技术、微电子技术和信息处理技术的发展,必将产生价廉物美、真正集成化的多媒体技术中端,网络多媒体技术产品将日趋标准化,网络多媒体技术将日趋普及。网络多媒体技术是一门综合的、跨学科的技术,它综合了计算机技术、网络技术、通信技术以及多种信息科学领域的技术成果,目前已经成为世界上发展最快和最富有活力的高新技术之一。 1.1.2 网络多媒体技术发展前景 1.1.2 网络多媒体技术发展前景 随着网络多媒体技术的不断发展和成熟,人们对信息的需求已不满足于传统的电报电话、文件传输、电子邮件,而是追求更高品质的集视频、图像、声音、文字甚至动画为一体的网络多媒体应用服务。在市场上,技术与应用产业链上各环节的合作已成为网络多媒体市场发展的必要条件,网络多媒体核心技术的发展牵动了运营商,运营商利用先进的多媒体技术开展内容应用服务,如远程视频会议、vod 视频点播、网络电视、远程教学、远程医疗、互动网络游戏、数字家庭等,还有其它的像数字化图书馆、多媒体商城、数码导游等等,这其中所蕴涵的商机有可能是我们现在所无法估计的。同时应该看到,针对现行的网络多媒体应用方式,人们常发现有不便之处,并且期望着能够更加便捷,更加自然,这种愿望极大地促进了对网络多媒体技术的深入研究,为了满足网络多媒体应用领域的各种变化和需求,计算机和网络专业技术人员必须把握时代脉搏,进行深入的研究和大胆的创新。 专家预言, 网络和计算机技术相交融的网络多媒体将成为 21 世纪多媒体的发展方 1常州工学院延陵学院毕业设计说明书 向。人们不仅可以从网络上接受信息、选择信息,还可以发送信息,其信息是以多媒体的形式传输的。虽然多媒体技术受到目前网络传输等方面的限制,但网络多媒体化的趋势是不可阻挡的,多媒体的未来是激动人心的,多媒体技术主宰的网络时代即将到来。网络多媒体的应用和未来将会出现的应用将对人们的生活产生深远的影响。 1.1.3 网络多媒体技术与仿真技术 1.1.3 网络多媒体技术与仿真技术 在有线多媒体通信系统中,信道的传输容易受到各种干扰,网络拥塞会造成数据包的丢失,数据包丢失和网络拥塞引起了吞吐量变化,造成主观感受质量下降,严重拥塞会使播放无法进行。多媒体信息传输的可靠性和质量保证是要考虑的关键因素,因此,通过网络仿真技术,探究网络中多媒体信息传输的质量,分析帧的丢失率等对多媒体信息传输的影响,显得尤为重要。同时,不同子网传输数据时,传输吞吐量,数据丢失率和传输延时都会有所差异,在具体应用中,网络的拓扑、网络带宽等因素都会对网络传输性能造成影响,最终影响网络多媒体的服务质量,国内外对网络多媒体传输进行大量的研究,但是一直没能给出一种统一的体系结构用来对视频的质量从主观和客观上进行评价。 针对以上的问题, jirka klaue 在 evalvid - a framework for video transmission and quality evaluation中给出了统一评价网络多媒体传输质量的框架和工具集evalvid。evalvid 具有模块化的结构,可以使用在所用的视频编码策略下,网络之间的交互作用通过 trace 文件实现,很容易在任何实验的环境下使 用 。 chih-heng ke 等 人 在 an evaluation framework for more realistic simulations of mpeg video transmission中将 evalvid 和 ns-2 结合,给出了一个视频流质量评估的新工具集,利用 evalvid 工具,结合 ns-2 仿真工具来实现网络多媒体传输的网络环境的仿真。 1.2 论文研究内容和论文结构 1.2 论文研究内容和论文结构 1.2.1 论文研究主要内容 1.2.1 论文研究主要内容 本文利用 evalvid 工具, 结合 ns-2 仿真工具设计并实现网络多媒体传输性能研究,这里主要是有线多媒体传输性能的研究。在 ns-2 下,使用一种类似 c语言风格的编程语言编写网络模拟程序,通过程序的运行来模拟网络的各种特性,以达到形象直观的研究多媒体信息传输质量的目的。通过本课题的学习,可以掌握网络多媒体传输的模拟技术,实现把 evalvid 整合进 ns-2,实现对网络多媒体传输的模拟和分析,为深入的学习网络技术打下坚实的基础。实现使用 ns-2 来模拟实际网络环境,实现以myevalvid 多媒体传输评估工具进行封包分析。 1.2.2 论文组织结构 1.2.2 论文组织结构 本文共分为五章,各章的组织结构如下: 2 第 1 章 绪论 3第一章为绪论部分,介绍了该课题研究前景、现状以及论文的研究内容和论文结构安排。 第二章简述了 ns-2 和 evalvid 的基础理论。首先对 ns-2 进行简介;然后分析了其仿真实现原理,介绍了利用 ns-2 进行仿真的层次,分析了其核心思想,对 ns-2 中的仿真构件进行了描述; 随后介绍了网络拓扑结构的组成, evalvid 与 myevalvid 功能和原理以及多媒体视频流的封装原理和运用 evalvid 视频仿真的基本思路。 第三章是仿真设计过程。首先对基于 ns-2 的网络多媒体传输进行详细的设计,其次讲述使用 ns-2 进行网络仿真的方法和过程。 第四章对上一章的设计进行的仿真实现,最后以此为基础,对数据进行分析评估。 第五章为总结与展望,总结了本文所做的工作,确定了下一步的研究重点和方向,并对今后的研究开发工作进行了规划。 4 第 2 章 ns-2 和 evalvid 的理论基础 第 2 章 ns-2 和evalvid的理论基础 第 2 章 ns-2 和evalvid的理论基础 2.1 网络仿真技术概述 2.1 网络仿真技术概述 ns-2(network simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由uc berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前ns-2 可以用于仿真各种不同的ip网,已经实现的一些仿真有:网络传输协议,比如tcp和udp;业务源流量产生器,比如ftp, telnet, web cbr和vbr;路由队列管理机制,比如droptail , red和cbq;路由算法,比如dijkstra等。ns-2 也为进行局域网的仿真而实现了多播以及一些mac 子层协议。【1】 ns-2 使用c+和otcl作为开发语言。ns-2 可以说是otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。ns-2 是用otcl和c+编写的。由于效率的原因,ns-2 将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间, 事件调度器和数据通道上的基本网络组件对象都使用c+写出并编译的,这些对象通过映射对otcl解释器可见。【1】 当仿真完成以后,ns-2 将会产生一个或多个基于文本的跟踪文件。只要在 tcl 脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用 nam(network animater,网络动画仿真器)将整个仿真过程展示出来。 2.2 ns-2 的仿真实现机制 2.2 ns-2 的仿真实现机制 2.2.1 ns-2 的仿真层次 2.2.1 ns-2 的仿真层次 ns-2 采用两级体系结构,体系结构如图 2-1 所示,将数据操作与控制部分相分离,事件调度器和大部分基本的网络构件对象后台使用 c+实现和编译, 成为编译层, 主要功能是实现对数据包的处理;ns-2 的前端是一个 otcl 解释器,称为解释器,主要功能是对模拟环境的配置、 建立。 编译类对象通过 otcl 连接建立了与之对应的解释类对象,这样用户能够方便地对 c+对象的函数进行修改与配置, 充分体现了方针的一致性和灵活性。 在仿真深度上分为两个层次:一个是基于 otcl 编程的层次, 即利用 ns-2 本身已有的仿真构件和网络模型实现仿真,不用对 ns-2 本身作任何改动,只要编写 otcl 脚本即可。另一个是基于 c+和 otcl 编程的层次,当 ns-2 中没有所需的网络元素,则需要首先对 ns-2 进行开发和扩展,利用前面提到的分裂对象模型添加新的 c+类和 otcl 5 常州工学院延陵学院毕业设计说明书 类,实现新的协议和算法,然后再编写 otcl 脚本。整个过程如图 2-2 所示。 ns-2eventschedulertclclotcltcl8.0 图 2-1 ns-2 体系结构 图 2-2 利用 ns-2 网络模拟过程 2.2.2 ns-2 的核心思想 2.2.2 ns-2 的核心思想 ns-2 由仿真事件驱动运行。所谓 event,即被研究的状态不断变化的仿真场景信息。比如,不同节点之间以及节点内部传输的 packet,无线网卡的当前状态,链路状态,移动节点的当前位置信息等。 对于协议仿真,最重要的 event 是 packet,即各种协议类型的分组。因为 ns-2的设计初衷就是针对各种通信协议的运行状况进行仿真,所以触发整个仿真活动的基本事件就是 packet。根据协议的规定,每个 packet 都包含协议相关的各种 header(分组首部)。 处理 packet 的模块被称为 agent。其主要职责是根据相关协议的定义,处理来自本节点或者外节点的 packet,对其中的 header 进行分析和判断,并做出正确的处理。 每种协议都有自己的协议处理模块,而一个通信节点可能同时支持若干种协议,所以就需要一种机制来管理这些属于不同协议层的代理。ns-2 为此专门定义了分类器这个模块,通过它来统一管理 agent。核心思想是,不同类型的 classifier 各自管理对应类型的一组 agent 其中每个 agent 都有自己对应的 port(端口号)。这样,packet源端节点在发送或者转发一个 packet 时,必须为 packet 指定接收节点的 ip 地址和agent 端口号。但是,ns 一中的 classifier 模块并不是按照 tcp/ip 协议栈的分层模 6 第 2 章 ns-2 和 evalvid 的理论基础 型划分的,agent 的分类也是如此。 在现实网络中,每一个节点就是一台主机或者路由器。类似的,ns-2 对应地定义了 node 这个模块,其作用如同一台真实主机,负责封装仿真场景中一个网络节点应该有的各种类型的模块。比如:协议处理模块(agent),物理层模块(antenna,link)等。 为了最终能够运行仿真场景,用户需要将定义好的仿真事件添加到调度列表中,因为仿真事件是按照时间的先后顺序依次进行的。ns-2 为此专门定义了模块scheduler,从而有效地管理所有的仿真事件。在仿真事件被定义的各个模块处,都要将定义好的仿真事件添加到 scheduler 的调度队列中,并指定事件触发的时间和负责处理该事件的模块。最终的运行结果将会是有序的网络事件处理过程,而不是混乱不堪的数据。 2.2.3 ns-2 的主要仿真构件 2.2.3 ns-2 的主要仿真构件 ns-2 封装了许多功能模块,最基本的有事件调度器、节点、链路、代理、数据包等。其中事件调度器和数据包较为特殊。事件调度器的实现目前有四种具有不同数据结构的调度器,分别是链表、堆、日历表和实时调度器。数据包是不同对象间相互交互的基本单元,是由事件派生出的子类。其它的功能模块都是一些网络构件。 ns-2 有一个丰富的构件库,有了这个构件库,用户可以完成自己所要研究的系统的建模工作, 网络构件分为基本网络构件和复合网络构件, 其中的基本构件库如图 2-3所示。【4】 图 2-3 ns-2 基本构件库的部分类层次结构 ns-2 中的基本网络构件分为 2 类:分类器(classifier)和连接器(connector)。它们都是 nsobject 的直接子类, nsobject 是 tclobject 的子类。 同时它们也是所有基本网络构件的父类。 分类器的派生类构件对象包括地址分类器(address classifier)、端口分类器 7 常州工学院延陵学院毕业设计说明书 (port classifier)、 复制器(replicator)等, 它们的共同特点是有一条数据输入路径,一条或多条数据输出路径。 连接器的派生类构件对象包括队列(queue)、延迟(delay)、代理(agent)和追踪对象类(trace)。它们的共同特点是单输入单输出。 ns-2 中的复合网络构件包括节点(node)和链路(link),它们由多个基本网络构件组成。如节点是由一个节点入口和若干个分类器组成,链路可以由多个连接器组成。 和网络仿真最密不可分的构件是数据包(packet),它是完成网络通信的基础。数据包由一系列分组头和一个可选的数据空间构成。通常情况下,数据包只含有一系列分组头,而指向数据空间的指针为 null。分组头的结构在 simulator 对象创建时就被初始化了,同时每个分组头相对于分组的起始地址的偏移量也被记录下来,缺省情况下无论某个分组头是否会被使用,它都会被初始化,但用户也可以选择只激活所有分组头中的一部分。在每个分组头中都要包含一个偏移量(offset)成员,它记录该分组相对于分组起始地址的偏移量,从而网络构件可根据它访问不同的分组头,进行不同协议的处理。错误!未找到引用源。错误!未找到引用源。 2.3 ns-2 的扩展 2.3 ns-2 的扩展 由于在网络多媒体传输的的仿真中,需要将真实的视频码流在网络中传输,因此必须对 ns-2 进行扩展与修改,添加视频传输仿真过程中所需的网络元素,包括代理的设计。如果研究者需要验证其提出的传输策略,就要使用 c+ + 和 otcl 对网络元素编程,将其提出的策略加到网络元素中去,然后重新编译 ns。在完成了对 ns-2 的扩展以后,就可以利用 ns 进行仿真了。ns-2 的扩展主要考虑三个问题,在 ns 下进行仿真首先要能和现有 tcp/ip 仿真器比较容易地集成的方法来表示网络,为此目的需要设计不同的类和各种函数来表示网络拓扑结构,集成整个系统。第二要考虑的问题是用户接口,获得用户输入,用户进入网络之后,整个网络及其资源,传送的业务类型,交换等都要初始化。第三要建一个仿真引擎来驱动整个仿真过程。仿真引擎可以选择的驱动方式有时间循环,分组循环和事件驱动。 2.4 网络拓扑结构的组成 2.4 网络拓扑结构的组成 2.4.1 节点 2.4.1 节点 节点是构成网络拓扑的重要组成部分,分为单播节点结构和多播节点结构。 1.单播节点的结构 1.单播节点的结构 一个单播节点是一个组合对象,包含两个 tcl 对象:用来判断分组目标地址的地址分类器(address classifier)和用来判断分组目标代理的端口分类器(port classifier)。单播节点的内部结构如图 2-4 所示: 8 第 2 章 ns-2 和 evalvid 的理论基础 图 2-4 单播节点的内部结构 一个节点本质上是一个分类器的集合, 每种分类器分别查看分组的一个特殊部分,再依次转发。如图所示的节点结构,分组进入节点入口后先到达地址分类器,地址分类器与端口分类器以及链路相关联。若分组的目的节点是本节点,则地址分类器会将分组交由端口分类器处理,端口分类器再将分组转达到匹配的代理;若分组的目的节点不是本节点,则地址分类器会将分组的目的地址通过移位和掩码操作产生一个 slot码,再根据分类器内部的 slot 表(类似于实际网络中的路由表)匹配相对应的下一跳节点地址,进而将分组发送到正确的链路。 ns-2 默认创建的是单播节点, 创建节点的基本方法是在创建了simulator类的对象之后使用该对象调用simulator类的node方法:【9】 set ns new simulator;创建一个模拟对象 set n0 $ns node ;#调用 node 方法创建节点 n0 2.多播节点的结构 2.多播节点的结构 与单播节点不同,多播节点的通信方式是一对多的通信,分组在转发时需要被转发到多个目标地址,因此要求多播节点能够对分组进行拷贝操作。多播节点主要由多播分类器(multicast classifier)和复制器(replicator)构成。多播节点的内部结构图如图 2-5 所示。创建多播节点方法与单播节点的方法类似: set ns1 new simulator multicast on ;#表示开启多播选项 set n1 $ns1 node ;#调用 node 方法创建节点 n1 9 常州工学院延陵学院毕业设计说明书 图 2-5 多播节点的内部结构图 多播分类器内部存在一张hash表,表项包含源地址、多播目的地址和slot码,根据分组的源地址和目的地址将分组进行分类,具体的处理过程与单播节点类似。复制器则没有分类的功能, 它根据分类器slot码表的项值n产生分组的副本并根据slot码表将分组转发到n个slot码对应的节点。【9】 以上讲述的节点的结构是针对有线网络中的节点,无线网络中的节点是可移动的节点,拥有很多不同于有线节点的属性。本文研究的是有线网络多媒体传输性能,故无线节点的相关叙述不再赘述。 2.4.2 链路 2.4.2 链路 在 ns-2 中,链路是有线网络拓扑的另一个重要组成部分,但是链路与 tcp/ip 网络分层结构中数据链路不同,它同时实现了物理层、数据链路层以及部分网络层的功能。 在 ns-2 模拟中,有两种链路的模型:一个是单向链路,模拟单工通信方式;另一个是双向链路,模拟双工通信方式。 1.单向链路 1.单向链路 模拟对象 ns 提供了方法 simple-link创建两点之间的单向链路, 相关代码如下: set ns new simulator $ns simple-link 以上代码建立了一条 node0 到 node1 的单向链路,并且定义了链路的以下特性。 (1)链路的带宽(bandwidth) 。链路的带宽就是数据传输速率,每秒链路上传输的数据量,单位可以为 bit/s,或 kbit/s,或 mbit/s。 (2)链路的时延(delay) 。即从分组从链路的一端传输到另一端所需要的时间。 10 第 2 章 ns-2 和 evalvid 的理论基础 (3)队列类型(queue_type) 。 模拟器对象ns调用过程simplex-link创建一条单向链路实际上是通过创建otcl的simplelink类的对象来实现的。当创建一个simplelink对象时,同时也创建了delaylink对象和ttlchecker对象,而queues对象则在此前已经被创建。【9】 2.双向链路 2.双向链路 创建一条双向链路与创建单向链路的方法类似,不同之处在于调用了 ns-2 的duplex-link过程,具体 tcl 代码如下: set ns new simulator $ns duplex-link 该命令创建了一条 node0 到 node1 的双向链路,链路的带宽为,延时为,队列类型为。 一条双向链路其实是由两条方向不同的单向链路构成,所以创建一条双向链路相当于创建了两条方向相反的单向链路,以上代码等价于:【9】 set ns new simulator $ns simple-link $ns simple-link 2.4.3 代理 2.4.3 代理 代理代表了网络层分组的起点和终点,并被用于实现如 tcp 和 udp 等网络协议。agent 类支持分组的产生和接收,c+的 agent 包含一系列的内部状态变量来表示分组的各个域。agent 可以实现多个层次的协议,对于一些运输层的协议,分组的大小和发送时间通常由 agent 提供的应用程序接口 (api) 来控制, 对于在低层使用的 agent (路由 agent) ,分组的大小和发送时间通常由 agent 自己控制。流量发生器(traffic generator) 、应用模拟器(simulated application) :是构建在运输层代理之上,流量发生器是模拟应用程序产生网络通信量, 有四类:(1) expoo_traffic (2) poo_traffic(3)cbr_traffic(4)traffictrace,它们一般用在 udp 代理之上;应用模拟器 ftp,telnet,一般用在 tcp 代理之上。 2.5 视频流的封装原理 2.5 视频流的封装原理 2.5.1 mpeg标准 2.5.1 mpeg标准 国际电信联盟(itu-t)已经制定的视频编码标准包括 h.261、h.263h.263+,它们采用的技术包括:dct 变换、运动补偿、量化、熵编码等。mpeg 制定的视频编码标准有 mpeg-1、mpeg-2、mpeg-4。其中 mpeg-1、mpeg-2 基本已经定稿,使用技术和 h.26x 11 常州工学院延陵学院毕业设计说明书 相同。mpeg-1、mpeg-2 的特点在于针对的应用主要是数字存储媒体,码率高,它们并不适于无线视频传输。人们熟知的 vcd、dvd 是 mpeg-1、mpeg-2 的典型应用。mpeg-4标准的最大特点是基于视频对象的编码方法。 封包和帧的关系:在 ns-2 的几个程序的执行中,设置封包的长度是 1024 字节,当封包长度越长时,图像的质量越高,一个完整的视频流是由多个帧按一定的速率播放呈现的,帧在网络层传输的过程中要经过分装,分成几个比较小的数据进行传输,到达接收端再进行组合形成帧,这样,在传输过程中,发生数据包的丢失,导致帧的不完整,从而视频播放质量下降。 2.5.2 mpeg中封包和帧的关系 2.5.2 mpeg中封包和帧的关系 在 mpeg 编码方式中,被编码的视频串流分成 3 种不同的画面,分别为:i-frame(intra-coded frame,帧内预测编码帧)、p-frame(predictive-coded frame,前向预测编码帧)和 b-frame(bi-directionally predictive-coded frame,双向预测编码帧) 。b-frame 是由它本身画面的数据作为编码,也就是不参考其他画面,p-frame是参考先前被编码的 i-frame 或 p-frame 及自己本身的数据做编码。 在 ns-2 的几个程序的执行中,设置封包的长度为 1024 字节,即把每个画面切割成 1024 字节大小的封包。当封包长度越长时,图像的质量越高,造成这种情况的原因是,当在同一个图像中,如果所使用的封包长度越长,代表每个画面所需要分割的分发包数量越少,而此时因为封包错误概率都相同,故与使用较短长度的封包的情况比起来,其遗失的封包数会比较少。在此时的情况下会造成比较多的可译码画面,所以会导致其图像质量比较高,而使用封包的长度比较短的封包时,其情况恰恰相反。一个完整的视频流是由多个帧按一定的速率播放的,帧在网络层过程中要经过分装,即数据的分块,分成几个比较小的数据包进行传输,到达接收端时再进行组合形成帧。 2.6 基于myevalvid 工具的多媒体传输系统 2.6 基于myevalvid 工具的多媒体传输系统 2.6.1 evalvid的概述 2.6.1 evalvid的概述 evalvid 是用来评估在真实或者模拟通信网络中传输视频质量的框架和工具集。 它是为一些研究者设计的,这些研究者想要用用户感知的视频质量去评估他们的网络设计和构建。除了测量网络的 qos 参数,比如丢包率,延时或者抖动,也要测量像 psnr和 ssim 等参数的视频质量的度量, 同时也需要提供接收到视频的主观视频质量评估的度量。 2.6.2 evalvid工具的结构 2.6.2 evalvid工具的结构 evalvid 的结构图如下图 2-6 所示: 12 第 2 章 ns-2 和 evalvid 的理论基础 图 2-6 evalvid 的结构图 下面分别介绍其主要组件。 (1) 信源信源: 格式可以是 yuv qcif (176pixels*144pixels) 格式或者是 yuv cif (352*288)的格式。 (2) 视频编码器视频编码器:分为视频压缩器与解压缩器,evalvid 所支持的视频压缩器与解压缩器有 nctu codec 和 ffmpeg,本文中采用 ffmpeg。而采用这个视频编码器的主要原因是 ffmpeg 能够提供比较多样的压缩方式,使得在做多媒体传输评估时能够考虑比较多的情况。 (3) 视频发送器视频发送器: 当图像原始数据经过了压缩之后, 视频发送器会读取压缩过后的文件,把文件中每一个数据量很大的画面切割成较小的区段,然后使用 udp 协议传送到实际或者仿真的网络上。对于每一个在实际网络上传送的 udp 封包,evalvid 会使用第三方的工具,如 tcpdump 或者 windump,将传送的时间、封包的识别和封包负载大小记录在一个传送端记录文件中,但若是传送的网络是仿真的,则网络仿真其中的传送端需要负责把相关的信息记录下来。另外,vs 也需要把压缩文件中每一个画面的相关信息记录在影片记录文件中,传送端记录文件和影片记录文件随后都会被用来做视频质量评定。 (4) 评价 trace评价 trace:即记录文件分析程序。当图像传输完后,效果评估的工作就开始了,效果评估的工作是在传送端处理的,因此在接收端得到的接收端记录文件必须返回传送端,接收端记录文件中的记录格式与传送端的是一样的,差别为传送端记录文件中的时间是传送时间,而接收端记录文件中的时间是接收时间。记录文件分析程序会根据原本图像压缩文件、影片记录文件、传送端记录文件和接收端记录文件去产生画面或者是封包遗失率、画面或封包抖动率和一个重建后并具有一些错误的图像文件。 这个文件就等同于在接收端所接收到所有数据汇集后的图像文件, 原则上, 13 常州工学院延陵学院毕业设计说明书 这个重建后并具有一些错误的图像文件,可以看作原来的图像压缩文件中的一个画面接着一个画面的复制过程,而那些在传输过程中遗失的画面并没有复制。 (5) 重建视频重建视频:即图像修补程序。数字图像质量的评价是一个画面和另一个画面比较所得到的,因此在接收端所收到的图像文件画面数,包括错误的,都应该要与传输端的原本图像文件画面数相同,如果编码解码器不能处理丢失的画面,图像修补程序会用最近一个能成功解出的画面用来弥补丢失的画面。 (6) psnr(peak to signal noise ratio)psnr(peak to signal noise ratio):即峰值信噪比程序。这个值越大则表示目的图像与原始图像差距越小,也就是画面的质量越好。计算的公式是去比较原始图像 s 和目前图像 d 的亮度部分 y。下面是计算公式: 2001j)i,(n,yj)i,(n,ynnvcoln=irownj=dsrowcolpeak psnr(n)db = 20 log10 式中,vpeak = 2k-1,k 是对于亮度部分用几个位来表示一个像素的值,信噪比测量了重建图像和原始图像的误差。传输之前,计算一个可能的重建视频编码的参考序列的 psnr 值。传送完毕后,在接收端计算 psnr 以用来重建包含了可能被破坏的视频序列的视频。个别的 psnr 值在源或接收器上没有多大意义,但在应用水平上,质量源编码视频在源或者接收器上的差异可以被用来作为一种客观的 qos 指标,评估视频质量传输造成的影响。 (7) mos(mean opinion score)mos(mean opinion score):即平均主观评分程序。平均主观评分是一种评鉴数字图像质量的主观指针。这个评分的范围是从 1 分(最差)到 5 分(最好) 。在这个框架里的平均主观评分程序,如下表 2-7 将psnr值转换成mos的评分。【16】 表2-7 psnr及mos的对照表 psnrdb mos 37 31-37 25-31 20-25 frametype_= frametype_; 3.2.3 参数默认值设置 3.2.3 参数默认值设置 如果要在 otcl 脚本中对 c+成员变量进行访问或配置,必须建立变量自己的映射关系,变量的绑定过程一般是在编译类对象初始化时执行构造函数完成的。本设计在ns-2/tcl/lib/default.tcl 中添加: 18 第 3 章 基于 ns-2 的网络多媒体传输的仿真设计与实现 agent/ myudp set packetsize _ 1000 tracefile set debug_ 0 3.2.4 myevalvid扩展到ns-2 的具体实现步骤 3.2.4 myevalvid扩展到ns-2 的具体实现步骤 (1)实验使用标准 yuv 视频序列,本实验使用 akiyo_cif.yuv 文件。 (2)在 ns-2 的 common 文件夹中修改 packet.h 文件。 struct hdr_cmn enum dir_t down= -1, none= 0, up= 1 ; packet_t ptype_; /分组类型 int size_; /模拟分组的大小 double ts_arr_; /添加以下代码 int frametype_; /视频传输的帧类型为 mpeg double sendtime_; /发送时间 unsigned long int frame_pkt_id_; /添加以下代码 int frametype_; /视频传输的帧类型为 mpeg double sendtime_; /发送时间 unsigned long int frame_pkt_id_; (3)在 common 文件夹中修改 agent.h 文件。 class agent: public coclass agent : public connector public: inline packet_t get_pkttype() return type_; /添加以下两行 inline void set_frametype(int type) frametype_ = type; inline void set_prio(int prio) prio_ = prio; /添加以下两行 inline void set_frametype(int type) frametype_ = type; inline void set_prio(int prio) prio_ = prio; protected: int command (int argc, const char*const* argv); int defttl_; /添加以下行 int frametype_; /视频传输的 mpeg 帧类型 /添加以下行 int frametype_; /视频传输的 mpeg 帧类型 (4)在 common 文件夹中修改 agent.cc 文件。 agent:initpkt(packet* p) const 19 常州工学院延陵学院毕业设计说明书 hdr_cmn* ch = hdr_cmn:access(p); ch-error() = 0; /添加以下行 ch-frametype_= frametype_;/添加以下行 ch-frametype_= frametype_; (5)在文件夹“ns-2.33”下创建文件夹“mympeg” ,把 myudp.cc,myudp.h,myudpsink2.cc,myudpsink2.h,mytraffictrace2.ccmyudp.cc,myudp.h,myudpsink2.cc,myudpsink2.h,mytraffictrace2.cc 放置进去。 (6)在该路径 lib 文件夹中对文件 default.tcl 进行修改,在文件的末尾添加如下代码。 agent/ myudp set packetsize _ 1000 tracefile set debug_ 0 agent/ myudp set packetsize _ 1000 tracefile set debug_ 0 (7)在文件 makefile 的末尾添加代码。 在 obj_ccobj_cc 里添加: mympeg/myudp.o,mympeg/myudpsink2.o 和 mympeg/mytraffictrace2.o mympeg/myudp.o,mympeg/myudpsink2.o 和 mympeg/mytraffictrace2.o (8)重新编译 ns-2。 cd ns-allinone-2.33/ns-2.33 make clean; make cd ns-allinone-2.33/ns-2.33 make clean; make 3.3 视频传输仿真设计与实现 3.3 视频传输仿真设计与实现 3.3.1 仿真流程 3.3.1 仿真流程 进行网络仿真前,首先分析仿真涉及哪个层次,ns-2 仿真分两个层次:一个是基于 otcl 编程的层次。利用 ns-2 已有的网络元素实现仿真,无需修改 ns-2 本身,只需编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合同范本雇佣短期合同律师合同参考样本
- 商业步行街场经营管理合同
- 消费电子厂商与经销商渠道拓展合作协议
- 2025合同模板 股权转让协议条款明确适合修改使用或参考范本
- 2025购买住宅用地定金合同模板
- 疼痛诊疗学(医学高级):运动系统疾病题库考点(强化练习)
- 小学二年级心理健康教育教案
- 四大规划面试题目及答案
- 电气火灾试题及答案
- 新闻宣传业务试题及答案
- 《文化遗产的数字化传承》课件
- 【课件】女装结构设计 女装原型
- 2025年上半年支部工作总结范文
- 培养直播知识的专业素养
- 食堂厨房安全事故案例
- 拟采用新技术、新工艺、新材料情况
- 国开(四川)2024年秋《演讲与口才》形考任务1-2答案终结性考核答案
- 高空作业脚手架搭建方案
- 江苏2022-2024年三年中考语文真题教师版-专题10 文学类文本阅读
- 2024年湖南省高考生物试卷真题(含答案解析)
- 广东省肇庆市2023-2024学年高二上学期期末教学质量检测试题 化学 含解析
评论
0/150
提交评论