版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机网络原理课程设计指导书杨松波电子与信息工程学院2012年6月一 课程设计目的计算机网络课程设计是计算机网络原理课程之后的实践加强环节,通过本设计的训练使学生加深对网络协议的理解,并实践制定通信规则,同时通过实践,进一步掌握套接字编程方法,为大型网络编程打下坚实基础。通过本次课程设计的学习与实践,使学生能达到知识与技能两方面结合的目标。1.熟练掌握网络的基本概念和原理。2.熟练掌握网络编程接口Winsock概念及编程原理3.掌握基于TCP/IP的Internet编程技术。4.掌握软件开发的过程及思想。 二课程设计内容本课程设计的内容是通过对传输层协议TCP和UDP和客户/服务器数据通信的原
2、理及方式的掌握,自选任意一种开发工具,利用Winsock控件编写出指定题目的交互信息的软件。本设计有六个题目:网络五子棋下棋、聊天室的设计、POP3客户机程序设计、主机端口扫描程序设计、网络主机扫描程序设计、IP数据包捕获程序。三、基本要求1、每4-5个同学一组,任选一个题目,完成改组的设计任务; 2、设计方案合理,计算正确,提交图说资料完整、清楚、符合规范; 3、课程设计期间的作息时间仍执行正常上课作息时间; 4、借阅相关规范、标准及参考书;四、考核方式本次设计采用上机检查答辩方式进行,一方面学生把所设计的内容进行演示,讲解,另一方面教师提出问题,学生回答。上机演示与设计报告相结合,两者缺一
3、者其考核成绩为不及格;上机演示过程中应能正确解释实现内容及设计思想;设计报告书写工整规范;考核成绩以上机演示为主,以设计报告为辅,可根据报告正确性及书写规范程度及答辩情况,考核成绩可向上或向下浮动一个等级。五、课程设计题目题目一 “局域网五子棋设计”(一)游戏规则:一、阳线和阴线 1、阳线:棋盘上可见的横纵直线。 2、阴线:棋盘上无实线连接的隐形斜线。 二、连:在棋阳线和阴线的任意一条线上形成的有5个或5个以上的同色棋子不间隔地紧紧相连。 五连:在棋盘上形成的5个同色棋子的“连”。 (二)实现提示:一、制定通信规范。二、画出棋盘、棋子,棋盘用画线完成,棋子用画点完成,首先添加一个PaintBo
4、x 1 画线 PaintBox.line (x1,y1) (x2,y2) 2 画点 PaintBox.FillColor = RGB(r,g,b)PaintBox.FillStyle = VbFSSolidPaintBox.Circle (x,y) ,radius 3清除 PaintBox.Cls三、定义一个逻辑变量表示是否可以下棋子,定义一个二维数组存储棋盘上是否有棋子。定义一个变量表示哪一方。四、处理鼠标单击事件,根据逻辑变量的值判断是否处理,处理时将鼠标单击点坐标转换为棋盘坐标,判断棋盘数组中是否有棋子,无棋子则修改数组、画棋子、发送数据并判断胜负。五、接收数据处理:修改棋盘数组、画棋子
5、并判断胜负。六、程序流程图七程序执行界面的介绍甲乙双方程序启动后,界面上显示的菜单如下:这是程序要求具有的基本功能。服务器被动监听,客户机主动要求建立连接。输入远程主机名或远程主机IP地址。连接若建立成功,出现如下界面,界面下方状态栏显示提示信息。此时可以开始下棋。棋局结束后,给出双方输或赢的提示信息,表示下棋结束。此后可以重新开局,再继续新游或退出结束。在此功能基础上还可以加入“和棋”、“悔棋”等功能。题目二 “局域网聊天室设计”(一)聊天规则:1、实现管理员对聊天室的管理和维护,包括聊天室的实时监测、用户的管理,不法信息的删除,基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好
6、友列表;进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等。2、用户注册自己的用户名后可登陆聊天室进行聊天3、用户可进行对所有人的信息交流,也可进行私聊(二)实现提示: TCP/IP数据通信 - “聊天”消息传输格式 客户机 - 服务器()传输“用户名”STX+1+用户名+ETX() 悄悄话STX+2+用户名+”,”+内容+ETX() 对所有人说STX+3+内容+ETX 服务器- 客户机()首次传输在线用户名 STX+1+用户名+ETX()传输新到用户名 STX+2+用户名+ETX ()传输离线用户名STX+3+用户名+ETX ()传输聊天数据STX+4+内容+ETX(注:STX为C
7、HR(2),ETX 为CHR(3)服务器端() 定义一个动态数组存储连接用户。定义一个全局变量存储连接用户的元素个数。() 用一个使用UDP协议的SOCKET套接字完成发送服务器IP地址。 在该控件的数据接收事件中发送服务器IP地址() 用一个使用TCP协议的SOCKET套接字数组完成TCP连接及数据发送和接收,处理它的连接请求事件。()SOCKET套接字的数据到达事件中首先接收数据到一个变量中,然后从这个变量中逐个提取消息,并对每个消息判断消息类型及做相应处理: case 类型1 传输“用户名”修改用来存储连接用户的元素个数的数组 向所有在线用户发送该用户名消息向该用户发送所有在线用户名的消
8、息 case 类型2 悄悄话向源和目标用户发送消息 case 类型3 对所有人说 向所有在线用户发送消息() 服务器端的断开连接事件中修改存储连接用户的元素个数的数组,卸载此控件,向所有在线用户发送消息离线。 客户端() 添加一个SOCKET套接字,窗体加载时使用UDP协议,发广播数据报;等待接收到服务器主机地址后使用TCP协议完成连接及数据传送。() 在客户端的数据到达事件中接受数据,如果客户端协议使用的是UDP协议,关闭客户端连接,重新设置客户端的协议、远程端口号、本地端口等参数,再调用连接方法请求连接,输入用户名,连接成功时发送用户名消息。否则,从接受的数据字符串中逐个提取消息,并对每个
9、消息判断消息类型及做相应处理: case 类型1 首次传输在线用户名 将用户名加入到用户列表中; case 类型2 首次传输在线用户名 将用户名加入到用户列表中; 在聊天内容中添加该用户名加盟; case类型3 传输离线用户名 从用户列表中删除该用户名 在聊天内容中添加该用户名退出; case类型4 传输聊天数据 在聊天内容中添加聊天数据;() 在命令按纽触发事件中发送聊天内容 根据用户列表中的当前用户决定消息类型,并发送聊天数据。题目三 “POP3客户机程序设计”一、电子邮件的基本概念电子邮件服务称为E-mail服务,它是指用户通过Internet收发电子形式的邮件二、电子邮件的工作原理n
10、简单邮件传输协议(SMTP,Simple Mail Transfer Protocol):邮件发送协议 n 邮局协议(POP,Post Office Protocol) :邮件接收协议n 交互式邮件访问协议(IMAP,Interactive Mail Access Protocol) :邮件接收协议 n 电子邮件是一种有连接的服务,采用的传输层协议是TCP协议n 电子邮件的工作过程 n 邮件客户机程序的基本功能 书写与发送邮件 接收、转发、回复与删除邮件 邮箱与通讯薄管理 四、邮件地址与邮件格式n 电子邮件地址格式:用户名主机名 用户名是用户在邮件服务器中的邮箱名,它在同一邮件服务器中是唯一的
11、 主机名是邮箱所在邮件服务器名,用来标识邮件服务器所在域的位置 n 电子邮件包括2部分:邮件头(Mail Header)与邮件体(Mail Body)n 邮件头由邮件的相关信息构成,部分信息由系统自动生成,例如发信人(From)、发送时间(Data)等;其它信息由发件人输入,例如收信人(To)、邮件主题(Subject)与抄送人地址(Cc)等n 邮件体是要发送的邮件正文部分 n 多用途Internet邮件扩展(MIME,Multi-purpose Internet Mail Extensions) 五、POP命令与响应信息n POP客户机与服务器之间传输控制信息,用于完成某个POP操作 POP
12、命令:POP客户机向服务器发送的操作请求 POP响应:POP服务器根据操作情况向客户机返回的信息n POP命令的标准格式:命令名 命令名是对该命令的英文描述缩写,例如USER是用户名的缩写 参数是完成命令使用的附加信息,例如USER的参数为具体的用户名 所有命令由回车(CR)与换行(LF)符表示结束 基本的POP命令包括:USER、PASS、STAT、LIST、RETR、DELE、RSET与QUIT n POP响应的标准格式:响应码 描述信息 响应码是对响应信息的字符串标识,例如 +OK表示成功,-ERR表示失败 描述信息是对响应码的文字描述,USER命令成功的描述是valid,USER命令失
13、败的描述是invalid 六、例题设计要求n 编写一个POP客户机程序,具体要求如下 要求实现的程序为图形化界面,可以输入POP服务的相关信息(包括POP服务器名、用户名与密码),输出交互过程中的POP命令与响应信息,以及从POP服务器的邮箱中获得的邮件信息 要求实现USER、PASS、STAT、RETR与QUIT命令。点击“Connect”按钮,实现USER与PASS命令;点击“Receive”按钮,实现STAT与RETR命令;点击“Quit”按钮,实现QUIT命令n 程序图形界面 七、关键问题分析n 建立TCP连接 POP客户机调用socket()函数建立套接字 POP客户机填充服务器的套
14、接字地址 POP客户机调用connect()函数请求与服务器建立连接 POP客户机接收与分析服务器返回的响应信息 n 登录POP服务器 登录POP服务器使用USER与PASS命令,分别用来输入用户名与密码 USER与PASS命令按规定顺序出现 POP客户机向服务器发送USER命令POP客户机向服务器发送PASS命令n 接收邮箱中的邮件 STAT命令用来返回邮箱的统计信息,包括邮件数量与字节总数 RETR命令用来返回邮箱中的指定邮件,包括邮件头与邮件正文 n 退出POP服务器 POP客户机向服务器发送QUIT命令 断开POP客户机与服务器之间的控制连接 释放控制连接使用的套接字 题目四“主机端口
15、扫描程序设计”一、传输层的基本概念n 在OSI与TCP/IP参考模型中,传输层(Transport Layer)都是其中的重要层次n 传输层的主要功能:为应用进程提供可靠的端到端服务,即实现网络环境中的分布式进程通信 n 网络各层的编址方式 二、主要的传输层协议n 传输控制协议(TCP,Transmission Control Protocol):可靠的、面向连接的传输层协议,将源主机的数据无差错地传输到目的主机n 用户数据报协议(UDP,User Datagram Protocol):不可靠的、无连接的传输层协议 n TCP数据包的基本结构 n UDP数据包的基本结构 三、端口号的分配方法n
16、 端口是指网络服务在传输层的地址,它是一个在065535之间的整数n TCP端口分配给TCP服务使用,UDP端口分配给UDP服务使用 n 端口可以分为3种类型:熟知端口、注册端口与临时端口n 端口分配由Internet赋号管理局(IANA)完成 n 主要的TCP熟知端口号 端口号 服务进程 说明 2OFTP文件传输协议(数据连接)21FTP文件传输协议(控制连接)23Telnet虚拟终端网络25SMTP简单邮件传输协议53DNS域名服务器80HTTP超文本传输协议110POP邮局协议143IMAP交互式邮件访问协议n 主要的UDP熟知端口号端口号 服务进程 说明 53DNS域名服务器67BOO
17、TPS引导程序协议(服务器)68BOOTPC引导程序协议(客户机)69TFTP简单文件传输协议111RPC远程过程调用123NTP网络时间协议161SNMP简单网络管理协议162SNMP简单网络管理协议(Trap)四、端口扫描的工作原理n TCP端口扫描 Connect扫描:调用Connect系统调用尝试连接目的主机的指定端口 SYN扫描:向目的主机的指定端口发送SYN=1的TCP包 FIN扫描:向目的主机的指定端口发送FIN=1的TCP包 n UDP端口扫描 端口扫描程序向目的主机的指定端口发送零字节的UDP包 如果没有接收到任何数据包,并且确定目的主机开启,说明该端口处于开启状态 如果接收
18、到端口不可达的ICMP包,说明该端口处于关闭状态 五、设计要求n 编写一个主机端口扫描程序,具体要求如下 要求实现的程序为图形化界面,可以输入扫描的目的主机的IP地址与端口,输出端口的状态(Open或Close) 要求扫描任意支持TCP/IP的主机中的一个端口。点击“Tcp Scan”按钮,扫描TCP端口;点击“Udp Scan”按钮,扫描UDP端口n 程序图形界面 六、关键问题分析n TCP端口扫描 端口扫描程序调用socket()函数建立套接字,SOCK_STREAM表示流式套接字 调用connect()函数请求与目的主机的指定端口建立连接 根据TCP连接是否成功建立,判断目的主机中的端口
19、状态 n UDP端口扫描 端口扫描程序调用socket()函数建立套接字,SOCK_DGRAM表示数据报套接字 调用ioctlsocket()函数将套接字设置为非阻塞 调用sendto()函数发送UDP数据包 调用recvfrom()函数接收返回的错误码,判断目的主机的端口状态 七、编写一个主机端口扫描程序,具体要求如下 要求实现的程序为图形化界面,可以输入扫描的目的主机的端口范围(例如1128),输出所有端口的状态(Open或Close) 要求扫描任意支持TCP/IP的主机中的多个端口。点击“Tcp Scan”按钮,扫描TCP端口;点击“Udp Scan”按钮,扫描UDP端口n 程序图形界面
20、 题目五 “网络主机扫描程序设计”一、ICMP协议的基本概念n IP协议提供无连接的、尽力而为的服务,源节点无法知道IP包是否到达目的节点,以及在传输过程中出现过哪些错误 n IP协议缺少差错控制与查询机制,设计因特网控制报文协议(ICMP,Internet Control Message Protocol)就是为了解决这个问题 n ICMP协议本身是一个网络层的协议。ICMP数据包不直接传送给数据链路层,而是封装成IP数据包后发送给数据链路层 二、ICMP协议的主要功能n ICMP差错控制功能 目的站不可达:IP包的目的主机无法到达 源站抑制:路由器与主机的缓冲区长度有限 超时:路由表出现问
21、题导致寻址错误 参数出错:IP包的头部出现错误 路由重定向:网络拓扑变化导致路由表变化n ICMP查询功能 回送请求:路由器或目的主机是否可以到达 时间戳请求:IP包在两台主机之间往返时间 地址掩码请求:获得目的主机的子网掩码 路由器查询:获得路由器的路径选择信息 三、ICMP数据包的结构n ICMP数据包的基本结构 n ICMP包的主要类型 ICMP差错控制包:3表示目的站不可达,4表示源站抑制,5表示路由重定向,11表示超时,12表示参数出错 ICMP查询包:0与8表示回送请求与响应,9和10表示路由器查询与通告,13与14表示时间戳请求与响应,17与18表示地址掩码请求与响应四、PING
22、程序的工作原理n PING(Packet Internet Grope)称为因特网包探索器,是一种测试网络连通性的程序n PING程序向目的主机发送一个ICMP回送请求,并接收来自该主机的ICMP回送响应n Ping是Windows系统自带的可执行命令,通过它可以检查网络是否连通 n 网络主机扫描的工作原理 n ICMP回送请求与响应格式 五、设计要求n 编写一个网络主机扫描程序,具体要求如下 要求实现的程序为图形化界面,可以输入扫描的目的主机的IP地址,输出目的主机的状态(Open或Close) 要求扫描支持ICMP协议的单台目的主机。点击“Scan”按钮,实现对目的主机的扫描过程 n 程序
23、图形界面 六、关键问题分析n 创建原始套接字 调用socket()函数创建原始套接字,SOCK_RAW表示原始套接字,IPPROTO_ICMP表示ICMP协议 调用setsockopt()函数设置发送与接收超时时间,SO_SNDTIMEO表示发送超时,SO_RCVTIMEO表示接收超时 n 定义ICMP头部的数据结构 构造ICMP头部的数据结构,包括1字节的类型、1字节的代码、2字节的头部校验和、2字节的标识符与2字节的序号 构造IP头部的数据结构 n 填充与发送ICMP数据包 填充ICMP头部的各个字段,包括类型、代码、校验和、标识符与序号,回送请求类型为8,回送请求代码为0 调用sendt
24、o()函数来发送ICMP数据包 n 接收与解析ICMP数据包 用recvfrom()函数来接收ICMP数据包 依次解析ICMP头部的各个字段,包括类型、代码、校验和、标识符与序号,回送响应类型为0,回送响应代码为0 七、 编写一个网络主机扫描程序,具体要求如下 要求实现的程序为图形化界面,可以输入扫描的目的主机的IP地址范围,例如5,输出所有目的主机的状态(Open或Close) 要求扫描支持ICMP协议的多台目的主机。点击“Scan”按钮,实现对目的主机的扫描过程 n 程序图形界面 题目六 “IP数据包捕获程序设计”一、网络层的基本概念n OSI参
25、考模型中的网络层(Network Layer)对应于TCP/IP参考模型中的互联层(Internet Layer)n 网络层的主要功能:为数据传输提供路由选择、流量与拥塞控制等功能 n 网络层协议的核心是互联网协议(IP,Internet Protocol)n 控制协议作为IP协议的补充来使用,包括ICMP、IGMP、ARP与RARP等n 路由协议实现路由器对IP包的投递,包括RIP、BGP与OSPF等二、IP协议的主要特点n IP协议提供“尽力而为”的数据包传输服务n IP协议是点到点的网络层协议n IP协议可以向传输层屏蔽物理网络的差异 n IP数据包的传输过程 三、IP数据包的结构n I
26、P数据包的基本结构 n IP数据包的头部 版本(Version):IP包的协议版本 头部长度(Header Length):IP头部的长度 服务类型(Service Type): IP包如何处理 总长度(Total Length):IP数据包的总长度 标识符(Identification):IP分片属于的IP包 标志位(Flags):IP包的分片标识n IP数据包的头部 片偏移(Fragment Offset):IP分片在IP包中的相对位置 生存周期(Time To Live):IP包的传输寿命 协议(Protocol):IP包的上层协议类型 头部校验和(Head Checksum):IP头部是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区车位租赁协议样本
- 四上《地方课程》教学计划及教案
- 湿地公园生态工程合同
- 宠物用品壁挂炉安装服务合同
- 乡村公路毛石挡土墙施工合同
- 文化遗址反三违保护条例
- 企业资金拆借合同
- 展览厅照明系统设计施工合同
- 宣传用品租赁终止合同
- 无人驾驶技术董事长招聘合同
- 行政服务中心窗口工作人员手册
- 最新患者用药情况监测
- 试桩施工方案 (完整版)
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- 中工商计算公式汇总.doc
- 深圳市建筑装饰工程消耗量标准(第三版)2003
- 《初中英语课堂教学学困生转化个案研究》开题报告
- 钢筋桁架楼承板施工方案
- 恒温箱PLC控制系统毕业设计
- 176033山西《装饰工程预算定额》定额说明及计算规则
评论
0/150
提交评论