家庭网络控制系统设计与实现分析研究 计算机科学与技术专业_第1页
家庭网络控制系统设计与实现分析研究 计算机科学与技术专业_第2页
家庭网络控制系统设计与实现分析研究 计算机科学与技术专业_第3页
家庭网络控制系统设计与实现分析研究 计算机科学与技术专业_第4页
家庭网络控制系统设计与实现分析研究 计算机科学与技术专业_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录前言 1第一章 绪论 21.1 研究背景及意义 21.2 家庭网络控制概述 31.3 课题的主要工作 31.4 课题的组织结构 4第二章 家庭网络控制系统 52.1 家庭网络 52.2 家庭网络控制 62.3 家庭网络控制系统 72.4 本章小结 8第三章 家庭网络控制系统分析与设计 93.1 网络访问 93.1.1DNS查询 93.1.2 建立TCP连接 103.1.3 发送HTTP请求及后续 113.2 内容检测 113.2.1深度包检测技术的背景 113.2.2 深度包检测技术的简介 123.3 系统构思 133.3.1干扰域名解析 133.3.2TCP连接重置 133.4 本章小结 14第四章 家庭网络控制系统实现 154.1 开发环境 154.1.1Node.js 154.1.2Electron 154.1.3React 164.2 系统实现 164.3 本章小结 19第五章总结与展望 215.1 本文总结 215.2 后续工作展望 21参考文献 23致谢 25摘要随着internet的迅速发展,家庭网络已经成为人们日常生活的重要组成部分。因此,网络管理已成为常规家务任务。家庭成员需要配置新的网络设备以将它们连接到网络,并设置基础设施设备(例如路由器和无线接入点),以便与他们的互联网服务提供商ISP(InternetServiceProvider)连接以及在家中进行连接。他们必须管理网络的安全性,以保护他们的网络免受不必要的访问,有必要的话配置家长控制以限制他们的孩子使用互联网,并诊断和解决连接问题等等。然而,由于家庭网络固有的复杂性,许多家庭难以从事这种管理工作。因此,家庭网络已成为人机交互界日益增长的工作重点。许多研究人员已经报告了关于家庭网络用户体验的研究结果。其中包括调查“早期采用者”家庭网络用户,调查家庭网络复杂性的来源,调查建立和维护家庭网络的做法,以及调查家庭对家庭网络的看法。所有这些研究都集中在用户体验和对家庭网络固有特性的看法上。因此,我们希望制作一个简单的家庭网络控制和管理客户端,来实现以上提到的问题中的一个或者多个。工具尽可能简单易用,让不是特别熟悉网络管理的家庭成员也能很方便的使用它的功能来达到对家庭网络的管理。关键词:家庭网络;管理工具;复杂性;客户端

AbstractWiththerapiddevelopmentofinternet,thehomenetworkhasbecomeanessentialpartofpeople’sdailylife.Consequently,networkmanagementhasbecomearegularhouseholdtask.HouseholdersneedtoconfigurenewnetworkdevicestoconnectthemtothenetworkandsetupinfrastructuredevicessuchasroutersandwirelessaccesspointsbothforconnectivitywiththeirISP(InternetServiceProvider)andforconnectivitywithinthehome.Theyhavetomanagesecurityinordertoprotecttheirnetworksfromunwantedaccess,potentiallyconfigureparentalcontrolstorestrictInternetusagefortheirchildren,anddiagnoseandtroubleshootconnectivityproblems,tonamebutafew.However,manyhouseholdershavedifficultydoingsuchmanagementjobsduetotheinherentcomplexitiesofthehomenetwork.Thus,homenetworkinghasbecomethefocusofagrowingbodyofworkintheHCIcommunity.Anumberofresearchershavereportedtheresultsofstudiesontheuserexperienceofhomenetworking.Theseincludeaninvestigationof‘earlyadopter’homenetworkusers,aninvestigationintothesourcesofcomplexityinhomenetworking,aninvestigationintothepracticesofbuildingandmaintaininghomenetworks,andaninvestigationofhouseholders’perceptionsoftheirhomenetwork.Allofthesestudiesfocusedonuserexperiencesandperceptionsofinherentcharacteristicsofthehomenetwork.Therefore,wehopetocreateasimplehomenetworkmanagementtooltoachieveoneormoreoftheabove-mentionedissues.Thetoolsareassimpleandeasytouseaspossible,sothatfamilymemberswhoarenotparticularlyfamiliarwithnetworkmanagementcaneasilyuseitsfeaturestomanagehomenetworks.Keywords:Homenetwork;ManagementTools;Complexity;Client前言家庭网络控制和管理算是目前计算机网络领域比较热门的研究点。现在上网用搜索引擎一搜家庭网络控制和管理工具,也会出现很多形形色色的软件。然而网上许多软件虽然功能看起来很强大,做的也很好看,但是几乎都没能满足用户的需求。首先,作为一个家庭网络控制和管理工具,它必须简单易用,并且尽可能不出现错误,因为许多家庭成员并不能够熟练使用计算机的各种功能,并且也没有处理软件出错的能力。而市面上许多的软件虽然看起来都功能非常的多,但是配置起来十分复杂,还极其容易出错。其次,家庭网络的安全是至关重要的。而一些所谓的家庭网络控制和管理工具,来源不明,其本身的安全性就存在很大问题,甚至存在下载时还有绑定其他垃圾软件或者恶意程序的可能。这种软件不用说管理家庭网络了,甚至还会对家庭网络造成危害。因此,我们需要开发一个简单易用,相对安全的网络管理软件,来实现简单的家庭网络控制和管理的需求。

第一章 绪论本章首先介绍了家庭网络控制和管理的研究背景和意义,其次简单介绍家庭网络控制和管理系统系统的各个组成部分及其作用,并概述了本文所做的主要工作,在本章的最后介绍了论文的组织结构。1.1 研究背景及意义随着internet的迅速发展,现在几乎每个家庭都有宽带接入了。宽带的接入一定程度上可以提高家里人工作、学习的效率,但是如果过多的用于娱乐场景,那就会对工作和学习产生负面的影响。另一方面,网络的发展以及网络接入的普及和低成本化,使得各色各样的人可以接触到internet,人们怀着各自不同的目的使用互联网。加之互联网的使用者有一定的匿名性,因此有些使用者可能会做一些对其他使用者不利的事情。在一个没有任何管理的网络环境中,一些不是十分熟悉互联网使用的人就可能会遇到一些麻烦。比如访问一些网站之后设备上被自动安装了恶意程序甚至是木马病毒,对用户设备上存储的数据产生巨大的安全隐患。还有就是家庭成员花费大量时间在休闲娱乐上面,使得本应该完成的工作或者学习任务不能按时完成,严重影响工作和学习。又或者因为不熟悉计算机的操作,进行了错误的操作导致网络无法访问等问题。相对于发达国家,我们国家还是有很多家庭的家庭成员无法熟练使用计算机的。但是大家又希望体验到对于他们而言相对先进、新鲜的互联网,以跟上时代的潮流。在这样的背景下,现在的家庭亟需一个安全、便捷、能够提高工作和学习效率的网络环境,这是最最基础的一个需求。图1.1家庭网络系统的结构[1]上图为家庭网络系统可能的一种结构。我们可以想办法在家庭网关或者个人电脑端进行软件的部署,以达到网络管理的目的。1.2 家庭网络控制概述家庭网络控制的范围很广,有的还涉及物联网。在此,物联网方面的先不做讨论,仅仅讨论连接互联网的设备。我们可以将家庭网络控制和管理分为以下四个点:(1)连接配置:此类别包括与配置新网络设备以将其连接到网络相关的任务,以及设置基础设施设备(如路由器和无线接入点),以便与其互联网服务提供商(ISP)连接以及在家中进行连接。(2)安全和访问控制:这包括基本的安全功能以保护设备免受不必要的访问,以及访客控制和儿童家长控制。(3)网络监控:包括整体家庭网络的基本监控和评估,监控特定设备互联网使用情况的能力,以及与互联网的整体连接性。(4)故障排除:这包括找出连接问题和低速问题等网络问题的功能。1.3 课题的主要工作本文主要探究家庭网络控制和管理当中的安全和访问控制以及网络监控,然后简单介绍制作一个简易家庭网络控制和管理工具的流程。对于课题提出的最为关键的一个问题,管理计算机网络,使得某些网站无法被用户访问或者在某个时间段无法访问,以及对使用互联网搜索引擎时搜索内容的审计,从而发现用户经常访问哪种类型的可能过度消耗时间的比如游戏、小说之类的网站或者相关IP(InternetProtocol)地址,在查阅相关材料之后,我考虑以下实现这些功能的一个流程。首先,我们要对家庭成员访问的网络做一个记录,记录下来用户访问了哪些网站,以便之后查看该网站时候适合长时间浏览或者这个网站根本就含有有害信息,会危及计算机上数据安全和用户的身心健康。同时,对用户在搜索引擎搜索某些管理员不愿意让其搜索的关键字,比如“网络游戏”、“玄幻小说”之类的内容时,自动过滤这些内容,或者让网页无法显示,或者返回一个错误信息,这样用户就会放弃搜索相关的内容。在知道了家庭成员访问的网站之后,对其中不希望其以后还要访问的网站,我们想办法让用户在下次访问这个网站的时候网页无法显示或者返回错误信息。这里涉及网络监控与访问管理,还有一个就是安全方面的内容。比如在收到一封邮件时,发现有附件,但是不知道其是否带有有害信息,虽然目前有好多所谓的杀毒软件可以对文件进行扫描,但好多所谓的杀毒软件对计算机系统来说本身也是一个负担,甚至有潜在的危害,还可能对用户的隐私产生威胁,我们能不装尽量不装。这时候,我们要时可以在接收这个附件时,就判断其是否含有有害信息,就能避免因为接收带有木马或者病毒的附件而对计算机产生危害了。以上便是在网络的使用过程中,最为基础的,安全和可控两个方面,一种简单的实现方法。本文将基本按照上面所述的方法,探究家庭网络中安全和可控两个方面的技术实现。以及简单介绍实现上面某一功能的一个小程序。1.4 课题的组织结构本文共分为五章,各章内容安排如下:第一章:绪论。本章介绍了课题的研究背景及意义、家庭网络控制和管理的概述、本文的主要工作,最后介绍了本文的组织结构。第二章:本章简单介绍了家庭网络的基本概念,家庭网络需要哪些方面的管控,以及家庭网络控制系统所需要实现的功能等。第三章:本章主要分析了家庭网络控制系统可以从网络访问的哪些环节入手,实现对网络访问的控制。另外研究了从这些环节入手,有哪些方法可以实现网络访问控制。第四章:本章主要介绍了一个家庭网络控制系统。主要介绍这一系统实现的原理,以及介绍这一系统的基本功能。第五章:总结全文,提出未来工作的设想与展望。

