2013计算机网络课程设计指导书V1.1
发布时间:2024-11-25
发布时间:2024-11-25
《计算机网络课程设计》指导书
课程负责人:张晓明
主要成员:杜天苍,赵国庆,张世博,向胜军 版本:V1.1
发布日期:2013年12月20日
计算机科学技术系 2013年12月
目录
1.设计要求
2.网络计算平台应用设计
2.1微机集群MPI并行计算程序设计* 3.网络协议应用设计
3.1 网络应用系统设计与实现
3.2 基于SIP协议的VOIP网络设计
3.3外网安全访问内网服务的系统设计与实现3.4 网络管理综合应用设计 4.网络系统仿真设计 4.1网络服务性能优化设计 5.网络协议的程序设计
5.1 RS232通信程序设计
5.2 网络数据校验的综合程序设计 5.3滑动窗口协议模拟程序设计* 5.4 网络协议分析器程序设计*
2 4 4 5 5 5 6 7 8 8 9 9 1011 11
1.设计要求
(1) 课程性质
本课程的先修课程是《计算机网络A》或《计算机网络B》,属于专业必修/限选的实践性课程。必修学时2周,占2学分;或限选学时3周,可以分散进行,占3学分。
本课程属于设计性,要求学生通过网络实践,更加深入掌握计算机网络原理及其应用方法,在网络协议分析、网络管理、性能仿真、网络协议程序设计、网络服务综合、网络计算等方面打下较好的基础。
(2) 设计内容
本课程设计属于计算机网络主题,其设计类型有4个方向: (1) 网络计算平台应用设计 (2) 网络协议应用设计 (3) 网络系统仿真设计 (4) 网络协议的程序设计
学生只需要选择其中一个方向的项目开展设计。
(3) 分组要求
为了体现小组工作模式和团队协作精神,以小组方式,由学生自行组队。每组推选组长,负责本组的联络、分工,各成员负责完成分配的任务。
各班级应在项目启动后,将分组和项目选定情况汇总,一天内返回给指导教师。
(4) 指导老师要求
以项目类型分配指导教师,平均每个班级有2名教师。
指导教师必须认真负责学生设计的全过程,包括学生分组、答疑、日常指导、验收答辩、报告批阅、设计成绩、资料归档等。重点要把握过程性指导和检查、设计项目验收工作。
(5) 设计成果验收与上交
每组设计完成后,都需要经过验收答辩和报告评阅2个过程。
1. 设计成果必须经过设计验收过程,在真实环境下达到测试要求。验收通过者才能获得学分。 2. 项目验收前,每组上交一份设计成果(含设计报告电子版、设计模型,以及相关源程序等),
打包后发给指导教师。设计报告使用下发的统一格式。
(6) 主要参考文献
1) 吴功宜 等. 计算机网络高级软件编程技术. 清华大学出版社, 2008年1月 2) 李环,赵宇明. 计算机网络综合实践教程. 机械工业出版社, 2011年9月 3) 李名世 等. 计算机网络实验教程(第2版). 高等教育出版社, 2009年6月
4) 张建忠, 徐敬东. 计算机网络实验指导书(第2版). 清华大学出版社, 2008年2月。
(7)序号 1 2 3 4 5 6 7 8 9 10 11 12 13
题目清单分类题目名称私有云平台建立与管理设计*网络计算平台应用设计基于公有云平台的应用设计微机集群 MPI并行计算程序设计* Android系统移动应用开发网络应用系统设计与实现基于 SIP协议的 VOIP网络设计网络协议应用设计外网安全访问内网服务的系统设计与实现网络管理综合应用设计网络系统仿真设计网络服务性能优化设计 RS232通信程序设计网络协议的程序设计网络数据校验的综合程序设计滑动窗口协议模拟程序设计*网络协议分析器程序设计*组数限制每班 1组每班 2组每班 1组每班 2组每班 1组每班 1组每班 1组每班 1组每班 3组每班 1组每班 3组每班 1组每班 1组小组人数 3-4 3-4 3-4 3-4 3-4 3-4 3-4 3-4 3-4 3-4 3-4 3-4 3-4
3
2.网络计算平台应用设计
计算机网络的一些前沿技术领域,例如并行计算、云计算、分布式计算、大数据计算等,为解决国
2.1微机集群MPI并行计算程序设计*
2.1.1 MPI介绍
消息传递接口(MPI)是在微机集群上基于消息传递的并行编程工具,是如今应用最为广泛的并行程序开发方法。MPI的标准化开始于1992年,于1994年发布了MPI-1,到1997年发布了MPI-2。
MPICH是一种最重要的MPI实现,是与MPI规范同步发展的版本。例如,MPICH软件包MPICH1.2.7p1和MPICH2-1.0.5p4,分别遵循MPI-1.2和MPI-2两个版本的MPI标准。以上2个版本的MPI实现可以从网址http://www-unix.mcs.anl.gov/mpi/mpich/下载。
MPI所有的通信功能可以用6个基本调用来实现: (1) 初始化:MPI_Init(&argc,&argv) (2) 结束:MPI_Finalize()
(3) 确定进程的标识符:MPI_Comm_rank(MPI_COMM_WORLD,&id) (4) 确定进程数量:MPI_Comm_size(MPI_COMM_WORLD,&p) (5) 消息发送:MPI_SEND(buf, count, datatype, dest, tage, comm)
(6) 消息接收:MPI_RECV(buf, count, datatype, source, tage, comm, status)
2.1.2 MPI编程范例[3]
“并行计算圆周率PI的MPI编程”
使用积分面积法并行计算圆周率PI的值,MPI将计算分解到各个进程,最后再将结果累加在一起,从而得出PI的值。
程序首先定义曲线划分的块数n为1000000,之后通过MPI_Bcast广播给通信域内的每一个进程。接着是计算部分,程序构造for循环,循环变量以进程数来递增,使得计算分块平均地分配各个进程。各进程根据算法几出分
块的面积mypi。最后,程序通过调用MPI_Reduce函数将各进程求的mypi值累加得到pi的计算值,并将其与标准值比较,计算误差,得出计算运行时间。
进程数与计算时间和加速比的关系如下图,可见,进程数增加后,计算时间相应地缩短了。
3.网络协议应用设计
本方向共有4个设计项目,学生仅需要选择其一: 网络应用系统设计与实现 基于SIP协议的VOIP网络设计 外网安全访问内网服务的系统设计与实现 网络管理综合应用设计
3.1 网络应用系统设计与实现
目的:实现学生在上交实验报告时的电子化处理,直接上传电子文档,不再打印,解约纸张,方便归档留存。
实现方法:不做限制,比如以下方法任选(但不限于):
Linux下的FTP管理(比如vsftp proftp等) 编程实现,或基于网上类似公开代码修改实现
调研市场上类似功能的商业化软件,可用其试用版本或免费版来搭建系统以完成所需功能。 功能要求:
(1) 实现角色分类,至少包括“学生”“教师”“管理员”三种角色
(2) 学生用自己的账号登陆,上传文档到某教师下的某一门课,亦可下载查看自己的文档,但
不应该看到其他学生的文档。
(3) 教师能看到自己课程下已经上传的学生文档,并可下载。
(4) 管理员能进行开户操作。因为学生数量较多,最好支持批量开户。 (5) 其他可由学生自由发挥。 评价方法:
(1) 完成学生、教师的开户操作;
(2) 系统能模拟学生提交作业、教师查看并归档作业等基本流程; (3) 实验报告提交系统的初步应用。
3.2 基于SIP协议的VOIP网络设计
背景说明:无线网络越来越普及,个人终端越来越智能化,基于IP的语音通讯比重越来越高。复杂的有电信运营商的IP电话,简单的比如QQ语音通讯、SKYPE通讯等。本项目旨在基于应用层SIP协议作为信令,利用WLAN无线网络完成语音通话。 预习内容:SIP协议的结构及会话过程。 软硬件需求:
(1) SIP Server软件(提供用户的管理、通讯过程的维护、统计等功能,可GOOGLE,开源的SIPServer
众多,可任选。推荐用B/S结构的ONDO SIP SERVER);
(2) SIP终端。利用SIP的软件终端可供选择的较多,不做限制,可采用PC端的X-Lite。在智能
手机端,Android系统中在“设置”—“通话设置”—“使用互联网电话”可应用SIP账户,亦可下载适用的SIP程序;在IOS系统中亦有合适SIP终端程序; (3) 交换机一台;
(4) 无线路由器两台,供手机端在WIFI开启的情况下连接网络; (5) VOIP电话两部(支持SIP协议,通过WAN口连接网络); (6) Ethereal抓包软件。
项目过程:
(1) 按照下面网络拓扑示意图搭建网络并配置IP等,并确保硬件设备之间可以ping通 (2) 安装SIP server,设置大于2个的用户账户 (3) 设置PC及手机端的SIP 终端
(4) 在SIP终端输入用户名及密码,使其注册到SIP Server上
(5) 不同终端之间进行通话测试(PC—PC PC---手机端 手机端—手机端) (6) 可通过Ethereal抓包软件来分析SIP协议的注册、通讯、注销等过程。
3.3外网安全访问内网服务的系统设计与实现
设计目的:利用NAT实现外网主机访问内网服务器。掌握NAT源地址转换和目的地址转换的区别,掌握如何向外网发布内网服务器。
背景描述: 你是某学校的网络管理员,学校只向ISP申请了一个公网IP地址(63.5.8.1/24),现学校的网站在内网,要求在互联网也可以访问学校网站,请你实现(学校内网IP自行规划)。
实验环境:路由器两台,PC两台,分别模拟外部主机与内网web服务器,基本拓扑图如下。
设计步骤:
(1) 安装网络工作环境 (2) IP地址规划与设置 (3) 配置路由器 (4) 测试。
3.4 网络管理综合应用设计
网络管理是为保证网络系统能够持续、稳定、安全、可靠和高效地运行而对网络实施的一系列方法和措施。网络管理的任务是收集、监控网络中各种设备和设施的工作参数、工作状态信息,将结果显示给管理员并进行处理,从而控制网络中的设备,使其可靠运行。
按照OSI的定义,网络管理包含配置管理、性能管理、故障管理、安全管理和计费管理5个基本功能。本设计以众多优秀的免费网络管理软件为使用背景,重点开展网络管理服务、流量监控、拓扑发现等综合应用管理。主要参考文献[2]。 设计目的:
掌握SNMP服务的安装和配置方法;
掌握常用开源工具软件的安装和配置方法; 掌握软件系统的集成方法。 设计要求:
(1)自行设计几种不同场景,以及时记录监控网络流量和网络拓扑的变化。
(2)给出一种软件集成的设计方法,能够将免费软件的功能集成到一起,通过统一的界面操作,达到管理和控制目的。 设计环境:
硬件:台式计算机2台以上,交换机1台;
软件:Windows Server 2003以上版本操作系统;开源工具软件MRGT和The Dude等。 设计内容:
(1) 安装和配置SNMP服务、一些免费的网络监测和管理工具; (2) 通过不同的LAN扩展方法(集线器、交换机、路由器),至少设计2种LAN网络环境,体
现网络拓扑变化;至少开展2种不同网络应用(如FTP、HTTP、EMAIL),构造不同网络流量情况;
(3) 记录和分析各种状态下的网络流量监控结果、网络拓扑结构变化结果; (4) 设计并实现系统集成方案,完成网络管理的统一化操作界面。 设计说明:
本设计需要使用以下协议和工具:
SNMP协议:简单网络管理协议(Simple Network Management Protocol); MRTG工具:多路由器通信图形工具(Multi-Router Traffic Grapher),用于监控网络链路流
量,它可以从运行SNMP协议的路由器、交换机、服务器等设备上抓取信息,并能够自动生成包含PNG格式图形的HTML文档,通过网页方式将网络流量信息图形化地显示给用户;
The Dude工具:能够自动搜索指定子网内的所有设备、绘制和生成网络拓扑图、监视设备的
服务端口,从而为网络管理员提供网络监视和网络分析的功能;它还能在服务端口中断后发出警报和提示,并提供相应的事件日志。
也可以使用其他免费工具。鼓励构造更多的网络管理应用设计方案。
4.网络系统仿真设计
网络仿真是进行网络技术研究、网络规划设计的一种基本手段,在网络规划、网络性能优化、故障诊断、协议性能评估、网络协议研究与开发等方面发挥着重要的作用。
本方向以网络系统为主题,通过使用国际著名的网络仿真工具OPNET,开展网络系统的仿真分析与设计,从而更加深入掌握计算机网络原理中的核心内容。
ITGuru Academic Edition是OPNET公司专门为全球教育机构提供的一款简化的、免费的IT Guru版仿真软件。教育机构的用户可以从http://网站下载、安装和使用该软件(约47MB)。
OPNET软件采用“项目-场景”方式对网络进行仿真。一个项目包括一组场景,每个场景针对一种网络配置。通常网络仿真的目标是比较不同场景所产生结果的差异,从而得到最优的网络配置。
本方向给出了2个项目,学生选择其一做设计。学生也可以自己设计一个类似的项目。 在主要参考文献[4]中,第13章有重要参考内容,可以作为仿真学习。
4.1网络服务性能优化设计
4.1.1 问题描述
有一个集团公司,其总部网络有60台计算机,采用星型拓扑结构,分别安装有1台WEB服务器和邮件服务器。现按照业务扩展,需要在其他5个城市增加5个星型拓扑结构(每个点至多按15终端计算)的局域网与原局域网相连。现在想知道新添加的局域网带来增加的负载是否会使网络服务性能下降很多,以致不能网络正常运行。这需要通过分析服务器的负载和整个网络的延迟情况得出分析结论。
4.1.2仿真设计内容与要求
(1) (2) (3) (4) (5) (6)
通过安装和练习,掌握OPNET仿真工具的基本应用技巧; 对选定的项目,设计合理的仿真模型; 分析网络性能的主要影响参数有哪些?
通过运行OPNET,以图形方式获得以上不同配置下的仿真结果; 分析网络延迟、WEB页面响应时间的影响因素;
如果不能满足要求,如何改进?改进后的效果将会是怎样的?
5.网络协议的程序设计
本方向以网络协议为主题,开展物理层、数据链路层、网络层、传输层等典型网络协议的设计与实现,从而深入掌握计算机网络原理中的核心内容;同时,为今后的网络综合设计、毕业设计打下基础。
本次设计项目有以下3个,学生仅需要选择其中之一(打*者有难度): (1) RS232通信程序设计
(2) 网络数据校验的综合程序设计 (3) 滑动窗口协议模拟程序设计* (4) 网络协议分析器程序设计* 主要参考文献:
(1) 吴功宜 等. 计算机网络高级软件编程技术. 清华大学出版社, 2008年1月 (2) 李环,赵宇明. 计算机网络综合实践教程. 机械工业出版社, 2011年9月 (3) 李名世 等. 计算机网络实验教程(第2版). 高等教育出版社, 2009年6月
5.1 RS232通信程序设计
设计目的:实现基本物理层连接与传输,理解底层通信的基本原理,熟悉串口通信的工作过程。 设计要求:
(1)按照RS232标准,自制RS232交叉连接线。
(2)编程实现基于串口的数据传输程序。根据用户的命令,该程序能够将用户输入的信息从一台计算机发送到另一台计算机,或者接收另一台计算机中用户的输入信息。输入方式包括控制台方式和界面输入方式,要求有一定的人机界面和数据保存功能。 设计内容:
(1)使用制作的RS232连接线连接2台计算机。
(2)以Visual C++6.0,或C#为编程环境编写通信程序。
(4) 调试程序,并完成设计报告。 设计说明:
(1) 关于RS232接口:
按照下图完成RS232串口通信连线的制作,两端为DB9连接器,注意2、3线交叉。
图1 计算机COM口结构图 RS232串口连接示意图
(2) 关于Visual C++6.0串口通信接口函数
与传统的直接对端口进行操作不同,串口在Win32中是作为文件来进行处理的。对于串口通信,
Win32提供了相应的文件I/O函数与通信函数,据此可以编写满足不同需求的串行通信程序。 用于串口通信的函数和结构在winbase.h头文件中定义,该头文件存在于Platform SDK(PSDK)开发包中。PSDK对Visual C++6.0开发提供全面支持的SDK,可以在Microsoft的网站中下载最新版本。 常用函数如下:
CreateFile(),打开串口 CloseHandle(),关闭串口
BuildCommDCB(),设置设备控制块数值
GetCommState(),获取指定通信设备的当前BCD值 SetCommState(),用给定的DCB设置通信设备
GetCommTimeouts(),获取指定通信设备上所有I/O操作的超时参数 SetCommTimeouts(),设置指定通信设备上所有I/O操作的超时参数 WriteFile(),向串口写数据 ReadFile(),从串口读数据 串口通信的运行步骤是:
1) 使用函数CreateFile()打开串口;
2) 使用函数BuildCommDCB()设置DCB块; 3) 使用函数SetCommTimeouts()设置超时参数;
4) 使用函数ReadFile()/WriteFile(),实现串口的读/写操作; 5) 使用函数CloseHandle()关闭串口。
(3) 关于C#环境下设计串口通信程序
利用Microsoft公司提供的ActiveX控件MSComm32.ocx。
一个MSComm控件仅对应一个串口。如果应用程序需要访问多个串口,必须使用多个控件。 使用C#设计RS232通信程序,其要点有三方面:MSComm控件的添加、控件属性设置、使用控件接收和发送数据。
5.2 网络数据校验的综合程序设计
设计目的:掌握TCP/IP协议网络各层次的差错控制方法和实现技术。 设计要求:
(1)全面分析和了解网络数据校验方法; (2)界面设计:通过选择不同网络层次,显示相应的校验计算界面;
(2)编程实现各层的校验方法;
(3)所有实例的生成结果保存为TXT或XML文件。 设计内容:
(1) 设计和实现奇偶校验码算法、方阵校验码算法,并至少通过2个实例验证; (2) 设计和实现循环冗余码算法,并至少通过2个局域网生成多项式的实例验证; (3) 设计和实现传输层IP协议的校验和计算方法,并至少通过2个实例验证; (4) 设计和实现传输层UDP协议的校验和计算方法,并至少通过2个实例验证; (5) 设计和实现传输层TCP协议的校验和计算方法,并至少通过2个实例验证。
5.3滑动窗口协议模拟程序设计*
协议简介
在网络通信中,滑动窗口协议通常用于实现流量控制,保证数据传输的可靠性和有效性。它既可以作为数据链路层协议,也可用于传输层的TCP协议中。该协议定义了网络通信的接收方在回送确认之前发送方至多能传输的数据量。
典型的数据链路层滑动窗口协议有1位滑动窗口协议、使用回退n帧的滑动窗口协议和使用选择性重传的滑动窗口协议3种。
设计目的
本设计项目通过对数据链路层滑动窗口协议的编程模拟,掌握滑动窗口的概念和滑动窗口协议的实现原理,加深对数据重传和流量控制机制的理解。
设计要求
模拟实现使用选择性重传策略的滑动窗口协议程序,功能包括: (1) 所有功能应该可视,要有简单的界面。 (2) 由一台PC向另一台PC机发送数据包,界面中必须动态显示数据帧的发送和接收情况,以
表明模拟协议的正确运作过程。
(3) 接收方应具有固定大小的滑动窗口。当发送方速度过快或帧丢失时,接收方应发送消息,
要求暂停或是重传。接收方要求按序向网络层提交收到的帧。
(4) 发送方发送速度可以调节。发送方重传时仅需要重传需要的帧,可指定滑动窗口数目、停
等的超时时间间隔以及发送类型等参数。
流量模型的简化
为了使协议模拟尽量简化,做2个假设:
(1) 发送方的网络层总有数据需要发送;
(2) 接收方没有反向流量,因此不能捎带确认,每次等待辅助定时器超时之后,发送一个单独
的确认帧(ACK或NAK)。
设计内容
(1) 阅读基本程序并修改调试:在参考文献1中有基本的程序;
(2) 画出功能框图、流程图,并修改应用界面;
(3) 扩展要求:扩展到传输层滑动窗口协议的设计和实现。
5.4 网络协议分析器程序设计*
协议分析器简介
网络协议分析器一方面用于分析网络流量,以便找出潜在的问题;另一方面也称为网络嗅探器,通过捕获网络各层的数据,获取一些关键信息。因此,它是网络流量监控和故障检测的重要工具,对网络管理和网络安全具有重要的意义。
设计目的
本设计的目的是使学生加深对TCP/IP协议原理的理解,掌握网络管理和网络安全工具的设计与实现技术,同时,对网络嗅探器的实现机理有深入的了解。
设计要求
本项目需要在熟悉套接字编程和Winpcap编程的基础上,设计和实现一个协议分析器,主要功能包括数据采集、协议分析和数据过滤等。具体功能为:
(1) (2) (3) (4) (5) (6)
数据采集:实时捕捉Ethernet网数据包。 解析Ethernet网数据帧头部的全部信息。
实现基于MAC地址和帧头部类型字段的数据包过滤。 解析IP数据包的头部信息。
实现基于IP地址和IP头协议的数据过滤。
对ICMP报文,要求至少解析ICMP回显请求、回显应答、超时及目的不可达4种消息报文。
(7) 解析传输层TCP、UDP协议头部信息。 (8) 实现基于端口的数据包过滤。 (9) 实现应用层HTTP协议头部分析。
设计内容
(1) (2) (3) (4)
阅读基本程序并修改调试:在参考文献1中有基本的程序; 画出功能框图、流程图,修改应用界面; 在协议分析器中使用Winpcap的高级特性;
扩展要求:使用原始套接字方式,完成数据捕获过程。