一种基于sdn网络的tcp连接复用方法

文档序号:10660974阅读:363来源:国知局
一种基于sdn网络的tcp连接复用方法
【专利摘要】本发明公开了一种基于SDN网络的TCP连接复用方法,通过SDN控制器将前端多个客户端的HTTP请求复用到SDN交换机与服务器建立的一个TCP连接上,由SDN控制器进行统一的TCP连接复用技术管理与配置。包括步骤:SDN控制器设置有TCP连接表,所述TCP连接表包含若干条TCP连接信息;所述客户端发送与所述服务器建立TCP连接的请求;所述SDN控制器在所述TCP连接表中查询并获取匹配TCP连接;使用所述匹配TCP连接建立所述客户端与所述服务器之间的TCP连接。本发明通过在SDN网络中实现TCP连接复用,摒弃传统网络中分散管理负载均衡设备而带来的复杂性,配置简单灵活,实现高效集中管理、提高网络运行效率。
【专利说明】
一种基于SDN网络的TCP连接复用方法
技术领域
[0001 ] 本发明涉及软件定义网络(Software Defined Network,SDN)技术领域,尤其涉及一种基于SDN网络的TCP连接复用方法。
【背景技术】
[0002]在传统互联网架构中,客户端与服务器之间要建立HTTP连接,基本的处理方法是,客户端在发送HTTP请求之前需要先与服务器进行TCP三次握手,建立TCP连接,然后发送HTTP请求。服务器收到HTTP请求后进行处理,并将处理的结果发送回客户端,然后客户端和服务器互相发送FIN并在收到FIN的ACK确认后关闭连接,一个完整的HTTP请求响应结束。
[0003]随着技术发展,出现了基于传统互联网络的TCP连接复用技术。如图1所示,在客户端(如:Cl ientA)与负载均衡设备之间进行三次握手并发送HTTP请求;负载均衡设备收到请求后,会检测服务器是否存在空闲的长连接,如果不存在,服务器将建立一个新连接。当HTTP请求响应完成后,客户端则与负载均衡设备协商关闭连接,而负载均衡则保持与服务器之间的这个连接。当有其它客户端(如:ClientB)需要发送HTTP请求时,负载均衡设备会直接向与服务器之间保持的这个空闲连接发送HTTP请求,从而实现TCP连接复用。在这种实现方式中,负载均衡设备分散设置于网络中,需要分别进行配置管理。
[0004]至2006年,软件定义网络兴起,这种新型网络创新架构是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制。SDN将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户可以自定义任何想实现的网络路由和传输规则策略,从而更加灵活和智能。SDN具备的灵活性和敏捷性更能够适应互联网/移动互联网瞬息万变的业务环境,因此,近年来SDN这一下一代互联网关键技术蓬勃发展,它推动了未来互联网技术创新。包括HP、IBM、Cisco、NEC以及国内的华为、H3C、中兴等传统网络设备制造商都已纷纷加入到SDN及OpenFlow的阵营,同时有一些支持OpenFlow的网络硬件设备已经面世。
[0005]基于SDN实现数据通信成为趋势,SDN与OpenFlow的相关规范与标准持续演进,众多基于传统互联网络实现的功能需要针对SDN架构重新设计实现,因此基于SDN的TCP连接复用技术成为一个亟待解决的课题。同时,由于SDN将网络设备的控制权分离出来,由控制器集中管理,因此,可以通过SDN控制器集中配置管理TCP连接复用技术所需配置项,摒弃了传统网络中TCP连接复用技术需要分散管理负载均衡设备而带来的复杂性,配置简单灵活,实现高效集中管理、提高网络运行效率。

【发明内容】

[0006]本发明的目的在于提供一种基于SDN网络的TCP连接复用方法,以实现在SDN网络中运用TCP连接复用,通过控制器将前端多个客户的HTTP请求复用到SDN交换机与服务器建立的一个TCP连接上,由控制器进行统一的TCP连接复用技术管理与配置。摒弃传统网络中分散管理负载均衡设备而带来的复杂性,配置简单灵活,实现高效集中管理、提高网络运行效率。
[0007]本发明提供的一种基于SDN网络的TCP连接复用方法,基于SDN网络利用已有TCP连接建立客户端与服务器之间的TCP连接,包括步骤:
[0008]当客户端发送与服务器建立TCP连接的请求消息后,SDN控制器查询设置于SDN控制器上的TCP连接表,该TCP连接表包含若干条TCP连接信息;
[0009]获取查询到的匹配TCP连接;
[0010]使用匹配的TCP连接建立客户端与服务器之间的TCP连接。
[0011 ] 优选的,TCP连接表包含SDN交换机的标识IP地址和/或Mac地址。
[0012]优选的,TCP连接表中记录的TCP连接信息数据至少包含服务器的IP地址、TCP连接信息的空闲时间以及TCP连接的当前使用状态。
[0013]根据本发明的一优选实施例,SDN控制器中设有TCP连接的空闲时间参考值,当TCP连接表中TCP连接信息的空闲时间大于参考值时,SDN控制器执行一 TCP连接老化删除动作。
[0014]根据本发明的一优选实施例,还包括SDN交换机向SDN控制器上报其私有信息的步骤,私有信息含SDN交换机标识信息。
[0015]优选的,SDN交换机使用可扩展报文Experimenter向SDN控制器上报其私有信息,Experimenter报文的Experimenter字段设置为255 ,Experimenter Type字段设置为I,Exper imenter报文私有字段存储SDN交换机私有信息。
[0016]优选的,在TCP连接表中查询匹配TCP连接信息时,使用服务器的IP地址和/SPortId作为查询关键字。
[0017]根据本发明的一优选实施例,还包括步骤:
[0018]客户端与服务器之间数据传输结束后,SDN控制器保留SDN交换机与服务器之间的TCP连接;
[0019]在TCP连接表中将保留的TCP连接状态标记为空闲。
[0020]根据本发明的一优选实施例,还包括TCP连接老化删除步骤:
[0021 ]判断所述TCP连接表中各TCP连接信息的连接空闲时间是否超时;
[0022]如果超时,关闭SDN交换机与服务器之间的超时TCP连接;
[0023]将TCP连接表中的超时TCP连接信息删除。
[0024]根据本发明的另一优选实施例,在SDN控制器根据客户端发出的请求消息查询TCP连接表之后,如果TCP连接表中存在匹配的TCP连接,并且匹配的TCP连接空闲,则使用本发明提出的TCP连接复用方法,复用匹配的TCP连接;如果TCP连接表中不存在匹配的TCP连接,或者匹配的TCP连接目前正在使用,则执行如下步骤:
[0025]SDN控制器建立新TCP连接;
[0026]SDN控制器使用新TCP连接为客户端与服务器之间建立TCP连接
[0027]SDN控制器在TCP连接表中增加新TCP连接,并将状态设置为使用中。
[0028]通过以上解决方案,本发明实现在SDN网络中运用TCP连接复用,摒弃传统网络中分散管理负载均衡设备而带来的复杂性,配置简单灵活,实现高效集中管理、提高网络运行效率。
【附图说明】
[0029]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1是本发明的现有技术流程不意图;
[0031]图2是本发明的工作原理网络示意图;
[0032]图3是本发明的第一实施例示意图;
[0033]图4是本发明的第二实施例流程示意图;
[0034]图5是本发明的TCP连接查询操作流程示意图;
[0035]图6是本发明的Experimenter报文示意图;
[0036]图7是本发明的TCP连接断开操作流程示意图;
[0037]图8是本发明的TCP连接老化删除流程示意图。
[0038]附图标号说明:
[0039]SDN控制器10、 SDN交换机20、服务器30、
[0040]客户端40、 Exper imenter报文私有字段50、 TCP连接表60。
【具体实施方式】
[0041]下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。显而易见地,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0042]为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的部分结构示意,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0043]本发明的实施例提供了一种基于SDN网络的TCP连接复用方法,以实现在SDN网络中运用TCP连接复用,摒弃传统网络中分散管理负载均衡设备而带来的复杂性,配置简单灵活,实现高效集中管理、提高网络运行效率。
[0044]结合图2所示,提出本发明第一实施例,该发明实施例基于SDN网络。SDN网络包括SDN控制器10及SDN交换机20,SDN控制器10负责生成及下发数据流表,SDN交换机20依据流表进行数据转发。客户端40通过SDN交换机20与服务器30建立TCP连接。此处,为叙述上的简便,SDN交换机20为实现数据转发功能的互联网构件统称,它可以是单一 SDN交换机、多个SDN交换机,或者可实现SDN交换机数据转发功能的互联网构件组合。
[0045]结合图3所示,在该发明实施例中,SDN控制器10中设置有TCP连接表60,TCP连接表60中记录SDN交换机20与若干服务器30之间的TCP连接信息。进一步的,TCP连接表60包含SDN交换机20标识,SDN交换机20与TCP连接表60相对应。
[0046]当客户端40向SDN交换机20发送与服务器30建立TCP连接的请求时,SDN交换机20在TCP连接表60中查找匹配连接信息,查找到可用匹配连接后,SDN控制器10使用该匹配连接建立客户端40与服务器30之间的TCP连接。
[0047]TCP连接表60中的TCP连接信息具有使用状态标识“空闲”或“使用”,“空闲”状态表示该TCP连接目前没有被使用,可以用于进行新的数据传输。“使用”状态表示该TCP连接目前正在被使用,无法进行新的数据传输。
[0048]进一步的,TCP连接表60中可使用SDN交换机的Mac地址和/或IP地址作为SDN交换机20标识。TCP连接表60中记录的TCP连接信息中包含服务器30的IP地址、TCP连接信息的空闲时间以及TCP连接的当前使用状态。
[0049]为进一步阐述本发明的技术方案,现提出本发明第二实施例。结合图4、图5所示,SDN控制器中设有TCP连接的空闲时间参考值,当TCP连接表中TCP连接信息的空闲时间大于参考值时,则判定为TCP连接空闲超时。
[0050]本发明第二实施例包括如下步骤。
[0051 ] 步骤S2,SDN交换机20向SDN控制器10上报自身的Mac地址、IP地址等私有信息。
[0052]步骤S3,客户端40向SDN交换机20发送与服务器30建立TCP连接的请求。
[0053]步骤S4,SDN交换机20分析接收到的请求报文信息,查询流表,并从流表中获取转发规则。
[0054]步骤S5,查询TCP连接表60,根据关键字查找匹配的连接。
[0055]步骤S6,判断匹配的连接的使用状态。
[0056]步骤S7,当匹配连接的使用状态为“空闲”时,SDN控制器使用该匹配连接建立客户端40与服务器30之间的TCP连接。
[0057]进一步的,本发明第二实施例还可以包括步骤S41、S42。
[0058]步骤S41,在步骤S4中SDN交换机20查询流表时,如果流表中无匹配路由信息,SDN交换机20将客户端40的请求报文上报SDN控制器10,SDN控制器10分析客户端40的请求报文后,新增转发规则。
[0059]步骤S42,SDN控制器10将更新后的流表下发SDN交换机20,SDN交换机20从流表中获取转发规则。
[0060]进一步的,本发明第二实施例在SDN控制器根据客户端请求消息查询TCP连接表之后,还包括步骤38、39、310。
[0061 ] 步骤S8,当步骤S5中查询TCP连接表60无匹配的连接时;或者步骤S6中匹配连接的使用状态为“使用”时,SDN控制器1向服务器30发起建立新TCP连接请求。
[0062]步骤S9,SDN控制器10使用该TCP新连接为客户端40与服务器30之间的建立TCP连接。
[0063]步骤SlO,SDN控制器10在TCP连接表60中增加该TCP新连接信息,并将使用状态设置为“使用”。
[0064]进一步的,结合图6所示,步骤S2中,SDN交换机20使用可扩展报文Experimenter向SDN控制器1上报SDN交换机私有信息。Experimen ter报文的Ver si on、Type、Length、Transact1n Id字段为SDN规范统一字段,具实设置;Experimenter报文的Experimenter字段设置为255,数值255需要向开放网络基金会(Open Networking Foundat1n,0NF)组织申请。Exper imenter Type字段设置为I,表示由SDN交换机20向SDN控制器1上报数据。Experimenter报文私有字段50用于存储SDN交换机20的私有信息,含Mac地址、IP地址、PortId等标识信息。
[0065]进一步的,步骤S5中查询TCP连接表60前,首先查询SDN控制器10上是否有TCP连接表60,如果不存在,则创建TCP连接表60。
[0066]进一步的,步骤S5中查询TCP连接表60时,使用服务器30的IP地址和/SPort Id作为查询关键字,查找匹配的TCP连接信息。
[0067]结合图7、图8所示,本发明第二实施例还可以包括如下步骤。
[0068]步骤S13,客户端40与服务器30之间数据传输结束后,客户端40发送TCP连接关闭请求报文,SDN控制器10解析TCP连接关闭请求报文。
[0069]步骤S14,SDN控制器10关闭客户端40与SDN交换机20之间的TCP连接,保留SDN交换机20与服务器30之间的TCP连接。
[0070]步骤S15,在TCP连接表60中,将步骤S14中保留的SDN交换机20与服务器30之间的TCP连接使用状态更改为“空闲”。可选的,可根据关键字在TCP连接表60中查询步骤S14中保留的SDN交换机20与服务器30之间的TCP连接,将该TCP连接信息使用状态更改为“空闲”。[0071 ]进一步的,本实施例还可以包括TCP连接老化删除步骤。根据SDN控制器设置的TCP连接的空闲时间参考值,判断TCP连接表60中“空闲”状态的TCP连接信息是否超时,如果超时,关闭SDN交换机20与服务器30之间的TCP连接,同时将TCP连接表中的匹配TCP连接信息删除。
[0072]以上,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
【主权项】
1.一种基于SDN网络的TCP连接复用方法,其特征在于:在所述SDN网络中,一SDN交换机与一服务器之间存在一TCP连接,当所述TCP连接使用状态为空闲,同时一客户端向所述SDN交换机发起与所述服务器之间建立TCP连接的请求,则所述SDN控制器复用所述空闲TCP连接,该TCP连接复用的方法包括步骤: 当所述客户端发送与所述服务器建立TCP连接的请求消息后,所述SDN控制器查询设置于所述SDN控制器上的TCP连接表,所述TCP连接表包含若干条所述TCP连接信息; 获取查询到的匹配TCP连接; 使用所述匹配TCP连接建立所述客户端与所述服务器之间的TCP连接。2.如权利要求1所述的一种基于SDN网络的TCP连接复用方法,其特征在于,所述TCP连接表包含SDN交换机的标识IP地址和/或Mac地址。3.如权利要求1所述的一种基于SDN网络的TCP连接复用方法,其特征在于,所述TCP连接表中记录的所述TCP连接信息至少包含所述服务器的IP地址、所述TCP连接的空闲时间以及所述TCP连接的当前使用状态。4.如权利要求3所述的一种基于SDN网络的TCP连接复用方法,其特征在于,所述SDN控制器中设有TCP连接的空闲时间参考值,当所述TCP连接表中所述TCP连接信息的空闲时间大于所述参考值时,所述SDN控制器执行一 TCP连接老化删除动作。5.如权利要求2所述的一种基于SDN网络的TCP连接复用方法,其特征在于,还包括所述SDN交换机向所述SDN控制器上报其私有信息的步骤,所述私有信息含SDN交换机标识信息。6.如权利要求5所述的一种基于SDN网络的TCP连接复用方法,其特征在于,所述SDN交换机使用可扩展报文Experimenter向所述SDN控制器上报其私有信息,Experimenter报文的Experimenter字段设置为255 ,Experimenter Type字段设置为I ,Experimenter报文私有字段存储所述SDN交换机私有信息。7.如权利要求1所述的一种基于SDN网络的TCP连接复用方法,其特征在于,在所述TCP连接表中查询所述匹配的TCP连接时,使用所述服务器的IP地址和/SPort Id作为查询关键字。8.如权利要求1所述的一种基于SDN网络的TCP连接复用方法,其特征在于,还包括步骤: 所述客户端与所述服务器之间数据传输结束后,所述SDN控制器保留所述SDN交换机与所述服务器之间的TCP连接; 在所述TCP连接表中将所述保留的TCP连接状态标记为空闲。9.如权利要求1所述的一种基于SDN网络的TCP连接复用方法,其特征在于,还包括TCP连接老化删除步骤: 判断所述TCP连接表中各TCP连接信息的连接空闲时间是否超时; 如果超时,关闭所述SDN交换机与所述服务器之间的超时TCP连接; 将所述TCP连接表中的所述超时TCP连接删除。10.—种基于SDN网络的TCP连接方法,其特征在于,在所述SDN控制器根据所述客户端发出的TCP连接请求消息查询所述TCP连接表之后,如果所述TCP连接表中存在所述匹配的TCP连接,并且所述匹配的TCP连接空闲,则使用如权利要求1所述的一种基于SDN网络的TCP连接复用方法,复用所述匹配的TCP连接;如果所述TCP连接表中不存在所述匹配的TCP连接,或者所述匹配的TCP连接目前正在使用,执行如下步骤: 所述SDN控制器建立新TCP连接; 所述SDN控制器使用所述新TCP连接为所述客户端与所述服务器之间建立TCP连接 所述SDN控制器在所述TCP连接表中增加所述新TCP连接,并将状态设置为使用中。
【文档编号】H04L29/08GK106027641SQ201610333969
【公开日】2016年10月12日
【申请日】2016年5月19日
【发明人】翟跃
【申请人】上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1