CN109474693B - 数据传输方法及相关装置 - Google Patents
数据传输方法及相关装置 Download PDFInfo
- Publication number
- CN109474693B CN109474693B CN201811470221.XA CN201811470221A CN109474693B CN 109474693 B CN109474693 B CN 109474693B CN 201811470221 A CN201811470221 A CN 201811470221A CN 109474693 B CN109474693 B CN 109474693B
- Authority
- CN
- China
- Prior art keywords
- gateway
- data packet
- target gateway
- nat
- border router
- 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
Images
Classifications
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
Abstract
本申请提供了一种数据传输方法及装置,该方法包括:边界路由器接收终端设备发送的数据包;上述边界路由器获取链路权重,上述链路权重用于表示网络地址转换NAT网关的负载;上述边界路由器根据上述链路权重选择第一NAT网关作为目标网关,上述第一NAT网关的负载低于阈值;上述边界路由器将上述数据包发往上述目标网关。实施本申请,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关的高可用性,同时便于对NAT网关系统进行横向扩展。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据传输方法及相关装置。
背景技术
目前,互联网已经成为人们日常生活中不可缺少的一部分,而网络地址转换(network address translation,NAT)网关是互联网的重要设备之一。在互联网通讯中,每个客户端或者服务器都需要一个网际协议(internet protocol,IP)地址作为唯一性标识。而随着互联网的发展,客户端或者服务器的数量越来越多,公有IP地址可能不够分配。NAT网关就是一种通过使用少量的公有IP地址代表较多的私有IP地址的工具,可以减缓可用的IP地址空间的枯竭。在实际使用过程中,单个NAT网关可能出现故障。而当NAT网关出现故障时,NAT网关失去数据传输能力,该NAT网关对应的客户端或者服务器将不能与外界进行通讯。
为了避免NAT网关故障所带来的问题,通常采用主备模式配置NAT网关,即主用NAT网关处于业务激活状态,备用NAT网关处于备用状态,主用NAT网关定时将数据同步给备用NAT网关。当主用NAT网关出现故障时,将切换到备用NAT网关继续工作。
在这种执行方案中,当数据量增大时,NAT网关不方便进行横向扩展,灵活性较低;在主用NAT网关切换到备用NAT网关过程中,由于数据同步延时现象,部分数据可能会丢失。
发明内容
本申请提出一种数据传输方法及相关装置,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关的高可用性,同时便于对NAT网关系统进行横向扩展。
第一方面,本申请提出一种数据传输方法,包括:
边界路由器接收终端设备发送的数据包;
上述边界路由器获取链路权重,上述链路权重用于表示网络地址转换NAT网关的负载;
上述边界路由器根据上述链路权重选择第一NAT网关作为目标网关,上述第一NAT网关的负载低于阈值;
上述边界路由器将上述数据包发往上述目标网关。
结合第一方面,在一种可能的实现方式中,上述边界路由器获取链路权重,包括:
上述边界路由器确定缓冲区中数据包的数量,上述缓冲区为上述边界路由器中用于存储发往上述目标网关的数据包的存储区域;
上述边界路由器将上述数据包的数量所在的数量区间对应的级别确定为上述链路权重的值。
本申请提出的技术方案依据NAT网关的负载选择目标网关,可以充分利用每个NAT网关的资源,同时加快数据传输效率。
在一种可能的实现方式中,上述边界路由器将上述数据包发送给上述目标网关,包括:
上述边界路由器将上述数据包发送给上述目标网关对应的缓冲区;
上述边界路由器将上述缓冲区中的上述数据包发往上述目标网关。
在一种可能的实现方式中,在上述边界路由器根据上述链路权重选择第一NAT网关作为目标网关之后,在上述边界路由器将上述缓冲区中的数据包发往上述目标网关之前,还包括:
上述边界路由器向上述目标网关发送连接请求;
上述边界路由器接收上述目标网关的响应信息;
上述边界路由器将上述缓冲区中的数据包发往上述目标网关,包括:
上述边界路由器若接收到上述目标网关的响应信息,则将上述数据包发往上述目标网关。
在一种可能的实现方式中,在上述边界路由器将上述数据包发往上述目标网关之后,还包括:
上述边界路由器若没有接收到来自上述目标网关的确认指令,则将第二NAT网关确定为目标网关,上述确认指令是由目标网关发送的用于表示上述目标网关成功接收到上述数据包的信息;
上述边界路由器将上述数据包发往上述目标网关。
结合第一方面,在一种可能的实现方式中,在上述边界路由器将上述数据包发往上述目标网关之后,还包括:
上述边界路由器在无响应计数达到预设值时,将上述第目标网关标记为宕机状态,上述无响应计数为上述边界路由器连续没有接收到来自上述目标网关的响应信息的次数,上述宕机状态表示上述目标网关出现故障。
在本申请实施例,当一个NAT网关无法接收数据包时,可以将数据包分发给另一个NAT网关,保证数据被准确传输,避免数据丢失,同时可以淘汰故障的NAT网关,加快数据的传输效率。
在一种可能的实现方式中,在上述边界路由器将上述数据包发往上述目标网关之前,还包括:
上述边界路由器将上述数据包发往备份区,上述备份区为上述边界路由器中用于对上述数据包进行备份的存储区域;
在上述边界路由器将上述数据包发往上述目标网关之后,还包括:
上述边界路由器接收来自上述目标网关的校验信息;
上述边界路由器依据上述校验信息确定上述目标网关接收到的上述数据包是否正确;
若正确,则删除上述备份区中的上述数据包;
否则,则将上述备份区中的上述数据包发往上述目标网关。
第二方面,本申请提出一种数据传输装置,包括:
接收单元,用于接收终端设备发送的数据包;
获取单元,用于获取链路权重,上述链路权重用于表示网络地址转换NAT网关的负载;
第一选择单元,用于根据上述链路权重选择第一NAT网关作为目标网关,上述第一NAT网关的负载低于阈值;
发送单元,用于将上述数据包发往上述目标网关。
结合第二方面,在一种可能的实现方式中,上述装置还包括:
第二选择单元,用于在没有接收到确认指令的情况下,选择第二NAT网关作为目标网关,上述确认指令是由目标网关发送的用于表示上述目标网关成功接收到上述数据包的指令。
结合第二方面,在一种可能的实现方式中,上述发送单元还用于将上述数据包发往备份区,上述备份区为用于对上述数据包进行备份的存储区域;上述接收单元还用于接收上述目标网关发送的校验信息;上述装置还包括:
校验单元,用于依据上述校验信息确定上述目标网关接收到的上述数据包是否正确;若正确,则删除上述备份区中的上述数据包;否则,则将上述备份区中的上述数据包发往上述目标网关。
第三方面,本申请提出一种数据传输装置,包括处理器、存储器和收发器;上述处理器、上述存储器和上述收发器通过总线相互连接;其中,上述收发器用于接收和发送上述数据包,上述存储器用于存储计算机程序,上述计算机程序包括程序指令,上述处理器被配置用于调用上述程序指令,执行上述第一方面上述的方法。
第四方面,本申请提出一种计算机可读存储介质,其特征在于,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,使上述处理器执行如第一方面上述的方法。
第五方面,本申请实施例提供了一种包含程序指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
实施本申请,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关的高可用性,同时便于对NAT网关系统进行横向扩展
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请提出的一种数据传输系统的结构示意图;
图2是本申请实施例提供的一种数据传输方法的流程示意图;
图3是本申请实施例提供的另一种数据传输方法的流程示意图;
图4是本申请实施例提供的另一种数据传输方法的流程示意图;
图5是本申请实施例提供的一种数据传输装置的结构示意图;
图6是本申请实施例提供的另一种数据传输装置的结构示意图;
图7是本申请实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法或设备固有的其他步骤或单元。
本申请提出一种数据传输方法及装置,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关高可用性,同时便于对NAT网关系统进行横向扩展。下面将结合附图对本申请实施例进行描述。
图1是本申请提出的一种数据传输系统框架图。由图中可以看出,数据传输系统可以包括终端设备101、边界路由器102和NAT网关103。其中,终端设备101的数量可为一个或者多个,NAT网关103的数量可以为至少两个。其中,上述边界路由器102是在一个或多个局域网(local area network,LAN)和异步传输模式(asynchronous transfer mode,ATM)主干网络之间传输数据包的路由设备,可以起到数据的转发和过滤的功能。上述终端设备101可以包括具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS)等。上述NAT网关103的作用是将内部网络(即终端设备所在的网络环境)的私有地址转换为公有地址,以便终端设备可以与外界进行通讯,同时起到保障内部网络安全的作用。
由系统框架图可以看出,终端设备101将数据包发送给边界路由器102,边界路由器102接收到数据包后,将数据包分配给至少两个NAT网关103。上述NAT网关103接收到数据包后,可以将上述数据包转发给公共服务器或者其他路由器。
具体的,边界路由器102接收到终端设备发送的数据包之后,可以按照预设的规则将数据包分发给多个NAT网关,当边界路由器102检测到某个NAT网关出现故障之后,可以淘汰该NAT网关,以提高数据传输效率。
本申请提出的系统可以实现NAT网关的高可用性和负载均衡,同时加快数据传输效率,便于NAT网关横向扩展。
图2是本申请实施例提供的一种数据传输方法的流程示意图。上述方法包括以下内容:
201、边界路由器接收终端设备发送的数据包;
具体的,上述数据包的包头可以包含边界路由器的网际协议(InternetProtocol,IP)地址、终端设备的IP地址和目标设备的IP地址中的一项或者多项,上述数据包的净荷为待传输的数据信息。
在上述边界路由器在接收上述数据包之前,可以和上述终端设备通过三次握手建立长连接。即上述终端设备向上述边界路由器发送第一连接请求,上述边界路由器向上述终端设备发送第一响应消息和第二连接请求,上述终端设备向上述边界路由器发送第二响应消息后,长连接建立起来,边界路由器可以与上述终端设备进行数据通信。
在一种可能的实现方式中,若有多个终端设备向边界路由器发送数据包,边界路由器可以按照顺序与各个终端设备建立连接,依次接收终端设备的数据包。或者,边界路由器可以开启多个接收线程,通过不同的接收端口同时接收来自各个终端设备的数据包,其中,线程与接收端口和终端设备之间一一对应。
在一种可能的实现方式中,上述边界路由器可以采用异步方式接收终端设备发送的数据包。终端设备可以将上述数据包发送到消息队列中,边界路由器从消息队列中读取数据包。在消息队列中采用“先进先出”方式,即先进入消息队列的数据包先被边界路由器读取。在这种实施方式中,终端设备在发送数据包之后可以执行其他进程,不必等待边界路由器的响应信息,避免进程阻塞。
202、上述边界路由器获取链路权重,上述链路权重用于表示NAT网关的负载;
具体的,上述负载可以表示NAT网关任务量的多少。NAT网关的任务量越多,负载越大。在实际运作过程中,NAT网关可能有多个处理事务的进程,这些进程包括接收来自边界路由器的数据包的进程以及其他进程,这些进程都会消耗NAT网关的资源。NAT网关的进程越多,进程越复杂,则NAT网关的负载越大,NAT网关被占用的资源越多,接收数据包的速度越慢。
具体的,NAT网关的负载还与NAT网关的数据处理能力有关。在分配相同任务量的情况下,NAT网关的数据处理能力越强,NAT网关的负载越低。在实际应用中,每个NAT网关的数据处理能力可能不相同。一般而言,配置较高的NAT网关数据处理能力较强,配置较差的NAT网关数据处理能力较弱。即使配置相同的NAT网关,由于损耗或者制作工艺的差异,其数据处理能力也不一样。当分配相同数量的数据包时,数据处理能力较强的NAT网关能够快速接收数据包,该NAT网关的负载较低;相应的,数据处理能力较弱的NAT网关接收数据包速度较慢,该NAT网关的负载较高。
上述链路权重为衡量NAT网关负载的一个指标,当NAT网关的负载越大时,上述链路权重越大。上述链路权重与上述NAT网关呈正相关关系。
在一种可能的实现方式中,上述边界路由器可以计算各个NAT网关对应的缓冲区的数据包的数量,并依据缓冲区中数据包的数量来确定NAT网关的链路权重。其中,上述缓冲区中为边界路由器中用于存储发往目标网关的数据包的存储区域。上述数据包的数量越多,则上述链路权重越大。
在一种可能的实现方式中,上述边界路由器可以将依据轮询算法计算上述链路权重。当NAT网关被选为目标网关时,其链路权重增大,下次被选中为目标网关的概率减小。
在一种可能的实现方式中,上述边界路由器可以采用加权轮询算法来计算上述链路权重。具体的,上述边界路由器可以获取各个NAT网关的配置信息。NAT网关的配置越高,NAT网关的数据处理能力越强。上述边界路由器依据上述NAT网关的配置确定加权轮询算法的权重。其中,上述NAT网关的配置越高,其对应的权重越小,NAT网关被选中为目标网关时其链路权重的增幅越小。
203、上述边界路由器根据上述链路权重选择第一NAT网关作为目标网关,上述第一NAT网关的负载低于阈值;
参阅图1可知,边界路由器将数据包分发给至少两个NAT网关,即除了第一、第二NAT网关之外,还可能存在第三、第四NAT网关等。上述边界路由器获取多个NAT网关对应的链路权重,依据多个链路权重选择负载低于阈值的NAT网关作为目标网关。
具体的,上述边界路由器可以选取上述链路权重低于预设值的NAT网关作为目标网关,上述预设值可以根据实际情况进行设定。可选的,可以根据实际情况选取某一定值作为链路权重的预设值,当上述链路权重低于该定值,将上述链路权重对应的NAT网关作为目标网关。若有多个NAT网关的链路权重低于该定值,则可以从链路权重低于该定值的NAT网关中随机选取一个NAT网关作为目标网关。
在一种可能的实现方式中,上述边界路由器可以选取链路权重最低的NAT网关作为目标网关,若有多个NAT网关的链路权重相同且为最低,则从上述多个NAT网关中随机选取一个NAT网关作为目标网关。
204、上述边界路由器将上述数据包发往上述目标网关。
上述边界路由器接收到来自终端设备的数据包之后,可以将上述数据包发往缓冲区,再将缓冲区中的数据包发往目标网关。其中,上述缓冲区为上述边界路由器中用于存储发往上述目标网关的数据包的存储区域。上述缓冲区可以为队列数据结构,满足“先进先出”原则,即数据包从队列前端进入队列,从队列末端被取出,先进入队列的数据包优先被取出。
作为一种可能的实现方式,上述边界路由器可以先与上述目标网关通过三次握手建立长连接,再将上述数据包发往上述目标网关,上述目标网关可以即时反馈接收结果。
作为一种可能的实现方式,上述边界路由器可以以异步方式将上述数据包发往上述目标网关。具体的,上述边界路由器可以将上述数据包发往消息中间件中,由消息中间件发往上述目标网关。上述边界路由器在发送往上述数据包之后,可以执行其他进程而不必等待目标网关的响应信息。上述目标网关接收到上述数据包之后,可以将对应的接收成功标识返回给边界路由器。
实施本申请实施例,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关的高可用性,同时便于对NAT网关系统进行横向扩展。
图3是本申请提出的另一种数据传输方法的流程示意图,该方法包括以下内容:
301、边界路由器接收终端设备发送的数据包;
302、上述边界路由器确定缓冲区中数据包的数量,上述缓冲区为上述边界路由器中用于存储发往上述目标网关的数据包的存储区域;上述边界路由器将上述数据包的数量所在的数量区间对应的级别确定为上述链路权重的值。
上述边界路由器可以为每个NAT网关开辟一个缓冲区,上述缓冲区可用于存储发往NAT网关的数据包。其中,上述缓冲区可以为队列数据结构。
上述缓冲区中数据包的数量可用于衡量对应的NAT网关的负载。其中,上述缓冲区中数据包的数量越多,则该缓冲区对应NAT网关的负载越大,即链路权重越大。边界路由器可以通过访问缓冲区中的存储空间或者剩余存储空间来确定数据包的数量。
作为一种可能的实施方式,上述边界路由器可以读取上述缓冲区中的全部数据包的字节数,并确定单个数据包的字节数。将上述全部数据包的字节数除以单个数据包的字节数,可获得数据包的数量。上述缓冲区中的数据包的数量越多,表示上述缓冲区对应的NAT网关的负载越高,上述NAT网关无法及时处理上述缓冲区中的数据包。
作为一种可能的实施方式,在获得上述数据包的数量之后,将上述数据包所在的区间对应的级别确定为上述链路权重的值。上述缓冲区中数据包的数量越多,上述级别越高,上述链路权重越大。举例来说,可以将一个数据包确定为一级,则该数据包的数量即为上述链路权重的值。又举例来说,可以将1~100的数量区间确定为一级,100~500的数量区间确定为二级,500~1000的数量区间确定为三级,若计算得到上述缓冲区中的数据包的数量为800,则上述链路权重为3。又举例来说,可以按照以下公式计算链路权重:链路权重=级别=参数A*数据包数量,则每增加1个数据包,数据包的数量区间对应的级别增加A,上述链路权重增加A。
303、上述边界路由器根据上述链路权重选择第一NAT网关作为目标网关,上述第一NAT网关的负载低于阈值;
304、上述边界路由器将上述数据包发送给上述目标网关对应的缓冲区;上述边界路由器将上述缓冲区中的上述数据包发往上述目标网关。
具体的,上述缓冲区可以为队列数据结构,满足“先进先出”原则,即数据包从队列前端进入队列,从队列末端被取出,先进入队列的数据包优先被取出。上述缓冲区中的上述数据包在队列后端的其他数据包被发送完毕后,才被发往上述目标网关。
在本申请实施例,上述边界路由器将上述数据包发往缓冲区,一方面可以统计边界路由器中各个缓冲区未发送的数据包的数量,以便计算链路权重,另一方面可以实现并行向多个NAT网关发送数据包,加快数据传输效率。
在一种可能的实现方式中,在上述边界路由器将上述数据包发往上述目标网关之前,还包括:上述边界路由器向上述目标网关发送连接请求;上述边界路由器接收上述目标网关的响应信息;上述边界路由器将上述缓冲区中的上述数据包发往上述目标网关,包括:上述边界路由器若接收到上述目标网关的响应信息,则将上述缓冲区中的上述数据包发送给上述目标网关。
在一种可能的实施方式中,若上述边界路由器在发送连接请求之后没有接收到来自目标网关的响应信息,可以再次向上述目标网关发送连接请求,等待目标网关的响应消息。上述边界路由器在上述目标网关连续无响应的次数达到阈值时,确定第一NAT网关处于故障状态,选择第二NAT网关作为目标网关。其中,上述第二NAT网关为除第一NAT网关外的其他NAT网关中,负载第一第二阈值的NAT网关。
305、上述边界路由器若没有接收到来自上述目标网关的确认指令,则将第二NAT网关确定为目标网关,上述确认指令是由目标网关发送的用于表示上述目标网关成功接收到上述数据包的信息;上述边界路由器将上述数据包发往上述目标网关。
在一种可能的实现方式中,上述边界路由器在发送上述数据包到上述目标网关之后,可以等待上述目标网关的确认指令。上述边界路由器若没有在指定时间段内接受到上述目标网关的确认指令,则依据链路权重选择第二NAT网关作为目标网关。
具体的,若第一NAT网关无响应,上述边界路由器可以从除第一NAT网关之外的其他网关中选择负载低于第二阈值的NAT网关作为目标网关。例如,上述边界路由器可以选取链路权重最低的NAT网关作为目标网关,若有多个NAT网关的链路权重相同且为最低,则从上述多个NAT网关中随机选取其中一个NAT网关作为目标网关。
在一种可能的实现方式中,若上述边界路由器没有接收到上述第一NAT网关的确认指令,则将上述第一NAT网关的无响应次数加一。上述无响应次数为上述边界路由器连续没有接收到来自目标网关的确认指令的次数。若上述第一NAT网关的无响应次数达到阈值,则将上述第一NAT网关标记为宕机状态。上述宕机状态表示上述NAT网关处于故障状态。在将上述第一NAT网关标记为宕机状态之后,上述边界路由器将不再向上述NAT网关发送数据包。
306、上述边界路由器将上述数据包发往备份区,上述备份区为上述边界路由器中用于对上述数据包进行备份的存储区域;上述边界路由器接收上述目标网关发送的校验信息;上述边界路由器依据上述校验信息确定上述目标网关接收到的上述数据包是否正确;若正确,则删除上述备份区中的上述数据包;否则,则将上述备份区中的上述数据包发往上述目标网关。
上述备份区为上述边界路由器中,不同于上述缓冲区的,可以对上述数据包进行备份的存储区域。可选的,上述备份区可以为队列数据结构,上述备份区中的数据包被取出之后,将被上述边界路由器删除。
上述校验信息可以包括上述数据包是否错误的信息以及发生错误的原因信息。
在上述目标网关接收到来自边界路由器的上述数据包之后,可以对上述数据包进行校验,再将校验信息发往边界路由器,由边界路由器依据该校验信息判断目标网关接收到的数据包是否正确。其中,校验技术可以包括累加校验、异或校验、奇偶校验等。
以累加校验技术为例,上述目标网关可以对上述数据包的数据以字节数为单位进行相加,再将所得的和对256进行取模运算,得到的结果即为累加校验码。上述目标网关计算得到累加校验码后,将上述累加校验码发往边界路由器。边界路由器接收到上述累加校验码后,将上述累加校验码与校验码模板进行对比,判断上述累加校验码是否正确。若正确,则说明上述目标网关接收到的数据包正确;否则,则说明上述目标网关接收到的数据包不正确。
若上述边界路由器依据上述校验信息判断上述目标网关接收到的上述数据包准确,则上述备份区中的上述数据包为冗余数据包,上述边界路由器可以对上述数据包进行删除。
若上述界路由器依据上述校验信息判断上述目标网关接收到的上述数据包不正确,则将上述备份区中的上述数据包重新发送给上述目标网关。
实施本申请实施例,可以降低数据包在传输过程中的错误率,保障了数据的安全稳定传输,同时可以提高数据传输的灵活性和效率,充分利用NAT网关的资源,实现NAT网关的高可用性。
图4是本申请提出的另一种数据传输方法的流程示意图。应该理解,以下内容描述的是上述数据传输方法针对具体场景的实现过程,以下内容不应当作为对本申请的限制。该方法包括以下内容:
401、边界路由器接收终端设备发送的数据包。
402、上述边界路由器计算缓冲区中数据包的数量,将上述数据包的数量确定为链路权重的值。
上述边界路由器可以读取上述缓冲区的字节数,将该字节数除以单个数据包的字节数,得到数据包的数量。其中,上述单个数据包的字节数一般为链路层的最大传输单元。
计算得到上述数据包的数量之后,边界路由器将上述数据包的数量确定为链路权重的值。
403、上述边界路由器选择链路权重最小的第一NAT网关作为目标网关。
若有多个NAT网关的链路权重相等且为最小值,则以随机选择的方式从上述多个NAT网关中选择其中一个NAT网关作为目标网关。
404、上述边界路由器将上述数据包发往上述缓冲区和备份区。
405、上述边界路由器将上述缓冲区中的上述数据包发往上述目标网关。
上述边界路由器可以采取异步发送方式将上述数据包发往上述目标网关。即上述边界路由器将上述数据包发往消息中间件,由目标网关从消息中间件中读取数据包。在发送上述数据包之后,上述边界路由器可以执行其他任务,等到目标网关发送响应信息之后再进行相应的操作。
406、上述边界路由器若没有在指定时间内接收到来自上述目标网关的确认指令,则从第一NAT网关之外的其余NAT网关中选择链路权重最小的第二NAT网关作为目标网关;上述边界路由器将上述数据包发往上述目标网关。
上述边界路由器若没有在指定时间内接收到上述目标网关的响应信息,则根据步骤402计算到的链路权重,从其他NAT网关中选择链路权重最小的第二NAT网关作为目标网关,并将上述数据包重新发送给上述目标网关。
除了第一、第二NAT网关之外,本申请还包括第三、第四NAT网关。若上述第二NAT网关无响应,上述边界路由器可以从其他NAT网关中选择链路权重最小的第三NAT网关作为目标网关。以此类推,直至将上述数据包成功发往NAT网关。
407、上述边界路由器若没有在指定时间内接收到来自上述目标网关的确认指令,则将上述目标网关的无响应计数加一,上述无响应计数为上述目标网关连续无响应的次数;上述边界路由器判断上述无响应计数是否大于预设值,若是,则将上述目标网关标记为宕机状态。
其中,上述宕机状态表示上述目标网关处于故障状态。在上述目标网关被标记为宕机状态之后,上述边界路由器将不再向上述目标网关发送数据包。
若上述边界路由器在指定时间段内接收到来自上述目标网关的确认指令,则可以将上述目标网关对应的无响应计数清零。
408、上述边界路由器接收上述目标网关发送的校验信息;上述边界路由器依据上述校验信息确定上述目标网关接收到的上述数据包是否正确;若正确,则删除上述备份区中的上述数据包;否则,则将上述备份区中的上述数据包发往上述目标网关。
上述目标网关可以采用累加校验技术获得校验信息。具体的,上述目标网关可以对上述数据包的数据以字节数为单位进行相加,再将所得的和对256进行取模运算,得到的结果即为累加校验码。上述目标网关将上述累加校验码作为校验信息。
上述目标网关计算得到累加校验码后,将上述累加校验码发往边界路由器。边界路由器接收到上述累加校验码后,将上述累加校验码与校验码模板进行对比,判断上述累加校验码与校验模板是否正确。若正确,则说明上述目标网关接收到的数据包正确;否则,则说明上述目标网关接收到的数据包不正确。
若上述边界路由器确定上述目标网关接收到的数据包是正确,则删除上述缓冲区中的上述数据包;否则,则将上述缓冲区中的上述数据包发往上述目标网关。
实施本申请实施例,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关的高可用性,同时便于对NAT网关系统进行横向扩展。
请参阅图5,图5是本申请实施例提供的一种数据传输装置的结构示意图,上述装置包括:
接收单元501,用于接收终端设备发送的数据包;
获取单元502,用于获取链路权重,上述链路权重用于表示网络地址转换NAT网关的负载;
第一选择单元503,用于根据上述链路权重选择第一NAT网关作为目标网关,上述第一NAT网关的负载低于阈值;
发送单元504,将上述数据包发往上述目标网关。
上述获取单元502具体用于确定缓冲区中数据包的数量,上述缓冲区为上述边界路由器中用于存储发往上述目标网关的数据包的存储区域;用于将上述数据包的数量所在的数量区间对应的级别确定为上述链路权重的值。
上述接收单元501还用于接收上述目标网关发送的校验信息。
上述发送单元504还用于将上述数据包发往备份区,上述备份区为用于对上述数据包进行备份的存储区域。
如图6所示,上述装置还包括:
第二选择单元505,用于在没有接收到确认指令的情况下,选择第二NAT网关作为目标网关,上述确认指令是由目标网关发送的用于表示上述目标网关成功接收到上述数据包的指令。
校验单元506,用于依据上述校验信息确定上述目标网关接收到的上述数据包是否正确;若正确,则删除上述备份区中的上述数据包;否则,则将上述备份区中的上述数据包发往上述目标网关。
可理解,图5和图6所示的数据传输装置的具体实现方式还可参考图2、图3和图4所示的方法,这里不再一一详述。
实施本申请实施例,可以提高数据传输的灵活性和准确性,提高数据传输的效率,充分利用NAT网关的资源,实现NAT网关的高可用性,同时便于对NAT网关系统进行横向扩展。
请参阅图6,图6是本申请实施例提供的另一种数据传输装置的结构示意图。该装置包括:至少一个处理器701,例如中央处理器(central processing unit,CPU),至少一个存储器702,至少一个收发器703和至少一个总线704。其中,上述总线704可以是一组并行的数据线,用于实现上述处理器701、上述存储器702和上述收发器703的相互连接;上述存储器702可以是高速随机存取存储器(random access memory,RAM),也可以是非易失性存储器(non-volatile memory),例如至少一个只读存储器(read only memory,ROM)。
具体的,上述收发器703可用于接收终端设备发送的数据包;用于将上述数据包发往目标网关。
在一种可能的实现方式中,上述收发器703还可用于接收目标网关发送的校验信息和确认指令,以确认目标网关是否成功接收到上述数据包以及接收到的数据包是否正确。
在一种可能的实现方式中,上述存储器702中可以存储程序指令,上述处理器701可用于调用程序指令执行图2、图3和图4中所示的方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(read only memory,ROM)、随机存储器(random access memory,RAM)、可编程只读存储器(programmable read only memory,PROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、一次可编程只读存储器(one-time programmable read-only memory,OTPROM)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本申请实施例公开的一种数据传输方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种数据传输方法,其特征在于,包括:
边界路由器接收终端设备发送的数据包;
所述边界路由器获取链路权重,所述链路权重用于表示网络地址转换NAT网关的负载;其中,所述负载根据所述NAT网关的任务量和数据处理能力确定,所述链路权重是根据加权轮询算法进行计算的,所述加权轮询算法的权重是所述边界路由器依据所述NAT网关的配置信息确定的;
所述边界路由器根据所述链路权重选择第一NAT网关作为目标网关,所述第一NAT网关的负载低于阈值;
所述边界路由器将所述数据包发往所述目标网关,包括:所述边界路由器将所述数据包发送给所述目标网关对应的缓冲区,所述边界路由器将所述缓冲区中的所述数据包发往所述目标网关,所述缓冲区为所述边界路由器中用于存储发往所述目标网关的数据包的存储区域,所述缓冲区与所述NAT网关一一对应;
所述边界路由器接收终端设备发送的数据包之前,包括:所述边界路由器接收所述终端设备发送的第一连接请求,所述边界路由器向所述终端设备发送第一响应消息和第二连接请求,若所述边界路由器接收到所述终端设备发送的第二响应消息,则建立所述边界路由器和所述终端设备的通信连接,执行所述边界路由器接收终端设备发送的数据包步骤。
2.根据权利要求1所述方法,其特征在于,所述边界路由器获取链路权重,包括:
所述边界路由器确定缓冲区中数据包的数量;
所述边界路由器将所述数据包的数量所在的数量区间对应的级别确定为所述链路权重的值。
3.根据权利要求1所述方法,其特征在于,在所述边界路由器根据所述链路权重选择第一NAT网关作为目标网关之后,在所述边界路由器将所述数据包发往所述目标网关之前,还包括:
所述边界路由器向所述目标网关发送连接请求;
所述边界路由器接收所述目标网关的响应信息;
所述边界路由器将所述缓冲区中的所述数据包发往所述目标网关,包括:
所述边界路由器若接收到所述响应信息,则将所述缓冲区中的所述数据包发往所述目标网关。
4.根据权利要求1所述方法,其特征在于,在所述边界路由器将所述数据包发往所述目标网关之后,还包括:
所述边界路由器若没有接收到来自所述目标网关的确认指令,则将第二NAT网关确定为目标网关,所述确认指令是由目标网关发送的用于表示所述目标网关成功接收到所述数据包的信息;
所述边界路由器将所述数据包发往所述目标网关。
5.根据权利要求1至4任一项所述方法,其特征在于,在所述边界路由器将所述数据包发往所述目标网关之前,还包括:
所述边界路由器将所述数据包发往备份区,所述备份区为所述边界路由器中用于对所述数据包进行备份的存储区域;
在所述边界路由器将所述数据包发往所述目标网关之后,还包括:
所述边界路由器接收来自所述目标网关的校验信息;
所述边界路由器依据所述校验信息确定所述目标网关接收到的所述数据包是否正确;
若正确,则删除所述备份区中的所述数据包;
否则,则将所述备份区中的所述数据包发往所述目标网关。
6.一种数据传输装置,其特征在于,包括:
接收单元,用于接收终端设备发送的数据包;
获取单元,用于获取链路权重,所述链路权重用于表示网络地址转换NAT网关的负载;其中,所述负载根据所述NAT网关的任务量和数据处理能力确定,所述链路权重是根据加权轮询算法进行计算的,所述加权轮询算法的权重是边界路由器依据所述NAT网关的配置信息确定的;
第一选择单元,用于根据所述链路权重选择第一NAT网关作为目标网关,所述第一NAT网关的负载低于阈值;
发送单元,用于将所述数据包发往所述目标网关;
所述发送单元,具体用于将所述数据包发送给所述目标网关对应的缓冲区,将所述缓冲区中的所述数据包发往所述目标网关,所述缓冲区为所述边界路由器中用于存储发往所述目标网关的数据包的存储区域,所述缓冲区与所述NAT网关一一对应;
所述接收单元接收终端设备发送的数据包之前,所述接收单元还用于接收所述终端设备发送的第一连接请求,所述发送单元还用于向所述终端设备发送第一响应消息和第二连接请求,所述接收单元还用于若接收到所述终端设备发送的第二响应消息,则建立边界路由器和所述终端设备的通信连接,执行所述边界路由器接收终端设备发送的数据包步骤。
7.根据权利要求6所述装置 ,其特征在于,所述装置还包括:
第二选择单元,用于在没有接收到确认指令的情况下,选择第二NAT网关作为目标网关,所述确认指令是由目标网关发送的用于表示所述目标网关成功接收到所述数据包的指令。
8.一种数据传输装置,其特征在于,包括处理器、存储器和收发器;所述处理器、所述存储器和所述收发器通过总线相互连接;其中,所述收发器用于接收和发送数据包,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至5任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811470221.XA CN109474693B (zh) | 2018-11-30 | 2018-11-30 | 数据传输方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811470221.XA CN109474693B (zh) | 2018-11-30 | 2018-11-30 | 数据传输方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109474693A CN109474693A (zh) | 2019-03-15 |
CN109474693B true CN109474693B (zh) | 2023-04-07 |
Family
ID=65675503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811470221.XA Active CN109474693B (zh) | 2018-11-30 | 2018-11-30 | 数据传输方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109474693B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106105282A (zh) * | 2014-01-02 | 2016-11-09 | 华为技术有限公司 | 利用链路缓冲区状态进行流量工程的系统和方法 |
WO2017148169A1 (zh) * | 2016-03-01 | 2017-09-08 | 上海斐讯数据通信技术有限公司 | 一种UDP远程传输log的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697528B (zh) * | 2009-10-30 | 2011-11-16 | 杭州华三通信技术有限公司 | 一种nat网关设备之间的负载分担方法和设备 |
US10142221B2 (en) * | 2016-09-07 | 2018-11-27 | T-Mobile Usa, Inc. | Network address translation in networks using multiple NAT devices |
US10841275B2 (en) * | 2016-12-12 | 2020-11-17 | Samsung Electronics Co., Ltd. | Method and apparatus for reducing IP addresses usage of NVME over fabrics devices |
-
2018
- 2018-11-30 CN CN201811470221.XA patent/CN109474693B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106105282A (zh) * | 2014-01-02 | 2016-11-09 | 华为技术有限公司 | 利用链路缓冲区状态进行流量工程的系统和方法 |
WO2017148169A1 (zh) * | 2016-03-01 | 2017-09-08 | 上海斐讯数据通信技术有限公司 | 一种UDP远程传输log的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109474693A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274707B (zh) | 一种负载调度方法及装置 | |
CN111817977B (zh) | 一种网络拥塞控制方法和装置 | |
US6072797A (en) | Methods, apparatus and computer program products for aggregated transmission groups in high speed networks | |
CN107682886A (zh) | 一种多路径的数据传输方法 | |
JP2001223716A (ja) | 無線通信システム | |
WO2000014931A1 (fr) | Dispositif de mesure de charge sur un serveur de reseau et dispositif et procede d'attribution | |
CN106953797B (zh) | 一种基于动态连接的rdma数据传输的方法与装置 | |
EP2939401B1 (en) | Method for guaranteeing service continuity in a telecommunication network and system thereof | |
EP1033002A1 (en) | Method and apparatus for performing service level analysis of communications network performance metrics | |
CN107370636B (zh) | 链路状态确定方法和装置 | |
US9515940B2 (en) | Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network | |
CN104159306B (zh) | 一种控制空口资源的方法、设备及系统 | |
CN102857354A (zh) | 告警信息上报方法、装置及系统 | |
Anderson et al. | PCP: Efficient Endpoint Congestion Control. | |
CN112104568B (zh) | 一种数据传输控制方法及网关 | |
CN108234087A (zh) | 数据传输方法及发送端 | |
JP2017092665A (ja) | 通信装置および通信方法 | |
CN113783787A (zh) | 一种基于云边协同的非实时数据传输方法及装置 | |
CN112737940A (zh) | 一种数据传输的方法和装置 | |
JP2010287987A (ja) | メールサーバシステム及び輻輳制御方法 | |
EP1037500A2 (en) | Network element delay allocation for efficient use of network resources | |
CN109474693B (zh) | 数据传输方法及相关装置 | |
CN108600308B (zh) | 数据上传方法、装置、存储介质和服务器 | |
KR101099447B1 (ko) | 물리 링크 정보를 고려한 링크 어그리게이션 장치 및 이를 이용한 데이터 전송 방법 | |
CN110808917A (zh) | 多链路聚合数据重传方法及发送设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |