CN108270813B - 一种异构多协议栈方法、装置及系统 - Google Patents

一种异构多协议栈方法、装置及系统 Download PDF

Info

Publication number
CN108270813B
CN108270813B CN201611261640.3A CN201611261640A CN108270813B CN 108270813 B CN108270813 B CN 108270813B CN 201611261640 A CN201611261640 A CN 201611261640A CN 108270813 B CN108270813 B CN 108270813B
Authority
CN
China
Prior art keywords
protocol stack
stack instance
application
data packet
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611261640.3A
Other languages
English (en)
Other versions
CN108270813A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201611261640.3A priority Critical patent/CN108270813B/zh
Priority to PCT/CN2017/116605 priority patent/WO2018121295A1/zh
Priority to EP17888968.9A priority patent/EP3550799B1/en
Publication of CN108270813A publication Critical patent/CN108270813A/zh
Priority to US16/453,988 priority patent/US11196677B2/en
Application granted granted Critical
Publication of CN108270813B publication Critical patent/CN108270813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers

Abstract

本发明实施例提供一种异构多协议栈系统,包括:多个异构协议栈实例,协议栈实例之间资源非均衡分配,算法独立配置,从而达到不同协议栈实例的QoS能力不同,同时通过分发器使得不同QoS要求的应用或连接能够通过规则映射高速分发到对应的协议栈实例上进行处理。在系统资源有限的场景下,本发明实施例提供的异构多协议栈系统同时能够支持对高并发、高吞吐、低时延应用的数据做分类优化处理,以满足不同类型应用的QoS要求,使得用户体验得到改善和提升。

Description

一种异构多协议栈方法、装置及系统
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传送加速方法及相关的装置和系统。
背景技术
协议栈是实现设备间通讯的重要组件,它保证了用户数据在复杂网络环境中能够可靠的的进行端到端传输。如图1所示,服务器通过网卡NIC(network interface card,网卡)接收数据包并将接收到的数据包加入接收队列,接收队列中的数据包会依次传递给协议栈进行处理,协议栈最后将处理完毕的数据包提交给上层应用程序。同时,应用程序产生的数据在经过协议栈处理后,也会通过网卡发送出去。
随着互联网技术的发展,应用程序(下文简称“应用”)的数量和类型越来越丰富,比如视频类应用、社交类应用,电子商务类应用等等。不同类型的应用具有不同的特点,比如QoS(Quality of Service,服务质量)需求可能有显著的差异。例如,对连接并发量,数据吞吐量,传输时延/抖动等指标的要求呈现出差异化。对于高并发应用,其需要大量套接字(socket)资源支持大量并发的连接,但是只需要较少的数据缓存资源;而对于高吞吐应用,则需要大量的数据缓存资源以对大量数据进行缓存,但是其socket资源则需求较少。
现有技术中的协议栈,往往面向通用的业务场景,在系统资源有限的情况下,难以兼顾不同类型应用的差异化数据处理需求。
发明内容
本发明实施例提供一种数据处理方法、服务器及终端,能够根据不同类型的应用的特点,合理的分配协议栈的资源,提高协议栈的处理效率和资源利用率。
第一方面,本发明实施例提供了一种服务器,包括:管理器、第一协议栈实例、第二协议栈实例和至少一个分发器;其中,管理器用于,为第一协议栈实例和第二协议栈实例分配资源,且该第一协议栈实例和该第二协议栈实例的资源配置不同,资源配置表示被分配的资源的类型和每种类型资源的配额;该第一协议栈实例用于处理第一类型应用的数据包,该第二协议栈实例用于处理第二类型应用的数据包;分发器用于,接收数据包,根据所述数据包的特征信息确定与该数据包匹配的协议栈实例,从第一协议栈实例和所述第二协议栈实例中确定匹配的协议栈实例,为并将该数据包分发至该匹配的协议栈实例。
在上述服务器中,管理器非均衡配置各个协议栈实例的资源,使得不同协议栈实例的资源配置不同,从而满足不同类型的应用的差异化数据处理需求,同时,通过分发器将数据包分发给与该数据包所属应用相匹配的协议栈实例上以进行处理,则对于不同类型应用的数据包既获得了对应的优化处理,同时系统的资源也得到了充分利用,所以在有限资源场景下,兼顾了不同类型应用的差异化数据处理需求。
在一种可能的设计中,该第一协议栈实例的资源配置满足第一类型的应用的QoS需求,该第二协议栈实例的资源配置满足第二类型的应用的QoS需求;该分发器具体用于,若根据该数据包的特征信息确定该数据包属于该第一类型的应用时,将该数据包分发给该第一协议栈实例,若根据该数据包的特征信息确定该数据包属于该第二类型的应用时,将该数据包分发给该第二协议栈实例。这样针对不同类型应用的资源需求特点,非均衡地分配资源给第一协议栈实例和第二协议栈实例,以满足不同类型的应用的QoS需求。分发器通过解析数据包的特征信息,即可快速确定数据包所属的应用,进而将数据包高速分发至匹配的协议栈,提高了数据包分发效率。
在一种可能的设计中,该服务器还包括规则库,该规则库存储有用于指示数据包分发策略的分发规则;该分发器具体用于,根据该数据包的特征信息和该分发规则,确定与所述数据包匹配的协议栈实例。
在一种可能的设计中,该分发规则包含端口号和/或IP地址与协议栈实例之间的映射关系;该分发器具体用于,解析数据包的报头,以确定该数据包的端口号和/或IP地址,根据确定出的端口号和/或IP地址,以及分发规则所指示的映射关系,确定与该数据包匹配的协议栈实例。
在一种可能的实现方式中,该管理器具体用于:根据第一协议栈实例和第二协议栈实例的资源权重,以及可用的资源总量,分别计算第一协议栈实例和第二协议栈实例的资源类型中的每种类型资源的配额;根据计算出的资源配额,分别为第一协议栈实例和第二协议栈实例分配对应数量的socket资源、数据缓存资源和CPU资源;其中,为所述第一协议栈实例、第二协议栈实例和第三协议栈实例分配的socket资源的配额不完全相同;和/或为所述第一协议栈实例、第二协议栈实例和第三协议栈实例分配的数据缓存资源的配额不完全相同;和/或为所述第一协议栈实例、第二协议栈实例和第三协议栈实例分配的CPU资源的配额不完全相同。
在一种可能的实现方式中,该服务器还包括:协调器,用于根据第一协议栈实例和第二协议栈实例运行过程中的资源使用率和/或负载状况,动态调整该第一协议栈和该第二协议栈的资源配置。比如为某个协议栈实例增加某种类型的资源,或者为某个协议栈实例减少某种类型的资源,以实现协议栈实例的资源可伸缩,从而能够使得协议栈实例能充分利用分配的资源。
在一种可能的实现方式中,该服务器包括多个分发器,每一个分发器与该第一协议栈实例和该第二协议栈实例种的至少一个关联,用于将接收到的数据包分发至与该分发器关联的协议栈实例。
在一种可能的实现方式中,该服务器的分发器与协议栈实例之间通过共享内存的方式通信,从而可以实现数据的高效分发。
在一种可能的实现方式中,该类型应用包括如下至少一种:高并发应用,高吞吐应用和低时延应用,且第一类型应用和第二类型应用不完全相同。即第一类型应用可能同时属于多种应用类型,第二类型应用也可能同时属于多种应用类型,但两者不会属于完全相同的应用类型。
第二方面,本发明实施例提供一种终端,该终端具有实现上述方法示例中管理器、协议栈实例以及协调器的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的设计中,该终端包括应用处理器、存储器和通信子系统,该通信子系统用于接收信号,并将信号转换为特定格式的数据包,应用处理器运行存储器中的协议栈程序,以用于执行上述示例中管理器、协议栈实例以及协调器的功能。
在另一种可能的设计中,终端的结构中包括接收单元、处理单元以及发送单元,这些单元可以执行上述方法示例中的相应功能,具体参见方法示例中的详细描述,不作赘述。
第三方面,本发明实施例提供一种数据处理方法,该方法包括上述示例中管理器、协议栈实例以及协调器所执行的步骤。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述服务器或终端所用的计算机软件指令,其包含用于实现上述方面所描述的管理器、协议栈实例和协调器的功能。
在上述任一方面或任一方面的任一种可能的实现方式中,数据包的特征信息包括如下信息中的一种或多种:源IP地址,,源端口,目的IP地址,目的端口,统一资源定位符URL和协议名称。
在上述任一方面或任一方面的任一种可能的实现方式中,资源类型包括:socket资源,数据缓存资源和CPU资源。
在上述任一方面或任一方面的任一种可能的实现方式中,应用类型包括:高并发应用,高吞吐应用和低时延应用。或者,应用类型包括:第一优先级应用和第二优先级应用。
在上述任一方面或任一方面的任一种可能的实现方式中,应用类型是根据应用的QoS需求、优先级、用户数量、数据流量大小、所使用的协议之中的至少一种来划分的。
在上述任一方面或任一方面的任一种可能的实现方式中,应用类型是根据应用的QoS需求、优先级、用户数量、数据流量大小、所使用的协议之中的至少一种来划分的。
相较于现有技术,本发明实施例提供了一种异构多协议栈系统,管理器非均衡配置不同类型协议栈实例的资源,使得不同协议栈实例的资源配置不同,从而适合不同类型的应用的特点,同时,通过分发器将数据包分发给与该数据包所属应用相匹配的协议栈实例上以进行处理,则对于不同类型应用的数据包既获得了对应的优化处理,同时系统的资源也得到了充分利用,所以在有限资源场景下,尽可能兼顾了不同类型应用的差异化处理处理需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中协议栈示意图;
图2是本发明实施例的一种通信系统的示意图;
图3是本发明实施例的服务器的组成结构图;
图4是本发明实施例的协议栈的示意图;
图5是本发明实施例的协议栈实例的工作原理图;
图6是本发明实施例的协议栈处理数据包的过程示意图;
图7是本发明实施例的协议栈的工作流程图;
图8是本发明实施例的协议栈处理数据包的过程示意图;
图9是本发明实施例的管理器创建资源池的过程示意图;
图10是本发明实施例的管理器创建分发器的过程示意图;
图11是本发明实施例的协调器与协议栈实例之间的通信机制示意图;
图12是本发明实施例的协调器动态调整资源配置的示意图;
图13是本发明实施例的软件实现的协议栈的示意图;
图14是本发明实施例的终端的结构示意图;
图15是本发明实施例的通信网络的示意图;
图16是本发明实施例的虚拟化应用场景示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着网络架构的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本发明实施例的方案可典型地应用于如图2所示的通信系统,根据图2,该通信系统包括:终端(terminal)10、服务器20和网络30;其中,终端10通过接入设备,如WLAN(Wireless Local Area Network,无线局域网)接入点,或蜂窝网络的接入点接入网络30,并基于特定的网络协议与服务器20建立连接,服务器20根据终端10的请求,利用建立的连接向终端10传输数据,比如视频流。
终端,指向用户提供语音和/或数据连通性的设备,包括无线终端或有线终端。无线终端可以是具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。例如,无线终端可以是移动电话(或称为“蜂窝”电话)或者具有移动终端的计算机。又如,无线终端也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。再如,无线终端可以为移动站(英文为:mobile station)或用户设备(英文为:user equipment,简称UE)的一部分。本发明的说明书和权利要求书及上述附图中的术语“数据包”是网络传输的基本单位,以一定格式组织起来的数据。不同类型的网络协议对数据包的格式有不同的定义,但通常而言,一个数据包可分为头部(header)和净荷(payload),其中,头部包含了数据包传输过程中必需的信息,比如地址信息、标志位等等,净荷也称为数据部分,包含了被发送的数据内容。
网络30可包括公用网络、专用网络、因特网的一部分和/或其任何组合。出于简洁之目的,网络30的其它部分并未进行阐述。
服务器20可以为应用服务器,服务器代理,数据中心服务器或网关。所属领域的技术人员可以理解一个通信系统通常可包括比图2中所示的部件更少或更多的部件,图2仅仅示出了与本发明实施例所公开的实现方式更加相关的部件。例如,虽然图2中示出了三个终端10和一个服务器20,但所属领域的技术人员可理解成一个通信系统可包含任何数量的终端和服务器。
图3示出了本发明实施例的服务器20的主要组件,根据图3,服务器20包括处理器201、存储器202和网卡(network interface card,NIC)203,网卡203包括发射电路231和接收电路232。存储器202中存储有可执行程序21,可执行程序21包括:操作系统和应用程序。处理器201可以运行存储器202中的可执行程序21,以实现特定的功能。服务器20和终端10要建立通信连接并基于建立的连接传输数据包,必须使用多种网络协议,这些协议按照层次组合在一起,构成协议族(Protocol Suite),而实现协议族功能的组件被称为协议栈(Protocol Stack)。如图3所示,服务器20和终端10分别包括协议栈204和协议栈11。数据包经协议栈204处理后,通过网卡203的发射电路231发送给终端10;接收电路232接收终端10上运行的应用程序12的数据包,并传递给协议栈204处理。其中,协议栈可由软件、硬件和/或固件的适当组合实现。在一个实施例中,协议栈204和协议栈11为TCP/IP(TransmissionControl Protocol/Internet Protocol)协议栈,TCP/IP协议栈是指参照TCP/IP参考模型所定义的协议族实现的协议栈,该协议族包括两个核心协议:TCP(传输控制协议)和IP(网际协议),根据TCP/IP参考模型的定义,协议族包含的协议被归类到5个抽象的"层"中:物理层、链路层、网络层、传输层以及应用层,关于各层的定义均为现有技术,本发明实施例不再赘述。本领域的技术人员可以理解,本发明实施例的协议栈并不仅限于TCP/IP协议栈,其它类型的协议栈,如OSI协议栈均适用本发明实施例的方法。
此外,本领域的技术人员可以理解服务器20可包括比图3中所示部件更少或更多的部件,图3仅示出了与本发明实施例所公开的多个实现方式的更加相关的部件。
在一个实施例中,如图4所示,协议栈204包括:异构协议栈管理器(简称管理器)241、分发器242、多个异构协议栈实例;图4以协议栈实例243、245和247为例进行说明,可以理解的是,协议栈204可以包括任意数量的协议栈实例。
管理器241用于为协议栈实例配置资源,以及通过配置分发器242的规则库建立数据包的分发规则。
协议栈实例(protocol stack instance),负责处理分发器242分发的数据包,该数据包为网卡从外部接收的数据包或者应用程序产生的数据包。一个协议栈实例可以为一个或多个线程,也可以为一个或多个线程,或者任意数量的线程和进程的组合。其中,协议栈实例对数据包的处理主要包括封装和解封装操作。如图5所示,若协议栈204为TCP/IP协议栈,则对于下行数据包(由外部设备发送至网卡的数据包),协议栈实例根据TCP/IP协议各层协议规范对数据包添加报头和/或帧尾,而对于上行数据包(由应用程序生成且待发送给外部设备的数据包),协议栈实例根据各层协议规范对数据包去除报头和/或帧尾。
其中,协议栈实例243、245和247是异构的,即不同协议栈实例的资源配置不同。本发明实施例所涉及的术语“资源”,是指处理数据包所需的软/硬件资源,包括但不限于:CPU、数据缓存(buffer)、套接字(socket)等资源。资源配置可以表示资源的类型和数量,或者不同类型资源的比例。在一个实施例中,可以根据应用的QoS需求,定义三种类型的应用:高并发应用、高吞吐应用和低时延应用。管理器241分别针对高并发/高吞吐/低时延应用的数据传输的特点,非均衡地分配资源给多个协议栈实例,以满足不同类型的应用的QoS需求。例如,为协议栈实例243分配较多的socket资源,以支持大量并发的连接,从而满足高并发应用的QoS需求;为协议栈实例245分配较多的数据缓存资源,以满足高吞吐应用的QoS需求;为协议栈实例247分配较多的CPU资源,以满足低时延应用的QoS需求(图4中用不同的填充方式标识不同类型的协议栈实例)。本发明实施例不限于根据应用的QoS需求来定义应用类型,还可以根据应用的其它方面的特点,比如:优先级、用户数量、数据流量大小、所使用的协议等来定义任意数量的应用类型。相应地,管理器241基于应用类型来配置多个异构协议栈实例,其中,一个协议栈实例用于处理一个特定类型的应用的数据,且其被分配的资源满足该特定类型的应用的QoS需求。
分发器242,用于根据数据包所属应用的类型,并将数据包分发至与该数据包所属应用的类型相对应的协议栈实例来处理该数据包。具体地,在一个实施例中,分发器242分别为每个协议栈实例配置一个接收队列q1、q2和q3,并根据分发规则将网卡203接收到的数据包加入q1、q2和q3中的一个。
以上实施例描述的协议栈中,管理器非均衡配置各个协议栈实例的资源,使得不同协议栈实例的资源配置不同,从而满足不同类型的应用的QoS要求,同时,通过分发器将数据包分发给与该数据包所属应用相匹配的协议栈实例上以进行处理,则对于不同类型应用的数据包既获得了对应的优化处理,同时系统的资源也得到了充分利用,所以在有限资源场景下,使得各类应用对应的QoS指标得到满足。
下面结合图6-8,描述协议栈204处理数据包的过程。
如图6所示,应用1和应用2分别与服务器20上的应用程序21建立了TCP连接1和TCP连接2;其中,应用1和应用2由运行在同一终端或不同终端上的应用程序来实现。服务器20的协议栈204的主要工作流程如图7所示:
S1.管理器生成两个TCP/IP协议栈实例(如图6中的实例1和2),根据应用1和应用2的QoS需求,确定实例1和2各自的资源配置,再根据以上信息完成各种类型的资源在实例1和2之间的分配,使得实例1的资源配置满足应用1的QoS需求;实例2的资源配置满足应用2的QoS需求。这里的资源配置包括的资源的类型和每种类型资源的配额(quota),其中,资源的配额是指资源的数量,单位为一个最小可分配单元。然后,管理器241通过配置分发器242的规则库中的分发规则,建立应用与实例之间的映射关系,或者TCP连接与实例之间的映射关系。
S2.分发器接收网卡发送的数据包,解析数据包的特征信息(比如五元组信息),根据特征信息确定数据包的分类(比如数据包所在的TCP连接,或者所属的应用),然后根据规则库中配置的分发规则将数据包分发到对应的实例上;这样,TCP连接1上的数据包会被分发至实例1,TCP连接2上的数据包会被分发至实例2。
S3.实例1和2分别对应用1和2的数据包进行处理;具体地,每个实例包括TCP模块和IP模块,分别用于TCP报头和IP报头的封装/解封装。经TCP模块处理完成的数据,最终提交给应用1或应用2。
需要说明的是,以上描述的是协议栈204对下行数据包的处理过程,对上行数据包(应用)而言,其处理流程类似,主要的区别在于:协议栈实例对下行数据包会进行解封装操作,而对上行数据包会进行封装操作;另外,上行数据包经协议栈实例处理完之后,通过网卡发送给外部设备。
类似地,图8示出了服务器20处理3种应用的数据包的过程,假设应用1为高并发应用,应用2为高吞吐应用,而应用3为低时延应用;则管理器241可以分别针对/高吞吐/低时延应用的资源需求特点,非均衡地分配资源给实例1,2,和3,以满足不同类型的应用的QoS需求。例如,为实例1分配较多的socket资源,以支持大量并发的连接,从而满足高并发应用1的QoS需求;为实例2分配较多的数据缓存资源,以满足高吞吐应用2的QoS需求;为实例3分配较多的CPU资源,以满足低时延应用3的QoS需求。分发器242进而根据数据包的特征信息,分别将TCP连接1,2和3上的数据包分发至实例1,2和3。从而同时能够支持对高并发/高吞吐/低时延应用的分类优化处理,使得用户的应用体验得到改善和提升。
下面结合附图进一步描述管理器241和分发器242的实现细节。
管理器241运行在独立的进程或线程上,完成以下操作:
(1)创建socket资源池\数据缓存资源池\CPU资源池。其中,CPU资源池包含可分配的CPU核(core),数据缓存资源池包括可用的缓存空间,socket资源池包含可用的socket。如图9所示,在一个实施例中,socket资源池的最小可分配单元为1个socket,数据缓存资源池的最小可分配单元为1个固定大小的缓存块,比如1024字节,1500字节或其它大小的缓存块,CPU资源池的最小可分配单元为1个CPU核。
(2)创建分发器。在一个实施例中,如图10所示,管理器读取配置数据,创建分发器:先从分发器资源池获取一个空闲的分发器DP1,然后从数据缓存资源池分配NDP1个数据缓存块给DP1,最后从CPU资源池取出1个可用的CPU核绑定到DP1。其中,对于多个分发器的情况(如图10中的DP1和DP2),则每创建一个分发器重复上述步骤一次;每一个分发器运行于一个独立的进程或线程上。
(3)创建协议栈实例。在一个实施例中,管理器基于定义的应用类型,创建多个不同类型的协议栈实例。例如,如果定义两种类型的应用:高并发应用和高吞吐应用,则管理器可以创建两种类型的协议栈实例:高并发协议栈实例和高吞吐协议栈实例,其中,高并发协议栈实例用于处理高并发应用的数据,高吞吐协议栈实例用于处理高吞吐应用的数据。每一类协议栈实例的数目不限,即同一类型的协议栈实例可以有多个;每一个协议栈实例运行于一个独立的进程或线程。
其中,socket资源仅与协议栈实例关联,数据缓存资源和CPU资源则既可以关联协议栈实例,也可以关联分发器,但同一资源同时只能关联一个实例。
下面进一步描述协议栈实例的创建过程。其中,不同类型的协议栈实例的创建过程大致相同,但细节上略有差异,下面以创建高并发和高吞吐协议栈实例为例进行说明。管理器从协议栈实例资源池获取空闲的协议栈实例X1和Y1,分别设置类型为高并发类型X和高吞吐类型Y。在一个实施例中,对于高并发协议栈实例,设置socket资源权重为WMx=3,数据缓存资源权重为WNx=1,CPU资源权重为WLx=1;对于高吞吐协议栈实例,设置socket资源权重为WMy=1,数据缓存资源权重为WNy=3,CPU资源权重为WLy=2。然后根据协议栈实例的类型和数目,以及不同类型协议栈实例的资源权重,分别计算各个协议栈实例的各类资源的配额(quota)。例如,对于高并发协议栈实例X1和高吞吐协议栈实例Y1,X1的socket资源配额Mx,满足:
Figure BDA0001199910540000131
Y1的socket资源配额My,满足:
Figure BDA0001199910540000132
其中,M表示socket资源池中可用的socket的总数,为相应地,其它类型资源的配额也可以根据资源权重值采用上述类似的算法来动态确定。
在另一个实施例中,也可以静态配置各种类型的协议栈实例的资源配额。管理员通过配置文件、配置命令或者可视化图形界面,预先配置各种类型的协议栈实例的资源配额。例如,将高并发协议栈实例的socket资源配额配置为Q1,数据缓存资源配额配置为Q2,CPU资源配额配置为Q3;将高吞吐协议栈实例的socket资源配额配置为S1,数据缓存资源配额配置为S2,CPU资源配额配置为S3;将低时延协议栈实例的socket资源配额配置为T1,数据缓存资源配额配置为T2,CPU资源配额配置为T3,使其分别满足高并发、高吞吐、低时延应用的QoS需求。其中,Q1-Q3,S1-S3,以及T1-T3的具体取值可以由管理员根据经验或者测试结果来设定。通常,在资源受限的情况下,不同类型的协议栈实例的资源配额不完全相同,从而更好地满足不同类型应用的需求。例如,高并发协议栈实例的socket资源配额大于高吞吐和低时延协议栈实例,这样有较多的socket来支持大量并发的连接;高吞吐协议栈实例的数据缓存资源配额大于高并发和低时延协议栈实例,以满足大量数据的缓存需求;低时延协议栈实例的CPU资源配额大于高并发和低时延协议栈实例,以保障数据的实时处理。
管理器根据确定出的各个协议栈实例的资源配额,分别为各个协议栈实例关联对应数量的socket资源、数据缓存资源和CPU资源。
可选地,在一个实施例中,管理器还可以为不同类型的协议栈实例配置差异化的算法组合来优化不同应用的数据处理。例如,为高并发协议栈实例从算法库构建高并发TCP算法模块,包括但不限于:
a)关闭nagle算法模块;
b)关闭delay Ack算法模块均匀传输策略;
c)启用TIME-WAIT sockets快速回收及重复使用算法模块采用传输策略;
d)启用高并发keep-alive定时器算法模块。
为高吞吐协议栈实例Y1从算法库构建高吞吐TCP算法模块,包括,但不限于:
a)启用nagle算法模块;
b)启用delay Ack算法模块;
c)启用TCP扩展发送窗口/扩展接收窗口配置算法模块;
d)启用TCP数据包批处理算法模块。
进一步地,协议栈实例和分发器创建完成之后,管理器会将协议栈实例绑定到分发器。在一个实施例中,n个协议栈实例可以绑定到一个分发器,其中n>=1。在另一个实施例中,为了提高数据的分发速度,也可以将一个协议栈实例同时绑定到多个分发器上。如图11所示,协议栈实例X2同时绑定到分发器DP1与DP2上。
在一个实施例中,分发器与协议栈实例之间通过共享内存来实现数据传输。在共享内存中设置若干个缓存队列,每一缓存队列用于一对分发器和协议栈实例之间的数据传输。例如,如图11所示DP1和X1之间的缓存队列记为QDP1-X1,DP1和Y1之间的缓存队列记为QDP1-Y1,以此类推。分发器DP1和DP2根据分发规则将网卡收到的数据包分发至共享内存中的缓存队列,协议栈实例X1、X2、Y1和Y2分别读取自身对应的缓存队列中数据包进行处理。在另一个实施例中,分发器与协议栈实例之间也可以采用其他的进程/线程间通信机制来进行数据传输。
在一个实施例中,分发器242基于规则库中配置的分发规则以及数据包的特征信息,将数据包分发到与该数据包所属应用或所在连接的QoS要求相匹配的协议栈实例。其中,数据包的特征信息包括但不限于如下信息中的一种或多种:源IP地址,源端口,目的IP地址,目的端口,统一资源定位符URL和协议名称。特征信息可以通过对数据包进行解析获得,其中IP地址、端口信息通过解析数据包报头即可得到,协议名称,尤其是应用层协议的名称可能需要通过DPI(deep packet inspection,深度数据包检测)技术对数据包的载荷(payload)进行检测得到。
分发器242具体需要解析数据包的那些特征信息取决于规则库中定义的分发规则。在一个实施例中,可以定义比较简单的分发规则,如端口号和/或IP地址符合第一条件的数据包分发至协议栈实例243,端口号和/或IP地址符合第二条件的数据包分发至协议栈实例245,等等。在这种情况下,分发规则实质上包含了端口号和/或IP地址与协议栈实例之间的映射关系,分发器242通过解析数据包的端口号和/或IP地址,并与分发规则进行匹配,即可确定与该数据包匹配的协议栈实例,进而将该数据包分发至该匹配的协议栈实例的缓存队列中。
在另一个实施例中,分发规则也可以包括协议名称与协议栈实例之间的映射关系。例如HTTP(HyperText Transfer Protocol,超文本传输协议)数据包对应于协议栈实例243,RTSP(Real Time Streaming Protocol,实时流传输协议)数据包对应于协议栈实例245,等等。这样分发器242通过解析数据包的协议名称,即可确定与该数据包匹配的协议栈实例,进而将该数据包分发至该匹配的协议栈实例。
在另一个实施例中,分发规则也可以包括应用名称与协议栈实例之间的映射关系,或者应用类型与协议栈实例之间的映射关系;分发器242通过对接收到的数据包进行解析,以确定数据包所属应用的名称或类型,进而根据上述映射关系,将数据包分发至对应的协议栈实例。
需要说明的是,数据包的协议名称、所属应用的名称和类型通常可以通过解析数据包报头的报头内容来确定,如果解析报头内容难以确定,可以进一步利用现有的DPI技术解析数据包应用层(L7)信息来确定。另外,由于同一连接上传输的所有数据包都属于同一应用,使用相同的协议,且都有相同的IP地址和端口号,因此,如果识别出了一条连接上的一个数据包(例如首包)的协议名称或应用名称,并确定了与该数据包的协议名称或应用名称相匹配的协议栈实例,则分发器可以建立该连接(通常用IP地址和端口号来标识)与该协议栈实例的映射关系,这样,分发器后续接收到数据包后,若根据数据包的IP地址和端口号判断该数据包属于该连接,即可将该数据包快速转发到该连接对应的协议栈实例上。
在另一个实施例中,分发规则也可以更复杂,即包含多重条件,例如可以同时参考端口号、IP地址以及协议名称来定义分发规则。又例如,若存在多个同类型的协议栈实例,则分发规则还可以进一步包括负载均衡策略。这样,若分发器根据分发规则,确定与当前接收到的数据包匹配的协议栈实例为第一类型的协议栈实例,但第一类型的协议栈实例有多个,则可以根据负载均衡策略,将该数据包分发至多个第一类型协议栈实例中负载较小的一个。可以理解的是,分发规则越简单,分发器需要解析的特征信息就越少,数据包的分发就越快,但分发的准确率就越低;分发规则越复杂,数据包的分发就越精细,但分发器处理的复杂度就越高。
可选地,如图4所示,在一个实施例中,协议栈204还包括:协调器248,用于在协议栈实例运行过程中,检测各个协议栈实例的资源使用率,并根据各个协议栈实例的资源使用率,动态调整协议栈实例的资源配置,比如为某个协议栈实例增加某种类型的资源,或者为某个协议栈实例减少某种类型的资源,以实现协议栈实例的资源可伸缩(Scalable)。协调器在协议栈实例运行过程中监视系统的可用资源变化情况,并根据各个协议栈实例的负载变化情况,动态调整各个协议栈实例的资源配额,从而能够使得协议栈实例上的资源被充分利用。
其中,协调器248具体可以实时的,或者周期性的或者以事件触发来检测各个协议栈实例的资源利用率。
在一个实施例中,协调器248根据协议栈实例的资源使用率,以及该协议栈的各类资源权重,计算不同类型资源的配额增减量。例如,如图12所示,当前有两个协议栈实例X1和Y1,以socket资源为例,其配额增减量计算如下:
Figure BDA0001199910540000181
其中,WMx表示协议栈实例X1的socket资源权重,WMy表示协议栈实例Y1的socket资源权重,M表示socket资源池中可用的socket的总数,Mx为X1的socket初始资源配额,Mx_used和My_used分别表示协议栈实例X1和Y1当前已使用的socket资源。对于其他类型资源,计算方式类似。进一步地,协调器根据资源配额增减量,执行资源协调:
若ΔMX=0,则协调器不执行资源协调操作;
若ΔMX>0,则协调器执行socket资源增加操作,为协议栈实例X1增加数量为ΔMX的socket资源,如图12所示。
若ΔMX<0,则协调器执行socket资源删除操作,回收协议栈实例X1数量为ΔMi的socket资源。
进一步地,在一个实施例中,协调器248还可以检测分发器的资源使用率,并根据检测结果动态调整分发器的资源配置。
在一个实施例中,协调器248根据资源配额增减量,执行资源协调的操作,可以由管理器来完成。协调器248只需要将计算出的各个实例的资源配额增减量发送给管理器,由管理器来完成资源的增加或删除操作。进一步地,在另一个实施例中,以上描述的管理器在协议栈实例的创建过程计算资源配额的功能,可以由协调器来完成。协调器计算出协议栈实例的各种类型的资源配额之后,发送给管理器,管理器进而完成资源的分配。
在另一个实施例中,协调器248的所有功能可以集成到管理器241中,即由管理器241统一实现资源配额的计算、分配以及资源配额的动态调整功能,从而减少组件之间的通讯开销。
以上实施例描述了服务器20的协议栈204的具体工作原理和流程。下面描述用于实现上述协议栈功能的装置。
在一个实施例中,图2所示的服务器20的协议栈204以可执行程序的形式存储于服务器20的存储器202中,处理器201将协议栈204对应的可执行程序译码成机器指令并执行,以执行上述各个实施例描述的的工作流程。其中,处理器201包括通用处理器、微处理器、图形处理器和基带处理器中的至少一种。具体地,如图13所示,存储器20存储的可执行程序21包括:设备驱动程序,协议栈,接口、操作系统和应用程序;其中协议栈按照协议层级或功能又可以分为多个模块,每一个模块实现一层协议的功能,比如网络层模块用于实现网络层协议(比如IP协议),传输层模块用于实现传输层协议(比如TCP或者UDP协议),等等。当数据包到达网卡时,网卡的驱动程序将数据包加入协议栈的缓存队列,并通知操作系统,操作系统通过系统调用接口调度协议栈的各个模块,以执行图4-12相关的实施例所描述的管理器、分发器、协议栈实例和协调器的工作流程。数据包经协议栈处理完成之后,最终提交给上层应用程序。
在另一个实施例中,协议栈204可以由现场可编程门阵列(Field ProgrammableGata Array,FPGA)或特定用途集成电路(Application Specific Integrated Circuit,ASIC)等硬件电路或专用芯片来实现,在这种情形下,处理器201和用于实现协议栈204的硬件电路或专用芯片通过总线连接;处理器调用用于实现协议栈204的硬件电路或专用芯片,对网卡接收到的数据包进行处理。
本发明上述实施例描述的协议栈,并不限于应用在服务器中,还可以应用于终端。终端可以通过实现以上实施例描述的协议栈,以对不同类型应用程序的数据包差异化处理,从而满足不同类型的应用程序的QoS需求,提升用户体验。例如,对于视频类应用的数据,可以分发至高吞吐类型的协议栈实例进行处理,对于即时通讯类应用的数据包,可以分发至低时延类型的协议栈实例进行处理。
具体地,如图14所示,本发明实施例提供一种终端10,包括:应用处理器110、存储器120、通信子系统130和电源管理子系统140。其中,存储器180存储可执行程序,该可执行程序包括协议栈程序和应用程序。应用程序可以包括网页浏览器,视频播放器,即时通讯应用等任意类型的应用程序。电源管理子系统140用于系统的供电,具体可以为电源管理芯片。通信子系统130通常也称为无线调制解调器(Modem),主要实现基带处理、调制解调、信号放大和滤波、均衡等功能。通信子系统130包括基带处理器131、射频模块132和天线133;其中,基带处理器131和应用处理器110可以集成在同一芯片中,并采用共享内存的方式进行消息的交互。在另一个实施例中,基带处理器131和应用处理器110可以分离式部署:基带处理器131和应用处理器110作为两个独立的芯片通过核间通信方式进行信息的交互。采用分离式部署方式,基带处理器131相当于应用处理器110的一个外设,两个处理器需要各自独立的电源管理系统和各自的外接存储器、以及软件升级接口。
射频模块132主要负责信号发送和接收;基带处理器131负责信号的处理,比如信号的A/D、D/A转换、信号的编解码、信道编解码。在一个实施例中,射频模块132包括实现射频收发、频率合成、功率放大等功能的射频电路,该射频电路可以封装在射频芯片中。在另一个实施例中,可将射频模块132包含的部分或全部射频电路可以和基带处理器131集成在基带芯片中。
存储器120一般包括内存和外存。内存可以为随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)等。外存可以为硬盘、光盘、USB盘、软盘或磁带机等。可执行程序通常被存储在外存上,应用处理器110会将可执行程序从外存加载到内存后再执行该程序。
在一个实施例中,终端10通过天线133接收信号,射频模块132和基带处理器131通过滤波、解码、转换等一系列处理之后,将信号转换为一个或多个数据包。进一步地,应用处理器110运行存储器20中的协议栈程序,以对该一个或多个数据包进行进一步处理,数据包经协议栈处理完成之后,最终提交给应用程序。其中,协议栈程序具体用于执行图4-13相关的实施例所描述的管理器、分发器、协议栈实例和协调器的工作流程,相关细节可以参见前述各个实施例。
可选地,终端10还包括Wi-Fi(Wireless Fidelity,无线保真)模块150,Wi-Fi模块150支持IEEE 802.11系列协议,终端10可以通过Wi-Fi模块150接入WLAN。在一个实施例中,Wi-Fi模块150可以为Wi-Fi芯片,通过总线与应用处理器110通信;在另一实施例中,Wi-Fi模块150可以集成在通信子系统130中,比如集成在基带处理器131上。同样地,终端10也可以通过Wi-Fi模块150接收信号,Wi-Fi模块150将接收到的信号处理转换为一个或多个数据包。应用处理器110运行存储器20中的协议栈程序,以对该一个或多个数据包进行进一步处理,数据包经协议栈处理完成之后,最终提交给应用程序。
可选地,终端10还包括显示器160,用于显示由用户输入的信息或提供给用户的信息以及终端10的各种菜单界面等。显示器160可为液晶显示器(英文:Liquid CrystalDisplay,LED)或有机发光二极管(英文:Organic Light-Emitting Diode,OLED)等。在其他一些实施例中,显示器160上可以覆盖触控面板,以形成触摸显示屏。
除以上之外,终端10还可以包括用于拍摄照片或视频的摄像头180、一个或多个传感器170,例如重力传感器、加速度传感器、光传感器等。
此外,所属领域的技术人员可以理解终端10可包括比图14中所示部件更少或更多的部件,图14所示的终端10仅示出了与本发明实施例所公开的多个实现方式的更加相关的部件。
本发明上述实施例描述的协议栈,还可以应用于路由器、交换机等网络设备中。网络设备作为数据传输的中间设备,在接收到数据包之后,可以利用协议栈提供的异构协议栈实例进行数据的高效处理,然后转发给下一跳网络设备。协议栈各个组件的具体实现细节可以参照前述实施例的描述,在此不再赘述。
本发明实施例还提供一种通信网络,如图15所示,该通信网络包括:控制器1501,以及多个网络设备1503。网络设备1503为路由器或交换机,控制器1501中存储整个网络的拓扑结构,并为需要转发的数据流生成流表,并下发到网络设备1503;网络设备1503中存储控制器下发的流表信息,并根据流表信息进行数据转发。
在一个实施例中,网络设备1503为独立的物理设备,包括:处理器,存储器以及图4-13相关的实施例所描述的协议栈。需要说明的是,由于交换机工作在OSI开放体系结构的第二层(数据链路层),而路由器工作在OSI的第三层(网络层),所以两者支持的协议族与服务器20不完全相同。对于交换机来说,由于其是L2设备,所以不需要对数据包做L2以上的协议处理,因此其协议栈可以不包括L2以上的协议处理模块;而对于路由器,则不需要对数据包做L3以上的协议处理,因此其协议栈可以不包括L2以上的协议处理模块。
在一个实施例中,网络设备1503和控制器1501可以为虚拟功能单元,例如通过虚拟化技术在通用硬件资源上构建的虚拟网络功能(virtual network function,VNF)或者容器。如图16所示,由一台有多台物理主机的硬件资源组成硬件层910(也称为基础设施层),VMM(Virtual Machine Monitor,虚拟机监视器)920以及若干虚拟机(VM,VirtualMachine)运行于硬件层910之上,每一台虚拟机可以看成是一台独立的计算机,可以调用硬件层的资源来实现特定的功能。其中,硬件层包括但不限于:I/O设备、CPU和memory。网络设备1503具体可以为一台虚拟机,比如VM 940,VM940还运行有可以执行程序,VM940通过调用硬件层910中的CPU、Memory等资源,以运行该可执行程序,从而实现图4-13相关的实施例所描述的协议栈的功能。类似地,控制器1501也可以为一台虚拟机,用于实现上述实施例所描述的控制器的功能。
在图15所示的通信网络中,网络设备1503的协议栈中协调器的功能,可以集成在控制器1501中,控制器1501根据全网状态来对网络设备上的协议栈实例进行资源配置和动态调整。在协议栈实例创建过程中,控制器1501根据不同类型协议栈实例的资源权重,分别计算各个协议栈实例的各类资源的配额(quota),下发到网络设备1503,由网络设备1503的协议栈所包括的管理器完成协议栈实例的资源配置。在资源动态协调过程中,控制器1501根据全网状态,例如各个网络设备的负载情况,各类资源的使用率等,计算网络设备1503上各个协议栈实例的不同类型系统资源的配额增减量,以协调不同类型资源达到全网资源利用率和用户体验最优。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的协议栈功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (32)

1.一种服务器,其特征在于,包括:管理器、第一协议栈实例、第二协议栈实例和至少一个分发器;其中,
所述管理器用于,为所述第一协议栈实例和第二协议栈实例分配资源,其中,所述第一协议栈实例和所述第二协议栈实例的资源配置不同,所述资源配置表示被分配的资源的类型和每种类型资源的配额;所述第一协议栈实例用于处理第一类型应用的数据包,所述第二协议栈实例用于处理第二类型应用的数据包;
所述分发器用于,接收数据包,根据所述数据包的特征信息确定与所述数据包匹配的协议栈实例,并将所述数据包分发至所述匹配的协议栈实例;所述匹配的协议栈实例为第一协议栈实例或所述第二协议栈实例。
2.根据权利要求1所述的服务器,其特征在于,所述第一协议栈实例的资源配置满足第一类型的应用的QoS需求,所述第二协议栈实例的资源配置满足第二类型的应用的QoS需求;所述分发器具体用于,若根据所述数据包的特征信息确定所述数据包属于所述第一类型应用时,将所述数据包分发给所述第一协议栈实例,若确定所述数据包属于所述第二类型应用时,将所述数据包分发给所述第二协议栈实例。
3.根据权利要求1所述的服务器,其特征在于,所述服务器还包括规则库,所述规则库存储有分发规则,所述分发规则用于指示数据包的分发策略;
所述分发器具体用于,根据所述数据包的特征信息和所述规则库中的所述分发规则,确定与所述数据包匹配的协议栈实例。
4.根据权利要求3所述的服务器,其特征在于,所述特征信息包括如下信息中的一种或多种:源IP地址,源端口,目的IP地址,目的端口,统一资源定位符URL和协议名称。
5.根据权利要求4所述的服务器,其特征在于,所述分发规则包含端口号和/或IP地址与协议栈实例之间的映射关系;
所述分发器具体用于,解析所述数据包的报头,以确定所述数据包的端口号和/或IP地址,根据确定出的端口号和/或IP地址,以及所述映射关系,确定与所述数据包匹配的协议栈实例。
6.根据权利要求1-5任一项所述的服务器,其特征在于,所述资源包括:socket资源,数据缓存资源和CPU资源。
7.根据权利要求2-5任一项所述的服务器,其特征在于,所述第一类型应用和所述第二类型应用分别属于高并发应用,高吞吐应用和低时延应用中的一种,且所述第一类型应用和所述第二类型应用为不同类型的应用。
8.根据权利要求7所述的服务器,其特征在于,所述第一类型应用为高并发应用,所述第二类型应用为高吞吐应用;所述第一协议栈实例的socket资源配额大于所述第二协议栈实例的socket资源配额。
9.根据权利要求6所述的服务器,其特征在于,所述管理器具体用于:
根据所述第一协议栈实例和所述第二协议栈实例的资源权重,以及可用的资源总量,分别计算所述第一协议栈实例和所述第二协议栈实例的所述资源中的每种类型资源的配额;
根据计算出的资源配额,分别为所述第一协议栈实例和所述第二协议栈实例分配对应数量的socket资源、数据缓存资源和CPU资源;其中,所述为所述第一协议栈实例分配的socket资源的配额为Mx,数据缓存资源的配额为Nx,CPU资源的配额为Lx;所述管理器为所述第二协议栈实例分配的socket资源的配额为My,数据缓存资源的配额为Ny,CPU资源的配额为Ly;其中,所述第一协议栈实例和所述第二协议栈实例的资源配置如下至少一个条件:Mx≠My,Nx≠Ny,Lx≠Ly
10.根据权利要求1至5任一项所述的服务器,其特征在于,还包括:协调器,用于根据所述第一协议栈实例和所述第二协议栈实例的资源使用率和/或负载状况,动态调整所述第一协议栈和所述第二协议栈的资源配置。
11.根据权利要求1至5任一项所述的服务器,其特征在于,所述服务器包括多个分发器,每一个分发器与所述第一协议栈实例和所述第二协议栈实例种的至少一个关联,用于将接收到的数据包分发至与所述每一个分发器关联的协议栈实例。
12.根据权利要求11所述的服务器,其特征在于,所述每一个分发器与所述每一个分发器关联的协议栈实例之间通过缓存队列完成数据包传输,其中所述缓存队列位于共享内存中。
13.一种终端,包括:应用处理器、存储器和通信子系统;其特征在于,所述存储器存储有协议栈程序,第一应用和第二应用;所述第一应用和所述第二应用的应用类型不同;
所述通信子系统用于,接收信号,并将所述信号转换为第一数据包;
所述应用处理器运行所述存储器中的第一应用和第二应用,以及运行所述协议栈程序,以用于:
创建第一协议栈实例和第二协议栈实例,并为所述第一协议栈实例和第二协议栈实例分配资源,其中,所述第一协议栈实例和所述第二协议栈实例的资源配置不同,所述资源配置表示被分配的资源的类型和每种类型资源的配额;
根据所述数据包的特征信息确定与所述数据包匹配的协议栈实例,并将所述数据包分发至所述匹配的协议栈实例;所述匹配的协议栈实例为第一协议栈实例或所述第二协议栈实例。
14.根据权利要求13所述的终端,其特征在于,所述第一协议栈实例的资源配置满足第一应用的QoS需求,所述第二协议栈实例的资源配置满足所述第二应用的QoS需求;所述应用处理器运行所述协议栈程序,以用于:若根据所述数据包的特征信息确定所述数据包属于所述第一应用时,将所述数据包分发给所述第一协议栈实例,若确定所述数据包属于所述第二应用时,将所述数据包分发给所述第二协议栈实例。
15.根据权利要求13所述的终端,其特征在于,所述存储器中还存储有分发规则,所述分发规则用于指示数据包的分发策略;
所述应用处理器运行所述协议栈程序,以用于:
根据所述数据包的特征信息和规则库中的所述分发规则,确定与所述数据包匹配的协议栈实例。
16.根据权利要求15所述的终端,其特征在于,所述特征信息包括如下信息中的一种或多种:源IP地址,源端口,目的IP地址,目的端口,统一资源定位符URL和协议名称。
17.根据权利要求16所述的终端,其特征在于,所述分发规则包含端口号和/或IP地址与协议栈实例之间的映射关系;
所述应用处理器运行所述协议栈程序,以用于:
解析所述数据包的报头,以确定所述数据包的端口号和/或IP地址,根据确定出的端口号和/或IP地址,以及所述映射关系,确定与所述数据包匹配的协议栈实例。
18.根据权利要求13至17任一项所述的终端,其特征在于,所述应用处理器还用于:
根据所述第一协议栈实例和所述第二协议栈实例的资源使用率和/或负载状况,动态调整所述第一协议栈和所述第二协议栈的资源配置。
19.根据权利要求13至17任一项所述的终端,其特征在于,所述应用处理器还用于:
接收第一应用或第二应用生成的第二数据包;
当所述第二数据包属于所述第一应用时,将所述数据包分发到所述第一协议栈实例以进行处理,当所述第二数据包属于所述第二应用时,将所述数据包分发到所述第二协议栈实例以进行处理;
所述通信子系统还用于,将所述第一协议栈实例或所述第二协议栈实例处理完成的所述第二数据包转换为信号,并发送出去。
20.根据权利要求13-17任一项所述的终端,其特征在于,所述资源包括:socket资源,数据缓存资源和CPU资源。
21.根据权利要求13-17任一项所述的终端,其特征在于,应用类型包括:高并发应用,高吞吐应用和低时延应用。
22.根据权利要求21所述的终端,其特征在于,所述第一应用为高并发应用,所述第二应用为高吞吐应用;所述第一协议栈实例的socket资源配额大于所述第二协议栈实例的socket资源配额。
23.一种数据处理方法,其特征在于,包括:
创建第一协议栈实例和第二协议栈实例,并为所述第一协议栈实例和第二协议栈实例分配资源,其中,所述第一协议栈实例和所述第二协议栈实例的资源配置不同,所述资源配置表示被分配的资源的类型和每种类型资源的配额;所述第一协议栈实例用于处理第一类型应用的数据包,所述第二协议栈实例用于处理第二类型应用的数据包;
接收数据包,根据所述数据包的特征信息确定与所述数据包匹配的协议栈实例,并将所述数据包分发至所述匹配的协议栈实例;所述匹配的协议栈实例为第一协议栈实例或所述第二协议栈实例。
24.根据权利要求23所述的方法,其特征在于,所述第一协议栈实例的资源配置满足所述第一类型的应用的QoS需求,所述第二协议栈实例的资源配置满足所述第二类型的应用的QoS需求;所述根据所述数据包的特征信息确定与所述数据包匹配的协议栈实例包括:
若根据所述数据包的特征信息确定所述数据包属于所述第一类型的应用时,与所述数据包匹配的协议栈实例为所述第一协议栈实例;若根据所述数据包的特征信息确定所述数据包属于所述第二类型的应用时,与所述数据包匹配的协议栈实例为所述第二协议栈实例。
25.根据权利要求23所述的方法,其特征在于,所述根据所述数据包的特征信息确定与所述数据包匹配的协议栈实例包括:
根据所述数据包的特征信息和规则库中配置的分发规则,确定与所述数据包匹配的协议栈实例。
26.根据权利要求23所述的方法,其特征在于,所述特征信息包括如下信息中的一种或多种:源IP地址,源端口,目的IP地址,目的端口,统一资源定位符URL和协议名称。
27.根据权利要求25所述的方法,其特征在于,所述分发规则包含端口号和/或IP地址与协议栈实例之间的映射关系;
所述根据所述数据包的特征信息和规则库中配置的分发规则,确定与所述数据包匹配的协议栈实例包括:
解析所述数据包的报头,以确定所述数据包的端口号和/或IP地址;
根据确定出的端口号和/或IP地址,以及所述映射关系,确定与所述数据包匹配的协议栈实例。
28.根据权利要求23-27任一项所述的方法,其特征在于,所述资源包括:socket资源,数据缓存资源和CPU资源。
29.根据权利要求23-27任一项所述的方法,其特征在于,所述第一类型应用和所述第二类型应用分别属于高并发应用,高吞吐应用和低时延应用中的一种,且所述第一类型应用和所述第二类型应用为不同类型的应用。
30.根据权利要求29所述的方法,其特征在于,所述第一类型应用为高并发应用,所述第二类型应用为高吞吐应用;所述第一协议栈实例的socket资源配额大于所述第二协议栈实例的socket资源配额。
31.根据权利要求28所述的方法,其特征在于,所述为所述第一协议栈实例和第二协议栈实例分配资源包括:
根据所述第一协议栈实例和所述第二协议栈实例的每种类型资源的权重,以及可用的资源总量,分别计算所述第一协议栈实例和所述第二协议栈实例的每种类型资源的配额;
根据计算出的资源配额,分别为所述第一协议栈实例和所述第二协议栈实例分配对应数量的socket资源、数据缓存资源和CPU资源;其中,为所述第一协议栈实例分配的socket资源的配额为Mx,数据缓存资源的配额为Nx,CPU资源的配额为Lx;为所述第二协议栈实例分配的socket资源的配额为My,数据缓存资源的配额为Ny,CPU资源的配额为Ly;且所述第一协议栈实例和所述第二协议栈实例的资源配置如下至少一个条件:Mx≠My,Nx≠Ny,Lx≠Ly
32.根据权利要求23至27任一项所述的方法,其特征在于,还包括:根据所述第一协议栈实例和所述第二协议栈实例的资源使用率和/或负载状况,动态调整所述第一协议栈和所述第二协议栈的资源配置。
CN201611261640.3A 2016-12-30 2016-12-30 一种异构多协议栈方法、装置及系统 Active CN108270813B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201611261640.3A CN108270813B (zh) 2016-12-30 2016-12-30 一种异构多协议栈方法、装置及系统
PCT/CN2017/116605 WO2018121295A1 (zh) 2016-12-30 2017-12-15 一种异构多协议栈方法、装置及系统
EP17888968.9A EP3550799B1 (en) 2016-12-30 2017-12-15 Heterogeneous multi-protocol stack method, device and system
US16/453,988 US11196677B2 (en) 2016-12-30 2019-06-26 Heterogeneous multi-protocol stack method, apparatus, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611261640.3A CN108270813B (zh) 2016-12-30 2016-12-30 一种异构多协议栈方法、装置及系统

Publications (2)

Publication Number Publication Date
CN108270813A CN108270813A (zh) 2018-07-10
CN108270813B true CN108270813B (zh) 2021-02-12

Family

ID=62706927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611261640.3A Active CN108270813B (zh) 2016-12-30 2016-12-30 一种异构多协议栈方法、装置及系统

Country Status (4)

Country Link
US (1) US11196677B2 (zh)
EP (1) EP3550799B1 (zh)
CN (1) CN108270813B (zh)
WO (1) WO2018121295A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109379303A (zh) * 2018-08-22 2019-02-22 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于提升万兆以太网性能的并行化处理框架系统和方法
CN109885309B (zh) * 2019-01-14 2022-05-24 北京中科晶上科技股份有限公司 生成用于建立协议栈软件的配置文件的方法
US10904719B2 (en) 2019-05-06 2021-01-26 Advanced New Technologies Co., Ltd. Message shunting method, device and system based on user mode protocol stack
CN110278161B (zh) * 2019-05-06 2020-08-11 阿里巴巴集团控股有限公司 基于用户态协议栈的报文分流方法、装置及系统
KR20210045209A (ko) * 2019-10-16 2021-04-26 현대자동차주식회사 차량 통신 연결 장치 및 그 방법
CN111131320B (zh) * 2019-12-31 2022-06-14 奇安信科技集团股份有限公司 资产识别方法、装置、系统和介质
CN112671754B (zh) * 2020-12-21 2023-05-02 龙存(成都)科技有限公司 一种单流水线处理不同服务端功能的方法、系统
CN113014666B (zh) * 2021-03-17 2023-02-28 深圳壹账通智能科技有限公司 一种区块链协议栈架构方法、系统、设备及存储介质
US20220321471A1 (en) * 2021-03-30 2022-10-06 Amazon Technologies, Inc. Multi-tenant offloaded protocol processing for virtual routers
US11824773B2 (en) 2021-03-30 2023-11-21 Amazon Technologies, Inc. Dynamic routing for peered virtual routers
CN115001874A (zh) * 2022-08-04 2022-09-02 成都卫士通信息产业股份有限公司 一种数据传输方法、装置、设备及介质
CN115473761B (zh) * 2022-09-14 2024-03-15 国核自仪系统工程有限公司 基于dcs系统的can总线的通信方法、系统、设备及介质
CN117097779B (zh) * 2023-10-16 2024-01-30 之江实验室 一种网络通信的方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529407A (zh) * 2005-06-30 2009-09-09 湍溪系统有限责任公司 使用异步通信协议浏览网络资源的方法和装置
CN105992290A (zh) * 2016-04-28 2016-10-05 努比亚技术有限公司 一种用户设备及其网络切换方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708031B2 (en) * 2000-12-05 2004-03-16 Nokia Corporation Session or handoff methods in wireless networks
EP1378081A4 (en) * 2001-04-09 2008-07-02 Objective Interface Systems In SYSTEM, METHOD AND MANUFACTURING DEVICE FOR USING AN INTERCHANGEABLE COMPONENT TO SELECT A SERVICE QUALITY INTERCHANGEABLE NETWORK COMMUNICATION CHANNEL COMPONENT
EP1613003A1 (en) * 2004-06-30 2006-01-04 Alcatel Air interface protocols for a radio access network with ad-hoc extension
US8015392B2 (en) * 2004-09-29 2011-09-06 Intel Corporation Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets
WO2009083912A2 (en) * 2007-12-28 2009-07-09 Nokia Corporation Multiple radio instances using software defined radio
US8849972B2 (en) * 2008-11-25 2014-09-30 Polycom, Inc. Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port
KR101572879B1 (ko) * 2009-04-29 2015-12-01 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법
CN102595509B (zh) 2012-04-09 2014-06-18 西安电子科技大学 异构网络中基于传输控制协议的并发数据分流方法
CN102710497A (zh) 2012-04-24 2012-10-03 汉柏科技有限公司 多核多线程网络设备的报文处理方法及系统
CN108268328B (zh) * 2013-05-09 2022-04-22 华为技术有限公司 数据处理装置及计算机
US9569260B2 (en) * 2013-05-31 2017-02-14 Microsoft Technology Licensing, Llc Efficient priority-aware thread scheduling
CN104580124B (zh) * 2013-10-29 2019-04-05 华为技术有限公司 协议栈选择方法、装置及设备
CN104811431B (zh) 2014-01-29 2018-01-16 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
US9832291B2 (en) * 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US10127391B1 (en) * 2015-12-28 2018-11-13 EMC IP Holding Company LLC Encrypted search indexes
US10284488B1 (en) * 2016-03-30 2019-05-07 Emc Corporation Aggregate socket resource management
US10623972B2 (en) * 2016-08-05 2020-04-14 T-Mobile Usa, Inc. Common network resource allocation for matching data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529407A (zh) * 2005-06-30 2009-09-09 湍溪系统有限责任公司 使用异步通信协议浏览网络资源的方法和装置
CN105992290A (zh) * 2016-04-28 2016-10-05 努比亚技术有限公司 一种用户设备及其网络切换方法

