CN106326308B - 一种基于sdn的网内重复数据删除方法及系统 - Google Patents
一种基于sdn的网内重复数据删除方法及系统 Download PDFInfo
- Publication number
- CN106326308B CN106326308B CN201510388084.5A CN201510388084A CN106326308B CN 106326308 B CN106326308 B CN 106326308B CN 201510388084 A CN201510388084 A CN 201510388084A CN 106326308 B CN106326308 B CN 106326308B
- Authority
- CN
- China
- Prior art keywords
- file
- packet
- sdn controller
- interchanger
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于SDN的网内重复数据删除方法及系统,属于计算机网络和存储技术领域。本发明充分利用SDN控制转发分离、可扩展性、可编程等优点,以及重复数据删除技术在减少存储成本、网络开销方面的优势,实现了在网络内部的冗余消除服务,不仅可以减少目的端的存储开销,同时可以极大的减轻网络链路负载,减小用户的响应时间,为实现流量工程目标提供了更大的灵活性,是源端去重和目的端去重的折衷。SDN控制器通过openflow协议和底层的openflow交换机进行通信,控制数据转发;保存网络中传输的文件指纹信息,从而控制数据的去重。为了充分利用局部性原理,减小SDN控制器和交换机之间的通信开销,利用交换机上缓存的文件信息进行初步的冗余消除。
Description
技术领域
本发明属于计算机网络和存储技术领域,更具体地,涉及一种基于SDN的网内重复数据删除方法及系统。
背景技术
随着信息化时代数据的爆炸式增长,大量重复数据会出现在信息的处理、通信和存储中,并可能通过互联网链路传输。特别是在使用云备份和云共享服务的过程中,会上传大量的重复数据,影响用户体验,增加网络负载,降低存储系统的存储效率等,所以就需要采用重复数据删除技术。数据去重技术是一种无损的数据压缩技术,作为一种有效的技术被广泛接受,用来降低数据的传输和存储开销。根据重复数据的删除地点可以分为源端去重(Source Deduplication)和目的端去重(Destination Deduplication)。源端去重是指数据在开始传送之前,在数据的发送端先查询服务器端判断数据是否重复,重复数据不参与传输和存储,这种方式适合于低带宽网络环境下的系统。而目的端去重则是在数据的接收端和存储端进行重复数据查找和删除的操作,因此需要把全部的数据传输到服务器端,数据去重所引入的开销也全部集中在目的端。软件定义网络(Software Defined Network,以下简称SDN)技术的出现,增加了对于整个网络控制和管理的灵活性。图1所示为现有技术的SDN基本架构图,其中Switch是支持openflow协议的交换机,通过openflow协议与SDN控制器进行通信,从而在交换机中安装流表,客户端和服务器端的通信数据包就是根据流表中的规则进行转发,SDN控制器上面构建的各种应用程序可以进行网络的管理。而且SDN控制器具有网络拓扑结构和内容感知的智能, 这就使得其可以在网内进行重复数据的删除。
现有的重复数据删除方法存在以下问题,虽然源端去重也是通过查询服务器来决定是否传输整个文件,但是这种方法的传输时延很大,要经过很多的广域网。而目的端去重却是将整个文件传输到服务器端,然后进行重复检测,显然这种方法大大的消耗了网络带宽资源。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种基于SDN的网内重复数据删除方法及系统,其目的在于消除网络传输中出现的大量重复文件,减轻网络链路负载,提高网络性能,提高用户响应时间,具有良好的可扩展性和灵活性。
为实现上述目的,按照本发明的一个方面,提供一种基于SDN的网内重复数据删除方法,包括以下步骤:
步骤1客户端构造第一个UDP数据包与服务器通信,所述UDP数据包中包含待上传文件的指纹、文件名、文件大小、目的IP以及是否重删标志,然后等待接收控制命令,决定是否继续上传整个待上传文件内容;
步骤2openflow交换机在收到所述UDP数据包时进行流表匹配,如果匹配失败,则通过openflow协议的Packet-In消息上传至SDN控制器,然后执行步骤4,否则执行步骤3;
步骤3在openflow交换机缓存中进行所述待上传文件的指纹信息匹配,查找文件是否存在,如果文件存在则执行步骤5,否则将所述UDP数据包通过Packet-In消息发送给所述SDN控制器中进行全局的文件去重,然后执行步骤4;
步骤4所述SDN控制器根据所述openflow交换机发送来的Packet-In消息,判断其发送原因,如果是因为流表匹配失败,则通过流表更新消息将转发策略下发到所述openflow交换机;如果是因为流表匹配成功而文件缓存不命中,则查找所述SDN控制器中维护的全局文件信息,通过文件指 纹查找文件是否存在,是则发送终止传输命令至所述客户端,否则发送继续传输命令至所述客户端;
步骤5在所述openflow交换机文件缓存中命中或者在所述SDN控制器全局文件中查找到文件存在,则仅将该文件的第一个UDP数据包发送到服务器,并且响应所述客户端停止传输的控制命令,否则发送给所述客户端继续传输的控制命令;
步骤6服务器对收到的UDP数据包进行解析,构建出完整的文件并存储。
按照本发明的另一方面,还提供一种基于SDN的网内重复数据删除系统,包括:文件上传模块、SDN控制器、openflow交换机以及文件存储管理模块,其中:
所述文件上传模块,用于客户端在进行文件上传时,计算文件的指纹,构造相应的UDP数据包进行发送,其中文件的第一个UDP数据包包含该文件的指纹、文件大小、文件名、块ID、目的IP、是否重复标志;
所述SDN控制器包括:
路由模块,用于根据网络的拓扑信息计算路由,将转发策略下发给底层的交换机;以及
重复文件查找模块,用于在所述SDN控制器中进行全局的文件查找,对于文件传输服务,在openflow交换机的文件缓存不命中的情况下,会通过Packet-In消息通知所述SDN控制器做进一步的重复检测,如果存在,则通知客户端停止文件上传,只需要将第一个UDP数据包发送给目的端服务器,否则更新所述SDN控制器中维护的全局文件缩略信息;
所述openflow交换机包括:
流表匹配模块,用于控制软件定义网络中交换机数据的转发,到达交换机的数据包首先会经过openflow流表的匹配处理,根据流表中的动作执行相应的操作,如果流表匹配失败会通过openflow Packet-In消息通知所 述SDN控制器;以及
文件缓存模块,用于openflow交换机中对重复文件的删除,每次传输文件时,会先在openflow交换机文件缓存中进行重复文件的查找,如果存在,则无需传输后续的文件内容,否则就需要询问所述SDN控制器做进一步的判断;
所述文件存储管理模块,用于接收并存储上传的文件,用文件的指纹作为所述文件的索引,存储文件,并保证文件的完整性。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1、SDN的技术和理念使得可以通过编程,使网络成为应用感知的。本发明充分利用了SDN的集中控制、可编程性等优势,使网络感知冗余,在网络中判断文件是否重复,减少不必要的传输开销,易于调控和部署;
2、在同一个局域网中,文件重复的可能性很大,交换机中的文件缓存利用局部性原理,能极大的加快文件是否重复的判断,减少和SDN控制器的通信开销;
3、本发明相当于源端去重和目的端去重的折衷,与源端去重相比可以减小客户端的响应时间,而且更容易实现全局去重;与目的端去重相比,可以减少网络的开销。
附图说明
图1为现有技术的SDN基本架构图;
图2为本发明基于SDN的网内重复数据删除方法的流程图;
图3为本发明客户端文件上传流程图;
图4为本发明交换机文件缓存匹配处理过程的细化流程图;
图5为本发明SDN控制器处理流程图;
图6为本发明服务器端文件接收流程图;
图7为本发明基于SDN的网内重复数据删除系统的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明利用SDN的可编程、灵活、可扩展等优点,在网络中对重复的文件进行删除,改善网络性能,提高客户端的响应时间,减少服务器的存储开销。
图2所示为本发明基于SDN的网内重复数据删除方法的流程图,包括以下步骤:
步骤1客户端构造第一个用户数据报协议(User Datagram Protocol,以下简称UDP)数据包与服务器通信,该UDP数据包中包含待上传文件的指纹、文件名、文件大小、目的IP、是否重删标志等,然后等待接收控制命令,从而决定是否继续上传整个文件内容。客户端收到来自交换机或SDN控制器的控制命令后,如果是停止传输的控制命令,则说明文件重复,就停止传输,如果是继续传输的控制命令,则继续传输文件内容。图3所示为本发明客户端文件上传流程图,具体包括以下子步骤:
(1-1)客户端在进行文件上传时,首先利用例如SHA-1哈希算法(或者采用MD5等其它消息摘要算法)计算文件的指纹(fingerprint);
(1-2)客户端构造并发送第一个UDP数据包,该UDP数据包中包含的字段有该文件的指纹、文件名、文件大小、目的IP、是否重删标志等元数据信息,该第一个UDP数据包总是会传输到服务器端,然后等待接收来自openflow交换机或者SDN控制器发来的控制命令,根据控制命令可以得知文件是否重复,如果文件重复,则执行步骤(1-3),否则执行步骤(1-4);
(1-3)文件已存在于目的服务器中,文件的元数据已经通过第一个UDP 数据包传送给服务器,后续文件数据块无需传输,文件传输完成;
(1-4)客户端传输整个文件内容到目的服务器,文件传输完成。
步骤2交换机在收到一个UDP数据包时首先进行流表匹配,如果匹配失败,说明相应的流表规则不存在,就会通过openflow协议的Packet-In消息上传至SDN控制器,然后执行步骤4,否则执行步骤3。具体包括以下子步骤:
(2-1)交换机在收到数据包后,从中解析出源端口、目的端口、源IP地址、目的IP地址、协议类型,交换机进出端口等信息;
(2-2)进行openflow流表的匹配,在openflow协议中流表项的字段包括源端口、目的端口、源IP、目的IP、协议类型、交换机进出端口等字段,如果流表匹配成功,说明SDN控制器已经为这条流的传输建立好了传输路径,下发了对应的转发表到底层的交换机中,执行步骤3,否则发送Packet-In消息到SDN控制器,设置发生Packet-In的原因是流表匹配失败,然后执行步骤4;
(2-3)交换机在收到来自SDN控制的流表更新(Flow-Mod)消息后,更新流表。
步骤3在交换机缓存中进行文件指纹信息匹配,查找文件是否存在(即命中),如果文件存在,则执行步骤5,否则将该UDP数据包通过Packet-In消息发送给SDN控制器中进行全局的文件去重,然后执行步骤4。图4所示为本发明交换机文件缓存匹配处理过程的细化流程图所示,具体包括以下子步骤:
(3-1)从数据包中解析出源端口、目的端口、源IP地址、目的IP地址、协议类型,判断是否是文件传输服务,是则执行步骤(3-2),否则执行步骤(3-8);
(3-2)判断该数据包是否是文件传输的第一个UDP数据包,如果是则执行步骤(3-3),否则执行步骤(3-8);
(3-3)从该文件传输的第一个UDP数据包中解析出文件指纹和目的IP地址,在交换机的本地文件缓存中查找文件是否已经存在。如果查找成功(即命中),说明相同的文件已经存在于目的端服务器中,执行步骤(3-5),否则执行步骤(3-4);
(3-4)将该UDP数据包(即文件传输的第一个UDP数据包)构造成一个openflowPacket-In消息告知SDN控制器,并且设置发生Packet-In的原因是文件缓存未命中,同时交换机会将该文件信息更新到本地文件缓存中,具体包括以下子步骤:
(3-4-1)如果正在传输的文件在交换机的本地文件缓存中没有命中,则会把该文件传输的第一个UDP数据包的前128字节包装在openflow Packet-In消息中,设置其中的reason字段为文件缓存未命中;
(3-4-2)从该文件传输的第一个UDP数据包中解析出文件的指纹fp和目的端主机IP,然后将<fp,IP>更新到该交换机的本地文件缓存中;
(3-4-3)如果文件缓存表满,采用LRU(Least Recently Used)缓存替换算法进行对文件缓存表更新;
(3-5)判断文件是否重复,在交换机缓存中命中或者在SDN控制器中查找成功表示文件重复(即已经存在于目的服务器中),则执行步骤(3-6),否则文件需要传输到目的服务器,执行步骤(3-7);
(3-6)发送停止传输的控制命令到客户端,将数据包的输入端口作为输出端口,只将包含文件元数据信息的该数据包发给目的主机,执行步骤(3-10);
(3-7)发送继续传输的控制命令到客户端,将数据包的输入端口作为输出端口,执行步骤(3-10);
(3-8)进行流表匹配。如果openflow交换机流表匹配成功,则执行步骤(3-9),否则发送packet-in消息到SDN控制器,等待流表更新消息;
(3-9)根据openflow交换机流表项的动作(Action)字段,解析出 数据包的输出端口号;
(3-10)根据输出端口号,将数据包从该端口转发。
步骤4SDN控制器根据底层交换机发送上来的Packet-In消息,判断发送Packet-In的原因,如果是因为流表匹配失败,则通过Flow-Mod消息将转发策略下发到底层交换机;否则如果是因为流表匹配成功而文件缓存不命中,则查找SDN控制器中维护的全局的文件信息,通过文件指纹查找文件是否存在,如果存在则返回客户端“终止传输”命令,否则返回客户端“继续传输”命令。图5所示为本发明SDN控制器处理流程图,具体包括以下子步骤:
(4-1)SDN控制器在固定端口(openflow协议中是6633)监听来自openflow交换机的连接请求;
(4-2)在SDN控制器收到底层交换机发送上来的Packet-In消息后,可以从中解析出协议类型以及应用层的信息,使得只针对文件传输服务进行重复数据删除的处理,不会干扰SDN控制器其他的服务和应用;
(4-3)SDN控制器从Packet-In消息中解析出发送Packet-In消息的原因,如果是因为流表匹配失败,则执行步骤(4-4),如果是因为交换机缓存不命中,则执行步骤(4-5);
(4-4)SDN控制器从Packet-In消息中解析出源IP和目的IP,而后根据全局的拓扑信息计算出相应的路由信息,将转发策略构造成流表添加消息(Flow-Mod消息),执行步骤(4-8)。步骤(4-4)具体包括以下子步骤:
(4-4-1)每当一个openflow交换机加入到SDN网络中,都会与SDN控制器握手建立连接,然后SDN控制器通过向交换机发送LLDP(Link Layer Discovery Protocol,链路层发现协议)数据包,进行路径发现;
(4-4-2)SDN控制器根据发现的链路信息,构建全局的网络拓扑;
(4-4-3)当SDN控制器收到Packet-In消息后,从中解析出源MAC地 址和目的MAC地址;
(4-4-4)利用SDN控制器维护的全局网络拓扑图计算出最短路径路由信息;
(4-5)SDN控制器从Packet-In消息中解析出文件的指纹和目的IP,根据维护的全局的文件信息,查找该文件是否存在,如果文件不存在,则执行步骤(4-6),否则执行步骤(4-7);
(4-6)将该文件的指纹和目的IP信息更新到SDN控制器维护的全局文件信息表中,发送继续传输的控制命令至客户端,执行步骤(4-8);
(4-7)设置UDP数据包中的文件重删标志,仅将这第一个UDP数据包发送给目的服务器,发送停止传输的控制命令至客户端,执行步骤(4-8);
(4-8)将Flow-Mod消息下发到交换机中,由交换机做相应的操作。
步骤5进行重复数据删除。在交换机文件缓存中命中或者在SDN控制器全局文件中查找到文件存在,说明相同的文件已经存在于服务器上,则仅将文件的元数据信息(即该第一个UDP数据包)发送到服务器,并且响应客户端停止传输的控制命令,否则发送给客户端继续传输的控制命令。客户端收到来自交换机或SDN控制器的响应消息后,如果是终止传输的控制命令,则说明文件重复,就停止传输,继而达到重复数据删除的目的,如果是继续传输的控制命令,则继续传输文件内容。
步骤6服务器对收到的数据包进行解析,构建出完整的文件并存储。图6所示为本发明服务器端文件接收流程图,具体包括以下子步骤:
(6-1)服务器在固定端口设置监听;
(6-2)在服务器收到UDP数据包之后,解析数据包头部信息;
(6-3)判断是否为该文件传输的第一个数据包,如果是第一个数据包,则执行步骤(6-5),否则说明正在接收客户端上传的文件,执行步骤(6-4);
(6-4)存储该文件的数据块,根据数据块ID和该文件数据块总数判断文件接收是否完成,如果接收完成,则执行步骤(6-7),否则执行步骤 (6-2);
(6-5)由该第一个UDP数据包解析出文件的指纹、文件大小、总块数、块ID、重删标志;
(6-6)判断是否设置了重删标志,是则说明服务器中存在重复文件,文件接收完成,执行步骤(6-7),否则说明需要接收整个文件,执行步骤(6-2);
(6-7)将文件指纹作为索引,构建完整文件并存储。
图7所示为本发明基于SDN的网内重复数据删除系统的结构框图,包括文件上传模块、SDN控制器、openflow交换机以及文件存储管理模块,其中,SDN控制器包括路由模块和重复文件查找模块,openflow交换机包括流表匹配模块和文件缓存模块,其中:
文件上传模块,用于客户端在进行文件上传时,计算文件的指纹,构造相应的UDP数据包进行发送。其中文件的第一个UDP数据包包含该文件的指纹、文件大小、文件名、块ID、目的IP、是否重复标志。在发送完第一个UDP数据包之后,客户端会等待来自交换机或者SDN控制器的控制命令,如果文件不重复则会继续传输整个文件,否则文件重复,停止文件的传输;
路由模块,用于根据网络的拓扑信息计算路由,将转发策略下发给底层的交换机。在软件定义网络中,每当一个支持openflow协议的交换机加入后,都会和SDN控制器握手建立连接,而后通过LLDP得到网络的拓扑结构。当收到Packet-In消息后,从中解析出源端MAC地址和目的端MAC地址,然后计算出最短路径,构造Flow-Mod消息下发给交换机;
重复文件查找模块,用于在SDN控制器中进行全局的文件查找,交换机上的文件信息只是SDN控制器中维护的文件信息的一个子集。对于文件传输服务,在交换机的文件缓存不命中的情况下,会通过Packet-In消息通知SDN控制器做进一步的重复检测,如果存在,则通知文件上传客户端 停止传输,只需要将第一个UDP数据包发送给目的端服务器,否则,更新SDN控制器中维护的全局文件缩略信息;
流表匹配模块,用于控制软件定义网络中交换机数据的转发,到达交换机的数据包首先会经过openflow流表的匹配处理,根据流表中的动作(Action)执行相应的操作,例如发送到控制器、端口转发、广播等;如果流表匹配失败会通过openflow Packet-In消息通知SDN控制器。对于文件传输服务,流表匹配成功之后由文件缓存模块进行文件冗余判断;
文件缓存模块,用于交换机中对重复文件的删除,每次传输文件时,会先在交换机文件缓存中进行重复文件的查找,如果存在,则说明相同的文件以及存在于目的服务器中,无需传输后续的文件内容,否则就需要询问SDN控制器做进一步的判断;此外,文件缓存的空间有限,这里采用LRU(Least Recently Used)进行替换;
文件存储管理模块,用于服务器端接收上传的文件,用文件的指纹作为文件的索引,存储文件,保证文件的完整性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于软件定义网络的网内重复数据删除方法,其特征在于,包括:
步骤1客户端构造第一个UDP数据包与服务器通信,所述第一个UDP数据包中包含待上传文件的指纹、文件名、文件大小、目的IP以及是否重删标志,然后等待接收控制命令,决定是否继续上传整个待上传文件内容;
步骤2openflow交换机在收到所述第一个UDP数据包时进行流表匹配,如果匹配失败,则通过openflow协议的Packet-In消息上传至SDN控制器,然后执行步骤4,否则执行步骤3;
步骤3在openflow交换机缓存中进行所述待上传文件的指纹信息匹配,查找文件是否存在,如果文件存在则执行步骤5,否则将所述第一个UDP数据包通过Packet-In消息发送给所述SDN控制器中进行全局的文件去重,然后执行步骤4;
步骤4所述SDN控制器根据所述openflow交换机发送来的Packet-In消息,判断其发送原因,如果是因为流表匹配失败,则通过流表更新消息将转发策略下发到所述openflow交换机;如果是因为流表匹配成功而文件缓存不命中,则查找所述SDN控制器中维护的全局文件信息,通过文件指纹查找文件是否存在,是则发送终止传输命令至所述客户端,否则发送继续传输命令至所述客户端;
步骤5在所述openflow交换机文件缓存中命中或者在所述SDN控制器全局文件中查找到文件存在,则仅将该文件的第一个UDP数据包发送到服务器,并且响应所述客户端停止传输的控制命令,否则发送给所述客户端继续传输的控制命令;
步骤6服务器对收到的UDP数据包进行解析,构建出完整的文件并存储。
2.如权利要求1所述的方法,其特征在于,所述步骤1包括以下子步骤:
(1-1)所述客户端在进行文件上传时,利用消息摘要算法计算待上传文件的指纹;
(1-2)所述客户端构造并发送所述第一个UDP数据包,然后等待接收来自所述openflow交换机或者所述SDN控制器发来的控制命令,根据所述控制命令可以得知所述待上传文件是否重复,是则执行步骤(1-3),否则执行步骤(1-4);
(1-3)所述待上传文件的元数据已经通过所述第一个UDP数据包传送给服务器,后续文件数据块无需传输,文件传输完成;
(1-4)所述客户端传输整个所述待上传文件内容到目的服务器,文件传输完成。
3.如权利要求1所述的方法,其特征在于,所述步骤2包括以下子步骤:
(2-1)所述openflow交换机在收到所述第一UDP个数据包后,从中解析出源端口、目的端口、源IP地址、目的IP地址、协议类型,交换机进出端口信息;
(2-2)进行openflow流表的匹配,如果流表匹配成功,则执行所述步骤3,否则发送Packet-In消息到所述SDN控制器,设置发生所述Packet-In消息的原因是流表匹配失败,执行所述步骤4;
(2-3)所述openflow交换机在收到来自所述SDN控制的流表更新消息后,更新流表。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述步骤3包括以下子步骤:
(3-1)从UDP数据包中解析出源端口、目的端口、源IP地址、目的IP地址、协议类型,判断是否是文件传输服务,是则执行步骤(3-2),否则执行步骤(3-8);
(3-2)判断该UDP数据包是否是文件传输的第一个UDP数据包,如果是则执行步骤(3-3),否则执行步骤(3-8);
(3-3)从该文件传输的第一个UDP数据包中解析出文件指纹和目的IP,在所述openflow交换机的本地文件缓存中查找该文件是否已经存在,如果存在则执行步骤(3-5),否则执行步骤(3-4);
(3-4)将该文件传输的第一个UDP数据包构造成一个Packet-In消息告知所述SDN控制器,并且设置发生Packet-In消息的原因是文件缓存未命中,同时所述openflow交换机将该文件信息更新到本地文件缓存中;
(3-5)判断该文件是否重复,在所述openflow交换机缓存中命中或者在所述SDN控制器中查找成功表示文件重复,则执行步骤(3-6),否则文件需要传输到目的服务器,执行步骤(3-7);
(3-6)发送停止传输的控制命令到所述客户端,将该文件传输的第一个UDP数据包的输入端口作为输出端口,只将该文件传输的第一个UDP数据包发给目的主机,执行步骤(3-10);
(3-7)发送继续传输的控制命令到所述客户端,将该文件传输的第一个UDP数据包的输入端口作为输出端口,执行步骤(3-10);
(3-8)判断所述openflow交换机流表匹配是否成功,则执行步骤(3-9),否则发送packet-in消息到所述SDN控制器,等待流表更新消息;
(3-9)根据所述openflow交换机流表项的动作字段,解析出数据包的输出端口号;
(3-10)根据所述输出端口号,将第一个UDP数据包从该端口转发。
5.如权利要求4所述的方法,其特征在于,所述步骤(3-4)包括以下子步骤:
(3-4-1)如果正在传输的文件在所述openflow交换机的本地文件缓存中没有命中,则会把该文件传输的第一个UDP数据包的前128字节包装在openflow Packet-In消息中,设置其中的reason字段为文件缓存未命中;
(3-4-2)从该文件传输的第一个UDP数据包中解析出文件的指纹fp和目的IP,然后将<fp,IP>更新到所述openflow交换机的本地文件缓存中;
(3-4-3)如果文件缓存表满,采用LRU缓存替换算法进行对文件缓存表更新。
6.如权利要求1-3中任一项所述的方法,其特征在于,所述步骤4包括以下子步骤:
(4-1)所述SDN控制器在固定端口监听来自所述openflow交换机的连接请求;
(4-2)在所述SDN控制器收到所述openflow交换机发送上来的Packet-In消息后,从中解析出协议类型以及应用层的信息;
(4-3)所述SDN控制器解析出发所送述Packet-In消息的原因,如果是因为流表匹配失败,则执行步骤(4-4),如果是因为交换机缓存不命中,则执行步骤(4-5);
(4-4)所述SDN控制器从所述Packet-In消息中解析出源IP和目的IP,而后根据全局的拓扑信息计算出相应的路由信息,将转发策略构造成流表添加消息,执行步骤(4-8);
(4-5)所述SDN控制器从所述Packet-In消息中解析出文件的指纹和目的IP,根据维护的全局的文件信息,查找该文件是否存在,如果文件不存在,则执行步骤(4-6),否则执行步骤(4-7);
(4-6)将该文件的指纹和目的IP信息更新到所述SDN控制器维护的全局文件信息表中,发送继续传输的控制命令至所述客户端,执行步骤(4-8);
(4-7)设置第一个UDP数据包中的文件重删标志,仅将该UDP数据包发送给目的服务器,发送停止传输的控制命令至客户端,执行步骤(4-8);
(4-8)将所述流表添加消息下发到所述openflow交换机中,由所述openflow交换机做相应的操作。
7.如权利要求6所述的方法,其特征在于,所述步骤(4-4)包括以下子步骤,
(4-4-1)每当一个openflow交换机加入到所述SDN网络中,都会与所述SDN控制器握手建立连接,然后所述SDN控制器通过向该openflow交换机发送链路层发现协议数据包,进行路径发现;
(4-4-2)所述SDN控制器根据发现的链路信息,构建全局的网络拓扑;
(4-4-3)当所述SDN控制器收到所述Packet-In消息后,从中解析出源MAC地址和目的MAC地址;
(4-4-4)利用所述SDN控制器维护的全局网络拓扑图计算出最短路径路由信息。
8.如权利要求1-3中任一项所述的方法,其特征在于,所述步骤6包括以下子步骤:
(6-1)服务器在固定端口设置监听;
(6-2)在所述服务器收到UDP数据包之后,解析该数据包头部信息;
(6-3)判断是否为该文件传输的第一个UDP数据包,如果是则执行步骤(6-5),否则执行步骤(6-4);
(6-4)存储该文件的数据块,根据数据块ID和该文件数据块总数判断文件接收是否完成,如果接收完成,则执行步骤(6-7),否则执行步骤(6-2);
(6-5)由该第一个UDP数据包解析出文件的指纹、文件大小、总块数、块ID、重删标志;
(6-6)判断是否设置了重删标志,是则执行步骤(6-7),否则执行步骤(6-2);
(6-7)将所述文件指纹作为索引,构建完整文件并存储。
9.一种基于软件定义网络的网内重复数据删除系统,其特征在于,包括:文件上传模块、SDN控制器、openflow交换机以及文件存储管理模块,其中:
所述文件上传模块,用于客户端在进行文件上传时,计算文件的指纹,构造相应的第一个UDP数据包进行发送,其中文件的第一个UDP数据包包含该文件的指纹、文件大小、文件名、块ID、目的IP、是否重复标志;
所述SDN控制器包括:
路由模块,用于根据网络的拓扑信息计算路由,将转发策略下发给底层的交换机;以及
重复文件查找模块,用于在所述SDN控制器中进行全局的文件查找,对于文件传输服务,在openflow交换机的文件缓存不命中的情况下,会通过Packet-In消息通知所述SDN控制器做进一步的重复检测,如果存在,则通知客户端停止文件上传,只需要将第一个UDP数据包发送给目的端服务器,否则更新所述SDN控制器中维护的全局文件缩略信息;
所述openflow交换机包括:
流表匹配模块,用于控制软件定义网络中交换机数据的转发,到达交换机的数据包首先会经过openflow流表的匹配处理,根据流表中的动作执行相应的操作,如果流表匹配失败会通过openflow Packet-In消息通知所述SDN控制器;以及
文件缓存模块,用于openflow交换机中对重复文件的删除,每次传输文件时,会先在openflow交换机文件缓存中进行重复文件的查找,如果存在,则无需传输后续的文件内容,否则就需要询问所述SDN控制器做进一步的判断;
所述文件存储管理模块,用于接收并存储上传的文件,用文件的指纹作为所述文件的索引,存储文件,并保证文件的完整性。
10.如权利要求9所述的基于软件定义网络的网内重复数据删除系统,其特征在于,每当一个openflow交换机加入后,都会和所述SDN控制器握手建立连接,而后通过链路层发现协议得到网络的拓扑结构,当收到Packet-In消息后,从中解析出源端MAC地址和目的端MAC地址,然后计算出最短路径,构造流表更新消息下发给openflow交换机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510388084.5A CN106326308B (zh) | 2015-07-03 | 2015-07-03 | 一种基于sdn的网内重复数据删除方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510388084.5A CN106326308B (zh) | 2015-07-03 | 2015-07-03 | 一种基于sdn的网内重复数据删除方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106326308A CN106326308A (zh) | 2017-01-11 |
CN106326308B true CN106326308B (zh) | 2019-06-11 |
Family
ID=57728294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510388084.5A Active CN106326308B (zh) | 2015-07-03 | 2015-07-03 | 一种基于sdn的网内重复数据删除方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326308B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357124B (zh) * | 2015-11-22 | 2018-08-17 | 华中科技大学 | 一种MapReduce带宽优化方法 |
CN109861963B (zh) * | 2017-11-30 | 2022-07-19 | 南京泉峰科技有限公司 | 便携式电源系统及用于该系统的数据传输方法 |
CN108255937B (zh) * | 2017-12-08 | 2020-09-29 | 未鲲(上海)科技服务有限公司 | 基于sdn的资源清理方法、装置、存储介质和计算机设备 |
CN110233798B (zh) | 2018-03-05 | 2021-02-26 | 华为技术有限公司 | 数据处理方法、装置及系统 |
CN108881241B (zh) * | 2018-06-26 | 2020-02-14 | 华中科技大学 | 一种面向软件定义网络的动态源地址验证方法 |
CN113709510A (zh) * | 2021-08-06 | 2021-11-26 | 联想(北京)有限公司 | 高速率数据实时传输方法及装置、设备、存储介质 |
CN115988002B (zh) * | 2023-02-16 | 2023-08-15 | 荣耀终端有限公司 | 一种数据传输方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN103560963A (zh) * | 2013-11-18 | 2014-02-05 | 中国科学院计算机网络信息中心 | 一种OpenFlow流表存储空间压缩方法 |
CN104301129A (zh) * | 2013-07-16 | 2015-01-21 | 上海宽带技术及应用工程研究中心 | 一种软件定义网络中的动态主机配置方法及系统 |
CN104506507A (zh) * | 2014-12-15 | 2015-04-08 | 蓝盾信息安全技术股份有限公司 | 一种sdn网络的蜜网安全防护系统及方法 |
-
2015
- 2015-07-03 CN CN201510388084.5A patent/CN106326308B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301129A (zh) * | 2013-07-16 | 2015-01-21 | 上海宽带技术及应用工程研究中心 | 一种软件定义网络中的动态主机配置方法及系统 |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN103560963A (zh) * | 2013-11-18 | 2014-02-05 | 中国科学院计算机网络信息中心 | 一种OpenFlow流表存储空间压缩方法 |
CN104506507A (zh) * | 2014-12-15 | 2015-04-08 | 蓝盾信息安全技术股份有限公司 | 一种sdn网络的蜜网安全防护系统及方法 |
Non-Patent Citations (3)
Title |
---|
A survey and classification of storage deduplication systems;Paulo J等;《ACM Computing Surveys (CSUR)》;20140531;全文 |
浅谈SDN —软件定义网络与OpenFlow 技术;王明昊;《数字技术与应用》;20130530;全文 |
软件定义网络(SDN)研究进展木;张朝昆 等;《软件学报》;20140819;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106326308A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326308B (zh) | 一种基于sdn的网内重复数据删除方法及系统 | |
US8677011B2 (en) | Load distribution system, load distribution method, apparatuses constituting load distribution system, and program | |
US10284478B2 (en) | Packet processing device, packet processing method and program | |
US8369332B2 (en) | Server-side load balancing using parent-child link aggregation groups | |
US20160269272A1 (en) | Content-based routing method and system | |
CN102685179B (zh) | 模块化透明代理缓存 | |
EP2530899A1 (en) | Method and node for obtaining the content and content network | |
CN103152271B (zh) | 一种基于内容的数据中心网络路由转发方法 | |
US20140019639A1 (en) | Computer system and communication method | |
US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
US10681619B2 (en) | Packet transmission method, device, and communications system | |
CN109347983B (zh) | 一种基于网络编码的命名数据网络中多路径转发方法 | |
JP2003209567A (ja) | パケット交換システム、パケット交換方法、ルーティング装置、パケットデータ及びその生成方法 | |
CN105656788A (zh) | 基于流行度统计的ccn内容缓存方法 | |
CN104506637A (zh) | 解决网络拥挤的缓存方法、系统及url转发服务器 | |
EP2604006A1 (en) | Method and apparatus for packet processing and a preprocessor | |
CN104994152B (zh) | 一种Web协同缓存系统和方法 | |
CN108965479B (zh) | 一种基于内容中心网络的域协同缓存方法及装置 | |
Ascigil et al. | A native content discovery mechanism for the information-centric networks | |
CN108173903B (zh) | 自治系统协作缓存策略在ccn中的应用方法 | |
Nakajima et al. | Color-based cooperative cache and its routing scheme for telco-cdns | |
CN105656786B (zh) | 一种基于快、慢表的路由器查表方法 | |
EP3389240B1 (en) | Method and system for processing cache cluster service | |
KR20140099834A (ko) | 분산형 공유 캐싱 시스템을 위한 적응적 콘텐츠 탐색 방법 및 시스템 | |
JP5935897B2 (ja) | 通信ノード、通信システム、制御装置、パケット転送方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |