專利名稱:高性能文件傳輸系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其涉及一種高性能文件傳輸系統(tǒng)及方法。
背景技術(shù):
當前,華大基因研究院擁有世界級的基因測序能力,每日生成的數(shù)據(jù)多達幾十 TB(1024GB);對數(shù)據(jù)的傳輸提出了較高的要求。此外,分布于中國各地和海外的分中心與總 部之間的數(shù)據(jù)同步,也對帶寬利用率提出了非常高的要求。雖然經(jīng)過30余年的發(fā)展,海底光纜技術(shù)已經(jīng)日益成熟,但是遠程網(wǎng)絡(luò)傳輸所引入 的信號延遲仍然無法避免。特別是在遠距離傳輸中(如光信號從北京傳往紐約至少會引入 60ms的延遲),傳統(tǒng)的TCP協(xié)議因信號延遲原因而嚴重惡化了傳輸技術(shù)的性能。而且隨著 帶寬時延產(chǎn)品(BDP,Band Delay Product)的增加,TCP協(xié)議開始變得低效(這是由于AIMD 算法徹底減少了 TCP協(xié)議的擁塞窗口,但不能快速的恢復(fù)可用帶寬;理論上,流量分析表明 TCP在BDP增加到很高的時候比較容易遭受包損失攻擊),無法完成高效的傳輸任務(wù)。因此,傳統(tǒng)的基于TCP協(xié)議的文件傳輸系統(tǒng)及方法在速度和可靠性方面將無法滿 足日益增長的大數(shù)據(jù)量、遠距離、實時傳輸需要,成為制約網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)領(lǐng)域快速發(fā)展 的瓶頸。綜上所述,提供一種高性能文件傳輸系統(tǒng)及方法成為本領(lǐng)域亟待解決的技術(shù)問題。
發(fā)明內(nèi)容
本發(fā)明要解決的一個技術(shù)問題是提供一種高性能文件傳輸系統(tǒng)及方法,通過構(gòu)造 具有相應(yīng)功能的TCP協(xié)議服務(wù)器和UDT協(xié)議服務(wù)器,充分利用了網(wǎng)絡(luò)硬件的性能,實現(xiàn)了大 數(shù)據(jù)量遠距離傳輸?shù)牡脱訒r性能。本發(fā)明的一個方面提供了一種高性能文件傳輸系統(tǒng),本發(fā)明提供的高性能文 件傳輸系統(tǒng)的一個實施例中,該系統(tǒng)包括高速傳輸TCP服務(wù)器,用于在套接字層,通過 Iibevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異步非阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;當有客戶端發(fā) 出請求時,將請求封裝成事件通知,然后根據(jù)客戶端的控制連接句柄對會話線程總數(shù)直接 取余進行哈希,將事件通知分配到不同會話線程的任務(wù)隊列中;從任務(wù)隊列中取出事件通 知,然后調(diào)用有限狀態(tài)機進行處理并獲得相應(yīng)的應(yīng)答碼,通過套接字層返回給客戶端;當會 話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信息封裝成通知事件后加入磁盤處理線程的任務(wù) 隊列,磁盤處理線程則一次性在磁盤和緩存之間進行大塊文件的讀寫,再由會話線程多次 從緩存中調(diào)用數(shù)據(jù),通過套接字層多次和客戶端交互;高速傳輸UDT服務(wù)器,建立用于監(jiān)聽 的主線程,以及處理命令、讀寫文件和壓縮數(shù)據(jù)的三個線程池;當有用戶請求時,主線程將 任務(wù)分給處理命令線程池中的一個空閑線程處理,空閑線程建立一個新的線程來處理數(shù)據(jù) 連接以傳輸數(shù)據(jù);當讀寫文件時,處理數(shù)據(jù)線程與讀寫文件線程、壓縮數(shù)據(jù)線程之間執(zhí)行同 步的通信協(xié)作;非文件讀寫操作則由數(shù)據(jù)連接線程直接處理。
本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,高速傳輸TCP服務(wù)器進一步 包括TCP接口模塊,用于在套接字層,通過Iibevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異步非阻塞網(wǎng)絡(luò) 模式,以達到高并發(fā)的要求;根據(jù)控制連接的句柄進行哈希,將數(shù)據(jù)分配給不同會話線程的 任務(wù)隊列;會話管理器,用于從任務(wù)隊列中取出數(shù)據(jù),然后調(diào)用有限狀態(tài)機進行處理并獲得 相應(yīng)的應(yīng)答碼,通過套接字層返回給客戶端;由會話線程多次從緩存中調(diào)用數(shù)據(jù),通過套接 字層多次和客戶端交互;磁盤管理器,用于當會話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信 息加入磁盤處理線程的任務(wù)隊列,一次性在磁盤和緩存之間進行大塊文件的讀寫。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,高速傳輸UDT服務(wù)器進一 步包括UDT接口模塊,用于接收用戶請求,以及與客戶端交互并向客戶端傳輸壓縮后的數(shù) 據(jù);會話處理模塊,建立用于監(jiān)聽的主線程,以及處理命令、讀寫文件和壓縮數(shù)據(jù)的三個線 程池;當有用戶請求時,主線程將任務(wù)分給處理命令線程池中的一個空閑線程處理,空閑線 程建立一個新的線程來處理數(shù)據(jù)連接以傳輸數(shù)據(jù);當讀寫文件時,數(shù)據(jù)線程與讀寫文件線 程、壓縮數(shù)據(jù)線程之間執(zhí)行同步的通信協(xié)作;非文件讀寫操作則由數(shù)據(jù)連接線程直接處理; 磁盤管理器,用于壓縮需要傳輸?shù)臄?shù)據(jù);在壓縮的時候提供用于存放壓縮前數(shù)據(jù)和壓縮后 數(shù)據(jù)的兩塊工作空間,在解壓的時候僅提供一塊工作空間。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,高速傳輸TCP服務(wù)器采用全 異步架構(gòu)模式。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,高速傳輸UDT服務(wù)器采用同 步阻塞模式。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,采用LZO壓縮算法對文本類 型文件進行壓縮。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,在套接字層,通過Iibevent 事件觸發(fā)網(wǎng)絡(luò)庫為控制連接和數(shù)據(jù)連接各設(shè)置了 1組事件,每組4個事件,用于實現(xiàn)與客戶 端的通信。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,每組的4個事件包括接受 客戶端事件、讀數(shù)據(jù)事件、通知事件、寫數(shù)據(jù)事件。本發(fā)明的另一個方面提供了一種高性能文件傳輸方法,該方法采用前述任意一項 的系統(tǒng)來實現(xiàn);該方法包括高速傳輸TCP服務(wù)器接受客戶端事件的流程;流程進一步包括 初始化監(jiān)聽套接字socket,并設(shè)置監(jiān)聽模式;為監(jiān)聽套接字socket初始化接受事件,激活 接受事件,并加入Iibevent事件觸發(fā)網(wǎng)絡(luò)庫中;當客戶端發(fā)起連接請求時,高速傳輸TCP服 務(wù)器自動調(diào)用接受客戶端事件函數(shù);接受客戶端,生成客戶端套接字socket,并將控制連 接句柄與請求的操作類型封裝成一個事件通知,加入任務(wù)隊列。本發(fā)明提供的高性能文件傳輸方法的一個實施例中,該方法還包括高速傳輸TCP 服務(wù)器從客戶端讀數(shù)據(jù)事件的流程;流程進一步包括當接受客戶端事件函數(shù)被調(diào)用時, 高速傳輸TCP服務(wù)器接受客戶端,并生成客戶端套接字socket ;為客戶端套接字socket初 始化讀事件,激活讀事件,并加入Iibevent事件觸發(fā)網(wǎng)絡(luò)庫中;當客戶端發(fā)送數(shù)據(jù)時,高速 傳輸TCP服務(wù)器自動調(diào)用讀事件函數(shù);從客戶端套接字socket里讀出數(shù)據(jù),封裝成事件通 知后加入任務(wù)隊列。本發(fā)明提供的高性能文件傳輸方法的一個實施例中,該方法還包括高速傳輸TCP服務(wù)器通知事件的流程;流程進一步包括初始化時,高速傳輸TCP服務(wù)器捆綁兩個套接 字socket 通知套接字socket和傳遞套接字socket ;為通知套接字socket初始化通知事 件,并激活通知事件;當高速傳輸TCP服務(wù)器需要寫數(shù)據(jù)時,通過TCP管理器發(fā)送封裝的事 件通知到傳遞套接字socket ;高速傳輸TCP服務(wù)器自動調(diào)用通知事件函數(shù);從通知套接字 socket里讀出數(shù)據(jù),插入到寫事件能夠調(diào)用的任務(wù)隊列中,并激活寫事件。本發(fā)明提供的高性能文件傳輸方法的一個實施例中,該方法還包括高速傳輸TCP 服務(wù)器寫數(shù)據(jù)事件的流程;流程進一步包括當接受客戶端事件函數(shù)被調(diào)用時,高速傳輸 TCP服務(wù)器接受客戶端,并生成客戶端套接字socket ;為客戶端套接字socket初始化寫事 件,但不激活讀事件;當高速傳輸TCP服務(wù)器需要寫數(shù)據(jù)時,通過TCP管理器發(fā)送數(shù)據(jù)到傳 遞套接字socket ;高速傳輸TCP服務(wù)器自動調(diào)用通知事件函數(shù);從通知套接字socket里讀 出數(shù)據(jù),插入到寫事件能夠調(diào)用的任務(wù)隊列中,并激活寫事件;調(diào)用寫事件函數(shù),并將數(shù)據(jù) 寫到客戶端套接字socket ;檢驗緩存內(nèi)的數(shù)據(jù)是否被寫完,如果沒有寫完,則再次激活寫 事件,調(diào)用寫事件函數(shù),并將數(shù)據(jù)寫到客戶端套接字socket。本發(fā)明提供的高性能文件傳輸方法的一個實施例中,該方法還包括高速傳輸UDT 服務(wù)器傳輸文件的流程;流程進一步包括高速傳輸UDT服務(wù)器初始化線程池,建立套接字 socket并偵聽;當客戶端發(fā)起連接請求時,分配任務(wù)給空閑命令線程;客戶端連接套接字 socket后發(fā)送命令,指示線程解析命令并通知數(shù)據(jù)線程;執(zhí)行文件讀寫和壓縮數(shù)據(jù)處理; 數(shù)據(jù)線程與客戶端進行數(shù)據(jù)通信。本發(fā)明提供的高性能文件傳輸方法的一個實施例中,該方法還包括高速傳輸UDT 服務(wù)器壓縮數(shù)據(jù)的流程;流程進一步包括在壓縮數(shù)據(jù)時記錄并保存壓縮前后數(shù)據(jù)的大本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法,采用UDT協(xié)議作為主要的網(wǎng)絡(luò)協(xié)議, 在UDT協(xié)議無法工作的網(wǎng)絡(luò)條件下,使用TCP協(xié)議作為底層傳輸協(xié)議,參考RFC 959,實現(xiàn)一 個FTP協(xié)議的兼容版本,作為數(shù)據(jù)傳輸?shù)膽?yīng)用層協(xié)議;此外,本發(fā)明對協(xié)議進行適當擴展, 并加入數(shù)據(jù)壓縮的功能,從而實現(xiàn)了大規(guī)模數(shù)據(jù)遠距離傳輸?shù)牡脱舆t性和可靠性。
圖1示出本發(fā)明實施例提供的一種高性能文件傳輸系統(tǒng)的結(jié)構(gòu)示意圖;圖2示出本發(fā)明實施例提供的一種高性能文件傳輸系統(tǒng)中高速傳輸TCP服務(wù)器的 結(jié)構(gòu)示意圖;圖3示出本發(fā)明實施例提供的一種高性能文件傳輸系統(tǒng)中高速傳輸UDT服務(wù)器的 結(jié)構(gòu)示意圖;圖4示出本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個具體實施方式
的結(jié)構(gòu)示意圖;圖5示出本發(fā)明實施例提供的一種高性能文件傳輸方法的流程圖;圖6示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖;圖7示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖;圖8示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖;圖9示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖;圖10示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖。
具體實施例方式下面參照附圖對本發(fā)明進行更全面的描述,其中說明本發(fā)明的示例性實施例。圖1示出本發(fā)明實施例提供的一種高性能文件傳輸系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,高性能文件傳輸系統(tǒng)100包括高速傳輸TCP服務(wù)器102和高速傳輸 UDT服務(wù)器104;其中高速傳輸TCP服務(wù)器102,用于在套接字層,通過1 ibevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異 步非阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;當有客戶端發(fā)出請求時,將請求封裝成一個事件 通知(該事件通知可以包括控制連接句柄、數(shù)據(jù)連接句柄、請求的操作類型、數(shù)據(jù)緩存指 針和數(shù)據(jù)長度等),然后根據(jù)客戶端的控制連接句柄(一個int型變量)對會話線程總數(shù)直 接取余進行哈希,將事件通知分配給不同會話線程的任務(wù)隊列中;從任務(wù)隊列中取出數(shù)據(jù), 然后調(diào)用有限狀態(tài)機(Finite State Machine)進行處理并獲得相應(yīng)的應(yīng)答碼,通過套接字 層返回給客戶端;當會話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信息加入磁盤處理線程的 任務(wù)隊列,磁盤處理線程則一次性在磁盤和緩存之間進行大塊文件的讀寫,再由會話線程 多次從緩存中調(diào)用數(shù)據(jù),通過套接字層多次和客戶端交互。傳統(tǒng)FTP服務(wù)器I/O主要由外部通訊I/O和內(nèi)部I/O組成,通常不會遇到外部I/ 0瓶頸問題,因為很多時候服務(wù)器內(nèi)部I/O瓶頸是掣肘的關(guān)鍵。針對此瓶頸,我們在FTP服 務(wù)器的架構(gòu)設(shè)計上選用全異步模式,同時,通過使用內(nèi)存緩存,減少磁盤磁針定位和讀寫的 次數(shù),提高磁盤I/O和網(wǎng)絡(luò)I/O的利用率之比,從而將瓶頸轉(zhuǎn)移到網(wǎng)絡(luò)I/O。高速傳輸UDT服務(wù)器104,建立用于監(jiān)聽的主線程,以及處理命令、讀寫文件和壓 縮數(shù)據(jù)的三個線程池;當有用戶請求時,主線程將任務(wù)分給處理命令線程池中的一個空閑 線程處理,空閑線程建立一個新的線程來處理數(shù)據(jù)連接以傳輸數(shù)據(jù)(空閑線程會建立一個 新的線程來處理數(shù)據(jù)連接,實際上數(shù)據(jù)線程是操縱一個UDT套接字socket來傳輸數(shù)據(jù)); 當讀寫文件時,數(shù)據(jù)線程與讀寫文件線程、壓縮數(shù)據(jù)線程之間執(zhí)行同步的通信協(xié)作(三線 程之間可設(shè)置兩個緩沖區(qū));非文件讀寫操作則由數(shù)據(jù)連接線程直接處理。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,高速傳輸TCP服務(wù)器采用全 異步架構(gòu)模式(asynchronous),這種模式可以連續(xù)發(fā)起多個非阻塞I/O操作,當操作完成 時通過消息或線程回調(diào)函數(shù)通知應(yīng)用程序。這是在高性能I/O應(yīng)用場合最廣泛的一種模 型,實際開發(fā)中只需一個或幾個(根據(jù)CPU數(shù)量自定義)線程來對多個I/O操作控制。高 速傳輸UDT服務(wù)器采用同步阻塞模式。同步阻塞是指函數(shù)在沒有執(zhí)行完或者接收完數(shù)據(jù)的 情況下不返回,線程被掛起。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,在套接字層,通過Iibevent 事件觸發(fā)網(wǎng)絡(luò)庫為控制連接和數(shù)據(jù)連接各設(shè)置了 1組事件,每組4個事件,用于實現(xiàn)與客戶 端的控制命令通信和數(shù)據(jù)傳輸。其中,每組的4個事件包括接受客戶端事件、讀數(shù)據(jù)事件、 通知事件、寫數(shù)據(jù)事件。本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,采用LZO壓縮算法對文本類 型文件進行壓縮。通過壓縮需要傳輸?shù)臄?shù)據(jù),從而加速傳輸。此外,在壓縮的時候需要提供 用于存放壓縮前數(shù)據(jù)和壓縮后數(shù)據(jù)的兩塊工作空間(后者較大,以防止遇到數(shù)據(jù)無法壓縮 的情況),而解壓的時候僅需要一塊工作空間即可以完成解壓。
本發(fā)明提供的高性能文件傳輸系統(tǒng),通過Iibevent這一輕量級事件觸發(fā)網(wǎng) 絡(luò)庫,實現(xiàn)異步非阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;在多處理器環(huán)境中,多個線程 (multi-thread)可以獨立處理相應(yīng)會話的數(shù)據(jù),且每個會話的數(shù)據(jù)都固定在一個線程處 理,這樣在多個線程同時運行時,既能有效提高CPU的使用率,提高性能,又避免出現(xiàn)會話 請求的時序問題。圖2示出本發(fā)明實施例提供的一種高性能文件傳輸系統(tǒng)中高速傳輸TCP服務(wù)器的 結(jié)構(gòu)示意圖。如圖2所示,高速傳輸TCP服務(wù)器200包括TCP接口模塊(TCP Interface) 202、 會話管理器(Session Manager) 204和磁盤管理器(Disk Manager) 206 ;其中TCP接口模塊202,用于在套接字層,通過Iibevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異步非 阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;當有客戶端發(fā)出請求時,將請求封裝成一個事件通知 (該事件通知可以包括控制連接句柄、數(shù)據(jù)連接句柄、請求的操作類型、數(shù)據(jù)緩存指針和 數(shù)據(jù)長度等),然后根據(jù)客戶端的控制連接句柄(一個int型變量)對會話線程總數(shù)直接取 余進行哈希,將事件通知分配給不同會話線程的任務(wù)隊列中。會話管理器204,用于從任務(wù)隊列中取出事件通知,然后調(diào)用有限狀態(tài)機進行處理 并獲得相應(yīng)的應(yīng)答碼,通過套接字層返回給客戶端;由會話線程多次從緩存中調(diào)用數(shù)據(jù),通 過套接字層多次和客戶端交互。磁盤管理器206,用于當會話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信息封裝成通 知事件后加入磁盤處理線程的任務(wù)隊列,一次性在磁盤和緩存之間進行大塊文件的讀寫。本發(fā)明提供的高性能文件傳輸系統(tǒng),通過Iibevent這一輕量級事件觸發(fā)網(wǎng)絡(luò)庫, 實現(xiàn)高并發(fā)的要求;在多處理器環(huán)境中,在多個線程同時運行時,既能有效提高CPU的使用 率,提高性能,又避免出現(xiàn)會話請求的時序問題。進一步的,當會話請求需要從磁盤讀寫數(shù) 據(jù)時,則將相應(yīng)信息加入磁盤處理線程的任務(wù)隊列,磁盤處理線程則根據(jù)磁盤容量大、讀寫 速度慢的特點,一次性在磁盤和緩存之間進行大塊文件的讀寫,再由會話線程多次從緩存 中調(diào)用數(shù)據(jù),通過套接字層多次和客戶端交互;從而減少磁盤磁針定位和讀寫的次數(shù),提高 磁盤I/O和網(wǎng)絡(luò)I/O的利用率之比。圖3示出本發(fā)明實施例提供的一種高性能文件傳輸系統(tǒng)中高速傳輸UDT服務(wù)器的 結(jié)構(gòu)示意圖。如圖3所示,高速傳輸UDT服務(wù)器300包括UDT接口模塊(UDT Interface) 302、 會話處理模塊(Session Processing) 304和磁盤管理器(Disk Manager) 306 ;其中UDT接口模塊302,用于接收用戶請求,以及與客戶端交互并向客戶端傳輸壓縮后 的數(shù)據(jù)。會話處理模塊304,建立用于監(jiān)聽的主線程,以及處理命令、讀寫文件和壓縮數(shù)據(jù) 的三個線程池;當有用戶請求時,主線程將任務(wù)分給處理命令線程池中的一個空閑線程處 理,空閑線程建立一個新的線程來處理數(shù)據(jù)連接以傳輸數(shù)據(jù);當讀寫文件時,處理數(shù)據(jù)線程 與讀寫文件線程、壓縮數(shù)據(jù)線程之間執(zhí)行同步的通信協(xié)作;非文件讀寫操作則由數(shù)據(jù)連接 線程直接處理。磁盤管理器306,用于壓縮需要傳輸?shù)臄?shù)據(jù);在壓縮的時候提供用于存放壓縮前 數(shù)據(jù)和壓縮后數(shù)據(jù)的兩塊工作空間,在解壓的時候僅提供一塊工作空間。
本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個實施例中,采用LZ0(Lempel Ziv Oberhumer)壓縮算法對文本類型文件進行壓縮。該算法對文本類文件具有不錯的壓縮比和 壓縮速率,再配合UDT傳輸協(xié)議的特點,可以達到提高傳輸效率的目的。UDT協(xié)議主要用在小數(shù)量的bulk源共享富裕帶寬的情況下,最典型的例子就是建 立在光纖廣域網(wǎng)上的網(wǎng)格計算。UDT的主要目標是效率、公平、穩(wěn)定。單個的或少量的UDT 流應(yīng)該利用任何高速連接提供的可用帶寬,即使帶寬變化的很劇烈。同時,任何并發(fā)的流必 須公平地共享帶寬,不依賴于不同的帶寬瓶勁、起始事件、RTT(雙向傳播時延,Round Trip Time)。穩(wěn)定性需要包發(fā)送速率應(yīng)該一直會聚可用帶寬很快,并且必須避免擁塞碰撞。本發(fā)明提供的高性能文件傳輸系統(tǒng),采用UDT協(xié)議作為主要的網(wǎng)絡(luò)協(xié)議,并對協(xié) 議進行適當擴展,加入數(shù)據(jù)壓縮的功能(數(shù)據(jù)壓縮算法采用LZ0,后續(xù)也可以針對基因測序 等海量數(shù)據(jù)的特點再作專門優(yōu)化);利用了 UDT協(xié)議服務(wù)器的良好彈性,實現(xiàn)了高速率傳 輸,并保證了傳輸?shù)目煽啃浴D4示出本發(fā)明提供的高性能文件傳輸系統(tǒng)的一個具體實施方式
的結(jié)構(gòu)示意圖。如圖4所示,高性能文件傳輸系統(tǒng)400包括高速傳輸TCP服務(wù)器和高速傳輸UDT 服務(wù)器;其中高速傳輸TCP服務(wù)器包括TCP接口模塊402、會話管理器404和磁盤管理器406 ; 其中TCP接口模塊402,用于在套接字層,通過Iibevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異步非阻 塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;根據(jù)控制連接的句柄進行哈希,將數(shù)據(jù)分配給不同會話 線程的任務(wù)隊列。會話管理器404,用于從任務(wù)隊列中取出數(shù)據(jù),然后調(diào)用有限狀態(tài)機進行處理并獲 得相應(yīng)的應(yīng)答碼,通過套接字層返回給客戶端;由會話線程多次從緩存中調(diào)用數(shù)據(jù),通過套 接字層多次和客戶端交互。磁盤管理器406,用于當會話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信息加入磁盤 處理線程的任務(wù)隊列,一次性在磁盤和緩存之間進行大塊文件的讀寫。高速傳輸UDT服務(wù)器包括UDT接口模塊408、會話處理模塊410和磁盤管理器 412 ;其中UDT接口模塊408,用于接收用戶請求,以及與客戶端交互并向客戶端傳輸壓縮后 的數(shù)據(jù)。會話處理模塊410,建立用于監(jiān)聽的主線程,以及處理命令、讀寫文件和壓縮數(shù)據(jù) 的三個線程池;當有用戶請求時,主線程將任務(wù)分給處理命令線程池中的一個空閑線程處 理,空閑線程建立一個新的線程來處理數(shù)據(jù)連接以傳輸數(shù)據(jù);當讀寫文件時,處理數(shù)據(jù)線程 與讀寫文件線程、壓縮數(shù)據(jù)線程之間執(zhí)行同步的通信協(xié)作;非文件讀寫操作則由數(shù)據(jù)連接 線程直接處理。磁盤管理器412,用于壓縮需要傳輸?shù)臄?shù)據(jù);在壓縮的時候提供用于存放壓縮前 數(shù)據(jù)和壓縮后數(shù)據(jù)的兩塊工作空間,在解壓的時候僅提供一塊工作空間。本發(fā)明提供的高性能文件傳輸系統(tǒng),在FTP服務(wù)器的架構(gòu)設(shè)計上選用全異步模 式,同時通過使用內(nèi)存緩存,減少磁盤磁針定位和讀寫的次數(shù),提高磁盤I/O和網(wǎng)絡(luò)I/O的 利用率之比,從而將瓶頸轉(zhuǎn)移到網(wǎng)絡(luò)I/O。此外,利用了 UDT協(xié)議服務(wù)器的良好彈性,實現(xiàn)了高速率傳輸,并保證了傳輸?shù)目煽啃?。圖5示出本發(fā)明實施例提供的一種高性能文件傳輸方法的流程圖。如圖5所示,高性能文件傳輸方法采用前述實施例中任意一種類的系統(tǒng)來實現(xiàn); 該方法包括高速傳輸TCP服務(wù)器接受客戶端事件的流程;該流程500進一步包括步驟502,初始化監(jiān)聽套接字socket (如設(shè)置運輸層協(xié)議、捆綁端口),并設(shè)置監(jiān)聽 模式。步驟504,為監(jiān)聽套接字socket初始化接受事件,激活接受事件,并加入Iibevent 事件觸發(fā)網(wǎng)絡(luò)庫中。步驟506,當客戶端發(fā)起連接請求時,高速傳輸TCP服務(wù)器自動調(diào)用接受客戶端事 件函數(shù)。步驟508,接受客戶端,生成客戶端套接字socket,并將控制連接句柄與請求的操 作類型封裝成一個事件通知,加入任務(wù)隊列。圖6示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖。如圖6所示,高性能文件傳輸方法采用前述實施例中任意一種類的系統(tǒng)來實現(xiàn); 該方法包括高速傳輸TCP服務(wù)器從客戶端讀數(shù)據(jù)事件的流程;該流程600進一步包括步驟602,當接受客戶端事件函數(shù)被調(diào)用時,高速傳輸TCP服務(wù)器接受客戶端,并 生成客戶端套接字socket。步驟604,為客戶端套接字socket初始化讀事件,激活讀事件,并加入Iibevent事 件觸發(fā)網(wǎng)絡(luò)庫中。步驟606,當客戶端發(fā)送數(shù)據(jù)時,高速傳輸TCP服務(wù)器自動調(diào)用讀事件函數(shù)。步驟608,從客戶端套接字socket里讀出數(shù)據(jù)(如果是控制連接,該數(shù)據(jù)為一條以 “/r/n”結(jié)尾的字符串,如果是數(shù)據(jù)連接,則為上傳的文件數(shù)據(jù)),封裝成事件通知(如設(shè)置 控制連接句柄及數(shù)據(jù)連接句柄、補充請求的操作類型、設(shè)置數(shù)據(jù)緩存指針和數(shù)據(jù)長度)后 加入任務(wù)隊列。圖7示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖。如圖7所示,高性能文件傳輸方法采用前述實施例中任意一種類的系統(tǒng)來實現(xiàn); 該方法包括高速傳輸TCP服務(wù)器通知事件的流程;該流程700進一步包括步驟702,初始化時,高速傳輸TCP服務(wù)器捆綁兩個套接字socket 通知套接字 socket 和傳遞套接字 socket,存在 TCP_interface 內(nèi)的 TCP_manager (TCP 管理器)。步驟704,為通知套接字socket初始化通知事件,并激活通知事件。步驟706,當高速傳輸TCP服務(wù)器需要寫數(shù)據(jù)時,通過TCP管理器發(fā)送封裝的事件 通知到傳遞套接字socket。具體來說,TCP管理器是TCPjnterface內(nèi)部的一個成員,主要 功能是對TCP的socket進行管理。由于在初始化時,所述高速傳輸TCP服務(wù)器捆綁兩個套 接字socket 通知套接字socket和傳遞套接字socket ;所以,執(zhí)行通知事件需要通過TCP 管理器調(diào)用。步驟708,高速傳輸TCP服務(wù)器自動調(diào)用通知事件函數(shù)。步驟710,從通知套接字socket里讀出數(shù)據(jù),插入到寫事件能夠調(diào)用的任務(wù)隊列 中,并激活寫事件。圖8示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖。
如圖8所示,高性能文件傳輸方法采用前述實施例中任意一種類的系統(tǒng)來實現(xiàn); 該方法包括高速傳輸TCP服務(wù)器寫數(shù)據(jù)事件的流程;該流程800進一步包括步驟802,當接受客戶端事件函數(shù)被調(diào)用時,高速傳輸TCP服務(wù)器接受客戶端,并 生成客戶端套接字socket ;步驟804,為客戶端套接字socket初始化寫事件,但不激活讀事件;步驟806,當高速傳輸TCP服務(wù)器需要寫數(shù)據(jù)時,通過TCP管理器發(fā)送數(shù)據(jù)到傳遞 套接字socket ;步驟808,高速傳輸TCP服務(wù)器自動調(diào)用通知事件函數(shù);步驟810,從通知套接字socket里讀出數(shù)據(jù),插入到寫事件能夠調(diào)用的任務(wù)隊列 中,并激活寫事件;步驟812,調(diào)用寫事件函數(shù),并將數(shù)據(jù)寫到客戶端套接字socket ;步驟814,檢驗緩存內(nèi)的數(shù)據(jù)是否被寫完。如果沒有寫完,則跳轉(zhuǎn)到步驟810,再次 激活寫事件,調(diào)用寫事件函數(shù),并將數(shù)據(jù)寫到客戶端套接字socket。圖9示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖。如圖9所示,高性能文件傳輸方法采用前述實施例中任意一種類的系統(tǒng)來實現(xiàn); 該方法包括高速傳輸UDT服務(wù)器傳輸文件的流程;該流程900進一步包括步驟902,高速傳輸UDT服務(wù)器初始化線程池,建立套接字socket并偵聽。步驟904,當客戶端發(fā)起連接請求時,分配任務(wù)給空閑命令線程。步驟906,客戶端連接套接字socket后發(fā)送命令,指示線程解析命令并通知數(shù)據(jù) 線程。步驟908,執(zhí)行文件讀寫和壓縮數(shù)據(jù)處理。步驟910,數(shù)據(jù)線程與客戶端進行數(shù)據(jù)通信。圖10示出本發(fā)明提供的高性能文件傳輸方法的另一個實施例的流程圖。如圖10所示,高性能文件傳輸方法采用前述實施例中任意一種類的系統(tǒng)來實現(xiàn); 該方法包括高速傳輸UDT服務(wù)器壓縮數(shù)據(jù)的流程;該流程1000進一步包括在壓縮數(shù)據(jù) 時,記錄并保存壓縮前后數(shù)據(jù)的大小。隨后在解壓縮過程中,首先提取壓縮前后的數(shù)據(jù)大小 的信息;讀取壓縮后相應(yīng)大小的數(shù)據(jù),執(zhí)行解壓縮,在寫回解壓縮后的數(shù)據(jù);從而既保證了 傳輸速率,同時也保證了解壓縮后的數(shù)據(jù)可靠性。接下來簡要介紹應(yīng)用本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法的一個具體實施 例。目前,高性能文件傳輸系統(tǒng)(Hyper Transfer)在Panda項目中承擔數(shù)據(jù)傳輸?shù)娜?務(wù),傳輸文件的大小從幾KB到十幾GB不等,十幾個上傳下載任務(wù)同時并發(fā)。以下是該項目 運行期間的服務(wù)器日志2010-08-19 17: 31 33INF0-[run_finish_download] [1179] 172. 30. 0. 29download/mnt/soft/soap/input/100000_reads_2. fq :108·108MB/s2010-08-19 17 31: 37INF0-[run_f inish_download] [1179] 172. 30. 0. 29 download/mnt/soft/soap/input/cattle_cuted. fa :112·674MB/s2010-08-19 17 : 31 : 40INF0 - [run_finish_download] [1179] 172. 30. 0. 29download/mnt/soft/soap/input/100000_reads_2. fq :110.129MB/s
2010-08-19 17 31 44INF0-[run_f inish_download] [1179] 172. 30. 0. 29 download/mnt/soft/soap/input/cattle_cuted. fa :112·282MB/s該環(huán)境的服務(wù)器與客戶端之間使用千兆帶寬,傳輸上限為128MB/S,在數(shù)據(jù)傳輸期 間,平均傳輸速率達到110. 80MB/S,平均帶寬利用率達到86. 56%。本發(fā)明提供的高性能文 件傳輸系統(tǒng)及方法,服務(wù)器的平均帶寬使用率超過80%,數(shù)據(jù)傳輸準確無誤。參考前述本發(fā)明示例性的描述,本領(lǐng)域技術(shù)人員可以清楚的知曉本發(fā)明具有以下 優(yōu)點1、本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法的一個實施例,通過構(gòu)造具有相應(yīng)功 能的TCP協(xié)議服務(wù)器和UDT協(xié)議服務(wù)器,充分利用了網(wǎng)絡(luò)硬件的性能,實現(xiàn)了大數(shù)據(jù)量遠距 離傳輸?shù)牡脱訒r性能。2、本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法的一個實施例,采用UDT協(xié)議作為主 要的網(wǎng)絡(luò)協(xié)議,在UDT協(xié)議無法工作的網(wǎng)絡(luò)條件下,使用TCP協(xié)議作為底層傳輸協(xié)議,參考 RFC 959,實現(xiàn)一個FTP協(xié)議的兼容版本,作為數(shù)據(jù)傳輸?shù)膽?yīng)用層協(xié)議;此外,本發(fā)明對協(xié)議 進行適當擴展,并加入數(shù)據(jù)壓縮的功能,從而實現(xiàn)了大規(guī)模數(shù)據(jù)遠距離傳輸?shù)牡脱舆t性和
可靠性。3、本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法的一個實施例,通過Iibevent這一 輕量級事件觸發(fā)網(wǎng)絡(luò)庫,實現(xiàn)異步非阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;在多處理器環(huán)境 中,多個線程(multi-thread)可以獨立處理相應(yīng)會話的數(shù)據(jù),且每個會話的數(shù)據(jù)都固定在 一個線程處理,這樣在多個線程同時運行時,既能有效提高CPU的使用率,提高性能,又避 免出現(xiàn)會話請求的時序問題。4、本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法的一個實施例,在FTP服務(wù)器的架構(gòu) 設(shè)計上選用全異步模式,同時通過使用內(nèi)存緩存,減少磁盤磁針定位和讀寫的次數(shù),提高磁 盤I/O和網(wǎng)絡(luò)I/O的利用率之比,從而將瓶頸轉(zhuǎn)移到網(wǎng)絡(luò)I/O。本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明 限于所公開的形式。很多修改和變化對于本領(lǐng)域的普通技術(shù)人員而言是顯然的。本發(fā)明中 描述的功能模塊以及功能模塊的劃分方式僅為說明本發(fā)明的思想,本領(lǐng)域技術(shù)人員根據(jù)本 發(fā)明的教導(dǎo)以及實際應(yīng)用的需要可以自由改變功能模塊的劃分方式及其模塊構(gòu)造以實現(xiàn) 相同的功能;選擇和描述實施例是為了更好說明本發(fā)明的原理和實際應(yīng)用,并且使本領(lǐng)域 的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計適于特定用途的帶有各種修改的各種實施例。
權(quán)利要求
一種高性能文件傳輸系統(tǒng),其特征在于,所述系統(tǒng)包括高速傳輸TCP服務(wù)器,用于在套接字層,通過libevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異步非阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;當有客戶端發(fā)出請求時,將請求封裝成事件通知,然后根據(jù)客戶端的控制連接句柄對會話線程總數(shù)直接取余進行哈希,將所述事件通知分配到不同會話線程的任務(wù)隊列中;從任務(wù)隊列中取出所述事件通知,然后調(diào)用有限狀態(tài)機進行處理并獲得相應(yīng)的應(yīng)答碼,通過套接字層返回給客戶端;當會話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信息封裝成通知事件后加入磁盤處理線程的任務(wù)隊列,磁盤處理線程則一次性在磁盤和緩存之間進行大塊文件的讀寫,再由會話線程多次從緩存中調(diào)用數(shù)據(jù),通過套接字層多次和客戶端交互;高速傳輸UDT服務(wù)器,建立用于監(jiān)聽的主線程,以及處理命令、讀寫文件和壓縮數(shù)據(jù)的三個線程池;當有用戶請求時,所述主線程將任務(wù)分給處理命令線程池中的一個空閑線程處理,所述空閑線程建立一個新的線程來處理數(shù)據(jù)連接以傳輸數(shù)據(jù);當讀寫文件時,處理數(shù)據(jù)線程與讀寫文件線程、壓縮數(shù)據(jù)線程之間執(zhí)行同步的通信協(xié)作;非文件讀寫操作則由數(shù)據(jù)連接線程直接處理。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述高速傳輸TCP服務(wù)器進一步包括 TCP接口模塊,用于在套接字層,通過Iibevent事件觸發(fā)網(wǎng)絡(luò)庫實現(xiàn)異步非阻塞網(wǎng)絡(luò)模式,以達到高并發(fā)的要求;根據(jù)控制連接的句柄進行哈希,將數(shù)據(jù)分配給不同會話線程的 任務(wù)隊列;會話管理器,用于從任務(wù)隊列中取出數(shù)據(jù),然后調(diào)用有限狀態(tài)機進行處理并獲得相應(yīng) 的應(yīng)答碼,通過套接字層返回給客戶端;由會話線程多次從緩存中調(diào)用數(shù)據(jù),通過套接字層 多次和客戶端交互;磁盤管理器,用于當會話請求需要從磁盤讀寫數(shù)據(jù)時,則將相應(yīng)信息加入磁盤處理線 程的任務(wù)隊列,一次性在磁盤和緩存之間進行大塊文件的讀寫。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,高速傳輸UDT服務(wù)器進一步包括UDT接口模塊,用于接收用戶請求,以及與客戶端交互并向所述客戶端傳輸壓縮后的數(shù)據(jù);會話處理模塊,建立用于監(jiān)聽的主線程,以及處理命令、讀寫文件和壓縮數(shù)據(jù)的三個線 程池;當有用戶請求時,所述主線程將任務(wù)分給處理命令線程池中的一個空閑線程處理,所 述空閑線程建立一個新的線程來處理數(shù)據(jù)連接以傳輸數(shù)據(jù);當讀寫文件時,數(shù)據(jù)線程與讀 寫文件線程、壓縮數(shù)據(jù)線程之間執(zhí)行同步的通信協(xié)作;非文件讀寫操作則由數(shù)據(jù)連接線程 直接處理;磁盤管理器,用于壓縮需要傳輸?shù)臄?shù)據(jù);在壓縮的時候提供用于存放壓縮前數(shù)據(jù)和壓 縮后數(shù)據(jù)的兩塊工作空間,在解壓的時候僅提供一塊工作空間。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述高速傳輸TCP服務(wù)器采用全異步架構(gòu) 模式。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述高速傳輸UDT服務(wù)器采用同步阻塞模式。
6.根據(jù)權(quán)利要求1或3所述的系統(tǒng),其特征在于,采用LZO壓縮算法對文本類型文件進 行壓縮。
7.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,在所述套接字層,通過所述Iibevent 事件觸發(fā)網(wǎng)絡(luò)庫為控制連接和數(shù)據(jù)連接各設(shè)置1組事件,每組4個事件,用于實現(xiàn)與客戶端 的控制命令通信和數(shù)據(jù)傳輸。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,每組的4個事件包括接受客戶端事件、 讀數(shù)據(jù)事件、通知事件、寫數(shù)據(jù)事件。
9.一種高性能文件傳輸方法,其特征在于,采用前述權(quán)利要求中任意一項所述的系統(tǒng) 來實現(xiàn);所述方法包括所述高速傳輸TCP服務(wù)器接受客戶端事件的流程;所述流程進一步包括初始化監(jiān)聽套接字socket,并設(shè)置為監(jiān)聽模式和非阻塞模式; 為所述監(jiān)聽套接字socket初始化接受事件,激活所述接受事件,并加入Iibevent事件 觸發(fā)網(wǎng)絡(luò)庫中;當客戶端發(fā)起連接請求時,所述高速傳輸TCP服務(wù)器自動調(diào)用接受客戶端事件函數(shù); 接受所述客戶端,生成客戶端套接字socket,并將控制連接句柄與請求的操作類型封 裝成一個事件通知,加入任務(wù)隊列。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述高速傳輸TCP服務(wù) 器從客戶端讀數(shù)據(jù)事件的流程;所述流程進一步包括當接受客戶端事件函數(shù)被調(diào)用時,所述高速傳輸TCP服務(wù)器接受所述客戶端,并生成 客戶端套接字socket ;為所述客戶端套接字socket初始化讀事件,激活所述讀事件,并加入Iibevent事件觸 發(fā)網(wǎng)絡(luò)庫中;當所述客戶端發(fā)送數(shù)據(jù)時,所述高速傳輸TCP服務(wù)器自動調(diào)用讀事件函數(shù); 從所述客戶端套接字socket里讀出數(shù)據(jù),封裝成事件通知后加入任務(wù)隊列。
11.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述高速傳輸TCP服務(wù) 器通知事件的流程;所述流程進一步包括初始化時,所述高速傳輸TCP服務(wù)器捆綁兩個套接字socket 通知套接字socket和傳 遞套接字socket ;為所述通知套接字socket初始化通知事件,并激活所述通知事件; 當所述高速傳輸TCP服務(wù)器需要寫數(shù)據(jù)時,通過TCP管理器發(fā)送封裝的事件通知到所 述傳遞套接字socket ;所述高速傳輸TCP服務(wù)器自動調(diào)用通知事件函數(shù);從所述通知套接字socket里讀出事件通知,插入到寫事件能夠調(diào)用的任務(wù)隊列中,并 激活所述寫事件。
12.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述高速傳輸TCP服務(wù) 器寫數(shù)據(jù)事件的流程;所述流程進一步包括當接受客戶端事件函數(shù)被調(diào)用時,所述高速傳輸TCP服務(wù)器接受所述客戶端,并生成 客戶端套接字socket ;為所述客戶端套接字socket初始化寫事件,但不激活所述讀事件;當所述高速傳輸TCP服務(wù)器需要寫數(shù)據(jù)時,通過TCP管理器同上發(fā)送數(shù)據(jù)到所述傳遞 套接字socket ;所述高速傳輸TCP服務(wù)器自動調(diào)用通知事件函數(shù);從所述通知套接字socket里讀出事件通知,插入到寫事件能夠調(diào)用的任務(wù)隊列中,并 激活所述寫事件;調(diào)用寫事件函數(shù),并將數(shù)據(jù)寫到客戶端套接字socket ;檢驗緩存內(nèi)的數(shù)據(jù)是否被寫完,如果沒有寫完,則再次激活所述寫事件,調(diào)用寫事件函 數(shù),并將數(shù)據(jù)寫到客戶端套接字socket。
13.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述高速傳輸UDT服務(wù) 器傳輸文件的流程;所述流程進一步包括所述高速傳輸UDT服務(wù)器初始化線程池,建立套接字socket并偵聽;當客戶端發(fā)起連接請求時,分配任務(wù)給空閑命令線程;所述客戶端連接所述套接字socket后發(fā)送命令,指示線程解析所述命令并通知數(shù)據(jù) 線程;執(zhí)行文件讀寫和壓縮數(shù)據(jù)處理;所述數(shù)據(jù)線程與所述客戶端進行數(shù)據(jù)通信。
14.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述方法還包括所述高速傳輸UDT服務(wù) 器壓縮數(shù)據(jù)的流程;所述流程進一步包括在壓縮數(shù)據(jù)時記錄并保存壓縮前后數(shù)據(jù)的大小。
全文摘要
本發(fā)明公開一種高性能文件傳輸系統(tǒng)及方法,該方法采用本發(fā)明提供的系統(tǒng)來實現(xiàn);該方法包括高速傳輸TCP服務(wù)器接受客戶端事件的流程;流程進一步包括初始化監(jiān)聽套接字socket,并設(shè)置監(jiān)聽模式;為監(jiān)聽套接字socket初始化接受事件,激活接受事件,并加入libevent事件觸發(fā)網(wǎng)絡(luò)庫中;當客戶端發(fā)起連接請求時,高速傳輸TCP服務(wù)器自動調(diào)用接受客戶端事件函數(shù);接受客戶端,生成客戶端套接字socket,并將控制連接句柄與請求的操作類型封裝成一個事件通知,加入任務(wù)隊列。本發(fā)明提供的高性能文件傳輸系統(tǒng)及方法,在FTP服務(wù)器的架構(gòu)設(shè)計上選用全異步模式,同時通過使用內(nèi)存緩存,減少磁盤磁針定位和讀寫的次數(shù),提高磁盤I/O和網(wǎng)絡(luò)I/O的利用率之比,從而將瓶頸轉(zhuǎn)移到網(wǎng)絡(luò)I/O。此外,利用了UDT協(xié)議服務(wù)器的良好彈性,實現(xiàn)了高速率傳輸,并保證了傳輸?shù)目煽啃浴?br>
文檔編號H04L29/06GK101982955SQ201010551120
公開日2011年3月2日 申請日期2010年11月19日 優(yōu)先權(quán)日2010年11月19日
發(fā)明者李宏博, 蔡澤霖, 陳勇, 陳天健 申請人:深圳華大基因科技有限公司