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