CN104348740A - 数据包处理方法和*** - Google Patents
数据包处理方法和*** Download PDFInfo
- Publication number
- CN104348740A CN104348740A CN201310328512.6A CN201310328512A CN104348740A CN 104348740 A CN104348740 A CN 104348740A CN 201310328512 A CN201310328512 A CN 201310328512A CN 104348740 A CN104348740 A CN 104348740A
- Authority
- CN
- China
- Prior art keywords
- rill
- stream
- packet
- large stream
- switch
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- 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/38—Flow based routing
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及数据网络中的数据包处理,提供了一种用于处理数据包的方法和***。该方法包括:按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包;将所述划分出的大流和小流发送给服务器中的虚拟交换机;在所述虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机;以及,在所述硬件交换机处对大流进行处理,并转发所接收的小流和处理后的大流。通过该方法和***,可以有效地增强网络性能。
Description
技术领域
本发明涉及数据网络,尤其涉及数据网络中数据包的处理方法和***。
背景技术
随着网络规模在不断扩大,用户越来越多,虚拟化等技术的出现帮助多用户可以更好地使用网络,但也对网络的灵活性也提出了更高要求。支持多用户需要共享网络资源,同时也需要在多用户之间进行隔离,以保证安全性。软件定义网络可以满足多用户对网络的灵活性需求,但同时也会造成网络性能的降低,因为在交换机或服务器端使用都会产生处理负载,遇到处理瓶颈。
发明内容
针对上述问题,希望能够提供一种增强网络性能的解决方案。
根据本发明的一个实施例,提供了一种用于处理数据包的方法。该方法包括:按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包;将所述划分出的大流和小流发送给服务器中的虚拟交换机;在所述虚拟交换机处对小流进行处理;以及,将大流以及处理后的小流发送给网络中的硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流和其所接收的处理后的小流进行转发。
根据本发明的一个实施例,还提供了一种用于处理数据包的方法。该方法包括:按照特定划分参数,将包含数据包的流划分为大流和小流,其中,大流比小流包括更多的数据包;将所述划分出的大流和小流发送给服务器中的虚拟交换机;在所述虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机;以及,在所述硬件交换机处对大流进行处理,并转发所处理的大流以及所接收的处理后的小流。
根据本发明的一个实施例,还提供了一种用于在服务器中处理数据包的***。该***包括:分流器,被配置为按照特定划分参数,将包含数据包的流划分为大流和小流,并发送给虚拟交换机,其中,所述大流比所述小流包括更多的数据包;以及,虚拟交换机,被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流和其所接收的处理后的小流进行转发。
根据本发明的一个实施例,还提供了一种用于处理数据包的***。该***包括:服务器中的分流器,被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机,其中,所述大流比所述小流包括更多的数据包;服务器中的虚拟交换机,被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机;以及,网络中的硬件交换机,被配置为对大流进行处理后,转发所处理的大流以及所接收的处理后的小流。
这样,通过仅在服务器的虚拟交换机处理包含较少数据包的小流,而将包含更多数据包的大流发送到网络中的硬件交换机处理,减少了在服务器端对CPU的需求,从而避免了由CPU处理能力的瓶颈所造成的转发延迟。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图;
图2显示了一个例示性的数据中心网络的架构的示意图;
图3显示了根据本发明的一个实施例的数据包处理方法的流程图;
图4显示了根据本发明的另一个实施例的数据包处理方法的流程图;
图5显示了根据本发明的一个实施例的数据包处理***的方框图;
图6显示了根据本发明的另一个实施例的数据包处理***的方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图1显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或缓存存储器32。计算机***/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
图2显示了一个例示性的数据中心网络的架构的示意图。需要指出的是,这里虽然以数据中心网络为例对本发明的各个实施例进行说明,但本发明并不限于数据中心网络,而是可以适用于任何形式的网络。如图2所示,数据中心网络可以包含多个硬件交换机210,在这里,硬件交换机指的是网络信号转发设备,用于多个网络节点间的互联。通过该多个硬件交换机210,服务器220接入到该数据中心网络。这里服务器220可以是在其上实现有多个虚拟机的服务器,也可以是任何其他的物理服务器。在服务器220中,包含一个虚拟交换机vSwitch,即在服务器中实现的软件交换机,该虚拟交换机可以用于服务器中多个虚拟机的互联。
数据包以流的形式在服务器以及数据中心网络中传送。流在这里指的是具有相同五元组(源IP、目的IP,源mac、目的mac,以及端口号)的一组数据包,同一个流中的数据包一般具有相关性,一般属于一个网络应用。
本发明的发明人发现,在图2所示的数据中心网络的架构下,在服务器一端,随着输入负载的增大,对服务器的CPU的处理需求成比例的增大,使得CPU成为处理的瓶颈。而额外消耗的CPU会浪费计算资源,从而也会浪费租户的花费。
而在硬件交换机一端,流表大小有限,如果将流规则超时时间设置为较长,例如长于35秒,则需要保存的流表项(flow entry)将超过2k,会溢出交换机的流表,造成交换机端的处理瓶颈。
本发明的发明人观察到,在数据中心网络的流量中,存在着大流和小流。其中,大流本身的数量较少,但每个大流中包含的数据包很多,而小流本身的数量很多,但其中包含的数据包相比于大流来说则很少。
在服务器一端,大多数的CPU时间是被大流的数据包处理所消耗,大流的包处理时间要远远大于小流的包处理时间。这是因为在虚拟交换机上的数据包的处理会消耗通用CPU,而包含更多数据包的大流则会消耗更多的CPU资源。同时,另一个不可避免的***开销是用于转发数据包的网络I/O,转发大流的网络I/O所消耗的CPU也远大于小流。
而在交换机一端,对于用于缓存流的流表项来说,用于缓存大流的流表项需求与全部流的缓存相比,要小得多,并且更稳定。例如,如果将高速缓存器的超时时间设置为30秒,则缓存大流平均需要56个流表项,最大不超过300个流表项,这由目前常用的交换机就可以容易地实现。而要缓存所有流,则平均需要1741个流表项,并且变化非常大。
基于上面的观察,我们提出了根据本发明的各个实施例的用于处理数据包的方法和***。
图3显示了根据本发明的一个实施例的数据包处理方法的流程图。
在步骤S310,按照特定划分参数,将包含数据包的流划分为大流和小流。其中,大流比小流包括更多的数据包。根据本发明的一个实施例,在虚拟机环境下,流可以来自于各个虚拟机。
根据本发明的一个实施例,该特定划分参数可以是一个阈值。记录所接收的每个流的数据包数量,如果流中数据包的数量小于阈值,则划分为小流,当数量等于或超过阈值则划分为大流。
根据本发明的一个实施例,可以对划分出的流进行标识。这个标识可以只对大流进行,或者只对小流进行,或者也可以同时对大流和小流分别进行标识。例如,可以利用数据包里的已有标记位(如vlan,tos阈)进行标记,或者添加新的位置进行标记。
在步骤S320,将所述划分出的大流和小流发送给服务器中的虚拟交换机。
在步骤S330,在虚拟交换机处对小流进行处理。
根据本发明的一个实施例,可以通过检查数据包中的标记来来判断是否为小流。如果是小流,则执行对小流的处理操作,该处理操作例如可以包括缓存流信息,替换包头,封装,解封装等操作。
在步骤S340,将大流以及处理后的小流发送给网络中的硬件交换机,以供该硬件交换机对大流进行处理后,对所处理的大流及其所接收的处理后的小流进行转发。
其中,硬件交换机通过检查数据包中的标记来区分大流和小流,如果是大流则执行对大流的处理操作,该处理操作例如可以包括缓存流信息,替换包头,封装等操作。如果不是大流则不进行处理,直接转发到核心网络或目的端硬件交换机。
这样,通过仅在服务器的虚拟交换机处理包含较少数据包的小流,而将包含更多数据包的大流发送到网络中的硬件交换机处理,减少了在服务器端对CPU的需求,从而避免了由CPU处理能力的瓶颈所造成的转发延迟。
根据本发明的一个实施例,可以根据虚拟交换机和硬件交换机的负载相关信息,动态地调整所述特定划分参数。
例如,可以定期反馈负载状况给网络中的监控器。监控器定期采集虚拟交换机和硬件交换机上的负载数据,或者交换机定期反馈负载参数给监控器。监控器根据监控数据,分配合理划分阈值,达到虚拟交换机和硬件交换机的负载均衡。例如,监控器可以收集虚拟交换机和硬件交换机上必要的负载数据,CPU占用率,内存占用率等,综合各个数据指标,计算负载占用率。例如可以选取占用率最高的值,也就是***瓶颈作为负载占用率。然后根据虚拟交换机和硬件交换机负载情况调整大小流的划分参数。如果虚拟交换机负载高,则调整参数分配更多负载给硬件交换机(如分类阈值减小10%,划分更多流到大流)。反之如果硬件交换机负载高则增大阈值10%。如果负载相近(相差不超过10%)则认为均衡,不调整划分参数。
图4显示了根据本发明的一个实施例的由服务器和网络中的交换机共同实现的用于处理数据包的方法的流程图。
在步骤S410,按照特定划分参数,将包含数据包的流划分为大流和小流。其中,大流比小流包括更多的数据包。
在步骤S420,将所述划分出的大流和小流发送给服务器中的虚拟交换机。
在步骤S430,在虚拟交换机处对小流进行处理,并将大流以及处理后的小流发送给网络中的硬件交换机。
在步骤S440,在硬件交换机处对大流进行处理,并转发所处理的大流以及所接收的处理后的小流。
发送包时,数据包先经过服务器上的虚拟交换机(发送端的接入交换机),后到达网络中的硬件交换机。而接收数据包的顺序正好相反,数据包先要经过网络上的硬件交换机(接收端的接入交换机),之后到达目的服务器上的虚拟交换机,最后到达接收方。
对于一些需要对称操作的应用,比如发送端发出后需要封装,到达接收端之前需要解封装,接收端也需要按照相反的顺序进行处理,即先经过硬件交换机对大流进行处理,然后经过虚拟交换机对小流进行处理。对于接收端不需要进行处理的操作,例如安全检测,只需要在发送端发出后进行处理,接收端不论虚拟交换机还是硬件交换机都直接转发(相当于处理指令为空)。
因此,根据本发明的一个实施例,在图4中还可以进一步包括步骤S450,在网络中的硬件交换机处,接收包含数据包的流,识别出大流,对大流进行处理,并将小流和处理后的大流发送给服务器中的虚拟交换机。
根据本发明的一个实施例,在该步骤S450中,硬件交换机可以根据流中的数据包所包含的标识,识别出大流。或者,硬件交换机也可以根据当时的负载情况,重新对大流和小流进行划分,例如采取前面所描述的方法,按照特定划分参数,将流划分成大流和小流,其中,大流比小流包括更多的数据包。
然后,在步骤S460,虚拟交换机对小流进行处理,并转发所处理的小流以及所接收的处理后的大流。
根据本发明的一个实施例,虚拟交换机既是发送端交换机,也是接收端交换机。这种情况意味着发送端和接收端都在同一个物理服务器上(可能是不同虚拟机或者不同进程)。这时数据包不经过硬件交换机,因此都要在虚拟交换机上面进行处理。根据本发明的一个实施例,虚拟交换机可以进一步判断其所接收的流是否为本地转发,例如,虚拟交换机根据数据包的mac地址可以判断出是否为本地转发。如果是则在虚拟交换机上处理所有流。
根据本发明的一个实施例,硬件交换机可以既是发送端交换机,也是接收端交换机,例如如发送方和接收方都与同一个硬件交换机相连,那么硬件交换机进行完发送端处理后直接进行接收端处理。对于对称应用(如封装解封装)则不进行处理,由具体应用决定。
图5显示了根据本发明的一个实施例的用于在服务器端处理数据包的***的方框图。该***包括分流器510和虚拟交换机520。分流器510被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机520。其中,所述大流比所述小流包括更多的数据包。虚拟交换机520被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给硬件交换机,以供所述硬件交换机对大流进行处理后,对所处理的大流及其所接收的处理后的小流进行转发。
其中,分流器510进一步被配置为:对划分的流进行标识。
根据本发明的一个实施例,特定划分参数是可以根据虚拟交换机和硬件交换机的负载相关信息而动态地调整的。该特定划分参数可以是一个阈值,分流器510可以记录每个流的数据包数量,将数据包数量小于该阈值的流划分为小流,将数据包数量等于或超过该阈值的流划分为大流。
图6显示了根据本发明的一个实施例的用于处理数据包的***的方框图。该***包括在服务器端的分流器610和虚拟交换机620以及在网络中的硬件交换机630。分流器610被配置为按照特定划分参数,将包含数据包的流分成大流和小流,并发送给虚拟交换机620。其中,所述大流比所述小流包括更多的数据包。虚拟交换机620被配置为对来自分流器的小流进行处理,并将所接收的大流以及处理后的小流发送给网络中的硬件交换机630。硬件交换机630被配置为对大流进行处理后,对所处理的大流及其所接收的处理后的小流进行转发。
根据本发明的一个实施例,该***600进一步包括监控器640,其被配置为根据虚拟交换机620和硬件交换机630的负载相关信息动态地调整所述特定划分参数。
发送包时,数据包先经过服务器上的虚拟交换机(发送端的接入交换机),后到达网络中的硬件交换机。而接收数据包的顺序正好相反,数据包先要经过网络上的硬件交换机(接收端的接入交换机),之后到达目的服务器上的软交换机,最后到达接收方。
根据本发明的一个实施例,硬件交换机既可以是发送端交换机,也可以是接收端交换机。在作为接收端交换机的情况下,硬件交换机630可以进一步被配置为:接收包含数据包的流,识别出大流,对大流进行处理,并将小流和处理后的大流发送给服务器中的虚拟交换机,并且,虚拟交换机610可以被配置为对小流进行处理,并转发所接收的大流以及处理后的小流。
根据本发明的一个实施例,硬件交换机630可以根据流中的数据包所包含的标识,识别出大流。或者,硬件交换机630也可以根据当时的负载情况,重新对大流和小流进行划分,例如采取前面所描述的方法,按照特定划分参数,将流划分成大流和小流,其中,大流比小流包括更多的数据包。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
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所述的***,其中,所述硬件交换机被配置为按照特定划分参数,将流划分为大流和小流,其中,大流比小流包括更多的数据包。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310328512.6A CN104348740B (zh) | 2013-07-31 | 2013-07-31 | 数据包处理方法和*** |
PCT/CN2014/081875 WO2015014198A1 (en) | 2013-07-31 | 2014-07-09 | Data packet processing |
EP14831162.4A EP3028417B1 (en) | 2013-07-31 | 2014-07-09 | Data packet processing |
US14/908,724 US9860176B2 (en) | 2013-07-31 | 2014-07-09 | Data packet processing |
JP2016530322A JP6814041B2 (ja) | 2013-07-31 | 2014-07-09 | データ・パケットを処理するための方法、システム、およびコンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310328512.6A CN104348740B (zh) | 2013-07-31 | 2013-07-31 | 数据包处理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104348740A true CN104348740A (zh) | 2015-02-11 |
CN104348740B CN104348740B (zh) | 2018-04-10 |
Family
ID=52430968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310328512.6A Active CN104348740B (zh) | 2013-07-31 | 2013-07-31 | 数据包处理方法和*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US9860176B2 (zh) |
EP (1) | EP3028417B1 (zh) |
JP (1) | JP6814041B2 (zh) |
CN (1) | CN104348740B (zh) |
WO (1) | WO2015014198A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915286A (zh) * | 2016-04-14 | 2016-08-31 | 北京锐安科技有限公司 | 数据分流方法及分流器 |
CN112200256A (zh) * | 2020-10-16 | 2021-01-08 | 鹏城实验室 | 基于深度学习的sketch网络测量方法及电子设备 |
CN113225267A (zh) * | 2021-04-13 | 2021-08-06 | 南京熊猫汉达科技有限公司 | 一种流量智能分发方法和装置 |
CN113381945A (zh) * | 2021-05-17 | 2021-09-10 | 中国人民解放军国防科技大学 | 基于冷热分离的流量处理方法及*** |
CN113595928A (zh) * | 2021-08-04 | 2021-11-02 | 优刻得科技股份有限公司 | 负载均衡的方法、设备和介质 |
CN113839835A (zh) * | 2021-09-27 | 2021-12-24 | 长沙理工大学 | 一种基于小流过滤的Top-k流精确监控架构 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10505849B1 (en) | 2015-07-02 | 2019-12-10 | Cisco Technology, Inc. | Network traffic load balancing |
KR102167686B1 (ko) * | 2015-11-25 | 2020-10-19 | 에스케이텔레콤 주식회사 | 트래픽 분배를 제어하는 장치 및 방법 |
US10601714B2 (en) * | 2016-06-28 | 2020-03-24 | Mellanox Technologies Tlv Ltd. | Adaptive flow prioritization |
CN106487676A (zh) * | 2016-10-27 | 2017-03-08 | 盛科网络(苏州)有限公司 | 一种基于大象流的动态ecmp芯片实现方法 |
US10263883B2 (en) | 2016-12-14 | 2019-04-16 | International Business Machines Corporation | Data flow configuration in hybrid system of silicon and micro-electro-mechanical-switch (MEMS) elements |
US10645033B2 (en) | 2017-03-27 | 2020-05-05 | Mellanox Technologies Tlv Ltd. | Buffer optimization in modular switches |
TWI654857B (zh) * | 2017-12-25 | 2019-03-21 | 中華電信股份有限公司 | 用於流量交換之緩衝排程方法 |
CN111656740A (zh) | 2018-01-26 | 2020-09-11 | 欧庞戈网络有限公司 | 用于识别数据分组网络中的候选流的***和方法 |
JP6888566B2 (ja) * | 2018-02-23 | 2021-06-16 | 日本電信電話株式会社 | 負荷分散システム及び負荷分散方法 |
JP7003873B2 (ja) * | 2018-08-07 | 2022-01-21 | 日本電信電話株式会社 | 負荷分散システム及び負荷分散方法 |
JP7120059B2 (ja) * | 2019-02-05 | 2022-08-17 | 日本電信電話株式会社 | 負荷分散システム及び負荷分散方法 |
US10999221B2 (en) | 2019-07-02 | 2021-05-04 | Mellanox Technologies Tlv Ltd. | Transaction based scheduling |
CN112751781A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 流量数据的处理方法、装置、设备及计算机存储介质 |
US20210224138A1 (en) * | 2020-01-21 | 2021-07-22 | Vmware, Inc. | Packet processing with load imbalance handling |
US11470010B2 (en) | 2020-02-06 | 2022-10-11 | Mellanox Technologies, Ltd. | Head-of-queue blocking for multiple lossless queues |
CA3179009A1 (en) * | 2020-07-01 | 2022-01-06 | Agilent Technologies, Inc. | Instrument monitoring system |
CN114024758B (zh) * | 2021-11-09 | 2022-12-23 | 清华大学 | 流量特征提取方法、***、存储介质及电子设备 |
US11973696B2 (en) | 2022-01-31 | 2024-04-30 | Mellanox Technologies, Ltd. | Allocation of shared reserve memory to queues in a network device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296114A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 基于流的并行模式匹配方法和*** |
US20110222394A1 (en) * | 2010-03-11 | 2011-09-15 | Ciena Corporation | Fabric extra traffic |
US20110320632A1 (en) * | 2009-12-04 | 2011-12-29 | Nec Corporation | Flow control for virtualization-based server |
US20120020361A1 (en) * | 2010-01-05 | 2012-01-26 | Nec Corporation | Switch network system, controller, and control method |
CN102549977A (zh) * | 2009-09-24 | 2012-07-04 | 日本电气株式会社 | 虚拟服务器间通信识别***和虚拟服务器间通信识别方法 |
US20120287791A1 (en) * | 2011-05-13 | 2012-11-15 | Kang Xi | Balancing load in a network, such as a data center network, using flow based routing |
US20120324442A1 (en) * | 2011-06-14 | 2012-12-20 | Futurewei Technologies, Inc. | System and Method for an In-Server Virtual Switch |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122228A1 (en) | 2001-03-01 | 2002-09-05 | Yigal Rappaport | Network and method for propagating data packets across a network |
US7768919B1 (en) * | 2003-04-28 | 2010-08-03 | Verizon Laboratories Inc. | Selective packet discard apparatus and method |
WO2012114398A1 (en) * | 2011-02-24 | 2012-08-30 | Nec Corporation | Network system, controller, and flow control method |
US8831000B2 (en) * | 2012-10-10 | 2014-09-09 | Telefonaktiebolaget L M Ericsson (Publ) | IP multicast service join process for MPLS-based virtual private cloud networking |
US9270754B2 (en) * | 2013-06-06 | 2016-02-23 | Cisco Technology, Inc. | Software defined networking for storage area networks |
US9503378B2 (en) * | 2013-06-07 | 2016-11-22 | The Florida International University Board Of Trustees | Load-balancing algorithms for data center networks |
-
2013
- 2013-07-31 CN CN201310328512.6A patent/CN104348740B/zh active Active
-
2014
- 2014-07-09 WO PCT/CN2014/081875 patent/WO2015014198A1/en active Application Filing
- 2014-07-09 US US14/908,724 patent/US9860176B2/en active Active
- 2014-07-09 JP JP2016530322A patent/JP6814041B2/ja active Active
- 2014-07-09 EP EP14831162.4A patent/EP3028417B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296114A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 基于流的并行模式匹配方法和*** |
CN102549977A (zh) * | 2009-09-24 | 2012-07-04 | 日本电气株式会社 | 虚拟服务器间通信识别***和虚拟服务器间通信识别方法 |
US20110320632A1 (en) * | 2009-12-04 | 2011-12-29 | Nec Corporation | Flow control for virtualization-based server |
US20120020361A1 (en) * | 2010-01-05 | 2012-01-26 | Nec Corporation | Switch network system, controller, and control method |
US20110222394A1 (en) * | 2010-03-11 | 2011-09-15 | Ciena Corporation | Fabric extra traffic |
US20120287791A1 (en) * | 2011-05-13 | 2012-11-15 | Kang Xi | Balancing load in a network, such as a data center network, using flow based routing |
US20120324442A1 (en) * | 2011-06-14 | 2012-12-20 | Futurewei Technologies, Inc. | System and Method for an In-Server Virtual Switch |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915286A (zh) * | 2016-04-14 | 2016-08-31 | 北京锐安科技有限公司 | 数据分流方法及分流器 |
CN105915286B (zh) * | 2016-04-14 | 2018-06-05 | 北京锐安科技有限公司 | 数据分流方法及分流器 |
CN112200256A (zh) * | 2020-10-16 | 2021-01-08 | 鹏城实验室 | 基于深度学习的sketch网络测量方法及电子设备 |
CN113225267A (zh) * | 2021-04-13 | 2021-08-06 | 南京熊猫汉达科技有限公司 | 一种流量智能分发方法和装置 |
CN113225267B (zh) * | 2021-04-13 | 2022-06-28 | 南京熊猫汉达科技有限公司 | 一种流量智能分发方法和装置 |
CN113381945A (zh) * | 2021-05-17 | 2021-09-10 | 中国人民解放军国防科技大学 | 基于冷热分离的流量处理方法及*** |
CN113381945B (zh) * | 2021-05-17 | 2022-08-30 | 中国人民解放军国防科技大学 | 基于冷热分离的流量处理方法及*** |
CN113595928A (zh) * | 2021-08-04 | 2021-11-02 | 优刻得科技股份有限公司 | 负载均衡的方法、设备和介质 |
CN113839835A (zh) * | 2021-09-27 | 2021-12-24 | 长沙理工大学 | 一种基于小流过滤的Top-k流精确监控架构 |
CN113839835B (zh) * | 2021-09-27 | 2023-09-26 | 长沙理工大学 | 一种基于小流过滤的Top-k流精确监控*** |
Also Published As
Publication number | Publication date |
---|---|
WO2015014198A1 (en) | 2015-02-05 |
US20160191392A1 (en) | 2016-06-30 |
EP3028417A4 (en) | 2016-08-10 |
JP6814041B2 (ja) | 2021-01-13 |
EP3028417A1 (en) | 2016-06-08 |
CN104348740B (zh) | 2018-04-10 |
US9860176B2 (en) | 2018-01-02 |
EP3028417B1 (en) | 2018-06-27 |
JP2016525846A (ja) | 2016-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104348740A (zh) | 数据包处理方法和*** | |
US10554554B2 (en) | Hybrid network processing load distribution in computing systems | |
US9007895B2 (en) | Method for routing data packets in a fat tree network | |
US8396067B2 (en) | Address learning method and address learning switch | |
US9231781B2 (en) | Flow distribution algorithm for aggregated links in an ethernet switch | |
US9253287B2 (en) | Speculation based approach for reliable message communications | |
US9960988B2 (en) | Systems and methods for reducing information loss in an aggregated information handling system | |
US8493850B2 (en) | Communication apparatus and frame transmission method | |
US7729241B2 (en) | System and method of limiting communication rates within packet-based communication networks | |
US10044770B2 (en) | Method and apparatus for managing a plurality of sessions in a multi-path routing based network | |
US10305805B2 (en) | Technologies for adaptive routing using aggregated congestion information | |
CN107959625A (zh) | 具有动态流卸载能力的虚拟路由器 | |
CN105591974A (zh) | 报文处理方法、装置及*** | |
CN106878194A (zh) | 一种报文处理方法和装置 | |
US9298660B2 (en) | Super speed USB hub and traffic management method thereof | |
US10715424B2 (en) | Network traffic management with queues affinitized to one or more cores | |
CN104301246A (zh) | 基于sdn的大流负载均衡转发方法及装置 | |
CN112787913A (zh) | 智能网卡组件、物理机、云服务***以及报文发送方法 | |
US20100246425A1 (en) | Packet processing apparatus, interface unit and method thereof | |
US10554513B2 (en) | Technologies for filtering network packets on ingress | |
US9979561B2 (en) | Systems and methods for stacking fibre channel switches with fibre channel over ethernet stacking links | |
CN108933738A (zh) | 一种处理网络拥塞的方法、装置及*** | |
US20150180775A1 (en) | Communication System, Control Apparatus, Communication Method, and Program | |
CN102201952A (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 |