数据包处理方法和系统的制作方法
【专利摘要】本发明涉及数据网络中的数据包处理,提供了一种用于处理数据包的方法和系统。该方法包括:按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包;将所述划分出的大流和小流发送给服务器中的虚拟交换机;在所述虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机;以及,在所述硬件交换机处对大流进行处理,并转发所接收的小流和处理后的大流。通过该方法和系统,可以有效地增强网络性能。
【专利说明】数据包处理方法和系统
【技术领域】
[0001]本发明涉及数据网络,尤其涉及数据网络中数据包的处理方法和系统。
【背景技术】
[0002]随着网络规模在不断扩大,用户越来越多,虚拟化等技术的出现帮助多用户可以更好地使用网络,但也对网络的灵活性也提出了更高要求。支持多用户需要共享网络资源,同时也需要在多用户之间进行隔离,以保证安全性。软件定义网络可以满足多用户对网络的灵活性需求,但同时也会造成网络性能的降低,因为在交换机或服务器端使用都会产生处理负载,遇到处理瓶颈。
【发明内容】
[0003]针对上述问题,希望能够提供一种增强网络性能的解决方案。
[0004]根据本发明的一个实施例,提供了一种用于处理数据包的方法。该方法包括:按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包;将所述划分出的大流和小流发送给服务器中的虚拟交换机;在所述虚拟交换机处对小流进行处理;以及,将大流以及处理后的小流发送给网络中的硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流和其所接收的处理后的小流进行转发。
[0005]根据本发明的一个实施例,还提供了一种用于处理数据包的方法。该方法包括:按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包;将所述划分出的大流和小流发送给服务器中的虚拟交换机;在所述虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机;以及,在所述硬件交换机处对大流进行处理,并转发所处理的大流以及所接收的处理后的小流。
[0006]根据本发明的一个实施例,还提供了一种用于在服务器中处理数据包的系统。该系统包括:分流器,被配置为按照特定划分参数,将包含数据包的流划分为大流和小流,并发送给虚拟交换机,其中,所述大流比所述小流包括更多的数据包;以及,虚拟交换机,被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流和其所接收的处理后的小流进行转发。
[0007]根据本发明的一个实施例,还提供了一种用于处理数据包的系统。该系统包括:月艮务器中的分流器,被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机,其中,所述大流比所述小流包括更多的数据包;服务器中的虚拟交换机,被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机;以及,网络中的硬件交换机,被配置为对大流进行处理后,转发所处理的大流以及所接收的处理后的小流。
[0008]这样,通过仅在服务器的虚拟交换机处理包含较少数据包的小流,而将包含更多数据包的大流发送到网络中的硬件交换机处理,减少了在服务器端对CPU的需求,从而避免了由CPU处理能力的瓶颈所造成的转发延迟。
【专利附图】
【附图说明】
[0009]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0010]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
[0011]图2显示了一个例示性的数据中心网络的架构的示意图;
[0012]图3显示了根据本发明的一个实施例的数据包处理方法的流程图;
[0013]图4显示了根据本发明的另一个实施例的数据包处理方法的流程图;
[0014]图5显示了根据本发明的一个实施例的数据包处理系统的方框图;
[0015]图6显示了根据本发明的另一个实施例的数据包处理系统的方框图。
【具体实施方式】
[0016]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0017]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0018]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0019]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0020]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0021]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0022]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0023]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruct1nmeans)的制造品(manufacture)。
[0024]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0025]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0026]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0027]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0028]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0029]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0030]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0031]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0032]图2显示了一个例示性的数据中心网络的架构的示意图。需要指出的是,这里虽然以数据中心网络为例对本发明的各个实施例进行说明,但本发明并不限于数据中心网络,而是可以适用于任何形式的网络。如图2所示,数据中心网络可以包含多个硬件交换机210,在这里,硬件交换机指的是网络信号转发设备,用于多个网络节点间的互联。通过该多个硬件交换机210,服务器220接入到该数据中心网络。这里服务器220可以是在其上实现有多个虚拟机的服务器,也可以是任何其他的物理服务器。在服务器220中,包含一个虚拟交换机vSwitch,即在服务器中实现的软件交换机,该虚拟交换机可以用于服务器中多个虚拟机的互联。
[0033]数据包以流的形式在服务器以及数据中心网络中传送。流在这里指的是具有相同五元组(源IP、目的IP,源mac、目的mac,以及端口号)的一组数据包,同一个流中的数据包一般具有相关性,一般属于一个网络应用。
[0034]本发明的发明人发现,在图2所示的数据中心网络的架构下,在服务器一端,随着输入负载的增大,对服务器的CPU的处理需求成比例的增大,使得CPU成为处理的瓶颈。而额外消耗的CPU会浪费计算资源,从而也会浪费租户的花费。
[0035]而在硬件交换机一端,流表大小有限,如果将流规则超时时间设置为较长,例如长于35秒,则需要保存的流表项(flow entry)将超过2k,会溢出交换机的流表,造成交换机端的处理瓶颈。
[0036]本发明的发明人观察到,在数据中心网络的流量中,存在着大流和小流。其中,大流本身的数量较少,但每个大流中包含的数据包很多,而小流本身的数量很多,但其中包含的数据包相比于大流来说则很少。
[0037]在服务器一端,大多数的CPU时间是被大流的数据包处理所消耗,大流的包处理时间要远远大于小流的包处理时间。这是因为在虚拟交换机上的数据包的处理会消耗通用CPU,而包含更多数据包的大流则会消耗更多的CPU资源。同时,另一个不可避免的系统开销是用于转发数据包的网络1/0,转发大流的网络I/O所消耗的CPU也远大于小流。
[0038]而在交换机一端,对于用于缓存流的流表项来说,用于缓存大流的流表项需求与全部流的缓存相比,要小得多,并且更稳定。例如,如果将高速缓存器的超时时间设置为30秒,则缓存大流平均需要56个流表项,最大不超过300个流表项,这由目前常用的交换机就可以容易地实现。而要缓存所有流,则平均需要1741个流表项,并且变化非常大。
[0039]基于上面的观察,我们提出了根据本发明的各个实施例的用于处理数据包的方法和系统。
[0040]图3显示了根据本发明的一个实施例的数据包处理方法的流程图。
[0041]在步骤S310,按照特定划分参数,将包含数据包的流划分为大流和小流。其中,大流比小流包括更多的数据包。根据本发明的一个实施例,在虚拟机环境下,流可以来自于各个虚拟机。
[0042]根据本发明的一个实施例,该特定划分参数可以是一个阈值。记录所接收的每个流的数据包数量,如果流中数据包的数量小于阈值,则划分为小流,当数量等于或超过阈值则划分为大流。
[0043]根据本发明的一个实施例,可以对划分出的流进行标识。这个标识可以只对大流进行,或者只对小流进行,或者也可以同时对大流和小流分别进行标识。例如,可以利用数据包里的已有标记位(如vlan, tos阈)进行标记,或者添加新的位置进行标记。
[0044]在步骤S320,将所述划分出的大流和小流发送给服务器中的虚拟交换机。
[0045]在步骤S330,在虚拟交换机处对小流进行处理。
[0046]根据本发明的一个实施例,可以通过检查数据包中的标记来来判断是否为小流。如果是小流,则执行对小流的处理操作,该处理操作例如可以包括缓存流信息,替换包头,封装,解封装等操作。
[0047]在步骤S340,将大流以及处理后的小流发送给网络中的硬件交换机,以供该硬件交换机对大流进行处理后,对所处理的大流及其所接收的处理后的小流进行转发。
[0048]其中,硬件交换机通过检查数据包中的标记来区分大流和小流,如果是大流则执行对大流的处理操作,该处理操作例如可以包括缓存流信息,替换包头,封装等操作。如果不是大流则不进行处理,直接转发到核心网络或目的端硬件交换机。
[0049]这样,通过仅在服务器的虚拟交换机处理包含较少数据包的小流,而将包含更多数据包的大流发送到网络中的硬件交换机处理,减少了在服务器端对CPU的需求,从而避免了由CPU处理能力的瓶颈所造成的转发延迟。
[0050]根据本发明的一个实施例,可以根据虚拟交换机和硬件交换机的负载相关信息,动态地调整所述特定划分参数。
[0051]例如,可以定期反馈负载状况给网络中的监控器。监控器定期采集虚拟交换机和硬件交换机上的负载数据,或者交换机定期反馈负载参数给监控器。监控器根据监控数据,分配合理划分阈值,达到虚拟交换机和硬件交换机的负载均衡。例如,监控器可以收集虚拟交换机和硬件交换机上必要的负载数据,CPU占用率,内存占用率等,综合各个数据指标,计算负载占用率。例如可以选取占用率最高的值,也就是系统瓶颈作为负载占用率。然后根据虚拟交换机和硬件交换机负载情况调整大小流的划分参数。如果虚拟交换机负载高,则调整参数分配更多负载给硬件交换机(如分类阈值减小10%,划分更多流到大流)。反之如果硬件交换机负载高则增大阈值10%。如果负载相近(相差不超过10%)则认为均衡,不调整划分参数。
[0052]图4显示了根据本发明的一个实施例的由服务器和网络中的交换机共同实现的用于处理数据包的方法的流程图。
[0053]在步骤S410,按照特定划分参数,将包含数据包的流划分为大流和小流。其中,大流比小流包括更多的数据包。
[0054]在步骤S420,将所述划分出的大流和小流发送给服务器中的虚拟交换机。
[0055]在步骤S430,在虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机。
[0056]在步骤S440,在硬件交换机处对大流进行处理,并转发所处理的大流以及所接收的处理后的小流。
[0057]发送包时,数据包先经过服务器上的虚拟交换机(发送端的接入交换机),后到达网络中的硬件交换机。而接收数据包的顺序正好相反,数据包先要经过网络上的硬件交换机(接收端的接入交换机),之后到达目的服务器上的虚拟交换机,最后到达接收方。
[0058]对于一些需要对称操作的应用,比如发送端发出后需要封装,到达接收端之前需要解封装,接收端也需要按照相反的顺序进行处理,即先经过硬件交换机对大流进行处理,然后经过虚拟交换机对小流进行处理。对于接收端不需要进行处理的操作,例如安全检测,只需要在发送端发出后进行处理,接收端不论虚拟交换机还是硬件交换机都直接转发(相当于处理指令为空)。
[0059]因此,根据本发明的一个实施例,在图4中还可以进一步包括步骤S450,在网络中的硬件交换机处,接收包含数据包的流,识别出大流,对大流进行处理,并将小流和处理后的大流发送给服务器中的虚拟交换机。
[0060]根据本发明的一个实施例,在该步骤S450中,硬件交换机可以根据流中的数据包所包含的标识,识别出大流。或者,硬件交换机也可以根据当时的负载情况,重新对大流和小流进行划分,例如采取前面所描述的方法,按照特定划分参数,将流划分成大流和小流,其中,大流比小流包括更多的数据包。
[0061]然后,在步骤S460,虚拟交换机对小流进行处理,并转发所处理的小流以及所接收的处理后的大流。
[0062]根据本发明的一个实施例,虚拟交换机既是发送端交换机,也是接收端交换机。这种情况意味着发送端和接收端都在同一个物理服务器上(可能是不同虚拟机或者不同进程)。这时数据包不经过硬件交换机,因此都要在虚拟交换机上面进行处理。根据本发明的一个实施例,虚拟交换机可以进一步判断其所接收的流是否为本地转发,例如,虚拟交换机根据数据包的mac地址可以判断出是否为本地转发。如果是则在虚拟交换机上处理所有流。
[0063]根据本发明的一个实施例,硬件交换机可以既是发送端交换机,也是接收端交换机,例如如发送方和接收方都与同一个硬件交换机相连,那么硬件交换机进行完发送端处理后直接进行接收端处理。对于对称应用(如封装解封装)则不进行处理,由具体应用决定。
[0064]图5显示了根据本发明的一个实施例的用于在服务器端处理数据包的系统的方框图。该系统包括分流器510和虚拟交换机520。分流器510被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机520。其中,所述大流比所述小流包括更多的数据包。虚拟交换机520被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流及其所接收的处理后的小流进行转发。
[0065]其中,分流器510进一步被配置为:对划分的流进行标识。
[0066]根据本发明的一个实施例,特定划分参数是可以根据虚拟交换机和硬件交换机的负载相关信息而动态地调整的。该特定划分参数可以是一个阈值,分流器510可以记录每个流的数据包数量,将数据包数量小于该阈值的流划分为小流,将数据包数量等于或超过该阈值的流划分为大流。
[0067]图6显示了根据本发明的一个实施例的用于处理数据包的系统的方框图。该系统包括在服务器端的分流器610和虚拟交换机620以及在网络中的硬件交换机630。分流器610被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机620。其中,所述大流比所述小流包括更多的数据包。虚拟交换机620被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机630。硬件交换机630被配置为对大流进行处理后,对所处理的大流及其所接收的处理后的小流进行转发。
[0068]根据本发明的一个实施例,该系统600进一步包括监控器640,其被配置为根据虚拟交换机620和硬件交换机630的负载相关信息动态地调整所述特定划分参数。
[0069]发送包时,数据包先经过服务器上的虚拟交换机(发送端的接入交换机),后到达网络中的硬件交换机。而接收数据包的顺序正好相反,数据包先要经过网络上的硬件交换机(接收端的接入交换机),之后到达目的服务器上的软交换机,最后到达接收方。
[0070]根据本发明的一个实施例,硬件交换机既可以是发送端交换机,也可以是接收端交换机。在作为接收端交换机的情况下,硬件交换机630可以进一步被配置为:接收包含数据包的流,识别出大流,对大流进行处理,并将小流和处理后的大流发送给服务器中的虚拟交换机,并且,虚拟交换机610可以被配置为对小流进行处理,并转发所接收的大流以及处理后的小流。
[0071]根据本发明的一个实施例,硬件交换机630可以根据流中的数据包所包含的标识,识别出大流。或者,硬件交换机630也可以根据当时的负载情况,重新对大流和小流进行划分,例如采取前面所描述的方法,按照特定划分参数,将流划分成大流和小流,其中,大流比小流包括更多的数据包。
[0072]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0073]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本【技术领域】的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1.一种用于处理数据包的方法,包括: 按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包; 将所述划分出的大流和小流发送给服务器中的虚拟交换机; 在所述虚拟交换机处对小流进行处理;以及 将大流以及处理后的小流发送给网络中的硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流和其所接收的处理后的小流进行转发。
2.如权利要求1所述的方法,进一步包括:对划分出的流进行标识。
3.如权利要求1所述的方法,其中,所述特定划分参数可根据所述虚拟交换机和所述硬件交换机的负载相关信息而动态地调整。
4.如权利要求1所述的方法,其中,所述特定划分参数为一个阈值,其中,按照特定划分参数,将包含数据包的流划分为大流和小流包括:记录每个流的数据包数量,将所述数量小于所述阈值的流划分为小流,将数量等于或超过所述阈值的流划分为大流。
5.如权利要求1所述的方法,其中,所述处理包括下列中的一个或多个:缓存流信息,替换包头,封装,解封装。
6.一种用于处理数据包的方法,包括: 按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包; 将所述划分出的大流和小流发送给服务器中的虚拟交换机; 在所述虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机;以及 在所述硬件交换机处对大流进行处理,并转发所处理的大流以及所接收的处理后的小流。
7.如权利要求6所述的方法,进一步包括:对划分出的流进行标识。
8.如权利要求6所述的方法,进一步包括: 根据所述虚拟交换机和所述硬件交换机的负载相关信息,动态地调整所述特定划分参数。
9.如权利要求6所述的方法,其中,所述特定划分参数为一个阈值,其中,按照特定划分参数,将包含数据包的流划分为大流和小流包括:记录每个流的数据包数量,将所述数量小于所述阈值的流划分为小流,将数量等于或超过所述阈值的流划分为大流。
10.如权利要求6所述的方法,其中,所述处理包括下列中的一个或多个:缓存流信息,替换包头,封装,解封装。
11.如权利要求6所述的方法,进一步包括: 在所述硬件交换机处: 接收包含数据包的流, 识别出大流, 对大流进行处理, 并将所接收的小流和处理后的大流发送给所述服务器中的虚拟交换机;以及 所述虚拟交换机对小流进行处理,并转发所处理的小流以及所接收的处理后的大流。
12.如权利要求11所述的方法,其中,在所述硬件交换机处识别出大流包括:根据流中的数据包所包含的标识,识别出大流。
13.如权利要求11所述的方法,其中,在所述硬件交换机处识别出大流包括:按照特定划分参数,将所述流划分为大流和小流,其中,大流比小流包括更多的数据包。
14.一种用于在服务器中处理数据包的系统,包括: 分流器,被配置为按照特定划分参数,将包含数据包的流划分为大流和小流,并发送给虚拟交换机,其中,所述大流比所述小流包括更多的数据包;以及 虚拟交换机,被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流和其所接收的处理后的小流进行转发。
15.如权利要求14所述的系统,其中,所述特定划分参数可根据所述虚拟交换机和所述硬件交换机的负载相关信息而动态地调整。
16.一种用于处理数据包的系统,包括: 服务器中的分流器,被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机,其中,所述大流比所述小流包括更多的数据包; 服务器中的虚拟交换机,被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机;以及 网络中的硬件交换机,被配置为对大流进行处理后,转发所处理的大流以及所接收的处理后的小流。
17.如权利要求16所述的系统,进一步包括,监控器,被配置为根据虚拟交换机和硬件交换机的负载相关信息动态地调整所述特定划分参数。
18.如权利要求16所述的系统,其中,所述硬件交换机进一步被配置为: 接收包含数据包的流, 识别出大流, 对大流进行处理, 并将所接收的小流和处理后的大流发送给所述服务器中的虚拟交换机;以及 所述虚拟交换机被配置为对小流进行处理,并转发所处理的小流以及所接收的处理后的大流。
19.如权利要求18所述的系统,其中,所述硬件交换机处被配置为根据流中的数据包所包含的标识,识别出大流。
20.如权利要求18所述的系统,其中,所述硬件交换机被配置为按照特定划分参数,将流划分为大流和小流,其中,大流比小流包括更多的数据包。
【文档编号】H04L12/801GK104348740SQ201310328512
【公开日】2015年2月11日 申请日期:2013年7月31日 优先权日:2013年7月31日
【发明者】张跃, 郑凯, 刘天成, 刘航, 杨保华 申请人:国际商业机器公司