Also Published As

Publication number Publication date
EP3550799A4 (en) 2019-10-23
EP3550799B1 (en) 2023-08-30
US11196677B2 (en) 2021-12-07
EP3550799A1 (en) 2019-10-09
US20190319894A1 (en) 2019-10-17
CN108270813A (zh) 2018-07-10
WO2018121295A1 (zh) 2018-07-05

Similar Documents

Publication Publication Date Title
CN108270813B (zh) 一种异构多协议栈方法、装置及系统
US11134132B2 (en) Accelerated network packet processing
US11422839B2 (en) Network policy implementation with multiple interfaces
US10644941B2 (en) System and method for a software defined protocol network node
US20150245409A1 (en) Carrier aggregation over lte and wifi
US20210144198A1 (en) Technologies for cross-layer task distribution
CN110896373A (zh) 用于动态选择虚拟交换的资源的技术
CN115134245A (zh) 用于云与电信网络之间的网络分组处理的技术
US9565681B2 (en) Low power and fast application service transmission
US10362632B2 (en) Architecture for radio access network and evolved packet core
US10802885B2 (en) Method and apparatus for data processing based on multicore
US11048535B2 (en) Method and apparatus for transmitting data packet based on virtual machine
US20190045374A1 (en) Mobile service chain placement
CN111371694B (zh) 一种分流方法、装置和系统、处理设备和存储介质
Caraguay et al. Framework for optimized multimedia routing over software defined networks
Ara et al. On the use of kernel bypass mechanisms for high-performance inter-container communications
Perino et al. A programmable data plane for heterogeneous NFV platforms
Kundu et al. Hardware acceleration for open radio access networks: A contemporary overview
US20210368352A1 (en) Method and apparatus for controlling packet flow
US20180367453A1 (en) Routers and hybrid packet processing methods thereof
Zeng et al. Middlenet: A high-performance, lightweight, unified nfv and middlebox framework
US20240111599A1 (en) Code execution on a distributed unit
CN117478589A (zh) 基于dpu的业务流量转发方法、装置及系统

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
GR01 Patent grant
GR01 Patent grant