股票软件监控的设计与实现毕业设计论文.docx

上传人:b****4 文档编号:24874981 上传时间:2023-06-02 格式:DOCX 页数:50 大小:617.98KB
下载 相关 举报
股票软件监控的设计与实现毕业设计论文.docx_第1页
第1页 / 共50页
股票软件监控的设计与实现毕业设计论文.docx_第2页
第2页 / 共50页
股票软件监控的设计与实现毕业设计论文.docx_第3页
第3页 / 共50页
股票软件监控的设计与实现毕业设计论文.docx_第4页
第4页 / 共50页
股票软件监控的设计与实现毕业设计论文.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

股票软件监控的设计与实现毕业设计论文.docx

《股票软件监控的设计与实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《股票软件监控的设计与实现毕业设计论文.docx(50页珍藏版)》请在冰豆网上搜索。

股票软件监控的设计与实现毕业设计论文.docx

股票软件监控的设计与实现毕业设计论文

北京信息科技大学

毕业设计(论文)

题目:

股票软件监控系统的设计与实现

摘要

网络以及股票行业的发展在为我们带来高效率、创造巨大价值的同时,也给我们带来了一系列不可避免的问题:

员工工作效率低下,工作质量受到影响等等。

因此,一个关于规范管理股票软件使用的系统显得异常重要。

本文介绍针对于股票软件的上网行为管理系统,详细解说从开发环境搭建到软件测试的全过程,它通过数据包捕获机制捕获数据,分析数据得出股票软件交互信息的协议以及其他软件类型、来源MAC地址等信息,然后通过软件类型对其进行实时监控、阻断。

同时还融入了用户注册登陆的功能,对保护系统的安全起到了一定的作用。

关键字:

数据包捕获、协议分析、上网行为管理、数据监控阻断

Abstract

Networksandsharestheindustry'sdevelopmentofhighefficiencyforustocreatetremendousvalue,butalsobroughtusaseriesofunavoidableproblems:

lowemployeeproductivity,workquality,etc.areaffected.Thus,astockofstandardmanagementsystemsoftwarewasextremelyimportant.Thisarticledescribesthesoftwareforonlinebehaviorinthestockmanagementsystem,adetailedexplanationofthesoftwarefromthedevelopmentenvironmentsetuptotesttheentireprocess,itiscapturedbythedatapacketcapturemechanismdata,analysisofdataobtainedintheagreementshareinformationandinteractwithsoftwareothersoftwaretypes,sourcesMACaddressinformation,andthentypetheirreal-timecontrolsoftware,block.Alsoregisteredintotheuserloginfunctiontoprotectthesecurityofthesystem.

Keywords:

Packetcapture,protocolanalysis,Internetbehaviormanagement,datacontrolblock

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

lu第1章引言

1.1本章引论

1.1.1背景

虽然中国的证券历史并不悠久,但随着经济快速的增长,证券行业也飞速发展,越来越多的群众涉及证券。

股票是金融产品中最为广大人民熟知的一种,因此对股票的分析研究也越来越需要。

随着网络的发展,网上炒股成了人们理财的便利渠道,因此也越来越多的专业人士投入到股票软件的开发当中。

市场上有着各种各样的股票软件,如“大智慧”、“国泰君安”等;也有正在开发股票软件的专业公司,他们以金融结构化产品和金融衍生产品为主要服务范围,从事以开发创拓股票分析系列软件、开发财经门户网站和股票经纪服务为主的金融产品服务。

面对各种各样的股票软件,为了不耽误正常工作,公司等机构对其的监控管理成了首要问题,本课题的研究实现对于股票软件的监控管理有着重大的意义。

1.1.2发展现状

目前,国内研发软件监控系统著名的单位有:

深圳任子行网络技术有限公司,深信服科技有限公司,成都天易成软件有限公司等等。

他们研发了各种功能的网络管理系统,如,任子行公司开发的任子行互联网管理系统V4.5以及天易成网络管理系统。

其中天易成网管系统集成了当前几乎所有流行的股票软件的监控,如:

