CN115967679A - 数据请求方法、通信装置和通信系统 - Google Patents
数据请求方法、通信装置和通信系统 Download PDFInfo
- Publication number
- CN115967679A CN115967679A CN202111178020.4A CN202111178020A CN115967679A CN 115967679 A CN115967679 A CN 115967679A CN 202111178020 A CN202111178020 A CN 202111178020A CN 115967679 A CN115967679 A CN 115967679A
- Authority
- CN
- China
- Prior art keywords
- communication device
- client
- message
- communication
- session
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
-
- 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
-
- 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/02—Topology update or discovery
-
- 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/74—Address processing for routing
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据请求方法、通信装置和通信系统,涉及计算机领域,用于减少存储数据的通信装置之间的流量。数据请求方法包括:第二通信装置从第一通信装置接收第一通信装置与客户端之间的第一会话的连接状态信息以及与客户端之间通信的消息,与客户端之间通信的消息包括用于请求目标数据的请求消息;第二通信装置根据连接状态信息与客户端建立第二会话;第二通信装置通过第二会话向客户端发送目标数据;第二通信装置向负载均衡服务器发送第二通信装置的唯一标识,第二通信装置的唯一标识用于更新流表项,在更新之前流表项用于指示将来自客户端的消息转发给第一通信装置,在更新之后流表项用于指示将来自客户端的消息转发给第二通信装置。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据请求方法、通信装置和通信系统。
背景技术
随着移动互联网、云计算、大数据等互联网新技术、新业务的快速发展,通过建立内容分发网络(content delivery network,CDN)可以缓解互联网网络拥塞,提高互联网业务响应速度,改善用户业务体验。
在CDN中,客户端通过负载均衡服务器向多个真实服务器中的一个真实服务器发送请求消息,以请求目标数据,由于负载均衡服务器无法感知目标数据的存储位置,所以负载均衡服务器每次向一个真实服务器转发请求消息,目标数据可能不存储在该真实服务器上,该真实服务器会从其他真实服务器获取目标数据并发送给客户端。各个真实服务器之间传输目标数据会对系统带宽造成了很大的压力。
发明内容
本申请实施例提供一种数据请求方法、通信装置和通信系统,用于减少存储数据的通信装置之间的流量。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种数据请求方法,包括:第二通信装置从第一通信装置接收第一通信装置与客户端之间的第一会话的连接状态信息以及缓存的与客户端之间通信的消息,与客户端之间通信的消息包括请求消息,请求消息用于请求目标数据;第二通信装置根据连接状态信息与客户端建立第二会话;第二通信装置通过第二会话向客户端发送目标数据;第二通信装置向负载均衡服务器发送第二通信装置的唯一标识,第二通信装置的唯一标识用于更新流表项,在更新之前,流表项用于指示将来自客户端的消息转发给第一通信装置,在更新之后,流表项用于指示将来自客户端的消息转发给第二通信装置。
本申请实施例提供的数据请求方法,通过在存储数据的通信装置之间传输会话的连接状态信息和缓存的与客户端之间通信的消息,代替在存储数据的通信装置之间传输目标数据,可以减少存储数据的通信装置之间的流量,减少通信装置的数量,节约成本,减少首包(开频)的时延。
在一种可能的实施方式中,第二通信装置的唯一标识为自定义标识,或者,第二通信装置的真实网络协议地址,或者,第二通信装置的媒体接入控制地址。流表项中包括五元组与第二通信装置的唯一标识(例如自定义标识,或者,第二通信装置的真实网络协议地址,或者,第二通信装置的媒体接入控制地址)之间的映射关系,或者,包括第二通信装置的唯一标识。本申请不限定第二通信装置的唯一标识的具体形式,只要能与第一通信装置相区别即可。
第二方面,提供了一种数据请求方法,包括:负载均衡服务器向第一通信装置发送来自客户端的请求消息,请求消息用于请求目标数据;负载均衡服务器建立流表项,流表项指示将来自客户端的消息转发给第一通信装置;负载均衡服务器从第二通信装置接收第二通信装置的唯一标识;负载均衡服务器根据第二通信装置的唯一标识更新流表项,流表项指示将来自客户端的消息转发给第二通信装置。
在一种可能的实施方式中,第二通信装置的唯一标识为自定义标识,或者,第二通信装置的真实网络协议地址,或者,第二通信装置的媒体接入控制地址。
第三方面,提供了一种数据请求方法,包括:第一通信装置从负载均衡服务器接收来自客户端的请求消息,请求消息用于请求目标数据;第一通信装置与客户端建立第一会话;第一通信装置根据请求消息和资源列表确定目标数据存储于第二通信装置;第一通信装置向第二通信装置发送第一会话的连接状态信息以及缓存的与客户端之间通信的消息;第一通信装置断开第一会话。
第四方面,提供了一种第二通信装置,包括:通信模块和处理模块,通信模块,用于从第一通信装置接收第一通信装置与客户端之间的第一会话的连接状态信息以及缓存的与客户端之间通信的消息,与客户端之间通信的消息包括请求消息,请求消息用于请求目标数据;处理模块,用于根据连接状态信息与客户端建立第二会话;通信模块,用于通过第二会话向客户端发送目标数据;通信模块,用于向负载均衡服务器发送第二通信装置的唯一标识,第二通信装置的唯一标识用于更新流表项,在更新之前,流表项用于指示将来自客户端的消息转发给第一通信装置,在更新之后,流表项用于指示将来自客户端的消息转发给第二通信装置。
在一种可能的实施方式中,第二通信装置的唯一标识为自定义标识,或者,第二通信装置的真实网络协议地址,或者,第二通信装置的媒体接入控制地址。
第五方面,提供了一种第三通信装置,包括:通信模块和处理模块,通信模块,用于向第一通信装置发送来自客户端的请求消息,请求消息用于请求目标数据;处理模块,用于建立流表项,流表项指示将来自客户端的消息转发给第一通信装置;通信模块,用于从第二通信装置接收第二通信装置的唯一标识;处理模块,用于根据第二通信装置的唯一标识更新流表项,流表项指示将来自客户端的消息转发给第二通信装置。
在一种可能的实施方式中,第二通信装置的唯一标识为自定义标识,或者,第二通信装置的真实网络协议地址,或者,第二通信装置的媒体接入控制地址。
第六方面,提供了一种第一通信装置,包括:通信模块和处理模块,通信模块,用于从负载均衡服务器接收来自客户端的请求消息,请求消息用于请求目标数据;处理模块,用于与客户端建立第一会话;处理模块,用于根据请求消息和资源列表确定目标数据存储于第二通信装置;通信模块,用于向第二通信装置发送第一会话的连接状态信息以及缓存的与客户端之间通信的消息;处理模块,用于断开第一会话。
第七方面,提供了一种通信系统,包括如第四方面及其任一实施方式所述的第二通信装置,如第五方面及其任一实施方式所述的第三通信装置,以及,如第六方面所述的第一通信装置。
第八方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,当指令在通信装置执行时,使得通信装置执行如第一方面及其任一实施方式所述的方法,或者,执行如第二方面及其任一实施方式所述的方法,或者,执行如第三方面所述的方法。
第九方面,提供了一种包含指令的计算机程序产品,当指令在通信装置上运行时,使得通信装置执行如第一方面及其任一实施方式所述的方法,或者,执行如第二方面及其任一实施方式所述的方法,或者,执行如第三方面所述的方法。
关于第二方面至第九方面的技术效果参照第一方面及其任一实施方式的技术效果。
附图说明
图1为本申请实施例提供的一种通信系统的架构示意图;
图2为本申请实施例提供的另一种通信系统的架构示意图;
图3为本申请实施例提供的又一种通信系统的架构示意图;
图4为本申请实施例提供的再一种通信系统的架构示意图;
图5为本申请实施例提供的一种数据请求方法的流程示意图;
图6为本申请实施例提供的一种通信装置下发命令的示意图;
图7为本申请实施例提供的一种会话的连接状态信息进行迁移的示意图;
图8为本申请实施例提供的一种缓存的消息进行迁移的示意图;
图9为本申请实施例提供的一种原方案与本方案对比的示意图;
图10为本申请实施例提供的一种通信装置的结构示意图;
图11为本申请实施例提供的另一种通信装置的结构示意图。
具体实施方式
需要说明的是,本申请实施例涉及的术语“第一”、“第二”等仅用于区分同一类型特征的目的,不能理解为用于指示相对重要性、数量、顺序等。
本申请实施例涉及的术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先对本申请涉及的概念进行描述:
内容分发网络(content delivery network,CDN),是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
弹性负载均衡(elastic load balancing,ELB),在多个目标之间,自动分配传入的应用程序流量,它可以处理不断变化的应用程序流量负载。
应用负载均衡(application load balancing,ALB),专门面向超文本传输协议(hypertext transfer protocol,HTTP)、超文本传输安全协议(hypertext transferprotocol secure,HTTPS)和快速用户数据报协议(user datagram protocol,UDP)互联网连接(quick UDP internet connections,QUIC)等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力。
HTTP,一种用于分布式、协作式和超媒体信息系统的应用层协议,是互联网的数据通信的基础。
HTTPS,一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用安全套接字协议(secure sockets layer,SSL)/安全传输层协议(transport layersecurity,TLS)来加密数据包。
UDP,一种简单的面向数据报的通信协议,位于传输层。
QUIC,一种通用的传输层网络协议,使用UDP在两个端点之间创建若干个多路连接来实现,旨在提供几乎等同于传输控制协议(transmission control protocol,TCP)连接的可靠性,但延迟大大减少。
TCP,一种面向连接的、可靠的、基于字节流的传输层通信协议。
媒体接入控制(media access control,MAC),是局域网中数据链路层的下层部分,提供寻址及媒体访问的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信,而不会互相冲突。
快速数据路径(express data path,XDP),一种为Linux内核提供高性能、可编程的网络数据路径。
板间流量,为服务用户的流量请求,生产设备之间、服务进程之间为该流量请求提供服务时额外产生的无用数据拷贝和网络流量传输。
五元组,指流表中的表项,包括报文转发路径的源互联网协议(internetprotocol,IP)地址、源端口号、目的IP地址、目的端口号、通信协议。
真实服务器(real server,RS),真正的服务器,也可以称为后端资源节点、集群中各节点等。
直接路由(direct routing,DR),负载均衡服务器的直接路由模式,负载均衡服务器的调度器只接收客户端发来的请求消息并将请求消息转发给后端的RS,后端的RS处理请求消息后直接把包括目标数据的响应消息发送给客户端,而不用再次经过调度器。该模式适用于上传流量小而下载流量大的场景。
如图1所示,本申请实施例提供了一种基于CDN网络的通信系统,包括:客户端11、ELB服务器12和多个RS 13,其中,该ELB服务器12采用直接路由模式。该通信系统的工作原理如下:
S1、客户端11向ELB服务器12发送请求消息。
请求消息用于请求目标数据,例如,请求播放视频。
S2、ELB服务器12将请求消息随机转发至RS 13。
例如ELB服务器12将请求消息随机转发至RS1。
S3、RS 13解析请求消息所请求的目标数据是否在本服务器,如果不在本服务器则向其他RS请求目标数据。
例如,RS1检查请求消息所请求的目标数据不在RS1中,则RS1从RS2请求目标数据。
S4、RS 13向主机客户端返回包括目标数据的响应消息。
该通信系统存在的问题:ELB服务器12无法感知业务,所以无法将请求消息分发至指定RS 13,在步骤S3中会产生板间流量,板间流量大概占总流量的40%,增加了流量负荷,同时精度只有1/N(N为RS 13的数目),导致服务器资源浪费(浪费了(N-1)/N)。
如图2所示,本申请实施例提供了另一种基于CDN网络的通信系统,包括:客户端11、ELB服务器12、多个RS 13和多个ALB服务器14。该通信系统的工作原理如下:
S1、客户端11向ELB服务器12发送请求消息。
S2、ELB服务器12将请求消息按照分发规则转发至ALB服务器14。
S3、ALB服务器14解析请求消息中的目标地址,向相应的RS 13转发请求消息。
S4、RS 13向ALB服务器14发送包括目标数据的响应消息。
S5、ALB服务器14向客户端11发送包括目标数据的响应消息。
该通信系统存在的问题:虽然ALB服务器14可以直接找到存储目标数据的RS 13,但是仍无法解决板间流量的问题。在整个流程中,仅是将RS 13之间的板间流量转移为RS13与ALB服务器14之间的流量,流量并未减少,对于带宽的压力并未消除。并且服务器13会成为瓶颈点,造成流量阻塞并加大时延。当流量过大时,ALB服务器13会成为整个请求链路中的瓶颈点,导致整个请求的时延过长,用户体验差。另外,会造成资源浪费,新增的ALB服务器14需要软件服务器或者硬件实现,这就造成了大规模的资源浪费,增加了服务商的成本。
如图3所示,本申请实施例提供了又一种基于CDN网络的通信系统,包括:客户端11、ELB服务器12和多个RS 13。该通信系统的工作原理如下:
S1、客户端11向ELB服务器12发送请求消息。
S2、ELB服务器12根据分发规则将请求消息转发至RS 13。
S3、RS 13请求消息所请求的目标数据是否在本服务器,如果在本服务器则返回包括目标数据的响应消息,如果不在本服务器则返回包括错误指示的响应消息,并断开连接。
可选的,如果不在本服务器则返回的响应消息中还可以包括目标RS的MAC、IP地址等信息。
S4、客户端11接收到响应消息,若响应消息中包括错误信息,则再次发送请求消息,直到命中目标数据。
可选的,如果响应消息中还包括目标RS的MAC、IP地址等信息,则客户端11可以通过ELB服务器12直接向目标RS发送请求消息。
例如,图3中虚线箭头示出了RS1中未存储请求消息所请求的目标数据时的交互流程,实线箭头示出了RS2中存储了请求消息所请求的目标数据的交互流程。
该通信系统存在的问题:这种多次重连的方式虽然在理论上可以减少板间流量,但是随机性强,并且会导致端到端的流量增加,客户端还需要配合修改代码,可选的,ELB服务器也需要配合修改代码,以适配多次重连,并且影响首包(开频)的时延,且首包时延既不稳定也不可预测。
如图4所示,本申请实施例提供了又一种基于CDN网络的通信系统,包括:客户端41、边缘网关42、负载均衡服务器43、第一通信装置44、第二通信装置45、后端主机46和云端服务器47。
边缘网关42用于将来自客户端41的请求消息转发给负载均衡服务器43。
后端主机46用于向云端服务器查询资源数据并向第一通信装置44或第二通信装置45反馈资源数据。
云端服务器47用于提供并更新资源数据(例如视频、音频等)。
负载均衡服务器43用于将来自客户端41的请求消息分发给第一通信装置44或第二通信装置45。负载均衡服务器43中存储有流表,流表中包括流表项,当负载均衡服务器43第一次接收到来自客户端41的请求消息时,根据分发规则确定需要转发给第一通信装置44后,负载均衡服务器43会新建流表项,以指示将来自客户端41的后续消息转发给第一通信装置44。如果负载均衡服务器43后续再接收到来自客户端41的其他消息,则负载均衡服务器43可以根据流表项将消息转发给第一通信装置44。
第一通信装置44和第二通信装置45可以为前文所述的RS,或者,RS上的板卡,或者,RS处理器等。其中,第一通信装置44与第二通信装置45的区别和联系包括:第一通信装置44未存储客户端41请求的目标数据,第二通信装置45存储了客户端41请求的目标数据。第一通信装置44和第二通信装置45的虚拟互联网协议(virtual internet protocol,VIP)地址相同,端口号相同,但是第一通信装置44和第二通信装置45的唯一标识(例如真实IP地址、MAC地址)不同,以便负载均衡服务器43根据唯一标识区分第一通信装置44和第二通信装置45。
该通信系统的可以执行如下数据请求方法:
S1、客户端41第一次通过边缘网关42向负载均衡服务器43发送请求消息,以请求目标数据。负载均衡服务器43根据分发规则将请求消息发送给第一通信装置44。
S2、第一通信装置44解析请求消息后与客户端41建立连接,由于第一通信装置44未存储客户端41请求的目标数据,第一通信装置44确定客户端41请求的目标数据位于第二通信装置45,因此,第一通信装置44的管理面发送指令,将已经建立好的会话以及相关数据迁移到第二通信装置45。
S3、第二通信装置45通知负载均衡服务器43更新流表,将针对同一目标数据的后续请求消息定位至第二通信装置45。
S4、客户端41后续通过边缘网关42向负载均衡服务器43发送请求消息,则负载均衡服务器43根据更新的流表将请求消息直接转发给第二通信装置45。
S5、第二通信装置可以直接将客户端41所请求的目标数据发送给客户端41,整个交互过程只增加了数据迁移步骤中的极少流量,消除了各节点间传输资源所消耗的板间流量。
具体的,本申请实施例提供了一种数据请求方法,如图5所示,该方法包括:
S101、负载均衡服务器43从客户端41接收请求消息,并根据分发规则转发给第一通信装置44。
客户端41第一次通过边缘网关42向负载均衡服务器43发送请求消息,以请求目标数据,例如,请求直播或点播中的视频。负载均衡服务器43根据分发规则将请求消息发送给第一通信装置44。相应地,第一通信装置44从负载均衡服务器43接收来自客户端41的请求消息。
负载均衡服务器43根据分发规则确定将请求消息转发给第一通信装置44,负载均衡服务器43此时会建立流表项,流表项中包括五元组与第一通信装置44的唯一标识(例如自定义标识,或者,第一通信装置44的真实IP地址或MAC地址)之间的映射关系,或者,包括第一通信装置44的唯一标识(例如包括在流表项的五元组中)。流表项用于指示将来自客户端41的消息转发给第一通信装置44。
五元组中包括源IP地址(客户端41的IP地址)、源端口号(客户端41的端口号)、目的IP地址(第一通信装置44或第二通信装置45的IP地址(真实IP地址或虚拟IP地址))、目的端口号(第一通信装置44或第二通信装置45的端口号)、通信协议。如前文所述的,第一通信装置44和第二通信装置45的虚拟IP地址相同而真实IP地址不同,当客户端41相同时,如果五元组中的目标IP地址采用第一通信装置44或第二通信装置45的真实IP地址,则第一通信装置44和第二通信装置45对应的五元组是不同的,负载均衡服务器43根据流表项中的五元组(其中包括第一通信装置44的唯一标识)或者第一通信装置44的唯一标识即可以将后续接收的来自客户端41的消息转发给第一通信装置44。如果五元组中的目标IP地址采用第一通信装置44或第二通信装置45的虚拟IP地址,则第一通信装置44和第二通信装置45对应的五元组是相同的,所以流表项中可以包括五元组与第一通信装置44的唯一标识之间的映射关系,以便负载均衡服务器43根据流表项中该映射关系将后续接收的来自客户端41的消息转发给第一通信装置44。
S102、第一通信装置44与客户端41建立第一会话。
第一通信装置44解析请求消息后与客户端41建立连接,针对第一会话采用的通信协议的不同,第一通信装置与客户端41建立第一会话的方式也不同。例如,对于HTTP、HTTPS等通信协议,第一通信装置与客户端41通过TCP建立第一会话。对于QUIC等通信协议,第一通信装置与客户端41通过UDP建立第一通信连接。
S103、第一通信装置44根据请求消息和资源列表确定目标数据存储于第二通信装置45。
由于第一通信装置44未存储客户端41请求的目标数据,第一通信装置44的应用层根据请求消息和资源列表确定客户端41请求的目标数据位于第二通信装置45。
资源列表指示了数据的标识与存储该数据的通信装置的唯一标识(例如MAC地址)之间的映射关系。请求消息中包括请求的目标数据的标识,第一通信装置44根据目标数据的标识查找资源列表,从而确定存储该目标数据的通信装置的唯一标识为第二通信装置45的唯一标识(例如自定义标识,或者,第二通信装置45的真实IP地址或MAC地址)。
S104、第一通信装置44向第二通信装置45发送第一会话的连接状态信息以及缓存的与客户端41之间通信的消息。
相应地,第二通信装置45从第一通信装置44接收第一通信装置44与客户端41之间的第一会话的连接状态信息以及来自客户端41的请求消息。
对于第一通信装置44向第二通信装置45发送第一会话的连接状态信息:
如图6中的S1所示的,第一通信装置44的管理面下发协议迁移命令,以迁移存储的第一会话的连接状态信息。
如图7中的S1所示的,在此期间,第一通信装置44会阻塞(cork)与客户端41之间传输的数据流,或者说,阻塞与客户端41之间的会话(session)。如图7中的S2所示的,第一通信装置44可以向第二通信装置45发送基于QUIC、HTTP、HTTPS、TCP、UDP等通信协议的第一会话的连接状态信息。
对于第一会话采用QUIC、HTTP、HTTPS等通信协议,第一会话的连接状态信息指该通信协议的链路状态,例如HTTPS通信协议的状态机的状态信息,QUIC通信协议的连接号(connection identification,CID)。对于第一会话采用TCP、UDP等通信协议,第一会话的连接状态信息指该通信协议的套接字信息,例如TCP通信协议的时间窗口状态信息,TCP通信协议的三次握手状态信息(例如顺序号(sequence number))。
对于第一通信装置44向第二通信装置45发送缓存的与客户端41之间通信的消息:
如图6中的S2所示的,第一通信装置44的管理面向转发模块下发数据迁移命令,以迁移缓存的与客户端41之间通信的消息。
其中,与客户端41之间通信的消息既可以包括第一通信装置44之前接收的请求消息,还可以包括第一通信装置44后续接收的来自客户端41的其他消息;与客户端41之间通信的消息既可以以原报文的形式发送,也可以以报文中有效信息的形式发送。
如图8所示,第一通信装置44缓存的与客户端41之间通信的消息包括在应用层(例如应用程序(application,APP))缓存的与客户端41之间通信的消息以及在内核层缓存的与客户端41之间通信的消息,所以,第一通信装置44通过应用层的报文转发来向第二通信装置45发送在应用层缓存的与客户端41之间通信的消息,第一通信装置44通过内核层的报文转发(例如XDP重定向(redirect))来向第二通信装置45发送在内核层缓存的与客户端41之间通信的消息以及在时间窗口期内缓存的报文。
S105、第二通信装置45根据第一会话的连接状态信息与客户端41建立第二会话。
如图7中的S3所示的,第二通信装置45根据第一会话的连接状态信息恢复(uncork)与客户端41的第二会话,进而恢复与客户端44之间的数据流。例如恢复HTTP通信协议的链路状态,恢复QUIC通信协议的链路状态等。
S106、第一通信装置44断开与客户端41的第一会话。
如图7中的S4所示的,第一通信装置44断开与客户端41的第一会话,此时,第一通信装置44会删除第一会话的连接状态信息。
S107、第二通信装置45通过第二会话向客户端41发送目标数据。
第二通信装置45可以采用DR模式,通过第二会话向客户端41发送目标数据。
需要说明的是步骤S105-步骤S107无先后执行顺序的要求。
S108、第二通信装置45向负载均衡服务器43发送第二通信装置45的唯一标识。
如图6中S3所示的,第二通信装置45的管理面向负载均衡服务器43发送流表更新命令,流表更新命令中包括第二通信装置45的唯一标识。如图7中S5所示的,第二通信装置45可以向负载均衡服务器43发送第二通信装置45的唯一标识,以更新负载均衡服务器43中的流表的流表项。
第二通信装置45的唯一标识可以包括自定义标识,或者,第二通信装置45的真实IP地址或MAC地址,或者,第二通信装置45的唯一标识可以包括其他能够唯一指示第二通信装置45的唯一标识。
S109、负载均衡服务器43根据第二通信装置45的唯一标识更新流表项。
如步骤S101中所描述的,在更新之前,流表项中包括五元组与第一通信装置44的唯一标识(例如自定义标识,或者,第一通信装置44的真实IP地址或MAC地址)之间的映射关系,或者,包括第一通信装置44的唯一标识,此时流表项用于指示将来自客户端41的消息转发给第一通信装置44。在更新之后,流表项中包括五元组与第二通信装置45的唯一标识(例如自定义标识,或者,第二通信装置45的真实IP地址或MAC地址)之间的映射关系,或者,包括第二通信装置45的唯一标识,此时流表项用于指示将来自客户端41的消息转发给第二通信装置45。
如图9所示,与图1中原方案相比,如果采用原方案则要经过如下过程:S1、客户端41向负载均衡服务器43发送请求消息以请求目标数据,例如,请求播放视频。S2、负载均衡服务器43将请求消息随机转发至第一通信装置44。S3、第一通信装置44解析请求消息所请求的目标数据不在本地,所以向第二通信装置45请求目标数据。S4、第一通信装置44向主机客户端41返回包括目标数据的响应消息。
而采用本申请上述方案后,则经过如下过程:S1’、第二通信装置45指示负载均衡服务器43更新流表后。S2’、负载均衡服务器43可以根据更新后的流表,将后续接收的来自客户端41的消息直接转发给第二通信装置45。S3’、第二通信装置45将目标数据发送给客户端41。从而避免第一通信装置44与第二通信装置45之间传输目标数据。
本申请实施例提供的数据请求方法、通信装置、服务器和通信系统,通过在存储数据的通信装置之间传输会话的连接状态信息和缓存的与客户端之间通信的消息,代替在存储数据的通信装置之间传输目标数据,可以减少存储数据的通信装置之间的流量,减少通信装置的数量,节约成本,减少首包(开频)的时延。并且不限于云场景、CDN场景,还可以应用于存在板间流量的其他场景。
如图10所示,本申请实施例还提供了一种通信装置1000,该通信装置1000可以为前文所述的第一通信装置44、第二通信装置45或负载均衡服务器43(可称为第三通信装置),用于执行图5所示的方法。该通信装置1000包括处理模块1001和通信模块1002。
例如,当该通信装置1000为第一通信装置44时,通信模块1002用于从负载均衡服务器接收来自客户端的请求消息,请求消息用于请求目标数据。处理模块1001用于与客户端建立第一会话。处理模块1001用于根据请求消息和资源列表确定目标数据存储于第二通信装置。通信模块1002还用于向第二通信装置发送第一会话的连接状态信息以及缓存的与客户端之间通信的消息。处理模块1001还用于断开第一会话。
再例如,当该通信装置1000为第二通信装置45时,通信模块1002用于从第一通信装置接收第一通信装置与客户端之间的第一会话的连接状态信息以及缓存的与客户端之间通信的消息,与客户端之间通信的消息包括请求消息,请求消息用于请求目标数据。处理模块1001用于根据连接状态信息与客户端建立第二会话;通信模块1002用于通过第二会话向客户端发送目标数据;通信模块1002用于向负载均衡服务器发送第二通信装置的唯一标识,第二通信装置的唯一标识用于更新流表项,在更新之前,流表项用于指示将来自客户端的消息转发给第一通信装置,在更新之后,流表项用于指示将来自客户端的消息转发给第二通信装置。
再例如,当该通信装置1000为负载均衡服务器43时,通信模块1002用于向第一通信装置发送来自客户端的请求消息,请求消息用于请求目标数据;处理模块1001用于建立流表项,流表项指示将来自客户端的消息转发给第一通信装置;通信模块1002用于从第二通信装置接收第二通信装置的唯一标识;处理模块1001用于根据第二通信装置的唯一标识更新流表项,流表项指示将来自客户端的消息转发给第二通信装置。
本申请实施例中的第一通信装置44、第二通信装置45和负载均衡服务器42可以通过图11中的通信装置(也可以称之为通信设备)1100来实现。图11所示为本申请实施例提供的通信设备1100的结构示意图。该通信设备1100包括一个或多个处理器1101、存储器1102以及至少一个通信接口1103。
处理器1101可以是一个芯片。例如,可以是现场可编程门阵列(fieldprogrammable gate array,FPGA),可以是专用集成芯片(application specificintegrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(microcontroller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。处理器1101可以对应前文所述的处理模块1001。
通信接口1103,可以是收发模块用于与其他设备或通信网络通信,如以太网、无线局域网(wireless local area networks,WLAN)等。通信接口1103也可以是位于处理器1101内的收发电路,用以实现处理器的信号输入和信号输出。通信接口1103负责与其他设备或通信网络通信,本申请实施例对此不做具体限定。通信接口1103可以对应前文所述的通信模块1002。
存储器1102可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1102可以是独立存在,通过通信线路与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1102用于存储指令,并由处理器1101来执行。处理器1101用于执行存储器1102中存储的指令,从而实现本申请实施例中提供的方法。本申请实施例中的指令也可以称之为应用程序代码,本申请实施例对此不做具体限定。
本申请实施例提供一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,当指令被通信装置执行时使通信装置执行如图5所示的方法。
本申请实施例提供一种包括指令的计算机程序产品,当指令在通信装置上运行时,使得通信装置执行如图5所示的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种数据请求方法,其特征在于,包括:
第二通信装置从第一通信装置接收所述第一通信装置与客户端之间的第一会话的连接状态信息以及缓存的与所述客户端之间通信的消息,与所述客户端之间通信的消息包括请求消息,所述请求消息用于请求目标数据;
所述第二通信装置根据所述连接状态信息与所述客户端建立第二会话;
所述第二通信装置通过所述第二会话向所述客户端发送所述目标数据;
所述第二通信装置向负载均衡服务器发送所述第二通信装置的唯一标识,所述第二通信装置的唯一标识用于更新流表项,在更新之前,所述流表项用于指示将来自所述客户端的消息转发给所述第一通信装置,在更新之后,所述流表项用于指示将来自所述客户端的消息转发给所述第二通信装置。
2.根据权利要求1所述的方法,其特征在于,所述第二通信装置的唯一标识为自定义标识,或者,所述第二通信装置的真实网络协议地址,或者,所述第二通信装置的媒体接入控制地址。
3.一种数据请求方法,其特征在于,包括:
负载均衡服务器向第一通信装置发送来自客户端的请求消息,所述请求消息用于请求目标数据;
所述负载均衡服务器建立流表项,所述流表项指示将来自所述客户端的消息转发给所述第一通信装置;
所述负载均衡服务器从第二通信装置接收所述第二通信装置的唯一标识;
所述负载均衡服务器根据所述第二通信装置的唯一标识更新所述流表项,所述流表项指示将来自所述客户端的消息转发给所述第二通信装置。
4.根据权利要求3所述的方法,其特征在于,所述第二通信装置的唯一标识为自定义标识,或者,所述第二通信装置的真实网络协议地址,或者,所述第二通信装置的媒体接入控制地址。
5.一种数据请求方法,其特征在于,包括:
第一通信装置从负载均衡服务器接收来自客户端的请求消息,所述请求消息用于请求目标数据;
所述第一通信装置与所述客户端建立第一会话;
所述第一通信装置根据所述请求消息和资源列表确定所述目标数据存储于第二通信装置;
所述第一通信装置向所述第二通信装置发送所述第一会话的连接状态信息以及缓存的与所述客户端之间通信的消息;
所述第一通信装置断开所述第一会话。
6.一种第二通信装置,其特征在于,包括:通信模块和处理模块,
所述通信模块,用于从第一通信装置接收所述第一通信装置与客户端之间的第一会话的连接状态信息以及缓存的与所述客户端之间通信的消息,与所述客户端之间通信的消息包括请求消息,所述请求消息用于请求目标数据;
所述处理模块,用于根据所述连接状态信息与所述客户端建立第二会话;
所述通信模块,用于通过所述第二会话向所述客户端发送所述目标数据;
所述通信模块,用于向负载均衡服务器发送所述第二通信装置的唯一标识,所述第二通信装置的唯一标识用于更新流表项,在更新之前,所述流表项用于指示将来自所述客户端的消息转发给所述第一通信装置,在更新之后,所述流表项用于指示将来自所述客户端的消息转发给所述第二通信装置。
7.根据权利要求6所述的第二通信装置,其特征在于,所述第二通信装置的唯一标识为自定义标识,或者,所述第二通信装置的真实网络协议地址,或者,所述第二通信装置的媒体接入控制地址。
8.一种第三通信装置,其特征在于,包括:通信模块和处理模块,
所述通信模块,用于向第一通信装置发送来自客户端的请求消息,所述请求消息用于请求目标数据;
所述处理模块,用于建立流表项,所述流表项指示将来自所述客户端的消息转发给所述第一通信装置;
所述通信模块,用于从第二通信装置接收所述第二通信装置的唯一标识;
所述处理模块,用于根据所述第二通信装置的唯一标识更新所述流表项,所述流表项指示将来自所述客户端的消息转发给所述第二通信装置。
9.根据权利要求8所述的第三通信装置,其特征在于,所述第二通信装置的唯一标识为自定义标识,或者,所述第二通信装置的真实网络协议地址,或者,所述第二通信装置的媒体接入控制地址。
10.一种第一通信装置,其特征在于,包括:通信模块和处理模块,
所述通信模块,用于从负载均衡服务器接收来自客户端的请求消息,所述请求消息用于请求目标数据;
所述处理模块,用于与所述客户端建立第一会话;
所述处理模块,用于根据所述请求消息和资源列表确定所述目标数据存储于第二通信装置;
所述通信模块,用于向所述第二通信装置发送所述第一会话的连接状态信息以及缓存的与所述客户端之间通信的消息;
所述处理模块,用于断开所述第一会话。
11.一种通信系统,其特征在于,包括如权利要求6-7任一项所述的第二通信装置,如权利要求8-9任一项所述的第三通信装置,以及,如权利要求10所述的第一通信装置。
12.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,当所述指令在通信装置执行时,使得所述通信装置执行如权利要求1-2任一项所述的方法,或者,执行如权利要求3-4任一项所述的方法,或者,执行如权利要求5所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111178020.4A CN115967679A (zh) | 2021-10-09 | 2021-10-09 | 数据请求方法、通信装置和通信系统 |
| PCT/CN2022/122228 WO2023056873A1 (zh) | 2021-10-09 | 2022-09-28 | 数据请求方法、通信装置和通信系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111178020.4A CN115967679A (zh) | 2021-10-09 | 2021-10-09 | 数据请求方法、通信装置和通信系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115967679A true CN115967679A (zh) | 2023-04-14 |
Family
ID=85803914
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111178020.4A Pending CN115967679A (zh) | 2021-10-09 | 2021-10-09 | 数据请求方法、通信装置和通信系统 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115967679A (zh) |
| WO (1) | WO2023056873A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116886561A (zh) * | 2023-08-16 | 2023-10-13 | 抖音视界有限公司 | 数据通信方法、装置、系统、电子设备及存储介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102333130A (zh) * | 2011-10-31 | 2012-01-25 | 北京蓝汛通信技术有限责任公司 | 一种访问缓存服务器的方法、系统及缓存智能调度器 |
| US9559964B2 (en) * | 2014-01-31 | 2017-01-31 | Verizon Digital Media Services Inc. | Control message routing within anycast reliant platforms |
| CN107872478A (zh) * | 2016-09-26 | 2018-04-03 | 中国移动通信有限公司研究院 | 一种内容缓存方法、装置和系统 |
| CN106302225B (zh) * | 2016-10-18 | 2019-05-03 | 优刻得科技股份有限公司 | 一种服务器负载均衡的方法与装置 |
| CN108076142A (zh) * | 2017-11-28 | 2018-05-25 | 郑州云海信息技术有限公司 | 一种基于cdn技术加速用户请求的方法及系统 |
-
2021
- 2021-10-09 CN CN202111178020.4A patent/CN115967679A/zh active Pending
-
2022
- 2022-09-28 WO PCT/CN2022/122228 patent/WO2023056873A1/zh not_active Ceased
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116886561A (zh) * | 2023-08-16 | 2023-10-13 | 抖音视界有限公司 | 数据通信方法、装置、系统、电子设备及存储介质 |
| CN116886561B (zh) * | 2023-08-16 | 2025-08-19 | 抖音视界有限公司 | 数据通信方法、装置、系统、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023056873A1 (zh) | 2023-04-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10694005B2 (en) | Hardware-based packet forwarding for the transport layer | |
| CN110313163B (zh) | 分布式计算系统中的负载平衡 | |
| US11277313B2 (en) | Data transmission method and corresponding device | |
| US10375193B2 (en) | Source IP address transparency systems and methods | |
| US9647954B2 (en) | Method and system for optimizing a network by independently scaling control segments and data flow | |
| US20210329069A1 (en) | Distributed resilient load-balancing for multipath transport protocols | |
| CN108449282A (zh) | 一种负载均衡方法及其装置 | |
| WO2021047515A1 (zh) | 一种服务路由方法及装置 | |
| EP3800867B1 (en) | Load balancing method and device | |
| CN111107672B (zh) | 一种建立多路径连接的子流的方法、装置和系统 | |
| WO2014023003A1 (zh) | 控制数据传输的方法、装置和系统 | |
| JP2017517220A (ja) | OpenFlow通信方法及びシステム、制御部、並びにサービスゲートウェイ | |
| CN108200158A (zh) | 请求传输系统、方法、装置及存储介质 | |
| WO2022089169A1 (zh) | 计算路由信息发送方法、装置、设备及存储介质 | |
| WO2023151264A1 (zh) | 负载均衡方法、装置、节点及存储介质 | |
| JP2024072265A (ja) | レジデンシャルゲートウェイへのネットワークアクセスのための装置、方法、および非一時的コンピュータ可読記憶媒体 | |
| WO2024113776A1 (zh) | 数据传输方法以及相关设备 | |
| WO2023186109A1 (zh) | 节点访问方法以及数据传输系统 | |
| WO2023056873A1 (zh) | 数据请求方法、通信装置和通信系统 | |
| CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
| Ivanisenko | Methods and Algorithms of load balancing | |
| CN115460213A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
| US11272014B2 (en) | Systems and methods for reducing connection setup latency | |
| CN108848175A (zh) | 一种创建tcp连接的方法及装置 | |
| CN119814789A (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 |