




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄前言 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效復習公路工程考試試題及答案
- 優化復習的試題及答案指南
- 智能倉儲與物流機器人考核試卷
- 糧食倉儲企業綠色經濟企業內部控制考核試卷
- 計算機二級MySQL常見問題試題及答案
- 快速提升的2025年信息系統監理師試題及答案
- 公共場所安全管理制度
- 嵌入式系統的可靠性分析方法試題及答案
- 賓館機房衛生管理制度
- 地鐵施工衛生管理制度
- 《交通運輸系統分析》課程教學大綱
- 大學新生社團招新報名表通用版
- 文化藝術中心裝飾裝修工程施工方案(144頁)
- 神話故事相關的英語習語
- 國家開放大學《教育心理學》形成性考核冊參考答案
- 調味品QS審查細則
- 《淹溺急救》PPT課件(2022版)
- 四川省職工住房補貼實施辦法
- 遼寧醫院明細.xls
- JYC全自動變頻抗干擾介質損耗測試儀
- 報考廣東警官學院考生政審表
評論
0/150
提交評論