课件演示12.ppt

上传人:本田雅阁 文档编号:2602865 上传时间:2019-04-16 格式:PPT 页数:38 大小:600.01KB
返回 下载 相关 举报
课件演示12.ppt_第1页
第1页 / 共38页
课件演示12.ppt_第2页
第2页 / 共38页
课件演示12.ppt_第3页
第3页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《课件演示12.ppt》由会员分享,可在线阅读,更多相关《课件演示12.ppt(38页珍藏版)》请在三一文库上搜索。

1、大型网络软件综合课程设计,课程概况,主讲教师:王占杰 wzj_ 助教(计算机系):张运洋,授课对象:计算机系本科生(第七学期) 持续时间:1周(1周5天/周4.8学时/天24学时) 学分:1学分 考试类别:(必修 ) 百分制,大型网络设计的任务,1、设计并实现Web网络上的应用软件 2、网络接口的监听及其入侵的检测 3、网络数据库的设计与应用* 4、城市公交查询系统的设计与实现 *针对有一定编程能力的同学而设定的。要求熟练掌握sql语言以及熟悉mysql_server,并能够进行多层结构设计的同学可申请该题目。,大型网络设计1-任务要求,该设计的目标 设计并实现Web网络上的应用软件 任务说明

2、 本项目划分为二个子任务,即:浏览器(browser),web服务器(web server)和应用程序(application)。,它们之间的关系,客户端( client ),服务器端( server ),browser与web server是client/server关系。,browser的组成成分及其与web server的关系,Browser的具体要求,1开发运行平台与工具 browser可采用文本界面或图形界面,选择其中一种: 文本(text)界面:Linux平台,C/C+语言; 图形界面:Windows平台,VC+/VB等语言。 2HTML语法分析 至少能处理Hyperlink(超级

3、链接)和Form(表单),以及其他的一些基本功能(HTTP2.0以上)。 3HTTP协议客户端实现 GET方法和POST方法(请求部分)。 4TCP/IP网络编程 使用socket接口实现客户端与web server的通信。,Web server,Web server的实现主要包括三个部分:建立服务器的进(线)程结构,通过socket实现网络通信,实现HTTP协议和数据库的应用。 Web server的具体要求如下: 1开发运行平台工具:linux,C/C+ 2Web server 的进(线)程结构设计:采用面向连接的并发服务器(后台daemon进程),可选择如下实现方法如: *针对每一请求建

4、立一子进程为之服务; *针对每一请求建立一线程为之服务; *预先建立进程池,针对每一请求启动一子进程为之服务; *预先建立线程池,针对每一请求启动一线程为之服务; *其它方法。,Web server的具体要求,3网络编程 使用socket实现服务器端与browser的通信。 4HTTP协议服务器端实现 GET方法和POST方法(响应部分)。 5.数据库应用 为数据库应用程序建立中间件,通过中间件和环境设置实现web server与数据库的查询 。,Web应用,1开发运行平台与工具 操作系统:linux;数据库:MySQL等;语言:脚本语言(PHP,Perl)或程序设计语言(C,C+);web

5、server接口:数据库中间件。 2脚本的解释程序 基本功能(赋值,if,while/for语句);数据库访问功能; 3简单的数据库应用系统。例如:BBS系统或社区,功能如下: 管理员功能:建立/删除版面,任命/撤销版主 版主功能:删除帖子,封杀用户 用户管理:发表/回答帖子 登录管理:建立/删除用户,口令验证 4数据库设计 信息存入数据库(MYSQL),由用户在浏览器上,经由web应用程序访问。,人员组织与分工,本课程设计1的任务分为二个子任务:browser设计与实现,web server设计与web应用设计的实现。 2-4人为一小组,每个小组选择上述一个子任务,并完成与另一相关小组的软件

6、连接; 学生以班为单位组成几个大组,每个大组的人数不得超过7人,二个小组联合为一大组,独立完成本课程设计项目;,实现要求,u 实现重点: browser重点在用户界面和HTML语法分析;web server重点在进程结构与脚本解释及数据库应用。 u 每个小组最低限度应完成自己选择的子任务 首先应能与商用的软件实现连接,然后与其它小组的相应软件连接,在技术上证明其可行性。 u 平台与实现语言工具 原则上应在指定范围内选择,如要变更应报告教师批准。,预备知识,根据任务需要查询有关文献或网上资料。 UNIX与网络编程(参见有关课程) HTTP协议(HTTP,RFC2616) HTML语言(http:

7、/www.w3.org,RFC1866,HTML2.0,Nov 1995) 脚本语言:PHP4,Perl,shell, 数据库:MySQL,,评分标准,1符合课程的基本要求(50%) 2设计思想的创新(减少雷同10%) 3尽量不采用现成软组件和高级软件工具10% 4本人在任务中的作用和工作量20% 5书面作业内容完整,格式符合要求10%,大网综合设计2-入侵的检测,任务: 该设计主要通过对网络接口的监听实现入侵的检测,完成网络上报文的实时监听。 动态地分析报文的信息,观察网络中是否有违反安全策略的行为,并准确反映出该机在网络环境下,有无受到攻击以及了解网络的安全状况。,设计的目的,本设计主要通

8、过网络接口的监测和报文的分析,使学生能更深入的理解网络工作以及入侵检测原理,了解TCP/IP相关知识,通过使用Libpcap库或winpcap进行网络编程,增强学生动手能力,提高网络编程方面的技能。,设计2的具体任务,1、编写网络接口监听程序,分析监听到报文的头,记录接受到该报文的时间,源主机的IP及MAC地址和该报文所使用的协议,如果该报文使用的是TCP或UDP的话记录其使用的端口号 2、监听ARP广播,建立ARP表,实时维护ARP表,动态的监视网上其他机器对本机的访问情况。 3、给出监听与分析报告,显示其结果。,设计2的要求,1、报告要写明设计原理及工作原理; 2、每组13人,要有明确的分

9、工; 3、报告中要有分析和试验结果,不少于6000字,至少要有10篇参考文献。,设计2的评分标准,1、设计原理及工作原理占50%; 2、分析和试验结果占30%; 3、程序占10%; 4、工作量10%。,时间要求,第一天:明确任务,理解要求。 第二天:查阅资料,理解相关技术,包括系统软件和网络,确定分工与设计 第三、四天:整理与分析资料,进行设计 第五、六天:掌握核心技术,修改设计,编写设计报告,作业与格式的要求,课程作业要求以小组任务为单位; 每小组作业要求: 书面报告(不少于6000字); 格式:A4纸打印, 正文一律五宋体,页码小五号居中底部,其余格式要求见本科毕业论文的模板。,网络监控,

10、绝大多数的现代操作系统都提供了对底层网络数据包捕获的机制,在捕获机制之上可以建立网络监控(Network Monitoring)应用软件。 网络监控也常简称为sniffer,最初的目的是对网络通信情况进行监控,以对网络的一些异常情况进行处理。但随着互联网的普及和网络攻击行为的频繁出现,保护网络的运行安全也成为监控软件的另一个重要目的。 例如,网络监控在路由器,防火墙、入侵检查等方面使用也很广泛。除此而外,它也是一种比较有效的黑客手段,例如,美国政府安全部门的“肉食动物“计划。,包捕获机制,从广义的角度上看,一个包捕获机制包含三个主要部分: 最底层是针对特定操作系统的包捕获机制,最高层是针对用户

11、程序的接口,第三部分是包过滤机制。 不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。 数据包常规的传输路径 依次为网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤/缓冲等相关处理,最后直接传递到应用程序。 包捕获机制并不影响操作系统对数据包的网络栈处理。对用户程序而言,包捕获机制提供了一个统一的接口,使用户程序只需要简单的调用若干函数就能获得所期望的数据包。捕获机制对用户是透明,包过滤机制可根据用户的要求对数据包进行筛选,最终只把满足过滤条件的数据包传递给用户程序。,libpcap应

12、用程序框架,libpcap提供了独立的网络数据包捕获接口,可在大多数unix平台下工作。该软件可从 http:/www.tcpdump.org/ 下载,然后依此执行下列三条命令即可安装,但如果希望libpcap能在Linux上正常工作,则必须使内核支持“packet“协议,也即在编译内核时打开配置选项 CONFIG_PACKET(选项缺省为打开)。 ./configure ./make ./make install 在windows平台下,一个与libpcap 很类似的函数包 winpcap 提供捕获功能,其官方网站是http:/winpcap.polito.it/。,一个libpcap简单的

