基于NS2的泛洪路由协议的实现与仿真

目录

摘要 (3)

第1章绪论 (4)

1.1 论文背景 (4)

1.2 论文研究内容 (4)

1.3 论文组织结构 (4)

第2章 Ad Hoc网络的介绍及应用 (5)

2.1 Ad Hoc网络的概念及特点 (5)

2.2 Ad Hoc网络的结构 (6)

2.3 Ad Hoc网络的应用领域 (7)

第3章 NS2体系结构和功能模块 (8)

3.1 NS2网络仿真概述 (8)

3.2 NS2的使用和安装 (8)

3.3 NS2的相关工具介绍 (9)

3.4 NS2现有的仿真元素 (10)

3.5 NS2仿真的一般步骤 (10)

第 4 章泛洪路由协议的设计实现 (12)

4.1 MFlood议类 (12)

4.2 添加协议类 (12)

4.3 添加包头类型 (14)

4.4 编译代码 (15)

第5章泛洪路由协议的仿真测试 (16)

5.1 初步测试 (16)

5.2 场景测试 (19)

5.3 trace分析 (21)

第6章心得体会 (26)

参考文献...... . (27)

基于NS2的泛洪路由协议的实现与仿真

摘要:

网络操作要求的不断变化刺激了新协议和新算法的产生和发展。网络模拟仿真是研究新协议、分析新算法的一种重要方法。络仿真平台NS2正是这样一种针对网络技术的源代码公开的、免费的软件模拟平台,其协议代码与真实网络应用代码很相似,仿真结果具有较高的可靠性。

