本发明涉及一种文件传输方法及系统,尤其是涉及基于SDN架构的文件传输方法及系统。
背景技术:
:TFTP是简单文件传输协议,是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP使用客户服务器方式和使用UDP数据包。而且TFTP只支持文件传输,没有一个庞大的命令集。如图1所示,任何传输起自一个读取或写入文件的请求,这个请求也是连接请求。如果服务器批准此请求,则服务器打开连接,数据以定长512字节传输。如果TFTP服务器过忙,数据分组报文将被重传,甚至导致文件传输失败。如果一个分组报文少于512字节,表明这是数据传输的最后一个分组报文。当一个数据的分组报文被发送到目标主机之后,数据将在一个缓冲区域内保存直到接收到一个确认信号,它表明数据已经被成功地接收了。如果在再发送时间失效之前,发送主机没有接收到确认信号,则数据分组报文将被重新发送。传统TFTP传输,无法实现TFTP服务器的负载分担。当TFTP服务器过忙的时候,TFTP的传输会出现中断和异常。技术实现要素:针对现有技术所存在的上述缺陷,本发明提供一种SDN(软件定义网络)架构的文件传输方法,可以根据服务器负载、链路开销等因素选择合适的服务器与客户端相互传输文件,防止某台服务器过载。为了实现此目的,一种SDN(软件定义网络)架构的文件传输方法,包括:a)获取服务器集群信息;b)当客户端请求上传或下载文件时,从服务器集群中选取一个服务器;c)所述选取的服务器与所述客户端建立连接;d)所述选取的服务器与所述客户端进行文件传输。优选的,步骤b包括:b11)当客户端请求下载文件时,筛选具有所述文件的服务器;b12)从步骤b11)的筛选结果中,筛选负载低于阈值的服务器;b13)从步骤b12)的筛选结果中,选取与客户端之间链路开销最小的服务器。优选的,步骤b也可以包括:b21)当客户端请求上传文件时,筛选具有上传文件权限的服务器;b22)从步骤b21)的筛选结果中,筛选负载低于阈值的服务器;b23)从步骤b23)的筛选结果中,选取与客户端之间链路开销最小的服务器。优选的,所述链路开销等于一个恒定值除以链路速率。优选的,所述步骤a包括:获取全网拓扑结构;获取服务器负载信息和服务器权限信息。本发明还提供一种基于SDN架构的文件传输系统,包括服务器集群,包含多个服务器;多个网络设备,各网络设备分别连接所述服务器;客户端,请求从所述服务器上传或下载文件;控制器,连接多个网络设备,控制所述多个网络设备转发,获取服务器集群信息,当所述客户端请求从所述服务器上传或下载文件时,控制器从服务器集群中选取一个服务器,选取的服务器通过所述网络设备与所述客户端建立连接并传输文件。优选的,基于SDN架构的文件传输系统,所述控制器从服务器集群中选取一个服务器,包括b11)当客户端请求下载文件时,筛选具有所述文件的服务器;b12)从步骤b11)的筛选结果中,筛选负载低于阈值的服务器;b13)从步骤b12)的筛选结果中,选取与客户端之间链路开销最小的服务器。优选的,基于SDN架构的文件传输系统,所述控制器从服务器集群中选取一个服务器,包括b21)当客户端请求上传文件时,筛选具有上传文件权限的服务器;b22)从步骤b21)的筛选结果中,筛选负载低于阈值的服务器;b23)从步骤b23)的筛选结果中,选取与客户端之间链路开销最小的服务器。优选的,基于SDN架构的文件传输系统,所述链路开销等于一个恒定值除以链路速率。优选的,所述控制器获取服务器集群信息包括:所述控制器获取全网拓扑结构;所述控制器获取服务器负载信息和服务器权限信息。本发明是基于SDN架构,服务器采用集群的形式,在系统初始化的时候,上报服务集群信息。当客户端请求上传或下载文件的时候,控制器基于服务器的负载情况,链路开销等因素,告知客户端合适的服务器。最后客户端和此服务器建立连接,进行文件传输。本发明结合考虑了服务器负载和链路开销等因素选择合适的服务器,防止某台服务器过载。附图说明图1为传统传输示意图;图2为本发明实施例一文件传输系统结构示意图;图3为本发明实施例二文件传输流程示意图;图4为本发明应用于基于TFTP协议文件传输示意图。具体实施方式为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式的附图,对本发明实施方式中的技术方案进行清楚、完整地描述, 显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。本发明的实施例一,如图2,一种基于SDN架构的文件传输系统100,包括服务器集群110,如图2中的服务器111和服务器112;多个网络设备,如图2所示网络设备121、网络设备122和网络设备123,各网络设备分别连接所述服务器,如图2所示,网络设备121与服务器112连接,网络设备123与服务器111连接;客户端130,请求从所述服务器112和服务器111上传或下载文件;控制器140,连接多个网络设备,如图2所示,控制器140连接网络设备121、网络设备122和网络设备123,控制器140控制所述网络设备121、网络设备122和网络设备123转发。控制器140还获取服务器集群110信息,包括获取全网拓扑结构,获取服务器负载信息和服务器权限信息。当所述客户端130请求从所述多个服务器上传或下载文件时,控制器140从服务器集群110中选取一个服务器,选取的服务器通过所述网络设备与所述客户端130建立连接并传输文件。在本实施例一中,服务器不局限于数量两个,网络设备部局限于数量三个,客户端不局限于数量1个,控制器不局限于数量1个。网络设备、服务器、控制器、客户端的数量可扩展。当客户端130需要从服务器集群110中下载文件时,步骤如下:当b11)当客户端130请求下载文件时,筛选具有所述文件的服务器;b12)从步骤b11)的筛选结果中,筛选负载低于阈值的服务器;b13)从步骤b12)的筛选结果中,选取与客户端130之间链路开销最小的服务器。当客户端130需要从服务器集群110中上传文件时,步骤如下:当b21)客户端130请求上传文件时,筛选具有上传文件权限的服务器;b22)从步骤b21)的筛选结果中,筛选负载低于阈值的服务器;b23)从步骤b23)的筛选结果中,选取与客户端之间链路开销最小的服务器。所述链路开销等于一个恒定值除以链路速率。在本实施例一中,步骤b11、b12和b13,三个步骤之间的顺序不限制,可任意调换。步骤b21、b22和b23,三个步骤之间的顺序不限制,可任意调换。在本实施例中,负载阈值优选为90%。在本实施中,链路开销最小意味着各段链路开销总和最小。本发明的实施例二,一种基于SDN架构的文件传输方法,包括:a)获取服务器集群信息;b)当客户端请求上传或下载文件时,从服务器集群中选取一个服务器;c)所述选取的服务器与所述客户端建立连接;d)所述选取的服务器与所述客户端进行文件传输。当所述客户端请求与服务器集群进行文件传输时,控制器从服务器集群中选取一个服务器,选取的服务器通过所述网络设备与所述客户端建立连接并传输文件。步骤b)当客户端请求下载文件时,控制器选取服务器的策略包括:b11)当客户端请求下载文件时,控制器筛选具有所述文件的服务器。如果一个或多个服务器有所述文件,则筛选出拥有所述文件的服务器并执行步骤b12);如果没有所述文件,拒绝客户端请求,并告知客户端不存在该文件,并结束;b12)从步骤b11)的筛选结果中,控制器筛选负载低于阈值的服务器。如果部分服务器负载低于阈值时,控制器筛选出负载低于阈值的服务器,并执行步骤b13);当所有服务器负载都高于阈值时,拒绝客户端请求,并告知控制器此时服务器正忙,并结束;b13)从步骤b12)的筛选结果中,控制器选取与客户端之间链路开销最小的服务器。当客户端请求上传文件时,控制器选取服务器的策略包括:b21)当客户端请求上传文件时,控制器筛选具有上传文件权限的服务器,并执行步骤b22)。b22)从步骤b21)的筛选结果中,控制器筛选负载低于阈值的服务器。当部分服务器负载低于阈值时,控制器筛选出负载低于阈值的服务器,并执行步骤b23);当所有服务器负载都高于阈值时,拒绝客户端请求,告知控制器此时服务器正忙,并结束;b23)从步骤b22)的筛选结果中,控制器选取与客户端之间链路开销最小的服务器。在本实施例中,步骤b11、b12和b13,三个步骤之间的顺序不限制,可任意调换。步骤b21、b22和b23,三个步骤之间的顺序不限制,可任意调换。在本实施例中,负载阈值优选为90%。在本实施中,链路开销最小意味着各段链路开销总和最小。所述链路开销等于一个恒定值除以链路速率。假如恒定值选择100G,则链路开销等于100G/链路速率,具体计算实例如下表所示链路速率计算公式链路开销100G100G/100G=1110G100G/10G=10101G100G/1G=100100100M100G/100M=1000100010M100G/10M=1000010000结合图3说明本实施例的完整步骤,控制器先获取服务器集群信息,在本实施例中,服务器集群每隔一段时间向控制器上报集群信息,控制器收到服务器集群信息并更新控制器存储模块中的服务器集群信息。服务器集群信息包括全网拓扑结构、服务器负载、文件权限、文件内容、链路开销等当客户端请求上传文件时,筛选出具有所述文件的服务器;如果客户端请 求下载文件时,筛选具有上传文件权限的服务器。在此基础上,再筛选出负载低于阈值的服务器。接着,从负载低于阈值的服务器中,选取与客户端之间链路开销最小的服务器。此处的服务器筛选步骤可调整。所述选取的服务器与客户端建立连接,并传输文件。实施例一的文件传输系统可应用于基于TFTP协议的文件传输。具体实施中,构建一个类似于实施例一的文件传输系统,相应的,服务器集群指定为TFTP服务器集群,而客户端指定为TFTP客户端,系统的其它组成部分与实施例一相同。同样的,实施例二的文件传输方法同样可应用于基于TFTP协议的文件传输。具体实施与实施例二类似,只是服务器集群指定为TFTP服务器集群,而客户端指定为TFTP客户端,其它步骤与实施例二相同。如图4所示,TFTP服务器集群向控制器上报TFTP服务器集群信息。当TFTP客户端请求上传文件时,筛选出具有所述文件的服务器;如果TFTP客户端请求下载文件时,筛选具有上传文件权限的服务器。在此基础上,再筛选出负载低于阈值的服务器。接着,从负载低于阈值的服务器中,选取与客户端之间链路开销最小的服务器。此处的服务器筛选步骤可调整。所述选取的服务器与客户端建立连接,并传输文件。传统TFTP是一个很小且易于实现的文件传送协议。TFTP只支持文件传输,没有一个庞大的命令集。如果TFTP服务器过忙,数据分组报文将被重传,甚至导致文件传输失败。若基于本发明的文件传输系统和文件传输方法,TFTP服务器采用集群的形式,在系统初始化的时候,上报TFTP服务器集群信息。当TFTP客户端请求上传或下载文件的时候,控制器基于TFTP服务器的负载情况,链路开销等因素,告知客户端合适的TFTP服务器。最后TFTP客户端和此服务器建立连接,进行文件传输。可以防止某台TFTP服务器过载。以上仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3