第二章 家庭网络控制系统本章简单阐述了家庭网络、家庭网络控制以及家庭网络控制系统。2.1 家庭网络近年来,互联网发展迅速,家庭网络已经成为人们日常工作和生活的重要组成部分。个人电脑和各种数字家庭例如智能手机和平板电脑等设备逐渐进入家庭,家庭网络的安全以及可靠、高速接入已成为人们日益关注的话题。由于这个原因,网络管理已然成为有网络接入的家庭的日常任务。家庭的成员需要对新的网络设备进行设置以达到让它们接入家庭网络的目的,并且还需要设置基础的设施和设备(例如,路由器和无线接入点等),来使得家庭网络与家庭所选择的互联网服务提供商的网络进行连接。这样一来,这些家庭中的网络设备才能访问互联网上的资源。然而,要无障碍的、顺利的使用这些连接网络的设备来访问互联网上的资源,家庭成员必须确保他们访问的网络的安全性,以确保他们访问网络的过程是安全的,比如免受不必要的访问、防止隐私的泄露等等。有孩子的家庭可能希望通过配置家长控制以限制他们的孩子使用互联网,避免孩子访问一些不利于他们健康成长的内容。当家庭网络出现问题的时候,家庭成员需要诊断网络哪方面发生了故障,或者是需要解决连接的问题等等。尽管企业网络中使用的一些传统的局域网技术也可以用于家庭网络,但家庭网络仍然面临许多企业网络中没有的设计和技术难题。例如,用户所使用的网络技术必须经济实惠,家庭网络控制系统必须易于安装和使用,并且不需要太多的维护知识;不得使用房屋的内部布线,即家庭在入住房屋后不得损坏房屋的装修环境;家庭网络不应有专业的的网络管理员,如大型公司网络需要专门的网络管理员等等。由此可见,家庭网络有着固有的复杂性,许多家庭的成员仅仅希望享受网络带来的便捷和其他方式无法提供的娱乐性,而并不具备专业的的网络管理方面的知识,因而难以从事这种管理工作。因此,家庭网络的管理和控制已然成为人机交互界日益增长的工作重点,研究家庭网络系统并探索其组成模型具有重要的现实意义和商业价值[2]。不少研究人员已经提出了关于家庭网络中用户体验的研究报告。这其中包含了调查早期使用家庭网络的用户,调查了家庭网络控制和管理的复杂性的来源,调查了建立家庭网络以及维护家庭网络过程中家庭成员采取的方案,以及调查家庭成员对家庭网络的看法。所有这些调查研究,都集中在家庭成员对家庭网络的体验以及对家庭网络固有的特性的看法上。为此,我们希望首先探讨家庭网络控制的几个方面,了解家庭网络控制需要控制和管理哪些方面的问题,然后实现一个简单的家庭网络控制和管理的客户端,来解决以上提到的一个或者多个问题。工具尽可能简单易用,能够让一点都不熟悉网络技术的家庭成员也可以很方便的使用它的功能来达到对家庭网络的控制和管理。2.2 家庭网络控制简单的家庭网络控制和管理包括以下四个方面的内容:连接配置、安全和访问控制、网络监控、故障排除[3]。对于家庭网络控制以上几个方面的容,大多数家庭都采用极其简单的方法来实现,然而效率却非常低。经过我询问同学和身边的朋友,发现他们大多使用这些方法来解决以上的问题。关于连接和配置,不少人都依赖其路由器的固件接口和内置于其计算设备操作系统中的工具,例如DLINK路由器接口以及Windows或Mac网络连接向导。他们主要使用路由器进行无线网络设置和地址分配,而他们使用内置于操作系统中的工具将他们的计算设备添加到网络中。他们使用操作系统或者路由器的内置工具的一个主要原因是他们不需要自己安装其他软件。然而,他们提到这些工具,特别是路由器中的工具,提供了太多没有被使用的低级网络配置选项来进行配置(例如,DHCP地址更改选项仅仅被少数用户所知道并且仅供少数用户使用),以及对使用的术语不熟悉。这些即使是专业用户,完成起来也具有较高的难度。关于安全和访问控制,许多同学都是使用类似360之类的防病毒软件,他们主要使用这些工具来保护电脑免受外部攻击和不必要的访问。比如当他们下载了一个文件,这类防病毒软件会检查文件的内容,与它们的特征库进行对比,判断这些文件是否存在会危害计算机系统的内容。还有一部分使用操作系统自带的防火墙或者网络工具。然而访问控制极少有用到的。通常在有儿童的家庭会有这方面的需求。据我了解有些家长甚至使用了“物理”方式的网络控制,他们在孩子上网的时候陪在孩子身边,这样就知道孩子访问了什么网站以及他们访问的内容了。关于网络监控,有些同学在家中也是使用操作系统或者路由器自带的工具进行的。不过大多数都是通过使用网络上的应用程序提供的信息检查其各个设备的网络速度。还有的直接使用搜索引擎搜索到的测试网速的网站来进行设备网络速度的测试。但是,大多数非专业用户以前从未检查过整个网络状态和速度,因为他们不知道如何这样做。上面的工具通常允许他们检查单个计算机的状态和速度。因此,他们抱怨说,没有明确的方法来监控整个网络性能或检测网络速度瓶颈来自哪里。他们表示希望通过一种简单的方式一眼就能看到整个网络正在发生的事情。关于故障排除,一些对于网络设备和网络技术不是很熟悉的朋友,往往采用非常简单的物理行为,比如重置路由器,重启电脑,或者拔了路由器的电源再重新插上。如果发现还是没用,他们会选择给网络运营商打电话,让他们的技术人员过来排查错误。或者请教其他懂计算机网络的朋友或者家人。尽管许多用户使用内置在操作系统中的工具,但他们抱怨说,用这些工具乍一看很难发现是什么原因造成了问题。一位对网络不是很了解的朋友表示希望能够轻松排除故障,他说:“我只想获得有关网络的问题和简单、直接的解决方案。”他期望得到一个简单的信息,例如“您的路由器已关闭”,而不是需要遵循的多个步骤来诊断网络问题。2.3 家庭网络控制系统现有的一些网络控制的方案,存在着很大的问题,主要在于这些工具难以理解和使用。许多非专业用户强调了这一点:“(要使用这些工具)必须具备技术知识。如果你不这样做,你必须花很多时间来学习它。“现有的工具,尤其是内置于操作系统和路由器中的工具,需要用户拥有精密的技术知识。然而据我了解,许多普通的用户并没有如此复杂的网络技术知识。例如,有相当多的用户不明白诸如什么IP地址等基本概念(更不用说MAC地址)。他们中的许多人也不了解无线网络加密,也不知道它是如何工作的。还有些朋友提到,这些工具不必要地暴露了太多他们既不想知道也不想理解的低级技术选项。例如,除极少数用户之外的大多数用户不理解(也不想理解)诸如路由器提供的DHCP参数(例如,客户端设备的IP地址范围)的设置。有个朋友指出,这些工具中的无线安全选项太多,无论他是否愿意,他都得看着它们并选择一个。然而他并不关心存在哪种无线安全选项,而只关心他的家庭网络是否安全。总而言之,大家在他们的陈述中强烈表达了他们想要易于理解和易于使用的工具的愿望,例如:“工具中的所有内容都应该易于查看,理解和使用”和“让家庭网络(工具)更容易,让受教育程度较低的人更容易使用网络技术。“这些言论确认了了家庭网络管理工具的必要性,该工具必须很容易用于这种家庭网络用户,而不需要太多的底层技术网络知识。然而事实上大家难以找到这样的工具。许多用户也经常提到这一点。他们抱怨说,他们不知道他们需要运行哪些工具或如何获得这些工具来执行特定的任务。由于工具通常支持网络管理的某些方面,用户必须针对不同的管理任务运行不同的工具。一些用户解决了进入内置路由器工具的可用性问题。要获得内置于路由器中的工具,用户通常必须知道浏览器上路由器的IP地址,这是许多用户不熟悉的。而且,不同的路由器有不同的默认IP地址。例如,Linksys路由器通常使用作为其默认IP地址,而DLINK路由器使用。工具可访问性的问题表明,向用户提供一次性支持所有网络管理任务的一体化网络管理工具是一件好事,这种工具可以被普通用户轻松访问。还有一些人提到的问题在于,对于不同的厂商生产的设备没有统一的用户界面,同样的,不同的操作系统也存在这样的问题。他们缺少一种可以一体化控制网络的东西。对于这些工具,他们还缺乏易于读懂的用户手册。往往这些工具的用户手册都含有太多的专业技术词汇,当我们阅读它们时,有时甚至还要上网去查那些专业词汇,这样十分不方便。综合以上的考量,我们要设计一个简单易用的网络管理工具,来达到网络控制和管理的目的。这个工具必须不能含有太多的专业性的东西,即使有一些常人不太能接触到的内容,也要通过简单教学就能学会的。以及不能含有太多复杂的功能,功能需要专一,最好还能跨平台使用,因为有的用户使用Windows操作系统,有的用户使用Mac操作系统。2.4 本章小结本章主要描述了家庭网络面临的主要问题,通过询问身边的朋友和同学了解他们在家庭网络控制和管理方面遇到了什么困境,以及他们希望用什么样的方式来解决这类问题。然后通过他们说的话,提出设计家庭网络控制系统的一些特性:界面必须简洁,不存在特别技术性的操作,一般非专业用户也要易于上手,最好还能跨平台运行。

第三章 家庭网络控制系统分析与设计本章简单阐述了家庭网络控制系统可以在网络访问的哪些过程入手,进行网络访问控制。以及有哪些技术可以用在实现网络访问控制这一环节。这些对之后所要实现的网络访问控制工具有非常重要的铺垫作用。3.1 网络访问3.1.1DNS查询域名系统(DNS)是互联网的核心部分,任何连接到互联网的东西包括笔记本电脑,平板电脑,手机,网站等都有一个由数字组成的互联网协议(IP)地址[4]。比如一个我们经常访问的网站可能有一个像33这样的IP地址,但这显然不容易记住。然而,像这样的域名是大家都比较容易记住。DNS使域名与IP地址同步,使人们可以使用令人难忘的域名,而互联网上的计算机可以使用IP地址。DNS本质上充当分布式数据库,它使用需要名称解析的客户端(将主机名映射到IP地址)和维护DNS数据的服务器之间的客户端/服务器关系。这种分布式数据库结构使DNS名称空间既是动态的,又是分散的,使本地域可以控制自己的DNS数据库部分,同时还可以让任何客户端访问数据库的任何部分。DNS查找的简单过程如下:(1)浏览器会缓存DNS一段时间,当我们发起请求,浏览器首先在缓存中进行查询。如果这个映射关系存在,就直接调用。(2)缓存中假如没有我们要访问的网站的DNS记录,浏览器进而向操作系统请求服务器的IP地址。(3)操作系统首先检查本地hosts文件中是否有这个网站网址和对应IP地址的映射关系,如果存在这样的映射关系,就直接调用。(4)如果hosts文件中不存在相关域名的映射,操作系统缓存中也不存在这样的映射关系,系统就向网络上的服务器请求这样一个映射(5)请求的DNS服务器通常由internet服务提供商(ISP)管理。ISP的DNS服务器就是我们从DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)获得的网络配置的一部分[5]。这些服务器驻留在ISP的数据中心,它们按如下方式处理请求[6]:首先如果它的数据库中包含域名和IP地址的映射,它将自行解析。如果它的数据库中没有域名和IP地址的映射,它会联系internet上的另一台DNS服务器。这个过程可能会被执行多次。如果必须联系另一台DNS服务器,它会在有限的时间内缓存查找结果,以便快速解析对相同域名的后续请求。如果在合理搜索后没有找到域名,它会返回一个错误,指出名称无效或不存在。3.1.2 建立TCP连接传输控制协议(TCP)是internet协议套件的主要协议之一。它起源于最初的网络实现,它补充了互联网协议(IP)。因此,整个套件通常被称为TCP/IP[7]。TCP连接的建立使用三次握手。在客户端尝试连接服务器之前,服务器必须首先绑定到端口并在端口上侦听才能将其打开以进行连接:这称为被动打开。要建立连接,会发生三路(或三步)握手[8]:(1)SYN:主动打开由客户端向服务器发送SYN请求报文段。客户端将段的序列号设置为随机值A.(2)SYN-ACK:服务器回复SYN-ACK来响应。确认号码设置为比接收到的序列号码多1即(A+1),并且服务器为该分组选择的序列号码是另一个随机数字B.(3)ACK:最后,客户端将ACK发送回服务器。序列号被设置为接收到的确认值即A+1,并且确认号被设置为比接收到的序列号多1即(B+1)。此时,客户端和服务器都已收到连接确认。步骤1,2建立一个方向的连接参数(序列号)并进行确认。步骤2,3建立另一方向的连接参数(序列号)并进行确认。通过这些,建立了全双工通信。连接终止阶段使用四次握手,连接的每一侧都是独立终止的。当一个端点希望停止其一半的连接时,它发送一个FIN数据包,另一端用ACK来确认[9]。因此,典型的拆分需要来自每个TCP端点的一对FIN和ACK段。在两个FIN/ACK交换结束之后,发送第一个FIN的一方在收到一个FIN之前等待一个超时,最后关闭连接,在此期间本地端口不可用于新的连接;这可以防止由于在后续连接期间传递延迟的分组而导致混淆。连接可以是“半开放”的,在这种情况下,一方已经终止了连接,但另一方没有终止。已终止的一方不能再向连接发送任何数据,但另一方可以。终端方应继续读取数据,直到另一方终止。两台主机都可以同时发送FIN,然后双方都必须进行ACK。这可能被认为是双向握手,因为FIN/ACK序列在两个方向上并行完成。某些主机TCP堆栈可能会执行半双工关闭序列,如Linux或HP-UX所做的那样。如果这样的主机主动关闭连接,但仍未读取从链路已经收到的所有入站数据,则该主机将发送RST而不是FIN(RFC1122中的第3节)。这允许TCP应用程序确定远程应用程序已经读取了前者发送的所有数据——当它主动关闭连接时,从远程端等待FIN。但是,远程TCP堆栈无法区分连接中止RST和此数据丢失RST[10]。两者都会导致远程堆栈丢弃收到的所有数据。3.1.3 发送HTTP请求及后续(1)当建立TCP连接之后,浏览器通过TCP连接发送HTTP请求;(2)浏览器接收到HTTP响应并可能关闭TCP连接,或将其重新用于其他请求;(3)浏览器检查响应并返回相应的结果状态码[11];(4)如果可缓存,则响应存储在缓存中;(5)浏览器解码响应(例如,如果它被解压缩);(6)浏览器确定如何处理响应(例如,它是HTML页面,是图像,是声音剪辑吗?);(7)浏览器呈现响应,或为无法识别的类型提供下载对话框。3.2 内容检测3.2.1深度包检测技术的背景近年来,许多攻击已经从网络级别转移到应用级别。由于防火墙有效阻止了为网络利用而开放的多个端口,因此新攻击的研究集中在通常通过大多数防火墙安全策略开放的应用程序中,它们重点关注诸如超文本传输​​协议(HTTP),简单邮件传输协议(SMTP),数据库访问协议等。此外,HTTP已成为许多新软件开发技术的最重要途径之一,旨在使新Web应用程序的交付更加容易并充满先前无法提供的丰富新功能[12]。HTTP和上述其他协议的大量使用迫使大多数网络和安全管理员在其防火墙中创建特定规则,以允许以几乎不受限制的方式进行这些类型的通信。例如即时消息或互联网电话之类的应用程序的几个软件开发者已经将它们用于使用这些开放式通信信道,以避免组织强制执行的限制和控制。有些公司甚至通过记住端口扫描器的方法,即历史上用于网络和主机安全评估和入侵的工具,来调整其代码,以搜索和使用防火墙中的任何开放端口。网络访问控制需要变得更细化,超越了大多数技术提供的基本功能。重点不在于阻止或不阻止HTTP端口,而是保证此开放端口仅用于特定类型的授权HTTP通信[13]。这包括防范诸如以下事情:(1)未经授权下载移动代码,如ActiveX控件和Java小程序(2)针对Web站点的应用程序级别攻击(3)恶意软件通过授权协议传播(4)未经允许使用对等网络(Peer-to-Peer,简称P2P)、访问网站、使用流媒体(5)未授权的应用程序使用授权的开放端口(6)可以表征攻击的具体行为因此,如何深度感知互联网/移动互联网业务,防范诸如上面提到的这些问题,逐渐成为研究的热点,深度包检测技术就在这样的环境中逐渐成熟起来。3.2.2 深度包检测技术的简介深度数据包检测(DPI)是一种过滤方式,用于检查通过网络从一台计算机发送到另一台计算机的数据包。DPI是检查和管理网络流量的先进方法,它在开放系统互连(OSI)参考模型的第七层(应用层)上运行[14]。DPI的有效使用使其用户能够追踪、识别、分类、重新路由或阻止具有不良代码或数据的数据包进行传输。DPI通常比典型的数据包过滤更有效,后者仅检查数据包标头。DPI还会在检查点检查数据包的数据部分(有时是数据包标头),试图找到协议不合规性、入侵、垃圾邮件、病毒或其他预定义因素,以确定数据包是否可以通过或者是否必须指向另一个位置。深度数据包检测可以检查消息的内容并识别发送它的服务或者应用程序[15]。另外,深度包检测可以对过滤器进行编程,以查找和重新路由来自特定互联网协议(IP)地址范围或网易云音乐等特定在线服务的网络流量。3.3 系统构思3.3.1干扰域名解析域名系统是一项互联网服务。当人们想要从浏览器访问某个域名的时候:(1)浏览器会缓存DNS一段时间,当我们发起请求,浏览器首先在缓存中进行查询。如果这个映射关系存在,就直接调用。(2)缓存中假如没有我们要访问的网站的DNS记录,浏览器进而向操作系统请求服务器的IP地址。(3)操作系统首先检查本地hosts文件中是否有这个网站网址和对应IP地址的映射关系,如果存在这样的映射关系,就直接调用。以上三步均在本地完成,即在计算机设备上或者在本地的路由器上。因此有一种方法,我们可以修改本地DNS解析器缓存,将里面保存的IP映射进行修改[16],将某个域名指向一个虚假的或者根本不存在的IP地址。或者更简单的一个方法,修改系统hosts文件,在文件内添加相应的映射关系,将某个域名映射到不是它在网络上的正确IP地址,例如可以将4399.com映射到(/8整个IP段都是环回地址,是用来测试本机TCP/IP协议栈的,发往这段A类地址的数据包不会出网卡,网络设备也不会对其做路由),这样就无法访问到4399.com真实的IP了,从而达到了访问控制的目的。3.3.2TCP连接重置本质上来说,互联网是个人计算机交换电子信息或IP数据包的系统。该系统包括携带消息的硬件(如铜线和光纤光缆)以及格式化消息的正式系统,称为“协议”。Internet上使用的基本协议是IP协议,它通常与其他协议(如TCP(传输控制协议)或UDP(用户数据报协议))相耦合[17]。每个协议都有一个信息块,称为头,包含在每个数据包的前面。标题包含有关哪台计算机发送数据包,哪台计算机应该接收数据,数据包大小等信息。当两台计算机之间需要双向虚拟连接时,TCP与IP一起使用(UDP另一方面是无连接的IP协议)。通过交换数据包流,两台机器上的TCP软件(例如,带有浏览器和Web服务器的工作站)进行通信[18]。通过使用TCP连接,计算机可以轻松交换数据项,这些数据项对于单个数据包来说太大了,例如视频剪辑,电子邮件附件或音乐文件。虽然有些网页对于单个数据包足够小,但为了方便起见,它们是通过TCP连接发送的。在TCP连接的数据包流中,每个数据包都包含一个TCP标头。这些标头中的每一个都包含一个称为“复位”(RST)标志的位。在大多数数据包中,该位设置为0并且没有影响;但是,如果该位设置为1,则它向接收计算机指示计算机应立即停止使用TCP连接;它不应该使用连接的标识号码(称为端口)发送更多的数据包,并且丢弃它接收到的任何其他数据包,并标头指示它们属于该连接。TCP重置基本上立即终止TCP连接。3.4 本章小结本章分析了从网络访问的哪些环节入手可以对访问进行控制。以及研究了哪些技术可以用于网络访问控制。一种设想是在我们客户端和服务端之间加入一个代理服务器,带服务器。代理服务器通过深度包检测,可以检测到HTTP请求中HOST字段中包含的主机名,比如4399.com这个主机名。当检测到规则中匹配的主机名时,代理服务器模拟服务端,将向客户端发送的TCP连接的数据包的标头中RST标志位设置为1,客户端接收到这个数据包时便认为服务器关闭了这个连接,从而连接终止。另一种设想是在进行DNS查询的阶段,直接返回一个错误的域名和IP的映射,这样浏览器向这个IP请求数据的时候就返回并非是原来要请求的域名的真实IP所返回的内容了。当设置的IP不存在或为/8时,直接返回连接关闭的错误。第四章 家庭网络控制系统实现本章介绍了一个简单的网络访问控制系统程序的实现,包括介绍实现这个系需要哪些内容,然后介绍这个系统的主要功能。4.1 开发环境4.1.1Node.jsNode.js是一个开源的,跨平台的JavaScript运行时环境,可以在服务器端执行JavaScript代码。历史上,JavaScript主要用于客户端脚本编写,其中使用JavaScript编写的脚本嵌入在网页的HTML中,并通过用户的Web浏览器中的JavaScript引擎运行客户端。Node.js允许开发人员使用JavaScript进行服务器端脚本运行,运行服务器端脚本生成动态网页内容,然后将页面发送到用户的Web浏览器。因此,Node.js代表了一种“无处不在JavaScript”范式,围绕单一编程语言统一Web应用程序开发,而不是用于服务器端和客户端脚本的不同语言。虽然.js是JavaScript代码的常规文件扩展名,但名称“Node.js”在此上下文中并不涉及特定文件,而仅仅是产品的名称。Node.js函数是非阻塞的(命令同时执行或者并行执行并使用回调来表示完成或失败)。Node.js具有能够异步输入/输出的事件驱动架构。这些设计选择旨在优化具有多种输入/输出操作的Web应用程序以及实时Web应用程序(例如实时通信程序和浏览器游戏)的吞吐量和可伸缩性[19]。4.1.2ElectronElectron(以前称为AtomShell)是由GitHub创建和维护的开源框架。它允许使用最初为Web应用程序开发的前端和后端组件开发桌面GUI应用程序:用于后端的Node.js运行时和用于前端的Chromium浏览器。Electron通过将Chromium和Node.js合并到同一个运行时环境中,并可以将其打包为Mac,Windows和Linux系统下的应用。Electron是几个着名的开源项目背后的主要GUI框架,包括GitHub的Atom和Microsoft的VisualStudioCode源代码编辑器,Tidal音乐流服务桌面应用程序和LightTable集成开发环境,Discord聊天服务的免费桌面客户端软件等[20]。4.1.3ReactReact(有时也叫React.js或ReactJS)是一个用于构建用户界面的开源JavaScript库。React可用于开发单页面应用程序和移动应用程序。它主要目的是提供高效性,便捷性和可扩展性。作为用户界面库,React经常与其他库(如Redux)结合使用。React最初由Facebook的软件工程师JordanWalke创建。他受到PHP的HTML组件框架XHP的影响。它在2011年首次部署在Facebook的新闻源中,后来在2012年在I上部署。它于2013年5月在JSConfUS开源。ReactNative于2015年2月在Facebook的React.jsConf上发布,并于2015年3月开放源代码,该平台支持使用React进行原生Android,iOS和UWP开发。2017年4月18日,Facebook发布了一种新的React框架库核心算法ReactFiber,用于构建用户界面。ReactFiber将成为任何未来的改进和React框架功能开发的基础[21]。4.2 系统实现这个网络访问控制系统采取在DNS查询过程中,干扰查询使得浏览器发出访问请求之后得到错误的域名与IP的映射的方法,来控制对某些域名的访问控制。本系统采用Node.js运行时环境,以Electron为框架进行开发。当完成基本的代码编写以后在源代码存放的根目录和app子目录分别运行安装相关依赖库。然后进入根目录建立通用文件,之后便能在根目录通过npmstart运行这一系统了。运行这个系统的时候,首先给出一个默认的hosts界面,如图4.1所示。会生成一个默认的配置页面,当用户点击左下角的“+”符号时,系统显示一个添加配置的对话框并要求输入配置的名称,如图4.2所示。图4.1程序启动时的默认页面图4.2添加hosts方案我们输入方案名称test,然后进入以test命名的方案内,进行规则的添加。规则的添加十分之简单明了。当你不希望计算机的用户访问某个域名的时候,就使用本文3.4中提到的方法,在添加规则的页面另起一行,输入加一个空格,后面填写不希望用户访问的域名,例如可以设置,并且点击规则名称右边的小开关图标,表示启用test这个方案内的规则,如图4.3所示。这样用户就无法使用浏览器访问这个域名了,效果如图4.4所示。当然,在默认的“网络访问控制”方案内进行规则的添加也是同样可行的。图4.3配置一条规则并启用方案图4.4启用规则后访问域名的效果在进行规则的设置并启用方案后,浏览器访问就返回无法连接的信息,对错误的描述为连接被拒绝。这样就达到了网络访问控制的目的了。本系统还有其他一些方便使用的小功能。点击规则前面的序号,自动将注释本条规则。当用户添加的规则特别多的时候,想要灵活调整规则就十分的便捷了。当用户输入的规则不符合hosts文件的规范时,序号后面的内容以红色显示,用以提示用户该条规则出现了错误。其实hosts文件用以网络访问控制的限制访问某一网站时,它的规则就如同上面介绍的一般简单,用户不需要记住许多细节性和技术性的内容。仅仅需要知道输入然后空格,在空格之后填写不希望被用户访问的域名。这样的简洁是前所未有的,极少有系统可以在用户完全不了解网络知识的情况下,也能迅速理解并进行网络访问控制。4.3 本章小结本章简单介绍了实现一个简单的网络访问控制系统需要的环境和用到的框架及依赖库。还介绍了简单网络访问控制系统的使用方法和使用效果图。证明前面章节所述的控制网络访问的方法是有效的。由于这一系统用Electron和Node.js实现,理论上具有跨平台运行的能力,但是没有相关操作系统环境,本系统仅在Mac操作系统下运行成功。

第五章总结与展望5.1 本文总结本文首先从网络的发展引出家庭网络的概念,并对家庭网络进行了阐述。结合对身边朋友以及同学的情况的了解,提出大家对家庭网络控制方面的需求。然而考虑到现实生活中,因为大多数人以及他们的家庭成员都没有非常专业的网络知识,并且许多可以用于家庭网络管理的硬件和软件使用起来十分复杂,大家对家庭网络控制和管理的需求难以达到。然后文章分析了家庭网络访问控制和管理可以从网络访问的哪些环节入手。接着介绍了在这些环节,有哪些技术可以用于网络访问控制和管理。最后提出一个家庭网络控制系统的实施方案并且展示这一系统实施的效果。5.2 后续工作展望然而,本文第四章中实现的家庭网络控制系统也存在以下不足:(1)由于需要满足用户没有网络基础也能轻松使用这一需求,这一系统设计的功能过于简单。(2)本文研究的另一种方案由于缺乏相关网络编程的知识和没有充足的时间,并没有能够在这一系统中进行实现。(3)本文提到的系统是通过修改系统hosts文件来实现的,而浏览器访问网站首先会检查浏览器的缓存,如果缓存中存在对应的映射关系,便不会请求系统hosts文件的内容。由于不清楚浏览器缓存DNS信息具体的时间,通过本系统设置的访问控制规则可能没有办法在方案被启用的同时生效,可能要手动清除浏览器缓存或者进行重启设备的操作后方案才能生效。(4)本系统仅仅在Mac操作系统下实现了网络访问控制的功能,按照常理是应该可以在Linux(然而一般家庭并不会用到Linux操作系统)和Windows操作系统中运行的,只要这些系统都安装了Node.js运行环境。然而并没有对这一系统的跨平台运行能力进行测试。(5)这一系统目前没有打包成.app文件(相应的Windows操作系统中为.exe文件),而需要使用控制台或者编辑器运行,一定程度上削弱了这一系统的简单性和易用性。我希望今后可以将这一系统进行完善,解决上面提出的不足。另外,通过撰写本文以及实现这样一个简单的家庭网络控制系统的过程,我学习到了不少相关的知识。就文中提到的“TCP连接重置”和“深度包检测”这两项技术,我希望未来能有相关人士能够将它们应用到网络控制和管理系统中。我的一个想法是,实现一个HTTP和HTTPS的代理,这个代理具备深度包检测的功能,并且可以积累或者从网络上下载特征库。代理通过中间人攻击的方法,在本地安装证书,获得系统和浏览器的信任以解密HTTPS的流量,然后对比特征库[22],发现不希望被访问的内容时,向客户端发送RST消息或者直接丢弃服务器回传的数据包。同样的,这一代理需要有简洁的用户界面并且不需要用户做太多的专业操作。虽然复杂,但易于使用。我相信随着互联网技术的发展,像这样的或者比这好的方案很快都能够实现。参考文献[1] 张茁,孙洁.基于以太网的智能家庭网络系统设计[D].,2005.[2] 王修晖,吴明光.CEBus家庭网络管理器的设计与实现[J].电子技术应用,2002,28(6):60-62.[3] YangJ,EdwardsWK.Astudyonnetworkmanagementtoolsofhouseholders[C]//Proceedingsofthe2010ACMSIGCOMMworkshoponHomenetworks.ACM,2010:1-6.[4] ZhangM,RuanY,PaiVS,etal.HowDNSMisnamingDisto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论