局域網文件傳輸方式分析

一、概述

C/S結構的軟件開發過程中通常被限於局域網範圍內常常會遇到需要傳輸數據文件、音視頻文件、升級文件到服務器端或者客戶端。每個工作站點都是通過交換機或者集線器、路由器等設備相互連接在一起。由於需要傳輸的站點數量、局域網環境、OS系統的不同,傳輸上的性能上也有很大的區別, 傳輸方式也是多種多樣的,比如常見的局域網共享傳輸、基於FTP協議傳輸、點對點傳輸等方式。不同的網絡操作系統(NOS)在局域網內採用的底層通信協議是不一樣的。現在就和大家分享一下局域網文件傳輸的分析和比較。

二、傳輸方式的特點和原理

局域網文件共享傳輸:

從開發角度來說文件共享方式傳輸是一種簡便的方式,只需要將文件設置成共享,共享權限開放即可。這樣就需要開啓OS的SERVER服務,它主要提供了支持本計算機通過網絡的文件、打印、和命名管道共享,包括了C$、IPC$等共享,開啓了135和445等危險端口.所以優點很明顯,就是簡易了共享的操作,缺點就是安全性降低了。

它的特點是:

1      需要開啓文件共享服務,文件通信方式方便、簡易

2       傳輸過程、速度等由操作系統自動調整,無需用戶設置

3      需要以共享文件的方式存在於網絡

4      由於採用文件共享,安全性能較低,遇到IO讀寫訪問錯誤、斷網、斷電時,恢復後沒有斷點續傳等功能

5      明文傳輸,數據易被篡改和竊聽從而存在很大的安全隱患

       

工作原理:

 

文件共享傳輸方式,主要採用TCPIP協議訪問資源,通過本局域網上的網絡鄰居,UNC路徑訪問,一般是利用名字解析NETBIOS,dns,wins獲得對方的IP地址,獲取對方共享資源列表,當點擊共享資源時候,客戶機對服務器端點發出建立會話請求,這發生在傳輸層。爲了在服務端和客戶端之間傳送TCP數據,必須先建立一個虛擬電路,也就是TCP連接,建立TCP連接的標準過程是這樣的: 

 第一步,請求端(客戶端)發送一個包含SYN標誌的TCP報文,SYN即同步(Synchronize),同步報文會指明客戶端使用的端口以及TCP連接的初始序號;


  第二步,服務器在收到客戶端的SYN報文後,將返回一個SYN+ACK的報文,表示客戶端的請求被接受,同時TCP序號被加一,ACK即確認(Acknowledgement)。 

  第三步,客戶端也返回一個確認報文ACK給服務器端,同樣TCP序列號被加一,到此一個TCP連接完成。 
以上的連接過程在TCP協議中被稱爲三次握手(Three-way   Handshake)。 
會話連接建立後,對方檢查共享資源的設置,通過註冊表中的共享級別。


共享信息在冊表中,跟蹤操作系統的不同,註冊表位置也有所不同。 
HKEY_CURRENT_MACHINE/Software/Microsoft/Windows/Current_Version/Network/Lanman/共享名 
A.Parm1enc爲“完全共享”密碼

B.Parm2enc爲“只讀共享”密碼

 

確定是何種級別後,客戶端就可以訪問到相應的資源了。 
這種共享加密的方式很簡單,都是明文的,只要到對方的機器上,查看註冊表就可以知道密碼。(16進制,需要對照翻譯)

 

使用現狀

常見的局域網共享工具

FTP協議傳輸:

FTP文件傳送協議(File Transfer Protocol,簡稱FTP)。中文簡稱爲文傳協議。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的服務器相連,訪問服務器上的大量程序和信息。
與大多數Internet服務一樣,FTP也是一個客戶機/服務器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求服務器向用戶傳送某一個文件的一份拷貝,服務器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
它的特點是:

1     不需要開啓文件共享服務,與OS無關性。

2      提供交互式的訪問,使得用戶更容易通過操作命令與遠程系統交互

3      允許客戶指定存儲文件的類型與格式

4      具備鑑別控制能力,允許文件具有存取權限

5       屏蔽了計算機系統的細節,因而適合於在異構網絡中任意計算機之間傳送文件

6      支持斷點續傳傳輸。

 

工作原理:

FTP的連接過程中,一般會大開兩個連接端口,一個用於控制連接的命令發送,一個用於數據傳輸。FTP協議不像HTTP協議一樣需要一個端口作爲連接(默認時HTTP端口是80,FTP端口是21)。FTP協議需要兩個端口,一個端口是作爲控制連接端口,也就是FTP的21端口,用於發送指令給服務器以及等待服務器響應;另外一個端口用於數據傳輸端口,端口號爲20(僅用PORT模式),是用建立數據傳輸通道的,主要作用是從客戶向服務器發送一個文件,從服務器向客戶發送一個文件,從服務器向客戶發送文件或目錄列表。

使用現狀

常見的FTP服務器端工具

    一種被廣泛運用的FTP服務器端軟件,支持 全Windows系列。它設置簡單,功能強大,性能穩定。FTP 服務器用戶通過它用 FTP協議能在 internet上共享文件。它並不是簡單地提供文件的下載,還爲用戶的系統安全提供了相當全面的保護。

 

常見的FTP客戶端工具

    CuteFtp是一款非常受歡迎的FTP工具,界面簡潔,並具有的支持上下載斷點續傳、操作簡單方便等特徵使其在衆多的FTP軟件中脫穎而出,無論是下載軟件還是更新主頁,都是一款不可多得的好工具。

點對點傳輸:

點對點技術簡稱P2P是目前互聯網上最流行、最有優勢的傳輸技術,它們的傳輸是通過網絡以不同的形式,也許是FTP傳輸,也許是使用QQ這樣的工具傳輸等等.

它依賴網絡中參與者的計算能力和帶寬,而不是把依賴都聚集在較少的幾臺服務器上。P2P網絡通常用於通過Ad Hoc連接來連接節點。這類網絡可以用於多種用途,各種文件共享軟件已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等實時媒體業務的數據通信中, 如迅雷看看、PPLive等。

通常我們把點對點技術分爲兩種,純點對點技術與非純點對點技術。

純點對點網絡沒有客戶端或服務器的概念,只有平等的同級節點,同時對網絡上的其它節點充當客戶端和服務器。這種網絡設計模型不同於客戶端-服務器模型,在客戶端-服務器模型中通信通常來往於一箇中央服務器。這種方式也非常適合在局域網中應用,可以有效的減少服務器的負載過重等問題。

 

非純點對點技術如電驢(eMule)、BTKuGoo等。它們使共享包含各種格式的音頻,視頻,數據等的文件在網絡上的溝通變得容易、更直接共享和交互,真正地消除中間商就是人與人可以直接連接到其他用戶的計算機、交換文件,而不是像過去那樣連接到服務器去瀏覽與下載。

 

它的特點是:

1    巨大的擴展力,與OS無關性。

2    C/S模式中的好處是不用費力的去查找連接服務器,與服務器端無關性,站點與站點之間是平等關係

3     提供穩定、 可預測的資料傳送服務

4     有效的利用了網絡中的帶寬,使得帶寬能最大化使用

5      支持斷點續傳傳輸、低成本的所有權和共享

6    匿名和隱私

工作原理:

純點對點局域網傳輸由多個站點都同時在線,每個站點都開放一個監聽端口,每個站點每次啓動時讀取局域網上的ARP表查詢局域網中開放該端口的站點,並進行連接。然後發送在線站點表到連接的站點。傳輸文件時打開一個傳輸端口,很容易實現站點與站點之間的數據傳輸。

 

使用現狀

常見的局域網點對點傳輸工具

如飛鴿傳書局域網文件傳輸工具,它是一款流傳非常廣的局域網實用軟件,相比Windows 文件共享系統,飛鴿在實用性,速度,快捷,方便程度上都有提高。可以一次性傳送單文件超過8G的文件。

 

 

 

三、各方式比較

在C/S結構的開發過程中,我們常常需要站點與站點之間的傳輸和通信.從產品的應用角度不同,到底哪種方式更適合我們呢?下面將對以上三種方式做一個比較。

四、總結

總的來看,使用FTP方式傳輸方式較爲靈活和實用,能夠很好的完成多站點同時完成上傳下載的任務,在FTP服務器端還能夠支持平衡負載,傳輸速度上也比較快,在不同的操作系統上消除了不兼容性等問題。

 

文件共享的高層協議基本都採用SMB協議,曾經就有人通過對局域網內所竊取的用於文件輸出的SMB數據包進行分析及重組,從而得到最初的傳輸文件。所以在安全方式上不如其他的傳輸方式,傳輸採用協議時一定要用tcp來保證數據的可靠性 ,udp在傳輸過程中沒有數據效驗,在網絡環境較差的情況下,很容易發生丟包現象。在多站點同時傳輸時較慢。

總之在C/S結構中需要使用哪種傳輸方式,需要根據實際情況來綜合考慮。

 

發佈了238 篇原創文章 · 獲贊 25 · 訪問量 109萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章