发明内容
本发明的主要目的为提供一种UDP会话复用的方法和负载均衡设备,旨在减少负载均衡设备和服务器之间的UDP会话数,减少内存和CPU的消耗,提高负载均衡设备的性能。
本发明提供一种UDP会话复用的方法,包括:
接收客户端发送的请求数据包;
在预置的UDP会话池中取出空闲的服务器端UDP会话,并根据所述服务器端UDP会话对所述请求数据包进行网络地址转换;
将经过网络地址转换后的请求数据包发送至目标服务器。
优选地,在执行所述将经过网络地址转换后的请求数据包发送至目标服务器之后,还包括:
接收目标服务器所返回的应答数据包,将所述应答数据包进行网络地址转换;
将经过网络地址转换后的应答数据包转发至所述客户端。
优选地,在执行所述将经过网络地址转换后的应答数据包转发至所述客户端之后,还包括:
将所述服务器端UDP会话置放在预置的UDP会话池中,以作为空闲的服务器端UDP会话。
优选地,在执行所述在预置的UDP会话池中取出空闲的服务器端UDP会话之前,还包括:
判断预置的UDP会话池中是否存在空闲的服务器端UDP会话;
若否,创建新的服务器端UDP会话,并将其保存在预置的UDP会话池中。
优选地,在执行所述将经过网络地址转换后的请求数据包发送至目标服务器之前,还包括:
采用负载均衡算法,选择目标服务器。
本发明还提供一种负载均衡设备,包括:
接收及选择模块,用于接收客户端发送的请求数据包;
第一地址转换模块,用于在预置的UDP会话池中取出空闲的服务器端UDP会话,并根据所述服务器端UDP会话对所述请求数据包进行网络地址转换;
发送模块,用于将经过网络地址转换后的请求数据包发送至所选择的服务器。
优选地,负载均衡设备还包括:
第二地址转换模块,用于接收目标服务器所返回的应答数据包,将所述应答数据包进行网络地址转换;
转发模块,用于将经过网络地址转换后的应答数据包转发至所述客户端。
优选地,负载均衡设备还包括:
置放模块,用于将所述服务器端UDP会话置放在预置的UDP会话池中,以作为空闲的服务器端UDP会话。
优选地,负载均衡设备还包括:
判断模块,用于判断预置的UDP会话池中是否存在空闲的服务器端UDP会话;
创建及保存模块,用于若否,创建新的服务器端UDP会话,并将其保存在预置的UDP会话池中。
优选地,负载均衡设备还包括:
选择模块,用于采用负载均衡算法,选择目标服务器。
本发明通过在接收到客户端发送的请求数据包后,将请求数据包调度到目标服务器上,然后在预置的UDP会话池中取出空闲的服务器端UDP会话,根据该服务器端UDP会话对请求数据包进行网络地址转换,并将经过网络地址转换后的请求数据包发送至目标服务器。采用这种方法,在很大程度上避免了由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题,从而减少了负载均衡设备和服务器之间的UDP会话数,降低内存和CPU的消耗,并且能够提高负载均衡设备的性能。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明UDP会话复用的方法第一实施例的流程示意图。UDP会话复用的方法包括:
步骤S10,接收客户端发送的请求数据包;
步骤S20,在预置的UDP会话池中取出空闲的服务器端UDP会话,并根据服务器端UDP会话对请求数据包进行网络地址转换;
步骤S30,将经过网络地址转换后的请求数据包发送至目标服务器。
本发明实施例所提供的UDP会话复用的方法,通过负载均衡设备维护一个UDP会话池,该UDP会话池用于存放空闲的服务器端UDP会话。当负载均衡设备对客户端的请求数据包进行调度时,只需要在UDP会话池中取出空闲的服务器端UDP会话,直接使用即可。这就能够避免由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题。
在本实施例中,当负载均衡设备接收到客户端所发送的请求数据包后,对该请求数据包进行调度,即将其调度到目标服务器上。然后,在预置的UDP会话池中取出空闲的服务器端UDP会话,本发明实施例所提出的预置的UDP会话池,其用于存放空闲的服务器端UDP会话,在预置的UDP会话池中所保存的服务器端UDP会话,即为在此之前对客户端所发送的请求数据包调度到服务器上所创建的。
当在UDP会话池中取出空闲的服务器端UDP会话后,即可根据该服务器端UDP会话,对客户端发送的请求数据包进行网络地址转换,即将请求数据包的目的IP地址修改为所调度到的目标服务器的IP地址。最终,将进行了网络地址转换后的请求数据包发送至所选择的目标服务器,这就可以进行客户端与服务器之间的数据传输。
本发明实施例,通过在接收到客户端发送的请求数据包后,将请求数据包调度到目标服务器上,然后在预置的UDP会话池中取出空闲的服务器端UDP会话,根据该服务器端UDP会话对请求数据包进行网络地址转换,并将经过网络地址转换后的请求数据包发送至目标服务器。采用这种方法,在很大程度上避免了由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题,从而减少了负载均衡设备和服务器之间的UDP会话数,降低了内存和CPU的消耗,并且能够提高负载均衡设备的性能。
参照图2,图2为本发明UDP会话复用的方法第二实施例的流程示意图。
在上述实施例的基础上,在执行步骤S30之后,UDP会话复用的方法还包括:
步骤S40,接收目标服务器所返回的应答数据包,将应答数据包进行网络地址转换;
步骤S50,将经过网络地址转换后的应答数据包转发至客户端。
在本实施例中,在目标服务器接收到负载均衡设备转发的请求数据包,并对该请求数据包进行处理后,会返回一个相应的应答数据包至负载均衡设备。而负载均衡设备接收到目标服务器所返回的应答数据包后,同样进行网络地址转换,即将应答数据包的目的IP地址改回为请求访问的客户端的IP地址;然后,负载均衡设备将经过网络地址转换后的应答数据包转发至客户端。
当接收到目标服务器根据负载均衡设备转发的请求数据包,而返回的相应的应答数据包后,负载均衡设备对应答数据包进行网络地址转换,并将经过网络地址转换后的应答数据包转发至客户端。这就进一步保证能够减少负载均衡设备和服务器之间的UDP会话数,降低了内存和CPU的消耗,并且能够进一步保证提高负载均衡设备的性能。
参照图3,图3为本发明UDP会话复用的方法第三实施例的流程示意图。
在上述实施例的基础上,在执行步骤S50之后,UDP会话复用的方法还包括:
步骤S60,将服务器端UDP会话置放在预置的UDP会话池中,以作为空闲的服务器端UDP会话。
在本实施例中,当在预置的UDP会话池中取出空闲的服务器端UDP会话,并根据该服务器端UDP会话完成了对请求数据包和应答数据包进行网络地址转换后,还需要将该服务器端UDP会话放回在UDP会话池中,以便在下一次对客户端的请求数据包进行调度时,将其作为空闲的服务器端UDP会话使用。
将使用完的服务器端UDP会话,放回到UDP会话池中,以便在下一次对客户端的请求数据包进行调度时,将其作为空闲的服务器端UDP会话使用。进一步为避免由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题提供了有力的前提保证。
参照图4,图4为本发明UDP会话复用的方法第四实施例的流程示意图。
在本发明UDP会话复用的方法第一实施例的基础上,在执行步骤S20之前,该方法还包括:
步骤S70,判断预置的UDP会话池中是否存在空闲的服务器端UDP会话;若否,则进入步骤S80;
步骤S80,创建新的服务器端UDP会话,并将其保存在预置的UDP会话池中。
在本实施例中,在接收到客户端发送的请求数据包后,将请求数据包调度到目标服务器之前,首先需要在预置的UDP会话池中进行查找,即判断是否存在空闲的服务器端UDP会话。当判断出UDP会话池中存在空闲的服务器端UDP会话时,直接将其取出进行使用即可;而当判断出UDP会话池中不存在空闲的服务器端UDP会话时,则基于目标服务器创建一个新的服务器端UDP会话,根据该服务器端UDP会话对客户端发送的请求数据包进行网络地址转换。
在使用完毕后,将新创建的服务器端UDP会话保存在UDP会话池中,将其作为空闲的服务器端UDP会话,在下一次进行调度时,从UDP会话池中取出并直接使用。
在将请求数据包调度到目标服务器之前,首先在预置的UDP会话池中进行查找,以判断 UDP会话池中是否存在空闲的服务器端UDP会话;在判断出不存在时,创建新的服务器端UDP会话,并将其保存在UDP会话池中,这样,在下一次进行调度时,只需从UDP会话池中取出该服务器端UDP会话,即可直接使用。这就更进一步保证能够减少负载均衡设备和服务器之间的UDP会话数,从而保证减少内存和CPU的消耗,并且更进一步保证提高负载均衡设备的性能。
参照图5,图5为本发明UDP会话复用的方法第五实施例的流程示意图。
在本发明UDP会话复用的方法第一实施例的基础上,在执行步骤S30之前,该方法还包括:
步骤S90,采用负载均衡算法,选择目标服务器。
在本实施例中,在将经过网络地址转换后的客户端所发送的请求数据包发送至目标服务器之前,通过负载均衡设备,根据请求数据包,采用负载均衡算法,以选择一台目标服务器,以供将请求数据包调度到该目标服务器上,从而方便完成客户端与目标服务器之间的数据传输。
采用负载均衡算法选择一台目标服务器,以供通过负载均衡设备将请求数据包调度到该目标服务器上,实现网络和服务器的负载均衡。
参照图6,图6为本发明负载均衡设备第一实施例的结构示意图。
负载均衡设备包括:
接收模块10,用于接收客户端发送的请求数据包;
第一地址转换模块20,用于在预置的UDP会话池中取出空闲的服务器端UDP会话,并根据服务器端UDP会话对请求数据包进行网络地址转换;
发送模块30,用于将经过网络地址转换后的请求数据包发送至目标服务器。
本发明实施例所提供的负载均衡设备,维护一个UDP会话池,该UDP会话池用于存放空闲的服务器端UDP会话。当负载均衡设备对客户端的请求数据包进行调度时,只需要在UDP会话池中取出空闲的服务器端UDP会话,直接使用即可。这就能够避免由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题。
在本实施例中,接收模块10接收到客户端所发送的请求数据包后,对该请求数据包进行调度,即将其调度到目标服务器上。然后,在预置的UDP会话池中取出空闲的服务器端UDP会话,本发明实施例所提出的预置的UDP会话池,其用于存放空闲的服务器端UDP会话,在预置的UDP会话池中所保存的服务器端UDP会话,即为在此之前对客户端所发送的请求数据包调度到服务器上所创建的。
当在UDP会话池中取出空闲的服务器端UDP会话后,第一地址转换模块20即可根据该服务器端UDP会话,对客户端发送的请求数据包进行网络地址转换,即将请求数据包的目的IP地址修改为所调度到的目标服务器的IP地址。最终,发送模块30将进行了网络地址转换后的请求数据包发送至所选择的目标服务器,这就可以进行客户端与服务器之间的数据传输。
本发明实施例,通过在接收到客户端发送的请求数据包后,将请求数据包调度到目标服务器上,然后在预置的UDP会话池中取出空闲的服务器端UDP会话,根据该服务器端UDP会话对请求数据包进行网络地址转换,并将经过网络地址转换后的请求数据包发送至所选择的目标服务器。采用这种方法,在很大程度上避免了由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题,从而减少了负载均衡设备和服务器之间的UDP会话数,减少了内存和CPU的消耗,并且能够提高负载均衡设备的性能。
参照图7,图7为本发明负载均衡设备第二实施例的结构示意图。
在上述实施例的基础上,负载均衡设备还包括:
第二地址转换模块40,用于接收目标服务器所返回的应答数据包,将应答数据包进行网络地址转换;
转发模块50,用于将经过网络地址转换后的应答数据包转发至客户端。
在本实施例中,在目标服务器接收到负载均衡设备转发的请求数据包,并对该请求数据包进行处理后,会返回一个相应的应答数据包至负载均衡设备。而负载均衡设备接收到目标服务器所返回的应答数据包后,第二地址转换模块40同样进行网络地址转换,即将应答数据包的目的IP地址改回为请求访问的客户端的IP地址;然后,负载均衡设备的转发模块50将经过网络地址转换后的应答数据包转发至客户端。
当接收到目标服务器根据负载均衡设备转发的请求数据包,而返回的相应的应答数据包后,负载均衡设备对应答数据包进行网络地址转换,并将经过网络地址转换后的应答数据包转发至客户端。这就进一步保证能够减少负载均衡设备和服务器之间的UDP会话数,减少了内存和CPU的消耗,并且能够进一步保证提高负载均衡设备的性能。
参照图8,图8为本发明负载均衡设备第三实施例的结构示意图。
在上述实施例的基础上,负载均衡设备还包括:
置放模块60,用于将服务器端UDP会话置放在预置的UDP会话池中,以作为空闲的服务器端UDP会话。
在本实施例中,当在预置的UDP会话池中取出空闲的服务器端UDP会话,并根据该服务器端UDP会话完成了对请求数据包和应答数据包进行网络地址转换后,置放模块60还需要将该服务器端UDP会话放回在UDP会话池中,以便在下一次对客户端的请求数据包进行调度时,将其作为空闲的服务器端UDP会话使用。
将使用完的服务器端UDP会话,放回到UDP会话池中,以便在下一次对客户端的请求数据包进行调度时,将其作为空闲的服务器端UDP会话使用。进一步为避免由于同一客户端基于UDP会话所发送的请求数据包被调度到不同的多个服务器上,而产生大量的服务器端UDP会话的问题提供了有力的前提保证。
参照图9,图9为本发明负载均衡设备第四实施例的结构示意图。
在本发明负载均衡设备第一实施例的基础上,负载均衡设备还包括:
判断模块70,用于判断预置的UDP会话池中是否存在空闲的服务器端UDP会话;
创建及保存模块80,用于若否,创建新的服务器端UDP会话,并将其保存在预置的UDP会话池中。
在本实施例中,在接收到客户端发送的请求数据包,将请求数据包调度到目标服务器之前,判断模块70首先需要在预置的UDP会话池中进行查找,即判断是否存在空闲的服务器端UDP会话。当判断出UDP会话池中存在空闲的服务器端UDP会话时,直接将其取出进行使用即可;而当判断出UDP会话池中不存在空闲的服务器端UDP会话时,创建及保存模块80则基于目标服务器创建一个新的服务器端UDP会话,根据该服务器端UDP会话对客户端发送的请求数据包进行网络地址转换。
在使用完毕后,创建及保存模块80将新创建的服务器端UDP会话保存在UDP会话池中,将其作为空闲的服务器端UDP会话,在下一次进行调度时,从UDP会话池中取出并直接使用。
在将请求数据包调度到目标服务器之前,首先需要在预置的UDP会话池中进行查找,以判断 UDP会话池中是否存在空闲的服务器端UDP会话;在判断出不存在时,创建新的服务器端UDP会话,并将其保存在UDP会话池中,这样,在下一次进行调度时,只需从UDP会话池中取出该服务器端UDP会话,即可直接使用。这就更进一步保证能够减少负载均衡设备和服务器之间的UDP会话数,从而保证减少内存和CPU的消耗,并且更进一步保证提高负载均衡设备的性能。
参照图10,图10为本发明负载均衡设备第五实施例的流程示意图。
在本发明负载均衡设备第一实施例的基础上,负载均衡设备还包括:
选择模块90,用于采用负载均衡算法,选择目标服务器。
在本实施例中,在将经过网络地址转换后的客户端所发送的请求数据包发送至目标服务器之前,通过负载均衡设备,选择模块90根据请求数据包,采用负载均衡算法,以选择一台目标服务器,以供将请求数据包调度到该目标服务器上,从而方便完成客户端与目标服务器之间的数据传输。
采用负载均衡算法选择一台目标服务器,以供通过负载均衡设备将请求数据包调度到该目标服务器上,实现了网络和服务器的负载均衡。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。