CN110601948B - 网络带宽叠加的方法、装置及网关设备 - Google Patents
网络带宽叠加的方法、装置及网关设备 Download PDFInfo
- Publication number
- CN110601948B CN110601948B CN201910818587.XA CN201910818587A CN110601948B CN 110601948 B CN110601948 B CN 110601948B CN 201910818587 A CN201910818587 A CN 201910818587A CN 110601948 B CN110601948 B CN 110601948B
- Authority
- CN
- China
- Prior art keywords
- data packet
- server
- packet
- internet
- preset
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例适用于通信技术领域,提供了一种网络带宽叠加的方法、装置及网关设备,所述方法包括:配置多个互联网接口,确定所述多个互联网接口对应的权重值;当接收到数据包时,识别所述数据包的发送端;若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。通过上述方法,可以提高数据传输速率,在不需要用户终端的参与下,实现带宽叠加。
Description
技术领域
本申请属于通信技术领域,尤其涉及一种网络带宽叠加的方法、装置及网关设备。
背景技术
目前,随着技术的发展许多路由设备具有了多条互联网接口,而TCP/UDP(Transmission Control Protocol/User Datagram Protocol,传输控制协议/用户数据报协议)依然是一个单线路的协议,这样在一些特殊的应用场景存在很多弊端。例如,当前链路出了问题,整个链路就断开,所有基于这个链路的通信设备都没法工作。另外,带宽上单条链路在性能上存在瓶颈,这样带宽叠加的实现就很有必要。
目前的带宽叠加技术主要有三种,第一种是MPTCP(MultiPathTCP,多路传输控制协议),允许在一条TCP链路中建立多个子通道。第二种IEEE802.3ad(一种执行链路聚合的标准方法)技术,将多个以太网适配器聚集到单独的虚拟适配器。第三种,加入服务器分包组包的技术,在设备端进行分包,服务器端进行组包。
但是,第一种方式源和目的IP(Internet Protocol,网际协议)必须是支持MPTCP协议,而且只支持TCP。第二种方式必须使用同速率同双工方式的物理口,而且只能在局域网内应用,不适合广域网。第三种方式需要对已经分离的封包重组,浪费资源和性能。
发明内容
本申请实施例提供了一种网络带宽叠加的方法、装置及网关设备,可以在不需要用户参与下实现带宽叠加,提高数据传输速率。
第一方面,本申请实施例提供了一种网络带宽叠加的方法,适用于网关设备,所述方法包括:
配置多个互联网接口,确定所述多个互联网接口对应的权重值;
当接收到数据包时,识别所述数据包的发送端;
若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。
在第一方面的一种可能的实现方式中,确定所述多个互联网接口对应的权重值,包括:
分别获取各个互联网接口的带宽和时延值;
计算所述多个互联网接口的总带宽、总时延值、所述各个互联网接口的时延值占所述总时延值的第一比值、所述各个互联网接口的带宽占所述总带宽的第二比值,以及,数值1与所述第一比值之间的差值;
计算所述差值与所述第二比值之间的乘积,作为所述各个互联网接口的权重值。
在第一方面的一种可能的实现方式中,当接收到数据包时,识别所述数据包的发送端,包括:
确定所述数据包是否携带满足预设条件的包头;
若是,则判定所述发送端为服务器;
若否,则判定所述发送端为用户终端。
在第一方面的一种可能的实现方式中,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装,包括:
若所述发送端为用户终端,则采用所述数据包携带的目的IP与预设的序列号,生成预设的包头,所述服务器用于依据所述序列号对所述数据包排序;
采用所述预设的包头对所述数据包进行封装。
在第一方面的一种可能的实现方式中,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器,包括:
根据所述各个互联网接口的权重值,计算所述各个互联网接口接收所述数据包的比值;
按照所述比值,将所述封装后的数据包分发到各个互联网接口,由所述各个互联网接口将所述封装后的数据包转发至服务器。
第二方面,本申请实施例提供了一种网络带宽叠加的方法,适用于服务器,所述方法包括:
当接收到数据包时,识别所述数据包的发送端;
若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
将封装后的所述数据包转发至网关设备。
第三方面,本申请实施例提供了一种网络带宽叠加的装置,适用于网关设备,所述装置包括:
确定模块,用于配置多个互联网接口,确定所述多个互联网接口对应的权重值;
接收模块,用于接收数据包,识别所述数据包的发送端;
处理模块,用于处理接收到的数据包,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
发送模块,用于发送数据包,若所述发送端为用户终端,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。
第四方面,本申请实施例提供了一种网关设备,包括:包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述移动终端能够执行上述第一方面中任一项所述的网络带宽叠加的方法。
第五方面,本申请实施例提供了一种服务器,包括:包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述移动终端能够执行上述第二方面所述的网络带宽叠加的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的网络带宽叠加的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面所述的网络带宽叠加的方法。
本申请实施例与现有技术相比存在的有益效果是:通过在本申请实施例中的网关设备中配置多个互联网接口,并确定多个互联网接口对应的权重值;当接收到数据包时,可以识别数据包的发送端;若发送端为用户终端,则可以采用写入有目的IP与预设的序列号的包头对数据包进行封装;然后再根据各个互联网接口的权重值,将封装后的数据包转发至服务器。通过上述方法,可以将带宽叠加的处理过程置于在网关设备和服务器中来实现,并不需要用户终端参与就可以实现带宽叠加,提高了数据传输的速率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种网络带宽叠加的方法的步骤流程图;
图2是本申请实施例二提供的一种网络带宽叠加的方法的步骤流程图;
图3是本申请实施例三提供的一种网络带宽叠加的方法的步骤流程图;
图4是本申请实施例四提供的一种网络带宽叠加的方法的步骤流程图;
图5是本申请实施例五提供的一种网络带宽叠加的***框图;
图6是本申请实施例五提供的一种网关设备侧的数据处理流程图;
图7是本申请实施例五提供的一种服务器侧的数据处理流程图;
图8是本申请实施例六提供的一种网络带宽叠加的装置的示意图;
图9是本申请实施例七提供的一种网络带宽叠加的装置的示意图;
图10是本申请实施例八提供的一种网关设备的示意图;
图11是本申请实施例九提供的一种服务器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
图1是本申请实施例一提供的一种网络带宽叠加的方法的步骤流程图,如图1所示,所述方法可以包括以下步骤:
S101,配置多个互联网接口,确定所述多个互联网接口对应的权重值;
上述多个互联网接口,可以是指网关设备提供的多个WAN(Wide Area Network,广域网)接口,通过这些接口,网关能与广域网建立数据传输通道。网关设备提供配置接口,通过配置接口,可以配置各个互联网接口的带宽和时延。
各个互联网接口对应的权重值,可以通过互联网接口的带宽和时延值来确定。
S102,当接收到数据包时,识别所述数据包的发送端;
上述发送端包括服务器和用户终端。若接收到的数据包携带有满足预设条件的包头,则发送端为服务器;若接收到的数据包不携带满足预设条件的包头,则发送端为用户终端。此处的满足预设条件的包头,可以是指包头中带有预设的序列号,该序列号可以用于确定数据包的顺序,服务器可以依据该序列号对数据包进行排序。
S103,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
上述采用预设的包头对所述数据包进行封装是指,在原有的数据包上封装入自定义UDP(User Datagram Protocol,用户数据报协议)包头;该自定义包头中包括数据包的原目的IP和序列号。原目的IP可以是数据包本身携带的,序列号可以根据套接字socket(一种独立于协议的网络编程接口)连接,从1开始,根据数据包的顺序生成,类似TCP会话的每一端都包含一个32位(bit)的序列号。
S104,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。
各个互联网接口根据带宽和时延值确定权重值,因为带宽和时延值会影响数据包的传输速率。若某个接口的带宽小,时延值大,则传输一个数据包所需要的时间就会比较长;互联网接口的权重值可以衡量该接口所建立的传输通道的传输速率。根据不同互联网接口的权重值,将数据包分发到各个互联网接口,对于权重值大的接口,可以发送多一些的数据包,对于权重值小的互联网接口,可以发送少一些的数据包。通过这些接口,可以建立多个并行数据通道,从而实现将数据包转发至服务器的目的。
通过本实施例,在数据包传输过程中,通过对数据包封装带有序列号的自定义包头,并根据各个互联网接口建立多个并行数据传输通道,可以根据带宽时延等状态按权重将封装后的数据包分发到各个互联网接口,然后通过各个互联网接口建立的数据传输通道发送至服务器,由服务器根据序列号对数据包进行排序,再发送到用户终端。整个过程避免了用户终端的参与,让用户不需要知道怎么处理就可以实现带宽叠加。
图2是本申请实施例二提供的一种网络带宽叠加的方法的步骤流程图,如图2所示,所述方法可以包括以下步骤:
S201,配置多个互联网接口,分别获取各个互联网接口的带宽和时延值;
上述多个互联网接口,是指网关设备提供的多个WAN接口,通过这些接口,网关能与广域网建立数据传输通道。网关设备提供配置接口,通过配置接口,可以配置各个互联网接口的带宽和时延。根据各个互联网接口的带宽和时延,来确定各个互联网接口的权重值。
各个接口的带宽,可以用命令根据实际情况配置,也可以用IPERF(一种网络性能测试软件)工具实测,时延可以加入网关和服务器心跳实测。
S202,计算所述多个互联网接口的总带宽、总时延值、所述各个互联网接口的时延值占所述总时延值的第一比值、所述各个互联网接口的带宽占所述总带宽的第二比值,以及,数值1与所述第一比值之间的差值;
上述总带宽值是多个互联网接口的带宽和,总时延值是多个互联网接口的时延和。第一比值是各个互联网接口时延值占总时延值的比例,第二比值是各个接口带宽占总带宽的比例。本实施例用第二比值来衡量带宽对互联网接口权重的影响,因为在一般情况下,传输速率与带宽正相关;用1与第一比值的差值来衡量时延值对互联网接口权重值得影响,因为一般情况下,传输速率与时延值负相关。
S203,计算所述差值与所述第二比值之间的乘积,作为所述各个互联网接口的权重值;
若网关设备共有2个接口,A和B。接口A的带宽为50Mbps,时延为80ms;接口B的带宽为100Mbps,时延为60ms。
则总带宽为:50Mbps+100Mbps=150Mbps;
总时延值为:80ms+60ms=140ms;
对于A接口:
第一比值:50/150=1/3;第二比值:80/140=4/7;差值:1-4/7=3/7;
则A接口的权重值为:1/3*3/7*100%=19.05%。
对于B接口:
第一比值:100/150=2/3;第二比值:60/140=3/7;差值:1-3/7=4/7;
则B接口的权重值为:2/3*4/7*100%=28.57%。
S204,当接收到数据包时,识别所述数据包的发送端;
上述发送端包括服务器和用户终端。若接收到的数据包携带有满足预设条件的包头,则发送端为服务器;若接收到的数据包不携带满足预设条件的包头,则发送端为用户终端。此处的满足预设条件的包头,可以是指包头中带有预设的序列号,该序列号可以用于确定数据包的顺序,服务器可以依据该序列号对数据包进行排序。
S205,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
上述采用预设的包头对数据包进行封装是指,在原有的数据包上封装入自定义UDP包头;该自定义包头中包括数据包的原目的IP和序列号。原目的IP可以是数据包本身携带的,序列号可以根据socket连接,从1开始,根据数据包的顺序生成,类似TCP会话的每一端都包含一个32位(bit)的序列号。
上述步骤还包括对封装后的数据包进行NAPT处理,用于区分不同的用户终端;将数据包的目的IP改为服务器IP,加入设备ID号和链路权重。该设备ID是指网关设备的ID,作为链路的一个标识。当然,在特殊情况下,比如只有一条链路,可以不加入设备ID,因为不需要标识链路。该链路权重可以是网关在计算之后随着数据包发送给服务器,用于服务器在发送数据包到网关时进行链路选择。对处理后的数据包重新计算检验和check sum,因为网关对数据包进行了重新的处理,导致包头发生变化,所以要依据处理后的包头的内容重新计算check sum。
S206,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。
各个互联网接口根据带宽和时延值确定权重值,因为带宽和时延值会影响数据包的传输速率。若某个接口的带宽小,时延值大,则传输一个数据包所需要的时间就会比较长;互联网接口的权重值可以衡量该接口所建立的传输通道的传输速率。根据不同互联网接口的权重值,将数据包分发到各个互联网接口,对于权重值大的接口,可以发送多一些的数据包,对于权重值小的互联网接口,可以发送少一些的数据包。通过这些接口,建立多个并行数据通道,将数据包转发至服务器。
需要说明的是,选择链路时,除了考虑接口权重,还可以考虑链路抖动,链路抖动太大表示这个链路的稳定性不好,若链路抖动不在预期范围内,就需要动态减少这个链路发送数据的频率数量。此外,在选择链路时,一些时延太大,带宽太小或者链路抖动太大的接口可以考虑不加入或减少发包频率。
在本实施例中,通过带宽和时延值来确定接口的权重值,依据权重值进行选择发送接口,通过此方法,可以有效平衡使用各个接口,提高数据传输的效率。
图3是本申请实施例三提供的一种网络带宽叠加的方法的步骤流程图,如图3所示,所述方法可以包括以下步骤:
S301,配置多个互联网接口,确定所述多个互联网接口对应的权重值;
上述多个互联网接口,是指网关设备提供的多个WAN接口,通过这些接口,网关能与广域网建立数据传输通道。网关设备提供配置接口,通过配置接口,可以配置各个互联网接口的带宽和时延。根据各个互联网接口的带宽和时延,来确定各个互联网接口的权重值。
确定带宽和时延值可以通过配置得到,也可以通过工具实时检测。
S302,当接收到数据包时,识别所述数据包的发送端;
上述发送端包括服务器和用户终端。若接收到的数据包携带有满足预设条件的包头,则发送端为服务器;若接收到的数据包不携带满足预设条件的包头,则发送端为用户终端。此处的满足预设条件的包头,是指包头中带有预设的序列号,该序列号用于确定数据包的顺序,服务器依据该序列号对数据包进行排序。
S303,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
上述采用预设的包头对所述数据包进行封装是指,在原有的数据包上封装入自定义UDP包头;该自定义包头中包括数据包的原目的IP和序列号。原目的IP可以是数据包本身携带的,序列号可以根据socket连接,从1开始,根据数据包的顺序生成,类似TCP会话的每一端都包含一个32位(bit)的序列号。
上述步骤还包括对封装后的数据包进行NAPT处理,用于区分不同的用户终端;将数据包的目的IP改为服务器IP,加入设备ID号和链路权重。该设备ID是指网关设备的ID,作为链路的一个标识,当然在特殊情况下,比如只有一条链路,可以不加入设备ID,因为不需要标识链路。该链路权重可以是网关在计算之后随着数据包发送给服务器,用于服务器在发送数据包到网关时进行链路选择。对处理后的数据包重新计算check sum,因为网关对数据包进行了重新的处理,导致包头发生变化,所以要依据处理后的包头的内容重新计算check sum。
S304,根据所述各个互联网接口的权重值,计算所述各个互联网接口接收所述数据包的比值;
上述比值可以通过计算各个互联网接口权重值的比例得到,用于确定各个互联网接口转发数据包的比例。
S305,按照所述比值,将所述封装后的数据包分发到各个互联网接口,由所述各个互联网接口将所述封装后的数据包转发至服务器。
例如,网关设备有A和B两个接口,现有5个封装后的数据包需要转发。A接口的权重值为19.05%,B接口的权重值为28.57%。
接口A和B的权重值比值接近2/3,按照这个比值,A接口转发得封装后的数据包数量与B接口转发的封装后的数据包的数量比值为2/3。
则A接口转发2个封装后的数据包,B接口转发3个封装后的数据包。通过A接口和B接口,将5个封装后的数据包转发至服务器。
本实施例,通过在数据包转发的过程中,根据互联网接口权重值的比例分发数据包,使所有数据包可以在较短时间内全部达到目的服务器,后续服务器在进行数据包排序时,不需要对某个数据包进行长时间等待,提高了数据传输效率和网络的利用率。
图4是本申请实施例四提供的一种网络带宽叠加的方法的步骤流程图,如图4所示,所述方法可以包括以下步骤:
S401,当接收到数据包时,识别所述数据包的发送端;
需要说明的是,本实施例可以应用于服务器。即,本实施例的执行主体为服务器。
上述发送端包括网关和用户终端。若接收到的数据包携带有满足预设条件的包头,则发送端为网关;若接收到的数据包不携带满足预设条件的包头,则发送端为用户终端。此处的满足预设条件的包头,可以是指包头中带有预设的序列号,该序列号可以用于确定数据包的顺序,可以依据该序列号对数据包进行排序。
S402,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
上述采用预设的包头对所述数据包进行封装是指,在原有的数据包上封装入自定义UDP包头;该自定义包头中包括数据包的原目的IP和序列号。原目的IP可以是数据包本身携带的,序列号可以根据socket连接,从1开始,根据数据包的顺序生成,类似TCP会话的每一端都包含一个32位(bit)的序列号。
S403,将封装后的所述数据包转发至网关设备。
将封装后的数据包根据服务器存储的链路权重选择链路发送至网关设备。其中链路权重是网关发送数据包到服务器时携带的,服务器可以将其存储下来在本实施例中,服务器在发送数据包的过程中,在数据包中封装入带有序列号自定义UDP包头,根据链路权重将述包转发至网关。在此过程中,通过根据链路权重选择发送链路,提高了数据传输速率,通过封装入带有序列号的自定义UDP包头,不需要用户参与就可以实现带宽叠加。
图5是本申请实施例五提供的一种带宽叠加的***框图。如图5所示,用户可以通过网关、互联网、服务器将数据包发送到终端。用户将数据包发送给网关;网关接收到用户发送的数据包后,采用预设的包头对数据包进行封装;对数据包进行NAPT处理,目的IP改为服务器IP,加入设备号和链路权重,并重新计算check sum;根据网关各个互联网接口(即图5中所示的多个WAN设备接口)的带宽和时延确定各个互联网接口的权重值,根据各个互联网接口的权重值对封装后的数据包进行分发,网关通过各个互联网接口在互联网中建立多个并行数据传输通道,将数据包传送至服务器。服务器接收到网关发送的数据包后,返回ACK给对应的网关,记录设备ID、源端口和当前链路权重;对数据包进行解封装,去除数据包携带的满足预设条件的包头,获取数据包的序列号,根据序列号对数据包进行排序;根据设备ID和源端口对数据包做SNAT(source network address translation,源地址转换)处理,重新计算check sum,然后将数据包转发至目标终端。
数据包的另一种传输过程是从终端,经服务器、互联网、网关传送至用户。用户发送数据包到服务器;服务器接收到用户发送的数据包,采用预设的包头对数据包进行封装;对数据包进行DNAT(destination network address translation,目的地址转换)处理;根据保存的设备ID的链路权重对封装后的数据包进行链路选择,将数据包发送至网关。网关接收到服务器发送的数据包后,判断是否为ACK,若是,计算往返时延和链路抖动;若否,对数据包进行解封装,去除数据包携带的满足预设条件的包头,对解封装数据包进行NAPT处理,还原用户需要的数据包,对数据包重新计算check sum;然后将数据包转发至目标用户。
上述预设的包头是指自定义UDP包头,该包头中包含序列号,序列号能确定数据包的顺序。包头中的序列号可以根据socket连接,从1开始,类似TCP会话的每一端都包含一个32位(bit)的序列号。
在上述两个数据包传输过程中,网关判断所接收到的数据包的发送端,是判断数据包是否携带满足预设条件的包头,若是,则发送端为服务器,若否,则发送端为用户;相应地,服务器判断所接收到的数据包的发送端,是判断数据包是否携带满足预设条件的包头,若是,则发送端网关,若否,则发送端为终端。此处,预设条件的包头是指带有预设序列号的自定义UDP包头。
在上述过程中还包括,服务器在接收到网关发送的数据包时,返回ACK给网关;网关接收服务器返回的ACK,计算链路从发送数据包到接收到对应ACK的RTT(Round-TripTime,往返时延);并在接收到每一个ACK时,均计算RTT,取RTT平均值作为衡量链路抖动的指标。若某链路的链路抖动超出预期范围,证明此链路不稳定,应动态减少这个链路发送数据的频率和数量。在一些情况下,例如互联网接口带宽太小、时延值太大、链路抖动太大,可以考虑不选择此链路发包,或者减少发包速率。
图6是本申请实施例五提供的一种网关设备侧的数据处理流程图,如图6所示,网关设备侧的数据处理包括:
根据实际情况配置好各个互联网接口的带宽和时延;在网络层拦截接收数据包,检测数据包是局域网用户所发送的还是服务器所发送的;若数据包来自服务器,检测数据包是否为ACK(Acknowledge character,确认字符),若是ACK,计算RTT和链路抖动;若来自服务器的数据包非ACK,去掉数据包中服务器加入的UDP包头,对数据包进行NAPT处理,重新计算check sum,将处理后的数据包转发至用户。
若数据包来自用户,在原有的数据包里封装入自定义UDP包头,填入需要的原目的IP,数据包的序列号等,对数据包进行NAPT处理,目的IP改为服务器IP,加入设备ID号和链路权重,重新对数据封包计算check sum;根据网关各个互联网接口的带宽和时延确定各个互联网接口的权重值,根据各个互联网接口的权重值对封装后的数据包进行分发,网关通过各个互联网接口在互联网中建立多个并行数据传输通道,将数据包传送至服务器。
图7是本申请实施例五提供的一种服务器侧的数据处理流程图,如图7所示,服务器侧的数据处理包括:
拦截接收数据包,检测数据封包来自网关还是终端;若数据包来自网关,返回ACK给对应的网关;记录网关设备ID、源端口和链路权重,根据序列号重新对数据包进行排序,对数据包解封装,去除数据包中网关加入的自定义UDP包头;根据设备ID和源端口对数据包做NAPT处理,该NAPT处理包括SNAT处理;重新计算数据包的check sum;将处理后的数据包发送至终端。
若数据包来自终端,在原有的数据包中加入自定义UDP包头,对数据进行NAPT处理,该NAPT处理包括DNAT处理;根据保存的网关设备ID的链路权重对数据包进行链路选择;重新计算数据包的check sum;根据选择的链路将数据包通过互联网发送至网关。
本实施例中,通过根据接口带宽和时延确定数据传输链路的权重值,并根据链路权重对数据包进行转发,可以提高数据传输的速率;通过在数据包中封装和解封装带有序列号的自定义UDP包头,可以不需要用户参与和支持,就能实现带宽叠加。
图8是本申请提供的一种网络带宽叠加的装置的示意图,适用于网关设备,如图8所示,所述装置8包括以下模块:
权重值确定模块81,用于配置多个互联网接口,确定所述多个互联网接口对应的权重值;
数据包接收模块82,用于接收数据包,识别所述数据包的发送端;
数据包处理模块83,用于处理接收到的数据包,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
数据包发送模块84,用于发送数据包,若所述发送端为用户终端,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。
在本申请实施例中,权重值确定模块81具体可以包括如下子模块:
获取子模块,用于获取各个接口的的带宽和时延;
第一计算子模块,用于计算多个互联网接口的总带宽、总时延值、各个互联网接口的时延值占总时延值的第一比值、各个互联网接口的带宽占总带宽的第二比值,以及,数值1与所述第一比值之间的差值;
第二计算子模块,用于计算所述差值与所述第二比值之间的乘积,作为所述各个互联网接口的权重值。
在本申请实施例中,数据包接收模块82具体可以包括如下子模块:
接收子模块,用于接收数据包。
识别子模块,用于识别接收到的数据包的发送端。确定所述数据包是否携带满足预设条件的包头;若是,则判定所述发送端为服务器;若否,则判定所述发送端为用户终端。
在本申请实施例中,数据包处理模块83具体可以包括如下子模块:
生成子模块,用于若所述发送端为用户终端,则采用所述数据包携带的目的IP与预设的序列号,生成预设的包头,所述服务器用于依据所述序列号对所述数据包排序;
处理子模块,对封装后的数据包进行NAPT处理,重新数据包的check sum;
封装子模块,用于采用所述预设的包头对所述数据包进行封装。
在本申请实施例中,数据包发送模块84具体可以包括如下子模块:
计算子模块,用于根据所述各个互联网接口的权重值,计算所述各个互联网接口接收所述数据包的比值;
分发子模块,用于按照所述比值,将所述封装后的数据包分发到各个互联网接口;
发送子模块,用于各个互联网接口将所述封装后的数据包转发至服务器。
图9是本申请提供的一种网络带宽叠加的装置的示意图,适用于服务器,如图9所示,所述装置9包括以下模块:
数据包接收模块91,当接收到数据包时,识别所述数据包的发送端;
数据包处理模块92,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
数据包发送模块93,将封装后的所述数据包转发至网关。
图10是本申请实施例提供的一种网关设备的示意图。如图10所示,该实施例的网关设备10包括:处理器100、存储器101以及存储在所述存储器101中并可在所述处理器100上运行的计算机程序102。所述处理器100执行所述计算机程序102时实现上述网络带宽叠加方法实施例中的步骤,例如图1所示的S101至S104。或者,所述处理器100执行所述计算机程序102时实现上述各装置实施例中各模块的功能,例如图8所示模块81至84的功能。
示例性的,所述计算机程序102可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器102中,并由所述处理器100执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序102在所述网关设备10中的执行过程。例如,所述计算机程序102可以被分割成确定模块、接收模块、处理模块、发送模块,各模块具体功能如下:
确定模块,用于配置多个互联网接口,确定所述多个互联网接口对应的权重值;
接收模块,用于接收数据包,识别所述数据包的发送端;
处理模块,用于处理接收到的数据包,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
发送模块,用于发送数据包,若所述发送端为用户终端,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器。
图11是本申请实施例提供的一种服务器的示意图。如图11所示,该实施例的服务器11包括:处理器110、存储器111以及存储在所述存储器111中并可在所述处理器110上运行的计算机程序112。所述处理器110执行所述计算机程序112时实现上述网络带宽叠加方法实施例中的步骤,例如图4所示的S401至S403。或者,所述处理器110执行所述计算机程序112时实现上述各装置实施例中各模块的功能,例如图9所示模块91至93的功能。
示例性的,所述计算机程序112可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器112中,并由所述处理器110执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序112在所述服务器11中的执行过程。例如,所述计算机程序112可以被分割成接收模块、处理模块、发送模块,各模块具体功能如下:
接收模块,当接收到数据包时,识别所述数据包的发送端;
处理模块,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
发送模块,将封装后的所述数据包转发至网关设备。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或模块的间接耦合或通讯连接,可以是电性,机械或其他的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (9)
1.一种网络带宽叠加的方法,适用于网关设备,用户终端通过网关设备、互联网、服务器将数据包发送到目标终端,其特征在于,包括:
配置多个互联网接口,确定所述多个互联网接口对应的权重值;
当接收到数据包时,识别所述数据包的发送端;
若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
对数据包进行网络地址端口转换处理,将目的IP改为服务器IP,加入设备号和链路权重,并重新计算数据包的校验和;其中,所述链路权重用于服务器在发送数据包到网关设备时进行链路选择;
根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器;
若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装,包括:
若所述发送端为用户终端,则采用所述数据包携带的目的IP与预设的序列号,生成预设的包头,所述服务器用于依据所述序列号对所述数据包排序;
采用所述预设的包头对所述数据包进行封装。
2.如权利要求1所述的方法,其特征在于,所述确定所述多个互联网接口对应的权重值,包括:
分别获取各个互联网接口的带宽和时延值;
计算所述多个互联网接口的总带宽、总时延值、所述各个互联网接口的时延值占所述总时延值的第一比值、所述各个互联网接口的带宽占所述总带宽的第二比值,以及,数值1与所述第一比值之间的差值;
计算所述差值与所述第二比值之间的乘积,作为所述各个互联网接口的权重值。
3.如权利要求1所述的方法,其特征在于,所述当接收到数据包时,识别所述数据包的发送端,包括:
确定所述数据包是否携带满足预设条件的包头;
若是,则判定所述发送端为服务器;
若否,则判定所述发送端为用户终端。
4.如权利要求2所述的方法,其特征在于,所述根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器,包括:
根据所述各个互联网接口的权重值,计算所述各个互联网接口接收所述数据包的比值;
按照所述比值,将所述封装后的数据包分发到各个互联网接口,由所述各个互联网接口将所述封装后的数据包转发至服务器。
5.如权利要求1所述的方法,其特征在于,还包括:
若所述发送端为服务器,则对所述数据包进行解封装,去除所述数据包携带的满足预设条件的包头,所述满足预设条件的包头由所述服务器生成并封装至所述数据包中;
将解封装后的所述数据包转发至用户终端。
6.一种网络带宽叠加的方法,适用于服务器,数据包从终端经服务器、互联网、网关设备传送至用户终端,其特征在于,包括:
当接收到数据包时,识别所述数据包的发送端;
若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;
对数据包进行目的地址转换处理;根据保存的设备ID的链路权重对封装后的数据包进行链路选择;
将封装后的所述数据包转发至网关设备;
若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装,包括:
若所述发送端为用户终端,则采用所述数据包携带的目的IP与预设的序列号,生成预设的包头;所述序列号用于对所述数据包排序;
采用所述预设的包头对所述数据包进行封装。
7.一种网络带宽叠加的装置,适用于网关设备,用户终端通过网关设备、互联网、服务器将数据包发送到目标终端,其特征在于,包括:
确定模块,用于配置多个互联网接口,确定所述多个互联网接口对应的权重值;
接收模块,用于接收数据包,识别所述数据包的发送端;
处理模块,用于处理接收到的数据包,若所述发送端为用户终端,则采用预设的包头对所述数据包进行封装;对数据包进行网络地址端口转换处理,将目的IP改为服务器IP,加入设备号和链路权重,并重新计算数据包的校验和;其中,所述链路权重用于服务器在发送数据包到网关设备时进行链路选择;
发送模块,用于发送数据包,若所述发送端为用户终端,根据各个互联网接口的权重值,将封装后的所述数据包转发至服务器;
所述处理模块,具体用于:
若所述发送端为用户终端,则采用所述数据包携带的目的IP与预设的序列号,生成预设的包头;所述服务器用于依据所述序列号对所述数据包排序;
采用所述预设的包头对所述数据包进行封装。
8.一种网关设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818587.XA CN110601948B (zh) | 2019-08-30 | 2019-08-30 | 网络带宽叠加的方法、装置及网关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818587.XA CN110601948B (zh) | 2019-08-30 | 2019-08-30 | 网络带宽叠加的方法、装置及网关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110601948A CN110601948A (zh) | 2019-12-20 |
CN110601948B true CN110601948B (zh) | 2021-12-31 |
Family
ID=68856586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910818587.XA Active CN110601948B (zh) | 2019-08-30 | 2019-08-30 | 网络带宽叠加的方法、装置及网关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110601948B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116232999A (zh) * | 2023-03-14 | 2023-06-06 | 北京百度网讯科技有限公司 | 用于网络集群的流量调度方法及装置、电子设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004049587A1 (en) * | 2002-11-27 | 2004-06-10 | Nokia Corporation | System and method for collision-free transmission scheduling in a network |
CN101815160A (zh) * | 2010-03-26 | 2010-08-25 | 深圳创维数字技术股份有限公司 | 电视网络广告发布***及方法 |
CN104734947A (zh) * | 2015-03-20 | 2015-06-24 | 田广礼 | 一纤通式家庭网关 |
CN105531973A (zh) * | 2013-06-12 | 2016-04-27 | 徐正焕 | 利用封装协议将客户端的ip地址发送至服务器的中继***和方法 |
CN107294868A (zh) * | 2017-07-10 | 2017-10-24 | 西安电子科技大学 | 多类型出口网关的负载均衡方法 |
CN107770814A (zh) * | 2017-09-29 | 2018-03-06 | 努比亚技术有限公司 | 数据链路均衡方法、移动终端及计算机可读存储介质 |
CN108337698A (zh) * | 2018-02-02 | 2018-07-27 | 普联技术有限公司 | 基于多链路的数据流调整方法、装置、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449420A (zh) * | 2018-03-30 | 2018-08-24 | 黄杨广 | 一种增大网络用户有效网络带宽的方法 |
CN110933719B (zh) * | 2019-11-01 | 2023-03-28 | 中国联合网络通信集团有限公司 | 承载建立的方法、装置及*** |
-
2019
- 2019-08-30 CN CN201910818587.XA patent/CN110601948B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004049587A1 (en) * | 2002-11-27 | 2004-06-10 | Nokia Corporation | System and method for collision-free transmission scheduling in a network |
CN101815160A (zh) * | 2010-03-26 | 2010-08-25 | 深圳创维数字技术股份有限公司 | 电视网络广告发布***及方法 |
CN105531973A (zh) * | 2013-06-12 | 2016-04-27 | 徐正焕 | 利用封装协议将客户端的ip地址发送至服务器的中继***和方法 |
CN104734947A (zh) * | 2015-03-20 | 2015-06-24 | 田广礼 | 一纤通式家庭网关 |
CN107294868A (zh) * | 2017-07-10 | 2017-10-24 | 西安电子科技大学 | 多类型出口网关的负载均衡方法 |
CN107770814A (zh) * | 2017-09-29 | 2018-03-06 | 努比亚技术有限公司 | 数据链路均衡方法、移动终端及计算机可读存储介质 |
CN108337698A (zh) * | 2018-02-02 | 2018-07-27 | 普联技术有限公司 | 基于多链路的数据流调整方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110601948A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881008B (zh) | 一种数据传输的方法、装置和*** | |
US10735323B2 (en) | Service traffic allocation method and apparatus | |
EP3709577A1 (en) | On-demand probing for quality of experience metrics | |
CN109076017B (zh) | 用于路由信号的方法、路由设备和计算机可读存储介质 | |
US20170063699A1 (en) | Method and apparatus for configuring multi-paths using segment list | |
EP3694160A1 (en) | Date transmission method, apparatus and device | |
CN107079017B (zh) | 一种报文转换方法及装置 | |
CN111866956A (zh) | 一种数据传输方法及对应的设备 | |
CN111935009B (zh) | 数据包路由方法、装置、设备、***及存储介质 | |
US10009282B2 (en) | Self-protecting computer network router with queue resource manager | |
EP4057576A1 (en) | Packet encapsulating method and apparatus, and packet decapsulating method and apparatus | |
CN106464567B (zh) | 一种流量动态控制方法、设备及网关、融合接入汇聚点 | |
WO2016162501A1 (en) | Method and system for the scheduling of packets in a bundling scenario based on tcp tunnels and native tcp information | |
TW201737664A (zh) | 集群精確限速方法和裝置 | |
CN109600248B (zh) | 服务质量的确定方法、装置及存储介质 | |
CN110932992A (zh) | 一种基于隧道模式的负载均衡通信方法 | |
JP5775214B2 (ja) | 適応性の伝送キュー長を用いたデータパケット損失低減システムおよび方法 | |
CN111788812B (zh) | 用于分组数据转换的技术 | |
CN110601948B (zh) | 网络带宽叠加的方法、装置及网关设备 | |
EP4274123A1 (en) | Packet encapsulation and de-encapsulation method and device, storage medium, and electronic device | |
EP2164208B1 (en) | Method for determining a data transport unit parameter for the communication between two stations in a network of stations and network device adapted to act as a sending station | |
CN112152925B (zh) | 一种数据传输的方法、终端及通信*** | |
CN113965518A (zh) | 一种报文处理的方法及设备 | |
WO2017209843A1 (en) | Self-configuring computer network router | |
Dukkipati et al. | Building a RCP (rate control protocol) test network |
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 |