CN105847142B - 一种报文传输方法及装置 - Google Patents
一种报文传输方法及装置 Download PDFInfo
- Publication number
- CN105847142B CN105847142B CN201610165510.3A CN201610165510A CN105847142B CN 105847142 B CN105847142 B CN 105847142B CN 201610165510 A CN201610165510 A CN 201610165510A CN 105847142 B CN105847142 B CN 105847142B
- Authority
- CN
- China
- Prior art keywords
- message
- address
- aggregation
- sublink
- radius
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004220 aggregation Methods 0.000 claims abstract description 205
- 230000002776 aggregation Effects 0.000 claims abstract description 205
- 230000005540 biological transmission Effects 0.000 claims description 113
- 238000012545 processing Methods 0.000 claims description 32
- 238000012790 confirmation Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 31
- 230000015654 memory Effects 0.000 abstract description 25
- 230000006870 function Effects 0.000 abstract description 18
- 101100206195 Arabidopsis thaliana TCP2 gene Proteins 0.000 description 16
- 101000666730 Homo sapiens T-complex protein 1 subunit alpha Proteins 0.000 description 16
- 101100536570 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CCT2 gene Proteins 0.000 description 16
- 102100038410 T-complex protein 1 subunit alpha Human genes 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 101100206196 Arabidopsis thaliana TCP3 gene Proteins 0.000 description 15
- 101100260060 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CCT3 gene Proteins 0.000 description 15
- 101100206197 Arabidopsis thaliana TCP4 gene Proteins 0.000 description 8
- 101100313194 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CCT4 gene Proteins 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文传输方法及装置,该方法中汇聚代理接收来自虚拟网络功能池VNF Pool中至少两个虚拟机VM中的每个VM的第一报文;所述汇聚代理根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述汇聚代理的IP地址,所述第二报文的目的IP地址为服务器的IP地址;所述汇聚代理通过其与所述服务器之间建立的汇聚链路发送所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,故可减少VNF Pool与服务器之间创建的通信链路数目,节约服务器的内存资源。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种报文传输方法及装置。
背景技术
NFV(Network Function Virtualization,网络功能虚拟化)技术通过基于行业标准的x86服务器、存储设备和交换设备,来取代通信网络中的专用网元设备,能够为运营商节省投资成本,并能帮助运营商获得更多、更灵活的网络能力,故NFV技术应用越来越广泛。
VNF(Virtualized Network Function,虚拟网络功能)以软件的形式运行在NFV系统上,VNF中设置有虚拟机(Virtual Machine,VM)。每个VM可以看作一个独立的网络功能实体,可独立进行重启并拥有自己的root访问权限、用户、互联网协议(Internet Protocol,IP)地址、内存、过程、文件、应用程序、系统函数库以及配置文件等。
为了提升网络性能,VNF中部署有多个VM。在网络功能虚拟化中,部署在VNF中的多个VM组成一个VNF池(VNF Pool),以实现负载分担,提高网络的可靠性。
在VNF Pool中,若启动多个VM,则多个VM中的每个VM与服务器之间建立一条通信链路,例如传输控制协议(Transmission Control Protocol,TCP)连接,并进行报文传输,若VM数量较多,则会在VNF Pool与服务器之间创建过多的通信链路,耗费服务器较多的内存资源。
发明内容
本发明实施例提供一种报文传输方法及装置,以减少VNF Pool与服务器之间创建的通信链路数目,节约服务器的内存资源。
第一方面,提供一种报文传输方法,在该方法中,汇聚代理接收来自VNF Pool中至少两个VM中每个VM的第一报文,并对所述第一报文进行转换得到第二报文,所述第二报文的源IP地址为所述汇聚代理的IP地址,所述第二报文的目的IP地址为服务器的IP地址,然后汇聚代理将所述第二报文通过汇聚代理与服务器之间的汇聚链路向服务器发送,使得VNF Pool对外呈现汇聚链路,服务器将整个VNF Pool作为整体并不感知VNF Pool下存在多个VM,实现将一个VNF Pool中不同VM真正虚拟成一个Pool,并且所述汇聚链路的数目小于所述子链路的数目,节省了服务器下的通信链路数目,以达到节省服务器内存资源的目的。
本发明实施例中,汇聚代理可以是负载分担(Load Balance,LB),该LB可以是内置或外置于VNF Pool。具体采用内置于VNF Pool中的LB还是采用外置于VNF Pool中的LB,可依据与汇聚代理建立子链路的VM所属VNF Pool来确定,若与汇聚代理建立子链路的VM属于不同的VNF Pool,则可采用外置的LB进行汇聚,若与汇聚代理建立子链路的VM属于一个VNFPool,则可采用内置的LB进行汇聚,当然并不引以为限。
本发明实施例中所述汇聚链路的数量可依据所述子链路的数量进行建立。若子链路数量较少,通过一条汇聚链路即可完成传输,则可仅建立一条汇聚链路。若子链路数量庞大,通过一条汇聚链路造成该条汇聚链路的负载过重,则可创建至少两条汇聚链路。
本发明实施例中所述子链路是指VNF Pool中各VM与所述汇聚代理之间建立的链路,所述至少两个VM通过至少两个子链路与所述汇聚代理连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文。所述第一报文的源IP地址为VM的IP地址,第一报文的源端口为VM的端口,第一报文的目的IP地址为汇聚代理的IP地址,第一报文的目的端口为汇聚代理的IP地址。
本发明实施例中,所述汇聚链路是指所述汇聚代理与服务器之间的链路,所述汇聚代理与服务器之间通过汇聚链路连接,所述汇聚链路用于传输第二报文,报文的传送方向为从汇聚代理到服务器,故可利用汇聚代理的IP地址替换第一报文的源IP地址,得到第二报文的源IP地址,利用服务器的IP地址替换第一报文的目的IP地址,得到第二报文的目的IP地址。
本发明实施例中,所述第二报文包括源IP地址和目的IP地址,第二报文还可包括源端口和目的端口,其中,可利用汇聚代理的端口替换第一报文的源端口,得到第二报文的源端口,即所述第二报文的源端口为所述汇聚代理的端口。利用服务器的端口替换第一报文的目的端口,得到第二报文的目的端口,即所述第二报文的目的端口为所述服务器的端口。
本发明实施例中第二报文包括的内容具体可根据第二报文所采用的元组信息来确定,所述元组信息是指例如五元组或七元组等。通常通过IP五元组可标识出报文组成的一个数据流,故本发明实施例中第二报文中优选包括IP五元组的信息,即包括源端口、源IP、目的端口、目的IP和采用的协议。
本发明实施例中第二报文可根据不同的传输协议,包含不同的内容。
一种可能的设计中,所述子链路为子TCP连接,所述汇聚链路为汇聚TCP连接。所述第二报文中还包括序列号,其中,所述第二报文的序列号是所述汇聚代理依据所述汇聚TCP连接分配的序列号。本发明实施例中可利用汇聚链路分配的序列号,替换子链路分配的序列号,得到第二报文的序列号。
本发明实施例中汇聚代理可按照第二报文中包括的源IP地址、源端口、目的IP地址、目的端口和第二报文的序列号,通过汇聚TCP连接向服务器发送所述第二报文,实现所述子TCP连接中的报文汇聚到汇聚TCP连接中向服务器发送。
本发明实施例中汇聚代理通过汇聚TCP连接向服务器发送第二报文后,还可通过所述汇聚TCP连接,接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包括第二报文的确认序列号,所述第二报文的确认序列号为所述第二报文的序列号和所述第二报文的数据长度之和;所述汇聚代理依据所述第二回应报文中包括的第二报文的确认序列号查找预先保存的关系列表,确定所述第二报文的序列号和所述第二报文的数据长度,所述预先保存的关系列表中包括所述第二报文的序列号、第二报文的数据长度以及传输第一报文的子TCP连接之间的对应关系;所述汇聚代理依据所述确定出的所述第二报文的序列号和所述第二报文的数据长度,在所述关系列表中确定出传输所述第一报文的子TCP连接;所述汇聚代理根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述汇聚代理的IP地址,所述第一回应报文的目的IP地址为所述确定出的子TCP连接所连接的VM的IP地址,所述第一回应报文中包括第一报文的确认序列号,所述第一报文的确认序列号为所述第一报文的序列号和所述第一报文的数据长度之和;所述汇聚代理通过所述确定出的子TCP连接,向所述确定出的子TCP连接所连接的VM转发所述第一回应报文,实现回应报文的接收转发。
可选的,所述汇聚TCP连接是所述汇聚代理接收到所述VNF Pool中通过首个子TCP连接传输的第一报文时新建的TCP连接,而在接收到后续子TCP连接传输的第一报文时,不触发建立汇聚TCP连接。
本发明实施例通过上述可能的实现方式,实现了通过汇聚代理将各VM的子TCP连接中的报文汇聚到一个汇聚TCP连接中进行报文的发送和接收,能够节省服务器侧的TCP链路数目,以达到节省服务器内存资源的目的。
另一种可能的设计中,所述子链路为远程用户拨号认证系统RADIUS子会话,所述汇聚链路为RADIUS汇聚会话;所述第二报文中还包括匹配标识符,其中,所述第二报文的匹配标识符是所述汇聚代理依据所述RADIUS汇聚会话分配的匹配标识符。本发明实施例中可利用RADIUS汇聚会话重新分配的匹配标识符替换RADIUS子会话分配的匹配标识符,得到第二报文的匹配标识符,即第二报文的匹配标识符是依据RADIUS汇聚会话的IP地址、端口等信息进行分配的,能够避免与RADIUS子会话分配的匹配标识符重复。
本发明实施例中汇聚代理可按照第二报文中包括的源IP地址、源端口、目的IP地址、目的端口和第二报文的匹配标识符,通过RADIUS汇聚会话向服务器发送所述第二报文,实现所述RADIUS子会话中的报文汇聚到RADIUS汇聚会话中向服务器发送。
本发明实施例中汇聚代理通过RADIUS汇聚会话向服务器发送第二报文后,还可通过所述RADIUS汇聚会话,接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包含有第二报文的匹配标识符;所述汇聚代理依据所述第二回应报文中包含的第二报文的匹配标识符查找预先创建的代理表,确定RADIUS子会话分配的所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,所述代理表中保存所述第二报文的匹配标识符、所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话之间的对应关系;所述汇聚代理根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述汇聚代理的IP地址,所述第一回应报文的目的IP地址为所述确定出的RADIUS子会话所连接的VM的IP地址;所述汇聚代理依据所述确定出的第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,向所述确定出的RADIUS子会话所连接的VM转发所述第一回应报文。
可选的,所述RADIUS汇聚会话为所述汇聚代理与服务器之间已建立的RADIUS会话,即可通过直接修改已建立的RADIUS会话得到所述RADIUS汇聚会话。
本发明实施例通过上述可能的实现方式,实现了通过汇聚代理将不同VM的RADIUS子会话中的报文汇聚到RADIUS汇聚会话中进行报文的发送和接收,能够节省服务器侧的RADIUS会话数目,以达到节省服务器内存资源的目的。
再一种可能的设计中,所述汇聚代理在确认所述子链路被释放的情况下,释放所述汇聚链路,以进一步节省资源。
第二方面,提供一种报文传输装置,该实现报文传输的装置,具有实现上述第一方面涉及的实现报文传输方法的相应功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。例如,所述报文传输装置,包括接收单元和处理单元,所述接收单元,用于接收来自VNF Pool中至少两个VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述报文传输装置连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文。所述处理单元,用于根据所述第一报文获得第二报文,所述第二报文包括源IP地址和目的IP地址,所述第二报文的源IP地址为所述报文传输装置的IP地址,所述第二报文的目的IP地址为服务器的IP地址。所述发送单元,用于通过所述报文传输装置与所述服务器之间建立的汇聚链路发送所述处理单元获得的所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,以节省服务器下的通信链路数目,达到节省服务器内存资源的目的。
第三方面,提供一种汇聚代理,该汇聚代理包括处理器和存储器,其中,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,实现第一方面涉及的报文传输方法。
第四方面,提供一种计算机存储介质,用于储存上述实现报文传输装置或汇聚代理所用的计算机软件指令,其包含用于执行上述第一方面涉及的报文传输方法所涉及的程序。
附图说明
图1为本发明实施例提供的报文传输方法可应用的网络架构图;
图2为本发明实施例提供的报文传输方法实现流程图;
图3为本发明实施例提供的报文传输的过程示意图;
图4为本发明实施例内置于VNF Pool中的LB进行报文传输的实现过程示意图;
图5为本发明实施例外置于VNF Pool中的LB进行报文传输的实现过程示意图;
图6为本发明实施例中采用TCP协议进行报文传输的过程示意图;
图7为本发明实施例中采用RADIUS汇聚会话进行报文传输的过程示意图;
图8为本发明实施例提供的报文传输装置的结构示意图;
图9为本发明实施例提供的汇聚代理的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。
本发明实施例提供的报文传输方法可应用于图1所示的网络架构。图1中,VNFPool中部署的多个VM中的每个VM都与服务器之间建立有通信链路,并通过建立的通信链路进行信息交互。例如VM1与服务器之间建立有通信链路1并通过通信链路1进行信息交互,VM2与服务器之间建立有通信链路2并通过通信链路2进行信息交互,VM3与服务器之间建立有通信链路3并通过通信链路3进行信息交互。在网络功能虚拟化中,VNF Pool中部署的多个VM(例如VM1、VM2和VM3)可能会同时启动并与服务器之间进行交互,此时服务器需要对下连的多条通信链路(例如通信链路1、通信链路2和通信链路3)进行处理,将会耗费较多的服务器内存资源。
需要说明的是,本发明实施例中图1所示的网络系统架构中还包括有负载分担(Load Balance,LB),该LB主要根据负载分担策略做VM间的负载分担,对VM1、VM2和VM3与服务器之间交互的报文进行透传。图1所示的网络架构中,是以LB内置于VNF Pool为例进行示意说明的,但并不引以为限,该LB可以是内置或外置于所述VNF Pool中。
进一步需要说明的是,图1所示中涉及的各VM的结构仅是进行示意性说明,并不引以为限,例如VM中可以包括具有控制功能的VM控制单元(sControl),也可以包括具有转发功能的VM转发单元(sForward),每个VM控制单元和转发单元的组合可以看作是一个独立的网络功能实体,图1中并未进行示意。
本发明实施例中为避免VM与服务器进行交互过程中建立过多的通信链路,耗费服务器的内存资源,可将来自VNF Pool中多个VM的报文汇聚后与服务器进行交互,以节省服务器的内存资源。
本发明实施例中为实现将VNF Pool中多个VM的报文汇聚后与服务器进行交互,可通过部署汇聚代理实现,VM与汇聚代理之间建立通信链路,VM与所述子链路一一对应。VM通过其与汇聚代理之间建立的通信链路将发送给服务器的报文先发送给汇聚代理。汇聚代理与服务器之间建立数量小于VM与汇聚代理之间建立通信链路的通信链路,汇聚代理对接收到的报文进行汇聚处理后通过其与服务器之间建立的通信链路发送给服务器。使得VNFPool对外呈现汇聚链路,服务器将整个VNF Pool作为整体并不感知VNF Pool下存在多个VM,实现将一个VNF Pool中不同VM真正虚拟成一个Pool,并且所述汇聚链路的数目小于所述子链路的数目,节省了服务器下的通信链路数目,以达到节省服务器内存资源的目的。
本发明实施例中,以下为描述方便可将VM与汇聚代理之间建立的链路称为子链路,所述子链路传输的报文称为第一报文。将汇聚代理与服务器之间建立的链路称为汇聚链路,所述汇聚链路传输的报文称为第二报文。
图2所示为本发明实施例提供的报文传输方法的实现流程图,图3所示为本发明实施例提供的报文传输过程示意图。
S101:VNF Pool中的每个VM与汇聚代理建立子链路,如图3所示,VNF Pool中包括有VM1、VM2和VM3,VM1、VM2和VM3分别与汇聚代理建立子链路,建立的子链路分别为子链路1、子链路2和子链路3。
S102:汇聚代理与服务器之间新建一个汇聚链路,如图3所示。
本发明实施例中,汇聚代理可在接收到通过首个子链路传输的报文时,建立汇聚链路,而在接收到通过后续子链路传输的报文时,不触发建立汇聚链路。例如,本发明实施例中可在VM1请求与汇聚代理建立子链路1时,触发建立汇聚链路。
本发明实施例中汇聚代理与服务器之间建立的汇聚链路的数目可依据VM与汇聚代理之间建立的子链路的数目来确定,若子链路数量较少,通过一条汇聚链路即可完成传输,则可仅建立一条汇聚链路。若子链路数量庞大,通过一条汇聚链路造成该条汇聚链路的负载过重,则可创建至少两条汇聚链路。本发明实施例中以下以汇聚链路为一条进行举例说明,但并不引以为限。图3中以包括一条汇聚链路为例进行说明。
S103:VNF Pool中多个VM中的每个VM分别通过子链路传输第一报文,汇聚代理接收来自VNF Pool中多个VM中每个VM的第一报文。例如图3中通过子链路1传输来自VM1的第一报文,通过子链路2传输来自VM2的第一报文,通过子链路3传输来自VM3第一报文。
S104:汇聚代理依据所述第一报文得到第二报文。
本发明实施例中所述第二报文是依据所述第一报文所得到的,通常是将所述第一报文的报文头进行修改后得到,例如可采用如下方式:所述汇聚代理获取所述第一报文的报文头信息,所述报文头信息中包括所述子链路中传输所述第一报文的元组信息,所述元组信息可以是N元组信息,其中N大于等于3,例如,更具体的N元组信息是三元组信息或者五元组信息或者七元组信息等。通常通过IP五元组可标识出报文组成的一个数据流,故本发明实施例中以下以第一报文中包括IP五元组的信息,即包括源端口、源IP、目的端口、目的IP和采用的协议为例进行说明,但并不引以为限。所述汇聚代理依据第二报文的元组信息替换所述第一报文的元组信息,得到所述第二报文的报文头信息,然后结合第一报文的载荷得到第二报文。
本发明实施例中所述第二报文的元组信息中包括源IP地址和目的IP地址,还可包括源端口和目的端口,其中,可利用汇聚代理的端口替换第一报文的源端口,得到第二报文的源端口,即所述第二报文的源端口为所述汇聚代理的端口。利用服务器的端口替换第一报文的目的端口,得到第二报文的目的端口,即所述第二报文的目的端口为所述服务器的端口。
本发明实施例中第二报文包括的具体内容可根据第二报文所采用的元组信息来确定,所述元组信息可以是N元组信息,其中N大于等于3,例如,更具体的N元组信息是三元组信息或者五元组信息或者七元组信息等。通常通过IP五元组可标识出报文组成的一个数据流,故本发明实施例中第二报文中优选包括IP五元组的信息,即包括源端口、源IP、目的端口、目的IP和采用的协议。本发明实施例以下以第二报文的元组信息包括IP五元组为例进行说明,但并不引以为限。
S105:汇聚代理通过其与服务器之间建立的汇聚链路发送所述第二报文。
本发明实施例中汇聚代理可按照第一报文的接收顺序,将通过子链路1、子链路2和子链路3传输的第一报文加入到汇聚链路中,实现外部服务器与VNF Pool之间维护数量较少的通信链路,并使用较少的端口(socket)进行报文的传输。例如图3所示实现过程中,VM1、VM2和VM3分别用socket1、socket2和socket3向汇聚代理发送第一报文,汇聚代理接收到第一报文后得到第二报文,通过socket4向服务器发送第二报文。
本发明实施例以下将结合实际应用对上述实施例涉及的报文传输方法进行说明。
本发明实施例中,所述汇聚代理可以是部署在图1所示网络架构中独立存在的部件,也可以是集成在所述LB内部的部件,本发明实施例不做限定。本发明实施例中若所述汇聚代理为集成在所述LB内部的部件,即可以理解为是在现有具有负载分担功能的LB上新增汇聚代理的功能,此种情况可无需新增设备。
本发明实施例以下以所述汇聚代理为集成在所述LB内部的部件为例进行说明,即所述汇聚代理为新增汇聚代理功能的LB。
本发明实施例中新增汇聚代理功能的LB可以内置或外置于所述VNF Pool中。具体采用内置于VNF Pool中的LB还是采用外置于VNF Pool中的LB,可依据与汇聚代理建立子链路的VM所属VNF Pool来确定。在一种可能的实现方式中,与汇聚代理建立子链路的VM属于不同的VNF Pool,则可采用外置的LB进行汇聚。在另一种可能的实现方式中,与汇聚代理建立子链路的VM属于一个VNF Pool,则可采用内置的LB进行汇聚。可以理解的是,与汇聚代理建立子链路的VM属于同一个VNF Pool的情况下,也可采用外置的LB进行汇聚,本发明实施例不做限定。
图4所示为内置于VNF Pool中的LB通过汇聚链路发送报文的实现过程示意图。图4中,VM1、VM2和VM3形成一个VNF Pool,VM1与LB之间建立有子链路1,VM2与LB之间建立有子链路2,VM3与LB之间建立有子链路3,LB与服务器之间建立有汇聚链路(图4中以汇聚链路的数量为一条进行示意说明,但并不引以为限)。VM1通过子链路1向LB发送第一报文,VM2通过子链路2向LB发送第一报文,VM3通过子链路3向LB发送第一报文,其中,VM1、VM2和VM3发送的第一报文的源IP地址不同,目的IP地址相同都为LB的IP地址。LB接收到VM1、VM2和VM3发送的第一报文后,利用LB的IP地址替换第一报文的源IP地址,利用服务器的IP地址替换第一报文的目的IP地址,从而获得第二报文,其中,所述第二报文的的源IP地址为所述汇聚代理的IP地址,所述第二报文的目的IP地址为服务器的IP地址。LB通过其与服务器之间建立的汇聚链路发送所述第二报文。
图5所示为外置于VNF Pool中的LB通过汇聚链路发送报文的实现过程示意图。图5中,VM1和VM2形成一个VNF Pool,VM3和VM4形成一个VNF Pool。本发明实施例中不限定每个VNF Pool中的VM的形式,本发明实施例中以VM1和VM2互为主备,VM3和VM4互为主备为例进行举例说明。VM1和VM2同一时间内中有一个与LB建立子链路1,VM3和VM4同一时间内中有一个与LB建立子链路2,图5中以VM1与LB建立子链路1,VM3与LB建立子链路2为例进行说明。外置于VNF Pool的LB与服务器之间建立有汇聚链路。图5中通过子链路发送第一报文,LB对第一报文进行处理得到第二报文,以及通过汇聚链路发送第二报文的过程与图4中的实现过程相比,不同之处仅在于VM属于不同VNF Pool,具有汇聚功能的LB外置于VNF Pool,其它类似,故在此不再赘述。
通过图4和图5所示的报文发送过程实施示意图可知,本发明实施例中发送第一报文的多个VM可属于同一个VNF Pool,也可属于不同的VNF Pool。
本发明实施例中进行报文传输时根据采用的传输协议不同,第二报文所包含的内容也会不同,例如若采用传输控制协议(Transmission Control Protocol,TCP),则所述第二报文中还可包括序列号。若采用用户数据包协议(User Datagram Protocol,UDP),则所述第二报文中还可包括匹配标识符、本发明实施例以下将分别针对上述两种协议进行举例说明。
首先,以采用TCP协议为例进行说明,采用TCP协议进行报文传输时,VM与LB之间建立的子链路可称为子TCP连接,LB与服务器之间建立的汇聚链路可称为汇聚TCP连接。
图6所示为本发明实施例中采用TCP协议进行报文传输的过程示意图。图6中,VNFPool中的VM1、VM2和VM3分别与LB建立子TCP连接。VM1与LB建立的子TCP连接为TCP1,TCP1用于传输来自VM1的第一报文。VM2与LB建立的子TCP连接为TCP2,TCP2用于传输来自VM2的第一报文。VM3与LB建立的子TCP连接为TCP3,TCP3用于传输来自VM3的第一报文。采用TCP协议进行报文传输时,为保证传送报文的顺序以及保证所有传输的报文可按照正常顺序进行重组,则每个子TCP连接都要为每次发送的报文分配一个序列号,换言之,所述第一报文中还包括有序列号,且所述序列号与子TCP连接一一对应,例如通过TCP1传输的第一报文的序列号为seq1n,通过TCP2传输的第一报文的序列号为seq2n,通过TCP3传输的第一报文的序列号为seq3n。
本发明实施例中以VM1、VM2和VM3发送的第一报文中包括有IP五元组(源IP、源端口、目的IP、目的端口和传输协议),还包括有序列号为例进行说明,则IP五元组、序列号以及子TCP连接之间的对应关系如表1所示。
表1
本发明实施例中LB接收VM1、VM2和VM3发送的第一报文,依据该第一报文获得第二报文。本发明实施例中所述第二报文包括的内容可依据第一报文包括的内容得到。例如第一报文包括IP五元组和序列号,则所述第二报文中也包括有IP五元组和序列号,不同之处在于,所述第二报文中包括的IP五元组和序列号是不同于第一报文中包括的IP五元组和序列号的。第二报文的IP五元组是LB依据汇聚TCP连接替换第一报文的IP五元组得到,例如,利用LB的IP地址替换通过TCP1、TCP2和TCP3传输的第一报文的源IP地址,得到第二报文的源IP地址,即第二报文的源IP地址为LB的IP地址。利用服务器的IP地址替换通过TCP1、TCP2和TCP3传输的第一报文的目的IP地址,得到第二报文的目的IP地址,即第二报文的目的IP地址为服务器的IP地址。利用LB的端口替换通过TCP1、TCP2和TCP3传输的第一报文的源端口,得到第二报文的源端口,即第二报文的源端口为LB的端口。利用服务器的端口替换通过TCP1、TCP2和TCP3传输的第一报文的目的端口,得到第二报文的目的端口,即第二报文的目的端口为服务器的端口。TCP4与TCP1、TCP2和TCP3采用的传输协议相同,即第二报文的传输协议为TCP。
第二报文的序列号是LB依据汇聚TCP连接分配的序列号替换第一报文的序列号得到的。本发明实施例中TCP4传输的第二报文可以理解为是顺序接收到TCP1、TCP2和TCP3传输的第一报文的报文头信息中包括的IP五元组被替换后得到的报文,故TCP4进行序列号分配时为TCP1、TCP2和TCP3传输的第一报文分配的序列号分别为seq4n,seq4n+length1和seq4n+length1+length2。其中,length1为TCP1传输的第一报文的长度,length2为TCP2传输的第一报文的长度。利用TCP4分配的序列号替换第一报文的序列号后,可得到第二报文的序列号,即依据TCP1传输的第一报文得到的第二报文的序列号为seq4n,依据TCP2传输的第一报文得到的第二报文的序列号为seq4n+length1,依据TCP3传输的第一报文得到的第二报文的序列号为seq4n+length1+length2。
第二报文的IP五元组以及序列号之间的对应关系如表2所示。
表2
本发明实施例中LB接收到来自VM1、VM2和VM3发送的第一报文后,按照上述转换方式对第一报文进行处理后可得到第二报文,然后即可通过汇聚TCP连接(即TCP4)向服务器发送所述第二报文。
本发明实施例中LB通过汇聚TCP连接向服务器发送第二报文后,还可接收服务器响应所述第二报文的回应报文,并依据所述第二报文的回应报文得到第一报文的回应报文,将所述第一报文的回应报文转发给VM1、VM2和VM3。本发明实施例以下为描述方便,将第二报文的回应报文称为第二回应报文,将第一报文的回应报文称为第一回应报文。
具体的,采用TCP传输协议进行报文传输时,发送端发送的报文可以用序列号来确认对端是否收到,发送端发送报文时,会把这个报文的序列号放入待确认队列中,同时启动重传计时器,如果收到了该报文的回应报文确认序列号,通过该确认序列号来确定报文已收到,若确定该报文已收到则将此包从待确认队列中删除,采用TCP传输协议进行报文传输时,也可通过序列号来保证所有传输的报文可以按照正常的顺序进行重组。
本发明实施例中LB将通过TCP1、TCP2和TCP3传输的第一报文汇聚到TCP4发送给服务器之后,可将TCP4分配的第二报文的序列号加入到TCP4的待确认队列中,并保存第二报文的序列号、第二报文的数据长度以及传输第一报文的子TCP连接(TCP1、TCP2和TCP3)之间的对应关系。第二报文的第二回应报文中包括第二报文的确认序列号,该第二报文的确认序列号通常为第二报文的序列号与第二报文的数据长度之和,故LB可通过第二报文的确认序列号,确定出第二报文的序列号与第二报文的数据长度,进而确定出传输第一报文的子TCP连接,并通过确定出的第一报文的子TCP连接将第一报文的回应报文转发给相应的VM。
本发明实施例中LB可预先保存第二报文的序列号、第二报文的数据长度以及传输第一报文的子TCP连接(TCP1、TCP2和TCP3)之间的对应关系,例如表3所示。
表3
第二报文的序列号 | 第二报文的数据长度 | 子TCP连接 |
seq4n | length1 | TCP1 |
seq4n+length1 | length2 | TCP2 |
seq4n+length1+length2 | Length3 | TCP3 |
LB接收到第二回应报文后,依据第二回应报文中包括的第二报文的确认序列号,查找预先保存的关系列表,确定出第二报文的序列号和第二报文的数据长度之和与所述第二报文的确认序列号相等的第二报文的序列号和第二报文的数据长度,然后依据所述第二报文的序列号和所述第二报文的数据长度,以及第二报文的序列号、第二报文的数据长度以及传输第一报文的子TCP连接之间的对应关系,确定出传输第一报文的子TCP连接。
本发明实施例中确定出传输的第一报文的子TCP连接之后,所述汇聚代理获得第一报文的第一回应报文,所述第一回应报文的源IP地址为所述汇聚代理的IP地址,所述第一回应报文的目的IP地址为确定出的子TCP连接所连接的VM的IP地址;所述第一回应报文中包括第一报文的确认序列号,该第一报文的确认序列号通常为第一报文的序列号与第一报文的数据长度之和。所述汇聚代理通过所述确定出的子TCP连接,向所述确定出的子TCP连接所连接的VM转发所述第一回应报文。VM接收到所述第一回应报文后,依据所述第一回应报文中包括的第一报文的确认序列号,可确定出所述第一回应报文所回应的第一报文。
本发明实施例中汇聚代理可通过确定出的子TCP连接传输的第一报文的IP五元组以及第一报文的确认序列号,替换第二回应报文的IP五元组以及第二报文的序列号,得到第一报文的第一回应报文的IP五元组以及序列号。
本发明实施例中第二回应报文的IP五元组以及第二报文的序列号可如下表4所示。
表4
本发明实施例中第一回应报文的IP五元组以及第一报文的序列号可如下表5所示。
表5
需要说明的是,本发明实施例表5中length1为VM1发送的第一报文的数据长度,length2为VM2发送的第一报文的数据长度,length3为VM3发送的第一报文的数据长度。
本发明实施例通过上述实现方式,实现了通过LB将通过子TCP连接传输的报文汇聚到一个汇聚TCP连接中进行报文的发送和接收,能够节省服务器侧的TCP连接数目,以达到节省服务器内存资源的目的。
可选的,本发明实施例中若VNF Pool中的所有子TCP连接被释放,为进一步节省资源,可将新建的汇聚TCP连接也释放。
可选的,本发明实施例中LB通过到一个汇聚TCP连接进行报文的传输,故VNF Pool对外呈现一个汇聚连接,故若在该VNF Pool内的VM数量增加或减少,都不会影响LB与服务器之间的汇聚TCP连接的数目,即服务器将整个VNF Pool作为整体并不感知到VNF Pool中的VM的数量,实现将VNF Pool中不同VM真正虚拟成一个Pool,形成云化的资源池,并可使VM不受地域的限制。
远程用户拨号认证系统(Remote Authentication Dial In User Service,RADIUS),是目前广泛应用的一种采用UDP传输数据的方式。故本发明实施例中对于采用UDP协议进行报文传输的过程以RADIUS会话为例进行说明。本发明实施例以下以VM与LB之间建立的子链路为RADIUS子会话,LB与服务器之间建立的汇聚链路为RADIUS汇聚会话为例进行说明。
采用RADIUS会话进行报文传输的实现过程与采用TCP传输协议进行报文传输的实现过程类似,对于相同之处在此不再赘述,以下仅就不同之处进行说明。
通过RADIUS会话进行报文传输时,可将RADIUS子会话传输的第一报文转换为第二报文,然后通过RADIUS汇聚会话进行传输,例如图7中可将RADIUS1、RADIUS2和RADIUS3中传输的第一报文转换为第二报文后,通过一个RADIUS4进行传输。不同于TCP传输协议,采用RADIUS会话进行报文传输时,LB不用新增汇聚链路,可以通过在已建立的RADIUS会话中修改报文实现。
RDIUS会话中的报文中通过匹配标识符(Identifier),来匹配请求报文和回应报文,而匹配标识符一般是顺序递增的数字,故为了避免汇聚链路中的匹配标识符与各VM子链路中的匹配标识符重复,本发明实施例中可在汇聚链路中为各VM子链路分配新的匹配标识符。
图7所示为本发明实施例中通过RADIUS会话进行报文传输的过程示意图。图7中,VNF Pool中的VM1、VM2和VM3分别与LB建立RADIUS子会话。VM1与LB建立的RADIUS子会话为RADIUS1,RADIUS1用于传输来自VM1的第一报文。VM2与LB建立的RADIUS子会话为RADIUS2,RADIUS2用于传输来自VM2的第一报文。VM3与LB建立的RADIUS子会话为RADIUS3,RADIUS3用于传输来自VM3的第一报文。RADIUS1、RADIUS2和RADIUS3会分别为其所传输的第一报文分配第一报文的匹配标识符。
本发明实施例中仍以VM1、VM2和VM3发送的第一报文中包括有IP五元组为例进行说明,则第一报文中包括的IP五元组、匹配标识符以及RADIUS子会话之间的对应关系如表6所示。
表6
所述LB使用RADIUS4传输的第二报文的IP五元组替换RADIUS1、RADIUS2和RADIUS3传输的第一报文的IP五元组,使用RADIUS4为分配的第二报文的匹配标识符替换第一报文的匹配标识符,可得到第二报文,第二报文的IP五元组、匹配标识符以及RADIUS子会话之间的对应关系如表7所示:
表7
LB按照第二报文的IP五元组以及匹配标识符,通过LB与服务器之间建立的RADIUS汇聚会话发送所述第二报文。
本发明实施例中LB通过RADIUS汇聚会话向服务器发送第二报文后,还可接收服务器响应所述第二报文的回应报文,并依据所述第二报文的回应报文得到第一报文的回应报文,将所述第一报文的回应报文转发给VM1、VM2和VM3。
本发明实施例中,所述LB可预先创建代理表,所述代理表中保存所述第二报文的匹配标识符、第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话之间的对应关系。所述LB通过RADIUS汇聚会话接收到第二报文的第二回应报文后,由于该第二回应报文中包括第二报文的匹配标识符,故所述LB可以依据所述第二回应报文中包含的第二报文的匹配标识符查找预先创建的代理表,得到RADIUS子会话分配的第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话。所述汇聚代理获得第一报文的第一回应报文,所述第一回应报文的源IP地址为所述汇聚代理的IP地址,所述第一回应报文的目的IP地址为确定出的RADIUS子会话所连接的VM的IP地址;所述汇聚代理依据得到的第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,向确定出的RADIUS子会话所连接的VM转发所述第一回应报文。
本发明实施例中第一回应报文可通过确定出的RADIUS子会话传输的第一报文的IP五元组以及匹配标识符,替换第二回应报文的IP五元组以及匹配标识符而得到。
本发明实施例中第二回应报文中的IP五元组以及匹配标识符的对应关系如下表8所示:
表8
本发明实施例中第一回应报文的IP五元组以及匹配标识符可如下表9所示:
表9
可以理解的是,RADIUS中的匹配标识符的数量小于256,故在具体实施时,LB可通过队列或缓存机制处理多个VM的RADIUS子会话,若VM的RADIUS子会话的数目超过256,则可通过释放已完成的RADIUS子会话,或者还可以等待有多余的匹配标识符时再使用。
本发明实施例通过上述可能的实现方式,实现了通过LB将VNF Pool中多个VM的RADIUS子会话传输的报文汇聚到RADIUS汇聚会话中进行发送和接收,能够节省服务器侧的RADIUS会话数目,以达到节省服务器内存资源的目的。
基于上述实施例提供的报文传输方法,本发明实施例还提供一种报文传输装置100。图8为本发明实施例提供的报文传输装置100的结构示意图,如图8所示,本发明实施例提供的报文传输装置100包括接收单元101、处理单元102和发送单元103,其中,
所述接收单元101,用于接收来自VNF Pool中至少两个VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述报文传输装置连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文。
所述处理单元102,用于根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述报文传输装置100的IP地址,所述第二报文的目的IP地址为服务器的IP地址。
所述发送单元103,用于通过所述报文传输装置100与所述服务器之间建立的汇聚链路发送所述处理单元102获得的所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目。
可选的,所述第二报文中还包括源端口和目的端口;其中,所述第二报文的源端口为所述报文传输装置100的端口,所述第二报文的目的端口为所述服务器的端口。
一种可能的实现方式中,所述子链路为子传输控制协议TCP连接,所述汇聚链路为汇聚TCP连接;所述第二报文中还包括序列号;其中,所述第二报文的序列号是所述处理单元102依据所述汇聚TCP连接分配的序列号。
可选的,所述接收单元101,还用于:在所述发送单元103通过所述报文传输装置100与所述服务器之间建立的汇聚TCP连接发送所述处理单元102获得的所述第二报文之后,通过所述汇聚TCP连接接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包括确认序列号,所述确认序列号为所述第二报文的序列号和所述第二报文的数据长度之和。
所述处理单元102,还用于:依据所述第二回应报文中包括的确认序列号查找预先保存的关系列表,确定所述第二报文的序列号和所述第二报文的数据长度,依据所述确定出的所述第二报文的序列号和所述第二报文的数据长度,在所述关系列表中确定出传输第一报文的子TCP连接,所述预先保存的关系列表中包括所述第二报文的序列号、所述第二报文的数据长度以及传输所述第一报文的子TCP连接之间的对应关系。根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述报文传输装置100的IP地址,所述第一回应报文的目的IP地址为确定出的子TCP连接所连接的VM的IP地址,所述第一回应报文中包括第一报文的确认序列号,所述第一报文的确认序列号为所述第一报文的序列号和所述第一报文的数据长度之和。
所述发送单元103,还用于:通过所述处理单元102所述确定出的子TCP连接,向所述确定出的子TCP连接所连接的VM转发所述第一回应报文。
可选的,所述汇聚链路是所述处理单元102在所述接收单元101接收到所述VNFPool中首个VM子链路的报文时新建的TCP链路。
另一种可能的实现方式中,所述子链路为远程用户拨号认证系统RADIUS子会话,所述汇聚链路为RADIUS汇聚会话;所述第二报文中还包括匹配标识符;其中,所述第二报文的匹配标识符是所述处理单元102依据所述RADIUS汇聚会话分配的匹配标识符。
另一种可能的实现方式中,在所述发送单元103通过所述报文传输装置100与所述服务器之间建立的RADIUS汇聚会话发送所述处理单元102获得的所述第二报文之后,通过所述RADIUS汇聚会话,接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包含有第二报文的匹配标识符。
所述处理单元102,还用于:依据所述第二回应报文中包含的第二报文的匹配标识符查找预先创建的代理表,确定RADIUS子会话分配的第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,所述代理表中保存所述第二报文的匹配标识符、所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话之间的对应关系。根据所述第二回应报文获得第一报文的第一回应报文,所述第一回应报文的源IP地址为所述报文传输装置100的IP地址,所述第一回应报文的目的IP地址为确定出的RADIUS子会话所连接的VM的IP地址;
所述发送单元103,还用于:依据所述确定出的所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,向所述确定出的RADIUS子会话所连接的VM转发所述第一回应报文。
可选的,所述RADIUS汇聚会话为所述报文传输装置100与服务器之间已建立的RADIUS会话。
可选的,所述汇聚链路的数量为所述处理单元102依据所述子链路的数量进行建立的。
可选的,所述报文传输装置100为内置或外置于所述VNF Pool中的负载分担LB。
可选的,所述处理单元102,还用于:在确认所述各VM子链路被释放的情况下,释放所述汇聚链路。
本发明实施例中,报文传输装置100将接收到的来自VNF Pool中通过多个子链路传输的报文汇聚到汇聚链路中进行传输,使得VNF Pool对外呈现汇聚链路,汇聚链路数量少于子链路的数量,服务器将整个VNF Pool作为整体,服务器并不感知VNF Pool下存在多个VM,实现将一个VNF Pool中不同VM真正虚拟成一个Pool,节省服务器下的通信链路数目,以达到节省资源的目的。
在具体实施时,本发明实施例上述报文传输装置100可以为汇聚代理,图9所示为本发明实施例提供的汇聚代理200的结构示意图,如图9所述汇聚代理200采用通用计算机系统结构,包括总线,处理器201,存储器202和通信接口203,执行本发明方案的程序代码保存在存储器202中,并由处理器201来控制执行。
总线可包括一通路,在计算机各个部件之间传送信息。
处理器201可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。计算机系统中包括的一个或多个存储器,可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是磁盘存储器。这些存储器通过总线与处理器相连接。
通信接口203,可以使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
存储器202,如RAM,保存有操作系统和执行本发明方案的程序。操作系统是用于控制其他程序运行,管理系统资源的程序。
存储器202中存储的程序用于指令处理器201执行本发明上述实施例涉及的报文传输方法,包括:接收来自VNF Pool中至少两个VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述汇聚代理连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文;根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述汇聚代理的IP地址,所述第二报文的目的IP地址为服务器的IP地址;通过其与所述服务器之间建立的汇聚链路发送所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,达到节省服务器内存资源的目的。
可以理解的是,本实施例的汇聚代理200可用于实现上述方法实施例中涉及的所有功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例还提供了一种计算机存储介质,用于储存上述图8或图9所述的报文传输装置所用的计算机软件指令,其包含用于执行上述方法实施例所涉及的程序。通过执行存储的程序,可以实现将接收到的VNF Pool中各VM子链路中的报文汇聚到一个汇聚链路中进行传输。
需要说明的是,本发明实施例中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (24)
1.一种报文传输方法,其特征在于,包括:
汇聚代理接收来自虚拟网络功能池VNF Pool中至少两个虚拟机VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述汇聚代理连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文;
所述汇聚代理根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述汇聚代理的IP地址,所述第二报文的目的IP地址为服务器的IP地址;
所述汇聚代理通过其与所述服务器之间建立的汇聚链路发送所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,所述至少两个VM的数量与所述至少两个子链路的数量相同;
所述子链路为子传输控制协议TCP连接,所述汇聚链路为汇聚TCP连接;所述第二报文中还包括序列号;其中,所述第二报文的序列号是所述汇聚代理依据所述汇聚TCP连接分配的序列号;
所述汇聚代理通过其与所述服务器之间建立的汇聚TCP连接发送所述第二报文之后,所述方法还包括:
所述汇聚代理通过所述汇聚TCP连接,接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包括第二报文的确认序列号,所述第二报文的确认序列号为所述第二报文的序列号和所述第二报文的数据长度之和;
所述汇聚代理依据所述第二回应报文中包括的第二报文的确认序列号查找预先保存的关系列表,确定所述第二报文的序列号和所述第二报文的数据长度,所述预先保存的关系列表中包括所述第二报文的序列号、所述第二报文的数据长度以及传输所述第一报文的子TCP连接之间的对应关系;
所述汇聚代理依据所述确定出的所述第二报文的序列号和所述第二报文的数据长度,在所述关系列表中确定出传输所述第一报文的子TCP连接;
所述汇聚代理根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述汇聚代理的IP地址,所述第一回应报文的目的IP地址为所述确定出的子TCP连接所连接的VM的IP地址,所述第一回应报文中包括第一报文的确认序列号,所述第一报文的确认序列号为所述第一报文的序列号和所述第一报文的数据长度之和;
所述汇聚代理通过所述确定出的子TCP连接,向所述确定出的子TCP连接所连接的VM转发所述第一回应报文。
2. 如权利要求1所述的方法,其特征在于,所述汇聚TCP连接是所述汇聚代理接收到所述VNF Pool中首个子TCP连接传输的第一报文时新建的TCP连接。
3.如权利要求1或2所述的方法,其特征在于,所述第二报文中还包括源端口和目的端口;
其中,所述第二报文的源端口为所述汇聚代理的端口,所述第二报文的目的端口为所述服务器的端口。
4.如权利要求1或2所述的方法,其特征在于,所述汇聚链路的数量为依据所述子链路的数量进行建立的。
5. 如权利要求1或2所述的方法,其特征在于,所述汇聚代理为内置或外置于所述VNFPool中的负载分担LB。
6.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述汇聚代理在确认所述各子链路被释放的情况下,释放所述汇聚链路。
7.一种报文传输方法,其特征在于,包括:
汇聚代理接收来自虚拟网络功能池VNF Pool中至少两个虚拟机VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述汇聚代理连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文;
所述汇聚代理根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述汇聚代理的IP地址,所述第二报文的目的IP地址为服务器的IP地址;
所述汇聚代理通过其与所述服务器之间建立的汇聚链路发送所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,所述至少两个VM的数量与所述至少两个子链路的数量相同;
所述子链路为远程用户拨号认证系统RADIUS子会话,所述汇聚链路为RADIUS汇聚会话;所述第二报文中还包括匹配标识符;其中,所述第二报文的匹配标识符是所述汇聚代理依据所述RADIUS汇聚会话分配的匹配标识符;
所述汇聚代理通过其与所述服务器之间建立的RADIUS汇聚会话发送所述第二报文之后,所述方法还包括:
所述汇聚代理通过所述RADIUS汇聚会话,接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包含有第二报文的匹配标识符;
所述汇聚代理依据所述第二回应报文中包含的第二报文的匹配标识符查找预先创建的代理表,确定RADIUS子会话分配的所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,所述代理表中保存所述第二报文的匹配标识符、所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话之间的对应关系;
所述汇聚代理根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述汇聚代理的IP地址,所述第一回应报文的目的IP地址为所述确定出的RADIUS子会话所连接的VM的IP地址;
所述汇聚代理依据所述确定出的第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,向所述确定出的RADIUS子会话所连接的VM转发所述第一回应报文。
8.如权利要求7所述的方法,其特征在于,所述RADIUS汇聚会话为所述汇聚代理与服务器之间已建立的RADIUS会话。
9.如权利要求7或8所述的方法,其特征在于,所述第二报文中还包括源端口和目的端口;
其中,所述第二报文的源端口为所述汇聚代理的端口,所述第二报文的目的端口为所述服务器的端口。
10.如权利要求7或8所述的方法,其特征在于,所述汇聚链路的数量为依据所述子链路的数量进行建立的。
11. 如权利要求7或8所述的方法,其特征在于,所述汇聚代理为内置或外置于所述VNFPool中的负载分担LB。
12.如权利要求7或8所述的方法,其特征在于,所述方法还包括:
所述汇聚代理在确认所述各子链路被释放的情况下,释放所述汇聚链路。
13.一种报文传输装置,其特征在于,包括:
接收单元,用于接收来自虚拟网络功能池VNF Pool中至少两个虚拟机VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述报文传输装置连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文;
处理单元,用于根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述报文传输装置的IP地址,所述第二报文的目的IP地址为服务器的IP地址;
发送单元,用于通过所述报文传输装置与所述服务器之间建立的汇聚链路发送所述处理单元获得的所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,所述至少两个VM的数量与所述至少两个子链路的数量相同;
所述子链路为子传输控制协议TCP连接,所述汇聚链路为汇聚TCP连接;所述第二报文中还包括序列号;其中,所述第二报文的序列号是所述处理单元依据所述汇聚TCP连接分配的序列号;
所述接收单元,还用于:在所述发送单元通过所述报文传输装置与所述服务器之间建立的汇聚TCP连接发送所述处理单元获得的所述第二报文之后,通过所述汇聚TCP连接接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包括第二报文的确认序列号,所述第二报文的确认序列号为所述第二报文的序列号和所述第二报文的数据长度之和;
所述处理单元,还用于:依据所述第二回应报文中包括的第二报文的确认序列号查找预先保存的关系列表,确定所述第二报文的序列号和所述第二报文的数据长度,依据所述确定出的所述第二报文的序列号和所述第二报文的数据长度,在所述关系列表中确定出传输所述第一报文的子TCP连接,所述预先保存的关系列表中包括所述第二报文的序列号、所述第二报文的数据长度以及传输所述第一报文的子TCP连接之间的对应关系;根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述报文传输装置的IP地址,所述第一回应报文的目的IP地址为所述确定出的子TCP连接所连接的VM的IP地址,所述第一回应报文中包括第一报文的确认序列号,所述第一报文的确认序列号为所述第一报文的序列号和所述第一报文的数据长度之和;
所述发送单元,还用于:通过所述处理单元确定出的子TCP连接,向所述确定出的子TCP连接所连接的VM转发所述第一回应报文。
14. 如权利要求13所述的装置,其特征在于,所述汇聚链路是所述处理单元在所述接收单元接收到所述VNF Pool中首个VM子链路的报文时新建的TCP链路。
15.如权利要求13或14所述的装置,其特征在于,所述第二报文中还包括源端口和目的端口;
其中,所述第二报文的源端口为所述报文传输装置的端口,所述第二报文的目的端口为所述服务器的端口。
16.如权利要求13或14所述的装置,其特征在于,所述汇聚链路的数量为所述处理单元依据所述子链路的数量进行建立的。
17. 如权利要求13或14所述的装置,其特征在于,所述报文传输装置为内置或外置于所述VNF Pool中的负载分担LB。
18.如权利要求13或14所述的装置,其特征在于,所述处理单元,还用于:
在确认所述各VM子链路被释放的情况下,释放所述汇聚链路。
19.一种报文传输装置,其特征在于,包括:
接收单元,用于接收来自虚拟网络功能池VNF Pool中至少两个虚拟机VM中的每个VM的第一报文,所述至少两个VM通过至少两个子链路与所述报文传输装置连接,且所述至少两个VM与所述至少两个子链路一一对应,所述子链路用于传输所述第一报文;
处理单元,用于根据所述第一报文获得第二报文,所述第二报文包括源互联网协议IP地址和目的IP地址,所述第二报文的源IP地址为所述报文传输装置的IP地址,所述第二报文的目的IP地址为服务器的IP地址;
发送单元,用于通过所述报文传输装置与所述服务器之间建立的汇聚链路发送所述处理单元获得的所述第二报文,其中,所述汇聚链路的数目小于所述子链路的数目,所述至少两个VM的数量与所述至少两个子链路的数量相同;
所述子链路为远程用户拨号认证系统RADIUS子会话,所述汇聚链路为RADIUS汇聚会话;所述第二报文中还包括匹配标识符;其中,所述第二报文的匹配标识符是所述处理单元依据所述RADIUS汇聚会话分配的匹配标识符;
所述接收单元,还用于:在所述发送单元通过所述报文传输装置与所述服务器之间建立的RADIUS汇聚会话发送所述处理单元获得的所述第二报文之后,通过所述RADIUS汇聚会话,接收所述服务器响应所述第二报文的第二回应报文,所述第二回应报文中包含有第二报文的匹配标识符;
所述处理单元,还用于:依据所述第二回应报文中包含的第二报文的匹配标识符查找预先创建的代理表,确定RADIUS子会话分配的所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,所述代理表中保存所述第二报文的匹配标识符、所述第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话之间的对应关系;根据所述第二回应报文获得所述第一报文的第一回应报文,所述第一回应报文的源IP地址为所述报文传输装置的IP地址,所述第一回应报文的目的IP地址为所述确定出的RADIUS子会话所连接的VM的IP地址;
所述发送单元,还用于:依据所述确定出的第一报文的匹配标识符以及传输所述第一报文的RADIUS子会话,向所述确定出的RADIUS子会话所连接的VM转发所述第一回应报文。
20.如权利要求19所述的装置,其特征在于,所述RADIUS汇聚会话为所述报文传输装置与服务器之间已建立的RADIUS会话。
21.如权利要求19或20所述的装置,其特征在于,所述第二报文中还包括源端口和目的端口;
其中,所述第二报文的源端口为所述报文传输装置的端口,所述第二报文的目的端口为所述服务器的端口。
22.如权利要求19或20所述的装置,其特征在于,所述汇聚链路的数量为所述处理单元依据所述子链路的数量进行建立的。
23. 如权利要求19或20所述的装置,其特征在于,所述报文传输装置为内置或外置于所述VNF Pool中的负载分担LB。
24.如权利要求19或20所述的装置,其特征在于,所述处理单元,还用于:
在确认所述各VM子链路被释放的情况下,释放所述汇聚链路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610165510.3A CN105847142B (zh) | 2016-03-22 | 2016-03-22 | 一种报文传输方法及装置 |
PCT/CN2016/111933 WO2017161938A1 (zh) | 2016-03-22 | 2016-12-24 | 一种报文传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610165510.3A CN105847142B (zh) | 2016-03-22 | 2016-03-22 | 一种报文传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105847142A CN105847142A (zh) | 2016-08-10 |
CN105847142B true CN105847142B (zh) | 2019-03-01 |
Family
ID=56587761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610165510.3A Active CN105847142B (zh) | 2016-03-22 | 2016-03-22 | 一种报文传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105847142B (zh) |
WO (1) | WO2017161938A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105847142B (zh) * | 2016-03-22 | 2019-03-01 | 华为技术有限公司 | 一种报文传输方法及装置 |
CN107733801B (zh) * | 2016-08-11 | 2021-01-29 | 华为技术有限公司 | 接收和发送报文的方法及设备 |
CN107864101A (zh) * | 2017-12-26 | 2018-03-30 | 杭州迪普科技股份有限公司 | 负载均衡方法和装置 |
CN110138629A (zh) * | 2018-02-02 | 2019-08-16 | 中兴通讯股份有限公司 | 链路丢包的检测方法及装置、存储介质及处理器 |
CN112165447B (zh) * | 2020-08-21 | 2023-12-19 | 杭州安恒信息技术股份有限公司 | 基于waf设备的网络安全监测方法、系统和电子装置 |
CN112667359B (zh) * | 2020-12-30 | 2024-01-30 | 深圳市科思科技股份有限公司 | 数据透传方法、电子设备及存储介质 |
CN113852445B (zh) * | 2021-08-27 | 2023-06-16 | 山东云海国创云计算装备产业创新中心有限公司 | 一种提高数据传输可靠性的方法、系统、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734931A (zh) * | 2015-03-31 | 2015-06-24 | 华为技术有限公司 | 一种虚拟网络功能间链路建立方法及装置 |
CN104852988A (zh) * | 2015-05-29 | 2015-08-19 | 杭州华三通信技术有限公司 | 一种报文转发方法和装置 |
WO2015126430A1 (en) * | 2014-02-24 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Virtual network function management with deactivated virtual machines |
CN105119736A (zh) * | 2015-07-15 | 2015-12-02 | 华为技术有限公司 | 网络功能虚拟化架构中数据检查的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687758B2 (en) * | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
CN101848199A (zh) * | 2009-03-26 | 2010-09-29 | 华为技术有限公司 | 实现层次化虚链路的方法和系统及传送设备 |
CN103023827B (zh) * | 2012-11-23 | 2017-04-19 | 杭州华三通信技术有限公司 | 一种虚拟化数据中心的数据转发方法及其实现设备 |
US10075987B2 (en) * | 2013-12-18 | 2018-09-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Multipath TCP subflow establishing on single IP connection |
CN105847142B (zh) * | 2016-03-22 | 2019-03-01 | 华为技术有限公司 | 一种报文传输方法及装置 |
-
2016
- 2016-03-22 CN CN201610165510.3A patent/CN105847142B/zh active Active
- 2016-12-24 WO PCT/CN2016/111933 patent/WO2017161938A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126430A1 (en) * | 2014-02-24 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Virtual network function management with deactivated virtual machines |
CN104734931A (zh) * | 2015-03-31 | 2015-06-24 | 华为技术有限公司 | 一种虚拟网络功能间链路建立方法及装置 |
CN104852988A (zh) * | 2015-05-29 | 2015-08-19 | 杭州华三通信技术有限公司 | 一种报文转发方法和装置 |
CN105119736A (zh) * | 2015-07-15 | 2015-12-02 | 华为技术有限公司 | 网络功能虚拟化架构中数据检查的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105847142A (zh) | 2016-08-10 |
WO2017161938A1 (zh) | 2017-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105847142B (zh) | 一种报文传输方法及装置 | |
US11277313B2 (en) | Data transmission method and corresponding device | |
CN105162883B (zh) | 网络负载均衡处理系统及其方法和装置 | |
US10880369B2 (en) | Session persistence method, device, and storage medium | |
CN108377671B (zh) | 处理报文的方法和计算机设备 | |
WO2018121295A1 (zh) | 一种异构多协议栈方法、装置及系统 | |
KR101938623B1 (ko) | 오픈 플로우 통신 방법, 시스템, 제어기 및 서비스 게이트웨이 | |
KR20140143155A (ko) | 네트워킹 장치 가상화를 위한 패킷 처리 오프로딩 기법 | |
US8855118B2 (en) | Source discovery for non-flooding multicast using openflow | |
CN112929264B (zh) | 业务流量传输方法、系统及网络设备 | |
US10693785B2 (en) | Method and system for forwarding data, virtual load balancer, and readable storage medium | |
CN103986647A (zh) | 报文传输方法及设备 | |
US7957279B2 (en) | Session border control using multiple processors | |
CN102148768A (zh) | 报文转发方法和报文转发设备 | |
CN102447638A (zh) | 负载均衡的方法及转发设备 | |
US11419171B2 (en) | Method for establishing subflow of multipath connection, apparatus, and system | |
CN111193756B (zh) | 一种vxlan隧道负载均衡方法及相关设备 | |
CN107241453A (zh) | 一种网络地址转换映射保活方法及装置 | |
CN106850432A (zh) | 一种报文转发的方法及装置 | |
US10175972B1 (en) | Simultaneous operation of a networked device using multiple disparate networks | |
CN106941460A (zh) | 报文发送方法和装置 | |
US20170374023A1 (en) | Increased port address space | |
CN107483628A (zh) | 基于dpdk的单向代理方法及系统 | |
CN112929417B (zh) | 报文处理方法及装置 | |
CN108605221B (zh) | 用户下线的方法、网络设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |