• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      無線局域網(wǎng)中基于可靠廣播的文件共享

      2016-05-14 00:43:53蔡鎖德
      現(xiàn)代電子技術 2016年5期
      關鍵詞:文件共享無線局域網(wǎng)

      蔡鎖德

      摘 要: 文件共享作為人們工作學習中最有效的方式之一,但是在網(wǎng)絡狀況不好甚至是沒有網(wǎng)絡的時候用戶想要共享文件是不能實現(xiàn)的,針對此問題,提出了一個在移動終端上實現(xiàn)的文件共享系統(tǒng)。在本系統(tǒng)中,用戶可以自行組織成網(wǎng)絡進行文件共享,不必考慮外部的網(wǎng)絡環(huán)境,通過底層使用Ad Hoc網(wǎng)絡,在網(wǎng)絡內(nèi)部使用UDP廣播,可實現(xiàn)各節(jié)點快速的文件共享。通過無線局域網(wǎng)內(nèi)部的文件共享實驗,證實了該系統(tǒng)的性能不會因為網(wǎng)絡中節(jié)點數(shù)目的增加而下降;通過移動終端節(jié)點和服務器節(jié)點文件共享的實驗,證實不能連接到服務器的節(jié)點也可以和服務器實現(xiàn)文件共享,而且與每個節(jié)點都要主動和服務器共享文件的情況相比,提高了文件共享的效率。

      關鍵詞: 文件共享; Ad Hoc; 可靠廣播; 無線局域網(wǎng)

      中圖分類號: TN911?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)05?0042?05

      0 引 言

      隨著移動互聯(lián)網(wǎng)的發(fā)展以及智能手機的普及,人們的日常生活越來越依賴于移動終端,而文件共享作為一種工作、學習的有效方式,受到大眾的普遍歡迎,因此移動終端的文件共享成為網(wǎng)絡應用的一個重要方面?,F(xiàn)階段存在的文件共享系統(tǒng)大多數(shù)采用如下結(jié)構(gòu):C/S(客戶機/服務器),B/S(瀏覽器/服務器),P2P(對等網(wǎng)絡)等[1]。

      雖然在移動終端實現(xiàn)的文件共享系統(tǒng)很多,但是這些系統(tǒng)在網(wǎng)絡層使用的網(wǎng)絡大部分都是WiFi有AP接入點網(wǎng)絡或者蜂窩網(wǎng)絡,而且在移動終端之間進行文件共享時大部分都要經(jīng)過服務器,移動終端向服務器請求下載文件,或者將共享的文件上傳到服務器,像比較受歡迎的 dropbox,DBank,Seafile等[2]。

      但是在一個沒有網(wǎng)絡覆蓋的環(huán)境中,想共享彼此擁有的資源或者是在教室進行考試,只有老師的移動終端設備可以連接到服務器,學生是不容許上網(wǎng)的,而試卷就存儲在服務器上;又或者在一個人員比較密集的環(huán)境中,大家都想請求服務器上的文件,這類場景的特點是多數(shù)用戶的設備不能連入網(wǎng)絡,而只有少部分用戶可以上網(wǎng),或者是所有用戶都不可以上網(wǎng);另一種情況就是在同一個地方同時向服務器請求同一個資源的用戶數(shù)較多。很顯然現(xiàn)存的移動終端文件共享系統(tǒng)并不能滿足上述場景的需求[3]。

      針對上述場景,本文提出了一種新思路的文件共享系統(tǒng)。該文件共享系統(tǒng)的目標是使有共享需求的用戶可以根據(jù)自己的需求自行組織成網(wǎng)絡,并可以在該網(wǎng)絡內(nèi)部自由的和其他用戶實現(xiàn)文件共享,各用戶在網(wǎng)絡中的地位相等[4]。

      1 系統(tǒng)的設計

      1.1 總體設計

      文件共享系統(tǒng)涉及到的節(jié)點主要分為三類:非聯(lián)網(wǎng)節(jié)點、聯(lián)網(wǎng)節(jié)點和服務器。其中聯(lián)網(wǎng)節(jié)點表示Ad Hoc網(wǎng)絡中可以連接到2G/3G/4G網(wǎng)絡的節(jié)點,非聯(lián)網(wǎng)節(jié)點表示不能接入蜂窩網(wǎng)的節(jié)點。設計的目標是實現(xiàn)移動終端下的多用戶文件共享。多個移動終端節(jié)點可以自行組織成Ad Hoc網(wǎng)絡,這些節(jié)點可以在網(wǎng)絡中自行分享文件,包括圖片、視頻等;若是該網(wǎng)絡中有節(jié)點可以連接到服務器,則這個網(wǎng)絡中的非聯(lián)網(wǎng)節(jié)點都可以通過該節(jié)點和服務器實現(xiàn)文件共享。 FileShare系統(tǒng)的網(wǎng)絡拓撲圖的一種狀態(tài)[5],如圖1所示。

      圖1 FileShare網(wǎng)絡拓撲圖

      1.2 系統(tǒng)的運行流程

      FileShare文件共享系統(tǒng)在Ad Hoc網(wǎng)絡中的運行流程如圖2所示,其中節(jié)點A,B,C,D均為移動終端節(jié)點。FileShare系統(tǒng)的運行流程如下[6]:

      (1) 當節(jié)點A的共享目錄中有變化時,發(fā)送文件;

      (2) 節(jié)點B,C,D確認該文件是有效文件,并接收文件數(shù)據(jù)包,保存到程序中;

      (3) 節(jié)點A收到了反饋包,開始發(fā)送一定量的冗余數(shù)據(jù)包;

      (4) 節(jié)點C,D收到了冗余數(shù)據(jù)包,并與原有的包整合,解碼恢復出原文件,并寫到本地共享文件夾中。

      從上述的運行流程可知,文件共享系統(tǒng)主要包括以下內(nèi)容:實時監(jiān)聽并處理共享文件夾中的內(nèi)容的變化,文件編碼管理,發(fā)送過程管理,接收過程管理,反饋包監(jiān)聽及管理,本地讀寫文件等。

      圖2中的節(jié)點可以是非聯(lián)網(wǎng)節(jié)點,也可以是聯(lián)網(wǎng)節(jié)點,它們自行組織成網(wǎng)絡進行文件共享??紤]到網(wǎng)絡中會存在可以連接到服務器的節(jié)點,這樣通過聯(lián)網(wǎng)節(jié)點的橋梁作用,就可以實現(xiàn)非聯(lián)網(wǎng)節(jié)點和服務器的間接信息交換和文件共享。本文在調(diào)研了Seafile的詳細信息后,將本文設計的FileShare 系統(tǒng)與Seafile 軟件進行有效結(jié)合,以達到上文提到的三類節(jié)點可以方便地共享文件的目的。

      1.3 可靠廣播機制設計

      為了加快網(wǎng)絡中文件共享的速度及減少網(wǎng)絡中的數(shù)據(jù)量,本文選用了UDP廣播技術,并基于UDP的不可靠性,進行了改進,提出了可靠廣播機制。本文中廣播的可靠性主要依賴于FEC編碼機制和反饋重傳機制。反饋重傳機制的原理:接收方在發(fā)生丟包現(xiàn)象時可以和發(fā)送方溝通,告訴發(fā)送方自己丟包的數(shù)量。FEC編碼機制的主要思想是根據(jù)[n]個文件數(shù)據(jù)包,編碼生成[k]個冗余數(shù)據(jù)包,而接收方只要收到這[n+k]個中任意[n]個數(shù)據(jù)包,就可以糾錯恢復出原數(shù)據(jù)。

      1.4 模塊設計

      文件共享系統(tǒng)共分為八大模塊,分別為共享文件夾管理模塊、文件分塊和合并模塊、文件編解碼模塊、發(fā)送模塊、接收模塊、反饋包管理模塊、文件讀寫模塊和日志輸出模塊,各模塊之間的關系如圖3所示。

      (1) 共享文件夾管理模塊。在/sdacrd下面新建一個共享文件夾SharedFiles作為所有節(jié)點的共享文件夾,同時采用FileObserver對該文件夾及其內(nèi)容的相關事件如創(chuàng)建、修改、寫完后關閉和刪除等進行監(jiān)聽,監(jiān)聽的范圍包括共享文件夾及其內(nèi)部的所有子目錄和子文件。

      (2) 文件分塊、合并模塊。對大文件分塊,小文件合并的方法。要將大文件分塊發(fā)送,總的來說就是分為兩層發(fā)送,首先將文件分成固定大小的文件塊,最后一塊大小可以不固定,然后逐塊發(fā)送。在每塊發(fā)送的過程中考慮到UDP發(fā)送的機制,將一塊數(shù)據(jù)分成固定大小的文件數(shù)據(jù)包在UDP中廣播。

      (3) 文件編解碼模塊。對于大文件來說文件要進行分塊,小文件是合并后分塊發(fā)送的,所以文件的編解碼是以文件包為單位進行的。

      (4) 發(fā)送模塊。待發(fā)送的文件要先放入發(fā)送隊列,當發(fā)送隊列滿足一定的條件時,隊列中的文件才會被發(fā)送。使用Ad Hoc網(wǎng)絡,節(jié)點的IP地址在移動終端啟動Ad Hoc模式時已經(jīng)指定。

      (5) 接收模塊。接收模塊作為一個單獨的線程在程序運行時就會開啟,直到程序運行結(jié)束,才會關閉該線程。

      (6) 文件讀/寫模塊。本系統(tǒng)的主要功能是實現(xiàn)文件共享,系統(tǒng)中對本地文件的讀/寫非常頻繁。采用類似Java自帶的讀取文件類FileInputStream和BufferedInputStream,文件讀取一般采用順序讀取的方式,將一定大小的二進制數(shù)據(jù)放到文件數(shù)據(jù)包中,函數(shù)為read(data,0,block_length)。

      (7) 反饋包管理模塊。反饋包的作用就是通知發(fā)送者本節(jié)點的丟包情況。UDPpacket的發(fā)送都是采用廣播的方式,所以對于其他節(jié)點發(fā)送的反饋包,節(jié)點都可以收到,并保存到其他節(jié)點反饋包列表中。

      (8) 日志輸出模塊。日志輸出模塊主要記錄系統(tǒng)運行時的各種信息,包括共享文件的信息,發(fā)送、接收過程中產(chǎn)生的數(shù)據(jù)信息,控制信息,編解碼信息等。系統(tǒng)將這些信息寫到日志文件中,以便系統(tǒng)的調(diào)試和后續(xù)做實驗時的記錄。在該系統(tǒng)中各個模塊之間有相互調(diào)用的關系。

      1.5 數(shù)據(jù)庫設計

      系統(tǒng)采用的數(shù)據(jù)庫是Android自帶的數(shù)據(jù)庫SQLite。數(shù)據(jù)庫的相關操作如創(chuàng)建、打開、刪除數(shù)據(jù)庫以及創(chuàng)建、刪除、添加、查詢數(shù)據(jù)表等,均是利用Android數(shù)據(jù)庫幫助類SQLiteOpenHelper實現(xiàn)的。系統(tǒng)在發(fā)送信息時采用的是UDP廣播的方式,以提高發(fā)送效率,減少發(fā)送方的重傳次數(shù)以及發(fā)送多類不同的信息,方便彼此之間通信。

      2 系統(tǒng)實現(xiàn)

      系統(tǒng)使用了Seafile服務器和其部分代碼,使得非聯(lián)網(wǎng)節(jié)點可以通過聯(lián)網(wǎng)節(jié)點和服務器實現(xiàn)文件共享。在Ad Hoc網(wǎng)絡內(nèi)部實現(xiàn)文件共享時,完全使用的是FileShare系統(tǒng)提供的功能。當節(jié)點要和服務器通信時,主要使用的是Seafile的功能。兩個軟件結(jié)合后形成的新系統(tǒng)可以實現(xiàn)非聯(lián)網(wǎng)節(jié)點、聯(lián)網(wǎng)節(jié)點和服務器的文件共享和全網(wǎng)同步,而且系統(tǒng)中加入服務器后,可將多個Ad Hoc網(wǎng)絡連接成一個大的網(wǎng)絡。

      加入服務器節(jié)點后,網(wǎng)絡中的聯(lián)網(wǎng)節(jié)點作為中轉(zhuǎn)節(jié)點,負責非聯(lián)網(wǎng)節(jié)點和服務器的通信,非聯(lián)網(wǎng)節(jié)點可以通過它將文件上傳到服務器,或者從服務器下載文件。在實現(xiàn)全網(wǎng)同步的過程中,聯(lián)網(wǎng)節(jié)點的操作步驟和非聯(lián)網(wǎng)節(jié)點是有差別的。

      圖4(a)是文件共享系統(tǒng)FileShare的主界面,該程序運行時就會自動對共享文件夾進行監(jiān)控,所以界面只設計了兩個按鈕,同步和停止。同步按鈕用于實現(xiàn)本節(jié)點與聯(lián)網(wǎng)節(jié)點的同步功能;圖4(b)是192.168.1.12這個節(jié)點在共享大文件時(指定大于100 KB文件為大文件)的界面圖,界面主要顯示了共享過程信息。圖4(c)是192.168.1.17這個節(jié)點接收大文件的示意圖,界面主要顯示了接收過程信息,包括收到文件每個塊的數(shù)據(jù)包數(shù)量、發(fā)送反饋包、接收數(shù)據(jù)包、寫文件到本地、接收文件的時間等。圖4(d)是節(jié)點發(fā)送小文件的界面圖,和發(fā)送大文件不同的是文件不需要分塊,只有一塊且首次發(fā)送的數(shù)據(jù)包小于100個。

      3 功能測試及實驗結(jié)果分析

      在實驗過程中用到的實驗設備為多臺Intel手機和一臺Seafile服務器。其中Intel手機的參數(shù)為:型號為Intel mfld_pr3、操作系統(tǒng)為Android4.04、內(nèi)核版本為3.08、網(wǎng)絡接口為Ad Hoc、手機內(nèi)存為1 GB。

      3.1 Ad Hoc網(wǎng)絡內(nèi)部文件共享實驗

      實驗中選定了多個大小不同的文件作為共享文件,這些文件的大小分別是10 B,100 B,1 KB,100 KB,200 KB,500 KB,1 MB,4 MB和10 MB。

      3.1.1 Ad Hoc網(wǎng)絡中一個節(jié)點主動共享文件實驗

      實驗中主動共享文件的節(jié)點只有一個,其他節(jié)點只負責接收文件和反饋相應的文件包丟失信息。具體的操作步驟是:多個Intel手機安裝程序FileShare;然后選定其中一個手機節(jié)點作為主動共享文件的節(jié)點,該節(jié)點在共享文件夾中放入不同的文件,其他節(jié)點不做任何操作;當其他節(jié)點接收文件成功后,記錄下各文件花費的時間。在該實驗的過程中,將網(wǎng)絡中的節(jié)點數(shù)量設為2個,3個,4個,6個,分別做了對比實驗,接收文件花費的時間如圖5所示。

      圖5 單節(jié)點共享文件,多節(jié)點接收花費時間圖

      通過上述實驗,一方面驗證了本系統(tǒng)的功能,包括對共享文件夾的監(jiān)聽,文件夾內(nèi)不同操作觸發(fā)的不同事件的處理、發(fā)送、接收過程以及反饋包的管理等。另一方面,從圖5中可以看到,節(jié)點在發(fā)送不同大小的文件時,從幾B到10 MB,系統(tǒng)均運行正常,從曲線可以看出,接收時間是隨著文件大小變化而變化的;而且一個節(jié)點在共享不同文件時,網(wǎng)絡中節(jié)點數(shù)量為2個,3個,4個和6個的接收時間曲線幾乎是重合的。這就說明在本系統(tǒng)中當Ad Hoc網(wǎng)絡中主動共享文件的節(jié)點數(shù)量是一個時,各節(jié)點接收文件的時間并不會隨著網(wǎng)絡中總節(jié)點個數(shù)的增加而增大。

      3.1.2 Ad Hoc網(wǎng)絡中節(jié)點數(shù)量固定,增加主動共享文件節(jié)點數(shù)量實驗

      本實驗中設定網(wǎng)絡中總節(jié)點數(shù)量為固定值4個,當主動共享文件的節(jié)點數(shù)不同時分別做實驗,測試節(jié)點接收不同文件花費的時間,具體實驗數(shù)據(jù)不再列出,直接制成圖6進行分析。

      從圖6可以看到,當網(wǎng)絡中的節(jié)點固定,主動共享文件的節(jié)點不同時,共享同一個文件所花費的時間不同。根據(jù)實驗過程分析得出,多個節(jié)點同時共享文件時,由于網(wǎng)絡中各個節(jié)點是平等的,每一個節(jié)點占用的帶寬大體是一樣的,這就導致多個文件幾乎在同一時間收到。所以當網(wǎng)絡中有多個節(jié)點發(fā)送文件時,接收節(jié)點在收到第一個文件時,幾乎同時會收到第二個,第三個文件。

      3.2 手機節(jié)點與服務器文件共享實驗

      3.2.1 非聯(lián)網(wǎng)節(jié)點上傳文件到服務器實驗

      非聯(lián)網(wǎng)節(jié)點通過聯(lián)網(wǎng)節(jié)點將文件上傳到服務器,并記錄整個過程產(chǎn)生的數(shù)據(jù)。實驗的具體過程如下:A在自己本地的共享文件夾中放入新文件共享,另外兩個節(jié)點收到文件后記錄接收文件花費的時間,并判斷該節(jié)點是否可以連接到服務器,如果可以,則該節(jié)點向服務器發(fā)送文件,服務器接收成功后,會將接收文件的時間返回給聯(lián)網(wǎng)節(jié)點,聯(lián)網(wǎng)節(jié)點將其記錄下來。如圖7所示為非聯(lián)網(wǎng)節(jié)點共享不同大小的文件時,不同節(jié)點(非聯(lián)網(wǎng)節(jié)點、聯(lián)網(wǎng)節(jié)點、服務器)接收不同文件花費的時間。通過實驗,證明本系統(tǒng)實現(xiàn)了非聯(lián)網(wǎng)節(jié)點將文件上傳到服務器的功能,在一定程度上提高了文件共享的效率。

      3.2.2 非聯(lián)網(wǎng)節(jié)點獲取服務器文件實驗

      聯(lián)網(wǎng)節(jié)點從服務器下載文件,然后傳送給非聯(lián)網(wǎng)節(jié)點,并記錄整個過程中產(chǎn)生的數(shù)據(jù)。實驗的具體過程如下:聯(lián)網(wǎng)節(jié)點從服務器下載文件,記錄下載的時間,并將該文件在Ad Hoc網(wǎng)絡內(nèi)廣播,其他節(jié)點在收到文件后,記錄接收的時間。聯(lián)網(wǎng)節(jié)點從服務器下載不同文件,并傳送給非聯(lián)網(wǎng)節(jié)點花費的時間圖,如圖8所示。

      從圖8中可以看到當文件從聯(lián)網(wǎng)節(jié)點傳送到非聯(lián)網(wǎng)節(jié)點時,花費的時間同上一節(jié)實驗中統(tǒng)計出的數(shù)據(jù)并沒有太大的差距。該文件共享系統(tǒng)不僅使非聯(lián)網(wǎng)節(jié)點可以和服務器進行文件共享,而且在一定程度上提高了文件共享的效率。

      4 結(jié) 論

      首先通過對現(xiàn)存的移動終端間的文件共享系統(tǒng)調(diào)研,指出普通的移動終端文件共享系統(tǒng),大部分需要節(jié)點連接到Internet,其本質(zhì)還是移動終端通過網(wǎng)絡與服務器的節(jié)點進行文件共享。共享文件的發(fā)送節(jié)點和接收節(jié)點之間并不進行直接的通信,只能通過服務器實現(xiàn)文件共享。這種集中式的,必須有服務器節(jié)點的文件共享系統(tǒng),在有些現(xiàn)實生活中的場景中并不能滿足用戶對文件共享的需求。針對這類場景,提出了新型移動終端的文件共享系統(tǒng)FileShare,該文件共享系統(tǒng)主要解決密集環(huán)境中用戶同時請求服務器的問題和用戶在無網(wǎng)絡環(huán)境中彼此共享文件的問題。在沒有網(wǎng)絡的環(huán)境中,節(jié)點可以自行組織成網(wǎng)絡,利用該系統(tǒng)在網(wǎng)絡內(nèi)部實現(xiàn)文件共享;如果是多個用戶在同一個地方同時想要請求服務器上的文件,該系統(tǒng)可以在網(wǎng)絡中選擇一個較好的節(jié)點,讓其從服務器獲取文件,然后在網(wǎng)絡內(nèi)部將文件分發(fā)給其他節(jié)點,這樣既可以解決網(wǎng)絡擁堵的問題,又為用戶節(jié)省了流量。

      參考文獻

      [1] 蔡自興,徐光祐.人工智能及其應用[M].北京:清華大學出版社,2010:30?38.

      [2] 姜樂水.淺談無線局域網(wǎng)(WLAN)技術[J].信息技術與信息化,2012(5):64?67.

      [3] 舒炎泰,張連芳.無線局域網(wǎng)絡的優(yōu)化設計與管理[J].計算機應用研究,2003,16(3):123?126.

      [4] 孫成丹,彭木根.近場通信技術(1)[J].中興通訊技術,2013,19(4):63?66.

      [5] 李勇,黃均才,王鳳碧,等.Ad Hoc網(wǎng)絡體系結(jié)構(gòu)研究[J].計算機應用,2005,25(1):163?165.

      [6] 王輝,單劍鋒,俞能海.一種新的無線Ad Hoc網(wǎng)絡中的多路徑路由及流量分配算法[J].中國科學技術大學學報,2009,39(2):125?131.

      猜你喜歡
      文件共享無線局域網(wǎng)
      WIFI頻段波束可切換開關天線的設計與實現(xiàn)
      無線網(wǎng)絡高校圖書館無線局域網(wǎng)安全性研究
      針對無線局域網(wǎng)攻擊技術的研究
      論校園無線局域網(wǎng)的攻擊與防御
      淺析無線局域網(wǎng)在政府部門的應用
      SDN在無線局域網(wǎng)中的研究進展
      一種用于P2P文件共享網(wǎng)絡的匿名通信方案
      軟件(2015年12期)2016-01-24 07:41:54
      省級氣象數(shù)據(jù)文件共享存儲管理系統(tǒng)研究
      基于P2P技術的BT系統(tǒng)阻塞算法分析
      Soulseek帶你進入歐美音樂殿堂
      景宁| 德阳市| 梁山县| 甘孜县| 汾阳市| 扬中市| 洛隆县| 涞水县| 泸水县| 惠东县| 嵊州市| 于都县| 吉木乃县| 赞皇县| 友谊县| 凤山县| 富民县| 鞍山市| 钦州市| 内江市| 泊头市| 通辽市| 湘乡市| 开阳县| 安阳市| 万安县| 昌乐县| 怀仁县| 嘉兴市| 乌恰县| 修武县| 武夷山市| 万山特区| 康平县| 龙岩市| 渝北区| 洛川县| 平和县| 莱阳市| 新宁县| 台中市|