專利名稱:文件下載的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及"客戶端-代理-服務(wù)器"模式的傳輸系統(tǒng)中
的文件下載方法、裝置及系統(tǒng)。
背景技術(shù):
參見圖l,為"客戶端-代理-服務(wù)器"模式的傳輸系統(tǒng)示意圖,目前涉及"客戶端-代理-服務(wù)器"模式的傳輸系統(tǒng)可通過運(yùn)行SMB(Server Message Block,服務(wù)器信息塊)/HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議)/FTP(File TransferProtocol,文件傳輸協(xié)議)/SMTP (Simple Mail TransferProtocol,簡單郵件傳輸協(xié)議)/P0P3(Post Office Protocol 3,郵局協(xié)議的第3個(gè)版本)等協(xié)議進(jìn)行通信。
作為部署在網(wǎng)絡(luò)客戶端和服務(wù)器之間的代理,往往具備以下幾個(gè)特點(diǎn)
>相對客戶端來說,代理是"服務(wù)器",而相對服務(wù)器來說,代理又是"客戶端",即代理同時(shí)充當(dāng)虛擬服務(wù)器和虛擬客戶端兩個(gè)角色; ^在客戶端和服務(wù)器之間部署代理后,原來的一個(gè)TCP連接實(shí)際上變成兩個(gè)TCP連接客戶端〈——> 代理、代理〈——> 服務(wù)器; >客戶端與服務(wù)器之間的所有數(shù)據(jù)(根據(jù)具體應(yīng)用協(xié)議進(jìn)行封裝)全部通過代理,那么代理可以根據(jù)需要對這些數(shù)據(jù)進(jìn)行檢查和過濾; >與網(wǎng)絡(luò)層設(shè)備(如路由器、防火墻等)相比,部署代理后,將對網(wǎng)絡(luò)通信性能產(chǎn)生較大影響。 對于一般的數(shù)據(jù)通信,增加代理之后的網(wǎng)絡(luò)環(huán)境可正常工作,但是代理中如果增加對文件進(jìn)行內(nèi)容檢查和過濾,如文件病毒掃描、文件MD5碼(Message-Digest Algorithm5,信息_摘要算法5)檢查功能,將對系統(tǒng)的性能產(chǎn)生很大影響,且隨著文件大小的增加,其網(wǎng)絡(luò)性會明顯下降。影響在SMB協(xié)議的代理中更加突出,因此下面以SMB協(xié)議為例進(jìn)行分析。 SMB協(xié)議用于網(wǎng)絡(luò)中計(jì)算機(jī)之間共享文件、共享打印機(jī)、共享串口等用途,之所以能夠在windows的網(wǎng)絡(luò)鄰居下訪問一個(gè)域內(nèi)的其他機(jī)器,就是通過這個(gè)協(xié)議實(shí)現(xiàn)的。SMB服務(wù)器負(fù)責(zé)通過網(wǎng)絡(luò)提供可用的共享資源給SMB客戶端,服務(wù)器和客戶機(jī)之間通過TCP (Transmission Control Protocol,傳輸控制協(xié)議)/IP (Internet Protocol,網(wǎng)間互連協(xié)議)協(xié)議、或者IPX(InternetPacket Exchange protocol,互聯(lián)網(wǎng)分組交換協(xié)議)協(xié)議、或者是NetBEUI (NetBIOS Extend User Interface, NetBIOS用戶擴(kuò)展接口協(xié)議)進(jìn)行連接。 一旦服務(wù)器和客戶機(jī)之間建立了一個(gè)連接,客戶機(jī)就可以通過向服務(wù)器發(fā)送命令完成共享操作,比如讀,寫,檢索等。 與HTTP、 FTP等應(yīng)用協(xié)議不同,利用SMB協(xié)議客戶端從服務(wù)器下載文件時(shí),并不采用如HTTP/FTP等協(xié)議的模式, 一個(gè)文件"一次請求+響應(yīng)全部",而是采用一個(gè)文件由"多次請求+多次響應(yīng)"的模式。 如圖3所示,客戶端利用SMB協(xié)議下載文件時(shí),總是把整個(gè)文件分成N個(gè)數(shù)據(jù)塊,然后依次提交下載N個(gè)數(shù)據(jù)塊的請求,具體下載過程是 (1)客戶端通過已建立好的TCP連接提交下載"數(shù)據(jù)塊l"請求; (2)代理收到"數(shù)據(jù)塊l"下載請求,并轉(zhuǎn)發(fā)該請求給服務(wù)器; (3)服務(wù)器收到請求,響應(yīng)該請求,并將數(shù)據(jù)塊1發(fā)送給代理; (4)代理收到來自服務(wù)器響應(yīng)的"數(shù)據(jù)塊l",進(jìn)行內(nèi)容檢查和過濾,再轉(zhuǎn)發(fā)給客戶
丄山
順; (5)客戶端收到"數(shù)據(jù)塊1"; (6)按照以上1-5個(gè)步驟,客戶端下載第2至N個(gè)數(shù)據(jù)塊; 從以上流程中可以明確當(dāng)代理收到來自服務(wù)器的第一個(gè)數(shù)據(jù)塊的響應(yīng)時(shí),代理 在決定是否轉(zhuǎn)發(fā)給客戶端前,如果要對整個(gè)文件的內(nèi)容進(jìn)行檢查和過濾,則必須先把整個(gè) 文件的內(nèi)容下載到代理中,檢查和過濾后才能決定是否可以將第一個(gè)文件數(shù)據(jù)塊轉(zhuǎn)發(fā)給客 戶端。由此,將嚴(yán)重影響客戶端的網(wǎng)絡(luò)延時(shí),且如果內(nèi)容檢查完該文件不允許下載,那么整 個(gè)文件從服務(wù)器到代理的下載過程全部浪費(fèi)。更重要的是,由于SMB協(xié)議中,同時(shí)下載多個(gè) 文件都是共用一個(gè)TCP連接,當(dāng)代理正在緩存文件時(shí),可能導(dǎo)致其他文件的下載請求無法 得到響應(yīng),這樣通過一個(gè)TCP連接多個(gè)文件并發(fā)下載的應(yīng)用就變成一個(gè)串行下載多個(gè)文件 的過程了。 可見,基于這種多請求模式的SMB協(xié)議代理,代理轉(zhuǎn)發(fā)來自服務(wù)器響應(yīng)的數(shù)據(jù)前, 必須先檢查該文件內(nèi)容,并依據(jù)檢查結(jié)果決定是否允許轉(zhuǎn)發(fā)的應(yīng)用中,會產(chǎn)生以下幾個(gè)問 題 1)代理為了準(zhǔn)確判斷當(dāng)前請求的數(shù)據(jù)塊是否允許轉(zhuǎn)發(fā),則必須將整個(gè)文件的內(nèi)容
預(yù)先緩存到代理,這就要求代理設(shè)備中必須配置足夠大的緩存,尤其是高并發(fā)環(huán)境下大文
件的傳輸將對代理設(shè)備的緩存要求很高,不僅容量大,而且處理速度也要快; 2)為了實(shí)現(xiàn)高速緩存,一般都采用內(nèi)存,但是實(shí)際情況下,代理設(shè)備內(nèi)存的配置總
是有限的,這將對代理的并發(fā)連接數(shù)量產(chǎn)生極大制約,由此引發(fā)代理的性能將處于一個(gè)很
低的水平; 3)如果對緩存文件的內(nèi)容檢查后不允許轉(zhuǎn)發(fā),則代理與服務(wù)器之間的文件下載流
量就完全損失,極端情況下,整個(gè)SMB下載過程的網(wǎng)絡(luò)帶寬將浪費(fèi)一半; 4)根據(jù)SMB協(xié)議原理,在一個(gè)TCP連接中,可能同時(shí)發(fā)起下載多個(gè)文件的請求,在
這種情況下,代理一方面要緩存來自服務(wù)器的文件,另一方面要求響應(yīng)來自客戶端的其他
請求,這將導(dǎo)致代理的實(shí)際響應(yīng)延遲很大,甚至實(shí)際環(huán)境中這樣的代理系統(tǒng)可能基本上不
具備可用性。
發(fā)明內(nèi)容
本發(fā)明提供一種文件下載方法、裝置及系統(tǒng),以解決現(xiàn)有方案由于在代理對文件
內(nèi)容進(jìn)行檢查導(dǎo)致的需緩存文件以及效率低下的問題。 為此,本發(fā)明實(shí)施例采用如下技術(shù)方案 —種文件下載的方法,應(yīng)用于客戶端_代理_服務(wù)器模式的傳輸系統(tǒng),在所述服務(wù) 器中設(shè)置監(jiān)聽客戶端,該方法包括以下步驟 代理接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求;
5
所述監(jiān)聽客戶端對待下載的文件進(jìn)行內(nèi)容檢查,向所述代理返回檢查結(jié)果;
所述代理根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā)。
其中,所述代理根據(jù)所述檢查結(jié)果執(zhí)行數(shù)據(jù)轉(zhuǎn)發(fā)包括
所述代理判斷檢查結(jié)果; 若確定檢查通過,將所述文件下載請求轉(zhuǎn)發(fā)給服務(wù)器,并將服務(wù)器返回的數(shù)據(jù)發(fā) 送給客戶端; 若確定檢查未通過,丟棄客戶端的文件下載請求,并向客戶端反饋錯(cuò)誤信息。
所述文件內(nèi)容檢查請求包括文件檢查參數(shù)以及文件相對路徑。 其中,所述監(jiān)聽客戶端根據(jù)所述文件內(nèi)容檢查請求中的文件相對路徑,結(jié)合預(yù)先 配置的文件絕對路徑,查找到文件,并按照所述文件內(nèi)容檢查請求中的文件檢查參數(shù),對文 件進(jìn)行相應(yīng)類型的內(nèi)容檢查。 在代理向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求之前,所述方法還包括
所述代理和所述監(jiān)聽客戶端之間進(jìn)行身份認(rèn)證。 —種文件下載的代理,包括客戶端通信單元和服務(wù)器通信單元,還包括 監(jiān)聽客戶端通信單元,用于在所述客戶端通信單元接收到客戶端的文件下載請求
后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求,并從監(jiān)聽客戶端接收檢查結(jié)果; 檢查結(jié)果判斷單元,用于分析判斷監(jiān)聽客戶端返回的檢查結(jié)果; 數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元,用于根據(jù)所述檢查結(jié)果判斷單元的分析判斷,確定后續(xù)的數(shù)
據(jù)轉(zhuǎn)發(fā)。 其中,所述數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元在所述檢查結(jié)果判斷單元確定檢查通過時(shí),控制所 述服務(wù)器通信單元將文件下載請求轉(zhuǎn)發(fā)給服務(wù)器并從服務(wù)器接收數(shù)據(jù),并控制所述客戶端 通信單元將從服務(wù)器接收到的數(shù)據(jù)發(fā)送給客戶端; 所述數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元在所述檢查結(jié)果判斷單元確定檢查未通過時(shí),丟棄客戶端 的文件下載請求,并控制客戶端通信單元向客戶端反饋錯(cuò)誤信息。
上述代理還包括 身份認(rèn)證單元,用于與所述監(jiān)聽客戶端進(jìn)行身份認(rèn)證。
—種文件下載的監(jiān)聽客戶端,包括 代理通信單元,用于從代理接收文件內(nèi)容檢查請求,并將檢查結(jié)果返回給所述代 理; 服務(wù)器通信單元,用于讀取服務(wù)器中的文件; 檢查執(zhí)行單元,用于對服務(wù)器通信單元讀取到的待下載文件進(jìn)行內(nèi)容檢查。 其中,所述服務(wù)器通信單元根據(jù)所述文件內(nèi)容檢查請求中的文件相對路徑,結(jié)合
預(yù)先配置的文件絕對路徑,查找到文件;所述檢查執(zhí)行單元按照所述文件內(nèi)容檢查請求中
的文件檢查參數(shù),對文件進(jìn)行相應(yīng)類型的內(nèi)容檢查。 上述監(jiān)聽客戶端還包括 身份認(rèn)證單元,用于與代理進(jìn)行身份認(rèn)證。 —種文件下載的系統(tǒng),包括客戶端、代理和服務(wù)器,在所述服務(wù)器中設(shè)置監(jiān)聽客戶 端,其中 所述代理,接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求;并從監(jiān)聽客戶端接收檢查結(jié)果,根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā); 所述監(jiān)聽客戶端,按照代理發(fā)送的文件內(nèi)容檢查請求,對服務(wù)器保存的待下載的
文件進(jìn)行內(nèi)容檢查,并向所述代理返回檢查結(jié)果。 可見,本發(fā)明將現(xiàn)有方案中代理的文件檢查功能轉(zhuǎn)移到部署在服務(wù)器中的監(jiān)聽客 戶端執(zhí)行,代理僅根據(jù)監(jiān)聽客戶端返回的內(nèi)容檢查結(jié)果決定后續(xù)數(shù)據(jù)轉(zhuǎn)發(fā)即可,相比于現(xiàn) 有方案,至少存在以下優(yōu)點(diǎn) (1)代理無需對文件內(nèi)容進(jìn)行檢查,因此不必為此緩存大量數(shù)據(jù),僅需根據(jù)文件內(nèi) 容檢查結(jié)果執(zhí)行具體的數(shù)據(jù)轉(zhuǎn)發(fā)即可,因此對代理設(shè)備配置的內(nèi)存容量要求較低,無需額 外增加內(nèi)存用于緩存文件; (2)充分節(jié)省了代理與服務(wù)器之間因緩存文件而產(chǎn)生的額外帶寬,使代理與服務(wù) 器之間的全部流量都成為有效流量; (3)無需對文件內(nèi)容進(jìn)行檢查,減輕了代理的負(fù)擔(dān); (4)由于減輕了代理的負(fù)擔(dān),從而可提高代理的響應(yīng)速度,可大大提高代理文件下 載的并發(fā)性能,實(shí)現(xiàn)多個(gè)文件高速并行下載; (5)大大降低客戶端的響應(yīng)延遲,明顯改善客戶端下載感受; (6)通過代理與監(jiān)聽客戶端之間支持身份認(rèn)證功能,解決兩者的安全通信問題;
(7)僅在服務(wù)器設(shè)置監(jiān)聽客戶端即可實(shí)現(xiàn),對服務(wù)器改動(dòng)不大,對服務(wù)器性能影響 可忽略,實(shí)現(xiàn)簡單,效果明顯; (8)可應(yīng)用在任意的"客戶端_代理_服務(wù)器"模式的傳輸系統(tǒng),該系統(tǒng)可通過運(yùn) 行SMB/HTTP/FTP/SMTP/P0P3等協(xié)議進(jìn)行通信,通用性強(qiáng)。
圖1為"客戶端_代理_服務(wù)器"模式的傳輸系統(tǒng)示意圖; 圖2為SMB協(xié)議文件下載原理圖; 圖3為本發(fā)明文件下載方法流程圖; 圖4為本發(fā)明方法實(shí)施例示意圖; 圖5為本發(fā)明代理結(jié)構(gòu)示意圖; 圖6為本發(fā)明監(jiān)聽客戶端結(jié)構(gòu)示意圖。
具體實(shí)施例方式
與現(xiàn)有技術(shù)中代理的實(shí)現(xiàn)技術(shù)方案不同,本發(fā)明采用"代理+監(jiān)聽客戶端"的架
構(gòu),可以有效解決代理文件下載的性能低下問題。 參見圖3,為本發(fā)明文件下載的方法流程圖,包括 S301 :代理接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請 求; S302 :所述監(jiān)聽客戶端對待下載的文件進(jìn)行內(nèi)容檢查,向所述代理返回檢查結(jié) 果; S303 :所述代理根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā)。 其中,監(jiān)聽客戶端是設(shè)置在服務(wù)器中的,具體實(shí)現(xiàn)形式不限,例如可以采用一個(gè)軟件實(shí)現(xiàn)。由于該監(jiān)聽客戶端位于服務(wù)器側(cè),在此進(jìn)行文件內(nèi)容檢查后,將檢查結(jié)果返回給代 理,就無需代理對文件進(jìn)行緩存并對文件進(jìn)行內(nèi)容檢查,僅需根據(jù)檢查結(jié)果執(zhí)行后續(xù)數(shù)據(jù) 轉(zhuǎn)發(fā)即可。
其中,代理根據(jù)所述檢查結(jié)果執(zhí)行數(shù)據(jù)轉(zhuǎn)發(fā)包括但不限于以下的方式
代理判斷檢查結(jié)果; 若確定檢查通過,將所述文件下載請求轉(zhuǎn)發(fā)給服務(wù)器,并將服務(wù)器返回的文件發(fā) 送給客戶端; 若確定檢查未通過,丟棄客戶端的文件下載請求,并向客戶端反饋錯(cuò)誤信息?;?者,當(dāng)確定檢查未通過時(shí),直接中斷整個(gè)會話。 本發(fā)明方案可應(yīng)用在任意的"客戶端_代理_服務(wù)器"模式的傳輸系統(tǒng),該系統(tǒng)可 通過運(yùn)行SMB/HTTP/FTP/SMTP/P0P3等協(xié)議進(jìn)行通信。 為了使本發(fā)明方案更加清楚,下面以運(yùn)行SMB協(xié)議的"客戶端_代理_服務(wù)器"傳 輸系統(tǒng)進(jìn)行詳細(xì)說明。 為了避免在代理設(shè)備緩存文件而引起SMB協(xié)議代理性能低下,在服務(wù)器設(shè)備中部
署一個(gè)"監(jiān)聽客戶端",專門用于響應(yīng)來自代理的文件內(nèi)容檢查請求,并在服務(wù)器本地檢查
文件的內(nèi)容,并將檢查的結(jié)果反饋給代理。改進(jìn)后的SMB文件下載處理流程主要分成10個(gè)
步驟,如圖4所示,具體描述如下 ①客戶端提交下載文件第1塊數(shù)據(jù)的請求; ②代理收到第1步的請求后,與部署在服務(wù)器的"監(jiān)聽客戶端"通信(通過TCP連 接套接字實(shí)現(xiàn)),從監(jiān)聽客戶端獲取文件內(nèi)容檢查結(jié)果; 具體地,代理向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求,以請求監(jiān)聽客戶端檢查待下
載文件的內(nèi)容,監(jiān)聽客戶端檢查指定文件的內(nèi)容,并將內(nèi)容檢查的結(jié)果反饋給代理; ③代理收到監(jiān)聽客戶端的文件內(nèi)容檢查結(jié)果后,對結(jié)果進(jìn)行判斷; ④如果允許下載,則將客戶端的文件"數(shù)據(jù)塊1"的下載請求轉(zhuǎn)發(fā)給服務(wù)器;否則,
直接丟棄該客戶端請求,并反饋客戶端相應(yīng)錯(cuò)誤信息; ⑤服務(wù)器響應(yīng)客戶端的下載請求,并將指定的第1塊數(shù)據(jù)發(fā)送給代理; ⑥代理收到來在服務(wù)器的文件第1塊數(shù)據(jù)后,無須再判斷,直接轉(zhuǎn)發(fā)給客戶端; ⑦到⑩步,依次下載其他數(shù)據(jù)塊,直至整個(gè)文件下載完畢。 以上步驟中,本發(fā)明將一般協(xié)議代理過程中文件的內(nèi)容檢查直接轉(zhuǎn)移到服務(wù)器中 完成,避免了在"代理"中進(jìn)行文件的緩存和內(nèi)容檢查,從而大大降低代理的負(fù)擔(dān)。
在具體的技術(shù)實(shí)現(xiàn)細(xì)節(jié)方面,重點(diǎn)說明幾點(diǎn)
(1)監(jiān)聽客戶端文件檢查的說明 監(jiān)聽客戶端接收到的文件內(nèi)容檢查請求包括文件檢查參數(shù)以及文件相對路徑。監(jiān) 聽客戶端進(jìn)行文件內(nèi)容檢查的具體過程是根據(jù)文件內(nèi)容檢查請求中的文件相對路徑,結(jié) 合預(yù)先配置的文件絕對路徑,查找到文件,并按照文件內(nèi)容檢查請求中的文件檢查參數(shù),對 文件進(jìn)行內(nèi)容檢查。 實(shí)際應(yīng)用過程中"監(jiān)聽客戶端"只需極少的配置,唯一必須配置的參數(shù)是本地共享 目錄的絕對路徑,而針對某個(gè)待下載的文件,其相對路徑(包括文件名)由代理從客戶端提 交的SMB請求報(bào)文(運(yùn)行SMB協(xié)議代理即可從SMB請求報(bào)文中解析獲得相對路徑)中分析
8獲得,并通過圖4中的第②步文件內(nèi)容檢查請求提交給"監(jiān)聽客戶端",監(jiān)聽客戶端將絕對 路徑和相對路徑合并得到待下載文件的確切路徑。 文件檢查參數(shù)具體形式不限,主要作用是告知監(jiān)聽客戶端對文件進(jìn)行何種檢查, 包括文件病毒掃描或者是文件MD5碼檢查等。
(2)代理與監(jiān)聽服務(wù)器之間的安全認(rèn)證 為了確保文件安全,可在代理與監(jiān)聽客戶端之間采用身份認(rèn)證,S卩,代理與監(jiān)聽服 務(wù)器正式通信之前,請求監(jiān)聽服務(wù)器的認(rèn)證,只有認(rèn)證通過的代理才能請求監(jiān)聽客戶端進(jìn) 行文件內(nèi)容檢查。具體身份認(rèn)證方式不限,例如可采用基于用戶名口令的弱認(rèn)證方式,或者 基于數(shù)字證書的強(qiáng)認(rèn)證方式等。 與一般的代理實(shí)現(xiàn)技術(shù)方案相比,采用本發(fā)明的方法,具有以下優(yōu)點(diǎn)
1)對代理設(shè)備配置的內(nèi)存容量要求較低,無需額外增加內(nèi)存用于緩存文件;
2)大大提高SMB協(xié)議代理環(huán)境下文件下載的并發(fā)性能,實(shí)現(xiàn)多個(gè)文件高速并發(fā)下 載; 3)充分節(jié)省了代理與服務(wù)器之間因預(yù)先緩存文件而產(chǎn)生的額外帶寬,使得代理與 服務(wù)器之間的全部流量都成為有效流量; 4)大大降低客戶端的響應(yīng)延遲,使得客戶端明顯感到下載速度加快; 5)降低了代理技術(shù)方案和具體實(shí)現(xiàn)的難度,使得用比較簡單的方法實(shí)現(xiàn)一個(gè)高效
的SMB協(xié)議代理。 與上述方法相對應(yīng),本發(fā)明還提供一種文件下載的代理,參見圖5,為該代理內(nèi)部 結(jié)構(gòu)示意圖。 該代理包括客戶端通信單元501和服務(wù)器通信單元502,其中,客戶端通信單元 501用于與客戶端通信,包括接收客戶端發(fā)送的文件下載請求,以及將從服務(wù)器獲得的數(shù)據(jù) 發(fā)送給客戶端;服務(wù)器通信單元502用于與服務(wù)器通信,包括將客戶端發(fā)來的文件下載請 求轉(zhuǎn)發(fā)給服務(wù)器,以及接收服務(wù)器提供的數(shù)據(jù),該代理與現(xiàn)有技術(shù)中的代理的重點(diǎn)改進(jìn)在 于,該代理還包括 監(jiān)聽客戶端通信單元503,用于在所述客戶端通信單元501接收到客戶端的文件
下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求,并從監(jiān)聽客戶端接收檢查結(jié)果; 檢查結(jié)果判斷單元504,用于分析判斷監(jiān)聽客戶端返回的檢查結(jié)果; 數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元505,用于根據(jù)所述檢查結(jié)果判斷單元504的分析判斷,確定后
續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā)。 其中,對于數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元505的具體功能為 數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元505在所述檢查結(jié)果判斷單元504確定檢查通過時(shí),控制所述 服務(wù)器通信單元502將文件下載請求轉(zhuǎn)發(fā)給服務(wù)器并從服務(wù)器接收數(shù)據(jù),并控制所述客戶 端通信單元501將從服務(wù)器接收到的數(shù)據(jù)發(fā)送給客戶端; 數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元505在所述檢查結(jié)果判斷單元504確定檢查未通過時(shí),丟棄客 戶端的文件下載請求,并控制客戶端通信單元501向客戶端反饋錯(cuò)誤信息。
優(yōu)選地,該代理還包括身份認(rèn)證單元506,用于與所述監(jiān)聽客戶端進(jìn)行身份認(rèn) 證。僅在身份認(rèn)證單元506身份認(rèn)證通過后,才啟動(dòng)監(jiān)聽客戶端通信單元503向監(jiān)聽客戶 端發(fā)送文件內(nèi)容檢查請求。具體身份認(rèn)證方式不限,例如可采用基于用戶名口令的弱認(rèn)證
9方式,或者基于數(shù)字證書的強(qiáng)認(rèn)證方式等。 另外,本發(fā)明還提供一種文件下載的監(jiān)聽客戶端,該監(jiān)聽客戶端可通過軟件、硬件
或軟硬件結(jié)合實(shí)現(xiàn),可設(shè)置在服務(wù)器內(nèi)部。參見圖6,該監(jiān)聽客戶端包括以下單元 代理通信單元601 ,用于從代理接收文件內(nèi)容檢查請求,并將檢查結(jié)果返回給所述
代理; 服務(wù)器通信單元602,用于讀取服務(wù)器中的文件; 檢查執(zhí)行單元603,用于對服務(wù)器通信單元讀取到的待下載文件進(jìn)行內(nèi)容檢查。
監(jiān)聽客戶端接收到的文件內(nèi)容檢查請求包括文件檢查參數(shù)以及文件相對路徑。
服務(wù)器通信單元602的具體工作過程為根據(jù)所述文件內(nèi)容檢查請求中的文件相 對路徑,結(jié)合預(yù)先配置的文件絕對路徑,查找到文件; 檢查執(zhí)行單元603的具體工作過程為按照文件內(nèi)容檢查請求中的文件檢查參 數(shù),對文件進(jìn)行相應(yīng)類型的內(nèi)容檢查。 實(shí)際應(yīng)用過程中"監(jiān)聽客戶端"只需極少的配置,唯一必須配置的參數(shù)是本地共享 目錄的絕對路徑,而針對某個(gè)待下載的文件,其相對路徑(包括文件名)由代理從客戶端提 交的SMB請求報(bào)文(運(yùn)行SMB協(xié)議即可從SMB請求報(bào)文中解析獲得相對路徑)中分析獲得, 并通過文件內(nèi)容檢查請求提交給"監(jiān)聽客戶端",監(jiān)聽客戶端將絕對路徑和相對路徑合并得 到待下載文件的確切路徑。 文件檢查參數(shù)具體形式不限,主要作用是告知監(jiān)聽客戶端對文件進(jìn)行何種檢查, 包括文件病毒掃描或者是文件MD5碼檢查等。 優(yōu)選地,該監(jiān)聽客戶端還包括身份認(rèn)證單元604,用于與代理進(jìn)行身份認(rèn)證。監(jiān)聽 客戶端僅響應(yīng)身份認(rèn)證通過的代理,以提高通信安全性。 最后,本發(fā)明還提供一種文件下載的系統(tǒng),該系統(tǒng)包括客戶端、代理和服務(wù)器,重 點(diǎn)改進(jìn)在于,在所述服務(wù)器中設(shè)置監(jiān)聽客戶端,其中
代理的功能為 接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求;并從監(jiān) 聽客戶端接收檢查結(jié)果,根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā);
監(jiān)聽客戶端的功能為 按照代理發(fā)送的文件內(nèi)容檢查請求,對服務(wù)器保存的待下載的文件進(jìn)行內(nèi)容檢 查,并向所述代理返回檢查結(jié)果。
其中,監(jiān)聽客戶端檢查文件內(nèi)容的具體過程為 根據(jù)所述文件內(nèi)容檢查請求中的文件相對路徑,結(jié)合預(yù)先配置的文件絕對路徑,
查找到文件,并按照文件內(nèi)容檢查請求中的文件檢查參數(shù),對文件進(jìn)行內(nèi)容檢查。 可見,本發(fā)明將現(xiàn)有方案中代理的文件檢查功能轉(zhuǎn)移到部署在服務(wù)器中的監(jiān)聽客
戶端執(zhí)行,代理僅根據(jù)監(jiān)聽客戶端返回的內(nèi)容檢查結(jié)果決定后續(xù)數(shù)據(jù)轉(zhuǎn)發(fā)即可,相比于現(xiàn)
有方案,至少存在以下優(yōu)點(diǎn) (1)代理無需對文件內(nèi)容進(jìn)行檢查,因此不必為此緩存大量數(shù)據(jù),僅需根據(jù)文件內(nèi) 容檢查結(jié)果執(zhí)行具體的數(shù)據(jù)轉(zhuǎn)發(fā)即可,因此對代理設(shè)備配置的內(nèi)存容量要求較低,無需額 外增加內(nèi)存用于緩存文件; (2)充分節(jié)省了代理與服務(wù)器之間因緩存文件而產(chǎn)生的額外帶寬,使代理與服務(wù)器之間的全部流量都成為有效流量; (3)無需對文件內(nèi)容進(jìn)行檢查,減輕了代理的負(fù)擔(dān); (4)由于減輕了代理的負(fù)擔(dān),從而可提高代理的響應(yīng)速度,可大大提高代理文件下 載的并發(fā)性能,實(shí)現(xiàn)多個(gè)文件高速并行下載; (5)大大降低客戶端的響應(yīng)延遲,明顯改善客戶端下載感受; (6)通過代理與監(jiān)聽客戶端之間支持身份認(rèn)證功能,解決兩者的安全通信問題;
(7)僅在服務(wù)器設(shè)置監(jiān)聽客戶端即可實(shí)現(xiàn),對服務(wù)器改動(dòng)不大,對服務(wù)器性能影響 可忽略,實(shí)現(xiàn)簡單,效果明顯; (8)可應(yīng)用在任意的"客戶端_代理_服務(wù)器"模式的傳輸系統(tǒng),該系統(tǒng)可通過運(yùn) 行SMB/HTTP/FTP/SMTP/P0P3等協(xié)議進(jìn)行通信,通用性強(qiáng)。 本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例的方法的過程可以通過程序指令 相關(guān)的硬件來完成,所述的程序可以存儲于可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí)執(zhí)行上述 方法中的對應(yīng)步驟。所述的存儲介質(zhì)可以如R0M/RAM、磁碟、光盤等。 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種文件下載的方法,應(yīng)用于客戶端-代理-服務(wù)器模式的傳輸系統(tǒng),其特征在于,在所述服務(wù)器中設(shè)置監(jiān)聽客戶端,該方法包括以下步驟代理接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求;所述監(jiān)聽客戶端對待下載的文件進(jìn)行內(nèi)容檢查,向所述代理返回檢查結(jié)果;所述代理根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā)。
2. 根據(jù)權(quán)利要求1所述方法,其特征在于,所述代理根據(jù)所述檢查結(jié)果執(zhí)行數(shù)據(jù)轉(zhuǎn)發(fā)包括所述代理判斷檢查結(jié)果;若確定檢查通過,將所述文件下載請求轉(zhuǎn)發(fā)給服務(wù)器,并將服務(wù)器返回的數(shù)據(jù)發(fā)送給客戶端;若確定檢查未通過,丟棄客戶端的文件下載請求,并向客戶端反饋錯(cuò)誤信息。
3. 根據(jù)權(quán)利要求1或2所述方法,其特征在于,所述文件內(nèi)容檢查請求包括文件檢查參數(shù)以及文件相對路徑。
4. 根據(jù)權(quán)利要求3所述方法,其特征在于,所述監(jiān)聽客戶端根據(jù)所述文件內(nèi)容檢查請求中的文件相對路徑,結(jié)合預(yù)先配置的文件絕對路徑,查找到文件,并按照所述文件內(nèi)容檢查請求中的文件檢查參數(shù),對文件進(jìn)行相應(yīng)類型的內(nèi)容檢查。
5. 根據(jù)權(quán)利要求1或2所述方法,其特征在于,在代理向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求之前,所述方法還包括所述代理和所述監(jiān)聽客戶端之間進(jìn)行身份認(rèn)證。
6. —種文件下載的代理,包括客戶端通信單元和服務(wù)器通信單元,其特征在于,還包括監(jiān)聽客戶端通信單元,用于在所述客戶端通信單元接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求,并從監(jiān)聽客戶端接收檢查結(jié)果;檢查結(jié)果判斷單元,用于分析判斷監(jiān)聽客戶端返回的檢查結(jié)果;數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元,用于根據(jù)所述檢查結(jié)果判斷單元的分析判斷,確定后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā)。
7. 根據(jù)權(quán)利要求6所述代理,其特征在于,所述數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元在所述檢查結(jié)果判斷單元確定檢查通過時(shí),控制所述服務(wù)器通信單元將文件下載請求轉(zhuǎn)發(fā)給服務(wù)器并從服務(wù)器接收數(shù)據(jù),并控制所述客戶端通信單元將從服務(wù)器接收到的數(shù)據(jù)發(fā)送給客戶端;所述數(shù)據(jù)轉(zhuǎn)發(fā)執(zhí)行單元在所述檢查結(jié)果判斷單元確定檢查未通過時(shí),丟棄客戶端的文件下載請求,并控制客戶端通信單元向客戶端反饋錯(cuò)誤信息。
8. 根據(jù)權(quán)利要求6或7所述代理,其特征在于,還包括身份認(rèn)證單元,用于與所述監(jiān)聽客戶端進(jìn)行身份認(rèn)證。
9. 一種文件下載的監(jiān)聽客戶端,其特征在于,包括代理通信單元,用于從代理接收文件內(nèi)容檢查請求,并將檢查結(jié)果返回給所述代理;服務(wù)器通信單元,用于讀取服務(wù)器中的文件;檢查執(zhí)行單元,用于對服務(wù)器通信單元讀取到的待下載文件進(jìn)行內(nèi)容檢查。
10. 根據(jù)權(quán)利要求9所述監(jiān)聽客戶端,其特征在于,所述服務(wù)器通信單元根據(jù)所述文件內(nèi)容檢查請求中的文件相對路徑,結(jié)合預(yù)先配置的文件絕對路徑,查找到文件;所述檢查執(zhí)行單元按照所述文件內(nèi)容檢查請求中的文件檢查參數(shù),對文件進(jìn)行相應(yīng)類型的內(nèi)容檢查。
11. 根據(jù)權(quán)利要求9或10所述監(jiān)聽客戶端,其特征在于,還包括身份認(rèn)證單元,用于與代理進(jìn)行身份認(rèn)證。
12. —種文件下載的系統(tǒng),包括客戶端、代理和服務(wù)器,其特征在于,在所述服務(wù)器中設(shè)置監(jiān)聽客戶端,其中所述代理,接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求;并從監(jiān)聽客戶端接收檢查結(jié)果,根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā);所述監(jiān)聽客戶端,按照代理發(fā)送的文件內(nèi)容檢查請求,對服務(wù)器保存的待下載的文件進(jìn)行內(nèi)容檢查,并向所述代理返回檢查結(jié)果。
全文摘要
本發(fā)明公開了一種文件下載的方法、裝置及系統(tǒng),應(yīng)用于客戶端-代理-服務(wù)器模式的傳輸系統(tǒng),在所述服務(wù)器中設(shè)置監(jiān)聽客戶端,該方法包括以下步驟代理接收到客戶端的文件下載請求后,向監(jiān)聽客戶端發(fā)送文件內(nèi)容檢查請求;所述監(jiān)聽客戶端對待下載的文件進(jìn)行內(nèi)容檢查,向所述代理返回檢查結(jié)果;所述代理根據(jù)所述檢查結(jié)果執(zhí)行后續(xù)的數(shù)據(jù)轉(zhuǎn)發(fā)??梢?,代理無需對文件內(nèi)容進(jìn)行檢查,因此不必為此緩存大量數(shù)據(jù),僅需根據(jù)文件內(nèi)容檢查結(jié)果執(zhí)行具體的數(shù)據(jù)轉(zhuǎn)發(fā)即可,因此對代理設(shè)備配置的內(nèi)存容量要求較低,無需額外增加內(nèi)存用于緩存文件,同時(shí)也可明顯提高代理的并發(fā)性能,以及縮短客戶端的響應(yīng)延遲。
文檔編號H04L29/06GK101741846SQ20091024305
公開日2010年6月16日 申請日期2009年12月22日 優(yōu)先權(quán)日2009年12月22日
發(fā)明者周向軍 申請人:聯(lián)想網(wǎng)御科技(北京)有限公司