CN117319303A - 流量调度方法、装置、系统、电子设备及存储介质 - Google Patents
流量调度方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117319303A CN117319303A CN202311206303.4A CN202311206303A CN117319303A CN 117319303 A CN117319303 A CN 117319303A CN 202311206303 A CN202311206303 A CN 202311206303A CN 117319303 A CN117319303 A CN 117319303A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- parameter information
- flow
- traffic
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 244000145841 kine Species 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量调度方法,包括:解析来自客户端的流量调度参数信息;将所述流量调度参数信息与前置调度规则进行比对,生成比对结果;响应于所述流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于所述流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;其中,所述第一调度规则包括网络端所在网络设备的预置路径转发规则。本申请还公开了一种流量调度装置、系统、电子设备及可读存储介质。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种流量调度方法、装置、系统、电子设备及存储介质。
背景技术
互联网应用会产生大量的流量,互联网应用产生的数据在网络传播过程中,网络设备会对网络流量进行转发,通常需要根据不同的网络环境和用户需求,基于报文中携带的信息对流量进行调度,将流量分配到不同的链路或服务器。一方面,流量在互联网中转发时,通常会经过地址转换策略,报文中IP地址和TCP端口会发生变化。对于相同网络出口的局域网,所有客户端在经过地址转换策略后,流向互联网的流量源地址,或完全相同,或属于同一网段,调度策略无法根据报文中的IP地址或端口区分局域网中不同客户端。另一方面,单一的或单层级的流量匹配条件输出的调度结果,往往无法满足用户多样化的场景和需求。同时,现有流量调度方法存在较大时延。
因此,需要更为丰富、多样化的流量调度方法,按需输出不同的调度结果,才能满足实际的使用场景。
发明内容
为了解决现有技术的上述技术问题中的至少一个,本申请实施例的目的在于提供一种流量调度方法、装置、系统、电子设备及存储介质。
根据本申请第一方面提供的流量调度方法,该方法包括:
解析来自客户端的流量调度参数信息;
将所述流量调度参数信息与前置调度规则进行比对,生成比对结果;以及
响应于所述流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于所述流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;
其中,所述第一调度规则包括网络端所在网络设备的预置路径转发规则。
根据本申请的一个实施例,客户端发送的所述数据包的TCP报文的选项字段中包含所述流量调度参数信息。
根据本申请的一个实施例,所述将所述流量调度参数信息与前置调度规则进行比对,生成比对结果,包括:
在第一匹配模式下,将所述流量调度参数信息与前置调度规则的对应项逐一比对,所有对应项均相同的情况下,比对结果相同,否则,比对结果不相同。
根据本申请的一个实施例,所述将所述流量调度参数信息与前置调度规则进行比对,生成比对结果,包括;
在第二匹配模式下,将所述流量调度参数信息与前置调度规则的各个对应项中的至少一个对应项比对,至少一个对应项相同的情况下,比对结果相同,否则,比对结果不相同。
根据本申请的一个实施例,所述流量调度参数信息分布于多个不同的TCP报文的选项字段中;
将所述流量调度参数信息与前置调度规则进行比对,生成比对结果,包括:将分布于多个不同的TCP报文的选项字段中的流量调度参数信息与前置调度规则比较,生成比对结果。
根据本申请的一个实施例,所述流量调度参数包括至少一项客户端属性,所述客户端属性包括IP地址、TCP端口、客户端名称、描述信息或应用协议。
根据本申请第二个方面提供的流量调度装置,该装置包括:
解析模块,解析来自客户端的流量调度参数信息;
匹配模块,将所述流量调度参数信息与前置调度规则进行比对,生成比对结果;以及
调度模块,响应于所述流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于所述流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;
其中,所述第一调度规则包括网络端所在网络设备的预置路径转发规则。
根据本申请第三方面提供的流量调度方法,该方法包括:
获取流量调度参数信息;
将所述流量调度参数信息写入TCP报文的选项字段,生成包含所述流量调度参数的TCP报文;以及
将包含所述TCP报文的数据包发送至网络设备,以使得网络设备接收和解析所述TCP报文中的流量调度参数,并基于所述流量调度参数进行流量调度。
根据本申请的一个实施例,所述流量调度参数信息包括:
至少一个客户端属性,所述客户端属性包括IP地址、TCP端口、客户端名称、描述信息或应用协议。
根据本申请的一个实施例,所述将所述流量调度参数信息写入TCP报文的选项字段,包括:
将所述流量调度参数信息按照预定数据结构写入至少一个TCP选项字段,所述预定数据结构包括类型字段、长度字段和数据字段,所述类型字段用于标识所述流量调度参数的类型,所述长度字段用于标识选项字段的长度,所述数据字段用于标识流量调度参数的实际数据。
根据本申请的一个实施例,所述将所述流量调度参数信息写入TCP报文的选项字段,还包括:
将所述流量调度参数信息按照预定数据结构分别写入多个TCP选项字段,各个所述TCP选项字段包含不同类型的所述流量调度参数信息。
根据本申请的一个实施例,将包含所述TCP报文的数据包发送至网络设备,包括:
将所述TCP报文基于预定网络协议模型封装后得到的数据包发送至网络设备。
根据本申请第四方面提供的流量调度装置,该装置包括:
流量调度参数获取模块,用于获取流量调度参数信息;
TCP报文生成模块,用于将所述流量调度参数信息写入TCP报文的选项字段,生成包含所述流量调度参数的TCP报文;以及
发送模块,将包含所述TCP报文的数据包发送至网络设备,以使得网络设备接收和解析所述TCP报文中的流量调度参数,并基于所述流量调度参数进行流量调度。
根据本申请第五方面提供的流量调度系统,该系统包括:
上述第二方面提供的流量调度装置;以及
上述第四方面提供的流量调度装置。
根据本申请第六方面提供的一种电子设备,该电子设备包括处理器和存储器,所述存储器中存储有可执行程序,所述存储器执行所述可执行程序以进行如上述第一方面提供的任意一项所述的流量调度方法,或如上述第三方面提供的任意一项所述的流量调度的方法。
根据本申请第七方面提供的存储介质,所述存储介质承载有一个或者多个计算机程序,所述一个或者多个计算机程序被处理器执行时实现上述第一方面任一项所述的流量调度方法,或上述第三方面任意一项所述的流量调度方法。
本申请提供的流量调度方法,通过解析来自客户端的流量调度参数信息,将流量调度参数信息与前置调度规则进行比对,在流量调度参数信息与前置调度规则的比对结果相同的情况下,基于前置调度规则对应的调度策略转发数据包。本申请提供的流量调度方法,一方面,来自客户端的流量调度参数不会因为数据报文在网络转发过程中因地址转换而变化,可避免网络设备在接收到客户端数据报文并解析后无法区分客户端的问题,另一方面,流量调度参数可包含更多有关客户端属性信息,解决了网络设备在现有的流量调度过程中因调度参数信息单一而引起的无法精准进行流量调度的问题。
附图说明
图1为本申请实施例的流量调度系统架构图示意图;
图2为本申请一个实施例的流量调度方法流程图;
图3为本申请实施例的第一流量调度装置结构示意图;
图4为本申请又一个实施例的流量调度方法流程图;
图5为本申请实施例的第二流量调度装置结构示意图。
附图标记:
1000、第一流量调度装置;1001、解析模块;1002匹配模块;1003、调度模块;2000、第二流量调度装置;2001、流量调度参数获取模块;2002、TCP报文生成模块;2003、发送模块;1100、总线;1200、处理器;1300、存储器;1400、其他电路。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
图1示出了可以应用本申请的流量调度方法的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括客户端110、网络设备120、服务器130。系统架构100还可以包括网络140或蓝牙,蓝牙和网络140均是用于在客户端110、网络设备120与服务器130之间提供通信链路的介质。其中,网络140可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。应该理解,图中客户端110、网络设备120或服务器130的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端110、网络设备120、服务器130和网络140。
需要说明的是,客户端110可以是PC、手机以及其他任何可联网的电子设备,或PC、手机以及其他任何可联网的电子设备上部署的应用。网络设备120可以是路由器、交换机、中继器以及其他任何网络中转设备。服务器130可以是云端服务器,也可以是本地服务器。服务器130可以是硬件,也可以是软件。当服务器130为硬件时,可以实现成多个服务器130组成的分布式服务器集群,也可以实现成单个服务器。当服务器130为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
图2示出了根据本申请的流量调度方法的一个实施方式的流程示意图。本申请实施方式所提供的第一流量调度方法可以通过网络设备120的处理器执行。如图2所示,第一流量调度方法可以包括以下步骤。
S101、解析来自客户端的流量调度参数信息。示例性地,来自客户端110的数据包中包含流量调度参数,经网络设备120解析后,即可得到流量调度参数信息。
S102、将流量调度参数信息与前置调度规则进行比对,生成比对结果。示例性地,经上述步骤S101处理后,得到需要的流量调度参数信息。前置调度规则预设于网络设备120中,可根据流量调度的实际需求情况进行前置调度规则的配置。将流量调度参数信息与前置调度规则比对后,获得两者的比对结果。
S103、响应于流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;其中,第一调度规则包括网络端所在网络设备的预置路径转发规则。
本申请通过对来自客户端110的数据包进行解析以获得流量调度参数,并将流量调度参数与前置调度规则进行比较,在流量调度参数与前置调度规则匹配的情况下,通过前置调度规则对应的调度策略转发来自客户端110的数据包,在流量调度参数与前置调度规则不匹配的情况下,通过网络设备预设策略转发来自客户端110的数据包。本申请可基于来自客户端110的数据包自带的流量调度参数信息,实现了对来自客户端110的数据包的流量调度。
根据本申请的一个实施方式的第一流量调度方法,客户端发送的数据包的TCP报文的选项字段中包含流量调度参数信息。
为了便于理解,结合图1的系统架构进行说说明。网络设备120解析来自客户端110的数据包包含TCP报文的选项字段,该TCP报文的选项字段中包含了上述流量调度参数信息。现有的流量调度实现方法,在接收到来自客户端110的数据包(本申请的数据包和数据报文所指相同)后,通常通过解析数据报文中网络层的IP报文以获得IP,或解析传输层TCP报文以获得端口,即通过逐层解析获得IP或端口,再通过解析得到的IP或端口进行流量匹配。为了避免因报文在转发过程中由于地址转换引起的网络层中的IP或传输层的端口变化,进而导致网络上设备120在接收到客户端110的数据报文并解析后,无法区分客户端110的问题,本实施方式通过对来自客户端110的数据报文的TCP选项字段进行解析,以获取TCP选项字段中所包含流量调度参数信息,该流量调度参数信息中包含了客户端110的信息。
根据本申请的一个实施方式的第一流量调度方法,流量调度参数包括至少一项客户端属性,客户端属性可以为IP地址、TCP端口、MAC地址、客户端名称、描述信息或应用协议。需要说明的是,客户端属性包括但不限于上述列举的类型。可见,本申请除了将IP地址和端口作为流量调度参数外,还可以基于更多的客户端110的属性获取流量调度参数信息,本申请解决了现有的流量调度过程中因调度参数信息单一引起的无法精准进行流量调度的问题。
根据本申请的一个实施方式的第一流量调度方法,将流量调度参数信息与前置调度规则进行比对,生成比对结果,包括:在第一匹配模式下,将流量调度参数信息与前置调度规则的对应项逐一比对,所有对应项均相同的情况下,比对结果相同,否则,比对结果不相同。
示例性地,第一匹配模式可以为“与匹配”模式,与该匹配模式字面意思相对应地,在与匹配模式下,匹配内容列表中所有条目之间做与运算,即流量调度参数信息与前置调度规则的对应项逐一比较,所有对应项均相同的情况下,比对结果相同,否则,比对结果不相同。预配置(前置调度规则)的匹配项可以为一条或者多条,当预设的匹配模式为“与匹配”时,预配置(前置调度规则)的匹配项需全部被命中,预配置(前置调度规则)的匹配项均被命中后,数据报文中携带的其余待匹配项不再做考虑。
根据本申请的一个实施方式的第一流量调度方法,将流量调度参数信息与前置调度规则进行比对,生成比对结果,包括;在第二匹配模式下,将流量调度参数信息与前置调度规则的各个对应项中的至少一个对应项比对,至少一个对应项相同的情况下,比对结果相同,否则,比对结果不相同。
示例性地,第二匹配模式可以为“或匹配”模式,与该匹配模式字面意思相对应地,在该匹配模式下,匹配内容列表中所有条目之间做或运算,即流量调度参数信息与前置调度规则的对应项中至少一个对应项比较,至少一个对应项相同的情况下,比对结果相同,否则,比对结果不相同。预配置(前置调度规则)的匹配项可以为一条或者多条,当预设的匹配模式为“或匹配”时,数据报文中携带的待匹配项(流量调度参数信息)只需一项命中预配置的任一匹配项即可。
为了便于理解,下面结合负载均衡的应用场景对第一流量调度方法的的步骤S102进行说明。
为了将来客户端110的流量通过负载均衡系统分配至不同的服务器,负载均衡系统启动,可根据真实服务器的IP地址及提供的服务。在负载均衡系统中配置9个服务器成员,其中3个成员提供HTTP 80服务,3个成员提供HTTP 8080服务,3个成员提供HTTP 9090服务。配置3个服务池,服务池1中包含提供HTTP 80服务的3个成员,服务池2中包含提供HTTP8080服务的3个成员,服务池3中包含提供HTTP 9090服务的3个成员。
配置2条前置调度匹配规则,规则1和规则2均采用TCP选项字段作为匹配条件,匹配模式为“与匹配”,具体匹配内容及调度结果如下:配置服务器负载均衡调度策略,引用2条前置调度规则,第一调度规则为默认调度规则,其对应的调度策略的调度结果为服务池1。
在网络设备预先配置两条前置调度匹配规则,规则1和规则2,两个规则均采用TCP选项字段作为匹配条件,前置调度匹配规则1和2的匹配内容中可配置为来自客户端的TCP选项字段相关内容,类型即为kind值,“包含”可配置为“是”或“否”,可理解为是否取反,属性即value值范围,同时根据实际需求可限制最大添加条目数,如4、8、16等。
①规则1
1“类型”为“252”,“包含”为“是”,“属性”为“192.168.1.0/24”
2“类型”为“253”,“包含”为“是”,“属性”为“8080”
3“类型”为“254”,“包含”为“是”,“属性”为“HTTP”
与规则1对应的调度策略的调度结果为:服务池2
②规则2
1“类型”为“252”,“包含”为“是”,“属性”为“192.168.1.0/24”
2“类型”为“253”,“包含”为“是”,“属性”为“9090”
3“类型”为“254”,“包含”为“是”,“属性”为“HTTP”
与规则2对应的调度策略的调度结果为:服务池3
根据本申请的一个实施方式的第一流量调度方法,流量调度参数信息可分布于多个不同的TCP报文的选项字段中;将流量调度参数信息与前置调度规则进行比对,生成比对结果,包括:将分布于多个不同的TCP报文的选项字段中的流量调度参数信息与前置调度规则比较,生成比对结果。
可选的,在步骤S101之前,还包括步骤S100、网络设备120获取来自客户端的包含TCP报文的数据包,其中,TCP报文的选项字段包括流量调度参数信息。具体地,以负载均衡应用场景为例,以负载均衡服务器作为流量调度的网络设备120,假设负载均衡服务器对外提供服务地址为192.168.1.254、协议为HTTP和端口为80,负载均衡系统底层开启对192.168.1.254:80的监听,等待客户端110的请求连接,以获取来自客户端110的数据包。
根据本申请的一个实施方式的第一流量调度方法,该方法包括:响应于流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包。
为例便于理解,继续结合上述步骤S102中的前置调度规则和匹配模式进行说明。具体匹配内容及调度结果如下:即在“与匹配”模式下,如果流量调度参数信息与规则1匹配时,则将流量调度至服务池2;如果流量调度参数信息与规则2匹配时,则将流量调度至服务池3;否则,均不匹配的情况下,通过第一调度规则转发数据包,第一调度规则可例如包括网络设备120的预置路径转发规则,具体地,可以为步骤S102中的默认调度规则,即调度结果为服务池1。
本申请进行基于TCP选项字段的前置调度的匹配流程后,如果未命中前置调度规则,则会按照调度策略默认的调度结果转发流量,如果命中了前置调度规则,则可按照前置调度设定的调度结果转发流量,可实现多层级的流量调度方案,将流量按照需求分配到不同链路或服务器上。
图3是根据本申请的一个实施方式的第一流量调度装置结构示意图。如图3所示,第一流量调度装置1000包括解析模块1001、匹配模块1002和调度模块1003。解析模块1001用于解析来自客户端110的流量调度参数信息,匹配模块1002用于将流量调度参数信息与前置调度规则进行比对,生成比对结果,调度模块1003响应于流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;其中,第一调度规则包括网络端所在网络设备的预置路径转发规则。
需要说明的是,本实施方式提供的第一流量调度装置1000的各个模块的实施细节,对应于本申请图2实施方式的流量调度方法,此处不再赘述。
图4示出了根据本申请的流量调度方法的一个实施方式的流程示意图。本申请实施方式所提供的第二流量调度方法一般由客户端110的处理器执行。如图4所示,第二流量调度方法可以包括以下步骤。
S201、获取流量调度参数信息。示例性地,为了使得客户端110发送的数据报文在网络传播过程中,使得网络设备120能够对其实现流量调度,通常客户端110的数据在被发送之前,可基于OSI模型将客户端的IP地址和端口封装在数据报文中,以便使得网络设备节点基于数据报文中包含的IP地址和端口这些基本信息进行调度。
S202、将流量调度参数信息写入TCP报文的选项字段,生成包含流量调度参数的TCP报文。本申请不同于现有技术的将流量调度参数如IP地址封装在网络层,而是将流量调度参数信息写入TCP报文的选项字段,保证流量调度参数信息在网络转发过程中不会因地址转换而变化。
S203、将包含TCP报文的数据包发送至网络设备,以使得网络设备接收和解析TCP报文中的流量调度参数,并基于流量调度参数进行流量调度。
本申请通过在客户端110获得流量调度参数,并将流量调度参数信息写入TCP选项字段,使得客户端发出的流量在网络传播过程中,即使经历地址转换后,网络设备仍然可以通过解析从TCP选项字段中获取所需的流量调度参数因此,本申请解决了因地址变换导致的网络设备无法获取流量调度参数信息,进而无法进行流量调度的问题。另外,本申请的流量调度参数信息可以包含除了IP地址和端口外的更丰富的客户端属性信息,可以根据更多的流量调度参数进行流量调度,因此,本申请还解决了现有的流量调度过程中因调度参数信息单一引起的无法精准进行流量调度的问题。
根据本申请的一个实施方式的第二流量方法,可获取与客户端110相关的任何信息作为流量调度参数信息,可包括至少一个客户端属性,客户端属性包括IP地址、TCP端口、MAC地址、客户端名称、描述信息或应用协议。需要说明的是,上述仅对客户端属性做出示例性说明,客户端110的属性包括但不限于以上列举的类型,例如,当流量调度需要根据客户端110的版本号进行调度时,客户端属性还可以包括客户端版本信息。本申请除了将IP地址和端口作为流量调度参数外,还可以基于更多的客户端110的属性获取流量调度参数信息,本申请解决了现有的流量调度过程中因调度参数信息单一引起的无法精准进行流量调度的问题。
根据本申请的一个实施方式的第二流量调度方法,将流量调度参数信息写入TCP报文的选项字段,包括:将流量调度参数信息按照预定数据结构写入至少一个TCP选项字段,预定数据结构包括类型字段、长度字段和数据字段,类型字段用于标识流量调度参数的类型,长度字段用于标识选项字段的长度,数据字段用于标识流量调度参数的实际数据。
为了便于理解上述预定数据结构,结合以下示例对TCP选项字段进行说明,TCP选项字段的一般数据结构如下:
Kind(1字节) | Length(1字节) | Value(n字节) |
其中,上述数据结构中的各个字段的含义如下:Kind值表示类型字段,用户可自行定义,但为减少配置任务量,同一团体的所有用户可采用统一的kind值与特性信息的对应关系,同时应注意,该kind值不可与常见的TCP选项字段使用的Kind值相同;Length值表示长度字段,根据TCP选项字段的长度而定;Value值表示数据字段,用于承载某一特性信息。示例性的,可将客户端属性中一项写入TCP选项字段,例如将IP地址、端口、MAC地址、应用协议类型、客户端名称或描述信息中的任意一项写入TCP选项字段。
根据本申请的一个实施方式的第二流量调度方法,将流量调度参数信息写入TCP报文的选项字段,还包括:述流量调度参数信息按照预定数据结构分别写入多个TCP选项字段,各个TCP选项字段包含不同类型的所述流量调度参数信息。一个TCP报文中可自定义多个TCP选项字段(总长度不可超过40字节),因此可以携带多个特性信息。现有流量调度依赖的属性单一,例如仅依靠客户端发送数据包中的IP地址或端口进行流量调度,本申请充分利用客户端多属性的特点,为了使得网络设备可以更好地根据客户端属性进行流量调度。
示例性地,继续结合负载均衡应用场景,可将多个客户端属性如IP地址、端口及应用协议类型写入TCP选项字段,作为流量调度参数信息。具体地,假设IP地址为192.168.1.1的客户端110使用浏览器访问服务器负载均衡策略对外提供服务地址和端口,并且在URL查询参数中设置预期访问的真实服务器端口,URL格式如http://192.168.1.254:80?port=8080。客户端可通过代理软件或其他方式,在网卡发送三次握手报文之前,捕获URL内容,并提取需要的信息,在构造SYN报文时写入TCP选项字段中,格式如下:
TCP Option—Protocol:HTTP
Kind:Protocol(254)
Length:6
Value:HTTP
TCP Option—Address:192.168.1.1
Kind:Address(252)
Length:6
Value:192.168.1.1
TCP Option—Port:8080
Kind:Port(253)
Length:4
Value:8080
其中,上述kind值为Protocol或254时,表示类型为应用协议,kind值为Address或252时,表示类型为IP地址,kind值为Port或253时,表示类型为端口。上述各个类型对应的长度分别为6、6、4字节,上述各个类型对应的实际数值为HTTP的协议、192.168.1.1的IP地址及8080端口,以上信息作为流量调度参数信息备客户端110写入TCP选项字段,供网络设备120在接收到上述数据报文并解析后用于流量调度时使用。
本申请通过将包括IP、端口等信息的流量调度参数写入TCP选项字段,由于写入TCP选项字段的流量调度参数信息在网络传输过程中及地址转换过程中不受影响,因此,可以有效避免因报文在转发过程中由于地址转换引起的网络层中的IP或传输层的端口变化,进而导致接收端在接收到客户端110的数据报文并解析后,无法区分客户端的问题。对于相同网络出口的局域网,所有客户端在经过地址转换策略后,流向互联网的流量源地址,即使完全相同,或属于同一网段,网络设备仍然可以根据流量调度参数信息中的IP地址区分局域网中不同客户端。
根据本申请的一个实施方式的第二流量调度方法,将包含TCP报文的数据包发送至网络设备,包括:将所述TCP报文基于预定网络协议模型封装后得到的数据包发送至网络设备。
示例性,经上述步骤S202后,可以在TCP选项字段包括客户端110属性信息,该客户端属性信息将作为流量调度参数信息。为了使得包换流量调度参数信息的数据报文在网络中传输和传播,需要将TCP报文基于预定网络协议模型封装后得到的数据包发送至网络设备。预定网络协议模型可以包括OSI模型,OSI模型在封装数据时实现从应用层到物理层逐层封装。网络设备可以包括路由器、交换机、中继器等任何网络转发设备。
本申请通过在客户端对TCP的选项字段写入客户端属性信息并进行数据报文的封装和转发,可以实现以下技术效果:第一、本申请利用TCP选项字段可被自由定义内容的特性,极大的突破了OSI模型中传输层及以下可用于标识流量的特征字段短缺的壁垒;第二、本申请中的客户端生成数据报文的TCP选项字段可携带客户端IP地址或端口,但不仅限于携带客户端IP地址或端口,从而降低了对报文中现有字段信息的依赖性;第三、本申请写入TCP选项字段的流量调度参数信息在网络转发过程中不会变化,可使得网络设备在接收到来自客户端的流量后,有效区分不同客户端,实现细化可控的流量调度。
图5是根据本申请的一个实施方式的第二流量调度装置结构示意图。如图5所示,该装置2000包括流量调度参数获取模块2001、TCP报文生成模块2002和发送模块2003。流量调度参数获取模块2001用于获取流量调度参数信息,TCP报文生成模块2002用于将流量调度参数信息写入TCP报文的选项字段,生成包含流量调度参数的TCP报文,发送模块2003用于将包含TCP报文的数据包发送至网络设备,以使得网络设备接收和解析TCP报文中的流量调度参数,并基于流量调度参数进行流量调度。
需要说明的是,本实施方式提供的第二流量调度装置2000的各个模块的实施细节,对应于本申请图4实施方式的流量调度方法,此处不再赘述。
根据本申请的一个实施例,还提供一种流量调度系统,该系统包括本申请上述提供的第一流量调度装置1000和第二流量调度装置2000。示例性地,第一流量调度装置1000和第二流量调度装置2000可分别部署于本申请图1的网络设备120和客户端110上,通过网络140连接,将来自客户端110的流量调度至需要的服务器130上,以实现本申请的流量调度的方法。
根据本申请的一个实施例,还提供一种电子设备,该电子设备包括处理器和存储器,存储器中存储有可执行程序,存储器执行可执行程序以进行上述图2实施例的任一第一流量调度方法,或上述图4实施例的任一第二流量调度的方法。
根据本申请提供的存储介质,存储介质承载有一个或者多个计算机程序,一个或者多个计算机程序被处理器执行时实现上述图2实施例的任一第一流量调度方法,或上述图4实施例的任一第二流量调度的方法。
图3和图5示出了采用处理系统的硬件实现方式的两个不同的流量调度装置示例图。两个不同的流量调度装置分别可以包括执行上述流程图中各个或几个步骤的相应模块。因此,可以由相应模块执行上述流程图中的每个步骤或几个步骤,并且该装置可以包括这些模块中的一个或多个模块。模块可以是专门被配置为执行相应步骤的一个或多个硬件模块、或者由被配置为执行相应步骤的处理器来实现、或者存储在计算机可读介质内用于由处理器来实现、或者通过某种组合来实现。
该硬件结构可以利用总线架构来实现。总线架构可以包括任何数量的互连总线和桥接器,这取决于硬件的特定应用和总体设计约束。总线1100将包括一个或多个处理器1200、存储器1300和/或硬件模块的各种电路连接到一起。总线1100还可以将诸如外围设备、电压调节器、功率管理电路、外部天线等的各种其他电路1400连接。
总线1100可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component)总线或扩展工业标准体系结构(EISA,Extended Industry Standard Component)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条连接线表示,但并不表示仅有一根总线或一种类型的总线。
上述处理器1200可以是通用处理器、数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。通用处理器可以是微处理器或者任何常规的处理器等。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施方式所属技术领域的技术人员所理解。处理器执行上文所描述的各个方法和处理。例如,本申请中的方法实施方式可以被实现为软件程序,其被有形地包含于机器可读介质,例如存储器。在一些实施方式中,软件程序的部分或者全部可以经由存储器和/或通信接口而被载入和/或安装。当软件程序加载到存储器并由处理器执行时,可以执行上文描述的方法中的一个或多个步骤。备选地,在其他实施方式中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法之一。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本说明书而言,“可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在存储器中。
应当理解,本申请的各部分可以用硬件、软件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施方式方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种可读存储介质中,该程序在执行时,包括方法实施方式的步骤之一或其组合。
此外,在本申请各个实施方式中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施方式/方式”、“一些实施方式/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方式/方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式/方式或示例中。在本说明书中,对上述术语的示意性表述不必须的是相同的实施方式/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式/方式或示例以及不同实施方式/方式或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本申请,而并非是对本申请的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本申请的范围内。
Claims (16)
1.一种流量调度方法,其特征在于,包括:
解析来自客户端的流量调度参数信息;
将所述流量调度参数信息与前置调度规则进行比对,生成比对结果;以及
响应于所述流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于所述流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;
其中,所述第一调度规则包括网络端所在网络设备的预置路径转发规则。
2.根据权利要求1所述的流量调度方法,其特征在于,客户端发送的所述数据包的TCP报文的选项字段中包含所述流量调度参数信息。
3.根据权利要求1所述的流量调度方法,其特征在于,所述将所述流量调度参数信息与前置调度规则进行比对,生成比对结果,包括:
在第一匹配模式下,将所述流量调度参数信息与前置调度规则的对应项逐一比对,所有对应项均相同的情况下,比对结果相同,否则,比对结果不相同。
4.根据权利要求1所述的流量调度方法,其特征在于,所述将所述流量调度参数信息与前置调度规则进行比对,生成比对结果,包括;
在第二匹配模式下,将所述流量调度参数信息与前置调度规则的各个对应项中的至少一个对应项比对,至少一个对应项相同的情况下,比对结果相同,否则,比对结果不相同。
5.根据权利要求2所述的流量调度方法,其特征在于,所述流量调度参数信息分布于多个不同的TCP报文的选项字段中;
将所述流量调度参数信息与前置调度规则进行比对,生成比对结果,包括:将分布于多个不同的TCP报文的选项字段中的流量调度参数信息与前置调度规则比较,生成比对结果。
6.根据权利要求1所述的流量调度方法,其特征在于,所述流量调度参数包括至少一项客户端属性,所述客户端属性包括IP地址、TCP端口、客户端名称、描述信息或应用协议。
7.一种流量调度装置,其特征在于,包括:
解析模块,解析来自客户端的流量调度参数信息;
匹配模块,将所述流量调度参数信息与前置调度规则进行比对,生成比对结果;以及
调度模块,响应于所述流量调度参数信息与前置调度规则的比对结果相同,基于前置调度规则对应的调度策略转发数据包,或响应于所述流量调度参数信息与前置调度规则的比对结果不相同,则通过第一调度规则转发数据包;
其中,所述第一调度规则包括网络端所在网络设备的预置路径转发规则。
8.一种流量调度方法,其特征在于,包括:
获取流量调度参数信息;
将所述流量调度参数信息写入TCP报文的选项字段,生成包含所述流量调度参数的TCP报文;以及
将包含所述TCP报文的数据包发送至网络设备,以使得网络设备接收和解析所述TCP报文中的流量调度参数,并基于所述流量调度参数进行流量调度。
9.根据权利要求8所述的流量调度方法,其特征在于,所述流量调度参数信息包括:
至少一个客户端属性,所述客户端属性包括IP地址、TCP端口、客户端名称、描述信息或应用协议。
10.根据权利要求8所述的流量调度方法,其特征在于,所述将所述流量调度参数信息写入TCP报文的选项字段,包括:
将所述流量调度参数信息按照预定数据结构写入至少一个TCP选项字段,所述预定数据结构包括类型字段、长度字段和数据字段,所述类型字段用于标识所述流量调度参数的类型,所述长度字段用于标识选项字段的长度,所述数据字段用于标识流量调度参数的实际数据。
11.根据权利要求8所述的流量调度方法,其特征在于,所述将所述流量调度参数信息写入TCP报文的选项字段,还包括:
将所述流量调度参数信息按照预定数据结构分别写入多个TCP选项字段,各个所述TCP选项字段包含不同类型的所述流量调度参数信息。
12.根据权利要求8所述的流量调度方法,其特征在于,将包含所述TCP报文的数据包发送至网络设备,包括:
将所述TCP报文基于预定网络协议模型封装后得到的数据包发送至网络设备。
13.一种流量调度装置,其特征在于,包括:
流量调度参数获取模块,用于获取流量调度参数信息;
TCP报文生成模块,用于将所述流量调度参数信息写入TCP报文的选项字段,生成包含所述流量调度参数的TCP报文;以及
发送模块,将包含所述TCP报文的数据包发送至网络设备,以使得网络设备接收和解析所述TCP报文中的流量调度参数,并基于所述流量调度参数进行流量调度。
14.一种流量调度系统,其特征在于,包括:
权利要求7所述的流量调度装置;以及
权利要求13所述的流量调度装置。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有可执行程序,所述存储器执行所述可执行程序以进行如权利要求1至6任意一项所述的流量调度方法,或如权利要求7至12任意一项所述的流量调度的方法。
16.一种存储介质,其特征在于,所述存储介质承载有一个或者多个计算机程序,所述一个或者多个计算机程序被处理器执行时实现权利要求1至6中任一项所述的流量调度方法,或如权利要求7至12任意一项所述的流量调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311206303.4A CN117319303A (zh) | 2023-09-18 | 2023-09-18 | 流量调度方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311206303.4A CN117319303A (zh) | 2023-09-18 | 2023-09-18 | 流量调度方法、装置、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117319303A true CN117319303A (zh) | 2023-12-29 |
Family
ID=89259489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311206303.4A Pending CN117319303A (zh) | 2023-09-18 | 2023-09-18 | 流量调度方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117319303A (zh) |
-
2023
- 2023-09-18 CN CN202311206303.4A patent/CN117319303A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391500B (zh) | 一种配置管理方法、装置及设备 | |
US20030051045A1 (en) | Methods and apparatus for reducing frame overhead on local area networks | |
EP3145131A1 (en) | Data packet processing method, service node and deliver node | |
CN108353022B (zh) | 一种数据报文的处理方法、装置及系统 | |
CN111181873B (zh) | 数据发送方法、装置、存储介质和电子设备 | |
EP3179687A1 (en) | Network flow information statistics method and apparatus | |
CN108429739A (zh) | 一种识别蜜罐的方法、系统及终端设备 | |
US11134129B2 (en) | System for determining whether to forward packet based on bit string within the packet | |
CN113810349B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN112910793A (zh) | 用于七层负载均衡中连接复用的方法和负载均衡器 | |
CN112822646A (zh) | 消息处理方法和装置、电子设备、计算机可读存储介质 | |
US20150067066A1 (en) | Provisioning Communication Services using Proxy Server in a Cloud | |
CN117376339A (zh) | 基于ota的车辆ecu升级方法、装置、设备及介质 | |
CN108810936A (zh) | 一种LoRa终端的配置方法及装置 | |
CN114071544B (zh) | 网络测试方法、装置和电子设备 | |
CN108809549B (zh) | 一种传输数据的方法及设备 | |
CN113377507A (zh) | 任务处理方法、装置、设备以及计算机可读存储介质 | |
EP3503484A1 (en) | Message transmission method, device and network system | |
CN112714159A (zh) | 消息转发方法和装置、存储介质及电子装置 | |
CN109639555B (zh) | 链路层报文生成方法、链路层报文生成装置及终端设备 | |
CN117319303A (zh) | 流量调度方法、装置、系统、电子设备及存储介质 | |
CN105263127B (zh) | 短信通讯方法和装置 | |
US10938772B2 (en) | Access device for analysis of physical links and method thereof | |
CN114745456A (zh) | 报文处理方法、装置及网络地址转换设备 | |
KR102113814B1 (ko) | CoAP 압축 통신 방법 |
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 |