13、程序框架:,char * device; /* 用来捕获数据包的网络接口的名称 */ pcap_t * p; /* 捕获数据包句柄,最重要的数据结构 */ struct bpf_program fcode; /* BPF 过滤代码结构 */ /* 第一步:查找可以捕获数据包的设备 */ device = pcap_lookupdev(errbuf); /* 第二步:创建捕获句柄,准备进行捕获 */ p = pcap_open_live(device, 8000, 1, 500, errbuf); /* 第三步:如果用户设置了过滤条件,则编译和安装过滤代码 */ pcap_compile(p,

14、/* 第六步:对以太头部进行分析,判断所包含的数据包类型,做进一步的处理 */ if(eth-ether_type = ntohs(ETHERTYPE_IP) if(eth-ether_type = ntohs(ETHERTYPE_ARP) /* 最后一步:关闭捕获句柄,一个简单技巧是在程序初始化时增加信号处理函数, 以便在程序退出前执行本条代码 */ pcap_close(p);,检查网络设备,libpcap 程序首先是在系统中找到合适的网络接口设备。 网络接口在Linux网络体系中是一个很重要的概念,它是对具体网络硬件设备的一个抽象,在它的下面是具体的网卡驱动程序,而其上则是网络协议层。

15、Linux中最常见的接口设备名eth0。eth0对应了实际的物理网卡,数据包的发送和接收都要通过 eht0。如果计算机有多个网卡,则还可以有更多的网络接口,如eth1,eth2 等等。 调用命令ifconfig可以列出当前所有活跃的接口及相关信息,注意对eth0的描述中既有物理网卡的MAC地址,也有网络协议的IP地址。查看文件/proc/net/dev也可获得接口信息。,获得可用的网络设备名,libpcap调用pcap_lookupdev()函数获得可用网络接口的设备名。利用函数 getifaddrs() 获得所有网络接口的地址,以及对应的网络掩码、广播地址、目标地址等信息,再利用 add_a

16、ddr_to_iflist()、add_or_find_if()、get_instance() 把网络接口的信息增加到结构链表 pcap_if 中,最后从链表中提取第一个接口作为捕获设备。 其中 get_instanced()的功能是从设备名开始,找第一个是数字的字符,做为接口的实例号。网络接口的设备号越小,则排在链表的越前面,因此,通常函数所返回的设备名为 eth0。,winpcap,winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。 开发winpcap这个项目的目的在于为win32应用程序提供一个访问网络底层的能力。,winp

17、cap 的功能,1、捕获原始数据包,包括共享网络上各主机发送/接收的以及相互之间交换的数据包; 2、在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉; 3、在网络上发送原始的数据包; 4、收集网络通信过程中的统计信息。 winpcap的主要功能在于独立于主机协议(如TCP-IP)而发送和接收原始数据包。它只是仅监听共享网络上传送的数据包。,Winpcap的内部结构,Winpcap是针对Win32平台上的抓包和网络分析的一个架构。它包括一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)。 WinPcap 的目标是数据捕捉(Packet

18、 Capture),然而,它也提供了针对很多其它有用的特性。在其中,可以找到一组很完整的用于发送数据包的函数。,Winpcap的各个组成部分,Winpcap提供了两个不同的库: packet.dll和wpcap.dll。前者提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap一致的高层抓包函数库。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。 网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap的核心部分,它是Winpcap完成困难工作的组

19、件。它处理网络上传输的数据包,并且对用户级提供可捕获(capture)、发送(injection)和分析性能(analysis capabilities)。,Winpcap的各个组成部分,Packet.dll 是一个动态链接库,提供一些低层的函数,用来安装,启动和停止NPF设备驱动。 从NPF驱动接收数据包,通过NPF驱动发送的数据包 ,获取可用的网络适配器列表,比如设备描述,地址列表和掩码,查询并设置一个低层的适配器参数。 这个库的另一个重要特性,就是维护NPF驱动。 Packet.dll 的源代码是开放的,并且有完整的文档。,抓包与过滤,抓包: 数据包过滤器,它决定着是否接收进来的数据包并

20、把数据包拷贝给监听程序。 WinPcap和Libpcap的最强大的特性之一,是拥有过滤数据包的引擎。 它提供了有效的方法去获取网络中的某些数据包,这也是WinPcap捕获机制中的一个组成部分。 用来过滤数据包的函数是 pcap_compile() 和 pcap_setfilter() 。,使用WinPcap进行编程,用 Microsoft Visual C+ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤: 在每一个程序中,将 pcap.h 含(include)进来。 设置VC+的链接器(Linker),把wpcap.lib库文件包含进来。 wpcap.lib可以在WinPcap

21、中找到。 设置VC+的链接器(Linker),把ws2_32.lib库文件包含进来。,Gcc和Unix,应用与使用,有了源文件之后,就可以对其进行操作了。既可对源文件进行编辑,编译和连接来得到可执行文件。一般用gcc工具包来完成这件事。 如:gcc o hello hello.c 此条命令就会将hello.c的c语言程序直接编译成可执行文件,名字为hello。 有了可执行文件后,就能执行它了,直接输入文件名就可以了,但要包括绝对路径名和相对路径名。如:前目录是/home/person/student01 可直接输入./hello (./表示当前目录)。,常用系统使用命令,Ls:显示当前目录下的所有文件。 Cd :进入某个目录。 Logout:退出当前帐户。 Mkdir:建立新文件夹。 Rm :删除文件和文件夹。 密码设置,Passwd命令就可完成。,祝同学们取得好的成绩!,希望你们明天更辉煌!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1