第一篇:网络课程设计
中小型单位网络规划方案
中小型单位网络规划方案...............................................................................................................1 一. 概述.........................................................................................................................................2 二. 设计目标.................................................................................................................................2 三. 设计原则.................................................................................................................................2 四.用户需求分析............................................................................................................................3 五. 网络规划设计总体方案.........................................................................................................4 六. 设备数目与价格明细表.......................................................................................................12 七. 子网划分...............................................................................................................................13 八.推荐教材及主要参考资料.....................................................................................................13
一. 概述
激烈的市场环境,尤其在我国加入WTO后使中国的中小企业日益暴露出自身的劣势.除了资金、技术、人才、渠道建设、营销等方面外,中小企业还存在经营管理低效、信息获取落后,IT应用程度普遍低下的现象,很难适应信息化社会的发展。为提高企业竞争力,需要实现企业信息化,中小型规模局域网建设的成了企业提高竞争力信息化工具。
面向21世纪计算机网络发展的总体目标就是要在各个国家、进而在全球建立完善的信息基础设施。信息基础设施将改变人们的生活、学习、工作、人际交往的方式,减轻人们的工作负担,推动社会的进步。网络体系结构是计算机之间相互通信的层次,各层中的协议以及层次之间接口的集合。网络协议是计算机网络和分布系统中相互通信的对等实体间交换信息所必须遵守的规则集合。采用TCP/IP协议集成的网络体系结构是计算机网络体系结构的主流,并在改进和发展中。协议工程是一门研究如何设计和构造协议规范,以及如何把所设计和构造的协议规范快速、准确、低成本地转化为可执行代码的科学。1993年美国制定了信息高速公路(即国家信息基础设施NII)后,各国都相继规划和实施NII计划。计算机网络发展有两个重要的技术,即微电子技术和光技术。当前网络发展的趋势是电信网、电视网、计算机网三种网络的合一。在三网合一中,采用Internet体系结构和IP协议时应提高网络的可靠性,目前数据网的可靠性达99.996%。
二. 设计目标
1.配合当前的单位发展情况,完成单位内部Internet的配套基础建设,将单位的信息资源利用计算机网络连接起来,形成一个流畅、合理、可靠、安全的单位网。2.通过网络使单位人员能及时了解国内外动态,建立新的通讯方式和环境,提高工作效率。
三. 设计原则
1.单位需求为前提原则:坚持以单位具体需求为单位网信息系统方案设计的根本和前提,同时,也要注重源于需求又高于需求的原则,注意用专业化的技术思想来进行单位网的规划与设计,确保单位网的实用性、先进性和便于扩展性。
2.设备选型兼顾原则:满足单位对现代化管理手段的要求;满足单位网建设及互联网的要求;所选设备在国际上保持技术先进性;供应商有良好的商业信誉和优质的售后服务。3.坚持标准原则:一切单位网设计和施工,均要严格遵循国际和国家标准。统一规划,分步实施。单位网的实现要求通讯协议、网络平台等应具有世界性的开放性和标准化的特点,并且应采用统一的网络体系结构。
4.坚持先进的成熟的技术原则:采用通用的、成熟的技术方案可以降低建设成本、减小设计、施工和使用难度、缩短建设周期。有利于保护投资,并且有利于单位网的维护和升级。选择品质最好的设备不一定是最佳选择,成本因素也是一个不容忽视的问题,将品质与成本实现最佳匹配。
5.坚持规范布线,考虑长远发展原则:
布线系统使网络的重要基础,布线系统的好坏是衡量一个网络好坏的非常重要的标志。布线系统不合理将降低网络的可靠性,使网络难以管理和维护,所以必须采用标准的综合布线系统。
6.坚持易于使用和管理原则:
单位网的各种软件应用项目必须易于使用,对最终用户的起点要求不能太高,一般以熟练使用操作系统、办公软件系统、浏览器和电子邮件系统为宜;系统的日常管理和维护工作要方便、简易。网络拓扑结构一经配置确定,不应轻易更改。
7.坚持可扩展性原则:考虑现有网络的平滑过度,使单位现有陈旧设备尽量保持较好的利用价值;选用产品应具有最佳性价比,又要应充分考虑未来可能的应用,具有高扩展性。
四.用户需求分析
龙翔实业需要建立网络以提高办公效率,该单位共有7个部门,分别为:人事部,财务部,研发部,办公室,后勤部,业务部,生产部。每个部门均需要建立内部网络,同时都需要和Internet相连。各部门对上网的计算机的需求如下:
生产部:60台 研发部:50台
其余5个部门均为30台。
生产部主要使用内网;业务部主要使用外网,要求上网速度快;财务部主要使用外网,除要求上网速度快之外,还要求保密程度高;研发部主要使用内网,要求计算机工作速度快。其他各部门没有特殊要求。
目前已经申请到一个B类网络:141.18.0.0/16。
请根据该单位的特点和要求,帮助该单位设计一个网络,具体要求如下:
1、针对需求单位的特点,写出可行性报告。
2、对目前广泛流行的各种计算机网络进行比较,根据单位的实际情况选出合理方案,给出拓扑图,并力求做到最优。
3、根据需要进行子网划分,并为每一个部门分配IP地址段。
4、给出设备清单,做好预算。
5、要保证网络的健壮性、可维护性、可扩展性,给出相应的措施。
五. 网络规划设计总体方案
(一)单位网络拓扑图
(二)设计方案
1.网络层次结构
网络结构采用分层式设计,共分三层:核心层,工作组层,桌面接入层。分层设计可以使整个网络自上而下具有很大的弹性,便于策略的维护和实施。](1)核心设备
①设备名称:DCS-3926S可堆叠智能安全接入交换机
②基本介绍: 3926S具有24个10/100Mbps自适应RJ-45端口和2个模块扩展插槽(可选插百兆模块和千兆模块)可千兆或百兆聚合上联至汇聚层交换机或者核心层交换机。
③主要特征:
★高密度和灵活的堆叠
DCS-3900S系列的堆叠带宽可支持2G到4G,并且支持简单堆叠、标准堆叠、超级堆叠和混合堆叠。简单堆叠成本最低。堆叠带宽2G;标准堆叠使用堆叠模块,其带宽扩充至4G;还可以用千兆电口或千兆光口做超级堆叠,可避开堆叠线缆的限制,堆叠带宽也是4G;同时DCS-3900S系列可以和DCRS-5600S系列、DCRS-5526S交换机做混合堆叠。
★强大的ACL功能
作为新款的L2/4交换机,DCS-3926,S系列交换机提供了完整的ACL策略,可根据源/目的IP地址、源/目的MAC地址IP协议类型、TCP/UDP端口号、IP Precendence、时间范围、ToS对数据进行分类,并进行不同的转发策略。通过ACL策略的实施,用户可以在接入层交换机过滤掉“冲击波”、“震荡波”、“红色代码”等病毒包,防止扩散和冲击核心设备
★卓越的安全特性
全面的受控组播方案DMCP,可以对源和目的进行安全控制,完整实现了在接入层网络中基于IGMP源端口和目的端口的检查技术,可完全限制合法组播在网络中的稳定传输,有效控制组播建立的整个过程,保障了正常合法的组播应用的稳定运行;率先支持对特征复杂(64字节)的应用流量的访问控制,让用户可以在各种网络的环境中应对出现复杂情况;监控pingSweep等攻击行为,安全防扫描,并采取防攻击措施,全面保护交换机和服务器等网络设施的安全。
★更完美的性价比(DCS-3926S-G)
大多数接入交换机通过1个千兆光模块上联,为了提高产品的性价比,DCS-3926S-G固化了一个千兆光模块,可以为用户节约开支。
★丰富的QoS策略
DCS-3900S系列交换机为每个端口提供了4个优先级队列,可根据端口、802.1p、ToS、DSCP、TCP/UDP端口进行流量分类,并分配不同的服务级别,支持WRR/SP等调度方式,为语音/数据/视频在同一网络中传输提供所要求的不同服务质量。
④技术参数
★接口形式:24个10/100M端口+ 1个SFP千兆光口/堆叠口
★可选扩展模块:百兆电/光口模块;千兆电/光口模块;堆叠模块
★堆叠:支持标准堆叠,超级堆叠,混合堆叠。堆叠环境下,支持跨交换机的端口聚合、端口镜像、QoS、ACL
★生成树:802.1D(STP)、802.1w(RSTP)、802.1s(MSTP)
★组播协议:IGMP Snooping&Query
★QoS:每端口4个队列,支持802.1p,ToS,应用端口号,DifferServ,支持WRR/SP等调度方式
★ACL:支持标准ACL和扩展ACL,支持IP ACL、MAC ACL、IP-MAC ACL,支持基于源/目的IP地址、源/目的MAC地址、IP协议类型、TCP/UDP端口号、IP Precendence、时间范围、ToS对数据进行过滤。
★端口聚合:支持802.3ad,最大可支持6组trunk,每trunk可到8个端口,支持基于目的MAC的负载均衡。
★IEEE802.1x:支持基于端口和MAC地址,支持神州数码802.1x整体解决方案,可以实现按时长/流量计费,可以实现用户帐号、密码、IP、MAC、VLAN、端口、交换机的严格绑定,可以防止代理软件,防止PC克隆,对客户发送通知/广告,上网时段控制,基于用户动态实现VLAN授权和带宽授权,可基于组策略实现动态IP地址分配而不必使用DHCP服务器等。
★认证:支持RADIUS ★端口镜象:支持。
★支持的网络标准:IEEE802.1D IEEE 802.3 IEEE 802.3u IEEE802.3ad IEEE 802.3x IEEE 802.3z IEEE802.1Q IEEE 802.1p IEEE 802.1x IEEE802.1w IEEE 802.1s等堆叠。
(2)工作组设备 ①设备名称:DCS-3726S 24口+2槽可堆叠网管10/100/1000M以太网交换机
②基本介绍:DCS-3726S是神州数码网络专为校园网互连设计的一款可网管交换机,可堆叠使用提供很高的端口密度,适用于企业大中型网络组网。它具有24个10/100Mbps自适应RJ-45端口和2个模块扩展插槽(可选插百兆光纤模块或千兆模块),可千兆或百兆上联至骨干网。DCS-3726S提供有端口限速功能,使用灵活方便。该交换机还可以下接最多24台其他交换机实现级联以扩展端口数目。它还支持VLAN、组播、优先级、端口聚合和端口镜像等实用网络功能,而且还提供了18Gbps的背板带宽,实现了数据的全线速转发,消除了网络瓶颈,为多用户接入提供了高性能的网络解决方案。
③主要特征:
★24个10/100Base-TX端口
DCS-3726S具有24个固定的10/100Base-TX端口。这些端口均支持Nway标准,可支持10/100Base-TX自适应及全双工/半双工。
★2个千兆端口
DCS-3726S交换机前面板具有2个插槽,可选插1口百兆模块或千兆模块,千兆模块可支持1000Base-SX、1000Base-LX和1000Base-T标准。所有模块支持流量控制和全双工,可处理大量数据。千兆端口可将部门网络与千兆主干网络连接起来,也可以连接高性能服务器,使得更多用户可以同时访问。
★100Base-FX模块
DCS-3726S插槽可以选插1口100Base-FX(SC)短波或长波模块,运行于全双工模式下,可以应用于高电磁干扰或通信保密性要求高的场合,通常应用于远距离传输。
★大型堆叠,多达 192个10/100Base-TX端口
DCS-3726S交换机最多可以堆叠8台设备,堆叠组最多可达192个10/100Base-TX端口,使得网络可以灵活扩展,并能够有效减少网络层次,便于大型社区内大量用户的互联接入。
④技术参数
★端口聚合(Port Trunking)
DCS-3726S支持端口聚合功能,同时支持802.3ad的标准。可将2/3/4个10/100Base-TX端口聚合成一条干路,每条干路支持全双工模式,交换机最多支持6组端口聚合。
★生成树(Spanning Tree)
DCS-3726S支持多种生成树功能,如:802.1D、802.1w、802.1s。Spanning Tree协议可使LAN自动检测并解决环路问题,可提供链路的备份。802.1D为基本的Spanning Tree协议,缺省操作模式是开启状态。DCS-3726S同时支持802.1w快速生成树模式,可使收敛时间缩短至几秒内。IEEE 802.1s可使IEEE Std 802.1Q的VLAN加入到多个生成树中,即提供spanning tree per VLAN的功能。
★虚拟网络(VLAN)
支持虚拟网络(VLAN)标准来控制广播域和网段流量,可以提高网络性能、安全性和可管理性。DCS-3726S支持IEEE 802.1q VLAN标记,可基于端口地址来划分VLAN,最多256个VLAN。通过控制口或网管工作站可以轻松完成结构和设备的添加、移动和更换。可根据最大网络流量和网络安全性来划分虚拟网络。DCS-3726S同时支持GVRP协议,可实现VLAN组成员动态注册,支持基于端口的VLAN划分管理方式,支持动态VLAN。生成树:802.1D(STP)、802.1w(RSTP)、802.1s(MSTP)
★MAC地址过滤:自动学习; 动态和静态地址过滤
★管理功能 : 端口安全 ; Bootp、DHCP客户 ; 配置文件上载 /下载 ; TFTP固件升级
(3)桌面接入层设备
①设备名称:神州数码 DCS-1024普通交换机
②技术参数
★交换机类型:普通交换机
★传输速率(Mbps):10Mbps/100Mbps
★网络标准:IEEE802.3 10BASE-T 以太网;IEEE802.3u 100BASE-TX 快速以太网;IEEE802.3x流量控制
★网络协议:CSMA/CD
★ 接口介质:10BASE-T: 2对3,4或5类非屏蔽双绞线(UTP)(≤100m); EIA/TIA-568 100欧屏蔽双绞线(STP)(≤100m)。100BASE-TX: 2对或4对5类非屏蔽双绞线(UTP)(≤100m); EIA/TIA-568 100欧屏蔽双绞线(STP)(≤100m)
★传输模式:全双工/半双工自适应
★其他技术参数:数据传输速率:以太网:10Mbps(半双工);20Mbps(全双工)快速以太网:100Mbps(半双工);200Mbps(全双工)拓扑结构:星型
MAC地址表:8K 最大包过滤/转发率:每端口14,880pps(10Mbps);每端口148,800pps(100Mbps)RAM缓冲:2.5M
2.链路设计(包括综合布线详细说明)
(1)财务部:核心交换机DCS-3926S通过一个千兆口有1000BASE-T4对超五类STP下连服务器,通过一个千兆口由1000BASE-SX多模光纤下连财务部各科室,管理人员办公室的工作组交换机,通过一个千兆口由1000BASE-LX多模光纤下连业务部的工作组交换机,通过一个百兆端口由100BASE-FX多模光纤下连办公室工作组交换机,通过一个百兆端口由100BASE-FX多模光纤下连教工宿舍区工作组交换机。
(2)业务部:工作组交换机DCS-3726S 通过超五类STP下连桌面接入交换机DCRS-1024。DCRS-1024通过超五类UTP接入PC。
(3)办公室:工作组交换机DCS-3726S 通过100BASE-FX下连桌面接入交换机DCRS-1024。
DCRS-1024通过超五类UTP接入摄象机和投影仪。
(4)研发部:工作组交换机DCS-3726S 通过100BASE-FX下连桌面接入交换机DCRS-1024。DCRS-1024通过超五类UTP接入PC。
(5)后勤部:工作组交换机DCS-3726S 通过100BASE-FX下连桌面接入交换机DCRS-1024。DCRS-1024通过超五类UTP接入PC。(6)人事部:工作组交换机DCS-3726S 通过100BASE-FX下连桌面接入交换机DCRS-1024。DCRS-1024通过超五类UTP接入PC。(7)生产部:工作组交换机DCS-3726S 通过100BASE-FX下连桌面接入交换机DCRS-1024。DCRS-1024通过超五类UTP接入PC。3 路由设计
采用神州数码DCR-2501V 多协议模块化路由器,确保网络的安全性和可靠性。
①设备名称:DCR-2501V 多协议模块化路由器
②基本介绍:神州数码DCR-2501V路由器是神州数码网络推出的固定配置语音路由器,性能稳定可靠。DCR-2501V提供了1个console端口,1个10Base-T以太网口,1个辅助(AUX)端口,2个高速广域网串口,2路FXS语音端口;DCR-2501V路由器支持常用的广域网协议和路由协议,支持VoIP协议,支持内置强大的防火墙和NAT功能,为用户提供了更加高速、安全、稳定可靠、方便的网际互连设备,非常适用于中小企业、政府等远程分支机构语音和数据互联或Internet接入等。
③主要特征:
(DDR)功能;支持IP Unnumbered,从属IP和ARP代理功能;支持多种队列算法以保证服务质量(QoS)的提供;支持Novell IPX路由协议;支持路由再分配功能;高稳定性;提供背对背(Back-to-Back)连接方案,可用于检测路由器的功能
④技术参数
★标准配置
▼ 1个10 Base-T以太网口
▼2个高速串口,支持RS232、V.24、V.35、X.21、EIA530A等电气标准
▼ 2路FXS语音端口
▼1个Console端口
▼1个辅助(AUX)端口,可进行远程配置和拨号备份
▼内存:DRAM 16 M,可扩充至32M;Flash Memory 2 M,可扩充至4M ▼CPU:32位RISC处理器(MPC860 50MHz)
★协议和标准
▼以太网接口标准:IEEE802.3 10Base-T标准
▼广域网接口标准:RS232、V.24、V.35、X.21、EIA530A等电气标准
▼支持VoIP标准:支持H.323协议栈,支持 G.729、G.723.1、G.711等多种语音编码压缩标准,支持T.38传真协议和Bypass方式的传真应用。
▼帧中继标准:ITU-T Q933Annex A、ANSI T1.617Annex D、兼容CISCO标准
▼广域网协议:HDLC、PPP、MP、Frame-Relay(DTE/DCE)、X.25(DTE/DCE)▼路由协议:静态路由、RIP(包括RIP v1、RIP v2)、OSPF、Novell IPX路由协议
▼用户安全认证协议:PAP、CHAP、MS-CHAP、RADIUS、TACACS+
★管理维护 提供Show、Ping、TraceRoute、Debug等命令,用于察看、测试网络的可达性,诊断网络故障;支持Telnet远程配置与管理;支持SNMP、RMON等网络管理协议;支持HTTP协议,用户可以通过Web界面对路由器进行配置、维护
4.安全设计
可启用标准或扩展访问控制列表进行数据报或数据段控制,在内外网口设置一台DCFW-1800S-L 小型企业级百兆防火墙保证整个网络抵御来自内,外网的攻击。
①设备名称:DCFW-1800S-L 小型企业级百兆防火墙
②基本介绍:神州数码DCFW-1800S-L防火墙专为中小企业分支机构、SOHO办公、中小学校的网络而设计,以功能实用、接入灵活、配置方便快捷、性能稳定为设计原则,使复杂的网络安全实施得以简化。它充分考虑中小型用户特点,支持VLAN环境、支持PPPOE与DHCP,集成防火墙、VPN,内容过滤,为中小企业的网络安全实现提供了经济的解决方案。
③主要特征:
★让中小型用户、分支机构享受无以伦比的性价比
★轻松部署,支持PPPoE协议,提供ADSL/ISDN接入方式
★设置简洁,通过浏览器可以轻松完成功能配置
★支持DHCP服务器功能,节省用户网络管理投资,支持无地址接入
★集成VPN,可以进行隧道认证及数据加密,保护了企业机密同时降低了沟通成本
★集成内容过滤、邮件过滤,防止非法信息、恶意脚本及垃圾邮件;集成防拒绝服务网关,提供攻击检测及攻击抵御
★支持用户认证;支持应用层日志及加密日志存储,有效审计进出网络的敏感信息
④技术参数
★工作模式:路由、透明、NAT
★内容过滤:URL、邮件、指令、ActiveX/Java, 诡异木马探测
★支持:网络安全域结构体系;PPPoE协议;DHCP Relay,DHCP Server;防拒绝服务网关;VPN功能
★最大并发连接数:300,000 ★网络吞吐量:150M ★VPN隧道数:10 ★VPN拨号用户:10 ★策略数:300
5.管理设计(包括详细管理软件说明)
①设备名称:神州数码LinkManager ②基本介绍:LinkManager 网管系统是一套基于Windows NT平台的高度集成、功能较完善、实用性强、方便易用的全中文用户界面网络管理系统。它是神州数码网络有限公司根据中国用户的实际需求,遵循ISO网络管理模型的五大功能域(性能管理、配置管理、故障管理、计费管理及安全管理)的架构,自行组织研发出来的一套具有自有知识产权的网管系统。LinkManager 具有既面向指定设备,又支持通用网络设备的“垂直+水平”的管理特性。也就是说,它能够对神州数码网络有限公司推出的具有SNMP功能的网络设备提供齐全的设备管理和功能管理,同时也能够良好地支持其他任何具有通用SNMP功能的网络设备,提供整个网络的拓扑结构和常用网络管理信息。
③主要特征:
★提供两套视图-物理视图及逻辑视图,可满足操作员的不同需求:
▼对于希望了解当前网络拓扑逻辑结构的操作员,系统采用傻瓜方式,以默认形式为用户自动绘制出整个网络的逻辑视图,不需用户干预。
▼对于只想掌控自己关心的网络设备的操作员,系统采用DIY 方式,支持操作员按物理连接或自己随意的自组物理视图;
▼自动绘制出的网络拓扑图还可以通过另存为的方式供操作员修改;
★提供两种设备添加方式,增强操作员在自组物理视图时的DIY手段:
▼强大的自动发现功能,具有对第二层、第三层及应用层设备的自动识别能力,能准确定位神州数码品牌的网络设备;
▼按操作员兴趣手动添加连入网络的设备,支持操作员选择不同的设备类型;
★提供两种视图的层次结构组织,纹理清晰:
▼ 在自动方式中,逻辑视图的层次结构由各层子网、网络设备及其设备特性构成;
▼ 在 DIY方式中,物理视图的层次结构由子图、网络设备及其设备特性构成;
★提供网络设备的图形标记,用作设备的属性、特征、状态标识:
▼各被管设备类型在视图中都拥有自己的属性标志图符;
▼ 各被管设备在视图中都拥有自己的三色状态标识;
▼ 各神州数码品牌的网络设备都拥有逼真的面板图,真实反映接口状况及实际连接;
▼ 在两个视图中,各设备的图形标识具有一致性;
★友好的用户界面
▼周到的拓扑图发现方式适合操作员的不同需求;
▼采用操作员熟悉的Windows界面风格及操作方式;
▼按照中国用户的思维习惯组织的管理内容;
▼适当的产品定位,高度的集成化,将功能统一在同一界面内,可使操作员免于因功能模块散乱而引起的无所适从。
④技术参数
★硬件平台
▼ Intel Pentium或以上的处理器;
▼64M或以上的内存;
▼带有SVGA图形卡的800*600显示器,现仅支持小字体;
▼ 剩余磁盘空间:50MB以上;
▼网络适配卡;
▼ 光驱。
★网络平台
▼安装并配置了TCP/IP协议;
▼ 以神州数码网络有限公司的网络设备为主,同时兼容其它厂家SNMP设备。▼ 能够为下述神州数码网络有限公司的网络设备提供齐全的设备管理和功能管理:
以太网交换机包括DCRS-7515、DCRS-7508、DCRS-7504、DCRS-6512、DCS-3652、DCS-3628S、DCS-3426、LRS-6706G/LRS-6626、DES-6000、DES-3326、DES-3624i、DES-3225G、DHS-3226;路由器包括DCR-3660、DCR-2650、DCR-2630、DCR-1750、DCR-1720、DCR-2511、DCR-2509、DCR-2501。
★操作系统平台
可选以下操作系统平台:
▼ Microsoft Windows NT 4.0(Workstation或Server,Service Pack 6);
▼ Microsoft Windows 2000(Professional或Server)。
★其它支持软件
▼Microsoft Internet Explorer 4.0版本或以上版本,必须预先安装;
▼Acrobat Reader 4.0版本或以上版本,必须预先安装。
6.其他设备
①设备名称:联想万全T168 G3 S930 512/73C服务器
②基本介绍:
★采用新一代64位双核技术的英特尔?奔腾?D处理器930, 3.0GHz主频,2*2MB二级缓存,800MHz前端总线
★512M ECC DDR2-667内存
★73G 易插拔U320 SCSI 硬盘
★中文版系统安装和故障排除指南
★PS/2接口键盘和光电鼠标
7.可扩展性设计
核心,工作组,接入设备都预备有可扩展插槽和端口,方便日后系统升级;核心设备留有冗余电源,整个系统可提供不间断的服务。
六. 设备数目与价格明细表
(一)线类价格表
设备名称 设备数目 设备价格(/M)
Commscope 12芯室外多模铠装光缆(62.5/125)750 m 49元/M 一舟 STP4对超五类(100米/箱)200M 430元/箱
一舟 UTP4对超五类(100米/箱)2500M 200元/箱
总计:--------42610元
(二)设备价格表
设备名称 设备数目 设备价格(/台)
神州数码 DCS-3926S交换机 1台
25000元 神州数码 DCS-3726S交换机 5台17800元
神州数码 DCS-1024交换机 17台930元
神州数码DCR-2501V 多协议模块化路由器 1台23000元
神州数码DCFW-1800S-L 小型企业级百兆防火墙 1台11000元
联想万全T168 G3 S930 512/73C服务器 5台11999元
总计: 89729元
(三)模块等其他价格
设备名称 设备数目 设备价格(/块)
MS-3926S-1GT 1口100/1000Base-T千兆模块 1 4,950元
MS-3726S-1MFC 1口100Base-FX多模光纤模块 4 3,750元
DCS-3726SGBIC-LX1000Base-LX GBIC接口卡模块 3 9,950元
MS-3726-S堆叠模块 1 2450元
LinkManager-30-250N(250节点,Windows NT/2000平台,3.×版本)1 15600元
WINDOWS 2000 SEVER单击版 3 5000元
总计: 82850元
工程总造价(不含施工费用)
总计:215189元
七. 子网划分
八.推荐教材及主要参考资料
[1] [2] 谢希仁.计算机网络(第五版).电子工业出版社,2008.1 Andrew S Tanebaun.Computer Networks(Fourth Edition).Pearson Education,2002.8 [3] Andrew S Tanebaun,熊桂喜等译.Computer Networks(Third Edition).Prentice-Hall,1996.清华大学出版社,1998.7 [4] [5] [6] 谢希仁.TCP/IP协议族(第3版).清华大学出版社,2006.4 马海军.TCP/IP协议原理与应用.清华大学出版社,2005.3 Douglas E Comer.Internetworking with TCP/IP.Volume I: Principles, Protocols, and Architecture.1991 Volume II: Design, Implementation, and Internals.1991 Volume III: Client-Server Programming and Applications.1993 [7] James F Kurose and Keith W Ross.Computer Networking: A Top-Down Approach Featuring the Internet.Addison Wesley,2001
第二篇:网络课程设计
湖南第一师范学院信息科学与工程系
题 目
学生姓名学 号专业班级指导教师 课程设计报告
中小型企业网络搭建 王欢 计网(1)班 王建军、李科峰
2010 年 6 月 8 日
03080130822 08
中小型企业网络搭建
一.需求分析 1.二.网络结构设计
1.网络技术选型
根据需求,采用以太网技术(快速以太网、交换式以太网、千兆位以太网)进行组网。
以太网技术:以太网的技术成熟、成本较低、互操作性强、易于使用和管理、可扩充性强.设计中利用到的其他技术如下:
VLAN技术:控制广播风暴、提高网络整体安全性、网络管理简单、提高性能等优点。
第三层交换技术:一方面支持VLAN之间通信;另一方面交换技术减少了数据包的碰撞问题。支持VLAN的交换机配合第三层功能不但具有很高的性能,而且具有充分的弹性,因此,是最好的选择 网络的冗余技术:提高网络的可靠性;链路冗余既可提高可靠性,又能均衡负载; 缺点:不适应重负荷应用环境,实时性差,存在冲突域; 动态路由协议OSPF技术: STP技术:
以太网通道技术:
广域网技术(PPP协议):
2.网络拓扑设计
3.命令配置
1.基本信息配置
SW1的基本信息配置(SW2、RT1、RT3的基本配置与SW1相同)Switch>enable //进入特权模式
Switch#config terminal //进入全局配置模式 Switch(config)#hostname SW3 //配置主机名
SW1(config)#no ip domain-lookup //禁用域名查找
SW1(config)#line console 0 //进入Console线路模式
SW1(config-line)#logging synchronous //配置Console信息显示自动换行 SW1(config-line)#no login //配置口Console登录不认证 SW1(config-line)#privilege level 15 //配置为最高特权级别 SW1(config-line)#line vty 0 4 // 进入Vty线路模式 SW1(config-line)#no login //配置Telnet登录不认证
SW1(config-line)#privilege level 15 //配置为最高特权级别,enable不需要密码
//企业总部网络
2.二层网络全局配置(1)SW1的vlan配置
SW1(config)#vtp mode transparent//配置为透明模式 SW1(config)#vlan 8-12 SW1(config-vlan)#exit SW1#show vlan //查看vlan信息
(2)STP根网桥配置
SW1(config)#spanning-tree vlan 8 priority 0 SW1(config)#spanning-tree vlan 10 priority 0 SW2(config)#spanning-tree vlan 11 priority 0
(3)STP备份根网桥配置
SW1(config)#spanning-tree vlan 8 priority 4096 SW1(config)#spanning-tree vlan 11 priority 4096 SW2(config)#spanning-tree vlan 10 priority 4096 //按vlan编号来部署STP实现负载分担:SW1为vlan 8和vlan10的根网桥,vlan 11的备份根网桥;SW2则为vlan8和vlan10的备份根网桥,vlan 11的根网桥。
3.二层网络接口配置
(1)交换机SW1-SW2间链路捆绑
SW1(config)#interface range fa0/1-2 //以太网接口1和2,注意1后面要空格 SW1(config-if-range)#switchport trunk encapsulation dot1q SW1(config-if-range)#switchport mode trunk SW1(config-if-range)#switchport trunk allowed vlan all SW1(config-if-range)#channel-group 2 mode on//手动捆绑:组2 SW2(config)#interface range fa0/1-2 //以太网接口1和2,注意1后面要空格 SW2(config-if-range)#switchport trunk encapsulation dot1q SW2(config-if-range)#switchport mode trunk SW2(config-if-range)#switchport trunk allowed vlan all SW2(config-if-range)#channel-group 2 mode on//手动捆绑:组2
SW1#show etherchannel summary//查看以太网通道信息
(2)SW1的二层接口配置
SW1(config)#interface fa0/2 SW1(config-if)#switchport mode access SW1(config-if)#switchport access vlan 12 SW1(config-if)#spanning-tree portfast //配置成Portfast端口,加快收敛速度。
(3)SW2的二层接口配置
SW2(config)#interface fa0/10 SW2(config-if)#switchport mode access SW2(config-if)#switchport access vlan 10 SW2(config-if)#spanning-tree portfast //配置成Portfast端口,加快收敛速度。
SW2(config)#interface fa0/11 SW2(config-if)#switchport mode access SW2(config-if)#switchport access vlan 11 SW2(config-if)#spanning-tree portfast //配置成Portfast端口,加快收敛速度。
SW2(config)#interface fa0/12 SW2(config-if)#switchport mode access SW2(config-if)#switchport access vlan 11 SW2(config-if)#spanning-tree portfast //配置成Portfast端口,加快收敛速度。
(4)SW2的网管配置
SW2(config)#interface vlan 8 SW2(config-if)#ip address 192.168.8.130 255.255.255.128 SW2(config-if)#no shutdown SW2(config-if)#exit SW2(config)#ip default-gateway 192.168.8.129
SW1#show spanning-tree brief//查看STP简要信息
4.三层网络接口配置
(1)SW1的三层网络接口配置
SW1(config)#ip routing //启动三层交换机的路由功能 SW1(config)#interface vlan 8 //Vlan 8 的路由点
SW1(config-if)#ip address 192.168.8.129 255.255.255.128 SW1(config-if)#no shutdown SW1(config-if)#exit SW1(config)#interface vlan 10 //Vlan 10 的路由点 SW1(config-if)#ip address 192.168.10.1 255.255.255.0 SW1(config-if)#no shutdown SW1(config-if)#exit SW1(config)#interface vlan 11 //Vlan 11的路由点 SW1(config-if)#ip address 192.168.11.1 255.255.255.0 SW1(config-if)#no shutdown SW1(config-if)#exit SW1(config)#interface vlan 12 //Vlan 12的路由点
SW1(config-if)#ip address 192.168.12.1 255.255.255.0 SW1(config-if)#no shutdown SW1(config-if)#exit
SW1#show ip int brief //查看接口简要信息
(2)SW1-RT1的三层链路配置
SW1(config)#interface fa0/3 //上连接口:上连RT的E0/0 SW1(config-if)#no switchport //配置接口为三层接口 SW1(config-if)#ip address 192.168.1.1 255.255.255.248 SW1(config-if)#no shutdown
RT1(config)#interface ethernet 1/1 RT1(config-if)#ip address 192.168.1.2 255.255.255.248
RT1(config-if)#no shutdown
SW1#show ip interface brief //查看接口简要信息,查看接口是否配置成功。RT1#show ip interface brief //查看接口简要信息,查看接口是否配置成功。SW1#ping 192.168.1.2//ping 对端,检测链路是否连通。RT1#ping 192.168.1.1//ping 对端,检测链路是否连通。
5.边界网络对接(静态路由配置)
SW1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.2 RT1(config)#ip route 192.168.0.0 255.255.0.0 192.168.1.1
//企业分部网络
6.RT1的Loopback0配置、局域网接口配置及测试
RT1(config)#interface loopback 0 //配置回环接口 0 RT1(config-if)#ip address 192.168.0.1 255.255.255.255//配置回环接口的IP地址
RT1(config)#interface ethernet 1/2//配置局域网接口 RT1(config-if)#ip address 192.168.2.1 255.255.255.0 RT1(config-if)#no shutdown//开启端口 RT1(config-if)#exit
RT1#show ip int brief //查看所有接口的信息
7.RT3的Loopback0配置、局域网接口配置及测试
RT3(config)#interface loopback 0 //配置回环接口 0 RT3(config-if)#ip address 192.168.0.3 255.255.255.255//配置回环接口的IP地址
RT3(config)#interface ethernet 1/3//配置局域网接口 RT3(config-if)#ip address 192.168.3.1 255.255.255.0 RT3(config-if)#no shutdown//开启端口 RT3(config-if)#exit
RT3show ip int brief //查看所有接口的信息
8.RT1-RT3的广域网链路配置及测试 RT1(config)#interface serial 0/0 RT1(config-if)#clock rate 1000000 //DCE端配置时钟速率,1Mbps RT1(config-if)#bandwith 1000 //接口逻辑带宽,用于计算接口的开销值,单位kbps;在实际项目中,接口逻辑带 宽应配置成与接口物理带宽一致且两端的bandwith 必须一致。RT1(config-if)#encapsulation ppp //配置数据链路层封装 RT1(config-if)#ip address 192.168.0.1 255.255.255.252 RT1(config-if)#no shutdown //打开接口
RT1(config-if)#end
RT3(config)#interface serial 0/0 RT3(config-if)#bandwith 1000 //接口逻辑带宽,用于计算接口的开销值,单位kbps;在实际项目中,接口逻辑带 宽应配置成与接口物理带宽一致且两端的bandwith 必须一致。RT3(config-if)#encapsulation ppp//配置数据链路层封装 RT3(config-if)#ip address 192.168.0.3 255.255.255.252 RT3(config-if)#no shutdown RT3(config-if)#end
RT1#show ip interface brief //查看接口简要信息 RT3#show ip interface brief //查看接口简要信息
9.OSPF路由配置
(1)RT1的OSPF配置
RT1(config)#router ospf 1 //开启OSPF进程1,标识不同的OSPF的进程。RT1(config-router)#router-id 1.1.1.1 //手动配置OSPF Router-ID
RT1(config-router)#network 192.168.0.1 0.0.0.0 area 0//发布Loopback 0。这里的0.0.0.0是采用的反掩码形式表是,area 0表示骨干区域。RT1(config-router)#network 192.168.1.0 0.0.0.7 area 0 RT1(config-router)#network 192.168.0.4 0.0.0.3 area 0 RT1(config-router)#network 192.168.2.0 0.0.0.255 area 0 RT1(config-router)#passive-interface e2/1 //为业务网段配置被动接口 RT1(config-router)#passive-interface e1/1
(2)RT3的OSPF配置
RT3(config)#router ospf 1 //开启OSPF进程1,标识不同的OSPF的进程。RT3(config-router)#router-id 3.3.3.3 //手动配置OSPF Router-ID
RT3(config-router)#network 192.168.0.3 0.0.0.0 area 0//发布Loopback 0。这里的0.0.0.0是采用的反掩码形式表是,area 0表示骨干区域。RT3(config-router)#network 192.168.0.4 0.0.0.3 area 0 RT3(config-router)#network 192.168.3.0 0.0.0.255 area 0 RT3(config-router)#passive-interface e3/1 //为业务网段配置被动接口
3.子网划分及IP分配方案
4.网络服务器规划
三.网络设备选型 四.网络软件选型
第三篇:网络课程设计
南 华 大 学
网 络 安
题目:RSA加解密算法 姓名 学号:
导师: 全
非对称加密算法的实现
非对称密码系统即公钥密码系统,主流分为基于大整数分解难度,基于离散
一、设计内容、算法原理
对数计算难度和椭圆曲线公钥密码三类。本次实验主要介绍RSA、ELG加密。
二、RSA 1).RSA公钥密码算法原理和过程:
Alice要求Bob将信息m用RSA方法加密传送回来,Alice找到大素数p,q, 令n=pq, 取a>1满足(a,(n))1,再找d使得da1(mod(n)),然后
Alice将n、a作为加密密钥(公钥)发送给Bob, 这里p,q,d,(n)都是私钥,要求保密,用作解密。
Bob 将原文m< 这里大素数要求足够大,通常要求是大于100位的十进制数。有资料表明,几十位的素数构造的RSA公钥密码系统是不安全的。因为位数较多,加密效率就不 dd并将密文m(modn),aadadEA传送给 Alice。 得到原文 DA(EA)EA(m)mm(n)k1m(modn)够高,因此,通常用来加密对称密码的密钥,例如,加密序列密码的密钥。 Maple简介:Maple是一个具有强大符号运算能力、图形处理能力的交互式计算机代数系统,它可以进行各种科学计算和数学推理,它的高精度数值计算能力对于处理大数的计算和素性判定有其独特的功能。它适合于所有需要科学计算的人.。 RSA算法可以实现数字签名。B向A进行签名,则 1、B不能否认进行了签名 2、A不能篡改B的签名 设A(如网站)的公钥为EA,私钥为DA B(签名者)的公钥为 EB,私钥为DB,B的原文m, B用DB作用m , 得到DB(m),再用A提供的EA作用,得到 EA(DB(m))C,B将C和EB发给A, A收到后,先用DA作用于C再用EB作用 EB(DA(C))B不能否认进行了签名,因为AEB(DA(EA(DB(m))。)这时,m用B提供的EB算出;A不能篡改B的签名,因为B可以用A提供的EA和DB算出,而A不知道DB,改动后算不出上面等式。2)、RSA公钥密码算法程序流程 1、A的准备工作 (1)产生两个u到v位的随机数,如果是偶数,则加1,然后判别是否是素数,如果是,赋值给p,q(2)令n=pq, t=(p-1)(q-1);(3)找1amin{p1,q1} 满足(a,t)1,找一个不能整除t的素数,依次试除。 (4)解ax1(modt)相当于求解 tyax1,将 t,a辗转相除,得到 n利用P01,P1q1,PkqkPk1Pk2,x(1)Pn,再除以q1,q2,,qn,给d(5)将公钥 n,a发送给B 2、B的加密过程 t,再赋值(1) 原文m长度设为56位,远小于n,保证了(m, n)=1, 加密得到密文sm(modn),分am为十进制数字和字符串两种情况 (2)将密文s传送给 A。 3、A的解密过程 A收到s后,计算 先分别求解 dms(modn)dd得到原文m。直接计算速度太慢,且溢出,b1s(modp,)b2s(modq),然后利用孙子定理解同余式组 xb1(modp),xb2(modq),它的解xM1M1'b1M2M2'b2(modn)就是原文。 2反复利用 d[d]r来计算 m(modp)可以大大加快运行速度。 d3)、基于RSA算法的数字签名程序流程 B向阿A进行数字签名。只需A和B都拥有密钥生成、加密和解密程序。A运行密钥生成程序,将公钥EA ={n,a}发给B, 将私钥DA密。 B运行密钥生成程序,将公钥EB ={n1,a1}发给A, 将私钥DB保密。 B计算 签名m< A收到后,先计算DA(C)(C)d(DB)(ma1d1{p,q,d,(n)}保 {p1,q1,d1,(n1)}再计算C(DB)(modn)并m(modn1),d1a((DB))DBadadDB(n)k1再计算 DB(modn),)ma1a1d1m(n1k)得到签名m(modn1)1m。 三、ELG 四、设计过程、设计的特点和结果、心得 1)、密钥生成 选出一个大素数 p 选出 d 作为群G < Zp*, >中的一个成员,使得 1 d p 2 选出 e1作为群 G < Zp*, > 中的一个本原根 e2 e1d mod p C 2P e2r)mod p // C1和C2是密文 Public_key (e1, e2, p)// 公开宣布 Private_key d //保密 2)、解密 P C2(C1d)1] mod p // P 是明文 3)、证明 C2(C1d)1] mod p =P e2r)(e1dr)1 mod p = P 五、实现环境 Windows xp Maple13 + mapletoolbox+matlab 混合编程 六、编写的源程序代码 1、RSA_System RSA_SYSTEM.m function varargout = RSA_SYSTEM(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @RSA_SYSTEM_OpeningFcn,...'gui_OutputFcn', @RSA_SYSTEM_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end function RSA_SYSTEM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;X = imread('back.jpg'); subplot('position',[-0.00,-0.3,1.0,1.6]);imagesc(X);colormap(gray);axis image off; guidata(hObject, handles); function varargout = RSA_SYSTEM_OutputFcn(hObject, eventdata, handles)varargout{1} = handles.output; function primeP_Callback(hObject, eventdata, handles) function primeP_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function primeQ_Callback(hObject, eventdata, handles) function primeQ_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function phN_Callback(hObject, eventdata, handles) function phN_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function publicN_Callback(hObject, eventdata, handles) function publicN_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function PruducPrime_Callback(hObject, eventdata, handles) P=maple('nextprime(rand(10^120)())');Q=maple('nextprime(rand(10^120)())');N=P*Q; phN=(Q-1)*(P-1); set(handles.primeP,'String',char(P))set(handles.primeQ,'String',char(Q))set(handles.publicN,'String',char(N))set(handles.phN,'String',char(phN))set(handles.Private_Key,'Enable','on');set(handles.Selecte_String,'Enable','on');set(handles.SelecteNum,'Enable','on');%计算私钥d global d e e=2^16+1;format rat E=1/e;setmaple('e',e);setmaple('E',E);setmaple('n2',phN);setmaple('n',N); d=maple('convert(E,rational)mod n2');setmaple('d',d); function SelecteNum_Callback(hObject, eventdata, handles) [FileName,PathName,FilterIndex] = uigetfile;if FilterIndex~=0 global m im=importdata(strcat(PathName,FileName));is=isa(im,'cell');if is==0 m=csvread(strcat(PathName,FileName));set(handles.Num_Secret,'Enable','on');end if is==1 msgbox('请选择数字型文件!','警告:');end end function Num_Secret_Callback(hObject, eventdata, handles) fidout=fopen('密文.txt','w');global m for i=1:length(m)M=m(i); setmaple('m',M); C=maple('Power(m,e)mod n'); fprintf(fidout,'%snn',char(C)); end msgbox('恭喜!你已成功加密,产生文件为“密文.txt”','温馨提示:');set(handles.Num_CodeBreak,'Enable','on'); function Num_CodeBreak_Callback(hObject, eventdata, handles) %以下是解密过程 fidin=fopen('密文.txt');fidout=fopen('明文.txt','w'); while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if isempty(tline)==0 %若该行非空 midvar=sscanf(tline,'%f'); setmaple('C',tline); m=maple('Power(C,d)mod n') fprintf(fidout,'%snn',char(m)); end continue % 如果是非数字继续下一次循环 end fclose(fidout); msgbox('恭喜!你已成功解密,产生文件为“明文.txt”','温馨提示:');set(handles.Num_CodeBreak,'Enable','off');set(handles.Num_Secret,'Enable','off'); function Selecte_String_Callback(hObject, eventdata, handles) [FileName,PathName,FilterIndex] = uigetfile;if FilterIndex~=0 global path path=strcat(PathName,FileName); set(handles.String_Secret,'Enable','on');end function String_Secret_Callback(hObject, eventdata, handles) global path a=importdata(path,'%s');is=isa(a,'double');if is ~= 1 b=cell2mat(a);mm=double(b); fidout1=fopen('密文1.txt','w');for i=1:length(mm)M=mm(i); setmaple('m',M); C=maple('convert((Power(m,e)mod n),binary)');fprintf(fidout1,'%snn',char(C)); end msgbox('恭喜!你已成功加密,产生文件为“密文1.txt”','温馨提示:');set(handles.String_CodeBreak,'Enable','on');end if is==1 msgbox('请选择字符型文件!','警告:');set(handles.String_Secret,'Enable','off');end function String_CodeBreak_Callback(hObject, eventdata, handles) fidin=fopen('密文1.txt');fidout=fopen('明文1.txt','w'); while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if isempty(tline)==0 %若该行非空 midvar=sscanf(tline,'%f'); setmaple('C',tline); m=maple('Power(convert(C,decimal,binary),d)mod n'); m=double(m); m=char(m); fprintf(fidout,'%s',m); end continue % 如果是非数字继续下一次循环 end fclose(fidout); msgbox('恭喜!你已成功解密,产生文件为“明文1.txt”','温馨提示:');set(handles.String_CodeBreak,'Enable','off');set(handles.String_Secret,'Enable','off'); function Private_Key_Callback(hObject, eventdata, handles)global d set(handles.privateKey,'String',char(d)); function privateKey_Callback(hObject, eventdata, handles) function privateKey_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end %------function Open_Callback(hObject, eventdata, handles)uiopen; %------function Close_Callback(hObject, eventdata, handles)close(gcf); %------function ELG_Callback(hObject, eventdata, handles)ELG_SYSTEM delete(handles.RSA_SYSTEM); 2、ELG_System ELG_SYSTEM.m function varargout = ELG_SYSTEM(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename,...'gui_Singleton', gui_Singleton,...'gui_OpeningFcn', @ELG_SYSTEM_OpeningFcn,...'gui_OutputFcn', @ELG_SYSTEM_OutputFcn,...'gui_LayoutFcn', [] ,...'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end function ELG_SYSTEM_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;X = imread('key.jpg'); subplot('position',[-0.00,-0.4,1.4,1.7]);imagesc(X);colormap(gray);axis image off; guidata(hObject, handles); function varargout = ELG_SYSTEM_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; %------function Open_Callback(hObject, eventdata, handles) uiopen; %------function Close_Callback(hObject, eventdata, handles) close(gcf); %------function RSA_Callback(hObject, eventdata, handles) RSA_SYSTEM delete(handles.ELG_SYSTEM); function primeP_Callback(hObject, eventdata, handles) function primeP_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function public_ha_Callback(hObject, eventdata, handles) function public_ha_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end function Produce_PublicKey_Callback(hObject, eventdata, handles) function ProduecPublicKey_Callback(hObject, eventdata, handles) global xa p ha p=maple('m := proc(n)global a, q;for a do q := nextprime((rand(10^n))());if isprime(4*q+1)= true then break end if end do;4*q+1 end proc;m(150)');setmaple('p',p); set(handles.primeP,'String',char(p));xa=maple('rand(10^100)()');setmaple('xa',xa); ha=maple('2 &^ xa mod p');setmaple('ha',ha); set(handles.public_ha,'String',char(ha));set(handles.PrivateOut,'Enable','on');set(handles.Select_String,'Enable','on');set(handles.Select_Num,'Enable','on'); function Select_Num_Callback(hObject, eventdata, handles) [FileName,PathName,FilterIndex] = uigetfile;if FilterIndex~=0 global m im=importdata(strcat(PathName,FileName));is=isa(im,'cell');if is==0 m=csvread(strcat(PathName,FileName));set(handles.Code_Num,'Enable','on');end if is==1 msgbox('请选择数字型文件!','警告:');end end function Code_Num_Callback(hObject, eventdata, handles) fidout=fopen('密文.txt','w');global m for i=1:length(m)M=m(i); setmaple('m',M); k=maple('rand(10^150)()');setmaple('k',k);U=maple('2 &^ k mod p');v=maple('ha &^ k mod p');setmaple('v',v);V=maple('m*v mod p'); fprintf(fidout,'%sn',char(U));fprintf(fidout,'%snn',char(V));end msgbox('恭喜!你已成功加密,产生文件为“密文.txt”','温馨提示:');set(handles.Break_Num,'Enable','on'); function Break_Num_Callback(hObject, eventdata, handles) %以下是解密过程 fidin=fopen('密文.txt');fidout=fopen('明文.txt','w'); while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if isempty(tline)==0 %若该行非空 t1line=''; midvar=sscanf(tline,'%f'); t1line=tline; tline=fgetl(fidin); midvar=sscanf(tline,'%f'); setmaple('C1',t1line); setmaple('C2',tline); m=maple('convert(C2/C1 &^ xa, rational)mod p'); fprintf(fidout,'%snn',char(m)); end continue % 如果是非数字继续下一次循环 end fclose(fidout); msgbox('恭喜!你已成功解密,产生文件为“明文.txt”','温馨提示:');set(handles.Code_Num,'Enable','off');set(handles.Break_Num,'Enable','off'); %---Executes on button press in Select_String.function Select_String_Callback(hObject, eventdata, handles) [FileName,PathName,FilterIndex] = uigetfile;if FilterIndex~=0 global path path=strcat(PathName,FileName); set(handles.Code_String,'Enable','on');end %---Executes on button press in Code_String.function Code_String_Callback(hObject, eventdata, handles) global path a=importdata(path,'%s');is=isa(a,'double');if is ~= 1 b=cell2mat(a);mm=double(b); fidout1=fopen('密文1.txt','w');for i=1:length(mm)M=mm(i); setmaple('m',M); k=maple('rand(10^150)()');setmaple('k',k); U=maple('convert(2 &^ k mod p,binary)');v=maple('ha &^ k mod p');setmaple('v',v); V=maple('convert(m*v mod p,binary)');fprintf(fidout1,'%sn',char(U)); fprintf(fidout1,'%snn',char(V)); end msgbox('恭喜!你已成功加密,产生文件为“密文1.txt”','温馨提示:');set(handles.Break_String,'Enable','on');end if is==1 msgbox('请选择字符型文件!','警告:'); set(handles.Break_String,'Enable','off');end %---Executes on button press in Break_String.function Break_String_Callback(hObject, eventdata, handles) fidin=fopen('密文1.txt');fidout=fopen('明文1.txt','w'); while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if isempty(tline)==0 %若该行非空 t1line=''; midvar=sscanf(tline,'%f'); t1line=tline; tline=fgetl(fidin); midvar=sscanf(tline,'%f'); setmaple('C1',t1line); setmaple('C2',tline); % m=maple('Power(convert(C2,decimal,binary),d)mod n'); m=maple('convert(convert(C2,decimal,binary)/convert(C1,decimal,binary)&^ xa, rational)mod p'); m=double(m); m=char(m); fprintf(fidout,'%s',m); end continue % 如果是非数字继续下一次循环 end fclose(fidout); msgbox('恭喜!你已成功解密,产生文件为“明文1.txt”','温馨提示:');set(handles.Code_String,'Enable','off');set(handles.Break_String,'Enable','off'); %---Executes on button press in PrivateOut.function PrivateOut_Callback(hObject, eventdata, handles) global xa set(handles.Private_Key,'String',char(xa)); function Private_Key_Callback(hObject, eventdata, handles) function Private_Key_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end 附:RSA运行演示(ELG类似) 第1章 设计目的与要求 1.1设计目的 本设计专题是计算机应用专业的有关局域网组建与维护的一个重要环节,是本专业学生必须学习和掌握的综合实践课程。本实践课的主要目的是: (1)掌握如何根据实际情况对网络进行总体的规划和设计,从而满足实际需要; (2)掌握如何根据总体规划计算设备与器材的数量,从而做出前期预算并进行器材选购; (3)掌握如何对设备进行搭建和调试;(4)掌握如何安装系统,搭建网络服务器; 1.2设计环境 (1)windows Server2000(2)局域网 1.3主要参考资料 《局域网规划建设与维护》 《局域网组建与维护》 《局域网组建与管理教程》 《网吧及小型局域网与运营》 《局域网组建管理与维护》 《局域网组建与管理专家培训教程》 《局域网组建和管理入门与提高》 《计算机局域网使用技术》 《网吧组建与上网实战》 《电脑局域网全面上手》 1.4设计内容及要求 一、内容 1.根据实际情况对网络进行总体的规划和设计,从而满足实际需要。 2.根据总体规划计算设备与器材的数量,从而做出前期预算并进行器材选购。 3.对设备进行搭建和调试。4.安装系统,搭建网络服务器。5.测试。 二、要求 设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出课程设计报告。第2章 设计内容 2.1前期规划和设计 2.1.1规划(1)总体描述 网吧这个行业曾经一直遭人非议,而近期国家为了规范网吧的正常运作,引导这个行业的健康发展,已经在政策上对大中型网吧进行扶持,以便统一管理,所以现在的网吧规模和发展趋势也基本上是走大规模、正规化经营的线路。而网吧的这种经营路线,就决定了其自身必须拥有高速、稳定、安全的网络系统才能保持良好的发展。网吧是网络应用中一个比较特殊的环境。网吧中的节点经常同时不间断地在进行浏览、聊天、下载、视频点播和网络游戏,数据流量巨大,尤其是出口流量,来网吧消费的网民,上网的需求各异,应用十分繁杂。网吧的网络应用类型非常的多样化,对网络带宽、传输质量和网络性能有更高的要求。网络应用要集先进性、多业务性、可扩展性和稳定性于一体,不仅满足顾客在宽带网络上同时传输语音、视频和数据的需要,而且还支持多种新业务数据处理能力,上网高速畅通,大数据流量下不掉线、不停顿。这样的应用就要求网络设备具有丰富的网吧特色功能和兼顾和高度的稳定性和可靠性,保证能长时间不间断稳定工作,而且配置简单易管理易安装用户界面友好易懂,并且要具有优异的性价比。 网络是网吧运营的基石,网络品质的优劣直接影响到网吧经营状况。随着网络游戏、视频点播、在线娱乐等网络应用的层出不穷,网吧的网络流量与日俱增,庞大的数据流量以及较长的运营时间给网吧网络带来了巨大压力。网络测试数据表明:千兆网络的性能远远优于百兆,允许接入更多的用户终端,能够全面满足更多带宽密集型的网络应用需求。由此可见,强大的千兆网络将担当起为网吧提速的重任,并逐步取代百兆成为网吧应用的主流。 随着以太网芯片技术的突飞猛进,现在的PC主机都配置了千兆网络接口,使得网吧千兆到桌面也成为现实。但另一方面,对于网吧经营者而言,成本控制的重要性不言而喻,它将直接关系到网吧的赢利能力以及持续发展。(2)网络规划 1 既然人们对局域网的稳定性如此看重,那么网络的稳定性具体来说应有哪些方面的要求呢,换句话说究竟什么样的局域网才能称得上是稳定性很高的网络呢?其实网络运行能够具有以下特点,就能确保其有不错的稳定性了: 1.网络故障能够快速恢复 组建成功的局域网网络在长时间运行后,总会不可避免地出现一些故障。既然网络故障无法避免,那么如何在最短时间内将网络故障恢复到正常状态就显得非常重要了。毕竟,局域网网络每出现一次网络故障,都需要耗费几个小时、甚至几天才能将故障恢复正常的话,那么借助该网络进行的各项活动教学活动或办公活动都将不能稳定进行,那么这样的网络在关键时刻可能会给单位带来麻烦。相反,局域网网络要是在长时间运行后,偶然出现了网络故障,但网络故障能够在很短暂的时间内就能被恢复正常,而不影响单位正常举行各种活动时,那么这个网络就能算得上是稳定性比较高的网络。2.网络故障不能频繁出现 前面我们已经提到,网络故障总是无法避免的,但是对于一个稳定性要求非常高的局域网网络来说,肯定不能允许网络故障接二连三地出现。无论是什么类型的网络故障,一旦故障发生了,哪怕该故障能够在最短时间内被恢复,但它或多或少地还会对单位的正常教学或办公活动造成一定程度的影响。比方说,学校在举办远程教学活动或者企业举行在线视频会议时,只要网络连接发生短暂的掉线现象,哪怕是一秒钟的掉线,都会造成视频画面延迟、会议通话发生中断等现象,这些现象在一些重要活动中也会造成一些不良的影响;试想一下,在远程教学或视频会议活动进行过程中,如果频繁发生短时间的网络掉线故障的话,那么学校学生或企业员工看到的视频画面会不停地出现马赛克现象,听到的声音会有不小的噪音等,很显然这种现象是任何单位都无法人忍受得了的。要想让各种教学活动或办公活动在局域网中能够顺畅地进行下去,那么局域网网络连接肯定不能发生频繁掉线现象。3.能在连接状态下解决故障 许多局域网网络掉线现象都是由单点故障引起的,为了不让单点故障对整个局域网网络造成太大的影响,网络管理员在规划设计网络时,应该考虑对重要的网络设备进行冗余或备份操作,例如对局域网中的核心交换机、路由器进行双端口冗余,对物理连接线路进行双线路备份,甚至对电源也要进行冗余规划。一旦局域网对重要设备进行了冗余备份后,日后局域网某个位置即使出现了单点故障,网络连接仍然可能处于通畅状态,这样一来网络管理员就能在网络访问正常的情况下来解决单点故障了,这个时候利用该 3 网络举行的各种活动自然就不受影响了。其实,对于普通客户端用户来说,如果局域网中发生的单点故障能够在不影响网络访问的前提下被解决掉的话,那么这样的网络就可以认为是无故障的网络。对于小型网吧,由于其规模较小,我们可以采用客户机系统本机硬盘引导启动方式,网络为对等网,无需服务器,100M网络主干,选用普通SOHO型交换机就可以连接所有客户机。在网络接入方面,我们可以选择通过一条ADSL接入INTERNET。笔者认为上述的整个系统结构简单、性能稳定,成本适宜、安装方便、维护简单、性能稳定可靠、升级空间大,另外特别考虑到各种单机、局域网和互联网游戏发烧友的需要。主要网络设备:1个ADSL Mode、1台普通SOHO 宽带路由器+ 1台24口普通型交换机。 对于中型网吧,客户机可以采用PXE无盘引导启动方式,100M网络主干;对于主干网络上的交换机,我们可以选用可网管千兆交换机连接服务器和两台 24口普通型交换机,通过两台 24口普通型交换机将所有的工作站连接起来。在网络接入方面,我们可以选择通过一条ADSL方式接入INTERNET。对于整个网络结构,笔者认为上述整体系统结构相对简单、成本较低并且能提供最大限度地高速访问互联网,支持网络游戏。主要网络设备: 1个ADSL Modem、1台普通SOHO宽带路由器、1台可网管千兆交换机、2台24口普通型交换机。 对于大型网吧由于其规模较大,工作站较多,因此我们采用一台服务器引导50台左右的工作站成立专门以上网冲浪为主的服务区;另一台服务器引导另外50台工作站成立专门以游戏为主的服务区,在这其中所有PC机皆为无盘PXE启动方式。 在INTERNET接入方面,我们可以选择通过两条ADSL线路接入,每条线路分别作为两部分工作站的外网访问出口。对于主干线路上的交换机,我可以采用带两个千兆模块的网管型的交换机,它具有可以划分基于802.1Q的VLAN和基于端口的VLAN,而此方案在实际的应用中必须要设置VLAN才能实现。对与各工作组的交换机可以选用24口普通型交换机。对于整个网络结构,笔者认为上述整体系统性能稳定可靠、升级空间大并且最大限度地兼顾了上网冲浪和网络游戏两方面。2.1.2网络设计 拓扑结构: 路由器:具有WAN口测量路由功能,支持IP地址流量控制,内置高级防火墙,具IP过滤,域名过滤,MAC地址过滤等安全功能,带机数量为500。这里笔者的朋友选择的是思科LINKSYS RV082-CN。 核心交换机:由于整个网络采用二层网络构成,且PC机的数量在400台要求分区收费管理,这样对核心交换机的要求就高了。这里用的是时速科技SpeedNetworks NT系列网吧专用机SP 2400GM/NT。提供了24个10/100/1000M千兆RJ-45端口,2个SFP插槽,具有48Gbps背板带宽性能,足以满足400台以的网吧高速的性能要求。SP 2400GM/NT支持VLAN,支持端口汇聚功能,支持端口镜像功能,支持QoS功能,技持广播风暴控制,端口和MAC地址锁定功能,充分满足网络的各项配置要求。接入交换机:由于网络接入到桌面的有两种PC机型,一种是新采购的带有千兆网卡的PC机,采用的是时速科技SpeedNetworks NT系列网吧专用机SP 2400G/NT,有24个10/100/1000千兆RJ-45端口的普通型全千兆交换机直接千兆到桌面;一种是旧有的带百兆网卡的PC机,这部分是将原来TP-Link10/100M交换机换成时速科技SpeedNetworks NT系列网吧专用机SP 2402G/NT。有24个10/100M接入,2个千兆电口接上核心交换机。以提高网络速度并保持整个网络的兼容性(同一品牌的兼容性好一些)及协调性。 整体方案施完后,网吧内构成部分千兆到桌面网络结合百兆到桌面网络,在局域网性能方面整体网络性能提高,部分原有PC仍以百兆接入局域网络,在实现分区经营按不同 1、整个网络设计均以高速、稳定、经济为原则,为网吧创造更大的利益提供了保证。 2、整个网络设计和网络结构,层次分明,容易扩展。网吧业主不必为扩建或扩容接入线路而烦恼,最大化的保护原有的设备投资。 3、千兆骨干网络,提高网络整体性能。旧有的百兆到桌面,合理利用带宽比例。 4、千兆连接服务器,提高服务器的访问速度,有效避免网络瓶颈。 5、两层网络的千兆级联,增大了整个网络负载能力。2.2前期预算 网吧是为了赚钱,所以必须考虑成本的投入和效益的回收问题,因此也必须承担一些风险。除了政策及决策因素外,投资者对前期投入的了解也是非常重要的。这样才能在激烈的竞争中获胜。一般而言,国家规定新设立网吧需求计算机数量不得低于60台。而为了市场竞争需要,非常多业主会考虑开设达到100台甚至几百台规模的网吧。我们不妨以一家100台计算机网吧为例,做一个投资预算。 对于网吧PC,单价至少为3300元/台,100台PC外加一台收费机共101台机器,这样机器的总费用为101×3300=333300元。两台大功率的空调,这是必不可少的,投资大约在10000元左右。网吧经营场所的装修费用,包括计算机桌椅(101×200元/套=20200元)、供电和网络布线及布线产品(电线及插座、网线及水晶头、24口交换机加一个48口交换机、中档路由器一个、布线管槽等,大约需要费用在8000元)、灯箱广告(1000元)、玻璃门及其他小的设施设备和装修材料、装修施工费等等,按照一切从简的原则来预算,最少得要35000元,这样能算初始投资大概的费用为427500元,再加上一些备用资金的话,投资一家100台计算机规模的网吧,初期投入至少需要50万元。 一般情况下,正常申办一个网吧文化经营许可证及相关的证件,一般总花费大概在2万元左右。但鉴于国家目前已出台了限制开新网吧的政策,网吧牌照也随之水涨船高,有些地区的费用甚至高达二三十万元。另外,场地租金也是网吧业主需要重点考虑的方面,尤其是许多抢手地方都需要网 6 吧业主一次性预付3个月,甚至半年的租金。找到既便宜又容易聚拢人气的好房子,是网吧成功经营最关键的因素之一。 在这里,我们能粗略地预算一下网吧日常的经营收入和支出情况。网吧收费按1.5元/小时的价格计算,并暂按每天平均每台使用10小时,即将所有的经营时间综合在一起按每天10个小时全是满座来计算,每月的收入大约是10小时×100台×1.5元/小时×30天=45000元。再算一下每月的经营<成本:房租费10000元(规模为100台的网吧必须租用面积300平米的经营场所)、电费5000元、宽带网费1500元、人员工资(以最少3名人员算)2500元、其他费用(如维护)1000元。如此算来,网吧每月的成本支出约为20000元,收入减去支出,每月净收入为45000-20000=25000元,那么一年总收入大约为25000×12=30万元。 也就是说,如果经营正常的话,投资一家100台PC机的网吧,至少要1年半才能收回成本,并且未来每个月具有25000元利润。 如果你的流动资金比较充裕,能够承受50万元资金投入的话,建议你不要采用融资的方式,毕竟以上预算的利润是非常最佳的状态。在网吧现实的经营过程中,往往会遇见许多不确定因素,导致经营利润非常难得到保障。再加上目前的网吧竞争十分激烈,进入微利时代只是迟早的事情。 如果你的资金不非常充裕,又想投身网吧行业做老板,那么建议你采用合伙的方式融资,这样不仅能提升整体竞争实力,而且风险会降低非常多。人多了,不仅能方便管理,你也有更多的时间考虑在网吧里经营其他增值服务(如小型超市、快餐等),以增加营业收入。 目前,同方、长城、TCL等厂商都采取为网吧业主提供融资服务的经营策略,一般融资的年息在8%左右。如果贷款30万元,每年的利息支出大约2.4万元。如果网吧经营得当,网吧自身还是完万能承受的。2.3 布线施工 随着通信技术和信息产业的飞速发展,智能建筑(IB,Intelligent Building)中越来越多地借助于计算机、控制设备和通信设备,对建筑物的所有设备、语音交换、数据终端、网络设备、视频设备、暖通空调、消防系统、保安监控、电力系统和热力系统等进行智能化地管理和控制,达到互通信息、共享资源的目的。而这样多的系统和设备,7 其信息种类和信息分布复杂而多变,因此必须建立一套有效的布线系统,把不同的控制设备、交换设备、网络设备和计算机设备等相互连接起来。网络就是将独立的设备连接在一起,并使它们可以共享信息和资源的布线系统。正确地设计和实施一个网络系统可以提高通信的速度和可靠性,从而使得一个系统工作起来更加富有效率。网络的建设应该满足已公布的国家和国际标准的要求,并应能够根据商业要求的改变进行不断的进化和升级。随着计算机的大量使用,人们越来越关注网络和布线的建设。过去,台式计算机通常都是独立进行工作,现在这种情况已经发生了变化。目前约有超过50%的商用计算机连在局域网中,它们可以大大地提高工作效率。局域网将计算机与服务器和外设连接在一起,或者为传感器、照相机、监视器,以及其他电子设备提供信号通道。如果这些链路是以临时为基础,那么,工作区将很快就堆满了各种无法辨别的电缆,对它们进行故障排除和维护几乎是不可能的。 布线系统的准备工作涉及负载评估和规划、目标生命周期和技术指标等因素。负载评估和规划:对网络和电缆类型的选择主要是由需要连接的设备类型、它们的位置和使用方式来决定的。在开始规划以前,给出关于网络潜在的负载说明是非常有必要的。当一个网络需要为多个系统服务时,应对它们的混合数据流量的峰值进行仔细的考虑。目标生命周期:布线系统的平均目标生命周期为15年,它与主要建筑物的整修周期是一致的。在这段时间内,系统的计算机硬件、软件和使用方式都将发生重大的变化。网络的吞吐量、可靠性和安全性的要求也都要增加。 技术指标的制定包括:使用方法、用户的数量和可能的增长、用户的位置及他们之间的最长距离;用户位置发生变化的可能性、与当前和今后计算机及软件的连接、电缆布线的可用空间、网络拥有者的总投资、法规及安全性要求、防止服务丢失和数据泄密的重要性等。 布线是任何网络系统的关键部件之一,因此决策人员必须准备将网络总投资的10%用于这一领域。对高质量的布线和网络设计方面的投资是物有所值的。 电缆的选择:连接在网络中的设备类型及电缆上所承载的通信负载是选择电缆的关键因素。在布线系统中应首先确定是使用屏蔽电缆、非屏蔽电缆、光缆,还是将它们结合在一起使用。电缆通常由2~1800个线对组成,一般使用带有绝缘层的导线并使用一层或多层塑料外皮。大对数电缆通常用于主干布线系统,它们特别适合在话音和低速率数据应用中使用。长度限制:电缆在干线和水平(集线器到桌面)布线系统应用中的最、谢希仁:计算机网络教程(第二版)人民邮电大学出版社 2006年05月 2、北京工业大学计算机学院:计算机网络课程设计的任务编制与实践--《计算机教育》2008年22期 3、许波勇:论中型办公局域网的设计 华南金融电脑报 2009年11期 4、宿舍局域网组建:组建大学宿舍局域网不求人(有线篇): 《计算机网络课程设计报告》 学院:计算机科学学院 专业:计算机科学与技术 班级: 姓名: 学号: 小组成员: 2011-7-13 项目内容:基于Socket的文件传输服务设计与实现 实验目的:基于Socket套接口,实现文件数据传输服务。目的使学生掌握网络文件传输服务的设计方法。 实验环境:操作系统:windowsXP或windows7; 内存:256M以上; Microsoft Visual C++ 6.0 设计方案:文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c)首先,我们知道此应用软件需实现网络中多台主机的信息互通,实现文件传输,因此涉及到主机网络互联的问题,所以必须会应用到网络协议,可以用UDP或TCP。利用IP地址接受文件内容。 实现流程: 启动电脑,打开能运行该程序的环境,必须保证代码的正确性; 进行窗体框架的设计,实现网络连接,并达到文件传输的功能; 在以上步骤的成功进行下达到设计要求的基于Sockets的局域网内文件传输的函数实现的目的。 源程序; 程序清单: 服务器: #include “stdafx.h” #include “Server.h” #include “ServerDlg.h” #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__;#endif ///////////////////////////////////////////////////////////////////////////// // CServerDlg dialog CServerDlg::CServerDlg(CWnd* pParent /*=NULL*/): CDialog(CServerDlg::IDD, pParent){ //{{AFX_DATA_INIT(CServerDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);} void CServerDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CServerDlg) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CServerDlg, CDialog)//{{AFX_MSG_MAP(CServerDlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON_LICSEN, OnButtonLicsen)ON_BN_CLICKED(IDC_BUTTON1, OnButtonOK)//}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CServerDlg message handlers BOOL CServerDlg::OnInitDialog(){ CDialog::OnInitDialog();3 // Set the icon for this dialog.The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE);// Set big icon SetIcon(m_hIcon, FALSE);// Set small icon // TODO: Add extra initialization here return TRUE;// return TRUE unless you set the focus to a control } // If you add a minimize button to your dialog, you will need the code below // to draw the icon.For MFC applications using the document/view model, // this is automatically done for you by the framework.void CServerDlg::OnPaint(){ if(IsIconic()){ CPaintDC dc(this);// device context for painting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x =(rect.Width()cyIcon + 1)/ 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon);} else { CDialog::OnPaint();} } // The system calls this to obtain the cursor to display while the user drags // the minimized window.HCURSOR CServerDlg::OnQueryDragIcon(){ 4 return(HCURSOR)m_hIcon;} void CServerDlg::OnButtonLicsen(){ // TODO: Add your control notification handler code here CFileDialog Dlg(TRUE);if(Dlg.DoModal()!=IDOK) return; CFile myFile;if(!myFile.Open(Dlg.GetPathName(), CFile::modeRead | CFile::typeBinary)){ AfxMessageBox(“文件不存在!”,MB_OK|MB_ICONERROR); return;} CSocket sockSrvr;sockSrvr.Create(800); sockSrvr.Listen();CSocket sockRecv;sockSrvr.Accept(sockRecv); SOCKET_STREAM_FILE_INFO StreamFileInfo;WIN32_FIND_DATA FindFileData; FindClose(FindFirstFile(Dlg.GetPathName(),&FindFileData));memset(&StreamFileInfo,0,sizeof(SOCKET_STREAM_FILE_INFO));strcpy(StreamFileInfo.szFileTitle,myFile.GetFileTitle()); StreamFileInfo.dwFileAttributes = FindFileData.dwFileAttributes;StreamFileInfo.ftCreationTime = FindFileData.ftCreationTime;StreamFileInfo.ftLastAccessTime = FindFileData.ftLastAccessTime;StreamFileInfo.ftLastWriteTime = FindFileData.ftLastWriteTime;StreamFileInfo.nFileSizeHigh = FindFileData.nFileSizeHigh;StreamFileInfo.nFileSizeLow = FindFileData.nFileSizeLow; sockRecv.Send(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO)); UINT dwRead=0;while(dwRead byte* data = new byte[1024];5 UINT dw=myFile.Read(data, 1024); sockRecv.Send(data, dw); dwRead+=dw;} myFile.Close(); sockRecv.Close();AfxMessageBox(“发送完毕!”);} void CServerDlg::OnButtonOK(){ // TODO: Add your control notification handler code here OnOK(); } 客户机: // ClientDlg.cpp : implementation file // Download by http://www.codefans.net #include “stdafx.h” #include “Client.h” #include “ClientDlg.h” #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__;#endif ///////////////////////////////////////////////////////////////////////////// // CClientDlg dialog CClientDlg::CClientDlg(CWnd* pParent /*=NULL*/)6 : CDialog(CClientDlg::IDD, pParent){ //{{AFX_DATA_INIT(CClientDlg)// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);} void CClientDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CClientDlg)// NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CClientDlg, CDialog)//{{AFX_MSG_MAP(CClientDlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend)ON_EN_CHANGE(IDC_EDIT_IPADDRESS, OnChangeEditIpaddress)ON_BN_CLICKED(IDC_BUTTON1, OnButtonOK)//}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CClientDlg message handlers BOOL CClientDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Set the icon for this dialog.The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, FALSE); // TODO: Add extra initialization here return TRUE;// return TRUE unless you set the focus to a control } // If you add a minimize button to your dialog, you will need the code below // to draw the icon.For MFC applications using the document/view model, // this is automatically done for you by the framework.void CClientDlg::OnPaint(){ if(IsIconic()){ // Set big icon // Set small icon CPaintDC dc(this);// device context for painting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(), 0);// Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON); } CRect rect;GetClientRect(&rect);int x =(rect.Width()cyIcon + 1)/ 2;// Draw the icon dc.DrawIcon(x, y, m_hIcon);else { } } // The system calls this to obtain the cursor to display while the user drags // the minimized window.HCURSOR CClientDlg::OnQueryDragIcon(){ return(HCURSOR)m_hIcon;} void CClientDlg::OnButtonSend(){ // TODO: Add your control notification handler code here AfxSocketInit(NULL);CSocket sockClient;sockClient.Create(); CString szIP;GetDlgItemText(IDC_EDIT_IPADDRESS,szIP);CDialog::OnPaint(); if(!sockClient.Connect((LPCTSTR)szIP, 800)){ AfxMessageBox(“连接到对方机器失败!”); return;} SOCKET_STREAM_FILE_INFO StreamFileInfo;sockClient.Receive(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO)); CFile destFile(StreamFileInfo.szFileTitle,CFile::modeCreate CFile::modeWrite | CFile::typeBinary); UINT dwRead = 0;while(dwRead byte* data = new byte[1024]; memset(data,0,1024); UINT dw=sockClient.Receive(data, 1024); destFile.Write(data, dw); dwRead+=dw;} SetFileTime((HANDLE)destFile.m_hFile,&StreamFileInfo.ftCreationTime,&StreamFileInfo.ftLastAccessTime,&StreamFileInfo.ftLastWriteTime);destFile.Close(); | SetFileAttributes(StreamFileInfo.szFileTitle,StreamFileInfo.dwFileAttributes);sockClient.Close();AfxMessageBox(“接收完毕!”);} void CClientDlg::OnChangeEditIpaddress(){ // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CDialog::OnInitDialog()// function and call CRichEditCtrl().SetEventMask()// with the ENM_CHANGE flag ORed into the mask.// TODO: Add your control notification handler code here CString szIpAddress; GetDlgItemText(IDC_EDIT_IPADDRESS,szIpAddress);if(szIpAddress.IsEmpty())GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(FALSE);else } void CClientDlg::OnButtonOK(){ // TODO: Add your control notification handler code here OnOK();} 安装演示说明详细步骤: GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(TRUE);11 服务器向客户机发送文件:效果如图 客户器输入服务器的IP地址并选择接受来自服务器发送的文件,选择接受。效果如下图: 输入IP地址 如果地址有误则显示 : 实验总结: 通过本次计算机网络课程设计,我更加充分的理解了课本上的知识,并能够加以扩展,从而应用于实践当中,这几天的课程设计令我受益匪浅,很多平时模棱两可的知识点都认真复习并实践了。我意识到我们所学的东西将来都是要付诸实践的,所以一切要 12 从实际情况出发,理论联系实际,这样才能真正发挥我们所具备的能力。经过此次课程设计,我向我成功的目标又迈进了一步第四篇:网络课程设计(模版)
第五篇:网络课程设计报告