数据通信与网络课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
!
计算机网络课程设计
设计提纲 (1)
一、利用Socket实现双机通信 (1)
二、基于WinSock的即时通信软件功能原理模拟 (1)
三、了解最基本的RS232接口的网络编程方法 (1)
四、帧封装 (1)
五、以太网帧的发送过程 (2)
六、发送以太网 ARP包 (3)
(
七、解析IP数据包 (4)
八、监控IP包流量 (4)
九、IP地址的合法性验证 (5)
十、发送TCP数据包 (5)
十一、OSPF实现 (6)
十三、简单FTP服务器实现 (8)
十四、基于中间件技术的Web服务系统 (8)
十五、网络管理命令软件包设计 (9)
。
十六、编写一个类似 QQ的聊天程序 (9)
十七、VLAN构建 (9)
十八、Frame Relay 构建 (9)
十九、基于UDP协议的数据包收发程序 (10)
二十、滑动窗口协议仿真 (10)
二十一、RIP协议仿真 (10)
二十二、软件防火墙设计 (10)
二十三、软件VPN设计 (10)
%
二十四、网络监视器设计 (11)
二十五、FTP站点搜索引擎 (11)
一、要求
每位学生选择一个项目使用Java、C、VC或C#进行设计,每个小组最多3人,并要有明确的分工。
通过课程设计帮助学生深入理解网络的基本工作原理和协议的设计思想,掌握处理网络问题的基本方法。
二、[
至考核时间和标准
三、实习起止时间:
本周五(9月10日)早上8:00开始,按学号演示设计成果。9月17日(下周五)下午5:00之前必须提交各小组的课程实验报告(电子版和打印稿)
根据题目的难易度、实现技术、完成情况和报告撰写质量给予A,B,C,D,E五级评分。
设计提纲
一、利用Socket实现双机通信
目的与要求:利用WinSock来实现双机通信,理解TCP状态机图。要求使用WinSock编程,采用其中的TCP面向连接方式,实现文本数据的交换。
二、基于WinSock的即时通信软件功能原理模拟
目的与要求:利用WinSock进行点对点通信,工作机制模仿即时通信软件的基本功能,登陆,上线,传递信息等等。分为客户部分和服务器部分两块,客户部分类似一般通信软件例如QQ,服务器部分主要提供客户端用户基本数据配置。
三、了解最基本的RS232接口的网络编程方法
目的与要求:编写一个简单应用程序完成双机通信,采用停止-等待协议。
四、帧封装
目的:构造帧对于理解网络协议的概念、协议执行过程,以及网络问题处理的一般方法具有重要的意义。根据数据链路层的基本原理,针对普遍应用的Ethernet 帧,通过构造一个具体的帧,引导同学深入理解网络协议的基本概念与网络问题处理的一般方法。
要求:编写程序,根据给出的原始数据(即需要提供MAC帧结构中的“目的MAC 地址”、“源MAC地址”、“类型字段”、“数据字段”,具体的值可以自己任意给定;更好的做法,是用Wireshark等抓包工具捕捉数据包(比如,捕捉一个UDP 数据包)按照捕捉到的数据包的内容来提供MAC帧格式中各个字段部分,因为“数据字段”部分就是承载IP、ARP等上层协议数据的。注意,“校验字段”必须由程序生成),组装一个Ethernet 格式的帧(目前,局域网以以太网应用最广泛,应熟悉Ethernet帧格式)。
实现方式不限,可以用命令行程序,也可以用界面程序;但是,结果即生成的MAC帧必须写到文件中,并且要以二进制的形式来写入文件。
例如,如果用命令行程序来实现。
题目附带的文件为二进制原始数据(文件名inputfile),比如可执行文件名为,则命令行形式如下:
framer inputfile outputfile
inputfile为原始数据文件,outputfile为输出结果。
操作系统、使用语言和编译环境不限。
资料:
前导码帧定界符目的MAC地址源MAC地址类型
字段数据字段校验字
段
前导码和帧定界符:
前导码56位(7字节)的1010101…1010比特序列组成,帧定界符为1字节,结构为。
目的地址和源地址均采用6字节,目标地址为00-00-E4-86-3A-DC,源地址为00-00-80-1A-E6-65。
数据字段为46字节到1500字节,要注意不足46字节需在“数据字段”后面填充。
帧校验字段采用8位CRC校验即可。
例如,下面给出一个直观的结果:
五、以太网帧的发送过程
目的:编写程序模拟Ethernet结点数据发送的流程,通过编写程序加深CSMA/CD工作原理的理解。
流程:
父进程开辟一块大小为sizeof(pid_t)字节的共享内存来模拟介质总线(共享内存初始全部为'\0'),fork两个子进程,当两个子进程都退出后父进程退出。
两个子进程做相同动作,它们向"介质总线"上发送自己的进程号,完成10次成功的发送后退出。
子进程检查共享内存是否全部为'\0',如果是则认为总线闲,否则总线忙继续载波侦听。
当总线闲时立即启动发送,冲突计数器设置为16,将自己的进程号与共享内存中的数据作"或"运算(模拟发包),然后比较共享内存的内容与写入内容,相同则没有发生冲突,否则发生冲突。
当没有发生冲突时,将共享内存清零,报告:xxxxx send success,xxxxx为进程号,作随机延时,开始下一个发送过程或者结束。
当发生冲突时,将共享内存清零,报告:xxxxx send collision,冲突计数器减1。如果冲突计数器>0,使用截止二进制后退延迟算法计算等待时间,等待后进入下一次尝试;如果冲突计数器<=0,报告:xxxxx send failure,结束本次发送,