大智慧、同花顺、广发至强版、龙卷风、钱龙、国元证券软件、分析家2006、麒麟短线王至尊版、光大证券超强版、光大证券股票交易/基金交易、中投证券、广通达等,并且天易成网管对股票软件的控制极为简单,点点鼠标就可以实现对这些股票软件的完全封堵,同时天易成软件公司也可以根据客户的需求定制特定的股票软件封堵规则,保证了客户可以实时控制各种股票软件。

1.1.3研究的意义

研究本课题能最基础的解决了各种股票软件的监控管理,通过对股票监控系统的学习开发还可以让读者掌握一些其他网络系统、网络安全系统核心技术。

对这个项目课题的完整设计实现有助于读者对学过课程的融会贯通,如对计算机网络,C语言,信息安全技术,数据结构等等的运用开发。

能熟练掌握Linux操作系统下的C语言编程,熟练掌握基于TCP/IP协议的网络程序设计与开发技术,熟悉基于开源软件的系统设计与开发流程,掌握应用协议特征分析方法,积累项目开发经验。

1.2研究内容和技术难点

1.2.1研究内容

主要工作是设计实现后台监控程序,采用C语言开发,其网络抓包与底层协议分析平台基于开源软件包libpcap、libnet、libnids搭建,通过对流行股票软件“大智慧”、“国泰君安”,“同花顺”等进行实际抓包采样,分析获得数据包的源地址、源端口、目的地址、目的端口、所使用的协议等等数据,确定其应用协议特征,并基于此特征实现对股票软件的监控。

具体研究内容主要包括:

基于linux操作系统和开源软件包搭建底层平台;分析确定股票软件应用协议特征;采用C语言编写后台程序完成对股票软件的识别,并将结果输出。

具体平台搭建如下图所示:

图1.1平台构造图

1.2.2技术难点

本课题实施方案的重点在于平台的搭建和编写后台监控程序以及对软件传递数据的抓包采样,分析捕获的数据报文源IP地址、目标IP地址、端口、协议。

由于网络传递数据复杂,通信协议不同,异构性突出等原因对课题的研究开发增加了不少难度。

1.3论文贡献

由于计算机网络技术的高速发展,股票交易对网络需求的日益增加以及越来越多的群众涉及股票,因此,采用监控系统对股票软件的管理成为一个重要的研究热点。

基于当前和未来的实际应用需求,本文研究了股票软件的监控管理技术,主要贡献包括:

1.提出了基于linux+apache+mysql+php平台的网站前台界面开发,让读者对于LAMP这个网站开发平台有更多深入的了解。

2.提出了linux操作系统下mysql的安装、配置及使用。

Mysql是一个小型关系型数据库管理系统,被广泛地应用在Internet上的中小型网站。

3.提出了基于libpcap+libnet+libnids构造的协议分析平台,本文重点对网络协议经行深入探讨,使读者迅速掌握协议分析技术并了解各个网络协议的原理,同时简单介绍libpcap+libnet+libnids的功能。

1.4论文结构

根据研究内容和相应的研究成果,本文的组织结构如下:

第2章详细介绍本文研究所涉及的软件开发包。

第3章详细讲解相关机制的工作原理。

第4章对本课题进行需求分析和初步设计,完成大概规划。

第5章根据前一章的分析,进行系统开发的总体设计,包括平台的搭建,数据库建立,前台界面实现,数据包捕获分析等主要系统模块的实现。

第6章系统测试,了解软件测试基本知识和方法,对各个模块功能进行测试。

结论

参考文献

第2章开发平台及软件简介

软件的开发工具很多,了解软件开发所用的平台和工具有助于读者了解软件的性能和实现,所以这里专门用一章介绍一下本系统所用的平台以及软件的基本情况及安装方法。

2.1LAMP平台简介

LAMP这个特定名词最早出现在1998年,用来指代Linux操作系统、Apache网络服务器、Mysql数据库和PHP脚本语言的组合(由四种技术的开头字母组成)。

随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。

LAMP构成了一个强大的、高性能的web应用平台,具有易于开发、更新速度快、安全性高、成本低等特点,因此被许多开发者视为“黄金组合”。

