CN115967679A - Data request method, communication device and communication system - Google Patents

Data request method, communication device and communication system Download PDF

Info

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
communication
message
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
Application number
CN202111178020.4A
Other languages
Chinese (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 CN202111178020.4A priority Critical patent/CN115967679A/en
Priority to PCT/CN2022/122228 priority patent/WO2023056873A1/en
Publication of CN115967679A publication Critical patent/CN115967679A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware

Abstract

The application discloses a data request method, a communication device and a communication system, relates to the field of computers, and is used for reducing flow among communication devices for storing data. The data request method comprises the following steps: the second communication device receives connection state information of a first session between the first communication device and the client and a message communicated with the client from the first communication device, wherein the message communicated with the client comprises a request message for requesting target data; the second communication device establishes a second session with the client according to the connection state information; the second communication device sends the target data to the client through the second session; the second communication device sends the unique identification of the second communication device to the load balancing server, the unique identification of the second communication device is used for updating the flow table item, the flow table item is used for indicating that the message from the client is forwarded to the first communication device before updating, and the flow table item is used for indicating that the message from the client is forwarded to the second communication device after updating.

Description

Data request method, communication device and communication system
Technical Field
The present application relates to the field of computers, and in particular, to a data request method, a communication device, and a communication system.
Background
With the rapid development of new internet technologies and new services such as mobile internet, cloud computing, big data and the like, the Content Delivery Network (CDN) is established to relieve the internet network congestion, improve the internet service response speed, and improve the user service experience.
In the CDN, a client sends a request message to one of a plurality of real servers through a load balancing server to request target data, and because the load balancing server cannot perceive a storage location of the target data, the load balancing server forwards the request message to one real server at a time, the target data may not be stored on the real server, and the real server may obtain the target data from another real server and send the target data to the client. The transmission of target data between real servers can put a great strain on system bandwidth.
Disclosure of Invention
The embodiment of the application provides a data request method, a communication device and a communication system, which are used for reducing the flow between the communication devices for storing data.
In order to achieve the above purpose, the embodiment of the present application adopts the following technical solutions:
in a first aspect, a data request method is provided, including: the second communication device receives connection state information of a first session between the first communication device and the client and cached messages communicated with the client from the first communication device, wherein the messages communicated with the client comprise request messages, and the request messages are used for requesting target data; the second communication device establishes a second session with the client according to the connection state information; the second communication device sends the target data to the client through the second session; and the second communication device sends the unique identification of the second communication device to the load balancing server, the unique identification of the second communication device is used for updating the flow table entry, the flow table entry is used for indicating that the message from the client is forwarded to the first communication device before updating, and the flow table entry is used for indicating that the message from the client is forwarded to the second communication device after updating.
According to the data request method provided by the embodiment of the application, the connection state information of the session and the cached message communicated with the client are transmitted between the communication devices for storing the data, and the target data is transmitted between the communication devices for storing the data instead, so that the flow between the communication devices for storing the data can be reduced, the number of the communication devices can be reduced, the cost can be saved, and the time delay of the first packet (open frequency) can be reduced.
In a possible embodiment, the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device. The flow table entry includes a mapping relationship between the five-tuple and a unique identifier (e.g., a custom identifier, or a real network protocol address of the second communication device, or a mac address of the second communication device) of the second communication device, or includes the unique identifier of the second communication device. The present application does not limit the specific form of the unique identifier of the second communication device as long as it is distinguishable from the first communication device.
In a second aspect, a data request method is provided, including: the load balancing server sends a request message from the client to the first communication device, wherein the request message is used for requesting target data; the load balancing server establishes a flow entry, the flow entry indicating that a message from the client is forwarded to the first communication device; the load balancing server receives the unique identification of the second communication device from the second communication device; the load balancing server updates a flow entry according to the unique identifier of the second communication device, the flow entry indicating that the message from the client is forwarded to the second communication device.
In a possible embodiment, the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device.
In a third aspect, a data request method is provided, including: the method comprises the steps that a first communication device receives a request message from a client from a load balancing server, wherein the request message is used for requesting target data; a first communication device establishes a first session with a client; the first communication device determines that the target data is stored in the second communication device according to the request message and the resource list; the first communication device sends the connection state information of the first session and the cached message communicated with the client to the second communication device; the first communication device disconnects the first session.
In a fourth aspect, a second communication apparatus is provided, including: the communication module is used for receiving connection state information of a first session between the first communication device and the client and cached messages communicated with the client from the first communication device, wherein the messages communicated with the client comprise request messages, and the request messages are used for requesting target data; the processing module is used for establishing a second session with the client according to the connection state information; the communication module is used for sending the target data to the client through the second session; and the communication module is used for sending the unique identifier of the second communication device to the load balancing server, the unique identifier of the second communication device is used for updating the flow table entry, the flow table entry is used for indicating that the message from the client is forwarded to the first communication device before updating, and the flow table entry is used for indicating that the message from the client is forwarded to the second communication device after updating.
In a possible embodiment, the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device.
In a fifth aspect, a third communication device is provided, including: the communication module is used for sending a request message from a client to the first communication device, and the request message is used for requesting target data; a processing module for establishing a flow entry indicating that a message from a client is to be forwarded to a first communication device; a communication module for receiving a unique identifier of a second communication device from the second communication device; and the processing module is used for updating a flow table entry according to the unique identifier of the second communication device, wherein the flow table entry indicates that the message from the client is forwarded to the second communication device.
In a possible embodiment, the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device.
In a sixth aspect, a first communication device is provided, which includes: the communication module is used for receiving a request message from the client from the load balancing server, and the request message is used for requesting target data; the processing module is used for establishing a first session with the client; the processing module is used for determining that the target data is stored in the second communication device according to the request message and the resource list; the communication module is used for sending the connection state information of the first session and the cached message communicated with the client to the second communication device; and the processing module is used for disconnecting the first session.
In a seventh aspect, a communication system is provided, which includes the second communication apparatus according to the fourth aspect and any implementation manner thereof, the third communication apparatus according to the fifth aspect and any implementation manner thereof, and the first communication apparatus according to the sixth aspect.
In an eighth aspect, there is provided a computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed on a communication apparatus, cause the communication apparatus to perform the method of the first aspect and any of its embodiments, or the second aspect and any of its embodiments, or the third aspect.
In a ninth aspect, there is provided a computer program product comprising instructions which, when run on a communication apparatus, cause the communication apparatus to perform the method of the first aspect and any of its embodiments, or the second aspect and any of its embodiments, or the third aspect.
With regard to the technical effects of the second aspect to the ninth aspect, reference is made to the technical effects of the first aspect and any one of the embodiments thereof.
Drawings
Fig. 1 is a schematic architecture diagram of a communication system according to an embodiment of the present application;
fig. 2 is a schematic architecture diagram of another communication system according to an embodiment of the present application;
fig. 3 is a schematic architecture diagram of another communication system according to an embodiment of the present application;
fig. 4 is a schematic architecture diagram of another communication system according to an embodiment of the present application;
fig. 5 is a schematic flowchart of a data requesting method according to an embodiment of the present application;
fig. 6 is a schematic diagram illustrating a command issued by a communication device according to an embodiment of the present application;
fig. 7 is a schematic diagram illustrating migration of connection state information of a session according to an embodiment of the present application;
fig. 8 is a schematic diagram illustrating migration of a cached message according to an embodiment of the present application;
FIG. 9 is a schematic diagram of a comparison between a prior art and the present invention according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a communication device according to an embodiment of the present application;
fig. 11 is a schematic structural diagram of another communication device according to an embodiment of the present application.
Detailed Description
It should be noted that the terms "first", "second", and the like, referred to in the embodiments of the present application, are used only for distinguishing the same type of features, and are not to be construed as indicating relative importance, quantity, order, and the like.
Reference throughout this specification to the word "exemplary" or "such as" is used to indicate that a particular embodiment is referred to as being an example, instance, or illustration. Any embodiment or design described herein as "exemplary" or "such as" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the word "exemplary" or "such as" is intended to present concepts related in a concrete fashion.
The concept to which the present application relates is first described:
a Content Delivery Network (CDN) is an intelligent virtual network constructed on the basis of an existing network, and enables a user to obtain required content nearby by using functions of load balancing, content delivery, scheduling and the like of a central platform by means of edge servers deployed in various places, so as to reduce network congestion and improve user access response speed and hit rate.
Elastic Load Balancing (ELB), which automatically distributes incoming application traffic among multiple targets, can handle varying application traffic loads.
Application Load Balancing (ALB) is a load balancing service specially oriented to application layer load scenes such as hypertext transfer protocol (HTTP), hypertext transfer security protocol (HTTPs), and User Datagram Protocol (UDP) internet connections (QUICs), and has ultra-high elasticity and large-scale seven-layer traffic processing capability.
HTTP, an application layer protocol for distributed, collaborative and hypermedia information systems, is the basis for data communication over the internet.
HTTPS, a transport protocol for secure communications over a computer network. HTTPS communicates via HTTP, but encrypts packets using Secure Sockets Layer (SSL)/secure transport layer protocol (TLS).
UDP, a simple datagram-oriented communication protocol, is located at the transport layer.
QUIC, a common transport layer network protocol, implemented using UDP to create several multi-way connections between two endpoints, aims to provide reliability almost equivalent to a Transmission Control Protocol (TCP) connection, but with greatly reduced latency.
TCP, a connection-oriented, reliable, byte-stream based transport layer communication protocol.
Media Access Control (MAC), which is a lower part of the data link layer in a local area network, provides addressing and media access control so that different devices or nodes on the network can communicate on a multipoint network without collision.
Express data path (XDP), a high performance, programmable network data path for Linux kernels.
The inter-board traffic is the traffic request of a service user, and the useless data copy and network traffic transmission which are additionally generated when the traffic request is served between production equipment and service processes.
The five-tuple refers to an entry in the flow table, and includes a source Internet Protocol (IP) address, a source port number, a destination IP address, a destination port number, and a communication protocol of the packet forwarding path.
A Real Server (RS), a real server, may also be referred to as a back-end resource node, each node in a cluster, and the like.
Direct Routing (DR), a direct routing mode of the load balancing server, a scheduler of the load balancing server only receives a request message sent by a client and forwards the request message to a RS of a back end, and the RS of the back end directly sends a response message including target data to the client after processing the request message without passing through the scheduler again. The mode is suitable for scenes with small uploading flow and large downloading flow.
As shown in fig. 1, an embodiment of the present application provides a communication system based on a CDN network, including: a client 11, an ELB server 12, and a plurality of RSs 13, wherein the ELB server 12 employs a direct routing mode. The working principle of the communication system is as follows:
s1, the client 11 sends a request message to the ELB server 12.
The request message is used to request target data, for example, to request playing of a video.
S2, the ELB server 12 randomly forwards the request message to the RS 13.
For example, the ELB server 12 randomly forwards the request message to RS1.
And S3, the RS 13 analyzes whether the target data requested by the request message is in the server, and if not, the RS requests other RSs for the target data.
For example, RS1 checks that the target data requested by the request message is not in RS1, then RS1 requests the target data from RS 2.
And S4, the RS 13 returns a response message including the target data to the host client.
Problems with this communication system: the ELB server 12 cannot sense the traffic, so it cannot distribute the request message to the designated RS 13, and in step S3, inter-board traffic is generated, which accounts for about 40% of the total traffic, increasing traffic load, and at the same time, the accuracy is only 1/N (N is the number of RSs 13), resulting in wasted server resources (wasted (N-1)/N).
As shown in fig. 2, an embodiment of the present application provides another CDN network-based communication system, including: a client 11, an ELB server 12, a plurality of RSs 13, and a plurality of ALB servers 14. The working principle of the communication system is as follows:
s1, the client 11 sends a request message to the ELB server 12.
And S2, the ELB server 12 forwards the request message to the ALB server 14 according to the distribution rule.
And S3, the ALB server 14 analyzes the target address in the request message and forwards the request message to the corresponding RS 13.
S4, RS 13 sends a response message including the target data to the ALB server 14.
S5, the ALB server 14 sends a response message including the target data to the client 11.
Problems with this communication system: although the ALB server 14 can directly find the RS 13 storing the target data, it still cannot solve the problem of inter-board traffic. In the whole flow, only the inter-board traffic between the RS 13 is transferred to the traffic between the RS 13 and the ALB server 14, the traffic is not reduced, and the pressure on the bandwidth is not eliminated. And the server 13 can become a bottleneck point causing traffic congestion and increasing latency. When the traffic is too large, the ALB server 13 may become a bottleneck point in the whole request link, resulting in a long delay of the whole request and a poor user experience. In addition, resource waste is caused, and the newly added ALB server 14 needs to be implemented by a software server or hardware, which causes large-scale resource waste and increases the cost of the service provider.
As shown in fig. 3, an embodiment of the present application provides another CDN network-based communication system, including: a client 11, an ELB server 12, and a plurality of RSs 13. The working principle of the communication system is as follows:
s1, the client 11 sends a request message to the ELB server 12.
S2, the ELB server 12 forwards the request message to the RS 13 according to the distribution rules.
S3, the RS 13 requests whether the target data requested by the message is in the server, if so, a response message comprising the target data is returned, and if not, a response message comprising an error indication is returned, and the connection is disconnected.
Optionally, if the response message is not in the server, the returned response message may further include information such as the MAC and the IP address of the target RS.
And S4, the client 11 receives the response message, and if the response message comprises error information, the request message is sent again until the target data is hit.
Alternatively, if the response message further includes the MAC, IP address, etc. information of the target RS, the client 11 may directly send the request message to the target RS through the ELB server 12.
For example, the dotted arrow in fig. 3 shows the interaction flow when the target data requested by the request message is not stored in RS1, and the solid arrow shows the interaction flow when the target data requested by the request message is stored in RS 2.
Problems with this communication system: although the inter-board traffic can be reduced theoretically by the multiple reconnection method, the randomness is strong, the end-to-end traffic is increased, the client needs to be matched with a modification code, and optionally, the ELB server also needs to be matched with the modification code to adapt to the multiple reconnection and influence the delay of the first packet (open frequency), and the delay of the first packet is neither stable nor predictable.
As shown in fig. 4, an embodiment of the present application provides another CDN network-based communication system, including: a client 41, an edge gateway 42, a load balancing server 43, a first communication device 44, a second communication device 45, a back-end host 46, and a cloud server 47.
The edge gateway 42 is used to forward the request message from the client 41 to the load balancing server 43.
The backend host 46 is configured to query the cloud server for the resource data and feed back the resource data to the first communication device 44 or the second communication device 45.
Cloud server 47 is used to provide and update resource data (e.g., video, audio, etc.).
The load balancing server 43 is used to distribute the request message from the client 41 to the first communication device 44 or the second communication device 45. The load balancing server 43 stores a flow table, the flow table includes a flow table entry, and when the load balancing server 43 receives the request message from the client 41 for the first time, and after determining that the request message needs to be forwarded to the first communication device 44 according to the distribution rule, the load balancing server 43 creates a new flow table entry to instruct to forward the subsequent message from the client 41 to the first communication device 44. If the load balancing server 43 subsequently receives further messages from the client 41, the load balancing server 43 may forward the messages to the first communication device 44 according to the flow table entry.
The first communication device 44 and the second communication device 45 may be the RS, or a board card on the RS, or an RS processor, etc. as described above. Wherein the distinguishing and associating of the first communication device 44 and the second communication device 45 includes: the first communication means 44 does not store the target data requested by the client 41, and the second communication means 45 stores the target data requested by the client 41. The first communication device 44 and the second communication device 45 have the same Virtual Internet Protocol (VIP) address and the same port number, but the unique identifiers (e.g., real IP address, MAC address) of the first communication device 44 and the second communication device 45 are different, so that the load balancing server 43 distinguishes the first communication device 44 and the second communication device 45 according to the unique identifiers.
The communication system can execute the following data request method:
s1, the client 41 sends a request message to the load balancing server 43 through the edge gateway 42 for the first time to request the target data. The load balancing server 43 sends the request message to the first communication device 44 according to the distribution rule.
S2, the first communication device 44 analyzes the request message and then establishes a connection with the client 41, and since the first communication device 44 does not store the target data requested by the client 41, and the first communication device 44 determines that the target data requested by the client 41 is located in the second communication device 45, the management plane of the first communication device 44 sends an instruction to migrate the established session and related data to the second communication device 45.
S3, the second communication device 45 notifies the load balancing server 43 to update the flow table, and locates the subsequent request message for the same target data to the second communication device 45.
S4, the client 41 subsequently sends a request message to the load balancing server 43 through the edge gateway 42, and the load balancing server 43 directly forwards the request message to the second communication device 45 according to the updated flow table.
And S5, the second communication device can directly send the target data requested by the client 41 to the client 41, only a very small flow in the data migration step is added in the whole interaction process, and the inter-board flow consumed by transmission resources among all nodes is eliminated.
Specifically, an embodiment of the present application provides a data request method, as shown in fig. 5, the method includes:
s101, the load balancing server 43 receives the request message from the client 41, and forwards the request message to the first communication device 44 according to the distribution rule.
The client 41 sends a request message to the load balancing server 43 through the edge gateway 42 for the first time to request target data, e.g. to request a video on-air or on-demand. The load balancing server 43 sends the request message to the first communication device 44 according to the distribution rules. Accordingly, the first communication device 44 receives the request message from the client 41 from the load balancing server 43.
The load balancing server 43 determines to forward the request message to the first communication device 44 according to the distribution rule, and the load balancing server 43 creates a flow entry at this time, where the flow entry includes a mapping relationship between the quintuple and a unique identifier (e.g., a custom identifier, or a real IP address or a MAC address of the first communication device 44) of the first communication device 44, or includes a unique identifier of the first communication device 44 (e.g., included in the quintuple of the flow entry). The flow table entry is used to indicate that the message from the client 41 is to be forwarded to the first communication device 44.
The quintuple includes a source IP address (IP address of the client 41), a source port number (port number of the client 41), a destination IP address (real IP address or virtual IP address) of the first communication apparatus 44 or the second communication apparatus 45), a destination port number (port number of the first communication apparatus 44 or the second communication apparatus 45), and a communication protocol. As mentioned above, the virtual IP addresses of the first communication device 44 and the second communication device 45 are the same, and the real IP addresses are different, when the client 41 is the same, if the target IP address in the five-tuple adopts the real IP address of the first communication device 44 or the second communication device 45, the corresponding five-tuple of the first communication device 44 and the second communication device 45 is different, and the load balancing server 43 can forward the subsequently received message from the client 41 to the first communication device 44 according to the five-tuple (including the unique identifier of the first communication device 44) in the flow table entry or the unique identifier of the first communication device 44. If the target IP address in the five-tuple adopts the virtual IP address of the first communication device 44 or the second communication device 45, the five-tuples corresponding to the first communication device 44 and the second communication device 45 are the same, so the flow entry may include a mapping relationship between the five-tuple and the unique identifier of the first communication device 44, so that the load balancing server 43 forwards a subsequently received message from the client 41 to the first communication device 44 according to the mapping relationship in the flow entry.
S102, the first communicator 44 establishes a first session with the client 41.
The first communicator 44 analyzes the request message and establishes a connection with the client 41, and the first communicator and the client 41 establish a first session in a different manner according to a different communication protocol used for the first session. For example, for a communication protocol such as HTTP, HTTPs, etc., the first communication device establishes a first session with the client 41 through TCP. For a communication protocol such as QUIC, the first communication device establishes a first communication connection with the client 41 through UDP.
And S103, the first communication device 44 determines that the target data is stored in the second communication device 45 according to the request message and the resource list.
Since the first communication device 44 does not store the target data requested by the client 41, the application layer of the first communication device 44 determines that the target data requested by the client 41 is located at the second communication device 45 according to the request message and the resource list.
The resource list indicates a mapping between the identity of the data and the unique identity (e.g., MAC address) of the communication device storing the data. The request message includes the identification of the requested target data, and the first communication device 44 looks up the resource list according to the identification of the target data, thereby determining that the unique identification of the communication device storing the target data is the unique identification of the second communication device 45 (e.g., a custom identification, or the real IP address or MAC address of the second communication device 45).
S104, the first communication device 44 sends the connection status information of the first session and the cached message for communication with the client 41 to the second communication device 45.
Accordingly, the second communication device 45 receives the connection state information of the first session between the first communication device 44 and the client 41 and the request message from the client 41 from the first communication device 44.
For the first communication device 44 to send the connection state information of the first session to the second communication device 45:
as shown at S1 in fig. 6, the management plane of the first communication device 44 issues a protocol migration command to migrate the stored connection state information of the first session.
During this time, the first communication device 44 blocks (corrk) the data flow transmitted between the client 41 and the client 44, or blocks (session) the session between the client 41, as shown at S1 in fig. 7. As indicated by S2 in fig. 7, the first communication device 44 may transmit connection state information of the first session based on a communication protocol such as QUIC, HTTP, HTTPs, TCP, UDP, or the like, to the second communication device 45.
For the first session, communication protocols such as QUIC, HTTP, HTTPs, etc. are used, and the connection state information of the first session refers to the link state of the communication protocol, for example, the state information of the state machine of the HTTPs communication protocol, and the Connection Identification (CID) of the QUIC communication protocol. For the first session, a communication protocol such as TCP or UDP is used, and the connection status information of the first session refers to socket information of the communication protocol, such as time window status information of the TCP communication protocol and three-way handshake status information (e.g., sequence number) of the TCP communication protocol.
For the first communication device 44 to send the buffered message communicated with the client 41 to the second communication device 45:
as shown at S2 in fig. 6, the management plane of the first communication device 44 issues a data migration command to the forwarding module to migrate the cached messages communicated with the client 41.
The message communicated with the client 41 may include a request message previously received by the first communication device 44, and may also include other messages from the client 41 subsequently received by the first communication device 44; the message communicated with the client 41 can be sent in the form of an original message or in the form of effective information in the message.
As shown in fig. 8, the messages buffered by the first communication device 44 and communicated with the client 41 include messages buffered by an application layer (e.g., application (APP)) and communicated with the client 41 and messages buffered by a kernel layer and communicated with the client 41, so that the first communication device 44 sends the messages buffered by the application layer and communicated with the client 41 to the second communication device 45 through message forwarding by the application layer, and the first communication device 44 sends the messages buffered by the kernel layer and communicated with the client 41 and the messages buffered during the time window to the second communication device 45 through message forwarding (e.g., XDP redirect) by the kernel layer.
S105, the second communication device 45 establishes a second session with the client 41 according to the connection status information of the first session.
As shown in S3 in fig. 7, the second communication device 45 resumes (noncork) the second session with the client 41 according to the connection state information of the first session, and further resumes the data flow with the client 44. Such as restoring the link state of the HTTP communication protocol, restoring the link state of the QUIC communication protocol, etc.
S106, the first communication device 44 disconnects the first session with the client 41.
As shown in S4 in fig. 7, the first communication device 44 disconnects the first session with the client 41, and at this time, the first communication device 44 deletes the connection status information of the first session.
S107, the second communication device 45 transmits the target data to the client 41 through the second session.
The second communication device 45 may send the target data to the client 41 through the second session in the DR mode.
It should be noted that the steps S105 to S107 do not have the requirement of a sequential execution order.
S108, the second communication device 45 sends the unique identifier of the second communication device 45 to the load balancing server 43.
As shown in S3 in fig. 6, the management plane of the second communication device 45 sends a flow table update command to the load balancing server 43, where the flow table update command includes the unique identifier of the second communication device 45. As shown in S5 in fig. 7, the second communication device 45 may send the unique identification of the second communication device 45 to the load balancing server 43 to update the flow table entry of the flow table in the load balancing server 43.
The unique identifier of the second communication device 45 may comprise a custom identifier, or a real IP address or MAC address of the second communication device 45, or the unique identifier of the second communication device 45 may comprise another unique identifier capable of uniquely identifying the second communication device 45.
S109, the load balancing server 43 updates the flow entry according to the unique identifier of the second communication device 45.
As described in step S101, before the update, the flow entry includes a mapping relationship between the five-tuple and a unique identifier (e.g., a custom identifier, or a real IP address or a MAC address of the first communication device 44) of the first communication device 44, or includes a unique identifier of the first communication device 44, and at this time, the flow entry is used to instruct to forward the message from the client 41 to the first communication device 44. After the update, the flow entry includes a mapping relationship between the five-tuple and a unique identifier (e.g., a custom identifier, or a real IP address or MAC address of the second communication device 45) of the second communication device 45, or includes a unique identifier of the second communication device 45, and the flow entry is used to indicate that a message from the client 41 is forwarded to the second communication device 45.
As shown in fig. 9, compared with the original scheme in fig. 1, the following process is performed if the original scheme is adopted: s1, the client 41 sends a request message to the load balancing server 43 to request target data, for example, to request to play a video. S2, the load balancing server 43 randomly forwards the request message to the first communication device 44. S3, the first communication device 44 requests the second communication device 45 for the target data because the target data requested by the analysis of the request message is not local. S4, the first communication device 44 returns a response message including the target data to the host client 41.
After the scheme is adopted, the following processes are carried out: s1', the second communication device 45 instructs the load balancing server 43 to update the flow table. S2', the load balancing server 43 may directly forward the message from the client 41 to be subsequently received to the second communication device 45 according to the updated flow table. S3', the second communication device 45 transmits the target data to the client 41. Thereby avoiding the transmission of the target data between the first communication device 44 and the second communication device 45.
According to the data request method, the communication devices, the server and the communication system, the connection state information of the session and the cached message communicated with the client are transmitted between the communication devices storing the data, and the target data is transmitted between the communication devices storing the data instead of transmitting the target data, so that the flow between the communication devices storing the data can be reduced, the number of the communication devices is reduced, the cost is saved, and the time delay of the first packet (open frequency) is reduced. The method is not limited to a cloud scene and a CDN scene, and can also be applied to other scenes with inter-board traffic.
As shown in fig. 10, an embodiment of the present application further provides a communication apparatus 1000, where the communication apparatus 1000 may be the first communication apparatus 44, the second communication apparatus 45, or the load balancing server 43 (which may be referred to as a third communication apparatus) described above, for performing the method shown in fig. 5. The communication device 1000 includes a processing module 1001 and a communication module 1002.
For example, when the communication device 1000 is the first communication device 44, the communication module 1002 is configured to receive a request message from the load balancing server, where the request message is used to request target data. The processing module 1001 is configured to establish a first session with a client. The processing module 1001 is configured to determine that the target data is stored in the second communication device according to the request message and the resource list. The communication module 1002 is further configured to send the connection state information of the first session and the cached message for communication with the client to the second communication device. The processing module 1001 is also configured to disconnect the first session.
For another example, when the communication device 1000 is the second communication device 45, the communication module 1002 is configured to receive, from the first communication device, connection status information of a first session between the first communication device and the client and buffered messages communicated with the client, where the messages communicated with the client include a request message, and the request message is used for requesting target data. The processing module 1001 is configured to establish a second session with the client according to the connection state information; the communication module 1002 is configured to send target data to the client through the second session; the communication module 1002 is configured to send the unique identifier of the second communication device to the load balancing server, where the unique identifier of the second communication device is used to update the flow entry, where before the update, the flow entry is used to instruct the message from the client to be forwarded to the first communication device, and after the update, the flow entry is used to instruct the message from the client to be forwarded to the second communication device.
For another example, when the communication device 1000 is the load balancing server 43, the communication module 1002 is configured to send a request message from a client to the first communication device, where the request message is used to request target data; the processing module 1001 is configured to establish a flow entry, where the flow entry indicates that a message from a client is to be forwarded to a first communication device; the communication module 1002 is for receiving a unique identification of a second communication device from the second communication device; the processing module 1001 is configured to update a flow entry according to the unique identifier of the second communication device, where the flow entry indicates that a message from the client is to be forwarded to the second communication device.
The first communication device 44, the second communication device 45, and the load balancing server 42 in the embodiment of the present application may be implemented by a communication device (may also be referred to as a communication device) 1100 in fig. 11. Fig. 11 is a schematic structural diagram of a communication device 1100 according to an embodiment of the present application. The communication device 1100 includes one or more processors 1101, memory 1102, and at least one communication interface 1103.
The processor 1101 may be a chip. For example, the Field Programmable Gate Array (FPGA) may be a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), a system on chip (SoC), a Central Processing Unit (CPU), a Network Processor (NP), a Digital Signal Processing (DSP), a Microcontroller (MCU), a Programmable Logic Device (PLD) or other integrated chips. The processor 1101 may correspond to the processing module 1001 described above.
The communication interface 1103 may be a transceiver module for communicating with other devices or communication networks, such as ethernet, wireless Local Area Networks (WLAN), etc. The communication interface 1103 may also be a transceiver circuit located within the processor 1101 for implementing signal inputs and signal outputs of the processor. The communication interface 1103 is responsible for communicating with other devices or a communication network, which is not specifically limited in this embodiment of the present application. The communication interface 1103 may correspond to the communication module 1002 described previously.
The memory 1102 may be a device having a storage function. Such as, but not limited to, read-only memory (ROM) or other types of static storage devices that may store static information and instructions, random Access Memory (RAM) or other types of dynamic storage devices that may store information and instructions, electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage, optical disk storage (including compact disk, laser disk, optical disk, digital versatile disk, blu-ray disk, etc.), magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. The memory 1102 may be separate and coupled to the processor via a communication link. The memory may also be integral to the processor.
The memory 1102 is used for storing instructions and is executed by the processor 1101. The processor 1101 is configured to execute the instructions stored in the memory 1102, thereby implementing the methods provided in the embodiments of the present application. The instructions in the embodiments of the present application may also be referred to as application program codes, which are not specifically limited in the embodiments of the present application.
Embodiments of the present application provide a computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a communication device, cause the communication device to perform the method as shown in fig. 5.
Embodiments of the present application provide a computer program product comprising instructions which, when run on a communication apparatus, cause the communication apparatus to perform a method as shown in fig. 5.
It should be understood that, in the various embodiments of the present application, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
Those of ordinary skill in the art will appreciate that the various illustrative modules and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It can be clearly understood by those skilled in the art that, for convenience and simplicity of description, the specific working processes of the system, the apparatus, and the module described above may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus, and method may be implemented in other ways. For example, the above-described device embodiments are merely illustrative, and for example, the division of the modules is only one logical functional division, and other divisions may be realized in practice, for example, a plurality of modules or components may be combined or integrated into another device, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or modules, and may be in an electrical, mechanical or other form.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented using a software program, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. The procedures or functions described in accordance with the embodiments of the present application are all or partially generated upon loading and execution of computer program instructions on a computer. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website, computer, server, or data center to another website, computer, server, or data center via wire (e.g., coaxial cable, fiber optic, digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or can comprise one or more data storage devices, such as a server, a data center, etc., that can be integrated with the medium. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid State Disk (SSD)), among others.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (12)

1. A method of requesting data, comprising:
the method comprises the steps that a second communication device receives connection state information of a first session between the first communication device and a client and cached messages communicated with the client from the first communication device, wherein the messages communicated with the client comprise request messages, and the request messages are used for requesting target data;
the second communication device establishes a second session with the client according to the connection state information;
the second communication device sends the target data to the client through the second session;
the second communication device sends the unique identification of the second communication device to a load balancing server, the unique identification of the second communication device is used for updating a flow table item, before updating, the flow table item is used for indicating that the message from the client side is forwarded to the first communication device, and after updating, the flow table item is used for indicating that the message from the client side is forwarded to the second communication device.
2. The method of claim 1, wherein the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device.
3. A method of requesting data, comprising:
the load balancing server sends a request message from a client to a first communication device, wherein the request message is used for requesting target data;
the load balancing server establishing a flow entry indicating that a message from the client is to be forwarded to the first communication device;
the load balancing server receiving a unique identification of a second communication device from the second communication device;
the load balancing server updates the flow entry according to the unique identifier of the second communication device, wherein the flow entry indicates that the message from the client is forwarded to the second communication device.
4. The method of claim 3, wherein the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device.
5. A method of requesting data, comprising:
the method comprises the steps that a first communication device receives a request message from a client from a load balancing server, wherein the request message is used for requesting target data;
the first communication device establishing a first session with the client;
the first communication device determines that the target data is stored in a second communication device according to the request message and the resource list;
the first communication device sends the connection state information of the first session and the cached message communicated with the client to the second communication device;
the first communication device disconnects the first session.
6. A second communications device, comprising: a communication module and a processing module, wherein,
the communication module is used for receiving connection state information of a first session between a first communication device and a client and cached messages communicated with the client from the first communication device, wherein the messages communicated with the client comprise request messages, and the request messages are used for requesting target data;
the processing module is used for establishing a second session with the client according to the connection state information;
the communication module is used for sending the target data to the client through the second session;
the communication module is configured to send the unique identifier of the second communication device to a load balancing server, where the unique identifier of the second communication device is used to update a flow table entry, before the update, the flow table entry is used to instruct to forward the message from the client to the first communication device, and after the update, the flow table entry is used to instruct to forward the message from the client to the second communication device.
7. The second communications device of claim 6, wherein the unique identifier of the second communications device is a custom identifier, or a real network protocol address of the second communications device, or a media access control address of the second communications device.
8. A third communication device, comprising: a communication module and a processing module, wherein,
the communication module is used for sending a request message from a client to the first communication device, wherein the request message is used for requesting target data;
the processing module is configured to establish a flow entry, where the flow entry indicates that a message from the client is to be forwarded to the first communication device;
the communication module is used for receiving the unique identification of the second communication device from the second communication device;
the processing module is configured to update the flow entry according to the unique identifier of the second communication device, where the flow entry indicates that the message from the client is forwarded to the second communication device.
9. The third communication device of claim 8, wherein the unique identifier of the second communication device is a custom identifier, or a real network protocol address of the second communication device, or a media access control address of the second communication device.
10. A first communications device, comprising: a communication module and a processing module, wherein,
the communication module is used for receiving a request message from a client from a load balancing server, wherein the request message is used for requesting target data;
the processing module is used for establishing a first session with the client;
the processing module is used for determining that the target data is stored in the second communication device according to the request message and the resource list;
the communication module is configured to send, to the second communication device, connection state information of the first session and a cached message for communication with the client;
the processing module is used for disconnecting the first session.
11. A communication system comprising a second communication device according to any of claims 6-7, a third communication device according to any of claims 8-9, and a first communication device according to claim 10.
12. A computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed on a communication apparatus, cause the communication apparatus to perform the method of any of claims 1-2, or perform the method of any of claims 3-4, or perform the method of claim 5.
CN202111178020.4A 2021-10-09 2021-10-09 Data request method, communication device and communication system Pending CN115967679A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111178020.4A CN115967679A (en) 2021-10-09 2021-10-09 Data request method, communication device and communication system
PCT/CN2022/122228 WO2023056873A1 (en) 2021-10-09 2022-09-28 Data request method, communication apparatus, and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111178020.4A CN115967679A (en) 2021-10-09 2021-10-09 Data request method, communication device and communication system

Publications (1)

Publication Number Publication Date
CN115967679A true CN115967679A (en) 2023-04-14

Family

ID=85803914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111178020.4A Pending CN115967679A (en) 2021-10-09 2021-10-09 Data request method, communication device and communication system

Country Status (2)

Country Link
CN (1) CN115967679A (en)
WO (1) WO2023056873A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333130A (en) * 2011-10-31 2012-01-25 北京蓝汛通信技术有限责任公司 Method and system for accessing cache server and intelligent cache scheduler
US9559964B2 (en) * 2014-01-31 2017-01-31 Verizon Digital Media Services Inc. Control message routing within anycast reliant platforms
CN107872478A (en) * 2016-09-26 2018-04-03 中国移动通信有限公司研究院 A kind of content buffering method, device and system
CN106302225B (en) * 2016-10-18 2019-05-03 优刻得科技股份有限公司 A kind of method and apparatus of server load balancing
CN108076142A (en) * 2017-11-28 2018-05-25 郑州云海信息技术有限公司 A kind of method and system for accelerating user's request based on CDN technologies

Also Published As

Publication number Publication date
WO2023056873A1 (en) 2023-04-13

Similar Documents

Publication Publication Date Title
CA2968964C (en) Source ip address transparency systems and methods
EP4009593A1 (en) Data transmission method and apparatus, network card and storage medium
US8676980B2 (en) Distributed load balancer in a virtual machine environment
US7016973B1 (en) Apparatus and methods for providing translucent proxies in a communications network
US8762535B2 (en) Managing TCP anycast requests
US7653075B2 (en) Processing communication flows in asymmetrically routed networks
US20190342117A1 (en) Method for controlling a remote service access path and relevant device
US11711293B2 (en) Per-provider origin pull
JP6395867B2 (en) OpenFlow communication method and system, control unit, and service gateway
US9621412B2 (en) Method for guaranteeing service continuity in a telecommunication network and system thereof
CN107528891B (en) Websocket-based automatic clustering method and system
WO2014023003A1 (en) Method, apparatus, and system for controlling data transmission
CN111107672B (en) Method, device and system for establishing sub-streams of multi-path connection
US11895009B2 (en) Intelligently routing internet traffic
CN103986638A (en) Method and device for binding multiple public network links for ADVPN tunnel
US20150373135A1 (en) Wide area network optimization
US20150127837A1 (en) Relay apparatus and data transfer method
US20230126039A1 (en) Method for delivering an audio and/or video content in a mobile network infrastructure
WO2023151264A1 (en) Load balancing method and apparatus, node, and storage medium
WO2021169291A1 (en) Route advertising method, network elements, system, and device
CN112929264A (en) Service flow transmission method, system and network equipment
WO2013159492A1 (en) Method and system for reporting and downloading information
WO2023186109A1 (en) Node access method and data transmission system
CN112217735A (en) Information synchronization method and load balancing system
CN110381007B (en) TCP acceleration method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication