CN114500633B - 数据转发方法、相关装置、程序产品及数据传输*** - Google Patents
数据转发方法、相关装置、程序产品及数据传输*** Download PDFInfo
- Publication number
- CN114500633B CN114500633B CN202210097991.4A CN202210097991A CN114500633B CN 114500633 B CN114500633 B CN 114500633B CN 202210097991 A CN202210097991 A CN 202210097991A CN 114500633 B CN114500633 B CN 114500633B
- Authority
- CN
- China
- Prior art keywords
- session
- data packet
- parameter
- information
- preset
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000005540 biological transmission Effects 0.000 title claims abstract description 12
- 238000004891 communication Methods 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 22
- 238000000605 extraction Methods 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 4
- 239000004973 liquid crystal related substance Substances 0.000 claims description 3
- 238000004590 computer program Methods 0.000 abstract description 14
- 230000000875 corresponding effect Effects 0.000 description 43
- 230000005012 migration Effects 0.000 description 17
- 238000013508 migration Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1027—Persistence of sessions during load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种数据转发方法、装置、负载均衡设备、计算机可读存储介质、计算机程序产品及数据传输***,涉及云服务、负载均衡、媒体云技术领域。该方法包括:获取客户端发出的数据包,并从数据包中提取实际会话参数;响应于实际会话参数为未记录过的会话参数,从构成数据包的包头的预设字段地址中读取信息,与预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;响应于从预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数;将数据包转发给与目标服务器参数对应的目标服务器。该方法可以降低实现成本、提升转发效率。
Description
技术领域
本公开涉及数据处理技术领域,具体涉及云服务、负载均衡、媒体云技术领域,尤其涉及一种数据转发方法、装置、负载均衡设备、计算机可读存储介质、计算机程序产品,以及数据传输***。
背景技术
随着通信技术快速发展和智能化设备快速普及,用户经常会持有相同的智能设备频繁的在多个网络环境之间进行跨越或切换。
传统基于TCP(Transmission Control Protocol,传输控制协议)的数据传输方式,由于其面向连接的特性,相同客户端在切换网络环境(例如从屋中的WIFI场景切换至屋外的4G或5G数据连接场景)时,会因网络环境的切换更换不同的IP地址,进而导致基于原IP地址构建的与服务端的会话断开,并基于新IP地址重新创建与相同服务端的新会话。
而这一过程反映在使用客户端的用户侧,就会表现为需要用户重新进行身份验证。
如何避免在旧会话断开、新会话建立时进行的身份验证,是本领域技术人员亟待解决的问题。
发明内容
本公开实施例提出了一种数据转发方法、装置、负载均衡设备、计算机可读存储介质、计算机程序产品及数据传输***。
第一方面,本公开实施例提出了一种数据转发方法,包括:获取客户端发出的数据包,并从数据包中提取实际会话参数;响应于实际会话参数为未记录过的会话参数,从构成数据包的包头的预设字段地址中读取信息;其中,与预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;响应于从预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数;将数据包转发给与目标服务器参数对应的目标服务器。
第二方面,本公开实施例提出了一种数据转发装置,包括:实际会话参数提取单元,被配置成获取客户端发出的数据包,并从数据包中提取实际会话参数;信息提取单元,被配置成响应于实际会话参数为未记录过的会话参数,从构成数据包的包头的预设字段地址中读取信息;其中,与预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;目标服务器参数确定单元,被配置成响应于从预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数;数据包转发单元,被配置成将数据包转发给与目标服务器参数对应的目标服务器。
第三方面,本公开实施例提供了一种负载均衡设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的数据转发方法。
第四方面,本公开实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的数据转发方法。
第五方面,本公开实施例提供了一种包括计算机程序的计算机程序产品,该计算机程序在被处理器执行时能够实现如第一方面中任一实现方式描述的数据转发方法。
第六方面,本公开实施例提供了一种数据传输***,包括:如第三方面所描述的负载均衡设备;向负载均衡设备发送数据包的客户端;接收负载均衡设备传入数据包的服务器。
基于QUIC(Quick UDP Internet Connections,快速UDP网络连接,UDP的英文全称为User Datagram Protocol、中文名为:用户数据包协议)协议提供的连接迁移思想,本公开实施例由每个负载均衡设备在确定自己未记录有该数据包的实际会话参数时,通过在构成数据包的包头的预设字段地址中提取字段信息,从而根据能否提取到有效内容确定其是否支持连接迁移,以及在支持连接迁移的情况下根据提取到的预先写入的有效内容确定目标服务器参数,进而在引入负载均衡机制的情况下也能够保证数据包被准确转发至原目标服务器,且由于无需额外设置记录全局会话信息和为各负载均衡设备提供全局搜索的中间设备,不仅降低了实现成本也提升了转发效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开可以应用于其中的示例性***架构;
图2为本公开实施例提供的一种数据转发方法的流程图;
图3为本公开实施例提供的另一种数据转发方法的流程图;
图4为本公开实施例提供的一种基于动态保活时长的超时会话参数处理方法的流程图;
图5为本公开实施例提供的一种数据转发装置的结构框图;
图6为本公开实施例提供的一种适用于执行数据转发方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
图1示出了可以应用本公开的数据转发方法、装置、负载均衡设备、计算机可读存储介质、计算机程序产品的实施例的示例性***架构—数据传输***100。
如图1所示,数据传输***100可以包括客户端101、负载均衡集群102、服务器集群103。其中,负载均衡集群102包括多台负载均衡设备,例如第一负载均衡设备1021、第二负载均衡设备1022、第三负载均衡设备1023等;服务器集群103包括多台服务器,例如第一服务器1031、第二服务器1032、第三服务器1033。客户端101、负载均衡集群102、服务器集群103之间通常通过网络实现数据交互,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用客户端101经由负载均衡集群102对数据包的转发,最终与服务器集群103中的目标服务器进行数据交换。客户端101、负载均衡设备和服务器上可以安装应用来实现包括上述目的在内的各种目的,例如在线通讯类应用、数据包转发类应用、负载均衡类应用等。
客户端101、构成负载均衡集群102的各负载均衡设备、构成服务器集群103的各服务器可以是硬件,也可以是软件。当客户端101为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、智能可穿戴设备、便携式计算机和台式计算机等等;当客户端101为软件时,可以安装在上述所列举的电子设备中,其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。当负载均衡设备和服务器为硬件时,可以实现成多个具有较强运算能力的运算设备;当负载均衡设备和服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
负载均衡设备102中的各负载均衡设备通过内置的各种应用可以提供各种服务,以可以为客户端101发出的数据包提供转发服务的数据包转发类应用为例,负载均衡设备在运行该数据包转发类应用时可实现如下效果:首先,通过网络接收客户端101发出的数据包,并从数据包中提取实际会话参数;然后,在确认该实际会话参数为自己之前未记录过的会话参数时,从构成数据包的包头的预设字段地址中读取信息,与预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;接下来,在确认从预设字段地址中读取到的信息不为空时,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数;最终,将数据包转发给与目标服务器参数对应的目标服务器(即服务器集群103中的某个服务器)。
应该理解,图1中的客户端、负载均衡设备和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端、负载均衡设备和服务器。
请参考图2,图2为本公开实施例提供的一种数据转发方法的流程图,其中流程200包括以下步骤:
步骤201:获取客户端发出的数据包,并从数据包中提取实际会话参数;
本步骤旨在由数据转发方法的执行主体(例如图1所示的负载均衡集群102中的任意负载均衡设备)从接收到的客户端发出的数据包中提取实际会话参数。
其中,该会话参数是指用于明确当前会话区别于其它参数的信息,而会话是指一个客户端为与一个服务端进行数据交互所构建的“载体”,该会话参数可由从数据包提取出的五元组充当,该五元组为:(源地址:源端口:协议:目的地址:目的端口),即五元组中通过原端和目的端的地址和端口号,使得所形成的五元组能够唯一确定一个会话,当然,其它能够实现类似效果的数据包中的信息,也可以作为该实际会话参数。
本步骤中描述的实际会话参数是通过在普适性概念的“会话参数”前增加“实际”的前缀,所得到的专指该数据包的会话参数,以明确所描述的对象和便于后续引用时方便理解。
步骤202:响应于实际会话参数为未记录过的会话参数,从构成数据包的包头的预设字段地址中读取信息;
在步骤201的基础上,本步骤旨在由上述执行主体在确认该实际会话参数为自身未记录过的会话参数时,尝试从数据包的包头的预设字段地址中读取信息,以期根据信息读取结果确定后续处理方式。特殊的,之前记录过,但又再次被删除或触发遗忘机制被遗忘,在本公开中也属于未记录过的情况。
需要说明的是,通常情况下,每个负载均衡设备在自己首次转发过一个会话的数据至服务器后,会将表示该会话的会话参数记录下来,以使后续相同会话的其它数据包可以基于已经记录过的历史转发对象实现快速转发。若上述执行主体确认该实际会话参数为自身未记录过的会话参数,则意味着该数据包要么是客户端首次与服务端建立连接的数据包,要么就是因为客户端因切换网络环境导致被负载均衡机制分配给了负责转发新网络环境下客户端发来的数据包的新负载均衡设备,客户端之前在旧网络环境下则是通过旧负载均衡设备将数据包转发至目标服务器,作为当前执行主体的新负载均衡设备当然不会记录过相同的会话参数。因此,为了准确识别属于哪种情况,以及在非首个数据包的情况下,还能够由当前执行主体将该数据包准确发给相同的目标服务器,就需要通过数据包中记录的其它信息。
其中,数据包通常包括包头和正文,正文记录了实际要传输给目标服务器的信息,而包头则记录有用于使正文能够被目标服务器正确解析的相关信息,例如各种标识、正文数据量、解析方式等等,不同的信息通常记录在包头的不同字段,有些字段是根据数据包封装方式、数据传输协议所要求的标准字段或固有字段,有些字段则是可以结合实际需求、用户要求进行自定义的预设字段。而每个字段能够存储的信息量与其字段长度正相关,而字段长度则通常表现为该字段首地址和尾位置来确定,也可以基于该预设字段的首地址和尾地址相对于包头起始地址的偏移量来确定。
为了使上述执行主体能够在未记录过该数据包的实际会话参数的情况下,准确的将非首个数据包发送给相同的目标服务器,本公开预先将与预设字段地址对应的预设字段,配置为:记录用于确定目标服务器参数的信息,以期通过该预设字段中记录的信息来使当前主体明确相同客户端之前的通信对象。需要说明的是,实现上述效果的方式多种多样,预设字段的数量并不仅限于一个,记录的用于确定目标服务器参数的信息的形式也存在多种,甚至可以拆分存储于不同的预设字段中,所选用的预设字段的长度也可以根据实际所选用的QUIC协议的版本来确定。
用于确定目标服务器参数的信息只需要保证所记录信息能够唯一确定一个服务器,例如可以使用对目标服务器的IP地址和通信端口进行循环冗余校验(例如CRC32计算方式)的结果作为该信息,也可以使用上述执行主体所明确的服务器唯一名称、代号等,此处不做具体限定。
步骤203:响应于从预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数;
在步骤202的基础上,本步骤旨在由上述执行主体确实从预设字段地址对应的预设字段中读取到了包含有效内容的信息的情况下,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数。
步骤204:将数据包转发给与目标服务器参数对应的目标服务器。
基于QUIC协议提供的连接迁移思想,本公开实施例所提供的数据转发方法,由每个负载均衡设备在确定自己未记录有该数据包的实际会话参数时,通过在构成数据包的包头的预设字段地址中提取字段信息,从而根据能否提取到有效内容确定其是否支持连接迁移,以及在支持连接迁移的情况下根据提取到的预先写入的有效内容确定目标服务器参数,进而在引入负载均衡机制的情况下也能够保证数据包被准确转发至原目标服务器,且由于无需额外设置记录全局会话信息和为各负载均衡设备提供全局搜索的中间设备,不仅降低了实现成本也提升了转发效率。
在上述实施例的基础上,为了便于更好的理解如何确定出实际会话参数为未记录过的会话参数,还可以在步骤202之前添加一个查询比较或判断的步骤,一种包括且不限于的实现方式可以为:
在与当前的中央处理器对应的内存空间中查询实际会话参数;
响应于内存空间中未存储有与实际会话参数相同的会话参数,确定实际会话参数为未记录过的会话参数;
响应于内存空间中存储有与实际会话参数相同的会话参数,确定实际会话参数为已记录会话参数,并将数据包转发给与已记录会话参数对应的目标服务器。
本实施例选用与前的中央处理器对应的内存空间来记录历史会话参数,以借助内存空间具有的高速读写特性,提升数据查询、数据对比的速度。针对内存空间中存储有与实际会话参数相同的会话参数的情况,则可确定实际会话参数为已记录会话参数,并将数据包转发给与已记录会话参数对应的目标服务器,以将该数据包快速、准确的转发至相同的目标服务器,实现连接迁移效果。
进一步的,该内存空间包括仅与当前的中央处理器对应的独享内存空间,和同时对应于包含当前的中央处理器在内的多个中央处理器的共享内存空间。独享内存空间相较于共享内存空间,配置方式更简单、数据运算速度更换,也无需考虑因共享所带来的冲突、加锁等问题,但在某些内存总空间有限或不会存在冲突的情况下,共享内存空间也可以更高的效率的利用有限的内存空间,避免相同会话的不同会话参数的重复存储。
同时,在选用独享内存空间的实现方式下,也就意味着仅需要各CPU各自在自己的独享内存空间维护自己的已记录会话参数,无需因维护共享内存空间所需要的额外配置和因此带来的性能下降。具体选用哪种情况,还需要根据具体应用场景下的实际情况、所有可能存在的特殊要求,来灵活选用最适合的方式,此处不做具体限定。
请参考图3,图3为本公开实施例提供的另一种数据转发方法的流程图,其中流程300包括以下步骤:
步骤301:获取客户端发出的数据包,并从数据包中提取实际会话参数;
步骤302:从构成数据包的包头的第一预设字段地址中读取第一字段信息;
第一预设字段地址对应于第一预设字段,本步骤相当于由上述执行主体从包头的第一预设字段中读取第一字段信息。
步骤303:判断第一字段信息是否为空,若是,执行步骤304,否则执行步骤305;
本步骤旨在由上述执行主体根据读取到的第一字段信息是否为空,来选择不同的后续处理分支。
步骤304:确定数据包不支持进行连接迁移;
本步骤建立在步骤303的判断结果为第一字段信息为空的基础上,也就是第一预设字段中并未记录信息,旨在由上述执行主体将此种情况确定为该数据包不支持进行连接迁移。
步骤305:判断第一字段信息是否为预设的调度算法采用标识;
本步骤建立在步骤303的判断结果为第一字段信息不为空的基础上,也就是说第一预设字段中记录了信息,旨在由上述执行主体进一步判断第一字段信息是否为预设的调度算法采用标识。其中,调度算法采用标识用于表征数据包采用了预设的调度算法。
根据步骤304和步骤305对步骤303判断结果的两个处理分支的描述可知,本实施例预先将第一预设字段配置为用于记录调度算法采用标识的字段,由于该调度算法是为了使作为执行主体的负载均衡设备能够正确的将数据包转发至相同的目标服务器,因此可以根据存储了调度算法采用标识,来反向确定出该数据包是否是一个采用QUIC协议的数据包,即未采用QUIC协议,也就意味着无需为该数据包做是否需要进行连接迁移处理的判断。
步骤306:将数据包确定为与服务器发起通信的首个数据包;
本步骤建立在步骤305的判断结果为第一字段信息不为预设的调度算法采用标识的基础上,旨在由上述执行主体将数据包确定为与服务器发起通信的首个数据包。
为实现这一效果,还需要将在第一预设字段中写入调度算法采用标识的时机确定在于服务器通信的非首个数据包,因此当读取到的不为空的第一字段信息,且第一字段信息又不为调度算法采用标识,则可以认为该数据包确定为客户端与服务器发起通信的首个数据包。
步骤307:将实际会话参数记录为新的会话参数;
步骤308:将数据包转发至任一可提供服务的服务器;
在步骤306的基础上,步骤307和步骤308则由上述执行主体将实际会话参数记录为新的会话参数,然后针对新的会话参数对应的新会话选择将数据包转发至任一可提供服务的服务器即可。其中,被认定为具有可提供服务能力的标准此处不做限定,可结合实际情况自行确定。
步骤309:根据第一预设字段地址确定第二预设字段地址;
步骤310:从第二预设字段地址中读取第二字段信息;
步骤309建立在步骤305的判断结果为第一字段信息为调度算法采用标识的基础上,旨在由上述执行主体根据第一预设字段地址确定第二预设字段地址,以便可在步骤310中从第二预设字段地址中读取第二字段信息。
本实施例为了保障准确读取到第二字段信息来确定目标服务器参数,将对应第二预设字段的第二预设字段地址设置为基于第一预设字段地址,以避免在某些场景下无法使用固定的第二预设字段地址在各数据包的包头中读取到有效的第二字段信息的情况出现。
步骤311:根据读取到的第二字段信息,确定作为客户端通信对象的目标服务器参数;
步骤312:将数据包转发给与目标服务器参数对应的目标服务器。
在步骤310的基础上,步骤311则由上述执行主体根据读取到的第二字段信息,确定作为客户端通信对象的目标服务器参数,进而通过步骤312将数据包转发给与目标服务器参数对应的目标服务器,最终完成数据转发。
在上述任意实施例的基础上,本实施例采用了依次从第一预设字段和第二预设字段来最终准确的确定各种情况,以最终完成数据包的准确转发。其中,第一预设字段用于存储调度算法采用标识的第一预设字段,并根据是否存储有有效内容、存储的有效内容是否为调度算法采用标识,来分别确定是否支持连接转移、是否为首个数据包,仅在确定第一字段信息记录了调度算法采用标识的情况下,才从第二预设字段中读取第二字段信息,完成对非首个数据包的准确转发效果。
在上述任意实施例的基础上,无论是独享内存空间还是共享内存空间,用于存储会话参数的内存空间都是宝贵的,因此可以根据已记录的会话参数对应会话的未使用时长,将超出预设的保活时长的会话参数确定为目标会话参数,并通过删除目标会话参数的方式,保证有足够的空间能够容纳后续产生的新会话参数。
进一步的,考虑到实际情况下会有非常多的因素可能导致网络环境切换,如果对所有情况、所有已记录的会话参数都设置统一的保活时长,实际效果可能并不能好,让用户感觉到不那么“人性化”、不“智能”。
为尽可能的提升保活时长的合理性、智能化,本公开还提供了一种基于动态保活时长的超时会话参数处理方法,请参见图4所示的流程图,其流程400包括如下步骤:
步骤401:根据每个已记录的会话参数对应会话的会话使用特征,分别确定与相应会话的动态保活时长;
其中,会话使用特征包括:上一次使用时长、上一次断开连接后距当前时间点的时长、预设时间段内的断开或连接次数、预设时间段内的平均使用时长、预设时间段内的平均断开时长、保持连接或断开的时段分布情况、位置信息中的至少一项。
步骤402:根据每个已记录的会话参数对应会话的未使用时长,将超出对应会话的动态保活时长的会话参数确定为目标会话参数;
步骤403:删除目标会话参数。
在为所有会话配置统一的保活时长的基础方案的基础上,本实施例基于对会话使用特征的分析,提供了一种为每个会话分别确定出动态保活时长的方案,以基于会话使用特征对会话各方面特征的描述,灵活、动态的为每个对应不同情况的会话,设置动态变化的保活时长,以对不同的会话提供差异化的保活判断,进而让会话参数的删除、重建更加合理,减少性能开销。
其中,上一次时长/平均使用时长,能够从不同长度的时间窗口体现用户在某个网络环境下的使用持续性;上一次断开连接后距当前时间点的时长和平均断开时长,则能够从不同长度的时间体现用户是否已经完全脱离当前网络环境;预设时间段内的断开或连接次数,则用于体现用户是否在不同网络环境下的切换次数,通常对应于不同区域的频繁切换情况就;保持连接或断开的时段分布情况,则用于表征用户切换网络环境的行为是否与时段存在某种关联或周期性,进而根据周期性调整不同时段下的保活时长;位置信息则用于根据位置差异来确定用户处于该区域的偶然性或重复性。
为了加深对整个技术方案的理解,本实施例还结合RFC9000(QUIC传输通信协议的正式标准化版本),提出了一种具体的实现方式:
为使负载均衡设备可以准确的识别客户端发来的数据包所应指向的服务器,本实施例针对QUIC中对数据包的包头的DCID字段,提出了一种新的DCID(DestinationConnection ID,目的端连接ID)字段格式,以借助遵循新格式的DCID字段来准确识别作为转发目标的目标服务器。
1、本实施例将DCID字段的格式定义为:
Server nonce(64位)、Magic code&version(32位)、Server cookie(32位)、Random nonce(32)。即将总长度为20字节(160位)的DCID字段定义为4个子字段的组合,各字段含义说明:
1)Server nonce字段代表由后端服务器生成的随机数或相关算法实现,比如可以使用UDP的socket ID(套接字ID);
2)magic code&version字段(相当于流程300描述的第一预设字段),用于标识是否采用了本公开提供的调度算法;
3)server cookie字段(相当于流程300描述的第二预设字段)则是本公开提供的调度算法的核心,用于标识负载均衡设备选定的后端服务器的相关信息,以IP地址与服务端口为例,该字段可以使用CRC32或等价的其它计算算法得到:server_cookie=crc32(serverip:port);
4)Random nonce字段代表由后端服务器生成的随机数。
2、调度过程
第1步:负载均衡设备接收到客户端发来的表示建立连接的client(客户端)initial报文,然后根据记载在报文中的五元组在本CPU内存中查找到对应的session(会话),查到session则转发报文给session记录的后端服务器;如果没有查到session则执行第2步;
第2步:提取magic code&version字段值,判断是否符合指代调度算法的要求,如果不符合则认为是该携带该报文的数据包是客户端与服务器建立连接的首个clientinitial报文,此时即需要选择一个可提供服务的后端服务器在本cpu内存中新建session即可,并将数据包转发给所选的后端服务器;
第3步:若magic code&version字段值符合指代调度算法的要求,则从报文中提取server_cookie字段值,并通过解析该字段值确定对应的后端服务器,并重新建立本CPU或设备上的session信息,然后转发报文给相应的后端服务器,以使后续到来的报文可通过已记录的五元组信息直接进行转发。
通过应用本实施例提到的自定义DCID字段方式和调度方法,可以简单可靠的解决负载均衡集群中QUIC连接迁移导致会话断开的问题,以下问题也可以得到解决:
相较于使用全局session问题导致的转发性能下降,因本方案中使用的还是CPU级别的session(即各CPU拥有独享的内存空间来存储会话信息),不需要使用全局锁,这样避免了争抢锁导致的性能下降。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种数据转发装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的数据转发装置500可以包括:实际会话参数提取单元501、信息提取单元502、目标服务器参数确定单元503、数据包转发单元504。其中,实际会话参数提取单元501,被配置成获取客户端发出的数据包,并从数据包中提取实际会话参数;信息提取单元502,被配置成响应于实际会话参数为未记录过的会话参数,从构成数据包的包头的预设字段地址中读取信息;其中,与预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;目标服务器参数确定单元503,被配置成响应于从预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为客户端通信对象的目标服务器参数;数据包转发单元504,被配置成将数据包转发给与目标服务器参数对应的目标服务器。
在本实施例中,数据转发装置500中:实际会话参数提取单元501、信息提取单元502、目标服务器参数确定单元503、数据包转发单元504的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-204的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,数据转发装置500还可以包括:
会话参数查询单元,被配置成在与当前的中央处理器对应的内存空间中查询实际会话参数;
未记录会话参数确定单元,被配置成响应于内存空间中未存储有与实际会话参数相同的会话参数,确定实际会话参数为未记录过的会话参数;
已记录会话参数确定及处理单元,被配置成响应于内存空间中存储有与实际会话参数相同的会话参数,确定实际会话参数为已记录会话参数,并将数据包转发给与已记录会话参数对应的目标服务器。
在本实施例的一些可选的实现方式中,,内存空间包括仅与当前的中央处理器对应的独享内存空间,和同时对应于包含当前的中央处理器在内的多个中央处理器的共享内存空间。
在本实施例的一些可选的实现方式中,信息提取单元502可以包括:
第一字段信息读取子单元,被配置成从构成数据包的包头的第一预设字段地址中读取第一字段信息;
第二预设字段地址确定子单元,被配置成响应于从第一预设字段地址中读取到的第一字段信息不为空、且第一字段信息为预设的调度算法采用标识,根据第一预设字段地址确定第二预设字段地址;其中,调度算法采用标识用于表征数据包采用了预设的调度算法;
第二字段信息读取子单元,被配置成从第二预设字段地址中读取第二字段信息;
目标服务器参数确定单元503可以被进一步配置成:
根据读取到的第二字段信息,确定作为客户端通信对象的目标服务器参数。
在本实施例的一些可选的实现方式中,信息提取单元502还可以包括:
首个数据包确定子单元,被配置成响应于从第一预设字段地址中读取到的第一字段信息不为调度算法采用标识,将数据包确定为与服务器发起通信的首个数据包;
新会话参数创建子单元,被配置成将实际会话参数记录为新的会话参数。
在本实施例的一些可选的实现方式中,目标信息包括对目标服务器的IP地址和通信端口进行循环冗余校验的结果。
在本实施例的一些可选的实现方式中,数据转发装置500还可以包括:
目标会话参数确定单元,被配置成根据已记录的会话参数对应会话的未使用时长,将超出预设的保活时长的会话参数确定为目标会话参数;
会话参数删除单元,被配置成删除目标会话参数。
在本实施例的一些可选的实现方式中,数据转发装置500还可以包括:
动态保活时长确定单元,被配置成根据每个已记录的会话参数对应会话的会话使用特征,分别确定与相应会话的动态保活时长;其中,会话使用特征包括:上一次使用时长、上一次断开连接后距当前时间点的时长、预设时间段内的断开或连接次数、预设时间段内的平均使用时长、预设时间段内的平均断开时长、保持连接或断开的时段分布情况、位置信息中的至少一项;
目标会话参数确定单元可以被进一步配置成:
根据每个已记录的会话参数对应会话的未使用时长,将超出对应会话的动态保活时长的会话参数确定为目标会话参数。
本实施例作为对应于上述方法实施例的装置实施例存在。
基于QUIC协议提供的连接迁移思想,本公开实施例所提供的数据转发装置,由每个负载均衡设备在确定自己未记录有该数据包的实际会话参数时,通过在构成数据包的包头的预设字段地址中提取字段信息,从而根据能否提取到有效内容确定其是否支持连接迁移,以及在支持连接迁移的情况下根据提取到的预先写入的有效内容确定目标服务器参数,进而在引入负载均衡机制的情况下也能够保证数据包被准确转发至原目标服务器,且由于无需额外设置记录全局会话信息和为各负载均衡设备提供全局搜索的中间设备,不仅降低了实现成本也提升了转发效率。
根据本公开的实施例,本公开还提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现上述任意实施例所描述的数据转发方法。
根据本公开的实施例,本公开还提供了一种可读存储介质,该可读存储介质存储有计算机指令,该计算机指令用于使计算机执行时能够实现上述任意实施例所描述的数据转发方法。
根据本公开的实施例,本公开还提供了一种计算机程序产品,该计算机程序在被处理器执行时能够实现上述任意实施例所描述的数据转发方法。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如数据转发方法。例如,在一些实施例中,数据转发方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的数据转发方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据转发方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。
基于QUIC协议提供的连接迁移思想,本公开实施例由每个负载均衡设备在确定自己未记录有该数据包的实际会话参数时,通过在构成数据包的包头的预设字段地址中提取字段信息,从而根据能否提取到有效内容确定其是否支持连接迁移,以及在支持连接迁移的情况下根据提取到的预先写入的有效内容确定目标服务器参数,进而在引入负载均衡机制的情况下也能够保证数据包被准确转发至原目标服务器,且由于无需额外设置记录全局会话信息和为各负载均衡设备提供全局搜索的中间设备,不仅降低了实现成本也提升了转发效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (15)
1.一种数据转发方法,包括:
获取客户端发出的数据包,并从所述数据包中提取实际会话参数;
响应于实际会话参数为未记录过的会话参数,从构成所述数据包的包头的预设字段地址中读取信息;其中,与所述预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;
响应于从所述预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为所述客户端通信对象的目标服务器参数;
将所述数据包转发给与所述目标服务器参数对应的目标服务器;
根据每个已记录的会话参数对应会话的会话使用特征,分别确定与相应会话的动态保活时长;其中,所述会话使用特征包括:上一次使用时长、上一次断开连接后距当前时间点的时长、预设时间段内的断开或连接次数、预设时间段内的平均使用时长、预设时间段内的平均断开时长、保持连接或断开的时段分布情况、位置信息中的至少一项;
根据每个已记录的会话参数对应会话的未使用时长,将超出对应会话的动态保活时长的会话参数确定为目标会话参数,并删除所述目标会话参数。
2.根据权利要求1所述的方法,还包括:
在与当前的中央处理器对应的内存空间中查询所述实际会话参数;
响应于所述内存空间中未存储有与所述实际会话参数相同的会话参数,确定所述实际会话参数为未记录过的会话参数;
响应于所述内存空间中存储有与所述实际会话参数相同的会话参数,确定所述实际会话参数为已记录会话参数,并将所述数据包转发给与所述已记录会话参数对应的目标服务器。
3.根据权利要求2所述的方法,其中,所述内存空间包括仅与当前的中央处理器对应的独享内存空间,和同时对应于包含当前的中央处理器在内的多个中央处理器的共享内存空间。
4.根据权利要求1所述的方法,其中,所述从构成所述数据包的包头的预设字段地址中读取信息,包括:
从构成所述数据包的包头的第一预设字段地址中读取第一字段信息;
响应于从所述第一预设字段地址中读取到的第一字段信息不为空、且所述第一字段信息为预设的调度算法采用标识,根据所述第一预设字段地址确定第二预设字段地址;其中,所述调度算法采用标识用于表征所述数据包采用了预设的调度算法;
从所述第二预设字段地址中读取第二字段信息;
所述根据读取到的目标信息,确定作为所述客户端通信对象的目标服务器参数,包括:
根据读取到的第二字段信息,确定作为所述客户端通信对象的目标服务器参数。
5.根据权利要求4所述的方法,还包括:
响应于从所述第一预设字段地址中读取到的第一字段信息不为所述调度算法采用标识,将所述数据包确定为与服务器发起通信的首个数据包;
将所述实际会话参数记录为新的会话参数。
6.根据权利要求1所述的方法,其中,所述目标信息包括对所述目标服务器的IP地址和通信端口进行循环冗余校验的结果。
7.一种数据转发装置,包括:
实际会话参数提取单元,被配置成获取客户端发出的数据包,并从所述数据包中提取实际会话参数;
信息提取单元,被配置成响应于实际会话参数为未记录过的会话参数,从构成所述数据包的包头的预设字段地址中读取信息;其中,与所述预设字段地址对应的预设字段被配置记录用于确定目标服务器参数的信息;
目标服务器参数确定单元,被配置成响应于从所述预设字段地址中读取到的信息不为空,根据读取到的目标信息,确定作为所述客户端通信对象的目标服务器参数;
数据包转发单元,被配置成将所述数据包转发给与所述目标服务器参数对应的目标服务器;
动态保活时长确定单元,被配置成根据每个已记录的会话参数对应会话的会话使用特征,分别确定与相应会话的动态保活时长;其中,所述会话使用特征包括:上一次使用时长、上一次断开连接后距当前时间点的时长、预设时间段内的断开或连接次数、预设时间段内的平均使用时长、预设时间段内的平均断开时长、保持连接或断开的时段分布情况、位置信息中的至少一项;
目标会话参数确定单元,被配置成根据每个已记录的会话参数对应会话的未使用时长,将超出对应会话的动态保活时长的会话参数确定为所述目标会话参数;
会话参数删除单元,被配置成删除所述目标会话参数。
8.根据权利要求7所述的装置,还包括:
会话参数查询单元,被配置成在与当前的中央处理器对应的内存空间中查询所述实际会话参数;
未记录会话参数确定单元,被配置成响应于所述内存空间中未存储有与所述实际会话参数相同的会话参数,确定所述实际会话参数为未记录过的会话参数;
已记录会话参数确定及处理单元,被配置成响应于所述内存空间中存储有与所述实际会话参数相同的会话参数,确定所述实际会话参数为已记录会话参数,并将所述数据包转发给与所述已记录会话参数对应的目标服务器。
9.根据权利要求8所述的装置,其中,所述内存空间包括仅与当前的中央处理器对应的独享内存空间,和同时对应于包含当前的中央处理器在内的多个中央处理器的共享内存空间。
10.根据权利要求7所述的装置,其中,所述信息提取单元包括:
第一字段信息读取子单元,被配置成从构成所述数据包的包头的第一预设字段地址中读取第一字段信息;
第二预设字段地址确定子单元,被配置成响应于从所述第一预设字段地址中读取到的第一字段信息不为空、且所述第一字段信息为预设的调度算法采用标识,根据所述第一预设字段地址确定第二预设字段地址;其中,所述调度算法采用标识用于表征所述数据包采用了预设的调度算法;
第二字段信息读取子单元,被配置成从所述第二预设字段地址中读取第二字段信息;
所述目标服务器参数确定单元被进一步配置成:
根据读取到的第二字段信息,确定作为所述客户端通信对象的目标服务器参数。
11.根据权利要求10所述的装置,所述信息提取单元还包括:
首个数据包确定子单元,被配置成响应于从所述第一预设字段地址中读取到的第一字段信息不为所述调度算法采用标识,将所述数据包确定为与服务器发起通信的首个数据包;
新会话参数创建子单元,被配置成将所述实际会话参数记录为新的会话参数。
12.根据权利要求7所述的装置,其中,所述目标信息包括对所述目标服务器的IP地址和通信端口进行循环冗余校验的结果。
13.一种负载均衡设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的数据转发方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的数据转发方法。
15.一种数据传输***,包括:
如权利要求13所述的负载均衡设备;
向所述负载均衡设备发送数据包的客户端;
接收所述负载均衡设备传入数据包的服务器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210097991.4A CN114500633B (zh) | 2022-01-27 | 2022-01-27 | 数据转发方法、相关装置、程序产品及数据传输*** |
US17/896,216 US20230239358A1 (en) | 2022-01-27 | 2022-08-26 | Method for fowarding data, device, storage medium and data transmission system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210097991.4A CN114500633B (zh) | 2022-01-27 | 2022-01-27 | 数据转发方法、相关装置、程序产品及数据传输*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500633A CN114500633A (zh) | 2022-05-13 |
CN114500633B true CN114500633B (zh) | 2023-11-03 |
Family
ID=81476594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210097991.4A Active CN114500633B (zh) | 2022-01-27 | 2022-01-27 | 数据转发方法、相关装置、程序产品及数据传输*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230239358A1 (zh) |
CN (1) | CN114500633B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396528A (zh) * | 2022-08-17 | 2022-11-25 | 上海哔哩哔哩科技有限公司 | 基于协议族的quic数据传输方法及装置 |
CN115589391B (zh) * | 2022-12-09 | 2023-03-21 | 北京百度网讯科技有限公司 | 基于区块链的即时通信处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100811847B1 (ko) * | 2006-10-23 | 2008-03-10 | 삼성전자주식회사 | 고속 데이터 전송을 위한 이동통신 시스템에서 단말기의식별자 관리 장치 및 방법 |
CN103491011A (zh) * | 2013-09-05 | 2014-01-01 | 杭州华三通信技术有限公司 | Bgp会话变更方法及设备 |
CN105100101A (zh) * | 2015-07-31 | 2015-11-25 | 新浪网技术(中国)有限公司 | 一种基于ssl会话的方法、装置及*** |
CN107360251A (zh) * | 2017-08-16 | 2017-11-17 | 中国工商银行股份有限公司 | 会话保持的方法、***以及负载均衡装置 |
CN109510878A (zh) * | 2018-12-24 | 2019-03-22 | 杭州迪普科技股份有限公司 | 一种长连接会话保持方法和装置 |
CN111988362A (zh) * | 2020-07-22 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 数据的传输方法、装置、终端及存储介质 |
-
2022
- 2022-01-27 CN CN202210097991.4A patent/CN114500633B/zh active Active
- 2022-08-26 US US17/896,216 patent/US20230239358A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100811847B1 (ko) * | 2006-10-23 | 2008-03-10 | 삼성전자주식회사 | 고속 데이터 전송을 위한 이동통신 시스템에서 단말기의식별자 관리 장치 및 방법 |
CN103491011A (zh) * | 2013-09-05 | 2014-01-01 | 杭州华三通信技术有限公司 | Bgp会话变更方法及设备 |
CN105100101A (zh) * | 2015-07-31 | 2015-11-25 | 新浪网技术(中国)有限公司 | 一种基于ssl会话的方法、装置及*** |
CN107360251A (zh) * | 2017-08-16 | 2017-11-17 | 中国工商银行股份有限公司 | 会话保持的方法、***以及负载均衡装置 |
CN109510878A (zh) * | 2018-12-24 | 2019-03-22 | 杭州迪普科技股份有限公司 | 一种长连接会话保持方法和装置 |
CN111988362A (zh) * | 2020-07-22 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 数据的传输方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114500633A (zh) | 2022-05-13 |
US20230239358A1 (en) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110708393B (zh) | 用于传输数据的方法、装置和*** | |
CN114500633B (zh) | 数据转发方法、相关装置、程序产品及数据传输*** | |
US10331613B2 (en) | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof | |
US9065788B2 (en) | Method, device and system for voice communication | |
CN105577777A (zh) | 一种消息处理方法、装置及*** | |
CN112583931A (zh) | 消息处理方法、消息中间件、电子设备和存储介质 | |
US20120096136A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
CN113596017B (zh) | 一种协议解析方法、装置、软网关和存储介质 | |
EP2974159B1 (en) | Method, device and system for voice communication | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
CN114697391B (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN109286684B (zh) | 一种通信连接的处理方法、装置、代理服务器及存储介质 | |
CN107483628B (zh) | 基于dpdk的单向代理方法及*** | |
CN109766347B (zh) | 一种数据更新方法、装置、***、计算机设备及存储介质 | |
US20220382605A1 (en) | Classical management of qubit requests | |
CN112511440B (zh) | 报文转发方法、***、存储介质和电子设备 | |
US20140108523A1 (en) | Connection sharing across entities in a distributed messaging system | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 | |
US20200341968A1 (en) | Differential Update of Local Cache from Central Database | |
CN114827159B (zh) | 网络请求路径优化方法、装置、设备和存储介质 | |
CN114827055B (zh) | 数据镜像的方法、装置、电子设备及交换机集群 | |
CN114793234B (zh) | 消息处理方法、装置、设备和存储介质 | |
CN114449031B (zh) | 信息获取方法、装置、设备和存储介质 | |
CN115175172B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113904980B (zh) | 一种信道切换方法、装置、交换机及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |