CN112042158A - 通过多个隧道发送分组的方法和系统 - Google Patents

通过多个隧道发送分组的方法和系统 Download PDF

Info

Publication number
CN112042158A
CN112042158A CN201980008452.5A CN201980008452A CN112042158A CN 112042158 A CN112042158 A CN 112042158A CN 201980008452 A CN201980008452 A CN 201980008452A CN 112042158 A CN112042158 A CN 112042158A
Authority
CN
China
Prior art keywords
datagram
network device
session
core
processing unit
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
Application number
CN201980008452.5A
Other languages
English (en)
Inventor
宋浩伟
梁允俊
吴锦超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pismo Labs Technology Ltd
Original Assignee
Pismo Labs Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pismo Labs Technology Ltd filed Critical Pismo Labs Technology Ltd
Publication of CN112042158A publication Critical patent/CN112042158A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文的示例实施例中描述的是用于实现从第一网络节点向第二网络节点发送分组的方法和系统。属于同一会话的分组可以通过相同或不同的隧道发送。所述第二网络节点使用同一核来处理属于同一会话的分组。根据示例实施例,所述第一网络节点通知所述第二网络节点处理所述分组的所述核。可选地,通过由第一网络基于所述会话创建的核标识来辅助所述第二网络节点处的核选择。所述核标识可以存储在所述分组的报头或有效载荷中。在示例实施例中,第二网络确定用于处理属于同一会话的分组的所述核。

Description

通过多个隧道发送分组的方法和系统
技术领域
本发明的实施例涉及网络装置处的网络数据通信的领域,且具体地,涉及选择网络装置的计算核来处理通过多个隧道发送的分组。
背景技术
多广域网(WAN)站点到站点VPN路由器是一种通过形成聚合隧道来支持聚合多个WAN连接的带宽的路由器。在下文中将这种类型的路由器称为MPND路由器。MPND路由器可以与多个网络节点建立多个聚合隧道。可以单独地或以其任何组合的方式基于各种因素来确定针对特定聚合隧道的WAN连接的选择,这些因素例如但不限于,源IP地址、目的地IP地址、源端口号、目的地端口号、应用数据的内容、应用的服务质量(QoS)要求、时间和日期、用户ID、带宽、时延或连接链路的跳数等。通常,这些MPND具有在数据传送期间根据需要添加或删除WAN连接的功能。可以由管理员/用户或由路由器本身根据实时要求来执行确定要包括在聚合隧道中的WAN连接的操作。
MPND可以用一个处理单元或多个处理单元(例如多处理器装置)来实现。处理单元可以具有多个核。多个核的使用可以通过共享处理网络数据报或分组的载荷来提供改进的性能。MPND可以同时处理从在例如台式机/笔记本电脑、服务器、智能手机以及最近的IoT装置等众多主机上运行的许多应用程序接收到的流量。由于包含处理载荷在内的各种因素,MPND中的不同核可能具有不同的处理性能。不加选择地将接收到的数据报或分组分配给核可能会导致特定数据会话的连续分组被不同的核处理。然后,这可能导致数据报或分组的乱序处理,并且降低了特定数据会话的总体吞吐量。
发明内容
本发明公开了通过将每个接收到的数据报分配给接收器MPND的处理器的确定核来提高接收器MPND处数据报的处理速率的方法和系统。通过将每个接收到的数据报与一个或多个标准进行匹配来进行确定。满足特定标准或一组标准的数据报与特定会话相关联。属于同一会话的数据报被分配给同一核。此条件分配减少了数据报的重新排序,因此减少了分组丢失并提高了接收器MPND的总体数据吞吐率。
在一个实施例中,接收器MPND基于一个或多个报头字段的值或数据报中包含的有效载荷的内容,将接收到的数据报与特定会话相关联。在此实施例中,发送器MPND不需要知道接收器MPND中包括的处理器信息。接收器MPND的处理器信息可以包含但不限于接收器MPND内包括的核数量。与核相关联的任何参数的值或状态也可以包含在处理器信息中。在此特定实施例中,接收器MPND独立于发送器MPND将接收到的数据报分配给它的核。
在一个实施例中,发送器MPND在发送数据报之前接收接收器MPND的处理器信息。在此实施例中,发送器MPND确定接收器MPND应将接收到的数据报分配给哪个核。然后,发送器MPND将对应指令发送到接收器MPND。
在一个实施例中,使用隧道在发送器MPND与接收器MPND之间创建面向连接的通信链路。基于标准在发送器MPND处建立隧道。然后,将目的地为接收器MPND的每个数据报与隧道报头一起封装,以创建新的数据报(在此称为“封装分组”)。然后将每个封装分组发送到接收器MPND。在接收到每个封装分组之后,接收器MPND确定接收到的封装分组将分配到的核。对接收器MPND如何做出此确定没有限制。
在使用隧道从发送器MPND向接收器MPND发送数据报的一个实施例中,发送器MPND在发送数据报之前接收接收器MPND的PI。在此实施例中,发送器MPND确定接收器MPND应将接收到的封装分组分配给哪个核。
在一个实施例中,发送器MPND和接收器MPND能够使用如MPND所使用的聚合隧道来发送和接收数据报。在此实施例中,通过封装每个数据报与聚合隧道报头来创建封装分组。然后将每个封装分组发送到接收器MPND。在接收到每个封装分组之后,接收器MPND确定接收到的封装分组将分配到的核。
在发送器MPND和接收器MPND使用聚合隧道来传输和接收数据报的一个实施例中,发送器MPND在发送数据报之前接收接收器MPND的处理器信息。在此实施例中,发送器MPND确定接收器MPND应将接收到的封装分组分配给哪个核。
用于将接收到的数据报分配给特定核的一个或多个标准与形成隧道所基于的一个或多个条件有关。在一个实施例中,接收器MPND将入站数据单元分配给具有较少处理载荷的核,以减少处理延迟。这里使用的术语“数据单元”是指任何协议数据单元(PDU)。为了一致性,下文仅使用术语“数据报”来指代这种PDU。尽管本发明描述了将数据报有条件地分配给多核系统的核的方法和系统,但是本领域的普通技术人员将理解,本文详细描述的方法和系统可以应用于具有多个处理器(例如单个多核处理器、多个单核处理器、多个多核处理器等)的任何计算系统。
具体实施方式
以下说明仅提供优选的示例性实施例,并且不旨在限制本发明的范围、适用性或配置。实际上,优选的示例性实施例的以下说明将为本领域的技术人员提供实施本发明的优选示例性实施例的有利描述。应理解,在不脱离如在所附权利要求书中阐述的本发明的精神和范围的情况下可以对元件的功能以及布置进行各种改变。因此,实施例并不限于所示的实施例,而是应被赋予与本文描述的原理和特征相一致的最宽范围。
为清楚起见,没有详细描述与实施例有关的技术领域中已知的与技术材料有关的细节。在以下描述中,给出特定细节以提供对实施例的透彻理解。然而,本领域的技术人员应理解,可以在没有这些具体细节的情况下实践所述实施例。例如,可以框图示出电路以免以不必要的细节混淆实施例。在其它情况下,可以在没有不必要的细节的情况下示出熟知的电路、过程、算法、结构以及技术以便避免混淆实施例。
另外,应注意,实施例可以被描述为过程,所述过程被描述为流程图、作业图、会话图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,操作的顺序可重新安排。过程在其操作完成时终止,但是可以具有不包含在图中的另外步骤。过程可对应于方法、功能、程序、子例程、子程序等。当过程对应于功能时,过程的终止对应于功能返回到调用功能或主功能。
实施例或其各部分可以程序指令来实施,所述程序指令可在处理单元上操作以用于执行如本文描述的功能和操作。构成各种实施例的程序指令可以存储在非暂时性存储介质中。此外,如本文所公开的,术语“非暂时性存储介质”可以表示用于存储数据的一个或多个装置,包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、随机存取存储器(RAM)、磁RAM、磁芯存储器、软盘、软磁盘、硬盘、磁带、CD-ROM、快闪存储器装置、存储卡和/或用于存储信息的其它机器可读介质。术语“机器可读介质”包含但不限于便携式或固定存储装置、光学存储介质、磁介质、存储器芯片或盒式磁盘、无线信道,以及能够存储、包含或携载指令和/或数据的各种其它介质。机器可读介质可以通过虚拟化来实现,且可以是虚拟机器可读介质,包含在基于云的实例中的虚拟机器可读介质。
如本文所使用的术语“非暂时性计算机可读介质”、“主存储器”或“辅助存储装置”是指参与向处理单元提供指令以供执行的任何介质。计算机可读介质仅是机器可读介质的一个示例,所述机器可读介质可以携载指令以实施本文中所描述的方法和/或技术中的任一个。此类介质可呈许多形式,包含但不限于非易失性介质、易失性介质及传输介质。非易失性介质包含例如光盘或磁盘。易失性介质包含动态存储器。传输介质包含同轴电缆、铜线以及光纤。传输介质还可以采用声波或光波的形式,例如在无线电波和红外线数据通信期间产生的声波或光波。
易失性存储装置可以用于在通过处理单元执行指令期间存储临时变量或其它中间信息。非易失性存储装置或静态存储装置可以用于存储用于处理单元的静态信息和指令,以及各种系统配置参数。
存储介质可以包含多个软件模块,这些软件模块可以被实现为由处理单元使用任何合适的计算机指令类型执行的软件代码。软件代码可以作为一系列指令或命令、或作为程序存储在存储介质中。
在将一个或多个指令的一个或多个序列携载到处理单元以用于执行时,可以涉及各种形式的计算机可读介质。例如,指令最初可以携载在远程计算机的磁盘上。替代地,远程计算机可以将指令加载到其动态存储器中,且向运行一个或多个指令的一个或多个序列的系统发送指令。
处理器可以是微处理器、微控制器、数字信号处理器(DSP)、中央处理单元(CPU)、多处理器、多核处理器。处理器也可以是独立的处理器,所述处理器可以具有称为核的多个处理单元。共享公用操作系统的多处理器或多核处理器、那些装置的任何组合或配置成处理信息的任何其它电路系统也被视为用于本发明的处理器。
处理单元执行程序指令或代码段以实现本发明的实施例。此外,实施例可以由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实现。当用软件、固件、中间件或微码实现时,执行必需任务的程序指令可以存储在计算机可读存储介质中。处理单元可以通过虚拟化来实现,且可以是虚拟处理单元,包含在基于云的实例中的虚拟处理单元。
本发明的实施例涉及使用计算机系统来实现本文中描述的技术。在实施例中,本发明的处理单元可以驻存在计算机平台等机器上。根据本发明的一个实施例,本文描述的技术通过计算机系统响应于处理单元执行易失性存储器中所含有的一个或多个指令的一个或多个序列来执行。此类指令可以从另一计算机可读介质读取到易失性存储器中。对易失性存储器中所包含的指令序列的执行使得处理单元执行本文描述的过程步骤。在替代实施例中,可以使用硬连线电路系统代替软件指令或结合软件指令来实施本发明。因此,本发明的实施例不限于硬件电路以及软件的任何具体组合。
例如程序指令等代码段可以表示过程、功能、子程序、程序、例程、子例程、模块、软件包、类别,或指令、数据结构的任何组合或程序陈述。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包含存储器共享、消息传递、令牌传递、网络传输等任何合适的方式传递、转发或传输。
替代地,硬接线电路系统可以用于取代或结合软件指令以实现符合本发明的原理的过程。因此,符合本发明的原理的实施方案不限于硬件电路和软件的任何特定组合。
网络接口可以通过独立的电子组件实现或者可以与其它电子组件集成。根据配置,网络接口可以不具有网络连接或具有至少一个网络连接。网络接口可以是以太网接口、无线通信接口、帧中继接口、光纤接口、电缆接口、数字订户线(DSL)接口、令牌环接口、串行总线接口、通用串行总线(USB)接口、火线接口、外围组件互连(PCI)接口等。
网络接口可以连接到有线或无线接入网络。接入网络可以携载一个或多个网络协议数据。有线接入网络可以使用以太网、光纤、电缆、DSL、帧中继、令牌环、串行总线、USB、火线、PCI或可以传递信息的任何材料来实施。无线接入网络可以使用红外线、高速分组接入(HSPA)、HSPA+、长期演进(LTE)、WiMax、GPRS、EDGE、GSM、CDMA、WiFi、CDMA2000、WCDMA、TD-SCDMA、蓝牙、WiBRO、演进数据优化(EV-DO)、数字增强型无绳通信(DECT)、数字AMPS(IS-136/TDMA)、集成数字增强型(iDEN)或任何其它无线技术来实现。
实施例或其部分可以体现在计算机数据信号中,计算机数据信号可以采用用于通过传输介质进行通信的任何合适的形式,使得其可读取以由功能装置(例如,处理单元)执行而实施本文中描述的操作。计算机数据信号可以包含能够经由传输介质传播的任何二进制数字电子信号,所述传输介质例如电子网络信道、光纤、空气、电磁介质、射频(RF)链路等,且因此数据信号可以采用电信号、光信号、射频或其它无线通信信号等形式。在某些实施例中,可经由计算机网络下载代码段,计算机网络例如互联网、企业内部网、LAN、MAN、WAN、PSTN、卫星通信系统、电缆传输系统等。
图3示出典型的网络拓扑3000,其中多个MPND可以经由多组接入网络连接在一起。可以连接在一起的MPND的数量没有限制。根据实施例,系统3000适于根据本发明配置成通过聚合的多个连接(在此也称为“聚合隧道”)传输和接收数据。系统3000包含多个站点307和311。站点307和311各自分别包括至少一个MPND 301和MPND 302。网络310可以包括局域网(LAN)、城域网(MAN)、广域网(WAN)、无线网络、公共交换电话网(PSTN)、互联网、内联网、外联网或其它类似网络中的一个或多个。台式计算机303和笔记本电脑305分别使用连接304和306连接到网络MPND 301。文件服务器315和数据库服务器309分别使用连接308和313连接到MPND 302。并不限制只有台式计算机、笔记本电脑、文件服务器和数据库服务器才能连接到MPND 301和302。任何具有联网功能的电子装置都可以连接到MPND 301和302。
接入网络312和314是用于在站点307与311之间的网络310内传送信息的数据连接。示出这些数量的接入网络仅是为了说明。本领域的技术人员将理解,MPND 301和302可以适配任何数量和布置的接入网络。接入网络312-1、312-2、312-3、314-1和314-2可以具有相似或不同的网络特征,包含丢包率和带宽能力。此外,接入网络312和314可以包括不同类型的网络连接,例如WiFi、光纤、电缆、DSL、T1、3G、4G、5G、卫星连接、以太网、ATM等。还应注意,MPND 301和302可以被认为是发送器或接收器,并且关于任一站点的功能的讨论可以在另一站点上实现。换句话说,系统3000可以被实现为具有双向数据传送能力的对称网络。
当在MPND 301与302之间建立聚合连接(例如通过实现聚合的站点到站点VPN连接)时,可以创建多个隧道316。多个隧道316对应于站点307的WAN连接312和站点311的网络连接314的唯一排列。可以通过MPND 301与302之间的网络310建立多个隧道316中的一个或多个。并不限制每个接入网络312的多个隧道316必须为两个,或每个接入网络314的多个隧道316必须为三个。并不限制MPND 301和302都必须具有多个WAN端口或必须连接到多个WAN连接。然而,MPND 301和302中的至少一个必须通过多个WAN接口或端口连接到多个WAN连接。
图6是根据本发明实施例之一的路由器6000的示意性框图,其具有与MPND 301和302相似的功能。路由器6000包括处理器600、主存储器601、系统总线602、辅助存储装置603以及网络接口604、605、606和607。处理器600和主存储器601彼此直接连接。处理器600通过系统总线602连接到辅助存储装置603和网络接口604、605、606和607。系统总线602可以是几种类型的总线结构中的任何一种,包含存储器总线、外围总线和使用各种总线架构中的任一个的本地总线。辅助存储装置603存储由处理器600执行的程序指令。处理器600包括作为处理单元的多个核。仅出于说明目的,处理器600具有两个核,即核600a和核600b。本领域的技术人员将理解,处理器600不限于仅具有两个核,而是还可以具有两个以上的核。本发明的范围不限于具有四个网络接口的路由器6000,从而允许路由器6000具有高于或低于此数量的网络接口。此外,路由器6000不限于仅具有一个处理器600,而是还可以具有多个处理器。
应理解,本公开不限于系统6000的架构。例如,可以使用任何合适的基于处理器的装置来实现上述教导,包含但不限于路由器、个人计算机、笔记本电脑、计算机工作站、多处理器服务器,甚至手机。此外,某些实施例可以在专用集成电路(ASIC)或超大规模集成(VLSI)电路上实现。实际上,根据实施例,本领域普通技术人员可以利用能够执行逻辑运算的任何数量的合适结构。
接入网络将例如MPND的网络装置的网络接口连接到例如互联网的互连网络。网络接口可以是以太网接口、3G/4G/5G网络接口、WiMAX网络接口,或网络装置的任何其它网络接口。网络接口还可以是虚拟机(VM)的虚拟网络接口。接入网络呈光纤、以太网、ATM、帧中继、T1/E1、IPv4、IPv6、无线技术、Wi-Fi、WiMax、高速分组接入技术、3GPP长期演进(LTE)等形式。
端到端连接是源节点与目的地节点之间的连接。端到端连接可以包含一个或多个接入网络和一个或多个中间节点。在本发明的实施例中的一个中,源节点与目的地节点之间的端到端连接是虚拟专用网络(VPN)隧道。
隧道是两个MPND使用它们各自的隧道接口和一个或多个接入网络在其之间建立的端到端连接。使用隧穿协议建立隧道,所述隧穿协议将一种类型的协议数据单元(PDU)封装成另一种类型的协议数据单元。隧穿协议的示例包含但不限于通用路由封装协议(GRE)和层2隧穿协议(L2TP)。隧道在两个网络节点之间创建虚拟点对点连接。隧道可以对或可以不对封装PDU进行加密,例如IP分组。使用MPNS的同一网络接口可以建立超过一个隧道接口。隧道的每一端上的两个MPND可以直接连接或可以通过一个或多个互连网络连接。
信息分组是包含例如地址信息的控制信息以及用户数据的PDU。信息分组可以是例如互联网协议(IPv4或IPv6)的网络层PDU、例如传输控制协议(TCP)或用户数据报协议(UDP)的传送层PDU,或能够通过接入网络携载信息的任何其它协议的PDU。
在本发明中,数据流、会话和数据会话视为是可互换的。例如,一个或多个多媒体数据会话是一组多媒体发送器和接收器,并且数据流从发送器流向接收器。多媒体会议是多媒体数据会话或流的示例。
图1和图4应结合图3的网络架构图来查看。图1和图4示出根据本发明的一个实施例的分别由接收器MPND 302和发送器MPND 301执行的步骤。在此实施例中,接收器MPND302依赖于数据报中的核标识来选择核以处理接收到的数据报。核标识可以采用字符串、数字、哈希、代码或发送器MPND 301和接收器MPND 302可以标识的任何数据格式的形式。如果数据报中没有核标识,则接收器MPND 302将通知发送器MPND 301属于同一数据报流的未来数据报的核标识。
在步骤102,接收器MPND 302从接入网络312和314中的一个接收第一数据报。在步骤103,接收器MPND 302确定第一数据报是属于新会话还是属于已经接收到一个或多个数据报的会话。
基于数据会话标识过程来标识会话。数据会话标识过程可以单独地或以其任何组合的方式基于但不限于核标识、源IP地址、目的地IP地址、源端口号、目的地端口号、连接状态、有效载荷内容、应用的服务质量(QoS)要求、时间和日期、用户ID、带宽、时延或连接链路的跳数等。
如果数据报属于新会话,则在步骤104,接收器MPND 302分配核以处理新会话的数据报。新会话包括第一数据报以及新会话的要接收的数据报。接收器MPND 302还创建或分配与所分配的核相对应的核标识。
在步骤105,接收器MPND 302通知发送器MPND 301所分配的核的标识。并不限制必须在步骤103之后立即执行步骤104。例如,可以在步骤107之后执行步骤104。在一个变化例中,可以在属于新会话的一个或多个数据报到达接收器MPND 302之后执行步骤104。
并不限制属于一个会话的所有数据报必须由发送器MPND 301的同一WAN接口发送,或者必须通过同一路径发送,或者必须由接收器MPND302处的同一网络接口接收。优选地,发送器MPND 301发送新会话的所有数据报(第一个数据报或前几个数据报除外)以及核标识。
如果属于会话的一个或多个数据报已经到达接收器MPND 302,则在步骤106,接收器MPND 302然后基于第一数据报所属的会话的先前核分配来确定核。当在第一数据报中存储有核标识时,接收器MPND 302将分配与所述核标识相对应的核以处理第一数据报。
在步骤107,接收器MPND 302使用所分配的核来处理数据报。然后,将处理后的数据报转发到对应目的地,例如接收器MPND 302或连接到MPND 302的装置,例如文件服务器315或数据库服务器309。
图4示出根据本发明的一个实施例的由发送器MPND 301和接收器MPND 302执行的步骤。图4所示的实施例可以与图3所示的实施例一起在系统中实现,或者可以独立于图3实现。在此特定实施例中,发送器MPND 301在发送数据报之前具有由接收器MPND 302发送的核标识。如图1的实施例中所述,所述核标识将由接收器MPND 302使用。
对于公开的所有实施例,处理器信息可以由接收器MPND 302发送,或者由MPND302和MPND 303的用户或管理员或从远程管理节点与发送器MPND 301预先共享。
在步骤401,发送器MPND 301从MPND 302接收在步骤105由接收器MPND 302发送的流的核标识。在一个变化例中,发送器MPND 301在发送新流的初始数据报之前接收核标识。在一个变化例中,发送器MPND301在发送新流的初始数据报或初始的几个数据报之后接收核标识。
在步骤402,发送器MPND 301具有要发送到接收器MPND 302的数据报。所述数据报可以由MPND 301基于从连接到MPND 301的诸如台式计算机303和笔记本电脑305之类的装置接收的另一数据报来创建。
在步骤403,发送器MPND 301将与所确定的核相对应的核标识置于数据报中。
在步骤404,发送器MPND 301通过接入网络312之一将数据报发送到接收器MPND302。
对核标识是否已加密没有限制。对核标识是存储在数据报的报头部分还是有效载荷部分中也没有限制。在一个示例中,发送器MPND 301在步骤403期间对核标识进行加密并将其存储在数据报的报头部分。然后,接收器MPND 302在步骤106将第一数据报分配给核之前,对加密的核标识进行解密。在另一示例中,核标识不加密。优选地,不对核标识进行加密并且将其存储在数据报的报头部分中,以减少处理载荷。
图5示出根据本发明的一个实施例的由发送器MPND 301和接收器MPND 302执行的步骤。将此实施例与图1和图4所示的实施例进行比较,将由发送器MPND 301发送的数据报封装在封装分组中,并通过聚合隧道发送。图5应结合图3查看。
在步骤501,在发送器MPND 301与接收器MPND 302之间建立聚合隧道。可以使用一个或多个接入网络312和一个或多个接入网络314通过网络310来建立聚合隧道。在聚合隧道建立阶段,接收器MPND 302向发送器MPND 301发送核标识。
在步骤502,发送器MPND 301具有要发送到接收器MPND 302的数据报。可以从连接到发送器MPND 301网络中的网络节点接收数据报,并指定数据报给接收器MPND 302或连接到接收器MPND 302的网络中的网络节点。在步骤503,发送器MPND 301通过封装数据报与聚合隧道报头来创建封装分组。在聚合隧道报头中,存储核标识。封装分组可以是IP分组。IP分组的有效载荷部分不加密,并保存聚合隧道报头和数据报。
在步骤504,发送器MPND 301将封装分组发送到接收器MPND 302。在步骤505,接收器MPND 302从发送器MPND 301接收封装分组。在步骤506,接收器MPND 302检查封装分组并从聚合隧道报头中检索核标识。然后,MPND 302基于核标识来选择其核中的一个以处理数据报,所述数据报是从封装分组的有效载荷部分中检索到的。
由于在此特定实施例中,MPND 301不对封装分组的有效载荷进行加密,因此接收器MPND 302在步骤506不需要执行任何解密来检索核标识。在步骤507,接收器MPND 302将封装分组分配给与核标识相对应的核。然后,核将处理封装分组。接着,接收器MPND 302可以在处理之后将封装分组的有效载荷中的数据报发送到相应的接收网络节点。
当更多数据报到达发送器MPND 301并通过聚合隧道指定给接收器MPND 302时,将重复步骤502至507。因此,封装数据报的封装分组的隧道报头的核标识将是相同的。
在一个变化例中,在步骤501期间,发送器MPND 301还可以向接收器MPND 302发送核标识。当接收器MPND 302具有要发送给发送器MPND 301的数据报时,接收器MPND 302还将具有所述核标识的数据报封装在封装分组中,然后将封装分组发送给发送器MPND 301。
在一个变化例中,在从发送器MPND 301向接收器MPND 302传输特定数据会话的数据数据报之前(例如,使用握手方法),接收器MPND 302向发送器MPND 301提供核标识。在另一变化例中,核标识由管理员或用户预先确定和设置。在另一变化例中,发送器MPND 301从远程管理节点或从数据存储装置接收或收集核标识。在此实施例的一个变化例中,与发送器MPND 301仅共享要用于处理数据报的接收器节点的核总数。在另一变化例中,与发送器MPND 301共享包括在接收器MPND 302中的核总数,并且发送器MPND 301确定要使用的处理核数量。
在一个变化例中,修改步骤503和步骤506。在修改的步骤503,发送器MPND 301对数据报和隧道报头进行加密,并存储在封装分组的有效载荷部分中。数据报和隧道报头被加密。在修改的步骤506,接收器MPND 302首先对封装分组的有效载荷进行解密以检索数据报和隧道报头。然后,可以从隧道报头中检索核标识。
在一个变化例中,在步骤501不通过接收器MPND 302发送核标识。替代地,通过接收器MPND 302发送会话ID。
在一个变化例中,在步骤501没有通过接收器MPND 302发送核标识。替代地,通过MPND 301确定会话ID,并将其发送给接收器MPND 302。
在另一变化例中,核标识被会话ID代替,并且会话ID是哈希值。
对会话ID的格式、数据类型或长度没有限制,只要它能够唯一地标识数据会话即可。例如,会话ID可以是但不限于纯文本字母数字、二进制或十六进制的格式。
图7示出根据本发明的一个实施例的由发送器MPND和接收器MPND执行的步骤。在此实施例中,类似于图5所示的实施例,发送器MNPD将为要发送到接收器MPND的每个分组分配核标识。然而,并非所有封装分组都具有相同的核标识。替代地,主要基于要发送到接收器MPND的数据报的数据会话来确定核标识。
在步骤701,第一MPND和第二MPND在聚合隧道的建立期间交换处理器信息。仅出于说明目的,第一MPND是MPND 301,并且第二MPND302是MPND 302。MPND 301和MPND 302都可以是发送器和接收器。处理器信息包含每个MPND所具有的核数量。例如,MPND 301具有一个处理单元,并且所述处理单元具有四个核。MPND 301通知MPND 302它具有四个核。例如,MPND 301具有两个处理单元,并且每个处理单元具有八个核。MPND 302通知MPND 301它具有十六个核。对处理器信息和核信息的表示没有限制。核数量可以简单地由四个位表示以表示核中的一个。例如,处理器信息可以是字符串、字节或二进制数据。
在另一个示例中,核数量由字符或字符串表示。仅出于说明目的,MPND 301可以将“AA”、“BB”、“CC”和“DD”发送给MPND 302,以分别作为四个核的核标识。MPND 302可以向MPND 301发送“核1”、“核2”、“核3”、“核4”、“核5”、“核6”、“核7”、“核8”、“核9”、“核10”、“核11”、“核12”、“核13”、“核14”、“核15”和“核16”,分别作为四个核的核标识。
处理器信息也可以包含核选择标准。例如,核选择标准是基于数据报的类型选择核。例如,不应使用某些核和/或优选使用某些核。建立聚合隧道后,处理器信息也可能会更新。在一个示例中,当在MPND处添加更多核或使更多核可用时,MPND可以向另一MPND更新核数量。
在步骤702,当发送器MPND接收到指定给接收器MPND的数据报时,发送器MPND的处理单元标识所述数据报所属的数据会话。有多种标识数据会话的方法,例如在图1所示实施例的步骤103中所公开的。
在步骤703,发送器MPND基于数据会话将核分配给数据报。如果数据报是数据会话中的第一个数据报,则发送器MPND可以从接收器MPND的多个核中选择一个核。有很多选择核的方法。对选择方法没有限制。例如,发送器MPND随机选择核。在另一示例中,发送器MPND统一选择核,即第一个数据会话使用第一个核,第二个数据会话使用第二个核,依此类推。如果有四个核,则第五个数据会话将再次使用第一个核。在另一示例中,可以选择任何一个核,除了一个或多个不可选择的核。不可选择的核只能用于某些特定的数据报,例如高优先级数据报。
如果数据报不是数据会话的第一个数据报,则发送器MPND将查找已分配给数据会话的核。
在步骤704,将与在步骤703分配的核相对应的核标识和数据报封装在一个或多个封装分组中。在步骤705,发送器MPND通过已在步骤701建立的聚合隧道将一个或多个封装分组发送到接收器MPND。
核标识可以采用字符串、数字、哈希、代码或接收器MPND可以标识的任何数据格式的形式。
在步骤706,接收器MPND通过聚合隧道从发送器MPND接收一个或多个封装分组。在步骤707,接收器MPND对一个或多个封装分组进行解封装以提取数据报和核标识。在步骤708,接收器MPND通过使用由核标识指示的核来处理数据报。
当属于同一数据会话的更多数据报稍后到达时,这些数据报也将被分配相同核标识,即已经分配给数据会话的接收器MPND的相同核。
图8示出根据本发明的一个实施例的由发送器MPND和接收器MPND执行的步骤。在此实施例中,发送器MPND不使用与接收器MPND的处理器信息有关的任何信息。发送器MPND在将数据报发送到接收器MPND之前先对其进行加密。接收器MPND对接收到的数据报进行解密,然后确定相应的核来处理数据报。
在步骤801,发送器MPND具有要发送到接收器MPND的第一数据报。在步骤802,发送器MPND基于隧道选择标准来选择聚合隧道(已经在两个MPND之间建立的)的一个或多个隧道,以将第一数据报发送到接收器MPND。如图1的步骤103中所描述的那样确定隧道选择标准。在步骤803,发送器MPND对第一数据报进行加密以创建一个或多个封装分组的有效载荷。在步骤804,发送器MPND创建与聚合隧道相对应的聚合隧道报头。
在步骤805,发送器MPND封装有效载荷和聚合隧道报头以创建一个或多个封装分组。如果有效载荷足够小以适合在一个封装分组内,则仅需要一个封装分组。否则,将需要更多的封装分组。在步骤806,发送器MPND将一个或多个封装分组发送到接收器MPND。在步骤807,接收器MPND从发送器MPND接收一个或多个封装分组。在步骤808,接收器MPND对一个或多个封装分组进行解封装以检索数据报。
在步骤809,接收器MPND对第二数据报进行解密以检索第一数据报。在步骤810,接收器MPND基于核选择标准将数据报分配给其核之一。核选择标准是首先标识数据报所属的数据会话。属于同一数据会话的数据报由同一核处理。其次,如果数据报是新数据会话的第一个数据报,则接收器MPND选择核来处理数据报。因此,当接收器MPND之前未接收到会话标识符时,封装在具有所述会话标识符的封装分组中的数据报是会话的第一个数据报。对选择方法没有限制。例如,选择可以基于核可用性或核载荷。也可以随机地或顺序地选择核。在另一示例中,可以选择任何一个核,除了一个或多个不可选择的核。不可选择的核只能用于某些特定的数据报,例如高优先级数据报。
存储所选核和会话标识符以供以后查找。
如果第一数据报属于已经标识的数据会话,则接收器MPND选择已经针对所述数据会话选择的核,以处理第一数据报。当接收到会话标识符时,接收器MPND的处理单元能够确定第一数据报所属的数据会话。可以通过使用会话标识符来查找核。
图9示出根据本发明的一个实施例的由发送器MPND和接收器MPND执行的步骤。在此实施例中,接收器MPND不需要对数据报进行解密就可以选择核来处理数据报。替代地,将未加密的会话ID用于这一目的。如前所述,对会话ID的格式、数据类型或长度没有限制,只要它能够唯一地标识数据会话即可。另外,在此实施例中,可以对整个数据报进行加密,可以仅对数据报的一部分进行加密,或者可以完全不对数据报进行加密。数据报的会话ID用于标识特定数据报所属的特定数据会话(例如但不限于TCP数据会话)。属于不同数据会话的数据报分配有不同的会话ID。接收器MPND可以直接检索会话ID,而无需解密,并且可以基于会话ID选择核以处理数据报。
在步骤901,发送器MPND具有要发送到接收器MPND的第一数据报。在步骤902,发送器MPND基于数据会话标识过程为第一数据报所属的数据会话创建会话ID。如在图1的步骤103中所描述的那样确定数据会话标识过程。在步骤903,发送器MPND基于隧道选择标准来选择聚合隧道的一个或多个隧道,以将第一数据报发送到接收器MPND。对隧道选择标准没有限制。例如,可以根据隧道带宽、隧道时延、使用一个或多个隧道所使用的接入网络的资费和/或发送器MPND的地理位置来选择一个或多个隧道。
在步骤904,发送器MPND创建与聚合隧道相对应的聚合隧道报头。聚合隧道报头包括隧道信息,例如隧道的标识隧道序列号和全局序列号,以及会话ID。然后,将第一数据报和聚合隧道报头存储在第一封装分组的有效载荷中。并不限制会话ID必须存储在聚合隧道报头中。例如,会话ID可以替代地存储在封装分组的有效载荷的一部分中,而不是存储在聚合隧道报头中。发送器MPND可以对或可以不对聚合隧道报头进行加密。
发送器MPND还将第一数据报封装在第一封装分组的有效载荷中。取决于配置,发送器MPND可以对或可以不对第一数据报进行加密。
在一个变化例中,将会话ID存储在第一封装分组的报头中。在此实施例中,无论会话ID是在第一封装分组的报头中、在聚合隧道报头中还是在有效载荷的一部分中,都不对会话ID进行加密。这将允许接收器MPND检索会话ID,而无需在步骤908进行解密。
在步骤905,发送器MPND通过聚合隧道发送第一封装分组。由于聚合隧道由多个隧道组成,因此通过在步骤903中选择的隧道发送封装分组。在将第一数据报分段为多个第一封装分组的情况下,并不限制所有多个第一封装分组必须通过同一隧道发送。
在步骤906,接收器MPND通过聚合隧道从发送器MPND接收第一封装分组。
在步骤907,接收器MPND对第一封装分组进行解封装以检索第一数据报和会话ID。如果在步骤904将第一数据报放入第一封装分组的有效载荷中时对其进行了加密,则将执行解密以检索第一数据报。当未对会话ID进行加密时,接收器MPND无需解密即可检索会话ID。与会话ID被加密的情况相比,这可以允许接收器MPND更快地标识会话ID。
在步骤908,接收器MPND将第一数据报分配给与会话ID相对应的其核之一。对接收器MPND用来基于会话ID选择核的方法没有限制。选择标准与图8所示的实施例中的步骤810处的核选择标准相似但不相同。可以存储所选核和会话ID用于查找。例如,将所选核和会话ID对信息存储在数据库或文本文件中。
优选地,由同一核处理与同一会话ID相对应的数据报。接收器MPND基于会话ID选择核来处理数据报。对选择方法没有限制。例如,选择可以基于核可用性或核载荷。也可以随机地或顺序地选择核。在另一示例中,可以选择任何一个核,除了一个或多个不可选择的核。不可选择的核只能用于某些特定的数据报,例如高优先级数据报。此步骤的选择类似于在步骤703执行的核选择。
如果接收器MPND已经接收到具有同一会话ID的封装分组,则意味着已经接收到与所述会话ID相对应的数据会话的一个或多个数据报。接收器MPND选择已针对会话ID选择的核来处理第一数据报。接收器MPND可以查找已为会话ID分配的核。例如,接收器MPND可以基于会话ID使用文本文件查找核。
在一个变化例中,会话ID由核标识代替。在步骤902,发送器MPND选择接收器MPND的核,然后使用核标识而不是会话ID来通知接收器MPND将使用所述核来处理第一数据报。因此,在步骤904和907中,会话ID由核标识代替。在步骤908,由于已经由核标识指示了要用于处理第一数据报的核,所以不需要存储核ID。也无需基于核标识执行核查找。
当使用核标识时,发送器MPND应从接收器MPND接收处理器信息,如步骤701所述。然后,发送器MPND将为属于同一数据会话的数据报选择核。将对应于核的核标识与数据报一起封装。
例如,仅出于说明目的,以十六进制格式将会话标识符表示为“A3B8F20A88C23EB”。首次接收器MPND接收到具有此会话标识符的数据报时,接收器MPND的处理单元分配一个核(例如核12)来处理所述数据报。从那时起,每当接收器MPND接收到会话标识符为“A3B8F20A88C23EB”的封装分组时,处理单元就会使用核12来处理封装分组中的数据报。
图10示出根据图9所示实施例的一个变化例由发送器MPND和接收器MPND 302执行的步骤。与图9所示实施例相比,在此特定变化例中,会话ID包含在聚合隧道报头中,而不是包含在第一个数据报中。在步骤1001,发送器MPND 301具有要发送到接收器MPND 302的第一数据报。在步骤1002,发送器MPND基于至少一个第一标准为第一数据报所属的数据会话创建会话ID。如在图1的步骤103中描述,确定至少一个第一标准。在此实施例的一个变化例中,发送器MPND 301不创建会话ID,而是为第一数据报所属的数据会话确定会话ID。在步骤1003,发送器MPND301基于至少一个第二标准来选择(已经在两个MPND之间建立的)聚合隧道的一个或多个隧道,以将第一数据报发送到接收器MPND 302。至少一个第二标准可以包含但不限于至少一个第一标准。在步骤1004,发送器MPND 301创建与聚合隧道相对应的聚合隧道报头。在步骤1005,发送器MPND 301将会话ID包含在聚合隧道报头中。在步骤1006,发送器MPND301封装第一数据报与聚合隧道报头以创建第一封装分组。在步骤1007,发送器MPND 301将第一封装分组发送到接收器MPND 302。在步骤1008,接收器MPND 302从发送器MPND 301接收封装分组。在步骤1009,接收器MPND 302对第一封装分组进行解封装以检索第一数据报。在步骤1010,接收器MPND 302从聚合隧道报头中检索会话ID。在步骤1011,接收器MPND 302将第一数据报分配给与会话ID相对应的其核之一,如图9的步骤908所述。
尽管本发明中描述的实施例是针对多核MPND,但是本领域普通技术人员将理解,本文描述的技术不仅适用于多核MPND,而且还适用于任何多处理计算系统,包含但不限于多处理系统、多核系统、众核系统。
附图说明
图1示出根据本发明的一个实施例执行的过程的流程图;
图2示出根据本发明的一个实施例的通信装置的框图;
图3示出根据本发明的一个实施例的网络环境;
图4示出根据本发明的一个实施例执行的过程的流程图;
图5示出根据本发明的一个实施例执行的过程的流程图;
图6示出根据本发明的一个实施例的通信装置的框图;
图7示出根据本发明的一个实施例执行的过程的流程图;
图8示出根据本发明的一个实施例执行的过程的流程图;
图9示出根据本发明的一个实施例执行的过程的流程图;以及
图10示出根据本发明的一个实施例执行的过程的流程图。

Claims (39)

1.一种从第一网络装置向第二网络装置发送分组的方法,其包括以下步骤:
在所述第一网络装置处:
a.在所述第一网络装置处接收第一数据报;
b.分配核标识,其中所述核标识对应于第二网络装置的核;
c.将所述第一数据报和所述核标识封装成第一封装分组;
d.将所述第一封装分组发送到所述第二网络装置;
在所述第二网络装置处:
e.在所述第二网络装置处接收所述第一封装分组;
f.从所述第一封装分组中检索所述第一数据报和所述核标识;
g.使用通过所述核标识所标识的所述核来处理所述第一数据报。
2.根据权利要求1所述的方法,其中所述核标识基于所述第二网络装置提供的处理器信息。
3.根据权利要求2所述的方法,其中所述处理器信息包含所述第二网络装置处可用的核数量。
4.根据权利要求2所述的方法,其中在发送所述第一封装分组之前,由所述第二网络装置提供所述处理器信息。
5.根据权利要求1所述的方法,其中所述核标识不加密。
6.根据权利要求1所述的方法,其进一步包括:
h.当所述第一数据报是属于会话的数据报序列中的第一个数据报时,根据选择策略分配所述核标识,并且还针对所述会话的未来数据报分配所述核标识;
i.当所述第一数据报不是属于所述会话的所述数据报序列中的第一个数据报时,所述核标识与已经分配给所述会话的所述核标识相同。
7.根据权利要求6所述的方法,其中所述会话是基于所述第一数据报的源地址、源端口、目的地地址和目的地端口来标识。
8.根据权利要求6所述的方法,其中属于所述会话的数据报通过在所述第一网络装置与所述第二网络装置之间建立的多个连接发送。
9.根据权利要求8所述的方法,其中将所述多个连接聚合在一起以形成聚合连接。
10.根据权利要求9所述的方法,其进一步包括:在所述聚合连接的建立期间,所述第一网络装置和所述第二网络装置交换各自的处理器信息。
11.一种从第一网络装置发送分组的系统,其包括:
所述第一网络装置和第二网络装置;
其中所述第一网络装置由以下项组成:
至少一个第一网络接口;
至少一个第一处理单元;以及
用于存储程序指令的至少一个第一非暂时性计算机可读存储介质,所述程序指令可由所述至少一个第一处理单元执行且配置成使所述至少一个第一处理单元执行以下步骤:
a.在所述第一网络装置处接收第一数据报;
b.分配核标识,其中所述核标识对应于第二网络装置的核;
c.将所述第一数据报和所述核标识封装成第一封装分组;
d.将所述第一封装分组发送到所述第二网络装置;
其中所述第二网络装置由以下项组成:
至少一个第二网络接口;
至少一个第二处理单元;以及
用于存储程序指令的至少一个第二非暂时性计算机可读存储介质,所述程序指令可由所述至少一个第二处理单元执行且配置成使所述至少一个第二处理单元执行以下步骤:
e.在所述第二网络装置处接收所述第一封装分组;
f.从所述第一封装分组中检索所述第一数据报和所述核标识;
g.使用通过所述核标识所标识的所述核来处理所述第一数据报。
12.根据权利要求11所述的系统,其中所述核标识是基于所述第二网络装置提供的处理器信息。
13.根据权利要求12所述的系统,其中所述处理器信息包含所述第二网络装置处可用的核数量。
14.根据权利要求12所述的系统,其中在发送所述第一封装分组之前,由所述第二网络装置提供所述处理器信息。
15.根据权利要求11所述的系统,其中所述核标识不加密。
16.根据权利要求11所述的系统,其中所述至少一个第一非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第一处理单元执行且配置成使所述至少一个第一处理单元执行以下步骤:
h.当所述第一数据报是属于会话的数据报序列中的第一个数据报时,根据选择策略分配所述核标识,并且还针对所述会话的未来数据报分配所述核标识;
i.当所述第一数据报不是属于所述会话的所述数据报序列中的第一个数据报时,所述核标识与已经分配给所述会话的所述核标识相同。
17.根据权利要求16所述的系统,其中所述会话是基于所述第一数据报的源地址、源端口、目的地地址和目的地端口来标识。
18.根据权利要求16所述的系统,其中属于所述会话的数据报通过在所述第一网络装置与所述第二网络装置之间建立的多个连接发送。
19.根据权利要求18所述的系统,其中将所述多个连接聚合在一起以形成聚合连接。
20.根据权利要求19所述的系统,其中所述至少一个第一非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第一处理单元执行且配置成使所述至少一个第一处理单元执行以下操作,并且所述至少一个第二非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第二处理单元执行且配置成使所述至少一个第二处理单元执行以下操作:在所述聚合连接的建立期间交换各自的处理器信息。
21.一种从第一网络装置向第二网络装置发送分组的方法,其包括以下步骤:
在所述第一网络装置处:
a.在所述第一网络装置处接收第一数据报;
b.确定会话标识符,其中所述会话标识符基于会话标识标准;
c.将所述第一数据报和所述会话标识符封装成第一封装分组;
d.将所述第一封装分组发送到所述第二网络装置;
在所述第二网络装置处:
e.在所述第二网络装置处接收所述第一封装分组;
f.从所述第一封装分组中检索所述第一数据报和所述会话标识符;
g.基于所述会话标识符选择核;
h.使用所选核来处理所述第一数据报。
22.根据权利要求21所述的方法,其中所述会话标识符不加密。
23.根据权利要求21所述的方法,其进一步包括,在所述第一网络装置处:
i.当所述第一数据报是属于会话的数据报序列中的第一个数据报时,根据策略确定所述会话标识符,并且还将所述会话标识符用于所述会话的未来数据报;以及
j.当所述第一数据报不是属于所述会话的所述数据报序列中的第一个数据报时,所述会话标识符与已经分配给所述会话的所述会话标识符相同。
24.根据权利要求21所述的方法,其中所述会话标识标准是基于所述第一数据报的源地址、源端口、目的地地址和目的地端口。
25.根据权利要求21所述的方法,其中属于所述会话的数据报通过在所述第一网络装置与所述第二网络装置之间建立的多个连接发送。
26.根据权利要求25所述的方法,其中将所述多个连接聚合在一起以形成聚合连接。
27.根据权利要求21所述的方法,其进一步包括,在所述第一网络装置处及所述第二网络装置处:
k.在所述第一网络装置与所述第二网络装置之间建立多个连接以形成聚合连接;其中所述聚合连接用于在所述第一网络装置与所述第二网络装置之间传输和接收数据报。
28.根据权利要求27所述的方法,其中对于要通过所述聚合连接传输的数据报,所述会话标识符相同;并且其中所有数据报由同一核处理。
29.根据权利要求21所述的方法,其进一步包括,在所述第二网络装置处:
l.当之前没有接收到所述会话标识符时,选择用于处理所述第一数据报的核,并且存储并使用所述核来处理所述第一数据报;以及
m.当之前接收到所述会话标识符时,基于所述会话标识符查找用于处理所述第一数据报的核,并使用查找到的核来处理所述第一数据报。
30.根据权利要求21所述的方法,其中将所述会话标识符存储在所述封装分组的报头部分中,并且其中所述封装分组是互联网协议分组。
31.一种从第一网络装置向第二网络装置发送分组的系统,其包括:
所述第一网络装置和所述第二网络装置;
其中所述第一网络装置由以下项组成:
至少一个第一网络接口;
至少一个第一处理单元;以及
用于存储程序指令的至少一个第一非暂时性计算机可读存储介质,所述程序指令可由所述至少一个第一处理单元执行且配置成使所述至少一个第一处理单元执行以下步骤:
a.在所述第一网络装置处接收第一数据报;
b.确定会话标识符,其中所述会话标识符是基于会话标识标准;
c.将所述第一数据报和所述会话标识符封装成第一封装分组;
d.将所述第一封装分组发送到所述第二网络装置;
其中所述第二网络装置由以下项组成:
至少一个第二网络接口;
至少一个第二处理单元;以及
用于存储程序指令的至少一个第二非暂时性计算机可读存储介质,所述程序指令可由所述至少一个第二处理单元执行且配置成使所述至少一个第二处理单元执行以下步骤:
e.在所述第二网络装置处接收所述第一封装分组;
f.从所述第一封装分组中检索所述第一数据报和所述会话标识符;
g.基于所述会话标识符选择核;
h.使用所选核来处理所述第一数据报。
32.根据权利要求31所述的系统,其中所述会话标识符不加密。
33.根据权利要求31所述的系统,其中所述至少一个第一非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第一处理单元执行且配置成使所述至少一个第一处理单元执行以下步骤:
i.当所述第一数据报是属于会话的数据报序列中的第一个数据报时,根据策略确定所述会话标识符,并且还将所述会话标识符用于所述会话的未来数据报;以及
j.当所述第一数据报不是属于所述会话的所述数据报序列中的第一个数据报时,所述会话标识符与已经分配给所述会话的所述会话标识符相同。
34.根据权利要求31所述的系统,其中所述会话标识标准是基于所述第一数据报的源地址、源端口、目的地地址和目的地端口。
35.根据权利要求31所述的系统,其中属于所述会话的数据报通过在所述第一网络装置与所述第二网络装置之间建立的多个连接发送。
36.根据权利要求35所述的系统,其中将所述多个连接聚合在一起以形成聚合连接。
根据权利要求31所述的系统,其中所述至少一个第一非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第一处理单元执行且配置成使所述至少一个第一处理单元执行以下操作,并且所述至少一个第二非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第二处理单元执行且配置成使所述至少一个第二处理单元执行以下操作:在所述第一网络装置与所述第二网络装置之间建立多个连接以形成聚合连接;其中所述聚合连接用于在所述第一网络装置与所述第二网络装置之间传输和接收数据报。
37.根据权利要求37所述的系统,其中对于要通过所述聚合连接传输的数据报,所述会话标识符相同;并且其中所有数据报由同一核处理。
38.根据权利要求31所述的系统,其中所述至少第二第一非暂时性计算机可读存储介质进一步存储程序指令,所述程序指令可由所述至少一个第二处理单元执行且配置成使所述至少一个第二处理单元执行以下步骤:
l.当之前没有接收到所述会话标识符时,选择用于处理所述第一数据报的核,并且存储并使用所述核来处理所述第一数据报;
m.当之前接收到所述会话标识符时,基于所述会话标识符查找用于处理所述第一数据报的核,并使用查找到的核来处理所述第一数据报。
39.根据权利要求31所述的系统,其中将所述会话标识符存储在所述封装分组的报头部分中,并且其中所述封装分组是互联网协议分组。
CN201980008452.5A 2019-04-04 2019-04-04 通过多个隧道发送分组的方法和系统 Pending CN112042158A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2019/052743 WO2020201815A1 (en) 2019-04-04 2019-04-04 Methods and systems for sending packets through a plurality of tunnels

Publications (1)

Publication Number Publication Date
CN112042158A true CN112042158A (zh) 2020-12-04

Family

ID=72662518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980008452.5A Pending CN112042158A (zh) 2019-04-04 2019-04-04 通过多个隧道发送分组的方法和系统

Country Status (4)

Country Link
US (3) US11398975B2 (zh)
CN (1) CN112042158A (zh)
GB (1) GB2592315B (zh)
WO (1) WO2020201815A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115955517A (zh) * 2023-03-10 2023-04-11 北京太一星晨信息技术有限公司 一种报文处理方法、系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113115473B (zh) * 2021-03-01 2022-09-30 深圳艾灵网络有限公司 网络切片控制方法及装置、服务器、系统及存储介质
US11671375B2 (en) * 2021-07-15 2023-06-06 Verizon Patent And Licensing Inc. Systems and methods for software defined hybrid private and public networking
US20230291721A1 (en) * 2022-03-10 2023-09-14 Herbert Robinson Method for distributing secure datagrams

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217467A (zh) * 2007-12-28 2008-07-09 杭州华三通信技术有限公司 核间负载分发装置及方法
CN106664258A (zh) * 2014-08-29 2017-05-10 柏思科技有限公司 通过聚合连接传输数据包的方法和系统
US20180213440A1 (en) * 2017-01-25 2018-07-26 Affirmed Networks, Inc. Load balancing of wireless subscriber packet processing over multiple packet processing cores on a virtual machine platform
CN109067667A (zh) * 2018-07-13 2018-12-21 哈尔滨工程大学 一种基于报文分类的动态负载均衡方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120033673A1 (en) * 2010-08-06 2012-02-09 Deepak Goel Systems and methods for a para-vitualized driver in a multi-core virtual packet engine device
US9992223B2 (en) * 2015-03-20 2018-06-05 Nxp Usa, Inc. Flow-based anti-replay checking
US9686186B2 (en) * 2015-04-22 2017-06-20 Cisco Technology, Inc. Traffic flow identifiers resistant to traffic analysis
US9923818B2 (en) * 2015-09-14 2018-03-20 Citrix Systems, Inc. Systems and methods of achieving equal distribution of packets in a multicore system which acts as a tunnel end point
US10057168B2 (en) * 2015-10-31 2018-08-21 Nicira, Inc. Receive side scaling for overlay flow dispatching
US10333846B2 (en) * 2016-02-19 2019-06-25 Citrix Systems, Inc. Systems and methods for routing network packets between multi-core intermediaries
US10348652B2 (en) * 2017-01-28 2019-07-09 Juniper Networks, Inc. Systems and methods for propagating metadata of in-flight packets within kernel space
US10868742B2 (en) * 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
CN108228366B (zh) * 2017-12-29 2022-01-25 北京奇虎科技有限公司 一种数据流的处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217467A (zh) * 2007-12-28 2008-07-09 杭州华三通信技术有限公司 核间负载分发装置及方法
CN106664258A (zh) * 2014-08-29 2017-05-10 柏思科技有限公司 通过聚合连接传输数据包的方法和系统
US20180213440A1 (en) * 2017-01-25 2018-07-26 Affirmed Networks, Inc. Load balancing of wireless subscriber packet processing over multiple packet processing cores on a virtual machine platform
CN109067667A (zh) * 2018-07-13 2018-12-21 哈尔滨工程大学 一种基于报文分类的动态负载均衡方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115955517A (zh) * 2023-03-10 2023-04-11 北京太一星晨信息技术有限公司 一种报文处理方法、系统
CN115955517B (zh) * 2023-03-10 2023-07-28 北京太一星晨信息技术有限公司 一种报文处理方法、系统

Also Published As

Publication number Publication date
WO2020201815A1 (en) 2020-10-08
US11362933B2 (en) 2022-06-14
US20220311701A1 (en) 2022-09-29
US20200322257A1 (en) 2020-10-08
GB202105058D0 (en) 2021-05-26
GB2592315A (en) 2021-08-25
GB2592315B (en) 2023-07-19
US20200322259A1 (en) 2020-10-08
US11398975B2 (en) 2022-07-26

Similar Documents

Publication Publication Date Title
US11792046B2 (en) Method for generating forwarding information, controller, and service forwarding entity
US11362933B2 (en) Methods and systems for sending packets through a plurality of tunnels
US9871766B2 (en) Secure path determination between devices
US10749752B2 (en) Methods and systems for managing VPN tunnels
US20190089818A1 (en) Hardware-based packet forwarding for the transport layer
EP3496461B1 (en) Methods and apparatus for virtual soft handoff
WO2015058698A1 (en) Data forwarding
US9019990B2 (en) Using encapsulation headers to indicate internet protocol packet fragmentation in cellular networks
CN106254235B (zh) 一种负荷分担的方法及其设备
CN109792404B (zh) 通过网络节点处的隧道组传输信息包的方法和系统
US10321360B2 (en) Load balancing of wireless subscriber packet processing over multiple packet processing cores on a virtual machine platform
US20200076736A1 (en) Method and apparatus for tunnel endpoint ip address selection in a network environment
US20180294993A1 (en) Tunnel-level fragmentation and reassembly based on tunnel context
CN111049910A (zh) 一种处理报文的方法、装置、设备及介质
CN113365267A (zh) 通信方法和装置
KR102383782B1 (ko) 데이터 통신에서의 터널 데이터 업데이트 처리방법
CN113395212B (zh) 网络装置及其操作方法和非暂时性计算机可读介质
CN112003792B (zh) 一种软硬件协同的报文加速方法和装置
EP3840426A1 (en) Method and device for sending multicast data
US9015438B2 (en) System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores
US10721250B2 (en) Automatic tunnels routing loop attack defense
US11394580B2 (en) Data transmission
CN116708083A (zh) 自愈网络中的系统资源管理
WO2023005620A1 (zh) 报文处理方法、装置及通信系统
CN109714259B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40042249

Country of ref document: HK

CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room A8, 5th floor, phase 6, Hong Kong yarn factory industrial building, 481 Castle Peak Road, Cheung Sha Wan, Kowloon, China

Applicant after: PISMO LABS TECHNOLOGY Ltd.

Address before: Chinese Hongkong Kowloon Bay Changsha Castle Peak Road No. 481 Hongkong mills Arts crafts emporium 6 floor A5 room 5

Applicant before: PISMO LABS TECHNOLOGY Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201204