当前,国外最知名的三大BBS软件提供商IPB、VBB、PHPBBS、均基于LAMP平台;在国内,排名前200名的网站就有61%采用LAMP技术。

接下来详细介绍LAMP最主要的两部分:

Mysql数据库及Apache网络服务器。

2.1.1Mysql数据库简介

Mysql是瑞典MySQLAB公司开发的一个多人使用的sql资料库Server。

Mysql主要的目的是快速、稳定和容易使用,因此他是Linux最常用的数据库系统。

根据资料显示Mysql具有以下特性:

1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

2.支持AIX、FreeBSD、HP-UX、Linux等多种操作系统。

3.为多种编程语言提供了API。

这些编程语言包括C、C++、PHP等。

4.支持多线程,充分利用CPU资源。

5.优化的SQL查询算法,有效地提高查询速度。

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持。

7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

8.提供用于管理、检查、优化数据库操作的管理工具。

9.可以处理拥有上千万条记录的大型数据库。

2.1.2Apache网络服务器简介

Apache是世界使用排名第一的web服务器软件,他几乎可以运行在所有广泛使用的计算机平台上,Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。

如同前文介绍的Mysql一样,Apache也有着独特的性质:

1.支持HTTP/1.1通信协议

2.拥有简单而强有力的基于文件的配置过程

3.支持通用网关接口

4.支持基于IP和基于域名的虚拟主机

5.支持多种方式的HTTP认证

6.集成Perl处理模块

7.集成代理服务器模块

8.支持实时监视服务器状态和定制服务器日志

9.支持服务器端包含指令(SSI)

10.支持安全Socket层(SSL)

11.支持FastCGI

2.2网络安全开发包简介

网络安全开发包的种类非常繁多,其实现的功能也千差万别,新的网络安全开发包不断涌现,很多不成熟的网络安全开发包在不断壮大。

本研究课题中所已使用的有以下3个:

网络数据包捕获开发包libpcap、数据包构造及发送开发包libnet和网络入侵检测开发包libnids。

其中在本课题中主要研究数据包的捕获及分析,所以涉及较少的数据包构造,因此以下只详细介绍一下libpcap和libnids这两个开发过程中最重要的开发包。

2.2.1数据包捕获开发包libpcap

Libpcap是由Berkeley大学的VanJacobson、CraigLeres和StevenMcCanne编写的,该函数库支持linux、solaris和bsd系统平台。

其开发语言是C语言,也有其他语言支持的libpcap。

Libpcap(thepacketcapturelibrary)是一个平台独立的网络数据包捕获开发包。

他是一个高层的编程接口,隐藏了操作系统的细节,可以捕获网络上的所有数据包,包括到其他主机的数据包。

Libpcap中利用了BPF过滤机制,可以过滤掉网络上不需要的数据包从而捕获用户感兴趣的数据包,并且还可以把数据包信息从文件中读出。

总结起来,libpcap的作用主要有以下三个方面:

1.捕获各种网络数据包,这是该开发包最大的功能。

2.过滤网络数据包,使用一个非常简单的过滤规则过滤各种数据包

3.分析网络数据包,可以对数据包进行分析操作,并且提供数据的基本信息,如捕获时间,数据包长度等等。

4.存储网络数据包,可以不马上对其进行分析,存储起来留后分析

2.2.2网络入侵检测开发包libnids

Libnids(librarynetworkinstrusiondetectionsystem)是一个用于网络入侵检测开发的专用编程接口。

Libnids主要功能包括捕获网络数据包,IP碎片重组,TCP数据流重组以及端口扫描攻击检测和异常数据包检测等。

Libnids是基于libpcap和libnet开发的,所以他具有两者的优点,具有较强的移植性,效率高,使用简单。

它提供的流重组功能对于分析基于TCP协议的各种协议都能胜任,IP碎片进行重组以及端口扫描检测对于分析网络异常情况也是非常有效的。

总结以来,libnids可以使用于以下几个方面,但不局限于此:

1.入侵检测系统,实现入侵检测系统中非常基础的功能,如数据捕获,协议分析接口的,为入侵检测系统更深入的开发提供了开发接口。

2.网络协议分析,具备libpcap的功能。

