软件架构项目报告 本文关键词:架构,报告,项目,软件
软件架构项目报告 本文简介:软件架构项目报告目录1项目概述42需求分析42.1系统用例图和流程图42.2功能需求52.3非功能性需求62.3.1性能需求62.3.2质量需求62.3.3安全性需求62.4可行性分析62.4.1技术可行性72.4.2经济可行性72.4.3操作可行性73总体设计74详细设计74.1感知哈希算法74.
软件架构项目报告 本文内容:
软件架构项目报告
目录
1
项目概述4
2
需求分析4
2.1系统用例图和流程图4
2.2功能需求5
2.3非功能性需求6
2.3.1性能需求6
2.3.2
质量需求6
2.3.3安全性需求6
2.4可行性分析6
2.4.1技术可行性7
2.4.2经济可行性7
2.4.3操作可行性7
3
总体设计7
4
详细设计7
4.1感知哈希算法7
4.1.1算法概述7
4.1.2
算法详细步骤8
4.2
Levenshtein距离算法10
4.2.1算法概述10
4.2.2生成图片的指纹11
4.2.3计算编辑距离,得出相似度13
4.3
欧式距离相似度算法16
4.3.1算法概述16
4.3.2算法步骤16
4.4
加权最优解19
4.4.1算法概述19
4.4.2算法步骤19
5
系统实现20
5.1界面设计21
5.2系统集成21
5.2.1系统目录结构21
5.2.2
structs具体实现22
5.3系统环境和运行23
5.3.1系统环境23
5.3.2运行效果23
6
测试27
1
项目概述
2
需求分析
2.1系统用例图和流程图
使用基于场景的用例分析方法可知,在操作系统的场景中用户可进行的操作如下:
(1)用户加载目标股票的TXT文件,将目标股票的TXT文件生成股票走势图
(2)将目标走势图与其他走势图进行比较,计算两两之间的相似度
(3)选取与目标走势图相似度最高的走势图
(4)输出结果并保存
系统用例图如下所示:
相应的流程图如下:
2.2功能需求
通过上面对系统的分析可知,系统核心的功能主要有如下几种:
(1)
批量导入样本文件;
(2)
形成走势图,即股市中的K线图;
(3)
计算相似度,并选取相似度最大的走势图;
因此可以将整个系统分为两大功能模块,功能模块图如下所示:
2.3非功能性需求
2.3.1性能需求
由于系统运行需要导入大量的数据,因此要求系统在算法实现上能保证尽可能的提供运行效率,降低反应时间。同时,本系统是对股市行情的研究比较,开发的系统要求结果准确。
2.3.2
质量需求
对于系统的相关质量的属性需求如下表:
质量属性序列号
质量属性要求说明
1
有导入目标股票的TXT文件方法
2
有三种不同算法来计算相似度
3
界面简洁大方,方便操作
2.3.3安全性需求
1.
服务器应该在合适温度、适度的环境下工作,避免剧烈的震动;
2.
各种电源线和数据线的铺设要合理而安全,避免出现意外脱接现象的发生;
3.
服务器所在地区应保持电压稳定及电源的持续供应,尽量避免高频率的人为断电现象(例如:错拉电闸、保险丝熔断等),以保持服务器中数据的一致性;
4.
当提前获知断电时间时,应在网页上及时发布相关信息(例如:服务器将于几时几分关闭),避免站点的突然关闭;
5.
服务器管理员应确保服务器密码不泄漏;
6.
服务器所在房间应做好安全防盗工作,避免盗窃现象的发生。
2.4可行性分析
2.4.1技术可行性
系统实现依靠相对比较熟悉的HTML、JavaScript、java语言,功能实现也相对简单。因此完成此项目的风险较小。
2.4.2经济可行性
本系统所用到的应用软件、硬件系统都易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。
2.4.3操作可行性
本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。界面简洁友好,操作方便。
3
总体设计
4
详细设计
4.1感知哈希算法
4.1.1算法概述
感知哈希算法pHash(Perceptual
Hash
Algorithm),意思是为图片生成一个指纹(字符串格式),两张图片的指纹越相似,说明两张图片就越相似.。为降低均值对算法的影响程度,pHash算法使用离散余弦变换(DCT)来获取图片的低频成分。而对于两张图片相似度的计算则是基于汉明距离的。
离散余弦变换(DCT)是种图像压缩算法,它将图像从像素域变换到频率域。然后一般图像都存在很多冗余和相关性的,所以转换到频率域之后,只有很少的一部分频率分量的系数才不为0,大部分系数都为0(或者说接近于0)。
汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,汉明距离描述的是两个n长码字x=(x1x2?xn),y=(y1y2?yn)之间的距离,
Dx,y=k=1nxkyk
其中,表示模2加运算,xk∈0,1,yk∈{0,1}.
D(x,y)表示两码字在相同位置上不同码符号的数目的总和,它能够反映两码字之间的差异,进而提供码字之间的相似程度的客观依据。
4.1.2
算法详细步骤
(1)缩小尺寸:pHash以小图片开始,但图片大于8*8,32*32是最好的。这样做的目的是简化了DCT的计算,而不是减小频率。具体的代码实现如下图:
(2)简化色彩:将图片转化成灰度图像,进一步简化计算量。下图是转化为灰度图像的函数grayscale()的实现;
(3)计算DCT:计算图片的DCT变换,得到32*32的DCT系数矩阵。下图是进行二维DCT变换的函数applyDCT()的实现。
(4)缩小DCT:虽然DCT的结果是32*32大小的矩阵,但我们只要保留左上角的8*8的矩阵,这部分呈现了图片中的最低频率。
(5)计算平均值:如同均值哈希一样,计算DCT的均值。
(6)计算hash值:这是最主要的一步,根据8*8的DCT矩阵,设置0或1的64位的hash值,大于等于DCT均值的设为“1”,小于DCT均值的设为“0”。组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。
(7)对比图片指纹:得到图片的指纹后,就可以对比不同的图片的指纹,计算出64位中有多少位是不一样的。一般情况下,如果不相同的数据位数不超过5,就说明两张图片很相似,如果大于10,说明它们是两张不同的图片。这里是基于汉明距离来对相似度进行计算,定义的相似度计算公式为:
sim=1-汉明距离位数
下面两张图片分别是对汉明距离和相似度的实现函数,具体如下:
.
4.2
Levenshtein距离算法
4.2.1算法概述
我们这里所要研究的相似度算法是这样进行的,UML图如上。
4.2.2生成图片的指纹
在我们的程序中,生成图片哈希值的方法是produceFingerPrint(),他返回的是一个String类型的字符串类型。这个方法里面主要涉及6个部分:
(1)读取图片
实现这个功能的方法是通过readImage(filename)方法来完成的,这个方法封装在ImageRead类中,它通过获取图片的路径名来得到该图片。代码如下:(2)将图片缩小到固定尺寸
因为我们得到的图片可能会大小不一致,多以我们需要将他们缩小成一致的格式,这里我们将他们缩小成8*8的尺寸,总共64个像素,除去了图片的细节,只保留了结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。实现方法是:thumb(BufferedImage
source,int
width,int
height,boolean
b),代码如下:
(3)简化色彩
将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。通过灰度值的计算来实现的,方法为rgbToGray()
(4)计算平均值
计算64个像素的灰度平均值,通过方法average()来实现。代码如下:
(5)比较像素灰度
将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
(6)计算哈希值
将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。代码如下:
4.2.3计算编辑距离,得出相似度
计算图片指纹的相似度。进而算出图片的相似度。
(1)编辑距离概述
Levenshtein
距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。
许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein
Distance。
(2)举例说明
a.首先是有两个字符串,这里写一个简单的
abc和abe
b.将字符串想象成下面的结构。
A处
是一个标记,为了方便讲解,不是这个表的内容。
abc
a
b
c
abe
0
1
2
3
a
1
A处
b
2
e
3
c.来计算A处
出得值
它的值取决于:左边的1、上边的1、左上角的0.
按照Levenshtein
distance的意思:
上面的值和左面的值都要求加1,这样得到1+1=2。
A处
由于是两个a相同,左上角的值加0.这样得到0+0=0。
这是后有三个值,左边的计算后为2,上边的计算后为2,左上角的计算为0,所以A处
取他们里面最小的0.
d.于是表成为下面的样子
abc
a
b
c
abe
0
1
2
3
a
1
0
b
2
B处
e
3
在B处
会同样得到三个值,左边计算后为3,上边计算后为1,在B处
由于对应的字符为a、b,不相等,所以左上角应该在当前值的基础上加1,这样得到1+1=2,在(3,1,2)中选出最小的为B处的值。
e.于是表就更新了
abc
a
b
c
abe
0
1
2
3
a
1
0
b
2
1
e
3
C处
C处
计算后:上面的值为2,左边的值为4,左上角的:a和e不相同,所以加1,即2+1,左上角的为3。
在(2,4,3)中取最小的为C处
的值。
f.于是依次推得到
a
b
c
0
1
2
3
a
1
A处
0
D处
1
G处
2
b
2
B处
1
E处
0
H处
1
e
3
C处
2
F处
1
I处
1
I处:
表示abc
和abe
有1个需要编辑的操作。这个是需要计算出来的。
同时,也获得一些额外的信息。
A处:
表示a
和a
需要有0个操作。字符串一样
B处:
表示ab
和a
需要有1个操作。
C处:
表示abe
和a
需要有2个操作。
D处:
表示a
和ab
需要有1个操作。
E处:
表示ab
和ab
需要有0个操作。字符串一样
F处:
表示abe
和ab
需要有1个操作。
G处:
表示a
和abc
需要有2个操作。
H处:
表示ab
和abc
需要有1个操作。
I处:
表示abe
和abc
需要有1个操作。
g.计算相似度
先取两个字符串长度的最大值maxLen,用1-(需要操作数除maxLen),得到相似度。
例如abc
和abe
一个操作,长度为3,所以相似度为1-1/3=0.666
(3)具体实现
具体实现代码如下:
4.3
欧式距离相似度算法
4.3.1算法概述
该算法的核心思想是计算两条直线的欧氏距离。
4.3.2算法步骤
①运用道格拉斯-普克算法将折线简化,提取出折线的特征点。步骤如下,
(1)在曲线首尾两点间虚连一条直线,求出其余各点到该直线的距离,如下图(1)。
(2)选其最大者与阈值相比较,若大于阈值,则离该直线距离最大的点保留,否则将直线两端点间各点全部舍去,如下图(2),第4点保留。
(3)依据所保留的点,将已知曲线分成两部分处理,重复第1、2步操作,迭代操作,即仍选距离最大者与阈值比较,依次取舍,直到无点可舍去,最后得到满足给定精度限差的曲线点坐标,如下图(3)、(4)依次保留第6点、第7点,舍去其他点,即完成线的化简。
具体的代码实现如下:
②将两条折线A,B垂直平移至X轴,如下图二。。
③将其中一条折线A缩放一定比例得到A’;使得A’上所有点的平均值与B相等,如下图三。
④通过A’上的点向B做垂线,求出垂距H,得出累计垂距Hs如下图四。
⑤相似度用1/Hs表示,当Hs=0时,取相似度为1,算法实现为代码二、代码三。
具体的代码实现如下:
4.4
加权最优解
4.4.1算法概述
上面三种算法或多或少有相应的侧重,因此我们小组决定根据上面三种算法提供一个加权的最优解。在获得三种算法得出的相关的相似度值后,为每种算法赋予相关的加权值,通过加权运算获得最优的结果。
4.4.2算法步骤
(1)获得三面三种算法的结果;
(2)进行加权运算。分别给算法A(感知哈希算法)、算法B(Levenshtein距离算法)和算法C(欧式距离相似度算法)权数为0.5、0.3、0.2。
具体代码实现如下:
5
系统实现
整个系统架构思想是基于构件的软件开发思想,通过运用structs框架,将前端界面设计和后台功能实现相结合。具体的界面设计和系统集成如下介绍。
5.1界面设计
界面设计秉承简单实用的设计思想,将整个系统需求的具体功能在首界面就全部展现出来了。同时,为增加用户的体验好感度,运用了相关的JavaScript技术实现。具体的界面效果如下图:
5.2系统集成
5.2.1系统目录结构
整个项目既有前台界面编写,又有后台算法实现,由于不同的模块代码编写的人员不同,最终需要进行代码的集成整合。通过对代码的集成最后形成的代码系统目录如下图所示:
5.2.2
structs具体实现
Structs部分的实现包括相关的VO层、action、service以及structs配置文件实现。在这里就不对其一一截图展示了,其中核心的action源码如下图所示:
5.3系统环境和运行
5.3.1系统环境
集成开发环境为MyEclipse
10
服务器部署环境为Tomcat
Java运行环境为JDK1.8
5.3.2运行效果
在首页进行导入样本文件后,可以分别进行三种算法的计算得出相应的结果。然后还能进行加权最优解的获得。
(1)
算法A(感知哈希算法)运行效果
后台运行如下图:
结果展示如下:
(2)
算法B(Levenshtein距离算法运行效果
后台运行如下:
结果展示如下:
(3)
算法C(欧式距离相似度算法运行效果
结果展示如下:
(4)
加权最优解运行效果
6
测试
篇2:课设报告-J2EE企业级开发架构——通用表单及表格模板
课设报告-J2EE企业级开发架构——通用表单及表格模板 本文关键词:企业级,表单,架构,表格,模板
课设报告-J2EE企业级开发架构——通用表单及表格模板 本文简介:项目名称1J2EE企业级开发架构——通用表单及表格模板11技术路线11.1采用的技术架构11.2Struts框架21.3Struts的工作流程21.4开发环境21.5运行环境32功能描述32.1MVC模式示意图32.2功能模块图43数据库设计53.1局部E-R图53.2整体E-R图64程序代码说明7
课设报告-J2EE企业级开发架构——通用表单及表格模板 本文内容:
项目名称1
J2EE企业级开发架构
——通用表单及表格模板1
1
技术路线1
1.1采用的技术架构1
1.2
Struts框架2
1.3
Struts的工作流程2
1.4
开发环境2
1.5
运行环境
3
2
功能描述3
2.1
MVC模式示意图3
2.2
功能模块图4
3
数据库设计5
3.1
局部E-R图5
3.2
整体E-R图6
4
程序代码说明7
4.1
主要代码7
4.1.1
注册代码7
4.1.2
登陆代码8
4.1.3
主要功能界面代码10
4.1.4
相关配置文件代码21
5
设计效果23
6
结论26
项目名称
J2EE企业级开发架构
——通用表单及表格模板
1
技术路线
1.1采用的技术架构
B/S
架构Struts
+
Hibernate的工程管理系统
1.2
Struts框架
一个成功的管理网站的构建不仅需要考虑到如何高效快捷的实现系统功能,还要本着可扩展的原则,在一定时期内适应技术发展与功能扩充的需求,同时要给用户提供方便、实用的信息服务,使网站的功能最大化。因此在管理系统的设计中,采用了基于Struts的结构框架设计,采用Struts的结构框架设计的优点有:
(1)
可扩展性:Struts框架是基于JSP
Model2的设计标准,可以说是MVC设计模式的一种变化类型,其业务逻辑和表示逻辑分开,而且所有默认的设置都可以配置,包括了一系列通用标记扩展,适应复杂的业务形式,具有较强的可扩展性,能满足新业务发展的要求。
(2)
标准性和开放性:Struts
框架基于Java语言,而且其基本组件具有统一的标准,在许多运行标准的容器中都工作的非常好,具备优异的可移植性
(3)
安全性和高效性Struts具有完善的安全管理机制,Java语言也是当前最安全的语言。采用Struts能使系统具有较高的网络安全性和运行效率,保证提供高质量的网络服务和快速的响应速度。
1.3
Struts的工作流程
Struts框架的工作流程图:
1.4
开发环境
JDK1.6+Tomcat6.x+MyEclipse10+MySQL
1.5
运行环境
MyEclipse10
2
功能描述
2.1
MVC模式示意图
2.2
功能模块图
3
数据库设计
3.1
局部E-R图
3.2
整体E-R图
4
程序代码说明
4.1
主要代码
4.1.1
注册代码
Register.jsp:
function
validusername(){
var
u=document.all(
username
).value;//
通过document对象取得页面中名为username的元素,再取其值
if(u==null||u==
){//
判断是否为空
alert(
用户名不能为空
);
}
}
function
validpasswd(obj){
var
p=obj.value;//
obj在调用时被传入了this,this代表当前对象即调用方法的password元素
var
r
=
new
RegExp(“^//d{3,}$“);//
创建正则表达式规则
if(!r.test(p)){//
用正则表达式测试p的值
alert(
数字格式不正确
);
}
}
用
户
名
密
码
再次输入
姓
名
所属部门
联系电话
返回上一层
注册界面预览:
4.1.2
登陆代码
Login.jsp
工程管理系统
$(document).ready(function(){
$(“#login_sub“).click(function(){
$(“#submitForm“).attr(“action“,“Project.jsp“).submit();
});
});
/*回车事件*/
function
EnterPress(e){
//传入
event
var
e
=
e
||
window.event;
if(e.keyCode
==
13){
$(“#submitForm“).attr(“action“,“Project.jsp“).submit();
}
}
用户名:
密码:
注册账号
忘记密码
4.1.3
主要功能界面代码
Project.jsp
/**退出系统**/
function
logout(){
if(confirm(“您确定要退出本系统吗?“)){
window.location.href
=
“login.html“;
}
}
/**获得当前日期**/
function
getDate01(){
var
time
=
new
Date();
var
myYear
=
time.getFullYear();
var
myMonth
=
time.getMonth()+1;
var
myDay
=
time.getDate();
if(myMonth
-1){
art.dialog({icon:
error,title:
友情提示,drag:false,resize:false,content:
由于360浏览器功能限制,加入收藏夹功能失效,ok:true,});
}else
if
(ua.indexOf(“msie
8“)
>
-1){
window.external.AddToFavoritesBar(
${dynamicURL}/authority/loginInit.action,贝塔工程信息管理系统管理
);//IE8
}else
if
(document.all){
window.external.addFavorite(
${dynamicURL}/authority/loginInit.action,贝塔工程信息管理系统管理
);
}else{
art.dialog({icon:
error,title:
友情提示,drag:false,resize:false,content:
添加失败,请用ctrl+D进行添加,ok:true,});
}
}
/*
zTree插件加载目录的处理/
var
zTree;
var
setting
=
{
view:
{
dblClickExpand:
false,showLine:
false,expandSpeed:
($.browser.msie
i>=0;
i--)
{
if
(newParents[i]
!==
oldParents[i])
{
zTree.expandNode(oldParents[i],false);
break;
}
}
}else
{
zTree.expandNode(oldParents[oldParents.length-1],false);
}
}
}
}
curExpandNode
=
newNode;
}
function
onExpand(event,treeId,treeNode)
{
curExpandNode
=
treeNode;
}
/**
用于捕获节点被点击的事件回调函数*/
function
zTreeOnClick(event,treeId,treeNode)
{
var
zTree
=
$.fn.zTree.getZTreeObj(“dleft_tab1“);
zTree.expandNode(treeNode,null,null,null,true);
//
zTree.expandNode(treeNode);
//
规定:如果是父类节点,不允许单击操作
if(treeNode.isParent){
//
alert(“父类节点无法点击哦.“);
return
false;
}
//
如果节点路径为空或者为“#“,不允许单击操作
if(treeNode.accessPath==““||
treeNode.accessPath==“#“){
//alert(“节点路径为空或者为
#
哦.“);
return
false;
}
//
跳到该节点下对应的路径,把当前资源ID(resourceID)传到后台,写进Session
rightMain(treeNode.accessPath);
if(
treeNode.isParent
){
$(
#here_area
).html(
当前位置:
+treeNode.getParentNode().resourceName+
>
+treeNode.resourceName+
);
}else{
$(
#here_area
).html(
当前位置:系统>
+treeNode.resourceName+
);
}
};
/*
上方菜单/
function
switchTab(tabpage,tabid){
var
oItem
=
document.getElementById(tabpage).getElementsByTagName(“li“);
for(var
i=0;
i
:
admin
:
:
$(function(){
$(
#TabPage2
li
).click(function(){
var
index
=
$(this).index();
$(this).find(
img
).attr(
src,images/common/
+
(index+1)
+
_hover.jpg
);
$(this).css({background:
#fff
});
$(
#nav_module
).find(
img
).attr(
src,images/common/module_
+
(index+1)
+
.png
);
$(
#TabPage2
li
).each(function(i,ele){
if(
i!=index
){
$(ele).find(
img
).attr(
src,images/common/
+
(i+1)
+
.jpg
);
$(ele).css({background:
#044599
});
}
});
//
显示侧边栏
switchSysBar(true);
});
//
显示隐藏侧边栏
$(“#show_hide_btn“).click(function()
{
switchSysBar();
});
});
/**隐藏或者显示侧边栏**/
function
switchSysBar(flag){
var
side
=
$(
#side
);
var
left_menu_cnt
=
$(
#left_menu_cnt
);
if(
flag==true
){//
flag==true
left_menu_cnt.show(500,linear
);
side.css({width:
280px
});
$(
#top_nav
).css({width:
77%,left:
304px
});
$(
#main
).css({left:
280px
});
}else{
if
(
left_menu_cnt.is(“:visible“)
)
{
left_menu_cnt.hide(10,linear
);
side.css({width:
60px
});
$(
#top_nav
).css({width:
100%,left:
60px,padding-left
:
28px
});
$(
#main
).css({left:
60px
});
$(“#show_hide_btn“).find(
img
).attr(
src,images/common/nav_show.png
);
}
else
{
left_menu_cnt.show(500,linear
);
side.css({width:
280px
});
$(
#top_nav
).css({width:
77%,left:
304px,padding-left
:
0px
});
$(
#main
).css({left:
280px
});
$(“#show_hide_btn“).find(
img
).attr(
src,images/common/nav_hide.png
);
}
}
}
当前位置:系统>系统介绍
4.1.4
相关配置文件代码
Web.xml
CharactorEncodingFilter
cn.daizhe.util.CharactorEncodingFilter
篇3:SOHO网络架构项目实施报告
SOHO网络架构项目实施报告 本文关键词:项目实施,架构,报告,网络,SOHO
SOHO网络架构项目实施报告 本文简介:SOHO网络架构项目实施报告1、项目背景科学技术的发展日新月异,在计算机技术和通信技术结合下,网络技术得到了飞速的发展。如今,不仅计算机已经和网络紧密结合,整个社会都不可能脱离网络而存在。网络必将成为和电话一样通用的工具,成为人们生活、工作、学习中必不可少的一部分。网络技术的成熟和笔记本等硬件设备的
SOHO网络架构项目实施报告 本文内容:
SOHO网络架构项目实施报告
1、
项目背景
科学技术的发展日新月异,在计算机技术和通信技术结合下,网络技术得到了飞速的发展。如今,不仅计算机已经和网络紧密结合,整个社会都不可能脱离网络而存在。网络必将成为和电话一样通用的工具,成为人们生活、工作、学习中必不可少的一部分。
网络技术的成熟和笔记本等硬件设备的不断产生,使得SOHO成为可能。SOHO,即small
office
home
office,小型家庭办公网络,一般就是几台电脑组成,能够访问internet,共享资料,适合平面设计师、自由撰稿人、广告策划师、网络安全分析师等职业,SOHO也以其方便,自由,成本低而深受广大青年的爱好。
下面建立一个小型的办公SOHO网络,适用于规模不大的公司内部,或者家庭附近办公。
2、
项目需求
1
功能需求:
(1)
内部传输资料,文件服务器和网络打印机,仅供局域网内部使用。
(2)了解市场商品信息、收发邮件
(3)访问互联网络。
2
地理/逻辑/规模需求:
(1)公司位于写字楼5楼的相邻两个房间,是一个新建成的办公室,采用静电地板下布线
(2)下设有业务部和技术部
(3)现在有员工18人,每人配备计算机需要接入互联网开展业务。
3
技术需求:
(1)在内部局域网中,为了确保数据的传输,在网络主干可采用六类双绞线实现千兆数据的传输,用户终端采用百兆到桌面。
(2)在这个办公网络中,现有总节点数为20个,其中18个节点为公司的
用户计算机,1个节点为服务器,1个节点为网络打印机。
(3)由于公司员工数量较少,一个子网内就可以满足实际的需要,因此局域网内IP地址可采用C类IP地址。
(4)
Internet接入主要有ADSL接入、光纤宽带接入、专线接入等。
(5)在内部人员访问互联网时需要NAT,但由于只有一个公网地址,所以采用基于端口的NAT,即PAT
3、
项目设计
1
网络的拓扑结构图
局域网采用总线型拓扑结构
图
3.1.1
Packet
tracer
环境下的组网设计:
ISP和Internet网络
图
3.1.2
2
网络中的IP地址规划方案
(1)基本要求
内部用户配置C类私有IP地址:192.168.1.0/24。
ADSL路由器内部接口IP可设置为:192.168.1.1/24
外部公网地址设为:201.201.1.0/XX
ADSL路由器的WAN接口可以使用ADSL
Modem从ISP提供的互联网公有IP地址。
配置ADSL路由器实现对私有IP地址段(192.168.1.0/24)进行NAT转换(将内部私有IP地址与从ISP提供的互联网公有IP地址段转换。从而实现内部用户访问互联网。)
Ip地址的需求和分配要求信息:
部门
设备
IP地址
子网掩码
网关地址
ISP
ISP-Server
201.201.1.1
255.255.255.0
201.201.1.2
边界路由器
201.201.1.3
255.255.255.0
201.201.1.2
SOHO路由
SOHO-Router
(FastEthernetf0/0)
192.168.1.1
255.255.255.0
SOHO-Router
(FastEthernetf0/1)
201.201.1.2
255.255.255.0
公用部分
SOHO-Server
192.168.1.100
255.255.255.0
192.168.1.1
网络-Printer
192.168.1.200
255.255.255.0
192.168.1.1
技术部
员工1
192.168.1.12
255.255.255.0
192.168.1.1
员工2
192.168.1.13
255.255.255.0
192.168.1.1
员工3
192.168.1.14
255.255.255.0
192.168.1.1
员工4
192.168.1.15
255.255.255.0
192.168.1.1
员工5
192.168.1.16
255.255.255.0
192.168.1.1
员工6
192.168.1.17
255.255.255.0
192.168.1.1
员工7
192.168.1.18
255.255.255.0
192.168.1.1
员工8
192.168.1.19
255.255.255.0
192.168.1.1
服务部
员工9
192.168.1.2
255.255.255.0
192.168.1.1
员工10
192.168.1.3
255.255.255.0
192.168.1.1
员工11
192.168.1.4
255.255.255.0
192.168.1.1
员工12
192.168.1.5
255.255.255.0
192.168.1.1
员工13
192.168.1.6
255.255.255.0
192.168.1.1
员工14
192.168.1.7
255.255.255.0
192.168.1.1
员工15
192.168.1.8
255.255.255.0
192.168.1.1
员工16
192.168.1.9
255.255.255.0
192.168.1.1
员工17
192.168.1.10
255.255.255.0
192.168.1.1
员工18
192.168.1.11
255.255.255.0
192.168.1.1
表
3.2
3
选择设备及型号
对于20人左右用户的SOHO网络来说,网络中的核心路由器除了要具有宽带接入的功能,还要考虑到公司网络在许多方面的业务应用。如传输语音,视频,及传真信号,VoIP的应用,VPN功能和防火墙的功能等。所以基本上都要采用模块化的设计,可以对网络应用进行丰富的扩展,保护用户网络的长久投资。公司的这些业务需求就要求路由器必须具备以下特点:稳定可靠、高速高效、信息安全、操作简单、节约投资等
1
采用ADSL方式接入互联网,需要使用ADSL
Modem设备。将电话线路的模拟信号转换为数字信号传入网络,同时也将网络中的数字信号转换成模拟信号发送出去。互联网接入设备的选购观点
(1)要看提供的广域网及局域网接口类型
(2)要看采用的处理器类型及支持的最大内存
(3)要看支持的网络协议及标准
(4)要看是否具备地址转换功能
(5)要看是否自带内置防火墙功能
(6)要看售后服务和技术支持
(7)要看性价比
所以H3C
Aolynk
BR104H系列是最佳选择。
H3C
Aolynk
BR104H
技术参数
路由器类型:SOHO级路由器网络协议:
PPPoE,ARP,DHCP
客户端/服务器,NAT,RIP
v1/v2,静态路由,SNTP(简单网络时间协议),DDNS,PPTP,VPN透传(IPSec、PPTP、L2TP)
固定广域网接口类型:
1个ADSL
WAN口
固定局域网接口类型:
4个10/100M全双工LAN口
内置防火墙:
内置
路由器包转发率:
10
Mbps:
14,800
pps,100
Mbps:
148,800
pps
2
对于公司内部具有8人以上的用户,可以考虑添置一台交换机,来扩展网络用户的数量,实现多机共享上网,交换机的接口数量一般为16或24端口。
局域网接入的选购观点
(1)要看接口数量及类型
(2)要看支持的网络协议及标准
(3)要看转发速率
(4)要看RAM缓存容量
(5)要看流量控制
(6)要看是否可网管
(7)要看性价比
所以选择H3C
S1526二层交换机。
H3C
S1526技术参数:
交换机类型:
千兆以太网交换机
网络标准:
IEEE802.3、IEEE802.3u、IEEE802.3ab、IEEE802.3z、
ANSI/IEEE
802.3
NWay(自动侦测传输速率)
、
IEEE802.3x
接口数量、类型:
24个10/100Base-TX自适应以太网端口
2个10/100/1000Base-T自适应以太网端口
1个Console接口
包转发率:
6.55Mpps
MAC表:
8K
3
从公司的需求情况来看,无线网络设备的使用本着最低的投入,获得满意的效果,因此选择神州数码
DCWL
-3000AP,作为移动用户接入的AP产品。
DCWL
-3000AP技术参数:
传输协议:TCP/IP、IPX/SPX和NETBEUI
最大覆盖范围:300米
端口类型:RJ-45
网络标准:IEEE802.11b
传输速率(Mbps):11、5.5、2、1Mbps
4
各信息点与交换机相连接的线缆采用超五类非屏蔽双绞线(UTP
CAT
5e),服务器与交换机之间采用六类非屏蔽双绞线(UTP
CAT
6)连接到交换机1000Base-T以太网端口。
4
网络设备统计
根据以上分析,结合各厂商技术实力、产品技术水平和市场占有率和性能价格比等情况,经过多方比较,本项目设备采用的网络设备见表。
5
Packet
Tracer
环境下的设备选择
CISCO
1841
Router
CISCO
2950-24
Switch
DSL
Modem-PT
Print-PT
Server-PT
PC-PT
4、
项目实施
1
按拓扑设计,选用合适的线缆连接设备,组建网络。
物理设备连接信息:
员工的PC机和SOHO-Server和网络打印机分别接入到SOHO-Server的不同接口中SOHO交换机Fastethernet
f0/1接入到SOHO路由器的Fastethernet
f0/0口上,路由器的Fastethernet
f0/1口接入到Modem上,最后由Modem用电话线接入到ISP网络。
2
设备基本配置信息(以在PT环境下为例)
(1)按Ip地址需求和分配表将不同的PC机和服务器设置好Ip地址,子网掩码和默认网关。
(2)SOHO交换机配置:
启动过程
用console口与终端设备相连,命令
show
version
查看版本信息等
Cisco
Internetwork
Operating
System
Software
IOS
(tm)
C2950
Software
(C2950-I6Q4L2-M),Version
12.1(22)EA4,RELEASE
SOFTWARE(fc1)
Copyright
(c)
1986-2005
by
cisco
Systems,Inc.
Compiled
Wed
18-May-05
22:31
by
jharirba
Image
text-base:
0x80010000,data-base:
0x80562000
ROM:
Bootstrap
program
is
is
C2950
boot
loader
Switch
uptime
is
37
minutes,20
seconds
System
returned
to
ROM
by
power-on
Cisco
WS-C2950-24
(RC32300)
processor
(revision
C0)
with
21039K
bytes
of
memory.
Processor
board
ID
FHK0610Z0WC
Last
reset
from
system-reset
Running
Standard
Image
24
FastEthernet/IEEE
802.3
interface(s)
63488K
bytes
of
flash-simulated
non-volatile
configuration
memory.
Base
ethernet
MAC
Address:
00D0.977C.4635
Motherboard
assembly
number:
73-5781-09
Power
supply
part
number:
34-0965-01
Motherboard
serial
number:
FOC061004SZ
Power
supply
serial
number:
DAB0609127D
Model
revision
number:
C0
Motherboard
revision
number:
A0
Model
number:
WS-C2950-24
System
serial
number:
FHK0610Z0WC
Configuration
register
is
0xF
为交换机改名为SOHO-Switch,设置交换机远程登录密码为cisco:
Switch#conf
t
Enter
configuration
commands,one
per
line.
End
with
CNTL/Z.
Switch(config)#hostname
SOHO-Switch
SOHO-Switch(config)#line
vty
0
SOHO-Switch(config-line)#password
cisco
SOHO-Switch(config-line)#login
对ISP-Switch的配置与SOHO-Switch一致
(3)SOHO路由器的配置
(3.1)初始化配置:
用console口与终端设备相连,命令
show
version
查看版本信息等
Cisco
IOS
Software,1841
Software
(C1841-ADVIPSERVICESK9-M),Version
12.4(15)T1,RELEASE
SOFTWARE
(fc2)
Technical
Support:
http://www.jsfw8.com/techsupport
Copyright
(c)
1986-2007
by
Cisco
Systems,Inc.
Compiled
Wed
18-Jul-07
04:52
by
pt_team
ROM:
System
Bootstrap,Version
12.3(8r)T8,RELEASE
SOFTWARE
(fc1)
System
returned
to
ROM
by
power-on
System
image
file
is
“flash:c1841-advipservicesk9-mz.124-15.T1.bin“This
product
contains
cryptographic
features
and
is
subject
to
United
States
and
local
country
laws
governing
import,export,transfer
and
use.
Delivery
of
Cisco
cryptographic
products
does
not
imply
third-party
authority
to
import,export,distribute
or
use
encryption.
Importers,exporters,distributors
and
users
are
responsible
for
compliance
with
U.S.
and
local
country
laws.
By
using
this
product
you
agree
to
comply
with
applicable
laws
and
regulations.
If
you
are
unable
to
comply
with
U.S.
and
local
laws,return
this
product
immediately.
A
summary
of
U.S.
laws
governing
Cisco
cryptographic
products
may
be
found
at:
http://www.jsfw8.com/wwl/export/crypto/tool/stqrg.html
If
you
require
further
assistance
please
contact
us
by
sending
to
[email protected]
Cisco
1841
(revision
5.0)
with
114688K/16384K
bytes
of
memory.
Processor
board
ID
FTX0947Z18E
M860
processor:
part
number
0,mask
49
2
FastEthernet/IEEE
802.3
interface(s)
191K
bytes
of
NVRAM.
63488K
bytes
of
ATA
CompactFlash
(Read/Write)
Configuration
register
is
0x2102
(3.2)为路由器改名为SOHO-Router,设置进入特权模式的密码为class,设置远程登录密码为cisco
Router(config)#hostname
SOHO-Router
SOHO-Router(config)#enable
secret
class
SOHO-Router(config)#line
vty
0
SOHO-Router(config-line)#password
cisco
SOHO-Router(config-line)#login
(3.3)设置MOTD标语,关闭域名查找,对接口设置描述
SOHO-Router(config)#banner
motd
%
Enter
TEXT
message.
End
with
the
character
%
.
这是SOHO-router,未经授权,禁止进入
%
SOHO-Router(config)#no
ip
domain-lookup
SOHO-Router(config)#int
f0/0
SOHO-Router(config-if)#des
SOHO-Router(config-if)#description
?
LINE
Up
to
240
characters
describing
this
interface
SOHO-Router(config-if)#description
Connect
to
the
internal
network
SOHO-Router(config-if)#exit
SOHO-Router(config)#int
f0/1
SOHO-Router(config-if)#des
SOHO-Router(config-if)#description
Connect
to
the
external
network
用show
running
可以查看刚才的配置是否正确。
(3.4)在路由器上进行网络地址转换配置,允许内部网访问外部,但不允许外部网络能访问到内部的主机,服务器和打印机
新建access-list
10
,允许192.168.1.0
网络通过
SOHO-Router#conf
t
Enter
configuration
commands,one
per
line.
End
with
CNTL/Z.
SOHO-Router(config)#access-list
10
?
deny
Specify
packets
to
reject
permit
Specify
packets
to
forward
remark
Access
list
entry
comment
SOHO-Router(config)#access-list
10
permit
192.168.1.0
0.0.0.255
SOHO-Router(config)#access-list
10
deny
host
192.168.1.100
SOHO-Router(config)#access-list
10
deny
host
192.168.1.200
配置基于端口的网络地址转换
SOHO-Router#conf
t
Enter
configuration
commands,one
per
line.
End
with
CNTL/Z.
SOHO-Router(config)#ip
nat
inside
source
list
10
interface
FastEthernet0/1
overload
(3.5)保存配置的基本信息
用语句copy
running-config
startup-config
保存基本配置信息到初始配置文件startup-config中。
当然也可以保存基本信息到SOHO-Server中作为备份
SOHO-Router#copy
startup-config
tftp
Address
or
name
of
remote
host
[]?
192.168.1.100
Destination
filename
[SOHO-Router-confg]?
Writing
startup-config!!
[OK
-
758
bytes]
758
bytes
copied
in
3.066
secs
(0
bytes/sec)
此时查看SOHO-Server的config选项tftp下有了SOHO-Router-confg文件
图
4.1
4
测试及结果
(1)
内网主机访问外网http服务器
图
4.2
创建好后切换到模拟模式下看到在包进入SOHO-Router中时的源和目的ip为:
图
4.3
包在出去SOHO-Router中时的源和目的ip为:
图
4.4
可见网络地址转换成功。
其他主机到外网的访问也是如此,不一一截图了。
在试验几次后得到路由器的NAT转换表如下:
图
4.5
(2)
外网访问内网服务器
创建转发包
图
4.6
创建好后,进入模拟模式,发现包在SOHO-Router中不能转换到正确的地址。结果不能访问内网服务器。
至此,SOHO网络架构基本完成。
5、
项目实施总结
在整个设计过程中.通过网上找资料和使用Cisco公司发布Packet
Tracer
5.0网络模拟环境来完成了这次设计.
在设计过程中,经常会遇到这样那样的情况,就是心里想着这样的命令可以行得通,但实际接上模拟测试时,总是实现不了,因此耗费在这上面的时间用去很多。我觉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各种知识点,所以在这次课程设计过程中,我们了解了很多交换机和路由器的功能,并且对于其在网络的使用有了更多深刻的认识。
平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些交换机和路由器的命令,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各种命令映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。