NS2(Network Simulator,version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。

本文详细讨论了基于NS2仿真工具对无线通信协议MFlood泛洪路由协议进行仿真的过程。通过在NS2中添加泛洪路由协议,进行了NS2的扩展性研究与实现,最后通过使用相关工具对输出结果进行处理,为日后进行网络研究奠定基础。

关键词:NS2 泛洪路由协议、分组头、扩展

第1章绪论

1.1论文背景

网络模拟是进行网络技术研究的一种基本手段。在新技术的研究过程中,由于各种原因,实际网络系统的实现往往是代价较高或是不现实的。在这种情况下,模拟就成了最佳可供选择的测试、评估和验证手段之一。网络模拟有着周期小、成本低等特点,而且可以使研究者更容易利用他人的研究成果。

NS2正是这样一种针对网络技术的源代码公开的、免费的软件模拟平台。它是美国DARPA支持的项目VINT(Virtual InterNet Testbed)开发的通用的多协议网络模拟软件,其中集成了大量典型的有线、无线甚至卫星网络下各个层的协议,同时NS 广泛的用户又在不断地对这个系统进行完善和修改。正是由于NS2的这种开放性,使研究者更好的进行各种算法的实现和协议的改进。

Ad Hoc网络是一组具有无线收发装置的移动节点组成的一个多跳的临时性的自组织系统,具有以下一些主要特征:动态拓扑,即网络中的节点可以任意移动,因此,网络的拓扑结构也可能会变化;链路带宽受限、容量时变,由于拓扑动态变化导致每个节点转发的非自身作为目的地的业务量随时间而变化,因此与有线网络不同,它的链路容量表现出时变特征;动力受限,能量受限,由于网络节点的移动特征,其中大多数节点以电池作为动力,在进行系统设计时节能就成为一个非常重要的指标;物理上安全有限,移动网络比固定网络(有线和无线)更易受到安全威胁,需要克服无线链路的安全弱点及移动拓扑所带来的新的安全隐患,因此,传统的用于固定网络的路由协议不适用于Ad Hoc网络。由于Ad Hoc网络的特点,它对路由协议有了一些新的要求,如何更好地应用这种自组织的网络,满足更多的应用,首先应该掌握现有的一些路由算法协议的特点。

1.2论文研究内容

在研究无线网的路由中,想要考察节点的运动型对路由协议带来的冲突。在NS2中实现了AODV等无线路由协议,而缺乏最简单的泛洪的实现。在节点运动型非常大的场景中,向全网进行洪泛反而是最有效的路由手段。从而,我们要在NS2中为无线自组网部分添加一个洪泛协议。泛洪路由协议本身非常简单,每个节点收到包后只要判断不是重复包后就再次广播。

因此本文即是基于NS2这种网络仿真器对Ad Hoc网络的泛洪路由协议进行研究。

1.3论文组织结构

第二章对于Aod Hoc网络的简单介绍:包括其概念特点,结构组成等

第三章NS2体系结构及功能模块:具体描述了NS2的体系结构和各项功能模块,包括使用NS2进行网络模拟的过程,此外还进一步考虑了C + + 建立新协议或修改已有网络对象进行扩展时相关的问题。

第四章泛洪路由协议的设计实现:对泛洪路由协议的设计步骤进行了详细的介绍。

第五章泛洪路由协议的仿真测试:对第四章实现的泛洪路由协议进行了网络仿真测试,最后对结果进行了分析讨论。

第六章从所作的毕业设计中得到的一些心得体会。

第二章Ad Hoc网络的介绍

2.1 Ad Hoc网络的概念及特点

2.1.1 Ad Hoc网络的概念

(1)Ad Hoc网络是一种分布式网络。

Ad Hoc网络又称为多跳网络(multi-hop network)、无固定网络设施的网络(infrastructure less network)、自组(self organization)网,自愈网或是对等网,它是一种逻辑意义上的组网方式,即强调在不依赖基础网络设施的前提下由一定范围内的移动终端动态的建立可以互联的网络。同时它还将现有的主要网络中广泛应用的中央控制管理的功能进行分布式处理,由网络各个节点同步完成,从而提高了网络抗干扰,抗故障的能力,也使其成为在许多特殊场合进行网络互联应用的主要方案。

Ad Hoc网络是一种没有有线基础设施支持的移动网络,网络中的节点均由移动主机构成。在Ad Hoc网络中,当两个移动主机在彼此的通信覆盖范围内时,它们可以直接通信。但是由于移动主机的通信覆盖范围有限,如果两个相距较远的主机要进行通信,则需要通过它们之间的移动主机B的转发才能实现。因此在Ad Hoc网络中,主机同时还是路由器,担负着寻找路由和转发报文的工作。在Ad Hoc网络中,每个主机的通信范围有限,因此路由一般都由多跳组成,数据通过多个主机的转发才能到达目的地。

(2)Ad Hoc网络是移动通信和计算机网络的交叉。

在Ad Hoc网络中,使用计算机网络的分组交换机制,而不是电路交换机制。通信的主机一般是便携式计算机、个人数字助理(PDA)等移动终端设备。

Ad Hoc网络不同于目前因特网环境中的移动IP网络。在移动IP网络中,移动主机可以通过固定有线网络、无线链路和拨号线路等方式接入网络,而在Ad Hoc网络中只存在无线链路一种连接方式。在移动IP网络中,移动主机通过相邻的基站等有线设施的支持才能通信,在基站和基站(代理和代理)之间均为有线网络,仍然使用因特网的传统路由协议。而Ad Hoc网络没有这些设施的支持。此外,在移动IP 网络中移动主机不具备路由功能,只是一个普通的通信终端。当移动主机从一个区移动到另一个区时并不改变网络拓扑结构,而Ad Hoc网络中移动主机的移动将会导致拓扑结构的改变。

然而在全IP的趋势下,很多研究机构也在积极给出将Ad Hoc网络无缝链接到Internet。

2.1.2 Ad Hoc网络的主要特点

(1)无中心:Ad Hoc网络没有严格的控制中心。所有结点的地位平等,即是一个对等式网络。结点可以随时加入和离开网络。任何结点的故障不会影响整个网络的运行,具有很强的抗毁性。

(2)自组织:网络的布设或展开无需依赖于任何预设的网络设施。结点通过分层协议和分布式算法协调各自的行为,结点开机后就可以快速、自动地组成一个独立的网络。

(3)多跳路由:当结点要与其覆盖范围之外的结点进行通信时,需要中间结点的多跳转发。与固定网络的多跳不同,Ad Hoc网络中的多跳路由是由普通的网络结点完成的,而不是由专用的路由设备(如路由器)完成的。

(4)动态拓扑:Ad Hoc网络是一个动态的网络。网络结点可以随处移动,也可以随时开机和关机,这些都会使网络的拓扑结构随时发生变化。

(5)独立性:Ad Hoc网络相对常规通信网络而言,最大的区别就是可以在任何时刻、任何地点不需要硬件基础网络设施的支持,快速构建起一个移动通信网络。它的建立不依赖于现有的网络通信设施,具有一定的独立性。

(6)有限的无线通信带宽:在Ad Hoc网络中没有有线基础设施的支持,因此,主机之间的通信均通过无线传输来完成。由于无线信道本身的物理特性,它提供的网络带宽相对有线信道要低得多。除此以外,考虑到竞争共享无线信道产生的碰撞、信号衰减、噪音干扰等多种因素,移动终端可得到的实际带宽远远小于理论中的最大带宽值。

(7)有限的主机能源:在Ad Hoc网络中,主机均是一些移动设备,如PDA、便携计算机或掌上电脑。由于主机可能处在不停的移动状态下,主机的能源主要由电池提供,因此Ad Hoc网络有能源有限的特点。

(8)有限的物理安全:移动网络通常比固定网络更容易受到物理安全攻击,易于遭受窃听、欺骗和拒绝服务等攻击。现有的链路安全技术有些已应用于无线网络中来减小安全攻击。不过Ad Hoc网络的分布式特性相对于集中式的网络具有一定的抗毁性。

2.2 Ad Hoc网络的结构

(1)结点结构:Ad Hoc网络中的结点不仅具备普通移动终端的功能,而且具有报文转发能力,即具备路由器的功能。因此,就功能而言可以将结点分为主机、路由器和电台三部分。其中主机部分完成普通移动终端的功能,包括人机接口、数据处理等应用软件。而路由器部分主要负责维护网络的拓扑结构和路由信息,完成报文的转发功能。电台部分为信息传输提供无线信道支持。从物理结构上分,结构可以被分为以下几类:单主机单电台、单主机多电台、多主机单电台和多主机多电台。手持机一般采用的单主机单电台的简单结构。作为复杂的车载台,一个结点可能包括通信车内的多个主机。多电台不仅可以用来构建叠加的网络,还可用作网关结点来互联多个Ad Hoc网络。

(2) 网络结构:Ad Hoc网络的网络结构有平面结构和分级结构两种。当网络的规模较小时,可以采用简单的平面式结构;而当网络的规模增大时,应用分级结构。

①.平面结构:在平面结构中,所有结点的地位平等,所以又可以称为对等式结构。平面结构的网络比较简单,网络中所有结点是完全对等的,原则上不存在瓶颈,所以比较健壮。它的缺点是可扩充性差:每一个结点都需要知道到达其他所有结点的路由。维护这些动态变化的路由信息需要大量的控制消息。

②.分级结构:分级结构中,网络被划分为簇。每个簇由一个簇头和多个簇成员组成。这些簇头形成了高一级的网络。在高一级网络中,又可以分簇,再次形成更高一级的网络,直至最高级。在分级结构中,簇头结点负责簇间数据的转发。簇头可以预先指定,也可以由结点使用算法自动选举产生。分级结构的网络又可以被分为单频

分级和多频分级两种。单频率分级网络中,所有结点使用同一个频率通信。为了实现簇头之间的通信,要有网关结点(同时属于两个簇的结点)的支持。而在多频率分组网络中,不同级采用不同的通信频率。低级结点的通信范围较小,而高级结点要覆盖较大的范围。高级的结点同时处于多个级中,有多个频率,用不同的频率实现不同级的通信。在两级网络中,簇头结点有两个频率。频率1用于簇头与簇成员的通信。而频率2用于簇头之间的通信。分级网络的每个结点都可以成为簇头,所以需要适当的簇头选举算法,算法要能根据网络拓扑的变化重新分簇。

在分级结构的网络中,簇成员的功能比较简单,不需要维护复杂的路由信息。这大大减少了网络中路由控制信息的数量,因此具有很好的可扩充性。由于簇头结点可以随时选举产生,分级结构也具有很强的抗毁性。分级结构的缺点是,维护分级结构需要结点执行簇头选举算法,簇头结点可能会成为网络的瓶颈。

2.3 Ad Hoc网络的应用领域

由于Ad Hoc网络的特殊性,它的应用领域与普通的通信网络有着显著的区别。它适合被用于无法或不便预先铺设网络设施的场合、需快速自动组网的场合等。针对Ad Hoc网络的研究是因国事应用而发起的。因此,军事应用仍是Ad Hoc网络的主要应用领域,但是民用方面,Ad Hoc网络也有非常广泛的应用前景。它的应用场合主要有以下几类:

1、军事应用:军事应用是Ad Hoc网络技术的主要应用领域。因其特有的无需架设网络设施、可快速展开、抗毁性强等特点,它是数字人战场通信的首选技术。Ad Hoc网络技术已经成为美军战术互联网的核心技术。美军的近期数字电台和无线互联网控制器等主要通信装备都使用了Ad Hoc网络技术。

2、传感器网络:传感器网络是Ad Hoc网络技术的另一大应用领域。对于很多应用场合来说传感器网络只能使用无线通信技术。而考虑到体积和节能等因素,传感器的发射功率不可能很大。使用Ad Hoc网络实现多跳通信是非常实用的解决方法。分散在各处的传感器组成Ad Hoc网络,可以实现传感器之间和与控制中心之间的通信。这在爆炸残留物检测等领域具有非常广阔的应用前景。

3、紧急和临时场合:在发生了地震、水灾、强热带风暴或遭受其他灾难打击后,固定的通信网络设施(如有线通信网络、蜂窝移动通信网络的基站等网络设施、卫星通信地球站以及微波接力站等)可能被全部摧毁或无法正常工作,对于抢险救灾来说,这时就需要Ad Hoc网络这种不依赖任何固定网络设施又能快速布设的自组织网络技术。类似地,处于边远或偏僻野外地区时,同样无法依赖固定或预设的网络设施进行通信。Ad Hoc网络技术的独立组网能力和自组织特点,是这些场合通信的最佳选择。

4、个人通信:个人局域网(PAN,Personal Area Network)是Ad Hoc网络技术的另一应用领域。不仅可用于实现PDA、手机、手提电脑等个人电子通信设备之间的通信,还可用于个人局域网之间的多跳通信。蓝牙技术中的超网(Scatternet)就是一个典型的例子。

5、与移动通信系统的结合:Ad Hoc网络还可以与蜂窝移动通信系统相结合,利用移动台的多跳转发能力扩大蜂窝移动通信系统的覆盖范围、均衡相邻小区的业务、提高小区边缘的数据速率等。

在实际应用中,Ad Hoc网络除了可以单独组网实现局部的通信外,它带可以作为末端子网通过接入点接入其他的固定或移动通信网络,与Ad Hoc网络以外的主机进行通信。因此,Ad Hoc网络也可以作为各种通信网络的无线接入手段之一。

实验7 OSPF路由协议配置 实验报告

浙江万里学院实验报告 课程名称:数据通信与计算机网络及实践 实验名称:OSPF路由协议配置 专业班级:姓名:小组学号:2012014048实验日期:6.6

再测试。要求写出两台路由器上的ospf路由配置命令。

[RTC-rip-1]import ospf [RTC-rip-1]quit [RTC]ospf [RTC-ospf-1]import rip [RTC-ospf-1]quit

结合第五步得到的路由表分析出现表中结果的原因: RouteB 通过RIP学习到C和D 的路由情况,通过OSPF学习到A 的路由信息 实验个人总结 班级通信123班本人学号后三位__048__ 本人姓名_ 徐波_ 日期2014.6.06 本次实验是我们的最后一次实验,再次之前我们已经做了很多的有关于华为的实验,从一开始的一头雾水到现在的有一些思路,不管碰到什么问题,都能够利用自己所学的知识去解决或者有一些办法。这些华为实验都让我受益匪浅。 实验个人总结 班级通信123班本人学号后三位__046__ 本人姓名_ 金振宁_ 日期2014.6.06 这两次实验都可以利用软件在寝室或者去其他的地方去做,并不拘泥于实验室,好好的利用华为的模拟机软件对我们来说都是非常有用的。 实验个人总结 班级通信123班本人学号后三位__044_ 本人姓名_ 陈哲日期2014.6.06

理解OSPF路由协议,OSPF协议具有如下特点: 适应范围:OSPF 支持各种规模的网络,最多可支持几百台路由器。 快速收敛:如果网络的拓扑结构发生变化,OSPF 立即发送更新报文,使这一变化在自治系统中同步。 无自环:由于OSPF 通过收集到的链路状态用最短路径树算法计算路由,故从算法本身保证了不会生成自环路由。 实验个人总结 班级通信123班本人学号后三位__050 本人姓名_ 赵权日期2014.6.06 通过本次实验学会了基本的在路由器上配置OSPF路由协议,组建一个简单的路由网络。想必以后的生活中有可能会用到。

实验四:ARP分析及路由协议分析

??计算机网络实验与学习指导基于Cisco Packet Tracer模拟器 计算机科学与技术学院计算机网络实验报告 年级2013 学号2013434151 姓名汪凡成绩 专业计算机科学与技术实验地点C1-422 指导教师常卓 实验项目实验3.3:ARP分析实验3.5:路由协议分析实验日期2016/5/6 实验3.3:ARP分析 一、实验目的 1.掌握基本的ARP命令。 2.熟悉ARP报文格式和数据封装方式。 3.理解ARP的工作原理。 二、实验原理 (1)ARP简介 1.什么是ARP ARP,即地址解析协议。TCP/IP网络使用ARP实现IP地址到MAC地址的动态解析。网络层使用逻辑地址(IP地址)作为互联网的编址方案,但实际的物理网络(以太网)采用硬件地址(MAC地址)来唯一识别设备。因此在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址(MAC地址)。 ①ARP工作原理 每个主机和路由器的内存中都设有一个ARP高速缓存,用于存放其他设备的IP地址到物理地址的映射表。当主机欲向本局域网上其他主机发送IP包时,先在本地ARP缓存中查看是否有对方的MAC地址信息。如果没有,则ARP会在网络中广播一个ARP请求,拥有该目标IP地址的设备将自动发回一个ARP回应,对应的MAC地址将记录到主机的ARP缓存中。考虑到一个网络可能经常有设备动态加入或者撤出,并且更换设备的网卡或IP地址也都会引起主机地址映射发生变化,因此,ARP缓存定时器将会删除在指定时间段内未使用的ARP条目,具体时间因设备而异。例如,有些Windows操作系统存储ARP缓存条目的时间为2mim但如果该条目在这段时间内被再次使用,其ARP定时器将延长至lOmin。ARP缓存可以提高工作效率。如果没有缓存,每当有数据帧进入网络时,ARP都必须不断请求地址转换,这样会延长通信

NS2网络仿真实验

NS2网络仿真实验 实验目的: 通过修改NS2的TCP协议代码,来简单的观察窗口阈值的不同算法对网络资源利用率的影响。 实验步骤: 1. 实验环境搭建 (1)系统环境: 虚拟机:virtrulbox; 操作系统:linux/ubuntu 10.04 工作目录:/home/wangtao/workspace/ (2)NS2安装与使用: 下载NS2软件包到工作目录, 地址https://www.360docs.net/doc/1d10202299.html,/sourceforge/nsnam/ns-allinone-2.33.tar.gz 解压(注:以下斜体字为命令行命令) tar -zxf ns-allinone-2.33.tar.gz cd ns-allinone-2.33 ./install (中间的两个bug已经修改,此处忽略) 耐心等待安装完毕后将出现如下画面说明安装正常: 接下来是系统环境配置,重新进入终端 cd ~ vim .bashrc(如果没有安装vim最好安装一下,sudo apt-get install vim) 在打开的.bashrc的末尾加上以下内容:

PATH="$PATH:/home/wangtao/worksapce/ns-allinone-2.33/bin:/home/wangtao/worksapce/ns-a llinone-2.33/tcl8.4.18/unix" export LD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib" export TCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library" 保存并退出,重新进入终端 安装xgraph sudo apt-get install xgraph 运行一个简单的例子,以证明环境安装完成: ns /home/wangtao/workspace/ ns-allinone-2.33/tcl/ex/simple.tcl 出现如下图说明成功: 2.修改https://www.360docs.net/doc/1d10202299.html,代码 vim /home/wangtao/workspace/ns-allinone-2.33/tcp/https://www.360docs.net/doc/1d10202299.html, (将窗口阈值一半变为的窗口阈值1/3——wt_https://www.360docs.net/doc/1d10202299.html,) 第一处: …… if (cwnd_ < ssthresh_) slowstart = 1; if (precision_reduce_) { //halfwin = windowd() / 2; //wangtao halfwin = windowd() / 3;

NS2网络模拟

网络协议分析与仿真课程设计报告 网络模拟 一、课程设计目的 掌握网络模拟工具NS2的使用,学习基本的网络模拟方法。 二、课程设计内容 协议模拟 工具:NS2,awk,shell,perl等; 要求:掌握NS2网络模拟的基本流程; 内容:NS2网络模拟基本流程 编写TCL脚本,搭建如下图所示的一个网络,共6个节点,其中2、3节点用做ftp服务器和客户端,4、5节点用做cbr流量的源和目的,而0、1节点用做转发设备。各节点间的链路属性见图。 cbr null packet size = 1kbytes, rate=1Mbps 模拟时间设为13秒钟,在0.1秒开始产生cbr流量,在1.0秒开发发送发ftp流量; 8.0秒ftp流量结束,12.0秒cbr流量结束。编写脚本(可用shell,awk,或perl等) 分析模拟日志文件,统计每0.5s内0、1节点间链路通过的分组数以及字节数。 三、设计与实现过程 1.仿真脚本代码与详细注解 #Create a simulator object set ns [new Simulator] #Define different colors for data flows (for NAM) $ns color 1 Blue $ns color 2 Red #Open the NAM trace file set nf [open out.nam w] $ns namtrace-all $nf #Open the Trace file

set tf [open out.tr w] $ns trace-all $tf #Define a 'finish' procedure proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec nam out.nam & exit 0 } #Create four nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] #Create links between the nodes $ns duplex-link $n0 $n2 1.5Mb 10ms DropTail $ns duplex-link $n0 $n4 1.5Mb 10ms DropTail $ns duplex-link $n0 $n1 2Mb 20ms DropTail $ns duplex-link $n1 $n3 1.5Mb 10ms DropTail $ns duplex-link $n1 $n5 1.5Mb 10ms DropTail #Set Queue Size of link (n2-n3) to 10 $ns queue-limit $n0 $n1 10 #Setup a TCP connection set tcp [new Agent/TCP] $ns attach-agent $n2 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 #Setup a UDP connection set udp [new Agent/UDP] $ns attach-agent $n4 $udp set null [new Agent/Null] $ns attach-agent $n5 $null

基于NS2的泛洪路由协议的实现与仿真

目录 摘要 (3) 第1章绪论 (4) 1.1 论文背景 (4) 1.2 论文研究内容 (4) 1.3 论文组织结构 (4) 第2章 Ad Hoc网络的介绍及应用 (5) 2.1 Ad Hoc网络的概念及特点 (5) 2.2 Ad Hoc网络的结构 (6) 2.3 Ad Hoc网络的应用领域 (7) 第3章 NS2体系结构和功能模块 (8) 3.1 NS2网络仿真概述 (8) 3.2 NS2的使用和安装 (8) 3.3 NS2的相关工具介绍 (9) 3.4 NS2现有的仿真元素 (10) 3.5 NS2仿真的一般步骤 (10) 第 4 章泛洪路由协议的设计实现 (12) 4.1 MFlood议类 (12) 4.2 添加协议类 (12) 4.3 添加包头类型 (14) 4.4 编译代码 (15) 第5章泛洪路由协议的仿真测试 (16) 5.1 初步测试 (16) 5.2 场景测试 (19)

5.3 trace分析 (21) 第6章心得体会 (26) 参考文献...... . (27)

基于NS2的泛洪路由协议的实现与仿真 摘要: 网络操作要求的不断变化刺激了新协议和新算法的产生和发展。网络模拟仿真是研究新协议、分析新算法的一种重要方法。络仿真平台NS2正是这样一种针对网络技术的源代码公开的、免费的软件模拟平台,其协议代码与真实网络应用代码很相似,仿真结果具有较高的可靠性。 NS2(Network Simulator,version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。 本文详细讨论了基于NS2仿真工具对无线通信协议MFlood泛洪路由协议进行仿真的过程。通过在NS2中添加泛洪路由协议,进行了NS2的扩展性研究与实现,最后通过使用相关工具对输出结果进行处理,为日后进行网络研究奠定基础。 关键词:NS2 泛洪路由协议、分组头、扩展

ospf协议,实验报告

ospf协议,实验报告 篇一:实验7 OSPF路由协议配置实验报告 浙江万里学院实验报告 课程名称:数据通信与计算机网络及实践 实验名称: OSPF路由协议配置专业班级:姓名:小组学号:XX014048 实验日期: 再测试。要求写出两台路由器上的ospf路由配置命令。 第页共页 [RTC-rip-1]import ospf [RTC-rip-1]quit [RTC]ospf [RTC-ospf-1]import rip [RTC-ospf-1]quit 结合第五步得到的路由表分析出现表中结果的原因: RouteB 通过RIP学习到C和D 的路由情况,通过OSPF 学习到A 的路由信息 实验个人总结 班级通信123班本人学号后三位__048__ 本人姓名_徐波_ 日期 本次实验是我们的最后一次实验,再次之前我们已经做了很多的有关于华为的实验,从一开始的一头雾水到现在的有一些思路,不管碰到什么问题,都能够利用自己所学的知识去解决或者有一些办法。这些华为实验都让我受益匪浅。

实验个人总结 班级通信123班本人学号后三位__046__ 本人姓名_金振宁_ 日期 这两次实验都可以利用软件在寝室或者去其他的地方去做,并不拘泥于实验室,好好的利用华为的模拟机软件对我们来说都是非常有用的。 实验个人总结 班级通信123班本人学号后三位本人姓名_陈哲日期 第页共页 篇二:单区域的OSPF协议配置实验报告 学生实验报告 *********学院 篇三:OSPF实验报告 计算机学院 实验报告 ( XX 年春季学期) 课程名称:局域网设计与管理 主讲教师:李辉 指导教师:学生姓名: 学 年郑思楠号: XX012019 级: XX级

基于NS2的无线传感器网络软件仿真实验

目录 ●课程设计目的 ●课程设计内容 ●课程设计实验原理 ?WSN路由协议 ?WSN MAC层协议 ?修改的路由协议 ●课程设计小组分工 ●课程设计实验流程 ●课程设计实验结果分析 ●课程设计心得体会 ●课程设计总结 ●参考文献 ●源代码

一、课程设计目的 无线传感器网络是物联网的基本组成部分,是物联网用来感知和识别周围环境的信息生成和采集系统,传感器网络对信息处理来说如同人体的感觉突触一样重要。为了方便感知和部署并提高网络的可扩展性,传感器网络一般采用无线通信方式,从而形成了节点之间可自组织拓扑结构的无线传感器网络。本课程设计的目的综合应用学生所学知识,建立系统和完整的传感器网络概念,理解和巩固无线传感器网络基本理论、原理和方法,掌握无线传感器网络开发的基本技能。 二、课程设计内容 软件仿真实验。 要求使用相关软件仿真一个无线传感器网络,要求如下: ●自行参考相关资料,成功安装NS2(或OPNET也可以); ●利用NS2自带的范例,构建一个100个节点的无线传感器网络, 能够成功运行;最好能有界面显示; ●利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器 网络一种路由协议(例如一种多播路由协议); ●利用利用NS2自带的范例或其它已有脚本,仿真上述无线传感器 网络采用一种MAC协议; ●修改或自行编写一个简单路由协议或MAC协议,并进行仿真运 行。

三、课程设计实验原理 a)WSN路由协议 传统计算机网络对路由协议要求如下:正确性,健壮性,稳定性,公平性,最优性。除此之外,无线传感器网络对路由协议更注重以下特殊要求:能源有效性,简单性,多路性。无线传感器网络是以数据为中心(Data Centric)进行路由的,不同于传统Ad hoc网络以地址为中心(Address Centric)进行路由的模式。由于传感器最基本任务就是感知、采集数据,无线传感器网络邻近节点间采集的数据必然具有相似性,存在冗余信息,需经数据融合(Data Fusion)处理再进行路由。有研究表明,在分布密度为ρ(x, y)的随机区域,传感器间冗余数据为:η=ζSeρ。直接传输这些未经处理、存在冗余的数据,将会造成网络带宽、节点能源的巨大浪费,导致节点迅速死亡,缩短整个网路的生命周期。 无线传感器网络中的大部分节点不像传统Ad hoc网络中的节点一样快速移动,因此没有必要花费很大的代价频繁地更新路由表信息。常规路由协议通常认为底层的通信信道是双向的,但是在采用无线通信的无线传感器网络环境中,由于发射功率或地理位置等因素的影响,可能存在单向信道。它给常规路由协议带来三个严重的影响:认知单向性、路由单向性和汇点不可达。

网络模拟器NS2中仿真功能的问题分析及改进

第21卷第2期 系 统 仿 真 学 报? V ol. 21 No. 2 2009年1月 Journal of System Simulation Jan., 2009 网络模拟器NS2中仿真功能的问题分析及改进 况晓辉1, 赵 刚1,2, 郭 勇1, 3 (1.北京系统工程研究所, 北京 100101; 2.清华大学计算机科学与技术系, 北京 100084; 3.国防科技大学信息系统与管理学院, 长沙 410073) 摘 要:网络仿真技术为解决大规模网络规划、应用和协议设计面临的挑战提供了新的途径。作为广泛应用的网络模拟器,NS2为建立可扩展的网络仿真环境奠定了重要基础。在描述NS2仿真功能实现的基础上,重点分析了NS2仿真功能存在的不足。针对发现的问题,提出并实现了NS2仿真功能扩展,最后验证了仿真功能扩展的正确性。 关键词:网络仿真;NS2;报文转换;功能扩展 中图分类号:TP393 文献标识码:A 文章编号:1004-731X (2009) 02-0427-05 Improvement of Emulation Function in Network Simulator KUANG Xiao-hui 1, ZHAO Gang 1,2, GUO Yong 1, 3 (1. Beijing Institute of System and Engineering, Beijing 100101, China; 2. Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China; 3. Department of Information System and Management of NUDT, Changsha 410073, China) Abstract: Network emulate technology which enables real hosts and a real network to interact with a virtual network, becomes a very important way to resolve the challenge faced in network plan, application and protocol design. As a famous network simulator, NS2 proposed a foundation to construct network emulate platform. The emulation function of NS2 was described firstly. Based on analysis the problem of emulation function in NS2, the extension of NS2 emulation function was proposed and implemented. The correctness of extension was dominated in the end. Key words: network emulation; NS2; packet reform; function extension 引 言互联网的迅速发展与膨胀对网络的规划、应用和协议的 设计提出了新的挑战。在试验环境中对网络规划、新的应用和协议进行评估是应对上述挑战的有效手段之一[1-3]。当前构建复杂网络试验环境的实现技术主要包括测试床、网络模拟(network simulation )和网络仿真(network emulation )[4]等三种类型。 测试床具有逼真度高的优点,但是造价较高、规模和复杂性有限。网络模拟具有可控性强、灵活性高、代价低以及能够实现复杂网络拓扑等优点,但是对于网络流量以及实现细节支持不够,交互性不高。网络仿真综合了测试床和网络模拟的优点。在仿真环境中,网络应用运行在实际的硬件平台上,且能够与实际的环境交互,扩展性和灵活性较高,同时网络试验环境可配置、可控制、可重复,能够生成真实网络流量,从而成为当前构建网络试验环境的重要技术。当前网络仿真技术研究思路分为两种:一种思路是将仿真网络看作简单的延迟黑盒(simple delay lines ),仅关注网络出入口的设置,该思路具有硬件要求低的优点。相关研究包括:Dummynet [5],NIST net [6]等。另一种思路是通过建立虚拟网络模拟进行实时网络仿真。真实网络流量能够通过仿真 收稿日期:2007-06-10 修回日期:2008-02-09 作者简介:况晓辉(1975-), 男, 湖南新化, 博士, 副研究员, 研究方向为计算机网络, 信息安全;赵刚(1969-), 男, 河北保定, 研究员, 研究方向为计算机网络, 信息安全; 郭勇(1966-), 男, 湖南常德, 研究员, 研究方向为计算机网络, 计算机软件。 器,虚拟网络能够根据交互生成网络流量。相关的研究包括VINT/nse [7],ModelNet [8],NetBed [9], Virtual Routers [10],PlanetLab [11]以及IP-TNE [1]等。 随着网络复杂性的提高,基于延迟黑盒的网络仿真环境难以满足应用需求。因此,建立在网络模拟基础上的仿真环境成为网络仿真技术的研究重点。在网络模拟器实现中,NS2 [12]能够支持有线和无线、本地或卫星、局域网和广域网等各种网络类型以及网络分层模型,具有强大的二次开发能力以及可扩展、易配置和编程的事件驱动特性,为构建网络仿真平台提供了良好基础。然而,NS2已有的仿真功能在IP 地址支持、路由机制、协议支持等方面存在不足,难以满足网络技术研究和协议设计开发的实际需求。 本文在深入分析NS2仿真功能的基础上,重点分析了已有功能存在的不足,描述并实现了NS2仿真功能扩展,解决了IP 地址支持、动态路由以及拓扑验证的问题。最后,通过试验验证了仿真功能的正确性和有效性。 1 NS2网络仿真功能分析 事件驱动的网络模拟器NS2是DARPA 支持的VINT 项目中的核心部分,由Berkeley, USC/ISI 、 LBL 和Xerox PARC 等大学和实验室合作开发,其目的是构造虚拟的网络平台和模拟工具,以支持网络协议的研究、设计和开发。 1.1 仿真功能 NS2仿真模块实现了模拟器与实际网络的连接功能,

1_RIP路由协议实验资料

1. 实验报告如有雷同,雷同各方当次实验成绩均以0分计。 2. 当次小组成员成绩只计学号、姓名登录在下表中的。 3. 在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0 分计。 4. 实验报告文件以PDF 格式提交。 【实验题目】RIP 路由协议实验 【实验目的】 1. 掌握在路由器上配置RIPv2和RIPv1路由协议。 2. 了解有类路由和无类路由的区别,是否支持VLSM (可变长子网掩码) 3. 了解路由器广播和组播形式的区别 【实验内容】 1. 在实验设备上完成P145实验4-2并测试实验网连通性。 2. 通过实验观察RIP V1 和 V2的区别(重点在VLSM 上)给出分析过程与结果(实验IP 采用 10.10.x.0网段) 3. 学会使用Debug ip packet 和Debug ip rip 命令,并对debug 信息做分析。 4. 观察试验拓扑中链路状态发生改变时路由表的前后信息对比及debug 信息的变化。 【实验要求】 重要信息信息需给出截图,注意实验步骤的前后对比。 【实验记录】(如有实验拓扑请自行画出) 实验拓扑图: 实验一:RIPv2路由协议 (使用10.10.x.0的IP 地址,变长子网掩码,两个路由器之间的网段是10.10.2.0/30,路由器和PC 之间的网段分别是10.10.3.0/24和10.10.1.0/24。) 步骤0: (1) 配置PC1和PC2的IP 、掩码、网关,测试连通性。 警示

分析:因为PC1和PC2之间还没有配置路由,所以ping不通。(2)在Router1上执行show ip route,记录路由表信息。 分析:PC1和PC2之间还没有配置路由。 (3)在PC上的命令窗口执行命令route print,记录路由表信息。

NS2实验报告

NS2实验报告 一、实验平台和环境 本实验是在Windows XP操作系统平台下安装了Cygwin软件以模仿Linux 下的编程环境,然后在Cygwin模仿的环境中安装了ns-allinone-2.34软件包,该软件包包含nam、otcl、tcl、tclcl、tk以及xgraph等软件包和辅助分析工具。 二、实验步骤 2.1 安装与配置 1.安装cygwin a)在cygwin官方网站下载setup.exe。 b)运行setup.exe,使用默认配置选择unix安装。 c)在选择安装组件时确认安装以下内容:XFree86-base, XFree86-bin, XFree86-prog,XFree86-lib, XFree86-etc,make,patch,perl,gcc,gcc-g++, gawk,gnuplot,tar 和gzip。 Diffstat,diffutils,libXmu,libXmu-devel,libXmu6,libXmuu1, X-startup-scripts xorg-x11-base xorg-x11-bin xorg-x11-devel xorg-x11-bin-dlls xorg-x11-bin-lndir xorg-x11-etc xorg-x11-fenc xorg-x11-fnts xorg-x11-libs-data xorg-x11-xwin 2.安装NS2 a)在NS2官方网站下载ns2-allinone-2.34.tar.gz安装包。 b)将ns2-allinone-2.34.tar.gz拷贝放入cygwin用户目录下。 c)运行cygwin,命令行下输入tar xvfz ns2-allinone-2.34.tar.gz。 d)进入ns2-allinone-2.34目录,执行./install开始安装。

基于NS2的UDP仿真报告

基于NS2的UDP协议仿真 1. UDP协议的特点 UDP 是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。UDP协议称为不可靠的传输协议。 UDP报头由4个域组成,其中每个域各占用2个字节,具体如表1所示: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1819 20 21 22 23 24 25 26 27 28 29 30 31 源端口目的端口 段长校验和 表1 UDP报头结构 UDP协议使用端口号为不同的应用保留其各自的数据传输通道。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。 2. NS2软件的安装与配置 2.1 ubuntu实验环境 Ubuntu是Linux的一个版本,是一款免费的操作系统,Ubuntu 项目完全遵从开源软件开发的原则;用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。NS2在linux环境下运行比在windows下更稳定,出现更少的错误,还可以更改linux内核,使得仿真效果更好。 2.2 软件安装 NS2可以再Linux平台下运行,因此一般需要安装Linux操作系统。也可以采用Windows+虚拟机(VMware,Virtual PC)+NS组合的方式。 若要在Ubuntu上运行NS2,下面的软件是在安装和使用NS2中需要用到的,必须先行安装。

SPF路由协议综述

OSPF路由协议综述 OSPF是链路状态路由协议(link-state routing protocol),属于内部网关路由协议。 链路状态路由协议具有以下基本特征: 1.对网络发生的变化能够快速响应(快速响应网络变化)。 2.当网络发生变化的时候发送触发式更新(triggered update)(被动更新链路状态)。 3.发送周期性更新(链路状态刷新),间隔时间为30分钟(定时主动更新链路状态)。 OSPF工作原理介绍 链路状态路由协议只在网络拓扑发生变化以后产生路由更新.当链路状态发生变化时候,检测到变化的设备创建LSA(link state advertisement),通过使用组播地址传送给所有的邻居设备,然后每个设备拷贝一份LSA,更新它自己的链路状态数据库(link state database,LSDB),接着再转发LSA给其他的邻居设备。这种LSA的洪泛(flooding)保证了所有的路由设备在更新自己的路由表之前更新它自己的LSDB。最总利用SPF算法根据LSDB得到路由表。 工作原理总结: 链路变化--→检测到变化的设备创建LSA(link state advertisement)----→组播传送给所有邻居设备---→邻居收到LSA拷贝一份用来更新自己本地的链路状态数据库LSDB(link state database),然后转发LSA给其他邻居设备-→整个网络LSDB的同步更新LSDB ---→ SPF算法(shortest path firth)---→到达目的网络的最佳路径---→ SPF Tree ----→选出最佳路径----→加入路由表 OSPF协议引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域” (Area),“主干”的部分称为“主干区域”。每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态。每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。 OSPF的网络设计要求是双层层次化(2-layer hierarchy),包括如下2层: 1. transit area(backbone或area 0) 2. regular areas(non-backbone areas) transit area负责的主要功能是IP包快速和有效的传输。transit area互联OSPF其他区域类型,一般这个区域里不会出现端用户(end user)。 regular areas负责的主要功能就是连接用户和资源。这种区域一般是根据功能和地理位置来划分,一般一个regular area不允许其他区域的流量通过它到达另外一个区域。regular area 之间的数据必须穿越transit area。

路由协议的配置实验报告

河南工业大学信息学院网络课程组实验指导 实验二:路由协议的配置 一、实验目的: 1. 了解和掌握网络中IP地址、子网掩码、默认网关的配置方法和原则; 2. 了解网络互连时根据设备的不同选用不同的连接线路; 3. 在路由器上配置动态路由协议; 4. 理解路由表的变化及含义。 二、实验环境: 1. 运行Windows 2000 / 2003 Server / XP操作系统的PC一台; 2. 每台PC具有Packet Tracer模拟软件。 三、实验内容与要求: 1. 使用交换机组建简单局域网。 (1)打开Packet Tracer模拟软件,完成如图2-1所示的拓扑结构图。具体过程参考《附件一:使用交换机组建简单局域网》。 (2)将Packet Tracer中的文件,保存文件名为“专业班级+学号+姓名-1”,如“电信1001班201046830508范浩然-1”。 (3)提示:为便于教师检查,请同学们把每个主机和路由器的接口及IP地址在图上标 注出来,如下图所示。 (4)要求:在实验报告中添加两个截屏结果:拓扑结构,和主机间Ping通的结果。

图2-1 交换机组建简单局域网 ] 页1第[ 制2014.10. 河南工业大学信息学院网络课程组实验指导 2.使用路由器组建简单网络。 (1)打开Packet Tracer模拟软件,完成如图2-2所示的拓扑结构图。具体过程参考《附件二:使用路由器组建简单网络》。 (2)将Packet Tracer中的文件,保存文件名为“专业班级+学号+姓名-2”,如“电信1001班201046830508范浩然-2”。 (3)注意:为规范网络的IP地址规划格式,要求IP地址的分配需要满足以下要求: IP地址中的第二个字节以班级命名;第三个字节选取学号后两位;若网络中有多个网络段,其他网络的第三字节依次累加。 举例如下:可以看出下面网络中总共有3个网络,对于电信1106班学号后两位为31的谢川娣同学,每个网络的网络号分别是:192.6.31.0、192.6.32.0、192.6.33.0。 (4)提示:为便于教师检查,请同学们把每个主机和路由器的接口及IP地址在图上标 注出来,如下图所示。

NS2仿真实验报告

Ns2简单有线网络仿真实验报告 一、实验概述 1、在windows系统下安装Centos虚拟机 2、在Centos系统下安装NS2仿真工具包 3、Nam方式示例 二、实验内容 1)NS2仿真工具包安装说明 1.在Centos系统下设置root账户 2.解压NS2文件 3.安装ns-allinone-2.35 设置环境变量 4.验证NS2工具包安装情况 2)Nam方式 Otcl脚本 # 产生一个仿真的对象 set ns [new Simulator] #针对不同的资料流定义不同的颜色,这是要给NAM用的 $ns color 1 Green $ns color 2 Red #开启一个NAM trace file set nf [open out.nam w] $ns namtrace-all $nf #开启一个trace file,用来记录封包传送的过程 set nd [open out.tr w] $ns trace-all $nd #定义一个结束的程序 proc finish {} { global ns nf nd $ns flush-trace close $nf close $nd #以背景执行的方式去执行NAM exec nam out.nam & exit 0 } #产生6个网络节点 set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]

set n4 [$ns node] set n5 [$ns node] #把节点连接起来 $ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1.7Mb 20ms DropTail $ns duplex-link $n3 $n4 1.7Mb 30ms DropTail $ns duplex-link $n3 $n5 1.5Mb 30ms DropTail #设定ns2到n3之间的Queue Size为10个封包大小$ns queue-limit $n2 $n3 10 $ns queue-limit $n3 $n4 5 #$ns queue-limit $n3 $n5 10 #设定节点的位置,这是要给NAM用的 $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down #观测n2到n3之间queue的变化,这是要给NAM用的$ns duplex-link-op $n2 $n3 queuePos 0.5 #建立一条n0-n5TCP的联机 set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n5 $sink $ns connect $tcp $sink #在NAM中,TCP的联机会以Green表示 $tcp set fid_ 1 #在TCP联机之上建立FTP应用程序 set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP #建立一条UDP的联机 set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null #在NAM中,UDP的联机会以红色表示 $udp set fid_ 2 #在UDP联机之上建立CBR应用程序 set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp

链路状态路由协议

链路状态路由协议 百科名片 链路状态路由选择协议又称为最短路径优先协议,它基于Edsger Dijkstra的最短路径优先(SPF)算法。它比距离矢量路由协议复杂得多,但基本功能和配置却很简单,甚至算法也容易理解。路由器的链路状态的信息称为链路状态,包括:接口的IP地址和子网掩码、网络类型(如以太网链路或串行点对点链路)、该链路的开销、该链路上的所有的相邻路由器。 链路状态路由协议 链路状态路由协议是层次式的,网络中的路由器并不向邻居传递“路由项”,而是通告给邻居一些链路状态。与距离矢量路由协议相比,链路状态协议对路由的计算方法有本质的差别。距离矢量协议是平面式的,所有的路由学习完全依靠邻居,交换的是路由项。链路状态协议只是通告给邻居一些链路状态。运行该路由协议的路由器不是简单地从相邻的路由器学习路由,而是把路由器分成区域,收集区域的所有的路由器的链路状态信息,根据状态信息生成网络拓扑结构,每一个路由器再根据拓扑结构计算出路由。 编辑本段链路状态的工作过程 1、了解直连网络 每台路由器了解其自身的链路(即与其直连的网络)。这通过检测哪些接口处于工作状态(包括第3层地址)来完成。对于链路状态路由协议来说,直连链路就是路由器上的一个接口,与距离矢量协议和静态路由一样,链路状态路由协议也需要下列条件才能了解直连链路:正确配置了接口IP地址和子网掩码并激活接口,并将接口包括在一条network 语句中。 2、向邻居发送Hello数据包 每台路由器负责“问候”直连网络中的相邻路由器。与EIGRP路由器相似,链路状态路由器通过直连网络中的其他链路状态路由器互换Hello数据包来达到此目的。路由器使用Hello协议来发现其链路上的所有邻居,形成一种邻接关系,这里的邻居是指启用了相同的链路状态路由协议的其他任何路由器。这些小型Hello数据包持续在两个邻接的邻居之间互换,以此实现“保持激活”功能来监控邻居的状态。如果路由器不再收到某邻居的Hello 数据包,则认为该邻居已无法到达,该邻接关系破裂。 3、建立链路状态数据包 每台路由器创建一个链路状态数据包(LSP),其中包含与该路由器直连的每条链路的状态。这通过记录每个邻居的所有相关信息,包括邻居ID、链路类型和带宽来完成。一旦建立了邻接关系,即可创建LSP,并仅向建立邻接关系的路由器发送LSP。LSP中包含与该链路相关的链路状态信息、序列号、过期信息。 4、将链路状态数据包泛洪给邻居 每台路由器将LSP泛洪到所有邻居,然后邻居将收到的所有LSP存储到数据库中。接着,各个邻居将LSP泛洪给自己的邻居,直到区域中的所有路由器均收到那些LSP为止。每台路由器会在本地数据库中存储邻居发来的LSP的副本。路由器将其链路状态信息泛洪到路由区域内的其他所有链路状态路由器,它一旦收到来自邻居的LSP,不经过中间计算,立即将这个LSP从除接收该LSP的接口以外的所有接口发出,此过程在整个路由区域内的所有路由器上形成LSP的泛洪效应。距离矢量路由协议则不同,它必须首先运行贝尔曼-福特算法来处理路由更新,然后才将它们发送给其他路由器;而链路状态路由协议则在泛洪完成后再计算SPF算法,因此达到收敛状态的速度比距离矢量路由协议快得多。LSP在路由器初始启动期间、或路由协议过程启动期间、或在每次拓扑发生更改(包括链路接通或断开)时、或是邻接关系建立、破裂时发送,并不需要定期发送。

计算机网络选择重传协议实验报告

《计算机网络》选择重传协议 实验报告

1.实验内容和实验环境描述 实验内容: 利用所学数据链路层原理,设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错双工通信。信道模型为8000bps 全双工卫星信道,信道传播时延270毫秒,信道误码率为10-5,信道提供字节流传输服务,网络层分组长度固定为256字节。 实验环境: Windows7—64位操作系统PC机VC 6.0 2.协议设计 数据结构: 数据帧 +=========+========+========+===============+========+ | KIND(1)| SEQ(1) | ACK(1) | DATA(240~256) | CRC(4) | +=========+========+========+===============+========+ 确认帧 +=========+========+========+ | KIND(1) | ACK(1) | CRC(4) | +=========+========+========+ 否定确认帧 +=========+========+========+ | KIND(1) | ACK(1) | CRC(4) | +=========+========+========+ KIND:表示帧的类别 ACK:ACK序列号 SEQ:帧序列号 CRC:校验和

模块结构: staticinc(Uchar* a) 作用:使一个字节在0~MAX_SEQ的范围内循环自增。 参数:a,字节类型。 static between(Uchara,Ucharb,Uchar c) 作用:判断当前帧是否落在发送/接收窗口内。 参数:a,b,c,均为字节类型,其中两个分别为窗口的上、下界,一个为帧的编号。其中,发送窗口的上界和下界分别为next_to_send和ack_expected,接收窗口的上界和下界分别为too_far和frame_expected,均定义在main函数中。 static void put_frame(unsigned char *frame, intlen) 作用:为一个帧做CRC校验,填充至帧的尾部并将其递交给网络层发送。 参数:frame,字节数组,由除padding域之外的帧内容转换而来;len,整型,为帧的当前长度。 staticsend_frame_(Ucharfk,Ucharnext_frame,Ucharframe_expected,Packetout_buf[]) 作用:构造一个帧,并将其发送。 参数:fk,字节类型,为帧的内容;next_frame,字节类型,为帧的编号;frame_expected,字节类型,为希望收到的帧的编号;out_buf,二维字节数组,为缓冲区。 int main(intargc,char *argv[]) 作用:主程式,包含选择重传协议的算法流程。 参数:argc,整型,表示命令行参数的个数;argv,二维字符数组,表示参数内容。 算法流程:

相关文档
最新文档