并在libpcap基础开发了更多的功能,不仅可以分析单个TCP数据包,还可以分析整个TCP连接过程。

对于分析FTP协议,HTTP协议等基于TCP的应用协议是有非常重要的作用的。

3.网络嗅探,主要检测网络信息,查看网络内容。

针对不同的目的有各种各样的网络嗅探。

另外,利用libnids还可以实现网络内容重现,还原网络数据,如pop3协议中传输的电子邮件等。

第3章相关工作原理分析

对一个系统进行研究开发之前,必须对其过程及各部分工作原理有深刻的了解。

因此,以下一起探讨本课题相关的原理

3.1数据包捕获原理

以本文中的捕获数据包开发包libpcap为例说明捕获原理,其数据包捕获机制流程如图:

图3.1数据包捕获流程图

3.1.1Libpcap的工作原理

本文捕获数据包程序是通过libpcap开发,libpcap(PacketCaptureLibrary),即数据包捕获函数库,是Unix/Linux平台下的网络数据包捕获函数库。

它是一个独立于系统的用户层包捕获的API接口,为底层网络监测提供了一个可移植的框架。

 libpcap主要由两部份组成:

网络分接头(NetworkTap)和数据过滤器(PacketFilter)。

网络分接头从网络设备驱动程序中收集数据拷贝,过滤器决定是否接收该数据包。

Libpcap利用BSDPacketFilter(BPF)算法对网卡接收到的链路层数据包进行过滤。

BPF算法的基本思想是在有BPF监听的网络中,网卡驱动将接收到的数据包复制一份交给BPF过滤器,过滤器根据用户定义的规则决定是否接收此数据包以及需要拷贝该数据包的那些内容,然后将过滤后的数据给与过滤器相关联的上层应用程序。

Libpcap的包捕获机制就是在数据链路层加一个旁路处理。

当一个数据包到达网络接口时,libpcap首先利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF过滤器。

BPF过滤器根据用户已经定义好的过滤规则对数据包进行逐一匹配,匹配成功则放入内核缓冲区,并传递给用户缓冲区,匹配失败则直接丢弃。

如果没有设置过滤规则,所有数据包都将放入内核缓冲区,并传递给用户层缓冲区。

3.1.2Libpcap的抓包框架:

1)查找网络设备

函数名称:

char*pcap_lookupdev(char*errbuf)

函数功能:

用于返回可被pcap_open_live()或pcap_lookupnet()函数调用的网络设备名指针。

返回值:

如果函数出错,则返回NULL,同时errbuf中存放相关的错误消息。

2)获取数据包捕获描述字

函数名称:

pcap_t*pcap_open_live(char*device,intsnaplen,intpromisc,intto_ms,char*ebuf)

函数功能:

获得用于捕获网络数据包的数据包捕获描述字。

参数说明:

device参数为指定打开的网络设备名。

snaplen参数定义捕获数据的最大字节数。

Promisc指定是否将网络接口置于混杂模式。

to_ms参数指*定超时时间(毫秒)。

ebuf参数则仅在pcap_open_live()函数出错返回NULL时用于传递错误消息。

3)编译字串至过滤程序

函数名称:

intpcap_compile(pcap_t*p,structbpf_program*fp,char*str,intoptimize,bpf_u_int32netmask)

      函数功能:

将str参数指定的字符串编译到过滤程序中。

 

       参数说明:

fp是一个bpf_program结构的指针,在pcap_compile()函数中被赋值。

optimize参数控制结果代码的优化。

netmask参数指定本地网络的网络掩码。

4)指定过滤程序

      函数名称:

intpcap_setfilter(pcap_t*p,structbpf_program*fp)

      函数功能:

指定一个过滤程序。

 

       参数说明:

fp参数是bpf_program结构指针,通常取自pcap_compile()函数调用。

      返回值:

出错时返回-1;成功时返回0。

5)捕获和处理数据包

pcap_loop()函数pcap_dispatch()函数用于捕获数据包,捕获后还可以进行处理。

6)获取下一个数据包

      函数名称:

u_char*pcap_next(pcap_t*p,structpcap_pkthdr*h)

      函数功能:

返回指向下一个数据包的u_char指针

7)pcap_close()函数用于关闭网络设备,释放资源。

3.2网络协议分析原理

由于网络的核心是网络协议,所以网络协议分析技术在网络安全领域也是一项重要的技术。

网络协议分析是指对网络上的数据进行相应的写一份。

网络上的协议多种多样,产生的数据也是不同的,但一个数据归根结底还是基于协议产生的,也就是说任意一个网络数据都是用了一定的协议。

现在流行的协议时TCP/IP协议栈,它里面最核心的协议有以太网协议,ARP/RARP协议,IP协议,UDP协议,TCP协议,ICMP协议等等。

根据TCP/IP协议层次的概念,对网络数据包的协议分析是从链路层开始的。

首先分析数据包的链路层协议,如以太网协议等。

其次,根据链路层协议的分析结果分析网络层协议,判断网络层的协议是什么,如IP协议等。

然后再根据网络层协议分析的结果分析传输层协议,如TCP,UDP协议等。

最后根据传输层协议分析应用层协议,如HTTP协议,FTP协议等。

这样,一层一层的分析下去,就可以把整个数据包的协议都分析出来。

当前,使用网络协议分析技术已经设计了专门的网络协议分析系统和各种网络嗅探器,如著名的网络嗅探器Tcpdump和Windump,著名的网络协议分析系统Ethereal等。

网络协议分析技术还可以应用到其他各种系统中,可以说是各种网络安全系统的基础,掌握网络协议分析的原理对于研究和设计其他网络安全系统是很有裨益的。

3.3IP碎片和流重组原理

在TCP/IP网络中,链路层具有最大传输单元MTU这个特性,他限制了数据帧的最大长度,不同的网络类型都有一个上限值,这个参数定义了可以通过的数据包的最大尺寸。

如果一个数据包大于这个参数时,系统会将其划分成更下的数个数据包(称之为IP碎片)来传输,而接收方则对这个IP碎片再进行重组以还原整个数据包。

IP碎片重组是IP层的一项重要工作,以下讲解其原理。

3.3.1IP碎片重组原理

网络入侵检测开发包libnids具有IP碎片的重组功能,利用libnids库提供的库函数来实现IP碎片重组。

定义一个ip_callback()回调函数,然后调用libnids库中的nids_register_ip()函数对ip_callback()进行注册来实现对没有分片的或已经完成IP碎片重组的并且头部的正确性已经校验的数据包的处理。

当IP数据包被分片后,每个片的总长度值要改为该片的长度,分片和重组所需的信息保存在IP首部中,如图所示:

图3.2IP首部示意图

标志字段:

发送端IP数据包标志字段是一个唯一值,该值在分片时被复制到每个片中。

标志字段R:

保留未用;标志字段DF:

部分片位,若置位,则IP层将不对数据包分片;标志字段MF:

更多的分片,除了最后一片外,其他每个组成数据包的分片都要把该比特置位。

分片偏移字段:

该分片偏移原始数据包开始出的位置。

偏移的字节数是该值乘以8,所以除最后一个分片外,其他分片的数据长度都是8字节的倍数。

3.3.2流重组原理

TCP流重组使用伸展树定位TCP会话。

以源IP地址、目的IP地址、源端口、目的端口四元组作为其伸展树节点间比较的关键字,每一个TCP会话连接包含两个数据流,一个存储客户端到服务器的数据;另一个存储服务端到客户端的数据。

这两个数据流以BST结构组织,序号为比较的关键词。

整个结构如图所示:

图3.3TCP会话原理图

TCP流重组原理流程如下:

(1)对接受到的数据包,根据该包的源IP地址、目的IP地址、源端口、目的端口在TCP会话伸展树查找相应的TCP会话。

(2)如果TCP会话伸展树中存在该TCP会话,则找到该会话。

如果该包的数据载荷大于0,则根据该包的数据流来自客户方还是服务方,插入到相应的存储结构中。

插入时比较序号,把该报文段承载的数据报保存在存储结构的正确位置。

(3)否则当数据库连接建立时,根据该报

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

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1