专利名称:文件下载的方法、装置及系统的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及"客户端-代理-服务器"模式的传输系统中
的文件下载方法、装置及系统。
背景技术:
参见图l,为"客户端-代理-服务器"模式的传输系统示意图,目前涉及"客户端-代理-服务器"模式的传输系统可通过运行SMB(Server Message Block,服务器信息块)/HTTP(Hypertext Transfer Protocol,超文本传输协议)/FTP(File TransferProtocol,文件传输协议)/SMTP (Simple Mail TransferProtocol,简单邮件传输协议)/P0P3(Post Office Protocol 3,邮局协议的第3个版本)等协议进行通信。
作为部署在网络客户端和服务器之间的代理,往往具备以下几个特点
>相对客户端来说,代理是"服务器",而相对服务器来说,代理又是"客户端",即代理同时充当虚拟服务器和虚拟客户端两个角色; ^在客户端和服务器之间部署代理后,原来的一个TCP连接实际上变成两个TCP连接客户端〈——> 代理、代理〈——> 服务器; >客户端与服务器之间的所有数据(根据具体应用协议进行封装)全部通过代理,那么代理可以根据需要对这些数据进行检查和过滤; >与网络层设备(如路由器、防火墙等)相比,部署代理后,将对网络通信性能产生较大影响。 对于一般的数据通信,增加代理之后的网络环境可正常工作,但是代理中如果增加对文件进行内容检查和过滤,如文件病毒扫描、文件MD5码(Message-Digest Algorithm5,信息_摘要算法5)检查功能,将对系统的性能产生很大影响,且随着文件大小的增加,其网络性会明显下降。影响在SMB协议的代理中更加突出,因此下面以SMB协议为例进行分析。 SMB协议用于网络中计算机之间共享文件、共享打印机、共享串口等用途,之所以能够在windows的网络邻居下访问一个域内的其他机器,就是通过这个协议实现的。SMB服务器负责通过网络提供可用的共享资源给SMB客户端,服务器和客户机之间通过TCP (Transmission Control Protocol,传输控制协议)/IP (Internet Protocol,网间互连协议)协议、或者IPX(InternetPacket Exchange protocol,互联网分组交换协议)协议、或者是NetBEUI (NetBIOS Extend User Interface, NetBIOS用户扩展接口协议)进行连接。 一旦服务器和客户机之间建立了一个连接,客户机就可以通过向服务器发送命令完成共享操作,比如读,写,检索等。 与HTTP、 FTP等应用协议不同,利用SMB协议客户端从服务器下载文件时,并不采用如HTTP/FTP等协议的模式, 一个文件"一次请求+响应全部",而是采用一个文件由"多次请求+多次响应"的模式。 如图3所示,客户端利用SMB协议下载文件时,总是把整个文件分成N个数据块,然后依次提交下载N个数据块的请求,具体下载过程是 (1)客户端通过已建立好的TCP连接提交下载"数据块l"请求; (2)代理收到"数据块l"下载请求,并转发该请求给服务器; (3)服务器收到请求,响应该请求,并将数据块1发送给代理; (4)代理收到来自服务器响应的"数据块l",进行内容检查和过滤,再转发给客户
丄山
顺; (5)客户端收到"数据块1"; (6)按照以上1-5个步骤,客户端下载第2至N个数据块; 从以上流程中可以明确当代理收到来自服务器的第一个数据块的响应时,代理 在决定是否转发给客户端前,如果要对整个文件的内容进行检查和过滤,则必须先把整个 文件的内容下载到代理中,检查和过滤后才能决定是否可以将第一个文件数据块转发给客 户端。由此,将严重影响客户端的网络延时,且如果内容检查完该文件不允许下载,那么整 个文件从服务器到代理的下载过程全部浪费。更重要的是,由于SMB协议中,同时下载多个 文件都是共用一个TCP连接,当代理正在缓存文件时,可能导致其他文件的下载请求无法 得到响应,这样通过一个TCP连接多个文件并发下载的应用就变成一个串行下载多个文件 的过程了。 可见,基于这种多请求模式的SMB协议代理,代理转发来自服务器响应的数据前, 必须先检查该文件内容,并依据检查结果决定是否允许转发的应用中,会产生以下几个问 题 1)代理为了准确判断当前请求的数据块是否允许转发,则必须将整个文件的内容
预先缓存到代理,这就要求代理设备中必须配置足够大的缓存,尤其是高并发环境下大文
件的传输将对代理设备的缓存要求很高,不仅容量大,而且处理速度也要快; 2)为了实现高速缓存,一般都采用内存,但是实际情况下,代理设备内存的配置总
是有限的,这将对代理的并发连接数量产生极大制约,由此引发代理的性能将处于一个很
低的水平; 3)如果对缓存文件的内容检查后不允许转发,则代理与服务器之间的文件下载流
量就完全损失,极端情况下,整个SMB下载过程的网络带宽将浪费一半; 4)根据SMB协议原理,在一个TCP连接中,可能同时发起下载多个文件的请求,在
这种情况下,代理一方面要缓存来自服务器的文件,另一方面要求响应来自客户端的其他
请求,这将导致代理的实际响应延迟很大,甚至实际环境中这样的代理系统可能基本上不
具备可用性。
发明内容
本发明提供一种文件下载方法、装置及系统,以解决现有方案由于在代理对文件
内容进行检查导致的需缓存文件以及效率低下的问题。 为此,本发明实施例采用如下技术方案 —种文件下载的方法,应用于客户端_代理_服务器模式的传输系统,在所述服务 器中设置监听客户端,该方法包括以下步骤 代理接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求;
5
所述监听客户端对待下载的文件进行内容检查,向所述代理返回检查结果;
所述代理根据所述检查结果执行后续的数据转发。
其中,所述代理根据所述检查结果执行数据转发包括
所述代理判断检查结果; 若确定检查通过,将所述文件下载请求转发给服务器,并将服务器返回的数据发 送给客户端; 若确定检查未通过,丢弃客户端的文件下载请求,并向客户端反馈错误信息。
所述文件内容检查请求包括文件检查参数以及文件相对路径。 其中,所述监听客户端根据所述文件内容检查请求中的文件相对路径,结合预先 配置的文件绝对路径,查找到文件,并按照所述文件内容检查请求中的文件检查参数,对文 件进行相应类型的内容检查。 在代理向监听客户端发送文件内容检查请求之前,所述方法还包括
所述代理和所述监听客户端之间进行身份认证。 —种文件下载的代理,包括客户端通信单元和服务器通信单元,还包括 监听客户端通信单元,用于在所述客户端通信单元接收到客户端的文件下载请求
后,向监听客户端发送文件内容检查请求,并从监听客户端接收检查结果; 检查结果判断单元,用于分析判断监听客户端返回的检查结果; 数据转发执行单元,用于根据所述检查结果判断单元的分析判断,确定后续的数
据转发。 其中,所述数据转发执行单元在所述检查结果判断单元确定检查通过时,控制所 述服务器通信单元将文件下载请求转发给服务器并从服务器接收数据,并控制所述客户端 通信单元将从服务器接收到的数据发送给客户端; 所述数据转发执行单元在所述检查结果判断单元确定检查未通过时,丢弃客户端 的文件下载请求,并控制客户端通信单元向客户端反馈错误信息。
上述代理还包括 身份认证单元,用于与所述监听客户端进行身份认证。
—种文件下载的监听客户端,包括 代理通信单元,用于从代理接收文件内容检查请求,并将检查结果返回给所述代 理; 服务器通信单元,用于读取服务器中的文件; 检查执行单元,用于对服务器通信单元读取到的待下载文件进行内容检查。 其中,所述服务器通信单元根据所述文件内容检查请求中的文件相对路径,结合
预先配置的文件绝对路径,查找到文件;所述检查执行单元按照所述文件内容检查请求中
的文件检查参数,对文件进行相应类型的内容检查。 上述监听客户端还包括 身份认证单元,用于与代理进行身份认证。 —种文件下载的系统,包括客户端、代理和服务器,在所述服务器中设置监听客户 端,其中 所述代理,接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求;并从监听客户端接收检查结果,根据所述检查结果执行后续的数据转发; 所述监听客户端,按照代理发送的文件内容检查请求,对服务器保存的待下载的
文件进行内容检查,并向所述代理返回检查结果。 可见,本发明将现有方案中代理的文件检查功能转移到部署在服务器中的监听客 户端执行,代理仅根据监听客户端返回的内容检查结果决定后续数据转发即可,相比于现 有方案,至少存在以下优点 (1)代理无需对文件内容进行检查,因此不必为此缓存大量数据,仅需根据文件内 容检查结果执行具体的数据转发即可,因此对代理设备配置的内存容量要求较低,无需额 外增加内存用于缓存文件; (2)充分节省了代理与服务器之间因缓存文件而产生的额外带宽,使代理与服务 器之间的全部流量都成为有效流量; (3)无需对文件内容进行检查,减轻了代理的负担; (4)由于减轻了代理的负担,从而可提高代理的响应速度,可大大提高代理文件下 载的并发性能,实现多个文件高速并行下载; (5)大大降低客户端的响应延迟,明显改善客户端下载感受; (6)通过代理与监听客户端之间支持身份认证功能,解决两者的安全通信问题;
(7)仅在服务器设置监听客户端即可实现,对服务器改动不大,对服务器性能影响 可忽略,实现简单,效果明显; (8)可应用在任意的"客户端_代理_服务器"模式的传输系统,该系统可通过运 行SMB/HTTP/FTP/SMTP/P0P3等协议进行通信,通用性强。
图1为"客户端_代理_服务器"模式的传输系统示意图; 图2为SMB协议文件下载原理图; 图3为本发明文件下载方法流程图; 图4为本发明方法实施例示意图; 图5为本发明代理结构示意图; 图6为本发明监听客户端结构示意图。
具体实施例方式
与现有技术中代理的实现技术方案不同,本发明采用"代理+监听客户端"的架
构,可以有效解决代理文件下载的性能低下问题。 参见图3,为本发明文件下载的方法流程图,包括 S301 :代理接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请 求; S302 :所述监听客户端对待下载的文件进行内容检查,向所述代理返回检查结 果; S303 :所述代理根据所述检查结果执行后续的数据转发。 其中,监听客户端是设置在服务器中的,具体实现形式不限,例如可以采用一个软件实现。由于该监听客户端位于服务器侧,在此进行文件内容检查后,将检查结果返回给代 理,就无需代理对文件进行缓存并对文件进行内容检查,仅需根据检查结果执行后续数据 转发即可。
其中,代理根据所述检查结果执行数据转发包括但不限于以下的方式
代理判断检查结果; 若确定检查通过,将所述文件下载请求转发给服务器,并将服务器返回的文件发 送给客户端; 若确定检查未通过,丢弃客户端的文件下载请求,并向客户端反馈错误信息。或 者,当确定检查未通过时,直接中断整个会话。 本发明方案可应用在任意的"客户端_代理_服务器"模式的传输系统,该系统可 通过运行SMB/HTTP/FTP/SMTP/P0P3等协议进行通信。 为了使本发明方案更加清楚,下面以运行SMB协议的"客户端_代理_服务器"传 输系统进行详细说明。 为了避免在代理设备缓存文件而引起SMB协议代理性能低下,在服务器设备中部
署一个"监听客户端",专门用于响应来自代理的文件内容检查请求,并在服务器本地检查
文件的内容,并将检查的结果反馈给代理。改进后的SMB文件下载处理流程主要分成10个
步骤,如图4所示,具体描述如下 ①客户端提交下载文件第1块数据的请求; ②代理收到第1步的请求后,与部署在服务器的"监听客户端"通信(通过TCP连 接套接字实现),从监听客户端获取文件内容检查结果; 具体地,代理向监听客户端发送文件内容检查请求,以请求监听客户端检查待下
载文件的内容,监听客户端检查指定文件的内容,并将内容检查的结果反馈给代理; ③代理收到监听客户端的文件内容检查结果后,对结果进行判断; ④如果允许下载,则将客户端的文件"数据块1"的下载请求转发给服务器;否则,
直接丢弃该客户端请求,并反馈客户端相应错误信息; ⑤服务器响应客户端的下载请求,并将指定的第1块数据发送给代理; ⑥代理收到来在服务器的文件第1块数据后,无须再判断,直接转发给客户端; ⑦到⑩步,依次下载其他数据块,直至整个文件下载完毕。 以上步骤中,本发明将一般协议代理过程中文件的内容检查直接转移到服务器中 完成,避免了在"代理"中进行文件的缓存和内容检查,从而大大降低代理的负担。
在具体的技术实现细节方面,重点说明几点
(1)监听客户端文件检查的说明 监听客户端接收到的文件内容检查请求包括文件检查参数以及文件相对路径。监 听客户端进行文件内容检查的具体过程是根据文件内容检查请求中的文件相对路径,结 合预先配置的文件绝对路径,查找到文件,并按照文件内容检查请求中的文件检查参数,对 文件进行内容检查。 实际应用过程中"监听客户端"只需极少的配置,唯一必须配置的参数是本地共享 目录的绝对路径,而针对某个待下载的文件,其相对路径(包括文件名)由代理从客户端提 交的SMB请求报文(运行SMB协议代理即可从SMB请求报文中解析获得相对路径)中分析
8获得,并通过图4中的第②步文件内容检查请求提交给"监听客户端",监听客户端将绝对 路径和相对路径合并得到待下载文件的确切路径。 文件检查参数具体形式不限,主要作用是告知监听客户端对文件进行何种检查, 包括文件病毒扫描或者是文件MD5码检查等。
(2)代理与监听服务器之间的安全认证 为了确保文件安全,可在代理与监听客户端之间采用身份认证,S卩,代理与监听服 务器正式通信之前,请求监听服务器的认证,只有认证通过的代理才能请求监听客户端进 行文件内容检查。具体身份认证方式不限,例如可采用基于用户名口令的弱认证方式,或者 基于数字证书的强认证方式等。 与一般的代理实现技术方案相比,采用本发明的方法,具有以下优点
1)对代理设备配置的内存容量要求较低,无需额外增加内存用于缓存文件;
2)大大提高SMB协议代理环境下文件下载的并发性能,实现多个文件高速并发下 载; 3)充分节省了代理与服务器之间因预先缓存文件而产生的额外带宽,使得代理与 服务器之间的全部流量都成为有效流量; 4)大大降低客户端的响应延迟,使得客户端明显感到下载速度加快; 5)降低了代理技术方案和具体实现的难度,使得用比较简单的方法实现一个高效
的SMB协议代理。 与上述方法相对应,本发明还提供一种文件下载的代理,参见图5,为该代理内部 结构示意图。 该代理包括客户端通信单元501和服务器通信单元502,其中,客户端通信单元 501用于与客户端通信,包括接收客户端发送的文件下载请求,以及将从服务器获得的数据 发送给客户端;服务器通信单元502用于与服务器通信,包括将客户端发来的文件下载请 求转发给服务器,以及接收服务器提供的数据,该代理与现有技术中的代理的重点改进在 于,该代理还包括 监听客户端通信单元503,用于在所述客户端通信单元501接收到客户端的文件
下载请求后,向监听客户端发送文件内容检查请求,并从监听客户端接收检查结果; 检查结果判断单元504,用于分析判断监听客户端返回的检查结果; 数据转发执行单元505,用于根据所述检查结果判断单元504的分析判断,确定后
续的数据转发。 其中,对于数据转发执行单元505的具体功能为 数据转发执行单元505在所述检查结果判断单元504确定检查通过时,控制所述 服务器通信单元502将文件下载请求转发给服务器并从服务器接收数据,并控制所述客户 端通信单元501将从服务器接收到的数据发送给客户端; 数据转发执行单元505在所述检查结果判断单元504确定检查未通过时,丢弃客 户端的文件下载请求,并控制客户端通信单元501向客户端反馈错误信息。
优选地,该代理还包括身份认证单元506,用于与所述监听客户端进行身份认 证。仅在身份认证单元506身份认证通过后,才启动监听客户端通信单元503向监听客户 端发送文件内容检查请求。具体身份认证方式不限,例如可采用基于用户名口令的弱认证
9方式,或者基于数字证书的强认证方式等。 另外,本发明还提供一种文件下载的监听客户端,该监听客户端可通过软件、硬件
或软硬件结合实现,可设置在服务器内部。参见图6,该监听客户端包括以下单元 代理通信单元601 ,用于从代理接收文件内容检查请求,并将检查结果返回给所述
代理; 服务器通信单元602,用于读取服务器中的文件; 检查执行单元603,用于对服务器通信单元读取到的待下载文件进行内容检查。
监听客户端接收到的文件内容检查请求包括文件检查参数以及文件相对路径。
服务器通信单元602的具体工作过程为根据所述文件内容检查请求中的文件相 对路径,结合预先配置的文件绝对路径,查找到文件; 检查执行单元603的具体工作过程为按照文件内容检查请求中的文件检查参 数,对文件进行相应类型的内容检查。 实际应用过程中"监听客户端"只需极少的配置,唯一必须配置的参数是本地共享 目录的绝对路径,而针对某个待下载的文件,其相对路径(包括文件名)由代理从客户端提 交的SMB请求报文(运行SMB协议即可从SMB请求报文中解析获得相对路径)中分析获得, 并通过文件内容检查请求提交给"监听客户端",监听客户端将绝对路径和相对路径合并得 到待下载文件的确切路径。 文件检查参数具体形式不限,主要作用是告知监听客户端对文件进行何种检查, 包括文件病毒扫描或者是文件MD5码检查等。 优选地,该监听客户端还包括身份认证单元604,用于与代理进行身份认证。监听 客户端仅响应身份认证通过的代理,以提高通信安全性。 最后,本发明还提供一种文件下载的系统,该系统包括客户端、代理和服务器,重 点改进在于,在所述服务器中设置监听客户端,其中
代理的功能为 接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求;并从监 听客户端接收检查结果,根据所述检查结果执行后续的数据转发;
监听客户端的功能为 按照代理发送的文件内容检查请求,对服务器保存的待下载的文件进行内容检 查,并向所述代理返回检查结果。
其中,监听客户端检查文件内容的具体过程为 根据所述文件内容检查请求中的文件相对路径,结合预先配置的文件绝对路径,
查找到文件,并按照文件内容检查请求中的文件检查参数,对文件进行内容检查。 可见,本发明将现有方案中代理的文件检查功能转移到部署在服务器中的监听客
户端执行,代理仅根据监听客户端返回的内容检查结果决定后续数据转发即可,相比于现
有方案,至少存在以下优点 (1)代理无需对文件内容进行检查,因此不必为此缓存大量数据,仅需根据文件内 容检查结果执行具体的数据转发即可,因此对代理设备配置的内存容量要求较低,无需额 外增加内存用于缓存文件; (2)充分节省了代理与服务器之间因缓存文件而产生的额外带宽,使代理与服务器之间的全部流量都成为有效流量; (3)无需对文件内容进行检查,减轻了代理的负担; (4)由于减轻了代理的负担,从而可提高代理的响应速度,可大大提高代理文件下 载的并发性能,实现多个文件高速并行下载; (5)大大降低客户端的响应延迟,明显改善客户端下载感受; (6)通过代理与监听客户端之间支持身份认证功能,解决两者的安全通信问题;
(7)仅在服务器设置监听客户端即可实现,对服务器改动不大,对服务器性能影响 可忽略,实现简单,效果明显; (8)可应用在任意的"客户端_代理_服务器"模式的传输系统,该系统可通过运 行SMB/HTTP/FTP/SMTP/P0P3等协议进行通信,通用性强。 本领域普通技术人员可以理解,实现上述实施例的方法的过程可以通过程序指令 相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行时执行上述 方法中的对应步骤。所述的存储介质可以如R0M/RAM、磁碟、光盘等。 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种文件下载的方法,应用于客户端-代理-服务器模式的传输系统,其特征在于,在所述服务器中设置监听客户端,该方法包括以下步骤代理接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求;所述监听客户端对待下载的文件进行内容检查,向所述代理返回检查结果;所述代理根据所述检查结果执行后续的数据转发。
2. 根据权利要求1所述方法,其特征在于,所述代理根据所述检查结果执行数据转发包括所述代理判断检查结果;若确定检查通过,将所述文件下载请求转发给服务器,并将服务器返回的数据发送给客户端;若确定检查未通过,丢弃客户端的文件下载请求,并向客户端反馈错误信息。
3. 根据权利要求1或2所述方法,其特征在于,所述文件内容检查请求包括文件检查参数以及文件相对路径。
4. 根据权利要求3所述方法,其特征在于,所述监听客户端根据所述文件内容检查请求中的文件相对路径,结合预先配置的文件绝对路径,查找到文件,并按照所述文件内容检查请求中的文件检查参数,对文件进行相应类型的内容检查。
5. 根据权利要求1或2所述方法,其特征在于,在代理向监听客户端发送文件内容检查请求之前,所述方法还包括所述代理和所述监听客户端之间进行身份认证。
6. —种文件下载的代理,包括客户端通信单元和服务器通信单元,其特征在于,还包括监听客户端通信单元,用于在所述客户端通信单元接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求,并从监听客户端接收检查结果;检查结果判断单元,用于分析判断监听客户端返回的检查结果;数据转发执行单元,用于根据所述检查结果判断单元的分析判断,确定后续的数据转发。
7. 根据权利要求6所述代理,其特征在于,所述数据转发执行单元在所述检查结果判断单元确定检查通过时,控制所述服务器通信单元将文件下载请求转发给服务器并从服务器接收数据,并控制所述客户端通信单元将从服务器接收到的数据发送给客户端;所述数据转发执行单元在所述检查结果判断单元确定检查未通过时,丢弃客户端的文件下载请求,并控制客户端通信单元向客户端反馈错误信息。
8. 根据权利要求6或7所述代理,其特征在于,还包括身份认证单元,用于与所述监听客户端进行身份认证。
9. 一种文件下载的监听客户端,其特征在于,包括代理通信单元,用于从代理接收文件内容检查请求,并将检查结果返回给所述代理;服务器通信单元,用于读取服务器中的文件;检查执行单元,用于对服务器通信单元读取到的待下载文件进行内容检查。
10. 根据权利要求9所述监听客户端,其特征在于,所述服务器通信单元根据所述文件内容检查请求中的文件相对路径,结合预先配置的文件绝对路径,查找到文件;所述检查执行单元按照所述文件内容检查请求中的文件检查参数,对文件进行相应类型的内容检查。
11. 根据权利要求9或10所述监听客户端,其特征在于,还包括身份认证单元,用于与代理进行身份认证。
12. —种文件下载的系统,包括客户端、代理和服务器,其特征在于,在所述服务器中设置监听客户端,其中所述代理,接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求;并从监听客户端接收检查结果,根据所述检查结果执行后续的数据转发;所述监听客户端,按照代理发送的文件内容检查请求,对服务器保存的待下载的文件进行内容检查,并向所述代理返回检查结果。
全文摘要
本发明公开了一种文件下载的方法、装置及系统,应用于客户端-代理-服务器模式的传输系统,在所述服务器中设置监听客户端,该方法包括以下步骤代理接收到客户端的文件下载请求后,向监听客户端发送文件内容检查请求;所述监听客户端对待下载的文件进行内容检查,向所述代理返回检查结果;所述代理根据所述检查结果执行后续的数据转发。可见,代理无需对文件内容进行检查,因此不必为此缓存大量数据,仅需根据文件内容检查结果执行具体的数据转发即可,因此对代理设备配置的内存容量要求较低,无需额外增加内存用于缓存文件,同时也可明显提高代理的并发性能,以及缩短客户端的响应延迟。
文档编号H04L29/06GK101741846SQ20091024305
公开日2010年6月16日 申请日期2009年12月22日 优先权日2009年12月22日
发明者周向军 申请人:联想网御科技(北京)有限公司