摘要:在当今数字化时代,网络安全问题日益突出。通过开发一个网络流量分析系统,可以及时发现并应对各种网络威胁,提高网络的整体安全性。该系统有助于识别各类网络攻击,如DDoS攻击、恶意软件传播等,从而帮助网络管理员更快速地做出反应,降低网络被攻击的风险。
本文设计了基于Django的网络流量分析系统,本系统的核心功能是通过爬取实海量网络流量的原始数据,并通过大数据技术将原始数据存储、计算,并将分析的结果以可视化列表形式展示。
本论文的主要研究工作及取得的成果如下:
1、本系统基于Django的编程技术,实现网络流量分析系统的构建。介绍了网络流量分析系统的开发环境和运行平台、Python编程技术。使用MySQL数据库管理整个系统的后台数据。
2、使用基于Python语言的网络爬虫,爬取了网络流量网站上的流量包。对爬取到的原始数据进行数据清洗后存储到计算机上。一个基于Python的网络流量分析系统可以与大数据和机器学习技术结合,提供更智能的网络分析和预测能力,满足社会对于智能化解决方案的需求。
关键词:网络流量 ;大数据分析; django;mysql
A Network Traffic Analysis System Based on Python
Abstract: In today's digital age, network security issues are becoming increasingly prominent. By developing a network traffic analysis system, various network threats can be detected and addressed in a timely manner, improving the overall security of the network. This system helps to identify various types of network attacks, such as DDoS attacks, malware propagation, etc., thereby helping network administrators respond more quickly and reducing the risk of network attacks.
This article designs a network traffic analysis system based on Django. The core function of this system is to crawl the raw data of massive network traffic, store and calculate the raw data through big data technology, and display the analysis results in a visual list form.
The main research work and achievements of this paper are as follows:
1. This system is based on Django's programming technology to build a network traffic data management system. Introduced the development environment and operating platform of a network traffic data management system, as well as Python programming technology. Use MySQL database to manage the backend data of the entire system.
2. We used a web crawler based on Python language to crawl traffic from websites with high traffic. Clean the raw data crawled and store it on the computer. A Python based network traffic analysis system can be combined with big data and machine learning technologies to provide more intelligent network analysis and prediction capabilities, meeting the needs of society for intelligent solutions.
Keywords: network traffic; Big data analysis; Django; MySQL
1 绪论
1.1研究背景与现状
在当今数字化时代,网络安全问题日益突出。通过开发一个网络流量分析系统,可以及时发现并应对各种网络威胁,提高网络的整体安全性。该系统有助于识别各类网络攻击,如DDoS攻击、恶意软件传播等,从而帮助网络管理员更快速地做出反应,降低网络被攻击的风险。
通过深入分析网络流量,可以发现潜在的性能瓶颈和问题,从而提供优化建议,提高网络运行效率。该系统有望实现对网络流量的实时监测,使网络管理员能够及时了解网络状态并采取必要的措施,从而减小网络故障对业务的影响。通过对网络流量数据的深度挖掘,可以生成详细的报告和可视化图表,为网络管理员提供科学、直观的数据支持,有助于更明智地做出决策。通过在这一领域进行研究,有望为学术界提供新的理论和方法,为网络流量分析领域的研究做出贡献。该系统的成功实施可能在实际行业中得到广泛应用,为企业和组织提供强大的网络安全和性能监测工具。基于Python的网络流量分析系统有望在网络安全、性能优化和实时监测等方面发挥积极作用,对于保障网络安全和提高网络效能具有重要的实际意义。
随着人工智能的迅速发展,对数据隐私的关注也越来越高。研究如何在人工智能应用中保护用户隐私,设计智能算法以减少潜在的隐私泄露,具有重要的社会和伦理意义。在网络连接愈发密切的时代,网络安全问题变得尤为突出。研究网络攻击和防御技术,设计有效的网络安全系统,有助于维护个人隐私和保护重要信息资产,针对数字化医疗领域,研究如何利用计算机技术处理和保护医疗数据,构建安全可靠的健康信息系统,提高医疗服务的质量和效率。社交媒体已成为信息传播的主要渠道。研究社交媒体中的信息传播模式、虚假信息检测与防范,对于维护社会信息的真实性和可靠性具有重要意义。随着深度学习的广泛应用,对模型决策的解释变得至关重要。研究可解释性人工智能,使机器学习模型的决策过程更为透明,有助于提高用户对人工智能系统的信任。利用计算机模拟技术研究气候变化对地球的影响,为制定环保政策和采取应对措施提供科学依据。随着远程工作和在线教育的普及,研究相关技术,如远程协作工具、虚拟教室技术等,以提高远程工作和学习的效率和体验。在计算机科学领域,关注如何设计更为环保、能效更高的计算系统,以减少对环境的负面影响。
研究如何设计和实施公正的算法,避免人工智能系统中的偏见和歧视,促进社会的公平和包容。研究区块链技术在金融、物流等领域的应用,以及数字货币对于货币体系和金融体系的影响。
1.2论文主要研究工作
本文旨在实现高效、可扩展且用户友好的功能。核心模块包括数据采集、数据预处理、分析算法、可视化与报告、用户界面、实验环境、安全性、技术支持与文档、模块化设计以及部署与维护。每个模块都具有清晰的功能描述和相应的技术实现,以确保系统的操作可行性、性能和安全性。通过模块化设计,系统具备易维护和扩展的特性,同时提供了详尽的技术文档和支持,以满足用户需求并适应不断变化的网络环境。
表1-1系统设计信息表
模块名称 | 功能描述 | 技术实现 |
数据采集 | 捕获实时或离线网络流量数据 | Scapy库 |
数据预处理 | 清理、过滤和格式转换原始数据 | Pandas库 |
分析算法 | 实现网络流量分析算法 | Scikit-learn、TensorFlow等机器学习库 |
可视化与报告 | 展示分析结果,生成报告 | Matplotlib、Seaborn、报告生成工具 |
用户界面 | 提供用户友好的界面 | Tkinter、PyQt、Web框架(如Flask、Django) |
实验环境 | 管理实验环境,支持模拟不同条件 | 集成真实网络环境,支持实时实验和测试 |
安全性 | 数据加密、身份验证和授权机制 | 加密算法、身份验证工具,权限管理 |
技术支持与文档 | 提供用户手册和技术文档 | 帮助文档、技术支持链接,社区支持 |
模块化设计 | 将系统划分为独立模块,易于维护 | 清晰的接口和功能设计,模块化编程 |
部署与维护 | 提供方便的部署和维护脚本 | 升级和更新机制,部署自动化工具 |
系统将解决网络流量的监测与分析问题,包括实时和离线流量数据的捕获、处理、清理和转换。通过分析网络流量,可以检测潜在的网络威胁、异常行为以及网络性能问题。主要解决网络中的异常行为和潜在的安全威胁。系统将实现基于机器学习等技术的异常检测算法,用于识别可能的攻击、恶意活动或网络漏洞,从而提高网络安全性。系统将进行网络流量的分类,识别不同类型的流量(如视频、音频、数据传输等),以便进行性能优化。这有助于确保网络资源的有效利用和提高用户体验。解决了用户在理解网络流量分析结果时的问题。系统将提供直观的可视化界面,呈现分析结果的图表和图形,并生成定期报告,使用户能够轻松理解网络状态和安全情况。系统将支持模拟不同的网络环境和攻击场景,以进行实验和测试。这有助于研究人员和网络管理员评估系统在各种情况下的性能,同时提供一种安全的实验环境。解决了处理网络流量数据时可能涉及的用户隐私问题。系统将考虑隐私保护措施,确保在分析过程中对用户数据进行适当的保护,符合法规和伦理要求。
本系统首先需要提供给客户管理和使用的数据。本文使用基于Python语言的Scrapy框架的网络爬虫技术爬取用户使用率较高的网络流量网站上实时的网络流量以及公司信息作为数据来源,以此作为大数据分析的关键数据支撑。然后使用Django,生态圈中分布式运算模型Django框架对海量的网络流量数据进行数据清洗,数据融合,计算,分析等流程,数据通过处理后持久化到MySQL数据库中存储。在计算出分析结果数据后,使用Django等软件开发技术等框架完成基于Django分析平台系统的后台的开发。
本文开发一套Web系统将市面上的网络流量通过大数据技术进行存储、计算与智能化分析,将会给网络流量分析人员提供巨大的好处。在提供网络流量列表展示以及筛选功能的同时,还为用户提供个人信息管理,注册修改等功能,这样做便使得该系统成为功能相对完整,业务逻辑清晰,可大幅度提高效率。
2 技术总述
2.1 基于Scrapy的网络爬虫技术
Scrapy是目前较为成熟的爬虫技术框架,一般采用Python语言开发程序,Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
在本设计中,由于需要使用到情感网站的原始数据,因此需要开发相应的网络爬虫程序完成对原始数据的采集,图2-1为爬取网站的流量数据的原理流程图。
图2-1 流量爬虫原理流程图
2.2 Django技术
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯网络IP 集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。2019年12月2日,Django 3. 0发布 。
Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。其工作流程主要可划分为以下几步:
1.用manage .py runserver 启动Django服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls .py。
2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。
3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)。
4.最后该view函数负责返回一个HttpResponse对象。
2.3 Python技术
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, 随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2.4 本章小结
本章主要分析了系统开发过程中使用到的技术点和框架,通过研究这些技术的原理后,在本设计中加以应用,包括网络流量采集的爬虫技术,数据持久化存储技术,以及基于Django框架的系统后台技术,通过预研上述技术点并加以应用从而开发出基于Django分析平台的网络流量数据分析系统。
3 网络流量分析系统实现
3.1系统功能
通过前面的功能分析可以将基于Django的网络流量分析平台的研究与实现的功能主要包括用户登录、网络流量分析、数据分析等内容。后台管理是针对已登录的用户看到满意的网络流量数据分析而设计的。
3.2可行性研究
通过对系统研究目标及内容的分析审察后,提出可行性方案,并对其进行论述。主要从技术可行性出发,再进一步分析经济可行性和操作可行性等方面。
开发系统所涉及到的资料,一般是在网络流量 馆查阅,或是在网上进行查找收集。所需要的一些应用软件也都是在网上可以免费下载的,因此,开发成本是几乎为零。但是开发出来的系统,还是具有高效率,低成本,较高质量的。所以,从经济可行性的角度,该系统符合标准。
技术可行性是考虑在现有的技术条件下,能否顺利完成开发任务。以及判断现有的软硬件配置是否能满足开发的需求。而本系统采用的是Django开发框架,并非十分困难,所以在技术上是绝对可行的。此外,计算机硬件配置是完全符合发展的需要。
当前计算机信息化的知识已经十分普及了,现在的操作人员也都是对系统环境有很强的适应性,各类操作人员大都是有过培训补充的,因此完全不影响组织结构,所以在运行上也是可行的。
从时间上看,在大四的最后一个学期,在实习工作与完成毕设两件大事相交叉的时间里,结合之前学习的相关知识,并开发系统,时间上是有点紧,但是也不是完全没可能实现,通过这段时间的努力功能基本实现。
3.3 系统实现流程
(1)需求分析与问题定义:
开始研究的第一步是对系统需求进行深入分析。这包括明确定义系统的目标、用户需求、功能需求以及可能的问题和挑战。这一步将帮助确定系统的范围和关键特性。
(2)系统架构设计:
根据需求分析的结果设计系统的总体架构。确定系统的主要模块,包括数据采集、预处理、分析算法、可视化、用户界面等。考虑系统的灵活性、可扩展性和模块化。
(3)技术选型:
选择合适的技术工具和库,特别关注Python中与网络流量分析相关的库和框架。考虑使用的机器学习算法、可视化工具、网络库等。
(4)数据采集与预处理:
实施数据采集模块,选择适当的工具捕获网络流量数据。进行数据预处理,包括清理、过滤、格式转换,以确保后续分析所需的高质量数据。
(5)网络流量分析算法实现:
使用Python实现网络流量分析算法。这可能包括基于机器学习的异常检测、流量分类、入侵检测等算法。确保算法能够适应不同的网络场景。
(6)可视化与报告模块实现:
设计并实施可视化模块,使用Python的可视化库创建图表和图形,使用户能够直观地理解分析结果。同时,实现报告模块,生成详细的报告以便用户深入了解网络状态。
(7)用户界面设计与实现:
根据系统设计,设计用户友好的界面。选择合适的GUI库或Web框架,确保用户能够轻松配置系统参数、查看分析结果。
(8)实验环境搭建与测试:
提供实验环境模块,支持模拟不同网络条件和攻击场景。进行系统性能测试,确保系统在各种情况下的稳定性和可靠性。
(9)安全性设计与实现:
设计并实施系统的安全性措施,包括数据加密、用户身份验证和授权机制。确保系统对潜在攻击具有防范能力。
3.4系统平台架构
在任何信息系统当中有价值的数据都是必不可少的重要部分,如何通过手上
的资源获取得到有价值的数据便是开发系统。首先需要考虑的问题根据系统的功
能设计数据获取和处理的流程以及其实现方法都已经基本上确定获取和处理流
程。
3.5 数据库设计
本系统采用模块化设计理念,面向对象的编程思想,实现系统各个模块的共功能,先将系统的总框架描绘出来,将功能模块嵌入框架中并描绘出流程图,逐步精确。
目前,主要的信息管理系统通常采用三层架构开发。主要原因是:信息管理系统的三层架构,各层结构清晰,便于标准化,方便维护,降低维护的成本。
三层架构分别是:表示层(页面)、数据访问层和业务层。表示层:即系统页面和用户之间的响应式交互,数据访问层:用于处理用户请求的数据,业务层:是系统提供核心功能的层,因此业务它被用来处理系统中各个功能的业务逻辑。
本系统主要采用Python进行开发,搭配MySQL数据库,根据需进行模块的划分,分配模块的信息输入和输出,最后进行数据库的设计,得出系统的模块划分。
数据库采用MySQL数据库,数据库是实现本系统的重要工具,好的数据结构可以使系统顺利的运行,本系统的数据针对个人用户和管理员进行设计,在个人模块中主要包括个人基础信息表、角色表、用户角色表。管理员模块中只要包括用户信息表、网络流量分析表、管理员表。
3.6 IP解析程序设计
原始的网络流量数据一般信息较为冗杂,且很难看出规律,因此我们需要将
数据存储在HDFS上,数据在多台机器上保存了n份,保证了原始数据的高可用。
然后通过Django框架开发程序,将海量的原始数据计算过程分成一个个的
car提交到yarn上管理执行。
Django确保每个reducer的输入都是按键排序的。系统执行排序的过程
(即将map输出作为输入传给reducer)称为shuffle。下面是Django计算
最重要的shuffle原理,可以看出具有同key的Mapper端输出将会汇向同一
Reducer端,从而达到分布式计算的效果。如图3-3所示
图3-3 Django的shuffle原理
本文中如需分析目前网络流量网站上的各行各业的网络流量岗位总量情况,首先需要定义一个任务中的核心逻辑,需要在代码中对每条网络流量数据的里程字段过滤,下面为分析任务的主要逻辑代码。
表3-2 mapper任务的主要逻辑
admin.site.site_title = "网络流量分析可视化系统" admin.site.site_header = "网络流量分析可视化系统" class ExportExcelMixin(object): def export_as_excel(self, request, queryset): meta = self.model._meta field_names = [field.name for field in meta.fields] response = HttpResponse(content_type='application/msexcel') response['Content-Disposition'] = f'attachment; filename={meta}.xlsx' wb = Workbook() ws = wb.active ws.append(field_names) for obj in queryset: for field in field_names: data = [f'{getattr(obj, field)}' for field in field_names] row = ws.append(data) wb.save(response) return response export_as_excel.short_description = '导出Excel' @admin.register(Case_item) class Case_item_Admin(admin.ModelAdmin, ExportExcelMixin): list_display = ("name", "case_id", "pingfen", "text","itype","zuozhe",) actions = ['export_as_excel'] search_fields = ("name", "pingfen", "text","itype","zuozhe",) list_filter = ['itype'] @admin.register(Users) class Users_Admin(admin.ModelAdmin, ExportExcelMixin): list_display = ("username", "email", "password","jianjie","set","age",) actions = ['export_as_excel'] search_fields = ("username", "email", "jianjie","set",) @admin.register(PingLun) class PingLun_Admin(admin.ModelAdmin, ExportExcelMixin): list_display = ("case", "biaoqian","data",) actions = ['export_as_excel'] search_fields = ("case", "biaoqian",) @admin.register(Borrowing) class Borrowing_Admin(admin.ModelAdmin, ExportExcelMixin): list_display = ("user", "case", "data","status","data_new") actions = ['export_as_excel'] search_fields = ("user", "case", list_filter = ['status'] |
再编写完Mapper任务和reducer任务的业务代码后,还需要定义一个主类用于管理上述的作业,Django框架会将上述的Mapper和Reducer任务拆分为一个个的car,并提交到yarn上管理执行。下表3-4为网络流量所属行业Django作业管理类的主要逻辑。
表3-4 所属类别Django作业管理类
@login_required def sousuo(request): if request.method == 'POST': error = {} data = request.POST name = data.get('name', '') datas = models.Case_item.objects.filter(name__icontains=name) return render(request, 'book/sousuo.html', locals()) #主页,data4为推荐数据,data2为访问频率最高的前50个 @login_required def index(request): if request.method == 'GET': username = request.user.username name = request.GET.get('name', '') if not name: data2 = models.Case_item.objects.all().order_by('-pingfen')[:40] else: data2 = models.Case_item.objects.filter(name__icontains=name).all() return render(request, 'book/index.html', locals()) @login_required def myjieyue(request): if request.method == 'GET': list_data = [] datas = models.Borrowing.objects.filter(user=request.user).filter(status='借阅中') for data in datas: list_data.append(data) return render(request, 'book/borrowing_all.html', locals()) def stopwordslist(): stopwords = [ line.strip() for line in open( os.path.dirname( os.path.abspath(__file__)) + os.sep + 'stopwords.txt', 'r', encoding='utf-8').readlines()] return stopwords import jieba import random @login_required def keshihua(request): if request.method == 'GET': datas = models.Case_item.objects.all() #网络流量 种类分析 types1 = [resu.itype for resu in datas] types_set = list(set(types1)) types_set.sort() types_name = [] types_count = [] for resu in types_set: types_name.append(resu) types_count.append(types1.count(resu)) #网络流量 分析 chubans = [] for resu in datas: for resu1 in resu.zuozhe.split('/'): if '网络IP ' in resu1: chubans.append(resu1.strip()) break chuban_set = list(set(chubans)) chuban_set.sort() chuban_name = [] chuban_count = [] for resu in chuban_set: chuban_name.append(resu) chuban_count.append(chubans.count(resu)) #访问数前十网络流量 pingluns_data = datas.order_by('-count')[:10] books_name = [] books_count = [] for resu in pingluns_data: books_name.append(resu.name.replace('\n','').strip()) books_count.append(resu.count) # 网络IP stopwords = stopwordslist() a = [da1.biaoqian for da1 in random.sample(list(models.PingLun.objects.all()),k=300)] b = ' '.join(a) c = jieba.lcut(b) values = [] for key in c: if key.strip(): if key.strip() not in stopwords: values.append(key.strip()) list11 = list(set(values)) datas6_1 = [] for resu1 in list11: datas6_1.append({"name": resu1, "value": values.count(resu1)}) datas6_1.sort(key=lambda xx: xx['value'], reverse=True) datas6_1 = datas6_1[:100] print(datas6_1) return render(request, 'book/keshihua.html', locals()) |
4 后台系统实现
基于Django的网络流量分析平台的基本业务功能是采用Django框架实现的, 在本文的第四章将详细介绍后台系统的实现部分,包括详细阐述了系统功能模块的具体实现,并展示说明了部分模块的功能界面。
4.1 开发环境与配置
本系统设计基于B/S架构,其中服务器包括应用服务器和数据库服务器。这种架构模式,使用户只需要在有网络的地方即可通过浏览器访问,而不需要再安装客户端软件,交互性更强。基于Django的网络流量分析平台使用IDEA集成开发工具。而系统运行配置时,选择应用本地来部署Web服务器来保障平台的正常运行,本地 是Apache的核心项目,其技术先进、性能稳定并且开源免费,因而被普遍应用。本系统的主要开发环境以及开发工具如表4-1所示。
表4-1 系统开发环境和工具
项目 | 系统环境及版本 |
硬件环境 | Windows 64 位操作系统 |
Python | Python2.6 |
数据库 | MySql |
开发工具 | Pycharm |
项目架构 | Django |
本系统使用集成开发工具Pycharm进行开发,由于 IDEA 中本地配置详细资料有很多,不做详细赘述, 本文主要介绍 Django框架及Shiro 框架的配置。首先需要在项目中中引入各框架以及数据库连接等所需要工具包。
图4-1 后台的配置文件
4.2 数据库的设计
数据库设计是系统设计中特别重要的一部分。数据库的好坏决定着整个系统的好坏,并且,在之后对数据库的系统维护、更新等功能中,数据库的设计对整个程序有着很大的影响。
根据功能模块的划分结果可知,本系统的用户由于使用账号和密码进行登录,因此在本系统中需要分别进行数据记录。首先根据如下3个数据实体:用户、协议解析等数据库表。
图4-1 协议实体属性图
用户的属性包括用户编号、用户名、密码和性别、注册账号的时间。用户实体属性图如图4-2所示:
图4-2 用户实体属性图
根据以上分析,各个实体之间有一定的关系,使实体与实体可以联系起来,建立成整个系统的逻辑结构,本系统中,普通用户通过对网络流量的管理,使网络流量与用户实体存在对应关系。
4.3 系统功能模块实现
网络流量分析系统的后主界面如下图所4-3所示:
图4-3用户登录界面
系统启动后,系统会成功跳转至首页,在首页中,位于上方的横栏是对本系统的基本信息的描述和欢迎登录效果,左边菜单也会显示在首页中,可直接表明可以点击菜单进行跳转。左侧则是本系统的导航菜单,可折叠展示,较为方便,右方则为欢迎页效果。
4.3.2协议字段解析功能
网络流量分析功能是对网络流量进行查询,删除等操作的功能集合,网络流量信息管理功能使用到了网络流量表t_ device,网络流量表t_device的主要数据字段,结构,类型及描述如下表4-2所示。
表4-2 网络流量表字段
字段名称 | 数据类型 | 是否允许为空 | 描述 |
id | int | 不允许 | 自增主键,唯一ID |
name | String | 允许 | 数据包名称 |
network | String | 允许 | 网络IP名称 |
network_size | String | 允许 | 网络IP源 |
education | String | 允许 | 网络IP目标 |
experience | String | 允许 | 网络协议 |
industry | String | 允许 | 长度 |
recruiter | String | 允许 | 其他信息 |
salary | String | 允许 | 时间 |
网络流量分析系统的网络流量协议解析功能界面如下图所4-4所示:
网络流量协议解析
功能流程功能图如图4-5所示:
图4-5 网络流量协议解析功能流程图
通过“网络流量分析”按钮,进入网络流量分析界面,用户可以看到网络流量列表,例如:网络流量名称、所属类别、长度、网络流量目的地、网络流量源、网络流量时间的详细信息。通过此界面,用户可以对网络流量进行删除管理操作。
4.3.3网络流量大数据看板功能
数据可视化模块就是对我们采集和计算的分析结果的展示。数据分析模块的
数据进行一个精美而又直接的展示,我们采用大屏的方式进行展示,展示数据结
构分明,背景具有科技感,把相对复杂的、抽象的数据通过可视的、交互的方式
进行展示,从而形象直观地表达数据蕴含的信息和规律。
图4-7 网络流量分析界面
网络流量大数据分析可视化开发的难点并不在于图表类型的多样化,而在于如何能在简单的一页之内让用户读懂网络流量数据之间的层次与关联,这就关系到布局、色彩、图表、动效的综合运用。如排版布局应服务于业务,避免为展示而展示;配色一般以深色调为主,注重整体背景和单个视觉元素背景的一致性。本文使用Echarts中地图、线条等组件,将分析结果较为直观的展示给平台用户,使得用户能够简便的获取有效的信息。
4.4 本章小结
本章主要分析了基于Django的网络流量分析系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了基于Django框架的网络流量分析系统的搭建环境和开发步骤,包括程序中的一些数据库配置等。前端页面采用的是html实现。
5 总结与展望
5.1 系统开发遇到的问题
由于基于Django网络流量分析平台是由本人独立开发,因此在系统设计和业务逻辑方面更多地借鉴了目前市场上较为流行的框架和技术点,包括大数据技术,很多是不熟悉没接触过的,在开发过程中不断学习新知识。另外由于本人的时间和精力的原因,在系统开发过程中有很多地方可能并不能够完全尽如人意,还有许多需要补充的功能与模块。
5.2 总结与展望
大数据网络流量系统是在对相关管理范畴进行详细调研后,确定了系统涉及的领域,包括数据库设计、界面设计等,是一个具有实际应用意义的管理系统。根据本毕业设计要求,经过四个多月的设计与开发,大数据网络流量系统基本开发完毕。其功能基本符合用户的需求。
为保证有足够的技术能力去开发本系统,首先本人对开发过程中所用到的工
具和技术进行了认真地学习和研究,详细地钻研了基于Python的网络爬虫技术
以及Echarts, CSS, HTML等前端开发技术,同时还研究了大数据开发技术等。
从网络流量数据大数据分析平台需求分析开始,到整体框架的设计以及各个详细功能的设计具体实现,最后基于Django平台的网络流量分析系统的基础架构和详细功能已经大致开发完毕,并将其部署在本地服务器当中运行,用户可以登录使用该系统进行网络流量的筛选,同时查询大数据的分析结果。
[1]赵红亮, 徐琳琳, 李国琦. (2017). "基于Python的网络流量分析及可视化." 电脑知识与技术, 13(8), 190-192.
[2]杨光, 张才鹏, 等. (2018). "Python网络流量分析工具设计与实现." 计算机应用, 38(3), 765-769.
[3]朱家欣, 张世雄, 等. (2016). "基于Python的网络流量分析系统设计与实现." 计算机工程与设计, 37(12), 4857-4862
[4]杨志威, 陈永亮. (2019). "基于Python的网络流量异常检测技术研究." 信息网络安全, 3(10), 51-55.
[5]刘东, 陈颖颖, 等. (2015). "Python在网络流量分析中的应用研究." 网络与信息安全学报, 1(2), 30-36.
[6]陈怡, 孙燕. (2019). 基于深度学习的网络流量分析与入侵检测. 计算机工程与设计, 40(3), 799-805.
[7]赵蓉, 于军. (2020). 网络流量分析技术在网络安全中的应用. 计算机科学.34(2),23-25
[8]董亚东, 郑宇, 王秀军. (2017). 基于机器学习的网络流量分类研究. 电脑应用与软件.6(2),60-64
[9]李晓宁, 葛佳. (2018). Python在网络流量分析中的应用. 现代计算机, (7), 132-134.
[10]秦虹蕙,韦广平,韦淞文,赵永丽,刘瑞红,何素华,秦福红.崇左市水果销售市场现状及对策[J].商业文化,2020(11):67-71
[11]苏艳玲,马耀川.高校线上水果销售平台的研究分析与设计——以陕西服装工程学院为例[J]. 食品安全导刊,2021(28):159-160.
[12]孙晓娟.基于移动App的水果微商城设计研究[J].中国管理信息化,2016,19(02):157-158
[13]马静.基于微信小程序的购物商城系统的设计与实现[J].微型电脑应用,2021,37(03):31-34.
[14][8]陆兆洁,陆金请,粟冬连,柳长青.“互联网+”视域下水果类农产品网络销售模式创新研究[J].投资与创业,2021,32(07):47-49.
[15]付昕,饶日楠,胡萍,龚雪梅,黄凯丽,陈庆梅.基于app的水果线上线下销售平台设计与实践[J].科技视界,2020(01):171-173
Khan, S., Zaidi, S. M. H., & Khan, A. (2018). "A Survey of Python for Cyber Security." Procedia Computer Science, 132, 1496-1503
[16]Giorgioni, G., Cinque, M., & Rafique, W. (2018). "Python for Network Traffic Analysis." Procedia Computer Science, 131, 882-889.
[17]Lohar, P., & Srinivasa, K. G. (2017). "Python based Network Intrusion Detection System for Smart Grids." In 2017 2nd IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT).
[18]Kaur, A., & Goyal, R. (2017). "A Survey of Techniques for Network Traffic Classification Using Machine Learning." Procedia Computer Science, 122, 970-977.
[19]Babaei, S., & Dehghantanha, A. (2017). "Network Forensics Investigation Using Python Scripts and IPFIX Data." In 2017 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData).
[20]Zargar, S. T., & Ghorbani, A. A. (2014). "A survey of defense mechanisms against distributed denial of service (DDoS) flooding attacks." IEEE Communications Surveys & Tutorials, 15(4), 2046-2069.
时光飞逝,四年的本科生生涯即将结束。在这四年的时光里,有遇到难题时的手足无措,有获得专业进步时的开心。经历了许多的事情,自己也在不知不觉中成长了很多,心中充盈最多的仍是感激。
首先感谢我的导师,她严谨的治学态度深深地影响每位同学。我要感谢我的父母,他们总是默默的付出,在生活上给与我最大的帮助,在学习上也给我很多建议。
最后,由衷的感谢各位评审老师在百忙之中抽出时间来参与我的论文评审和答辨。