计算机网络课程设计指导书_12计算机_网络工程(3)

2018-12-29 23:00

计 算 机 网 络 课程设计指导书

(12级计算机、网络工程专业)

湖南科技大学计算机科学与工程学院

2014年12月

计算机网络 课程设计指导书

一、课程设计目的

1.加深对计算机网络通信系统的工作原理的理解

通过编写计算机程序实现、模拟网络的某些功能,使学生理解并掌握计算机网络的基本工作原理及工作过程。

2.实现应用进程跨越网络的通信

了解系统调用和应用编程接口基本知识,理解应用程序和操作系统之间传递控制权的机制,掌握套接字的创建和运用,通过socket系统调用实现跨网通信。

3.提高网络编程和应用的能力

提高实际编程能力和灵活运用所学知识解决问题的能力。培养调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,理论应用于实践的能力。

二、课程设计要求

1. 仔细分析每一个实验的具体内容、步骤和要求,按设计要求完成任务。 2. 使用C和C++语言,用基础SOCKET编程方法实现设计功能。

3. 程序设计需要完整的程序流程图、说明文档和源程序清单,设计者需要清楚每个模块的功能和原理。

4. 完成程序的编写、编译、执行和测试,每人至少完成三个题目的设计工作。

5. 提交课程设计报告(含括课程设计名称、课程设计题目、课程设计内容、课程设计步骤、调试过程、课程设计结果及结果分析、心得体会)、程序源文件、可执行文件各一份。

三、课程设计考核方式

1. 测试中演示所设计的程序,占总成绩30%;

2. 测试中回答指导老师所提出的问题,占总成绩20%; 3. 设计报告,占总成绩40%; 4. 考勤情况,占总成绩10%。

三、课程设计题目

1、网络聊天程序的设计与实现

参照附录1,了解Socket通信的原理,在此基础上编写一个聊天程序。

2、Tracert与Ping程序设计与实现

参照附录2,了解Tracert程序的实现原理,并调试通过。然后参考Tracert程序和教材4.4.2节,编写一个Ping程序,并能测试本局域网的所有机器是否在线,运行界面如图1所示的QuickPing程序。

1

计算机网络 课程设计指导书

图1 QuickPing运行界面效果图

3、基于IP多播的网络会议程序

参照附录3的局域网IP多播程序,设计一个图形界面的网络会议程序(实现文本多播方式即可)。

4、网络嗅探器的设计与实现

参照附录4 raw socket编程例子,设计一个可以监视网络的状态、数据流动情况以及网络上传输的信息的网络嗅探器。

5、电子邮件客户端程序设计与实现

参照教材6.5节原理,设计一个电子邮件客户端程序。

6、TELNET终端设计与实现

参照RFC854、RFC855文档,设计一个TELNET终端程序。

7、网络代理服务器的设计与实现

实现一个简易的proxy程序。proxy程序的功能:能够做“二传手”的工作。它自身处在能同时连通外界目标服务器和我的机器的位置上。我的机器把请求发送给它,它接受请求,把请求原封不动的抄下来发送给外界目标服务器;外界目标服务器响应了请求,把回答发送给它,它再接受回答,把回答原封不动的抄下来发送给我的机器。这样,我的机器实际上是把它当作了目标服务器(由于是原封

2

计算机网络 课程设计指导书

不动的转抄,请求和回答没有被修改)。而它则是外界目标服务器的客户端。

8、简单Web Server程序的设计与实现

Web服务是Internet最方便与受用户欢迎的服务类型,它的影响力也远远超出了专业技术范畴,已广泛应用于电子商务、远程教育、远程医疗与信息服务等领域,并且有继续扩大的趋势。目前很多的Internet应用都是基于Web技术的,因此掌握Web环境的软件编程技术对软件人员是至关重要的。

编写简单的Web Server有助于读者了解Web Server的工作流程,掌握超文本传送协议( HTTP)基本原理,掌握Windows环境中用socket实现C/S结构程序的编程方法。附录5介绍了一个简单Web Server的程序设计过程。

四、推荐参考文献

[1] 谢希仁,计算机网络(第六版),电子工业出版社,2013.

[2] Andrew S.Tanenbaum.计算机网络(第四版)[M].北京:清华大学出版社,2004. [3] 中国Linux论坛:http://www.linuxforum.net/ [4] UNIX技术网站(永远的UNIX):http://fanqiang.chinaunix.net/ [5] Google http://www.google.cn/

[6] 蒋清明,C语言程序设计,人民邮电出版社,2008.

[7] 陈维兴,林小茶, C++面向对象程序设计(第二版), 中国铁道出版社, 2009年12月

五、附录

附录1:Windows Socket编程简介 附录2:Tracert程序源代码

附录3:用Visual C++实现局域网IP多播

附录4:raw socket编程例子(基于LINUX操作系统) 附录5:简单Web Server程序 附录6:课程设计报告封面设计

3

计算机网络 课程设计指导书

附录1、Windows Socket编程简介

使用WinSock API的编程,应该了解TCP/IP的基础知识。虽然你可以直接使用WinSock API来写网络应用程序,但是,要写出优秀的网络应用程序,还是必须对TCP/IP协议有一些了解的。

1. TCP/IP协议与WinSock网络编程接口的关系

WinSock 并不是一种网络协议,它只是一个网络编程接口,也就是说,它不是协议,但是它可以访问很多种网络协议,你可以把它当作一些协议的封装。现在的 WinSock已经基本上实现了与协议无关。你可以使用WinSock来调用多种协议的功能。那么,WinSock和TCP/IP协议到底是什么关系呢?实际上,WinSock就是TCP/IP协议的一种封装,你可以通过调用WinSock的接口函数来调用TCP/IP的各种功能.例如我想用TCP/IP 协议发送数据,你就可以使用WinSock的接口函数Send()来调用TCP/IP的发送数据功能,至于具体怎么发送数据,WinSock已经帮你封装好了这种功能。

2、TCP/IP协议介绍

TCP/IP协议包含的范围非常的广,它是一种四层协议,包含了各种硬件、软件需求的定义。TCP/IP协议确切的说法应该是TCP/UDP/IP协议。UDP协议(User Datagram Protocol 用户数据报协议),是一种保护消息边界的,不保障可靠数据的传输。TCP协议(Transmission Control Protocol 传输控制协议),是一种流传输的协议。他提供可靠的、有序的、双向的、面向连接的传输。

保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息。也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包。

而面向流则是指无保护消息边界的,如果发送端连续发送数据,接收端有可能在一次接收动作中,会接收两个或者更多的数据包。

举例来说,假如,我们连续发送三个数据包,大小分别是2k、4k、8k,这三个数据包都已经到达了接收端的网络堆栈中,如果使用UDP协议,不管我们使用多大的接收缓冲区去接收数据,我们必须有三次接收动作,才能够把所有的数据包接收完。而使用TCP协议,我们只要把接收的缓冲区大小设置在14k以上,我们就能够一次把所有的数据包接收下来,只需要有一次接收动作。

这就是因为UDP协议的保护消息边界使得每一个消息都是独立的。而流传输,却把数据当作一串数据流,它不认为数据是一个一个的消息。所以有很多人在使用TCP协议通讯的时候,并不清楚TCP是基于流的传输,当连续发送数据的时候,他们时常会认识TCP会丢包。其实不然,因为当它们使用的缓冲区足够大时,它们有可能会一次接收到两个甚至更多的数据包,而很多人往往会忽视这一点,只解析检查了第一个数据包,而已经接收的其它据包却被忽略了。

3.WinSock编程简单流程

WinSock编程分为服务器端和客户端两部分,TCP服务器端的大体流程如下: 对于任何基于WinSock的编程首先必须要初始化WinSock DLL库。 int WSAStarup( WORD wVersionRequested,LPWSADATA lpWsAData )。 wVersionRequested是我们要求使用的WinSock的版本。 调用这个接口函数可以初始化WinSock 。 然后必须创建一个套接字(Socket)。

SOCKET Socket(int af,int type,int protocol); 套接字可以说是WinSock通讯的核心。WinSock通讯的所有数据传输,都是通过套接字来完成的,套接字包含了两个信息,一个是IP地址,一个是Port端口号,使用这两个信息,就可以确定网络中的任何一个通讯节点。

当调用了Socket()接口函数创建了一个套接字后,必须把套接字与你需要进行通讯的地址建立联

4


计算机网络课程设计指导书_12计算机_网络工程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:项目管理学复习题(带答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: