CN116193172A - 一种单播流量卸载加速方法、装置、系统及设备和介质 - Google Patents
一种单播流量卸载加速方法、装置、系统及设备和介质 Download PDFInfo
- Publication number
- CN116193172A CN116193172A CN202211681053.5A CN202211681053A CN116193172A CN 116193172 A CN116193172 A CN 116193172A CN 202211681053 A CN202211681053 A CN 202211681053A CN 116193172 A CN116193172 A CN 116193172A
- Authority
- CN
- China
- Prior art keywords
- data packet
- virtual
- unicast
- flow table
- vxlan
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000001133 acceleration Effects 0.000 title claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012423 maintenance Methods 0.000 claims description 13
- 238000013519 translation Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000005538 encapsulation Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- 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/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6402—Address allocation for clients
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种单播流量卸载加速方法、装置、系统及设备和介质,旨在实现高并发、大流量、低延时的视频VPN单播转发服务。所述方法应用于VxLan VPN服务端,包括:对各个软终端的单播通道分配不同的虚拟IP;根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种单播流量卸载加速方法、装置、系统及设备和介质。
背景技术
软终端(即IPTV软终端)是安装在智能电视机上的一种安卓APP应用,可以提供标准的IPTV点播、回看、直播、时移等业务。由于无法像机顶盒那样在智能电视机的Android底层工作,无法在智能电视机上实现公网、专网双跨,故软终端通常通过虚拟扩展局域网虚拟专用网(VxLan VPN,Virtual extensible Local area network Virtual PrivateNetwork)服务端接入网络协议电视(IPTV,Internet Protocol Television)平台所在的IPTV专网。
但与办公VPN不同,接入视频VPN的每个软终端的流量都比较大,仅靠VxLan VPN服务端的CPU来完成视频VPN点播节目转发服务,并发率较低。
发明内容
鉴于上述问题,本申请实施例提供了一种单播流量卸载加速方法、装置、系统及设备和介质,以便克服上述问题或者至少部分地解决上述问题。
本申请实施例的第一方面,提供了一种单播流量卸载加速方法,应用于VxLan VPN服务端,所述方法包括:
对各个软终端的单播通道分配不同的虚拟IP;
根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
本申请实施例的第二方面,提供了一种单播流量卸载加速方法,应用于智能网卡,所述方法包括:
接收VxLan VPN服务端下发的数据包的流表规则,所述数据包的流表规则指示了单播通道的虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
本申请实施例的第三方面,提供了一种单播流量卸载加速装置,应用于VxLan VPN服务端,所述装置包括:
初始化模块,用于对各个软终端的单播通道分配不同的虚拟IP;
生成模块,用于根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
发送模块,用于将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
本申请实施例的第四方面,提供了一种单播流量卸载加速装置,应用于智能网卡,所述装置包括:
接收模块,用于接收VxLan VPN服务端下发的数据包的流表规则,所述数据包的流表规则指示了单播通道的虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
处理模块,用于根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
本申请实施例的第五方面,提供了一种单播流量卸载加速系统,所述系统包括多个软终端和NAT网关、VxLan VPN服务端、智能网卡以及IPTV平台,所述多个软终端通过各自的NAT网关与所述智能网卡连接,所述智能网卡还分别与所述VxLan VPN服务端和IPTV平台连接,其中:
所述VxLan VPN服务端用于执行如第一方面所述的单播流量卸载加速方法,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
本申请实施例的第六方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的单播流量卸载加速方法的步骤或者第二方面所述的单播流量卸载加速方法的步骤。
本申请实施例的第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的单播流量卸载加速方法的步骤,或者,该计算机程序/指令被处理器执行时实现如第二方面所述的单播流量卸载加速方法的步骤。
本申请实施例的第八方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面所述的单播流量卸载加速方法的步骤或者实现第二方面所述的单播流量卸载加速方法的步骤。
本申请实施例包括以下优点:
本实施例中,VxLan VPN服务端通过向智能网卡下发数据包的流表规则,使得智能网卡能够对各个软终端的单播流量完成卸载加速,,从而借助于智能网卡实现高并发、大流量、低延时的视频VPN单播转发服务,且通过对每个软终端的单播通道分配唯一的虚拟IP,能够避免因终端的私有IP地址重复而错误发送数据包。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例的一种单播流量卸载加速方法的实施流程图;
图2是本申请实施例的一种单播流量卸载加速系统的系统架构示意图;
图3是本申请实施例中另一种单播流量卸载加速方法的实施流程图;
图4是本申请实施例的一种单播流量卸载加速装置的结构示意图;
图5是本申请实施例的另一种单播流量卸载加速装置的结构示意图;
图6是本申请实施例的一种单播流量卸载加速系统的结构示意图;
图7是本申请实施例中一种电子设备的示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
软终端需要访问位于IPTV专用网络内的IPTV平台(IPTV平台不能暴露在公网),而智能电视机连接的是互联网公网。软终端无法像机顶盒那样在智能电视机的Android底层工作,无法在智能电视机上实现公网、专网双跨。因此软终端需要通过VxLan VPN服务端(即视频VPN服务端)接入IPTV专网。
与办公VPN不同,接入视频VPN的每个软终端的流量都比较大,例如高清点播节目码率为8Mbps、4K点播节目码率峰值为30Mbps,平均为15Mbps。仅靠VxLan VPN服务端的CPU来完成视频VPN点播节目转发服务,并发率较低。
此外,软终端基本都是经过家庭网关进行网络地址转换(NAT,Network AddressTraslation)后访问互联网的,多个软终端自身的IP可能是重复的私有IP,导致互联网网口接收到的各个软终端的数据包,经过VxLan解封装后的得到的源IP(即数据包所携带内层信息中的软终端的私有IP)相同,此时将解封装的数据包递送至专网网口由VxLan VPN服务端进行NAT,那么专网网口后续收到的IPTV平台回复的数据包在反向NAT后,难以根据该数据包所映射的软终端的私有IP确定其所对应的软终端,从而出现数据包错误地与软终端匹配的情况,即出现VxLan内层源IP重复冲突的问题。
针对上述相关技术中存在的问题,本申请提出一种IPTV软终端通过视频VPN访问专网的单播流量卸载加速方法,VxLan VPN服务端将软终端的单播请求(认证、电子节目指南(EPG,Electronic Program Guide)、内容分发网络(CDN,Content Delivery Network)调度、视频点播、时移、回看等)通过智能网卡进行单播流量卸载加速,能够实现高并发、大流量、低延时的视频VPN单播转发服务,且通过对VxLan VPN服务端一侧的NAT过程中引入软终端私有IP所映射的唯一虚拟IP,能够解决VxLan解封装后内层源IP的重复冲突问题。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的单播流量卸载加速方法进行详细地说明。
第一方面,参照图1所示,为本申请实施例所提供的一种单播流量卸载加速方法的实施流程图,应用于VxLan VPN服务端,该方法可以包括以下步骤:
步骤S11:对各个软终端的单播通道分配不同的虚拟IP。
如图2所示,本申请所指的软终端为部署于智能电视机上的应用,用于与IPTV平台进行通信,VxLan VPN服务端安装有智能网卡,智能网卡的两个网口分别连接互联网和IPTV专网。智能网卡包括嵌入式Linux和现场可编程门阵列(FPGA,Field-Programmable GateArray)。嵌入式Linux通过管理网口与VxLan VPN服务端中的主机Linux的其他网口进行通信,并通过数据平面开发套件(DPDK,Data Plane Development Kit)向FPGA下发流表。
在具体实施时,在各个软终端与VxLan VPN服务端之间建立采用VxLan封装的VPN隧道,对各个VPN隧道分配不同的虚拟IP,并在各个隧道内为各个软终端分配各自的单播通道和组播通道,从而通过互联网传输各个软终端各自相关的单播流量和组播流量。
步骤S12:根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则。
其中,所述内层信息至少包括:软终端的私有IP或专网IP。
在具体实施时,软终端通过家庭网关(即NAT网关)将单播流量(即数据包)所携带的私有IP转换为公网IP后,通过对应的单播通道进入智能网卡的互联网网口,此时VxLanVPN服务端可以从智能网卡获取该数据包,并根据该数据包所携带的内层信息,生成该软终端的私有IP、虚拟IP、IPTV专网IP以及相关端口之间的映射规则,并根据该映射规则生成对该数据包及其相关数据包(即该软终端后续发出或收到的正向数据包和反向回复包)的处理逻辑(如VxLan的封装/解封装、专网网口的NAT等处理的执行逻辑),将该处理逻辑作为数据包的流表规则下发至智能网卡,以使智能网卡具备对该相关数据包的处理能力,从而实现单播流量卸载加速。
步骤S13:将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
在具体实施时,智能网卡根据数据包的流表规则,对互联网网口或专网网口接收到的正向数据包或反向回复包,确定其所携带内层信息中软终端自身的私有IP(即正向数据包内层的源IP)或软终端的专网IP(即反向回复包内层的目的IP)所映射的虚拟IP,从而可以根据该虚拟IP确定该正向数据包或反向回复包所关联的软终端,再在智能网卡内部直接进行相应的VxLan的解封装/封装以及NAT处理,并将处理后的单播流量转发至正确的IPTV平台或软终端,从而解决因软终端私有IP重复而导致的冲突问题,且使得单播流量能够绕过VxLan VPN服务端的CPU,直接在智能网卡内部处理,从而实现对单播流量的卸载加速。
采用本申请实施例的技术方案,VxLan VPN服务端通过向智能网卡下发数据包的流表规则,使得智能网卡能够对各个软终端的单播流量完成卸载加速,从而借助于智能网卡实现高并发、大流量、低延时的视频VPN单播转发服务,且通过对每个软终端的单播通道分配唯一的虚拟IP,能够避免因终端的私有IP地址重复而错误发送数据包。
实施例一
本实施方式描述了软终端和VxLan VPN服务端之间的隧道及单播通道的情况,针对隧道的建立和初始化过程,可以包含以下两种情况。
情况1:VxLan VPN服务端生成并向智能网卡下发隧道初始流表规则,以使所述智能网卡将接收到的用于隧道认证、建立或维持的数据包(即第二目标数据包)直接发送至所述VxLan VPN服务端进行处理;VxLan VPN服务端根据从所述智能网卡接收到的第二目标数据包,对所述各个软终端与所述VxLan VPN服务端之间的隧道进行相应的认证、建立或维持操作。
在具体实施时,如图2所示,在各个软终端与视频VPN服务器(Server)之间建立采用VxLan封装的VPN隧道,各个VPN隧道的VxLan网络标识符(VxLanID或VNI,VxLan NetworkIdentifier)相同(如均为VxLanID0)。并生成五元组以对建立的各个VPN隧道进行标识,该五元组可以是:经家庭网关(即NAT网关)NAT后的软终端的IP(NAT_IP)、经该家庭网关NAT后的软终端的端口(NAT_Port)、VPN服务器(即VxLan VPN服务端)的IP(ServerIP)、该VPN服务器的端口(如ServerPort=4789)、以及访问协议(如OutProtocol=UDP)。
VxLan VPN服务端内部(即主机Linux内)的隧道认证、建立与维持模块将隧道初始流表的业务规则发给流表生成模块,流表生成模块将生成的隧道初始流表规则,通过智能网卡内部的嵌入式Linux的流表下发模块下发。其中,隧道初始流表规则为:智能网卡对互联网网口收到的所有VxLanID0的VxLan封装包不进行卸载加速,直接发送给主机Linux的应用程序PF0,由隧道认证、建立与维持模块处理这类数据包。
智能网卡在收到该隧道初始流表规则后,将接收到的所述隧道初始流表规则关联的用于隧道认证、建立或维持的数据包通过PF0直接发送至所述VxLan VPN服务端进行处理,保证软终端的管理模块能够正常访问VxLan VPN服务端,使得VxLan VPN服务端内部的隧道认证、建立、维持模块能够正常认证软终端ID、建立隧道并通过心跳维持该隧道。
情况2:VxLan VPN服务端在所述各个软终端与所述VxLan VPN服务端之间的隧道中,为所述各个软终端分配各自的单播通道;生成并向所述智能网卡下发单播初始流表规则,以使所述智能网卡将从所述各个单播通道接收到的数据包直接发送至所述VxLan VPN服务端进行处理,其中,所述单播初始流表规则的优先级低于所述数据包的流表规则的优先级。
在具体实施时,VxLan VPN服务端在建立隧道后,会对各个软终端分配单播通道及该单播通道的标识符(如VxLanIDu1、VxLanIDu2等),并生成和下发单播初始流表(可以设置流表优先级=10,表示较低优先级)规则:互联网网口收到的各个单播通道的标识符(如VxLanIDu1、VxLanIDu2等)所对应的VxLan封装包(即数据包),直接发送给PF0,由VxLan VPN服务端内部的单播流量卸载管理模块进行处理。
智能网卡接收VxLan VPN服务端下发的该单播初始流表规则,将从各个单播通道接收到的所述单播初始流表规则关联的数据包,,直接发送至所述VxLan VPN服务端进行处理,以便单播流量卸载管理模块根据各个单播通道发出的首包生成并下发数据包的流表规则,由于数据包的流表规则的优先级高于单播初始流表规则,故智能网卡后续将对该各个单播通道所关联的数据包执行卸载加速处理。
可以理解的是,由于软终端基本都是经过家庭网关NAT后访问互联网的,故多个软终端的私有IP可能存在重复,导致智能网卡对VxLan解封装后,无法根据内层信息中的私有IP识别数据包所属的软终端,故本申请在隧道建立后,还会给每个隧道分配一个唯一的虚拟IP,以便智能网卡根据该虚拟IP识别数据包所属的软终端。
在对各个隧道完成单播通道初始化、组播通道初始化、虚拟IP和令牌(Token)的分配等初始化流程之后,VxLan VPN服务端根据各个隧道的虚拟IP和隧道相关参数,生成对应的十一元组以对各个隧道进行标识,该十一元组可以包括:NAT_IP、NAT_Port、VxLan VPN服务端的IP(ServerIP)、VxLan VPN服务端的端口(如ServerPort=4789)、隧道的VNI(如VxLanID0)、Token、虚拟IP、软终端ID、单播通道的标识符(VxLanIDu1)、组播通道的标识符(如VxLanIDm1)、以及隧道生成时间。各个隧道的十一元组构成了隧道初始数据,可以理解的是,如果有1000个软终端建立隧道,那么隧道初始数据就包含1000个条目,所有软终端的隧道VID都等于预设的VxLanID0,且VxLan VPN服务端会给每个软终端的隧道分配唯一的Token、唯一的虚拟IP、唯一的组播通道的标识符、以及唯一的单播通道的标识符。
考虑到VxLan VPN服务端主要根据正向数据包(即互联网网口接收到的数据包)所携带的NAT_IP、NAT_Port,ServerIP、ServerPort=4789、以及标识符(如VxLanID0或VxLanIDu1或VxLanIDm1)等关键数据,检索数据包所关联的十一元组(即初始化数据)。所以为了加快检索速度,可以对隧道初始化数据创建3个副本,保存在3个hash桶中(即隧道初始化hash桶、单播通道初始化hash桶、以及组播通道初始化hash桶),分别按照3个五元组计算3个hash桶所关联的hash值,这3个五元组是:
1、NAT_IP、NAT_Port,ServerIP、ServerPort、以及隧道的VDI;用于计算隧道初始化hash桶所关联的hash值;
2、NAT_IP、NAT_Port,ServerIP、ServerPort、以及单播通道的标识符(即单播通道所传输数据包的外层信息);用于计算单播通道初始化hash桶所关联的hash值;
3、NAT_IP、NAT_Port,ServerIP、ServerPort、以及组播通道的标识符;用于计算组播通道初始化hash桶所关联的hash值。
可以理解的是,设计3个hash桶的目的是为了在3种VxLan封装情况下(对应隧道、单播通道和组播通道所传输的数据包),VxLan VPN服务端可以根据接收到的数据包所携带的上述五元组,计算hash值,从而在对应的hash桶中快速查询到对应的十一元组,获得该数据包相关的虚拟IP及隧道相关参数。其中,在hash桶内部,可以将hash值相同的十一元组组成双向链表以进行存储。
实施例二
本实施方式描述了VxLan VPN服务端生成数据包的流表规则的情况,包含以下步骤:
(1)VxLan VPN服务端从智能网卡接收所述各个单播通道的第一目标数据包。
其中,第一目标数据包主要用于VxLan VPN服务端建立全连接跟踪表,该第一目标数据包可以是智能网卡从互联网网口接收到的某一单播通道的首包(即不存在对应全连接跟踪表的数据包)。
作为一种可能的实施方式,VxLan VPN服务端从所述智能网卡接收所述各个单播通道的数据包;根据接收到的所述各个数据包所携带的外层信息,确定所述各个数据包对应的哈希hash值;根据各个所述hash值,判断全连接跟踪hash桶中是否存在所述各个数据包各自对应的全连接跟踪表;将不存在对应的全连接跟踪表的数据包确定为所述第一目标数据包。
在具体实施时,VxLan VPN服务端对于智能网卡从互联网网口接收到的数据包,读取该数据包的外层信息得到五元组(NAT_IP、NAT_Port、ServerIP、ServerPort、单播通道的标识符)。根据该五元组按全连接跟踪hash桶的方式计算hash值,然后在全连接跟踪hash桶中查找是否存在该数据包对应的全连接表。
如果不存在对应的全连接表,则说明这个数据包是首包,进行首包处理:VxLanVPN服务端的首包处理模块生成该首包对应的全连接表,并基于该全连接表生成对应的数据包的流表规则,并按照该数据包的流表规则,在应用程序中通过CPU处理该首包(如依次进行解封装处理和NAT处理),再从专网网口发送处理后的首包,然后下发该数据包的流表规则,以便智能网卡对相同全连接表对应的数据包进行卸载加速处理。
如果存在对应的全连接表,说明这个数据包是漏包,进行漏包处理:在应用程序中通过CPU对该漏包依次进行解封装处理和NAT处理,再从专网网口发送处理后的漏包。
需要说明的是,按全连接跟踪表所对应的数据包的流表规则,智能网卡需对全连接跟踪表所对应的数据包进行卸载加速后转发到专网网口,不会发送到VxLan VPN服务端。但在首包处理后所下发的数据包的流表规则生效之前,可能已经有相同全连接跟踪表对应的数据包到达VxLan VPN服务端,则称其为漏包(即VxLan VPN服务端接收到的存在对应的全连接跟踪表的数据包)。
本申请设计了一种全连接跟踪表,用于为实现互联网口的VxLan的封装/解封装、专网网口的NAT、以及解决VxLan内层终端私有IP重复冲突的问题提供所需信息。该全连接跟踪表保存了十四元组:NAT_IP、NAT_Port、VxLan VPN服务端的IP(ServerIP)、VxLan VPN服务端的端口(ServerPort)、单播通道的标识、令牌(Token)、虚拟IP、软终端的私有IP(ClientIP)、软终端的端口(ClientPort)、IPTV平台的IP(IPTVServerIP)、IPTV平台的端口(IPTVServerPort)、访问协议(InnerProtocol)、软终端的专网IP(ServerPrivateIP)、软终端的NAT端口(ServerNATPort)。为便于查询,将各个全连接跟踪表维护的十四元组,组成一个全连接跟踪hash桶,并采用十四元组的前五项(NAT_IP、NAT_Port,ServerIP、ServerPort、单播通道的标识符)计算hash值。其中,可以将hash值相同的十四元组保存在全连接跟踪hash桶的一个双向链表中。
可以理解的是,十四元组中,ClientIP、ClientPort、IPTVServerIP、IPTVServerPort、InnerProtocol这5个字段是VxLan封装的内层信息;NAT_IP、NAT_Port、ServerIP、ServerPort、单播通道的标识这5个字段是VxLan封装的外层信息,一个软终端的单播通道可以传输不同的十四元组所对应的数据包。在VxLan VPN服务端未收到任何第一目标数据包时,上述全连接跟踪hash桶为空,即VxLan VPN服务端未对智能网卡下发数据包的流表规则,此时智能网卡将根据单播初始流表规则,将从各个单播通道接收到的数据包直接发送至所述VxLan VPN服务端进行处理,以便VxLan VPN服务端生成各个单播通道相关联的十四元组。
(2)根据各个第一目标数据包各自所携带的外层信息,确定各个第一目标数据包各自所对应的初始化数据。
其中,所述初始化数据包含单个第一目标数据包所关联单播通道的虚拟IP和隧道相关参数,所述外层信息包括:经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符。
作为一种可能的实施方式,为加快查询效率,VxLan VPN服务端可以根据所述各个第一目标数据包各自所携带的外层信息,确定所述各个第一目标数据包对应的哈希hash值,再从单播通道初始化hash桶中,获取各个所述hash值对应的初始化数据(即实施例一中的十一元组)。其中,对于单播通道初始化hash桶和初始化数据的相关定义可以参照实施例一,在此不作赘述。
(3)对所述各个第一目标数据包,分别分配用于访问IPTV平台所在专网的专网IP和网络地址转换NAT端口。
(4)根据所述各个第一目标数据包各自所携带的内层信息、所述各个第一目标数据包各自所对应的初始化数据、以及所述各个专网IP和各个网络地址转换NAT端口,生成所述各个第一目标数据包各自对应的全连接跟踪表。
在具体实施时,对于从智能网卡接收到的不存在对应全连接跟踪表的数据包(即首包),从该首包对应的初始化数据中获取Token和虚拟IP,并基于该Token和虚拟IP,通过VxLan VPN服务端内部的服务端NAT管理模块,对该首包分配未用的专网IP(ServerPrivateIP)和NAT端口(ServerNATPort),然后根据该首包所携带内层信息中的五元组:软终端的私有IP(ClientIP)、软终端的端口(ClientPort)、IPTV平台的IP(IPTVServerIP)、IPTV平台的端口(IPTVServerPort)、以及访问协议(InnerProtocol);结合初始化数据中的部分数据,组合成该首包对应的十四元组(即全连接跟踪表)。
根据上述用于计算全连接跟踪hash桶的hash值的对应五元组,计算该十四元组的hash值,并将该十四元组及其hash值插入到全连接跟踪hash桶中,并基于该十四元组生成并下发对应的数据包的流表,表示后续将由智能网卡对匹配这个十四元组的数据包进行VxLan解封装、服务端NAT、虚拟IP映射等卸载加速处理。
(5)根据所述各个第一目标数据包对应的全连接跟踪表,生成使所述智能网卡对所述各个第一目标数据包所关联数据包进行卸载加速处理的执行逻辑。
(6)根据所述执行逻辑,生成所述各个第一目标数据包所关联的数据包的流表规则。
需要说明的是,对于正向数据包或反向数据包来说,其真实访问的源信息和目的信息包含软终端客户端自身的私有IP和端口、IPTV平台的IP和端口、以及访问协议,这5个字段构成了VxLan封装的内层信息。
按照传统的NAT处理方式,VxLan解封装后,VxLan VPN服务端在NAT时会将ClientIP和ClientPort直接替换为ServerPrivateIP和ServerNATPort。但软终端的私有IP(ClientIP)是家庭网关分配的内网IP,各软终端的ClientIP会重复冲突。为了解决这个问题,我们为每个隧道引入了唯一的虚拟IP,使用虚拟IP替换ClientIP,进行虚拟IP和ServerPrivateIP之间的映射,即NAT过程中的映射规则被修改为:进行VirtualIP、ClientPort和IPTVServerIP、IPTVServerPort之间的映射,这个修改的映射规则可同时应用于对正向数据包与反向回复包的NAT过程,从而通过引入唯一的虚拟IP,解决软终端的私有IP重复冲突问题。
作为一种可能的实施方式,数据包的流表规则包含正向数据包的流表规则,所述正向数据包的流表规则指示了:虚拟IP、专网IP和NAT端口、以及正向数据包所携带内层信息中的软终端的私有IP和端口之间的映射规则。
在具体实施时,智能网卡根据接收到的正向数据包所携带的外层信息,确定发送所述正向数据包的单播通道,将所述正向数据包所携带内层信息中的软终端的私有IP映射为所述单播通道的虚拟IP;对映射虚拟IP后的所述正向数据包解封装,得到去除外层信息的正向数据包;将所述去除外层信息的正向数据包所携带内层信息中的虚拟IP和软终端的端口,分别映射为对应的专网IP和NAT端口,得到NAT后的正向数据包;将所述NAT后的正向数据包发送至对应的IPTV平台。
其中,所述外层信息包括:经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符。
示例性地,该正向数据包的流表规则可以包含3个串行的执行逻辑:
<1>对互联网网口进入的正向数据包匹配流表规则中已有的单播通道的标识符,匹配成功则替换正向数据包内层的ClientIP为虚拟IP(即源IP(SourceIP)=VirtualIP);
<2>对匹配单播通道的标识符成功且内层SourceIP=VirtualIP的正向数据包解封装;
<3>对解封装后的正向数据包进行NAT转换(即将SourceIP=VirtualIP,源端口(SourcePort)=ClientPort的内层信息替换为SourceIP=ServerPrivateIP,SourcePort=ServerNATPort的内层信息,再将NAT转换后的数据包经过专网网口发送至对应的IPTV平台。
作为一种可能的实施方式,数据包的流表规则包含反向回复包的流表规则,所述反向回复包的流表规则指示了虚拟IP、软终端的私有IP和端口、以及反向回复包所携带内层信息中的专网IP和NAT端口之间的映射规则。
在具体实施时,智能网卡将从IPTV平台接收到的反向回复包所携带的内层信息中的专网IP和NAT端口,分别映射为虚拟IP和软终端的端口,得到第一回复包;根据所述第一回复包关联的经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符,确定所述第一回复包关联的外层信息;根据所述关联的外层信息对所述第一回复包进行封装,以得到携带了所述关联的外层信息的第二回复包;将所述第二回复包所携带内层信息中的虚拟IP映射为软终端的私有IP,得到第三回复包;将所述第三回复包通过对应的单播通道发送至软终端。
示例性地,该反向回复包的流表规则可以包含3个串行的执行逻辑:
<1>对专网网口进入的反向回复包,将目的IP(DestIP)=ServerPrivateIP,目的端口(DestPort)=ServerNATPort,替换为DestIP=VirtualIP,DestPort=ClientPort;
<2>对DstIP=VirtualIP,DstPort=ClientPort的反向回复包进行VxLan封装,使其具有由SourceIP=ServerIP、SourcePort=ServerPort、DestIP=NAT_IP、DestPort=NAT_Port、以及单播通道的标识符所构成的外层信息,此时该数据包的内层信息为:SourceIP=IPTVServerIP、SourcePort=IPTVServerPort、DestIP=VirtualIP、DestPort=ClientPort;
<3>对外层信息中单播通道的标识符为流表规则中已有标识符、且内层信息中DestIP=VirtualIP的反向回复包,将该VirtualIP替换为对应的ClientIP,经互联网网口发送至对应的软终端。
第二方面,如图3所示,本申请实施例还提供了另一种单播流量卸载加速方法,应用于智能网卡,该方法包括以下步骤:
步骤S21:接收VxLan VPN服务端下发的数据包的流表规则,所述数据包的流表规则指示了单播通道的虚拟IP与数据包所携带内层信息之间的映射规则;
其中,所述内层信息至少包括:软终端的私有IP或专网IP;
步骤S22:根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
采用本申请实施例的技术方案,VxLan VPN服务端通过向智能网卡下发数据包的流表规则,使得智能网卡能够对各个软终端的单播流量完成卸载加速,从而借助于智能网卡实现高并发、大流量、低延时的视频VPN单播转发服务,且通过对每个软终端的单播通道分配唯一的虚拟IP,能够避免因终端的私有IP地址重复而错误发送数据包。
可选地,所述数据包的流表规则包含正向数据包的流表规则,所述正向数据包的流表规则指示了:虚拟IP、专网IP和NAT端口、以及正向数据包所携带内层信息中的软终端的私有IP和端口之间的映射规则;
所述根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理,包括:
根据接收到的正向数据包所携带的外层信息,确定发送所述正向数据包的单播通道,所述外层信息包括:经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符;
将所述正向数据包所携带内层信息中的软终端的私有IP映射为所述单播通道的虚拟IP;
对映射虚拟IP后的所述正向数据包解封装,得到去除外层信息的正向数据包;
将所述去除外层信息的正向数据包所携带内层信息中的虚拟IP和软终端的端口,分别映射为对应的专网IP和NAT端口,得到NAT后的正向数据包;
将所述NAT后的正向数据包发送至对应的IPTV平台。
可选地,所述数据包的流表规则包含反向回复包的流表规则,所述反向回复包的流表规则指示了虚拟IP、软终端的私有IP和端口、以及反向回复包所携带内层信息中的专网IP和NAT端口之间的映射规则;
所述根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理,包括:
将从IPTV平台接收到的反向回复包所携带的内层信息中的专网IP和NAT端口,分别映射为虚拟IP和软终端的端口,得到第一回复包;
根据所述第一回复包关联的经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符,确定所述第一回复包关联的外层信息;
根据所述关联的外层信息对所述第一回复包进行封装,,以得到携带了所述关联的外层信息的第二回复包;
将所述第二回复包所携带内层信息中的虚拟IP映射为软终端的私有IP,得到第三回复包;
将所述第三回复包通过对应的单播通道发送至软终端。
可选地,所述方法还包括:
接收所述VxLan VPN服务端下发的单播初始流表规则;
将从各个单播通道接收到的所述单播初始流表规则关联的数据包,直接发送至所述VxLan VPN服务端进行处理,其中,所述单播初始流表规则的优先级低于所述数据包的流表规则的优先级。
可选地,所述方法还包括:
接收所述VxLan VPN服务端下发的隧道初始流表规则;
将接收到的所述隧道初始流表规则关联的用于隧道认证、建立或维持的数据包直接发送至所述VxLan VPN服务端进行处理。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
第三方面,图4是本申请实施例的一种单播流量卸载加速装置的结构示意图,应用于VxLan VPN服务端,所述装置包括:
初始化模块,用于对各个软终端的单播通道分配不同的虚拟IP;
生成模块,用于根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
发送模块,用于将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
采用本申请实施例的技术方案,VxLan VPN服务端通过向智能网卡下发数据包的流表规则,使得智能网卡能够对各个软终端的单播流量完成卸载加速,从而借助于智能网卡实现高并发、大流量、低延时的视频VPN单播转发服务,且通过对每个软终端的单播通道分配唯一的虚拟IP,能够避免因终端的私有IP地址重复而错误发送数据包。
可选地,所述生成模块包括:
第一生成子模块,用于从所述智能网卡接收所述各个单播通道的第一目标数据包;
第二生成子模块,用于根据所述各个第一目标数据包各自所携带的外层信息,确定所述各个第一目标数据包各自所对应的初始化数据,所述初始化数据包含单个第一目标数据包所关联单播通道的虚拟IP和隧道相关参数,所述外层信息包括:经NAT网关NAT后的软终端的的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符;
第三生成子模块,用于对所述各个第一目标数据包,分别分配用于访问IPTV平台所在专网的专网IP和网络地址转换NAT端口;
第四生成子模块,用于根据所述各个第一目标数据包各自所携带的内层信息、所述各个第一目标数据包各自所对应的初始化数据、以及所述各个专网IP和各个网络地址转换NAT端口,生成所述各个第一目标数据包各自对应的全连接跟踪表;
第五生成子模块,用于根据所述各个第一目标数据包对应的全连接跟踪表,生成使所述智能网卡对所述各个第一目标数据包所关联数据包进行卸载加速处理的执行逻辑;
第六生成子模块,用于根据所述执行逻辑,生成所述各个第一目标数据包所关联的数据包的流表规则。
可选地,所述第二生成子模块包括:
第一处理模块,用于根据所述各个第一目标数据包各自所携带的外层信息,确定所述各个第一目标数据包对应的哈希hash值;
第二处理模块,用于从单播通道初始化hash桶中,获取各个所述hash值对应的初始化数据。
可选地,所述第一生成子模块包括:
第三处理模块,用于从所述智能网卡接收所述各个单播通道的数据包;
第四处理模块,用于根据接收到的所述各个数据包所携带的外层信息,确定所述各个数据包对应的哈希hash值;
第五处理模块,用于根据各个所述hash值,判断全连接跟踪hash桶中是否存在所述各个数据包各自对应的全连接跟踪表;
第六处理模块,用于将不存在对应的全连接跟踪表的数据包确定为所述第一目标数据包。
可选地,所述根据各个所述hash值,判断全连接跟踪hash桶中是否存在所述各个数据包各自对应的全连接跟踪表之后,所述装置还包括:
第七处理模块,用于针对存在对应的全连接跟踪表的数据包,根据所述对应的全连接跟踪表,对所述数据包依次进行解封装处理和NAT处理,并将处理后的所述数据包发送至对应的IPTV平台。
可选地,所述对各个软终端的单播通道分配不同的虚拟IP之前,所述装置还包括:
第八处理模块,用于在所述各个软终端与所述VxLan VPN服务端之间的隧道中,为所述各个软终端分配各自的单播通道;
第九处理模块,用于生成并向所述智能网卡下发单播初始流表规则,以使所述智能网卡将从所述各个单播通道接收到的数据包直接发送至所述VxLan VPN服务端进行处理,其中,所述单播初始流表规则的优先级低于所述数据包的流表规则的优先级。
可选地,所述在所述各个软终端与所述VxLan VPN服务端之间的隧道中,为所述各个软终端分配各自的单播通道之前,所述装置还包括:
第十处理模块,用于生成并向所述智能网卡下发隧道初始流表规则,以使所述智能网卡将接收到的用于隧道认证、建立或维持的第二目标数据包直接发送至所述VxLanVPN服务端进行处理;
第十一处理模块,用于根据从所述智能网卡接收到的第二目标数据包,对所述各个软终端与所述VxLan VPN服务端之间的隧道进行相应的认证、建立或维持操作。
第四方面,图5是本申请实施例的另一种单播流量卸载加速装置的结构示意图,应用于智能网卡,所述装置包括:
接收模块,用于接收VxLan VPN服务端下发的数据包的流表规则,所述数据包的流表规则指示了单播通道的虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
处理模块,用于根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
采用本申请实施例的技术方案,VxLan VPN服务端通过向智能网卡下发数据包的流表规则,使得智能网卡能够对各个软终端的单播流量完成卸载加速,从而借助于智能网卡实现高并发、大流量、低延时的视频VPN单播转发服务,且通过对每个软终端的单播通道分配唯一的虚拟IP,能够避免因终端的私有IP地址重复而错误发送数据包。
可选地,所述数据包的流表规则包含正向数据包的流表规则,所述正向数据包的流表规则指示了:虚拟IP、专网IP和NAT端口、以及正向数据包所携带内层信息中的软终端的私有IP和端口之间的映射规则;
所述处理模块包括:
第一处理子模块,用于根据接收到的正向数据包所携带的外层信息,确定发送所述正向数据包的单播通道,所述外层信息包括:经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符;
第二处理子模块,用于将所述正向数据包所携带内层信息中的软终端的私有IP映射为所述单播通道的虚拟IP;
第三处理子模块,用于对映射虚拟IP后的所述正向数据包解封装,得到去除外层信息的正向数据包;
第四处理子模块,用于将所述去除外层信息的正向数据包所携带内层信息中的虚拟IP和软终端的端口,分别映射为对应的专网IP和NAT端口,得到NAT后的正向数据包;
第五处理子模块,用于将所述NAT后的正向数据包发送至对应的IPTV平台。
可选地,所述数据包的流表规则包含反向回复包的流表规则,所述反向回复包的流表规则指示了虚拟IP、软终端的私有IP和端口、以及反向回复包所携带内层信息中的专网IP和NAT端口之间的映射规则;
所述处理模块包括:
第六处理子模块,用于将从IPTV平台接收到的反向回复包所携带的内层信息中的专网IP和NAT端口,分别映射为虚拟IP和软终端的端口,得到第一回复包;
第七处理子模块,用于根据所述第一回复包关联的经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符,确定所述第一回复包关联的外层信息;
第八处理子模块,用于根据所述关联的外层信息对所述第一回复包进行封装,以得到携带了所述关联的外层信息的第二回复包;
第九处理子模块,用于将所述第二回复包所携带内层信息中的虚拟IP映射为软终端的私有IP,得到第三回复包;
第十处理子模块,用于将所述第三回复包通过对应的单播通道发送至软终端。
可选地,所述装置还包括:
第一接收模块,用于接收所述VxLan VPN服务端下发的单播初始流表规则;
第一发送模块,用于将从各个单播通道接收到的所述单播初始流表规则关联的数据包,直接发送至所述VxLan VPN服务端进行处理,其中,所述单播初始流表规则的优先级低于所述数据包的流表规则的优先级。
可选地,所述装置还包括:
第二接收模块,用于接收所述VxLan VPN服务端下发的隧道初始流表规则;
第二发送模块,用于将接收到的所述隧道初始流表规则关联的用于隧道认证、建立或维持的数据包直接发送至所述VxLan VPN服务端进行处理。
第五方面,如图6所示,本申请实施例还提供了一种单播流量卸载加速系统,所述系统包括:多个软终端和NAT网关、VxLan VPN服务端、智能网卡以及IPTV平台,所述多个软终端通过各自的NAT网关与所述智能网卡连接,所述智能网卡还分别与所述VxLan VPN服务端和IPTV平台连接,其中:
所述VxLan VPN服务端用于执行如第一方面所述的单播流量卸载加速方法,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
本申请实施例还提供了一种电子设备,参照图7,图7是本申请实施例提出的电子设备的示意图。如图7所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本申请实施例公开的单播流量卸载加速方法中的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如本申请实施例公开的所述单播流量卸载加速方法。
本申请实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如本申请实施例公开的所述单播流量卸载加速方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、系统、设备、存储介质及程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种单播流量卸载加速方法、装置、系统及设备和介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (17)
1.一种单播流量卸载加速方法,其特征在于,应用于VxLan VPN服务端,所述方法包括:
对各个软终端的单播通道分配不同的虚拟IP;
根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,包括::
从所述智能网卡接收所述各个单播通道的第一目标数据包;
根据所述各个第一目标数据包各自所携带的外层信息,,确定所述各个第一目标数据包各自所对应的初始化数据,所述初始化数据包含单个第一目标数据包所关联单播通道的虚拟IP和隧道相关参数,所述外层信息包括:经NAT网关NAT后的软终端的端口和IP、VxLanVPN服务端的端口和IP、以及单播通道的标识符;
对所述各个第一目标数据包,分别分配用于访问IPTV平台所在专网的专网IP和网络地址转换NAT端口;
根据所述各个第一目标数据包各自所携带的内层信息、所述各个第一目标数据包各自所对应的初始化数据、以及所述各个专网IP和各个网络地址转换NAT端口,生成所述各个第一目标数据包各自对应的全连接跟踪表;
根据所述各个第一目标数据包对应的全连接跟踪表,生成使所述智能网卡对所述各个第一目标数据包所关联数据包进行卸载加速处理的执行逻辑;
根据所述执行逻辑,生成所述各个第一目标数据包所关联的数据包的流表规则。
3.根据权利要求2所述的方法,其特征在于,所述根据所述各个第一目标数据包各自所携带的外层信息,确定所述各个第一目标数据包各自所对应的初始化数据,包括:
根据所述各个第一目标数据包各自所携带的外层信息,,确定所述各个第一目标数据包对应的哈希hash值;
从单播通道初始化hash桶中,获取各个所述hash值对应的初始化数据。
4.根据权利要求2所述的方法,其特征在于,所述从所述智能网卡接收所述各个单播通道的第一目标数据包,包括:
从所述智能网卡接收所述各个单播通道的数据包;
根据接收到的所述各个数据包所携带的外层信息,确定所述各个数据包对应的哈希hash值;
根据各个所述hash值,判断全连接跟踪hash桶中是否存在所述各个数据包各自对应的全连接跟踪表;
将不存在对应的全连接跟踪表的数据包确定为所述第一目标数据包。
5.根据权利要求4所述的方法,其特征在于,所述根据各个所述hash值,判断全连接跟踪hash桶中是否存在所述各个数据包各自对应的全连接跟踪表之后,所述方法还包括:
针对存在对应的全连接跟踪表的数据包,根据所述对应的全连接跟踪表,对所述数据包依次进行解封装处理和NAT处理,并将处理后的所述数据包发送至对应的IPTV平台。
6.根据权利要求1-5任一所述的方法,其特征在于,所述对各个软终端的单播通道分配不同的虚拟IP之前,所述方法还包括:
在所述各个软终端与所述VxLan VPN服务端之间的隧道中,为所述各个软终端分配各自的单播通道;
生成并向所述智能网卡下发单播初始流表规则,以使所述智能网卡将从所述各个单播通道接收到的数据包直接发送至所述VxLan VPN服务端进行处理,其中,所述单播初始流表规则的优先级低于所述数据包的流表规则的优先级。
7.根据权利要求6所述的方法,其特征在于,所述在所述各个软终端与所述VxLan VPN服务端之间的隧道中,为所述各个软终端分配各自的单播通道之前,所述方法还包括:
生成并向所述智能网卡下发隧道初始流表规则,以使所述智能网卡将接收到的用于隧道认证、建立或维持的第二目标数据包直接发送至所述VxLan VPN服务端进行处理;
根据从所述智能网卡接收到的第二目标数据包,对所述各个软终端与所述VxLan VPN服务端之间的隧道进行相应的认证、建立或维持操作。
8.一种单播流量卸载加速方法,其特征在于,应用于智能网卡,所述方法包括:
接收VxLan VPN服务端下发的数据包的流表规则,所述数据包的流表规则指示了单播通道的虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
9.根据权利要求8所述的方法,其特征在于,所述数据包的流表规则包含正向数据包的流表规则,所述正向数据包的流表规则指示了:虚拟IP、专网IP和NAT端口、以及正向数据包所携带内层信息中的软终端的私有IP和端口之间的映射规则;
所述根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理,包括:
根据接收到的正向数据包所携带的外层信息,确定发送所述正向数据包的单播通道,所述外层信息包括:经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符;
将所述正向数据包所携带内层信息中的软终端的私有IP映射为所述单播通道的虚拟IP;
对映射虚拟IP后的所述正向数据包解封装,得到去除外层信息的正向数据包;
将所述去除外层信息的正向数据包所携带内层信息中的虚拟IP和软终端的端口,分别映射为对应的专网IP和NAT端口,得到NAT后的正向数据包;
将所述NAT后的正向数据包发送至对应的IPTV平台。
10.根据权利要求8所述的方法,其特征在于,所述数据包的流表规则包含反向回复包的流表规则,所述反向回复包的流表规则指示了虚拟IP、软终端的私有IP和端口、以及反向回复包所携带内层信息中的专网IP和NAT端口之间的映射规则;
所述根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理,包括:
将从IPTV平台接收到的反向回复包所携带的内层信息中的专网IP和NAT端口,分别映射为虚拟IP和软终端的端口,得到第一回复包;
根据所述第一回复包关联的经NAT网关NAT后的软终端的端口和IP、VxLan VPN服务端的端口和IP、以及单播通道的标识符,确定所述第一回复包关联的外层信息;
根据所述关联的外层信息对所述第一回复包进行封装,,以得到携带了所述关联的外层信息的第二回复包;
将所述第二回复包所携带内层信息中的虚拟IP映射为软终端的私有IP,得到第三回复包;
将所述第三回复包通过对应的单播通道发送至软终端。
11.根据权利要求8-10任一所述的方法,其特征在于,所述方法还包括:
接收所述VxLan VPN服务端下发的单播初始流表规则;
将从各个单播通道接收到的所述单播初始流表规则关联的数据包,直接发送至所述VxLan VPN服务端进行处理,其中,所述单播初始流表规则的优先级低于所述数据包的流表规则的优先级。
12.根据权利要求8-10任一所述的方法,其特征在于,所述方法还包括:
接收所述VxLan VPN服务端下发的隧道初始流表规则;
将接收到的所述隧道初始流表规则关联的用于隧道认证、建立或维持的数据包直接发送至所述VxLan VPN服务端进行处理。
13.一种单播流量卸载加速装置,其特征在于,应用于VxLan VPN服务端,所述装置包括:
初始化模块,用于对各个软终端的单播通道分配不同的虚拟IP;
生成模块,用于根据所述各个单播通道各自分配到的虚拟IP,生成数据包的流表规则,所述数据包的流表规则指示了虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
发送模块,用于将所述数据包的流表规则下发至智能网卡,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
14.一种单播流量卸载加速装置,其特征在于,应用于智能网卡,所述装置包括:
接收模块,用于接收VxLan VPN服务端下发的数据包的流表规则,所述数据包的流表规则指示了单播通道的虚拟IP与数据包所携带内层信息之间的映射规则,所述内层信息至少包括:软终端的私有IP或专网IP;
处理模块,用于根据所述数据包的流表规则,确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
15.一种单播流量卸载加速系统,其特征在于,所述系统包括多个软终端和NAT网关、VxLan VPN服务端、智能网卡以及IPTV平台,所述多个软终端通过各自的NAT网关与所述智能网卡连接,所述智能网卡还分别与所述VxLan VPN服务端和IPTV平台连接,其中:
所述VxLan VPN服务端用于执行如权利要求1至7中任一项所述的单播流量卸载加速方法,以使所述智能网卡确定接收到的数据包所映射的虚拟IP,并根据所述虚拟IP对所述数据包进行卸载加速处理。
16.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1至7中任一项所述的单播流量卸载加速方法,或者,所述处理器执行所述计算机程序以实现如权利要求8至12中任一项所述的单播流量卸载加速方法。
17.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至7中任一项所述的单播流量卸载加速方法,或者,该计算机程序/指令被处理器执行时实现如权利要求8至12中任一项所述的单播流量卸载加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211681053.5A CN116193172A (zh) | 2022-12-26 | 2022-12-26 | 一种单播流量卸载加速方法、装置、系统及设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211681053.5A CN116193172A (zh) | 2022-12-26 | 2022-12-26 | 一种单播流量卸载加速方法、装置、系统及设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116193172A true CN116193172A (zh) | 2023-05-30 |
Family
ID=86437530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211681053.5A Pending CN116193172A (zh) | 2022-12-26 | 2022-12-26 | 一种单播流量卸载加速方法、装置、系统及设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116193172A (zh) |
-
2022
- 2022-12-26 CN CN202211681053.5A patent/CN116193172A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778464B2 (en) | NSH encapsulation for traffic steering establishing a tunnel between virtual extensible local area network (VxLAN) tunnel end points (VTEPS) using a NSH encapsulation header comprising a VxLAN header whose VNI field has been replaced by an NSH shim | |
KR102429560B1 (ko) | 네트워크 슬라이스 제어 방법 및 장치 그리고 컴퓨터 판독 가능한 저장 매체 | |
CN107872542B (zh) | 一种数据传输的方法及网络设备 | |
RU2614856C2 (ru) | Способ и устройство для обработки имен и пакетов прозрачного соединения множества каналов (trill) | |
US9203750B2 (en) | Ethernet frame translation to internet protocol over infiniband | |
CN107046506B (zh) | 一种报文处理方法、流分类器和业务功能实例 | |
US20140064272A1 (en) | Providing a layer-3 interface | |
CN107317752B (zh) | 一种转发数据报文的方法及装置 | |
US20160134513A1 (en) | Concerted Multi-Destination Forwarding in a Joint TRILL Fabric and VXLAN/IP Fabric Data Center | |
US20180198643A1 (en) | Packet transmission method and apparatus | |
CN103944826A (zh) | Spbm网络中的表项聚合方法及设备 | |
CN111010329B (zh) | 一种报文传输方法及装置 | |
CN104753789B (zh) | 一种转发报文的方法及系统 | |
US20180167313A1 (en) | Sdn-based arp implementation method and apparatus | |
CN107547346B (zh) | 一种报文传输方法和装置 | |
US20230370375A1 (en) | Data processing method and system, encapsulation node, and de-encapsulation node | |
EP2953302B1 (en) | Service packet processing method, apparatus and system | |
CN107733765B (zh) | 映射方法、系统和相关设备 | |
CN105933235A (zh) | 数据通信方法及装置 | |
EP3503484B1 (en) | Message transmission methods and devices | |
CN112565053B (zh) | 识别私网用户的方法、装置、服务系统及存储介质 | |
CN109818869B (zh) | 组播流量转发端口的生成方法及相关设备 | |
WO2017036384A1 (zh) | 运营商边缘设备及数据转发方法 | |
US8855015B2 (en) | Techniques for generic pruning in a trill network | |
CN107547691B (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 |