当前位置:文档之家› 基于JAVA的路由选择网络层的协议开发(课程设计)

基于JAVA的路由选择网络层的协议开发(课程设计)

课程设计

题目:基于JA V A的路由选择网络层的协议开发

第1章绪论

1.1 路由选择的意义

路由(Route) 的概念出现于本世纪70 年代,当时的网络结构较简单,因此直至80 年代中期出现了大规模的网络结构后,路由技术才得到了广泛的应用。在ISO/ OSI 体系结构中,路由技术是第三层(网络层) 的功能,路由选择(Routing)是分组交换系统中的一个重要概念,是指在互联网络中选择将信包(Package) 从信源机(Source Host) 传往信宿机(Destination Host) 的传输路径的过程。实际的网络协议(如IP协议) ,其本身并不涉及具体的路由选择细节,它只说明路由选择的一般原理和规则,具体的路由选择是指路由表的建立与刷新机制,由一组独立的路由选择协议(RoutingProtocol) 描述。路由选择的过程是由路由算法来完成的,路由算法可以运行在网络主机上,也可运行在专用的路由设备上,如路由器是一种网络互联设备,其主要功能就是进行路由选择。

1.1.1 路由选择技术的组成

路由选择技术涉及两方面内容:最佳路径的选择及信包在网络上的传递。信包的传递也可称为交换(Switching) , 交换过程相对简单,而路径的选择过程比较复杂。

最佳路径选择

最佳路径依赖于不同的衡量标准,例如可使用路径长度作为衡量标准。在确定最佳路径的路由算法中,路由表(Routing Tables) 是一个重要的数据结构,其中包含了网络的路由信息,算法通过建立和维护路由表进行最佳路径的确定。路由算法根据算法要求在路由表中填写各种路由信息,其中最基本的是目标/ 驿站(Hop) 信息(见表1) 。这一组信息告诉路由器,在信包发往信宿机的过程中,最佳选择是将信息转发至下一驿站(Next Hop) 所代表的节点。当路由器接收到一个输入信息时,首先检查信包的目标地址,然后尝试找出与此目标地址相匹配的下一驿站,若匹配成功则进行信包转发,否则放弃该信包。除了目标/ 驿站信息外,根据不同的路由算法,路由表中还包含有其它内容,例如最佳路径的衡量标准等

信息。在路由器之间传输的各种信息中,有关路由选择的信息称为路由刷新报文(Routing Update Message) 。路由刷新报文通常是全部或部分路由表内容。通过对所有路由信息的分析,路由器可建立一个详细的网络拓扑图。例如,用于链接-状态路由算法的链接- 状态广播报文通知其它路由器有关自身的链接状态,通过这些信息,路由器可建立一个完整的网络拓扑图,通过拓扑图便可确定到达目标的最佳路径。

1.1.2 路由算法设计目标

路由算法往往具有下列一种或多种目标: 最佳性、简单性、稳定性、快速收敛性及适应性等目标。

(1) 最佳性目标

要求算法具有寻找最佳路径的能力,最佳路径依赖于算法所采用的衡量标准。通常路由选择协议严格定义了计算时所采用的衡量标准。

(2) 简单性目标

要求算法尽可能简单,即用尽可能小的软件开销提供有效的功能。当算法运行在低档设备上时效率尤为重要。

(3) 稳定性目标

算法必须是稳定可靠的。在遇到特殊情况(如硬件故障、过载、误操作等) 时,算法能够稳定地运行。由于路由器位于互联网络的连接点上, 有着相当重要的地位, 若算法不稳定将造成严重的后果。优秀的路由算法经得起时间的检验并且在任何情况下都能稳定地工作。

(4) 快速收敛性目标

路由算法要求能够快速收敛。这里所指的收敛是指最佳路径能迅速被网上所有路由器所接受。若发生网络故障导致线路断开或恢复, 相应路由器向网络发出路由刷新报文,促使其它路由器重新计算最佳路径,更新路由表,同时又向网络发送刷新报文,直至所有路由器都相互认可这些最佳路径。收敛慢的算法将导致路由环问题及网络损耗。

(5) 适应性目标

路由算法必须具有较强的适应能力,即能够迅速准确地适应各种网络环境的变化。例如,如果发现某一网段出现故障,能迅速为所有经过该网段的路径选择另一条最佳路径。另外,还必须能适应网络带宽、路由器队列大小、网络延迟或其它变化。

1.1.3 路由算法的分类

(1) 静态或动态路由算法

静态路由是由管理员在路由使用前建立的,只有管理员才能对路由表进行修改。静态路由算法的设计简单,在可预知网络的通信量且网络结构简单的情况下使用静态路由算法。静态路由算法不能适应网络情况的变化,因此不适用于目前的大规模及变化频繁的网络结构, 90 年代占主导地位的路由算法是动态路由算法。动态路由算法通过分析路由刷新报文,能够进行实时调整以适应网络的变化。当网络发生变化时,根据路由刷新信息, 路由软件重新计算最佳路径并将变化信息向网络上发送。这些信息在网络上使得网络上的其它路由器也相应运行路由算法刷新其路由表。

(2) 单重路径或多重路径算法

单重路径算法对同一信宿机提供一条最佳路径,多重路径算法对同一信宿机提供多条路径以供选择,允许在复杂的线路上进行多重通信。多重路径算法不仅提高了通信量而且提高了通信的可靠性。

(3) 单层或多层结构算法

单层结构中,网络上所有的路由器是对等的,而在多层结构中,存在主干路由器与分支路由器。信包从分支路由器转发至主干路由器,再传送至信宿机所在区域的主干路由器,再从这一位置通过一个或多个分支路由器最终到达信宿机。

路由系统将一组逻辑节点称为域或自治系统。在层次结构中,有些路由器只能在自治系统内相互通信,位于自治系统顶层的路由器可与其它自治系统的顶层路由器进行通信。层次结构的主要优点在于模仿了公司的组织结构,因为网络的大部分通信量存在于分公司内部(自治系统) ,自治系统内的路由器只需清楚系统内其它路由器的情况。因此系统内的路由算法可进行简化,相应减少了路由刷新时产生的通信量。

(4) 向量- 距离算法或链接- 状态算法

这两种算法是两类基本的自动路径广播算法,在此基础上相应有多种协议,典型的有GGP 和SPF 协议。

1.1.4 路由算法衡量的标准

路由信息表中包含了交换所需的如何确定最佳路径的要求, 即确定最佳路径

的标准, 路由算法根据这些标准进行计算。复杂的算法往往综合多种标准,常用的衡量标准有:

(1) 路径长度

路径长度是使用最普遍的标准,一些协议许可网络管理员对网络的线路赋予一定的代价值,在此类情况下,最佳路径就是所经过的每条线路的代价总和。有些协议定义驿站数量为标准,即路径上所经过的网络设备(如路由器) 的数量。

(2) 可靠性

在路由算法中, 可靠性是指每个网络连接的可靠性, 通常用每位的错误率

表示。有些网络连接可能经常发生故障,而发生故障时,有些网络连接能很快或很容易恢复。可靠性可通过对网络连接赋予相应的数值来确定。

(3) 延迟

延迟是指将信包从信源机发送到信宿机所经过的时间,延迟受很多因素影响, 例如: 网络带宽、路由器端口队列数量、网络负荷以及实际传输的距离等。

(4) 带宽

带宽是指网络连接的通信能力,虽然带宽代表了网络连接所能达到的最高的通信速率,但往往宽带连接意味着网络更繁忙, 传送一个信包所需要实际时间可能更长, 因此宽带连接并不一定能提供更好的路由能力。

(5) 负载

负载是指网络设备(如路由器) 的繁忙程度。负载有多种计算方式, 如CPU

利用率、每秒处理的信包数量等, 对这些参数的监控过程本身也是网络的一种负载。

1.2.目前常用的路由算法

1.2.1 最短路径算法

寻找两顶点间的最短路径的算法很多目前公认最好的算法是Dijkstra在

1959 年提出的它不仅求出从始点到终点的最短路径而且最后所得到的实际上是始点到各顶点的最短路径对Dijkstra 算法进行补充得出的步骤如下:第一步:初始化V={1 2 N} S = {F} D [I ] = L[F I ] Y[ I ] = F 其中I=1,

2 ,…N 。F 表示路径的始点I 表示某一顶点N 表示网络中所有顶

点的数目V 是所有顶点的集合L[F I]表示从F 点到I 点的距离S

是顶点的集合D 为N 个元素的数组用来存储顶点F 到其它顶点的

最短距离Y 为N 个元素的数组用来存储最短路径中在顶点I 之前

经过的最近顶点

第二步:从V S 集合中找一个顶点T 使得D[T] 是最小值并将T 加入到S 集合中如果V S 是空集合则结束运算

第三步:调整Y D 数组中的值在V S 集合中对于顶点T 的邻接各顶点I 如果D[I ]> D[T]+L[I T] 那么令Y[I]=T D[I] = D[T]+L[I T] 继续执行第二步

最短路径算法的不足

Dijkstra 算法所采用的数据结构及其实现方法总体上说是比较复杂的其缺点也是明显的难以应付公交线路的网络拓扑中的复杂性主要表现如下:(1)数据结构复杂网络在教学和计算领域被抽象为图所以其基础是图的存储表示一般而言无向图可以用邻接矩阵和十字链表表示公交线路网络拓扑很难用现有的数据结构加以完整的表示如果采用现有的最短路径算法分析其建立的公交线路网络图的数据

结构模型将非常复杂

(2)算法时间长以Dijkstra 算法来计算公交路线最短路径在大数据量的情况下计算速度会慢得让人难以忍受系统设计中要求公交转车的查询必须在较短的时间内完成Dijkstra 算法难以实现

(3) Dijkstra 最短路径算法对于网络拓扑图要求简捷对于复杂的广州公交网络拓扑必须对其进行复杂的抽象合并成简捷的网络拓扑图这无疑增加了程序的复杂性

而蚁群算法是一种新型的模拟进化算法,自从1991 年M. Dorigo 等人首先提出蚁群算法以来,有许多研究人员对该算法进行研究,并成功地应用于解决复杂组合优化问题. 在研究该算法的过程中,研究人员提出一些改进的算法,研究表明该算法具有很好的通用性和鲁棒性,在离散的组合优化问题中实验,取得了良好的效果。下章节就着重介绍一下蚂蚁算法。

第2章蚁群算法的基本原理

2.1蚂蚁算法的产生

蚂蚁是自然界中常见的一种生物,人们对蚂蚁的关注大都是因为“蚂蚁搬家,天要下雨”之类的民谚。然而随着近代仿生学的发展,这种似乎微不足道的小东西越来越多地受到学者们的关注。1991年M·Dorigo等人首先提出了蚁群算法(Ant Colony Algorithms)。人们开始了对蚁群的研究:相对弱小,功能并不强大的个体是如何完成复杂的工作的(如寻找到食物的最佳路径并返回等)。在此基础上一种很好的优化算法逐渐发展起来。

2.2 蚂蚁算法的算法思想

蚁群算法是受到对真实的蚁群行为的研究的启发而提出的.为了说明人工蚁群系统的原理,先从蚁群搜索食物的过程谈起.象蚂蚁、蜜蜂、飞蛾等群居昆虫,虽然单个昆虫的行为极其简单,但由单个简单的个体所组成的群体却表现出极其复杂的行为,原因是什么呢?仿生学家经过大量细致观察研究发现,蚂蚁个体之间是通过一种称之为外激素(pheromone)的物质进行信息传递的.蚂蚁在运动过程中,能够在它所经过的路径上留下该种物质,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大.蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。蚂蚁个体之间的信息交换是一个正反馈过程。

说了这么多,蚂蚁究竟是怎么找到食物的呢?

在没有蚂蚁找到食物的时候,环境没有有用的信息素,那么蚂蚁为什么会相对有效的找到食物呢?这要归功于蚂蚁的移动规则,尤其是在没有信息素时候的移动规则。首先,它要能尽量保持某种惯性,这样使得蚂蚁尽量向前方移动(开始,这个前方是随机固定的一个方向),而不是原地无谓的打转或者震动;其次,蚂蚁要有一定的随机性,虽然有了固定的方向,但它也不能像粒子一样直线运动下去,而是有一个随机的干扰。这样就使得蚂蚁运动起来具有了一定的目

的性,尽量保持原来的方向,但又有新的试探,尤其当碰到障碍物的时候它会立即改变方向,这可以看成一种选择的过程,也就是环境的障碍物让蚂蚁的某个方向正确,而其他方向则不对。这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。

当然,在有一只蚂蚁找到了食物的时候,其他蚂蚁会沿着信息素很快找到食物的。

蚂蚁如何找到最短路径的?这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。也许有人会问局部最短路径和全局最短路的问题,实际上蚂蚁逐渐接近全局最短路的,为什么呢?这源于蚂蚁会犯错误,也就是它会按照一定的概率不往信息素高的地方走而另辟蹊径,这可以理解为一种创新,这种创新如果能缩短路途,那么根据刚才叙述的原理,更多的蚂蚁会被吸引过来。

2.3蚁群算法原理

蚁群算法是一种由于受自然界生物的行为启发而产生的“自然”算法。它是从对蚁群行为的研究中产生的。正如M·Dorigo等人在关于蚁群算法的第1 篇文章中指出的:蚁群中的蚂蚁以“外激素”(Stigmergy)为媒介的间接的异步的联系方式是蚁群算法的最大的特点。蚂蚁在行动(寻找食物或者寻找回巢的路径)中,会在它们经过的地方留下一些化学物质(我们称之为“外激素”)。这些物质能被同一蚁群中后来的蚂蚁感受到,并作为一种信号影响后到者的行动(具体表现在后到的蚂蚁选择有这些物质的路径的可能性,比选择没有这些物质的路径的可能性大得多),而后到者留下的外激素会对原有的外激素进行加强,并如此循环下去。这样,经过蚂蚁越多的路径,在后到蚂蚁的选择中被选中的可

能性就越大(因为残留的外激素浓度较大的缘故)。由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因而积累的外激素也就越多,在下一个时间内被其他的蚂蚁选中的可能性也就越大。这个过程会一直持续到所有的蚂蚁都走最短的那一条路径为止。(如图)

图1中有一条蚂蚁经过的路径,我们假设a点是食物,而e点是蚂蚁的巢穴,如图1 a)所示。在某一个时刻忽然有一个障碍物出现在蚂蚁经过的路径中,原有的路径被切断,从a点到e点的蚂蚁就必须在b点决定应该往左还是往右走。而从a点到e点的蚂蚁也必须在d点决定选择哪条路径。这种决定会受到各条路径上以往蚂蚁留下的外激素浓度(即残留信息浓度)的影响。如果向右的路径上的外激素浓度比较大,那么向右的路径被蚂蚁选中的可能性也就比较大一些。但是对障碍出现后第一个到达b点或d点的蚂蚁而言,因为没有外激素的影响,所以它们选择向左或者向右的可能性是一样的,如图1 b)所示。若以从a点到e 点的蚂蚁为例进行说明,对于从e 点到a点的蚂蚁而言过程基本是一样的。由于路径bhd比路径bed要短,因此选择bhd路径的第一只蚂蚁要比选择bed的第一只蚂蚁早到达d点。此时,从d点向b点看,指向路径dhb的外激素浓度要比指向路径deb的外激素浓度大。因此从下一时刻开始,从e点经d点达到a点的蚂蚁选择dhb路径比选择dcb路径的可能性要大得多。从而使路径bhd(或dhb)上外激素浓度与路径bed(或deb)上外激素浓度的差变大。而外激素浓度差变大的结果是选择路径bhd(或dhb)路径的蚂蚁进一步增加,这又导致外激素浓度差进一步加大。

设想,如果我们要为蚂蚁设计一个人工智能的程序,那么这个程序要多么复杂呢?首先,你要让蚂蚁能够避开障碍物,就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物,其次,要让蚂蚁找到食物,就需要让他们遍历空间上的所有点;再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,而且更重要的是,你要小心翼翼的编程,因为程序的错误也许会让你前功尽弃。这是多么不可思议的程序,太复杂了,恐怕没人能够完成这样繁琐冗余的程序。

然而,事实并没有你想得那么复杂,上面这个程序每个蚂蚁的核心程序编码都不是很长。为什么这么简单的程序会让蚂蚁干这样复杂的事情?答案是:简单规则的涌现。事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。这就是人工生命、复杂性科学解释的规律。那么,这些简单规则是什么呢?下面详细说明:

1、范围:

蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径VR(一般是3),那么它能观察到的范围就是VR*VR个方格世界,并且能移动的距离也

在这个范围之内。

2、环境:

蚂蚁所在的环境是一个虚拟的世界,其中有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。

3、觅食规则:

在每只蚂蚁能感知的范围内寻找是否有食物,如果有就直接过去。否则看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走,并且每只蚂蚁多会以小概率犯错误,从而并不是往信息素最多的点移动。蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。

4、移动规则:

每只蚂蚁都朝向信息素最多的方向移,并且,当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去,并且,在运动的方向有一个随机的小的扰动。为了防止蚂蚁原地转圈,它会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。

5、避障规则:

如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向,并且有信息素指引的话,它会按照觅食的规则行为。

7、播撒信息素规则:

每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。

根据这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,而通过信息素这个纽带,实际上把各个蚂蚁之间关联起来了。比如,当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。

2.4 蚁群算法的应用

2.4.1蚂蚁算法在电信网动态路由优化中的应用

针对我国电信网的具体情况,提出借助蚂蚁算法,用分散控制的方式实现电信网动态路由优化的一种方案,目的是提高网络资源的利用率、网络运行的效率和可靠性。

2.4.2蚂蚁算法在组合优化中的应用

蚂蚁算法是近年来新出现的一种随机型搜索寻优算法 ,自从在 TSP等著名问题中得到富有成效的应用之后 ,已引起越来越多的关注和重视 .本文进一步将这种新型的生物优化思想扩展到其他一些组合优化难题 ,包括目前尚缺乏有效求解手段的多目标组合优化问题 ,从实验上探索了蚂蚁算法的优化能力 ,获得了满意的效果。

2.5蚂蚁算法的未来发展

自从1991 年M. Dorigo 等人首先提出蚁群算法以来,有许多研究人员对该算法进行研究,并成功地应用于解决复杂组合优化问题. 在研究该算法的过程中,研究人员提出一些改进的算法。

2.5.1 MMAS ( Max2Min ant system) 最大最小蚁群算法

其基本思想是:只让最佳路径的外激素增加,加快收敛速度;为了避免算法过早收敛于非全局最优解,将各条路径可能的外激素浓度限于[τmin ,τmax ] ,超出这个范围的值被强制设为τmin 或τmax ,可以有效地避免某条路径上的信息量远大于其余路径,使蚂蚁都集中到同一条路径上,这样使算法不再扩散;将各条路径上外激素的起始浓度设为τmax ,这样便可以更加充分地进行寻优。

2.5.2 具有变异特征的蚁群算法

当群体的规模较大时,需要较长时间才能搜索到最佳路径. 为了克服此缺点,受遗传算法中的变异算子的启发,提出具有变异特征的蚁群算法. 算法中使用逆转变异方式, 即设某个体走的路径是:i0i1i2 ?i (n- 1) , (i0 ,i1 , ?i (n- 1) ∈{0 ,1 ,2 , ?,n - 1})如果满足其中

s1 ,s2 ∈{0 ,1 , ?, (n - 1) } , %表示整除. 将s1 + 1 和s2这一段颠倒过来. 此算法引入变异算子,经较少的进化代数就可以找到较好的解。

2.5.3 自适应蚁群算法

在此算法中采用确定性选择和随机选择相结合的选择策略,并在搜索过程中动态调整确定性选择的概率. 当进化到一定代数后,进化方向已经基本确定,对路径上的信息量进行动态调整,缩小最好和最差路径上的信息量的差距,并适当加大随机选择的概率,以利于对空间的完全搜索,可有效地克服基本蚁群算法进化速度慢及易陷入局部最优解的缺陷。

2.5.4大规模集成电路综合布线

大规模集成电路中的综合布线可以采用蚁群算法的思想来进行(在布线过程中,各个引脚对蚂蚁的引力可根据引力函数来计算。各个线网Agent根据启发策略,象蚁群一样在开关盒网格上爬行,所经之处便布上一条金属线,历经一个线网的所有引脚之后,线网便布通了。给定一个开关盒布线问题,问题的计算量是固定不变的。主要由算法的迭代次数决定,而迭代次数由Agent的智能和开关盒问题本身的性质确定蚁群算法本身的并行法,使之比较适合于解决布线问题。

2.5.5电信网络路由

电信网络中的路由是通过路由表进行的。在每个节点的路由表中!对每个目的节点都列出了与该节点相连的节点,当有数据包到达时,通过查询路由表可知道下一个将要到达的节点,首先对路由表中的信息素强度进行初始化。在节点Xi以节点i为目的地址,邻节点为J处的信息素强度为从X经节点J到节点i 路径的最小费用值。然后周期性地释放蚂蚁来进行路由。并修改相应的信息素的值。无论呼叫是均匀分布还是集分布,利用蚁群算法所得呼叫拒绝率和平均路径长度均小于最小负载法结果:在呼叫符合集中分布时,蚁群算法所得呼叫拒绝率低于最短路径法。

第3章开发工具

3.1软件环境

装有JDK的JA V A环境的计算机,由于蚂蚁算法演示是用JAVA做的一个小程序,所以在装有JAVA环境的机子上都能够运行。

3.2其他资料

JAVA工具书,软件工程工具书。面向对象工具书。

3.3 Java 的简单介绍

3.3.1网络时代的需要

1995 年在美国举办的一年一度的COMDEX 展览会上, IBM 公司总裁Gerstner作为第一个受邀请的发言人向全世界宣布人类已进入计算机技术发展的新时代——网络时代。在信息极度膨胀、爆炸的网络时代下, 网络技术的发展为以网络为中心的计算提供了现实的可能和基础。这样, 用户便不必关心自己计算机的性能和操作系统及应用软件如何, 只要在网络上掌握更高一级的计算能力即可。这样, 就势必要求有Java 或类似的网络操作语言出现。

3.3.2 Internet的普及

网络时代最突出的体现莫过于Internet (互连网) 的广泛使用和迅速普及了。诞生十余年的Internet 如今依然是应用开发的热点, 并有广泛的市场和灿烂的前景。资料表明: 这种开放式的计算机网络已覆盖了160 多个国家和地区,连接的网络高达6 万多个, 终端用户超过3300万个。但是, 目前的Internet 依旧是个静态的媒介,几乎不比电话更具有交互性, 它仅仅对用户的需求发送图片和文本, 它所缺少的正是软件。这样便为Java 或类似语言创造了广阔的市场。

3.3.3 跨平台可移植性的要求

目前的计算机行业的现状使其工作难度变得越来越大。广大软件开发人员不仅需要在各种不兼容的软件平台、硬件平台和操作系统下工作, 进行开发, 而且

还需要在各种不同的软件或硬件平台上使用互不相容的图形用户界面(GUI) , 所以人们手头现有的软件开发工具已远远不能满足网络时代的要求, 开发一种网络上畅通无阻的编程语言势在必行, 于是Java 便应运而生。事实上, Java 的前身Oak 是一个最初为消费类电子产品开发的、险些夭折的产品, 随着WWW的盛行, Sun 公司发现其主要开发方向——平台无关性、系统安全性与可靠性一旦与WWW 结构相结合将有广阔的市场。在经过一番努力和改后, Java 才于1995 年5 月正式推出。

3.4 Java 的主要特点

3.4.1 简单性

简单性是Java 语言设计的最基本的出发点, 为了使程序员很容易进行编程并便于广大C+ + 编程人员掌握, Java 在设计上很大部分继承了C+ + 的风格, 并从以下几个方面使其更为简化:

(1) 摒弃了C+ + 的不足之处和一些极少用到的功能, 如操作符过载、多级继承性和各种自动强制性等;

(2) 增加了自动垃圾搜集功能, 使程序员在开发过程中不必考虑存储器管理

方面的问题,有利于减少编程错误的发生率;

(3) 减小了程序规模, 使编程更为简单, 用Java 编写的应用程序Applets(小苹果) 能完成某项特定任务, 但其规模却不超过10kB。

3.4.2 安全性

对于网络操作而言, 最重要的莫不过是安全性了。针对此, Java 提供了一种分布式编程环境。在其运行时间系统中, 内置了防病毒和损害文件系统的保护机制, 对于用户来说, 即使是从Internet 上卸载或者修改Java 的应用程序, 也是非常安全的。并且, 在网络环境中, 用户终端机上的应用程序是经过Java 一级一级传译的,禁止其他未授权的代码对其进行干涉, 更加保证了程序的安全性。

3.4.3 面向对象性

Java 具有许多面向对象的功能特性, 如代码重用、代码扩展及动态应用等优点, 基本上与C+ + 相同。但它摒弃了C+ + 的复杂性, 扩展了对象模型, 并对C+ + 作了功能扩充, 以提供更多的动态解决方法。事实上, 在Java 语言中, 除了原

始数据类型外, 其余的成分均属Java 的对象。

3.4.4 可靠性

Java 为了保证编写的软件的可靠性, 对可能存在的问题采取了早期(编程期) 和后期(运行期) 两级动态检查的措施。此外, 为减少开发人员的出错机会, Java 还摒弃了C 语言不易掌握、常常引起系统崩溃的指针操作功能, 并增加了自动内存管理功能, 从而排除了导致Java 应用程序运行不稳定的一个重要因素。

3.4.5 解释性

Java 是一种解释执行语言, 其运行环境是在Java 虚拟机上的, 而虚拟机又是独立于各种硬件平台上的, 所以Java 解释程序可以在任何机器上直接执行Java 字节代码。而且Java 应用程序在编译期产生的各种信息作为字节码流的一部分, 在运行期间仍可使用, 因而Java 应用软件也更易于调试。除上述优点以外, Java 还具有多线程动态性、系统结构中立性和可移植性等特点。正因如此, Java 的出现给Internet 带来了新的希望和无限生机。迄今, 计算机行业内除了DEC 以外的, 诸如Oracle、IBM、Microsoft、SGI 等所有的大公司都宣布支持Java。

第4章具体的功能结构

4.1 系统的结构总框图

4.2 蚂蚁算法的主要步骤

第一步:判断蚂蚁是否已经找到目标点(在蚂蚁没有找到食物之前,目标点是事物,找到食物后,目标点则换成蚂蚁的窝);

实现代码:

if(Judged==false){

if(JudgeEnd()){

//判断目前蚂蚁是否已经到了目标点,,如果找到了目标点

那么就退出该程序

Judged=true;

return;

}

}

第二步:计算蚂蚁的主方向,也就是让蚂蚁的爬动有一个惯性,当没有信息素做指导的时候蚂蚁就按照主方向运动;

实现代码:

private double SelectDirect(){

//选择方向,最后选择的方向为主方向加一个随机扰动 double direct,e=0;

if(Main_direct<0){

//如果目前还没有主方向角,就随机的选择一个 e=2*Math.PI*Math.random();

Main_direct=e;

}

//选择主方向角

direct=Main_direct;

//做一个随机模型,产生两个随机数,x,y都是[0,1]内的,

这样x^2-y^2就是一个 [-1,1]的随机数,并且在0点

附近的概率大,两边小

double re=Math.random();

double re1=Math.random();

direct+=Math.PI*(re*re-re1*re1)/2;

if(re<0.02){

//以小一定的概率0.02改变主方向的值,主方向的选

取为从蚂蚁记住的点中随机选一个点,计算当前点和

这个点之间的方向角。

int size=(int)(re1*memory)+1;

if(HistoryPoint.size()>size){

Point

pt=(Point)(HistoryPoint.elementAt(HistoryPoint.size()-s

ize));

if(pt.x!=nowPt.x||pt.y!=nowPt.y){

Main_direct=GetDirection(pt,nowPt);

}

}

}

return direct;

第三步:开始搜索自己周围的空间信息,包括有多少信息素,是否有障碍物;

实现代码:

//开始搜索环境,搜索的空间是以当前点为中心,VR为半径的四方

形内,即VR/2*VR/2的正方形

for(int x=-VR;x<=VR;x++){

for(int y=-VR;y<=VR;y++)

{

if(x!=0||y!=0){

if(maxphe

//如果当前点的信息素是0,则表示蚂蚁还在窝里,如果是1,就要根据随机数

//以mistake来决定蚂蚁犯错误的概率,即如果犯错

误,它就不按信息素最大的方向走

double ra=Math.random();

if(here==0||ra>mistake){

boolean found=false;

//查一下内存最近走过的的点数,从而避免当

地转圈

int size=HistoryPoint.size();

int minsize=memory;

if(size

for(int i=size-1;i>=size-minsize;i--){

Point pt=(Point)(HistoryPoint.elementAt(i));

if(pt.x==xx&&pt.y==yy){

found=true;

break;

}

}

if(!found){

//如果没有原地转圈,那么记录信息素。

maxphe=local_colony.Pheromone_grid[1-kind][xx][yy];

deltx=x;

delty=y;

}

}//end here==0||ra>0.001

}//end maxphe

}//end if x!=0

网络工程课程设计

校园局域网设计 一、广东海洋大学海滨校区(职业技术学院)概况简介 1、广东海洋大学海滨校区(职业技术学院)概况 办学思路 我院全面贯彻落实高等职业教育“以服务为宗旨,以就业为导向,走产学结合发展道路,为社会主义现代化建设培养千百万高素质技能型专门人才”的办学方针,培养“能安心、能吃苦、能创业”的应用型高级专门人才。 部门设置 学院设有综合办公室、教务办公室及学生工作系统。 专业设置 现有航海技术、供热通风与空调工程技术、电子商务、社会体育、会计电算化、数控技术、模具设计与制造、制冷与冷藏技术、防雷技术、计算机网络技术、计算机应用技术、应用电子技术、通信技术、畜牧兽医、文秘、商务英语、旅游管理、环境监测与评价等18个高职高专专业,全日制在校学生近3500人。 办学条件

拥有先进的计算机类实验室、工程训练中心、航海综合实验室、动物科学实验室、动物医学实验室、语音实验室、卫星通信地面站(VSAT)和多媒体课室等教学、实验(实习)场所等丰富的教学条件。 学生组织 在院团委的指导下,团委、学生会设学习部、青年志愿者服务站等14个部门,其中社团部下设英语俱乐部、话剧协会、文学社、网球协会等19个协会 师资组成 学院师资以广东海洋大学各教学单位为依托,师资力量雄厚,现有教学科研人员近1100人,其中,具有高级职称者566人,具有博士学位者172人,双聘院士1人。 2、校区建筑物分布

二、校园网功能需求分析 教学楼 主要为电脑机房、多媒体教室,将计算机多媒体视听引入课堂教学、声音、图像、动画的普遍采用可以大大提高教学效果。 办公行政楼 办公自动化基本web综合管理信息的信息系统、提示行政、人事、学籍、后勤、财务管理、公文收发管理、教师档案管理、学生档案管理、科技档案管理等、使学校日常办公无纸化、减少办公开支提高办公效率等。

gijmlAAA计算机网络课程设计实验报告

计算机网络课程设计 实验报告

一、实验内容和要求 1、实验一数据包的捕获与分析 Wireshark是一种开源的网络数据包的捕获和分析软件,本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课 程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和 掌握。具体内容及要求如下: Wireshark软件的安装; Wireshark软件的启动,并设置网卡的状态为混杂状态,使得Wireshark可以监 控局域网的状态; 启动数据包的捕获,跟踪PC之间的报文,并存入文件以备重新查; 设置过滤器过滤网络报文以检测特定数据流; 对常用协议的数据包的报文格式进行分析,利用协议分析软件的统计工具显示网 络报文的各种统计信息。 2、实验二网络层实验—Ping程序的设计与实现 实验目的 本实验目的是使学生掌握网络层协议的原理及实现方法。 实验设计内容 本实验为ICMP实验。实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充: -h 显示帮助信息 -b 允许ping一个广播地址,只用于IPv4 -t 设置ttl值,只用于IPv4 -q 安静模式。不显示每个收到的包的分析结果,只在结束时,显示汇总结果 Ping命令的基本描述

二、实验环境 实验一数据包的捕获与分析 1.联网计算机 或linux 系统 3.在PC中安装协议分析软件(如:Wireshark) 4.物理基础: 标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信 5.工作模式: 1) 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。 2)多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如 果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不 论它是不是组内成员。 3)直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 MAC地址的帧。 4)混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。 实验二网络层实验—Ping程序的设计与实现 1.联网计算机 2.Linux系统 3.系统自带编译环境

网络安全协议课程设计-IPsec隧道协议的安全分析与改进

《网络安全协议》 课程设计 题目IPsec隧道协议的安全分析与改进班级 学号 姓名 指导老师 2015年 7 月 4 日

目录 一、概述 (2) 1.1课程设计的目的 (2) 1.2课程设计的内容 (2) 1.3课程设计的要求 (3) 二、问题分析 (3) 2.1系统需求 (3) 2.2 GRE协议分析 (3) 2.3 IPsec协议分析 (4) 三、协议漏洞 (5) 3.1协议漏洞解决措施 (5) 3.2协议漏洞解决详解 (5) 四、协议完善具体实现 (6) 4.1实现分析 (6) 4.2 GRE实现流程分析 (8) 4.3简单设备设置 (10) 五、案安全性分析 (11) 六、程设计心得、总结 (11) 七、参考文献 (12)

一、概述 网络如若想实现交流传输,必须以网络协议为载体进行。而网络协议(Network Protcol)是控制计算机在网络介质上进行信息交换的规则和约定。网络协议通常会被按OSI参考模型的层次进行划分。OSI参考模型是国际标准化组织制定的网络体系结构参考模型,提供各种网络互联的标准,共分七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,会话层、表示层和应用层往往被合并称为高层。当前的计算机网络的体系结构是以TCP/IP协议为主的Internet结构。伴随着网络的诞生近几年频繁出现的安全事故引起了各国计算机安全界的高度重视,计算机网络安全技术也因此出现了日新月异的变化。安全核心系统、VPN安全隧道、身份认证、网络底层数据加密和网络入侵主动监测等越来越高深复杂的安全技术极大地从不同层次加强了计算机网络的整体安全性。网络安全的实现首先需要网络协议的安全,但是网络协议都是人为写的,存在先天的不足与缺陷,以至于只能慢慢实践发现并给与补充。这里先谈一下VPN中的GRE协议。GRE(Generic Routing Encapsulation,通用路由封装)协议是由Cisco和Net-smiths等公司于1994年提交给IETF(Internet Engineering Task Force,网络工程工作小组)的,标号为RFC1701和RFC1702。GRE协议规定了如何用一种网络协议去封装另一种网络协议的方法,是一种最简单的隧道封装技术,它提供了将一种协议的报文在另一种协议组成的网络中传输的能力。GRE协议就是一种应用非常广泛的第三层VPN隧道协议。GRE隧道使用GRE协议封装原始数据报文,基于公共IP网络实现数据的透明传输。GRE隧道不能配置二层信息,但可以配置IP地址。本文从GRE协议的工作原理入手,从安全性角度出发,详细分析了GRE隧道协议的不足与缺陷,最后提出了相关的安全防护方案。 1.1课程设计的目的 详细分析IPsec隧道协议不支持对多播和广播的加密的不足,并针对其漏洞设计实施完善可行的策略。 1.2课程设计的内容 将GRE与IPsec结合使用,弥补IPsec不能保护组播数据的缺陷。因为GRE可以封装组播数据并在GRE隧道中传输,所以对于诸如路由协议、语音、视频等组播

网络协议分析实验报告

实 验 报 告 课程名称 计算机网络 实验名称 网络协议分析 系别 专业班级 指导教师 学号 姓名 实验日期 实验成绩 一、实验目的 掌握常用的抓包软件,了解ARP 、ICMP 、IP 、TCP 、UDP 协议的结构。 二、实验环境 1.虚拟机(VMWare 或Microsoft Virtual PC )、Windows 2003 Server 。 2.实验室局域网,WindowsXP 三、实验学时 2学时,必做实验。 四、实验内容 注意:若是实验环境1,则配置客户机A 的IP 地址:192.168.11.X/24,X 为学生座号;另一台客户机B 的IP 地址:192.168.11.(X+100)。在客户机A 上安装EtherPeek (或者sniffer pro )协议分析软件。若是实验环境2则根据当前主机A 的地址,找一台当前在线主机B 完成。 1、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析ARP 协议; 2、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析icmp 协议和ip 协议; 3、客户机A 上访问 https://www.doczj.com/doc/1216424188.html, ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析TCP 和UDP 协议; 五、实验步骤和截图(并填表) 1、分析arp 协议,填写下表 客户机B 客户机A

2、分析icmp协议和ip协议,分别填写下表 表一:ICMP报文分析

3、分析TCP和UDP 协议,分别填写下表

网络协议分析与仿真课程设计预习报告

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 网络协议分析与仿真课程设计预习报告 甲方:___________________ 乙方:___________________ 日期:___________________

(计算机学院) 网络协议分析与仿真课程设计 预习报告 专业名称:__________ 网络工程_________________ 班级:_______________________________________ 学生姓名:____________________________________ 学号(8位): ________________________________ 指导教师:____________________________________ 设计起止时间:2013年12月2日一2013年12月13日

题目一网络流量分析 一、课程设计目的 里加深对IP、DNS、TCR UDP、HTTP等协议的理解; 里掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计地点及时间 二号实验楼442网络实验室,12月2日至12月6日,每天8: 00-14: 00 三、课程设计实验条件 工具:Wireshark (Windows 或Linux), tcpdump (Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 四、课程设计原理 1、DNS域名解析:首先,客户端的应用层会封装数据到达传输层,在传输层标识源端口号 与目的端口号(源端口号为大于1023随机,目的端口号为UDP5狒口)及应用层服务(这 里因该是请求DN硒询服务吧)。传输层封装数据产生数据段传给网络层,在网络层标识源IP地址及目的IP地址(源IP地址为客户端IP ,目的IP地址为DNS服务器IP地址),网络层将数据段封装为数据包传给数据链路层,在数据链路层将会在数据包里加入源MACM址及目的MA砸址(源MACM址为客户端网卡MA弛址,目的MAC%址为DNS服务器MACM址),这里应该查询MA或存。数据链路层根据客户端与DNS服务器之间的链路,将数据包封装成 帧,传给物理层。物理层会将数据帧转化为电信号放到物理介质上。 电信号到达DNS服务器后会从物理层到达应用层(这里和客户端发送数据差不多,只不过这 个过程变成了解封装),DNS服务器做完域名解析后再将数据传给客户端,传输过程同客户端发送数据。 2、建立TCP/IP连接:客户端知道WE囹艮务器IP地址之后,在网络层产生建立TCP/IP三次握手的数据包(TCP/IP三次握手:客户端向服务器端发送SYN信息,服务器端收到SYN信 息后回复给客户端SYN+AC褊认信息,客户端收到确认信息后再向服务器发送ACK信息建立 连接),应用层标识HTTP服务将数据发送到传输层,传输层将数据+源端口号(大于1023)、目的端口号(80)+上层服务WW如装为数据段传给网路层。网络层将数据段+源ip与目的 ip (WW服务器的ip地址)封装为数据包发送到数据链路层。数据链路层参照ARP缓存表确定源MAC%址(本机MACM址)及目的MACM址(客户端与路由B相连端口的MACM址)将数据包封装成数据帧。这里还需要CR破验。。。。。。数据帧到达物理层后变成电信号发送 到介质上(这里还需要访问控制方法DSMA/CD 路由B收到电信号后传给路由器的数据链路层,这里还需要CRC,FC眼验。。。…确定数据 帧没有损坏后查看目的MACM址与路由器端口地址是否相同,如果相同将解封装,将数据包 发送到路由器B的物理层,路由器查看路由表确定数据包的转发端口,路由器B确定与路由 A之间的链路,创建帧。 路由B与路由A可以看成是点对点,即路由B将创建PPP帧。路由A收到电信号后,确定帧的完整性,如果完整即将数据帧解封装发送到网络层,路由A查询路由表将数据包转发到与WEBf连的路由端口。 路由A的数据链路层将查询ARP缓存表确定WW服务器的MACM址,路由A将创建源MAC 地址

网络协议实践课程设计报告-

成都信息工程学院网络工程系 《网络协议实践》 课程设计报告 签名:

目录 第一章 TCP和ARP协议基础............................................................................... 错误!未定义书签。 1.1什么是TCP协议........................................ 错误!未定义书签。 1.2TCP报文类型与格式 .................................... 错误!未定义书签。 1.3什么是ARP协议........................................ 错误!未定义书签。 1.4ARP报文类型和结构 .................................... 错误!未定义书签。第二章抓包验证TCP协议和ARP协议.............................................................. 错误!未定义书签。 2.1实验环境.............................................. 错误!未定义书签。 2.2实验步骤与抓包结果分析................................ 错误!未定义书签。 2.3实验结论.............................................. 错误!未定义书签。第三章 OSPF路由协议验证分析.. (3) 3.1实验环境及工具介绍 (9) 3.2实验步骤及抓包结果分析 (10) 3.3实验结论--OSPF运行过程说明 (12) 3.4实验心得体会 (12)

网络安全协议课程设计报告SSL协议

SSL协议的安全性研究 1 引言 随着计算机网络技术的飞速发展,信息时代的人们对Internet的依赖性越来越大。当今时代,电子商务和电子政务的应用越来越广泛,然而网络安全问题严重束缚了计算机网络的进一步应用。安全套接层SSL(Secure Sockets Layer)协议是由Netscape公司设计开发的安全协议,主要用于加强应用程序之间的数据的安全性。SSL协议是基于Web应用的安全协议,它采用了RSA算法、RC4—128、RC一128、三重DES算法和MD5等加密技术实现两个应用层之间的机密性、可靠性和数据完整性,并采用X.509数字证书实现鉴别,其加密的目的是建立一个安全的通讯通道,而且该通道可在服务器和客户机两端同时实现支持。 2 SSL协议简述及相关概念 SSL协议用来建立一个在客户和服务器之间安全的TCP连接,尤其可被用来认证服务器,可选地认证客户,执行密钥交换,提供消息认证,而且还可以完成在TCP协议之上的任意应用协议数据的完整性和隐蔽性服务。SSL为在Internet上安全地传送数据提供了一介加密通道,建立一个安全连接,主要实现以下工作:加密网络上客户端和服务器相互发送的信息;验证信息在传送过程是否安全完整:运用非对称密钥算法验证服务器;验证客户身份;交换应用层数据。 2.1 SSL---安全套接层协议。 是由Netscape设计的一种开放性协议,它提供了一种介于应用层和传输层之间的数据安全套接层协议机制。SSL位于TCP/IP协议与各种应用层协议之间,为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。其目的是为客户端(浏览器)到服务端之间的信息传输构建一个加密通道,此协议是与操作系统和Web服务器无关的。 2.2 SSL协议可分两层: 2.2.1 SSL记录协议: 它建立在可靠的传输协议(如TCP)之上,位于SSL协议的底层,为高层协议提供数据封装、压缩、加密等基本功能的支持。在SSL中,所有数据被封装在记录中,SSL握手协议中的报文,要求必须放在一个SSL记录协议层的记录里,但应用层协议的报文,允许占用多个SSL 记录来传送 (1) SSL记录头格式 SSL记录头可以是2个或3个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密

网络工程课程设计

武汉软件工程职业学院 《网络工程课程设计》报告书 实训课题:数字化校园 班级:网络1106班 姓名:刘浩 学号: 1297811110840 年级: 2011级

前言 计算机网络技术是一个技术复杂、涉及面广、专业性较强的系统工程。想要成为一名合格的网络工程师,除了学习网络基础知识和相关的网络设备使用外,还需要系统地掌握网络系统工程技术、施工相关的知识和技术。 本次实训根据培养目标,按照网络工程项目建设的工作流程,首先全面而有精炼地讲解了网络工程建设之前的准备工作-------用户调查与需求分析,其中包括需求调查的内容及方式、用户需求分析;然后详细介绍网络工程项目逻辑网设计,主要包括网络拓扑结构的设计、IP 地址规划及VLAN的划分、局域网设计,广域网管理,网络管理及网络安全设计,网络设备选型等。接下来,按照综合布线的标准,系统地讲解了网络工程项目的物理网络设计、工程施工、工程的设计。 实训安排包括校园网的组建,网络需求调查与分析,网络逻辑方案设计,网络管理系统,信息插座与配线架安装,减缓及与路由配置。最后,设计一个完整的网络工程项目,力求通过项目实训掌握网络工程建设的全过程,将所学的知识应用到实践中去

目录 一、项目背景及设计要求 (3) 二、需求分析及设计原则 (4) 三、拓扑结构规划 (5) 四、网络功能设计 (5) 1.拓扑图 (5) 2.IP与VLAN划分 (6) 3. GLBP (7) 4. VRRP (10) 5. STP生成树 (12) 6.HSRP (15) 7. VPN (18) 五、综合布线设计 (21) 六、服务器的配置 (22) 七、设计总结体会 (27) 八、设计参考文献 (28)

网络协议课程设计报告

目录 1.课程设计目的 ---------------------------------------------------- 2 2.课程设计要求 ---------------------------------------------------- 2 3.课程设计题目分析 ------------------------------------------------ 2 3.1 网卡设置 -------------------------------------------------- 2 3.2 程序设计 -------------------------------------------------- 3 3.2.1 使用原始套接字------------------------------------------ 3 3.2.2 接收数据包---------------------------------------------- 4 3.2.3 定义IP头部的数据结构---------------------------------- 4 3.2.4 IP包的解析 --------------------------------------------- 5 4.解析IP数据包设计相关知识 -------------------------------------- 5 5.程序流程图------------------------------------------------------- 6 6.程序设计--------------------------------------------------------- 7 6.1 协议的定义 ------------------------------------------------ 7 6.2捕获处理--------------------------------------------------- 7 6.3 运行界面 -------------------------------------------------- 8 7.实验结果--------------------------------------------------------- 9 8.自我评析和总结 -------------------------------------------------- 9 8.1 实训心得-------------------------------------------------- 9 8.2 实训日记-------------------------------------------------- 9 9.主要参考资料 -------------------------------------------------- 10 [2]《网络协议分析》寇晓蕤罗俊勇编著机械工业出版社--------- 10 [3]《C语言程序设计》张建伟李秀琴主编科学出版社--------- 10 [4]《C++程序设计教程——面向对象分册》郑秋生主编 --------- 10电子工业出版社 -------------------------------------------------- 10 10.附录 ---------------------------------------------------------- 10

计算机网络课程设计报告

计算机网络课程设计报告 姓名:李逍逍 班级:08计11 学号:08261012

一.课程设计的题目、目的及要求 (2) 二.课程设计的内容(分析和设计) (3) 三.绘制拓扑结构图 (3) 四.详细设计步骤 (5) 五.路由器或交换机配置的代码 (6) 六.显示最终的结果 (8) 七.课程设计总结 (9)

一.课程设计的题目、目的及要求 课程设计题目:组建小区局域网 课程设计目的: 更深了解路由器,交换机,PC机之间的配置与应用,熟练掌握一些简单的的网络应用和连接,熟练掌握路由器和交换机的基本配置;掌握DHCP、ACL、VLAN、和NET协议和相应的技术;提高对实际网络问题的分析和解决能力。该设计需要划分为四个子网层面的小区性的网络通讯。采用软件cisco,可以更好的实现各种不同网络设备互相配合与联系,以达到最佳的局域网通讯效果。 课程设计要求: 要求能根据实际问题绘制拓扑结构图,拓扑结构图可以是树形、星形、网状形、环状形及混合形结构的之一,清晰的描述接口,进行路由器或交换机的代码配置实现,并且每个方案的需有以下几部分的内容: 1、需求特点描述; 2、设计原则; 3、解决方案设计,其中必须包含: (1)设备选型; (2)综合布线设计; (3)拓扑图; (4)IP地址规划; (5)子网划分; (6)路由协议的选择; (7)路由器配置。 组建小区局域网的总体要求: 运用自己对局域网组网技术的理解,设计小区组网方案,使得一个具有200个住户节点的智能化小区能够进行网络通讯,且将整个小区可划分为四个区域:1.网络中心区:以物业管理中心及监控中心为主的核心交换设备和服务器群;2.远程网络接入区:包括外部网络接入口的路由器设备和网络安全设备;3.园区网络区:包括从网络中心到社区服务设施的骨干交换设备; 4.家庭网络区:包括从网络中心到楼宇中的骨干交换设备,并为各住户单元提供网络接入端口,是整个小区网络系统的最基本单元。

网络工程课程设计校园网络设计完整版

网络工程课程设计校园 网络设计 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

XX网络综合实训 学校网络工程综合设计报告学生姓名XX 学号XX 所在系XX 专业名称XX 班级XX 指导教师XX 四川师范大学成都学院 二○一三年十月

学校网络工程综合设计报告 学生:XX 指导老师:XX 内容摘要:校园网络是非常典型的综合网络.本设计是建立一个可扩展的、高速的、充分冗余的、基于标准的网络,该网络能够支持融合了话音、视频、图像和数据的应用程序. Cisco公司作为知名品牌,网络领导厂商,其产品的可靠性和稳定性是一流的。因此.在关键网络系统中采用了Cisco 3640路由器、Cisco Catalyst 2950 24口交换机(WS-C2950-24)、Cisco Catalyst 3550交换机、Cisco Catalyst 4006交换机.在本设计中. 将重点放在网络主干的设计上,对于服务器的架设只作简单介绍。通过对校园网络关键设备进行分析.得出配置步骤和配置命令.本设计中所采取的技术与产品充分考虑到了网络未来的升级与发展,无论从校园网的扩展到广域网的建设都作了周密的考虑。再是由于系统选择的是最成熟与标准的快速以太网技术,把网络已构筑了高速和坚固的信息高速公路,面对未来的发展将处于非常有利的境界。 关键字:校园网络路由器网络主干 Comprehensive?design report?school?network engineering Abstract: The campus network is a comprehensive network is very typical. This design is to build a scalable, fully redundant high-speed, standards based network, the network can support the integration of voice, video applications, image and data. The Ciscocompany as a famous brand, network leading manufacturers, the product reliability and stability is the first class. Therefore. In key network system using Cisco 3640 router, Cisco Catalyst 295024 port switch (WS-C2950-24), Cisco Catalyst 3550 switches, Cisco Catalyst 4006 switches. In this design. Focus on the design ofbackbone network, the server only briefly introduced. The key equipment of campusnetwork analysis. The configuration steps and

计算机网络课程设计报告文件传输协议的简单实现

课程设计 课程名称计算机网络课程设计 题目名称文件传输协议的简单设计与实现学生学院 专业班级___ _ 学号 学生姓名______ _________ 指导教师______ _____ 2010 年 1 月 5 日

设计摘要 关键词:SOCKET编程,FTPclient/server程序 摘要:本课程设计包含了文件传输协议的简单设计与实现。 文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序和服务器程序(),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并实现简单应用层协议。 本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。

目录 1、文件传输协议的简单设计与实现------------------------------18 1. 1 具体设计任务----------------------------------------------18基本思路及所涉及的相关理论--------------------------------18 1.2.1基本思路-------------------------------------------------18 2.2.2 相关理论--------------------------------------------18 设计流程图------------------------------------------------19 实验运行情况----------------------------------------------19 核心程序--------------------------------------------------22 2.5.1 服务器(sever)程序---------------------------------22 2.5.2 客户(client)程序----------------------------------29 心得体会-----------------------------------------------------------------------------37 参考文献--------------------------------------------------------38

网络安全协议课程设计报告SSL协议

协议的安全性研究 1 引言 随着计算机网络技术的飞速发展,信息时代的人们对的依赖性越来越大。当今时代,电子商务和电子政务的应用越来越广泛,然而网络安全问题严重束缚了计算机网络的进一步应用。安全套接层( )协议是由公司设计开发的安全协议,主要用于加强应用程序之间的数据的安全性。协议是基于应用的安全协议,它采用了算法、4—128、一128、三重算法和5等加密技术实现两个应用层之间的机密性、可靠性和数据完整性,并采用X.509数字证书实现鉴别,其加密的目的是建立一个安全的通讯通道,而且该通道可在服务器和客户机两端同时实现支持。 2 协议简述及相关概念 协议用来建立一个在客户和服务器之间安全的连接,尤其可被用来认证服务器,可选地认证客户,执行密钥交换,提供消息认证,而且还可以完成在协议之上的任意应用协议数据的完整性和隐蔽性服务。为在上安全地传送数据提供了一介加密通道,建立一个安全连接,主要实现以下工作:加密网络上客户端和服务器相互发送的信息;验证信息在传送过程是否安全完整:运用非对称密钥算法验证服务器;验证客户身份;交换应用层数据。 2.1 安全套接层协议。 是由设计的一种开放性协议,它提供了一种介于应用层和传输层之间的数据安全套接层协议机制。位于协议与各种应用层协议之间,为连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。其目的是为客户端(浏览器)到服务端之间的信息传输构建一个加密通道,此协议是与操作系统和服务器无关的。 2.2 协议可分两层: 2.2.1 记录协议: 它建立在可靠的传输协议(如)之上,位于协议的底层,为高层协议提供数据封装、压缩、加密等基本功能的支持。在中,所有数据被封装在记录中,握手协议中的报文,要求必须放在一个记录协议层的记录里,但应用层协议的报文,允许占用多个记录来传送 (1) 记录头格式 记录头可以是2个或3个字节长的编码。记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密()算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有填充数据,记录头的长度为2个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为3个字节,记录数据的最大长度为16383个字节。

网络协议实验报告

实验一: unsigned short checkSum(char*pBuffer,int nLen) { unsigned short nWord; unsigned int nSum=0; int i; for(i=0;i>16) { nSum=(nSum&0xFFFF)+(nSum>>16); } nSum=~nSum; return((unsigned short)nSum); } int timeout=1000; setsockopt(sock_raw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout)); setsockopt(sock_raw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,sizeof(timeout)); ICMPheader*pIcmpHeader=(ICMPheader*)sendBuffer; pIcmpHeader->byType=8; pIcmpHeader->byCode=0; pIcmpHeader->nId=(USHORT)::GetCurrentProcessId(); pIcmpHeader->nChecksum=0; pIcmpHeader->nSequence=htons(nSeq++); memset(sendBuffer+sizeof(ICMPheader),'*',32); pIcmpHeader->nChecksum=htons(checkSum(sendBuffer, sizeof(ICMPheader)+32)); int nRet=sendto(sock_raw,sendBuffer,sizeof(ICMPheader)+32,0, (SOCKADDR*)&dest_addr,sizeof(SOCKADDR_IN)); IPheader*ipHdr=(IPheader*)recvBuffer; ICMPheader*icmpHdrRet=(ICMPheader*)(recvBuffer+sizeof(IPheader)); if(icmpHdrRet->byCode==0&& icmpHdrRet->nId==pIcmpHeader->nId&& icmpHdrRet->nSequence==pIcmpHeader->nSequence) { nPacketReceived++; unsigned long dwRecvTime=::GetTickCount(); int nRoundTime=dwRecvTime-dwSendTime; nTotalRoundTime+=nRoundTime;

网络协议分析实验报告

课程设计 课程设计题目网络协议分析实验报告学生姓名: 学号: 专业: 2014年 6 月 29日

实验1 基于ICMP的MTU测量方法 实验目的 1)掌握ICMP协议 2)掌握PING程序基本原理 3)掌握socket编程技术 4)掌握MTU测量算法 实验任务 编写一个基于ICMP协议测量网络MTU的程序,程序需要完成的功能: 1)使用目标IP地址或域名作为参数,测量本机到目标主机经过网络的MTU; 2)输出到目标主机经过网络的MTU。 实验环境 1)Linux系统; 2)gcc编译工具,gdb调试工具。 实验步骤 1.首先仔细研读ping.c例程,熟悉linux下socket原始套接字编程模式,为实验做好准备; 2.生成最大数据量的IP数据报(64K),数据部分为ICMP格式,ICMP报文为回送请求报 文,IP首部DF位置为1;由发送线程发送; 3.如果收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文。 至此,MTU测量完毕。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.

ICMP原理 ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。 我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。 ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方.是IP层的一个协议。但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP 报头形成ICMP报文,再添加IP报头形成IP数据报 通信术语最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 实验2 基于UDP的traceroute程序 实验目的 1)掌握UDP协议 2)掌握UDP客户机/服务器编程模式 3)掌握socket编程技术 4)掌握traceroute算法

网络工程课程设计

J I A N G S U U N I V E R S I T Y 《网络工程课程设计》 ——校园网络设计方案 声明:基本分工 :分析项目环境,统计需要的设备个数以及价格等基本信息,并根据项目需求给每个区域分配相应的设备。设计网络系统总体方案,设计并绘制校园网络拓扑结构图,系统方案详细设计; :布线总体方案设计,并进行报价,服务平台和系统应用设计;编写规范的设计方案文档。为阶梯教室进行布线设计 一、实验目的 1.了解网络规划设计的目的和意义; 2.熟悉网络工程设计的一般流程; 3.掌握方案设计文档的编制方法; 4.培养学生团队协作精神。 二、实验内容 1.项目背景

以上面的校区为本项目设计对象,假设该校区原有网络规划不合理,网络设备技术落后,随着学院规模的不断扩大和在校学生人数的增加,校园网络带宽出现严重不足,网络安全性和稳定性下降,已无法满足在校师生的使用要求。 为适应现代高校网络建设发展和实际网络应用需求,学院欲投入专项资金对校园网络实施改造工程,建立一个安全、可靠、可扩展、高效的网络环境,使校园内能方便快捷地实现网络资源共享和Internet访问。 2.项目环境 东校区具体环境如下: 教学楼:2幢,共6层,每层5间教室(PC机各1台) 办公楼:1幢,部门若干,共20间办公室(PC机各4台) 图书馆:1幢,电子阅览室一间,PC机共50台 学生宿舍:8幢,每幢4层,每层10个房间,住4人 阶梯教室:1幢,详情见后述。 其它建筑:网络设计人员自行考虑如何提供网络支持,是否提供网络支持。 3.项目需求 (1)为适应当前网络使用需求和今后网络规模的扩大,建议采用3层网络体系结构设计,主干网络采用10000Mb/s光纤技术,汇聚层采用1000Mb/s光纤技术,接入层采用100Mb/s电缆到桌面。 (2)为增强网络安全性,缩小网络广播域范围,可按部门或组织机构划分VLAN,并合理分配IP地址段,通过三层交换技术实现各VLAN间的互访。 (3)分析各部门机构网络流量大小,合理选择网络连接设备,如:核心交换机、汇聚层交换机、接入层交换机、路由器、防火墙、VPN等设备。 (4)中心机房安放在网络中心,有两个ISP提供网络服务,设计网络时按CISCO 模块化方式进行设计,网络设计时提供备用接口,使用冗余拓扑。 (5)网络访问需求:

计算机网络课程设计利用java实现UDP协议

?????? 计算机网络课程设计利用java 实现UDP协议 系别计算机与通信工程学院 专业计算机科学与技术 学号4110415 姓名张振 指导教师王聪 2014年7月4日

1.需求分析 程序是如何通过网络进行相互通信的呢?各个孤立的工作站或主机用物理链路相连在一起,组成数据链路,从而达到资源共享和通信的目的,就形成网络。通信是人与人之间同过某种媒体进行的信息交流与传递。网络通信一般指网络协议。当今网络协议有很多,其中基本最常用的就是TCP/IP 协议族。UDP 协议就是属于TCP/IP协议族中的协议。在网络中它与TCP协议一样用于处理数据包。在OSI模型中,UDP协议在第四层——传输层,处于IP协议的上一层。与TCP 相比,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 本文利用Java语言网络编程的思想,编写UDP协议程序,实现UDP协议在网络中所要完成的功能。在Java语言为实现程序的相互通信提供了许多有用的抽象应用程序接口(API, Application Programming Interface),这类应用程序接口被称为套接字(sockets)。 因此,本文UDP协议的编程所需要用到的接口就是套接字。 2.实验环境 开发环境: 个人PC+win8.1+myeclipse 10 3.实验原理以及相关内容 3.1 UDP简介 UDP 是User Datagram Protocol的简称,中文全称是用户数据包协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在网络中它与TCP协议一样用于处理数据包。在OSI模型中,UDP协议在第四层——传输层,处于IP协议的上一层。与TCP相比,UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。 3.2 使用UDP原因 UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议 所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。 这是因为UDP 有以下特点: (1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时 就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 (2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等, 因此一台服务机可同时向多个客户机传输相同的消息。 (3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额 外开销很小。 (4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、 源端和终端主机性能的限制。

相关主题
文本预览
相关文档 最新文档