Service flow transmission method, device and system

By deploying acceleration nodes in the overlay network of the real-time communication system, receiving and scheduling service flows, the problem of inability to ensure transmission quality when the network bandwidth is insufficient, and priority transmission of service flows with high demand for SLA is achieved.

CN119835226APending Publication Date: 2025-04-15HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311602147.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-13
Filing Date
2023-11-24
Publication Date
2025-04-15

AI Technical Summary

Technical Problem

When the network bandwidth is insufficient, the real-time communication system cannot guarantee the transmission quality of each service flow.

Method used

By deploying an acceleration node in the overlay network, the node receives multiple service flows sent by the server, obtains its SLA requirements, and reduces the transmission quality of service flows with lower SLA requirements when the network resources are insufficient to ensure priority transmission of service flows with higher SLA requirements.

Benefits of technology

When multiple service flows compete for network resources, priority is given to ensuring the transmission quality of service flows with high SLA requirements, and ensuring the transmission quality and reliability of the real-time communication system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119835226A_ABST
    Figure CN119835226A_ABST
Patent Text Reader

Abstract

The invention provides a service flow transmission method, device and system, and belongs to the technical field of networks. In the scheme provided by the invention, an acceleration node in an overlay network can receive a plurality of service flows sent by a server and obtain SLA (Service Level Agreement) requirements of the plurality of service flows. Moreover, when the acceleration node detects that the network resources of the overlay network do not meet the SLA requirements of the plurality of service flows, the transmission quality of at least one target service flow with a relatively low SLA requirement can be reduced. Therefore, when a plurality of service flows compete for the network resources, the transmission quality of the service flow with relatively high SLA (Service Level Agreement) requirements can be guaranteed preferentially.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to Chinese patent application No. 202311334476.4, filed on October 13, 2023, and entitled “A Collaborative Transmission Method and Device”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of network technology, and in particular to a method, device and system for transmitting a business flow. Background Art

[0003] A real-time communication system refers to a system that needs to transmit audio, video, data, signaling and other service flows in real time. A real-time communication system usually uses multiplexing technology to transmit data, that is, a real-time communication system can use multiple data channels to transmit different types of service flows, and these multiple data channels share the network bandwidth.

[0004] However, when the network bandwidth is insufficient, the real-time communication system will not be able to guarantee the transmission quality of each business flow. Summary of the invention

[0005] The present application provides a method, device and system for transmitting a business flow, which can solve the technical problem that the transmission method of the related art cannot guarantee the transmission quality of each business flow when the network bandwidth is insufficient.

[0006] In a first aspect, a method for transmitting a service flow is provided, which is applied to a real-time communication system, and the real-time communication system includes: a client, an access network, an overlay network, and a server. The method includes: an acceleration node in the overlay network receives multiple service flows sent by the server, and obtains the service level agreement (SLA) requirements of the multiple service flows. Afterwards, the acceleration node forwards the multiple service flows to the access network, so that the access network forwards the multiple service flows to the client. If the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, the acceleration node can reduce the transmission quality of at least one target service flow among the multiple service flows. Among them, the SLA requirement of the at least one target service flow is lower than the SLA requirement of other service flows among the multiple service flows.

[0007] Based on the method provided in the present application, it can be ensured that when multiple service flows compete for network resources of the overlay network, the transmission quality of service flows with higher SLA requirements (i.e., more important service flows) is prioritized.

[0008] Optionally, the process of the acceleration node forwarding the multiple service flows to the access network may include: for each service flow in the multiple service flows, the acceleration node forwards the service flow to the access network via a forwarding path that matches the SLA requirement of the service flow.

[0009] The acceleration node forwards the service flow through the forwarding path that matches the SLA requirements of the service flow, which can ensure that the overlay network can accurately schedule the service flow based on the SLA requirements of the service flow.

[0010] Optionally, the SLA requirement may include a path selection strategy, which is used to characterize the service flow's demand for a forwarding path. Before the acceleration node forwards the service flow to the access network through a forwarding path that matches the SLA requirement of the service flow, the method may also include: the acceleration node reports network parameters between the acceleration node and other acceleration nodes in the overlay network to the control node in the overlay network; the acceleration node receives multiple forwarding paths sent by the control node, and the multiple forwarding paths are determined based on the network parameters reported by each acceleration node in the overlay network; for each service flow in the multiple service flows, the acceleration node determines a forwarding path that matches the path selection strategy of the service flow from the multiple forwarding paths.

[0011] Since the multiple forwarding paths sent by the control node are determined in real time based on the network parameters of the overlay network, the method provided in the present application can achieve flexible scheduling of service flows based on the state of the overlay network and the SLA requirements of the service flows.

[0012] Optionally, the process of the acceleration node reducing the transmission quality of at least one target business flow among the multiple business flows may include: the acceleration node delaying sending of at least one target business flow among the multiple business flows; and / or the acceleration node discarding data packets of at least one target business flow among the multiple business flows.

[0013] The acceleration node can effectively save the network resources occupied by the target business flow by delaying the sending of the target business flow and / or discarding the data packets of the target business flow within a certain period of time, thereby ensuring that the network resources of the overlay network can guarantee the SLA requirements of other business flows.

[0014] Optionally, after the acceleration node discards a data packet of at least one target service flow among the multiple service flows, the method may further include: the acceleration node feeds back to the server an identifier of the discarded data packet of the at least one target service flow. The identifier of the data packet may include a flow identifier of the service flow to which the data packet belongs, and a sequence number of the data packet, etc.

[0015] After the server receives the identifier of the discarded data packet fed back by the acceleration node, it can mark the discarded data packet as a data packet that does not need to be retransmitted. Correspondingly, after receiving the retransmission request from the client, the server will no longer retransmit the data packet of the target service flow. In this way, it can avoid wasting network resources by retransmitting invalid data packets and avoid increasing the congestion of the overlay network.

[0016] Optionally, the real-time communication system may further include: an SLA management end, and the process by which the acceleration node obtains the SLA requirements of the multiple business flows may include: receiving the SLA requirements of at least one type of business issued by the SLA management end, and determining the SLA requirements of the at least one business flow based on the type of business to which at least one business flow among the multiple business flows belongs.

[0017] The SLA management terminal may be deployed in the cloud, on which the SLA requirements of at least one type of service are registered. The SLA management terminal may send the SLA requirements of at least one type of service to the acceleration node in the overlay network. For example, the SLA management terminal may send the SLA requirements of at least one type of service to each acceleration node in the overlay network via a representational state transfer (REST) ​​message.

[0018] Optionally, the process of the acceleration node acquiring the SLA requirements of the multiple service flows may include: the acceleration node acquiring the SLA requirement of at least one service flow from a data packet of at least one service flow among the multiple service flows.

[0019] The real-time transport protocol (RTP) extension header of the data packet may carry the SLA requirements of the service flow. It is understandable that the SLA requirements issued by the SLA management end may be for some types of services, or may be the SLA requirements for some service flows in a certain type of service. For services or service flows for which the SLA management end does not issue SLA requirements, the server end may directly carry the SLA requirements of the service flow through the data packets in the service flow when sending the service flow.

[0020] Alternatively, the SLA requirement issued by the SLA management end may be a coarse-grained SLA requirement, that is, the limitation of each parameter in the SLA requirement may be a larger range limitation. The SLA requirement carried by the service end in the data packet of the service flow may be a fine-grained SLA requirement, that is, the limitation of each parameter in the SLA requirement may be a smaller range limitation or a precise numerical limitation.

[0021] Optionally, the SLA requirement may include requirements for at least one of the following parameters: end-to-end delay, reliability and forwarding priority, and accordingly, the end-to-end delay of at least one target service flow is higher than the end-to-end delay of other service flows; the reliability of at least one target service flow is lower than the reliability of other service flows; and / or the forwarding priority of at least one target service flow is lower than the forwarding priority of other service flows.

[0022] Based on the above SLA requirements, it can be seen that the acceleration nodes in the overlay network can give priority to ensuring the transmission quality of low-latency, high-reliability and high-priority business flows.

[0023] In a second aspect, another method for transmitting a service flow is provided, which is applied to a real-time communication system, and the real-time communication system includes: a client, an access network, an overlay network, and a server. The method includes: the server sends multiple service flows to an acceleration node in the overlay network, so that the acceleration node forwards the multiple service flows to the access network, and when the network resources of the overlay network do not meet the service level agreement SLA requirements of the multiple service flows, the transmission quality of at least one target service flow among the multiple service flows is reduced. The SLA requirement of the at least one target service flow is lower than the SLA requirements of other service flows among the multiple service flows. After the multiple service flows are forwarded to the access network, the access network forwards the multiple service flows to the client.

[0024] Optionally, the method may also include: the server receives the congestion level of the access network fed back by the client, where the congestion level is determined by the client based on the congestion label fed back by the network device in the access network; the server adjusts the sending quality of at least one of the multiple service flows based on the congestion level of the access network and the SLA requirements of the multiple service flows.

[0025] In this way, it can be ensured that the sending quality of the multiple business flows can adapt to the network conditions of the access network in real time, thereby ensuring that the transmission quality of the multiple business flows is high.

[0026] Optionally, the transmission quality may be characterized by at least one of the following parameters: transmission priority, transmission performance parameters, encoding parameters, rendering parameters, and type of transmission network. The transmission performance parameters may include at least one of the following: transmission rate, jitter buffer size, forward error correction (FEC) redundancy rate, and retransmission strategy. The type of transmission network may include an overlay network and the Internet (i.e., a physical network).

[0027] Optionally, the method further includes: the server receives the network status of the overlay network fed back by the control node in the overlay network. Accordingly, the process in which the server adjusts the transmission quality of at least one of the multiple service flows based on the congestion level of the access network and the SLA requirements of the multiple service flows may include: the server adjusts the transmission quality of at least one of the multiple service flows based on the congestion level of the access network, the network status of the overlay network, and the SLA requirements of the multiple service flows.

[0028] Since the control node in the overlay network can also feed back the network status of the overlay network to the server, the server can adjust the sending quality of the service flow in real time to adapt to the network status of the overlay network.

[0029] Optionally, the method may further include: the server receives an identifier of a data packet of at least one target service flow among the multiple service flows fed back by the acceleration node, the data packet of the at least one target service flow being a data packet discarded by the acceleration node after the network resources of the overlay network do not meet the SLA requirements of the multiple service flows. Afterwards, the server may mark the data packet of the at least one target service flow as a data packet that does not need to be retransmitted.

[0030] Optionally, the real-time communication system may further include: an SLA management end; the method may further include: the server end reporting to the SLA management end the SLA requirements of at least one type of service to which the multiple service flows belong; or, the server end receiving the SLA requirements of at least one type of service to which the multiple service flows belong issued by the SLA management end.

[0031] In a third aspect, a device for transmitting a service flow is provided. The device for transmitting a service flow may include at least one module. The at least one module may be used to implement the method for transmitting a service flow provided in the first aspect or the second aspect.

[0032] In a fourth aspect, a computing device is provided, the computing device comprising a processor and a memory, wherein the processor is used to execute instructions stored in the memory to implement the service flow transmission method provided in the first aspect or the second aspect.

[0033] In a fifth aspect, a computing device cluster is provided, the computing device cluster comprising at least one computing device, each computing device comprising a processor and a memory. The processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the service flow transmission method provided in the first aspect or the second aspect.

[0034] In a sixth aspect, a computer-readable storage medium is provided, in which computer program instructions are stored. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the service flow transmission method provided in the first aspect or the second aspect above.

[0035] In a seventh aspect, a computer program product comprising instructions is provided. When the instructions are executed by a computing device cluster, the computing device cluster executes the method for transmitting a service flow as provided in the first aspect or the second aspect.

[0036] In summary, the present application provides a method, device and system for transmitting a service flow. In the solution provided by the present application, the acceleration node in the overlay network can receive multiple service flows sent by the server and obtain the SLA requirements of the multiple service flows. In addition, when the acceleration node detects that the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, it can reduce the transmission quality of at least one target service flow with a lower SLA requirement. In this way, it can be ensured that when multiple service flows compete for the network resources of the overlay network, the transmission quality of service flows with higher SLA requirements is prioritized. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] Figure 1 It is a schematic diagram of an application scenario of a method for transmitting a service flow provided in an embodiment of the present application;

[0038] Figure 2 It is a schematic diagram of an application scenario of another method for transmitting a service flow provided in an embodiment of the present application;

[0039] Figure 3 It is a schematic diagram of an application scenario of another method for transmitting a service flow provided in an embodiment of the present application;

[0040] Figure 4 It is a flow chart of a method for transmitting a service flow provided in an embodiment of the present application;

[0041] Figure 5 It is a schematic diagram of transmission rate and physical bandwidth in different scenarios provided by an embodiment of the present application;

[0042] Figure 6 It is a structural schematic diagram of a transmission device for a service flow provided in an embodiment of the present application;

[0043] Figure 7 It is a structural schematic diagram of another service flow transmission device provided in an embodiment of the present application;

[0044] Figure 8 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0045] Fig. 9 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0046] Fig.10 It is a structural diagram of a network connection between computing devices provided by the present application. DETAILED DESCRIPTION

[0047] The following describes in detail the method, device and system for transmitting the business flow provided by the embodiments of the present application in conjunction with the accompanying drawings.

[0048] In one possible implementation, a real-time communication system can use a multiplexing technology based on the QUIC protocol to transmit data. QUIC refers to quick UDP Internet connection, and UDP refers to user datagram protocol. In this multiplexing technology, multiple data channels share the network bandwidth. The client can measure the packet loss rate and delay within N round trip times (RTT), and measure the available network bandwidth (also called flux) through a software algorithm, and then control the sending rate of each service flow. However, the bandwidth calculated by this method has a lag, and cannot guarantee real-time performance and is not accurate. In addition, after the service flow is submitted to the transport layer, there is no scheduling mechanism, that is, it cannot be forwarded according to the SLA requirements of the service flow.

[0049] In another possible implementation, multiple transmission sessions can be created between the client and the server in the real-time communication system, and each transmission session can transmit a service flow. In addition, the client can pre-set the network bandwidth ratio occupied by each transmission session based on the priority of each service flow. However, in this method, the network bandwidth ratio occupied by each session is fixed, and it is impossible to dynamically schedule each service flow according to the real-time fluctuation of the available network bandwidth, and it is also impossible to forward the service flow according to the SLA requirements of the service flow.

[0050] Figure 1 Schematic diagram of an application scenario of a method for transmitting a service flow provided in an embodiment of the present application. Figure 1 As shown, the application scenario may include: an application (APP) client deployed in a terminal, an APP server deployed in the cloud, and access to the network and the Internet. The cloud can also be called a cloud platform, which can be a server cluster composed of multiple servers. The APP client can also be called a client, and the APP server can also be called a server.

[0051] Figure 2 Schematic diagram of another application scenario of a method for transmitting a service flow provided in an embodiment of the present application. Figure 1 and Figure 2 It can be seen that the application server can also be deployed in the terminal. Figure 2 In the scenario shown, the application client and the application server may be two application terminals that are not distinguished, that is, the two application terminals may be the client and the server of each other.

[0052] refer to Figure 1 and Figure 2It can be seen that the end-to-end transmission network between the client and the server includes an access network and the Internet. The access network can be a radio access network (RAN), for example, a fifth generation mobile communication technology (5G) RAN. Alternatively, the access network can be a wireless local area network (WLAN), for example, a Wi-Fi network.

[0053] The Internet can be implemented using an overlay network, which is a logical network running on one or more physical networks, and can include a control node (also called a controller) and multiple accelerate nodes. The control node is used to control the link state measurement between the accelerate nodes, which can also be called the quality of service (QoS) measurement, and the accelerate node can be used to undertake the data plane traffic forwarding function.

[0054] In an embodiment of the present application, the real-time communication system can be a deterministic network, which refers to a network that can provide deterministic service assurance capabilities for the services it carries. Among them, the deterministic service assurance capabilities mainly include indicators such as bandwidth, latency, jitter, and packet loss rate. It can be understood that the Internet can achieve transmission determinism based on the overlay network, and the access network can achieve transmission determinism through QoS and explicit congestion notification (ECN) mechanisms.

[0055] Figure 3 FIG. 1 is a schematic diagram of an application scenario of another method for transmitting a service flow provided in an embodiment of the present application. Figure 3 As shown, the application scenario may also include: an SLA management terminal deployed in the cloud, in which SLA requirements (also referred to as SLA data) of different types of services may be registered, which may include requirements for at least one of the following parameters: end-to-end delay, reliability, and priority, etc. In addition, the SLA requirements may also include a path selection strategy, which may be used to characterize the service's requirements for the forwarding path.

[0056] The SLA management end can send the SLA requirements of at least one type of service to the acceleration node in the overlay network. For each of the multiple service flows sent by the server, the acceleration node can forward the service flow to the access network so that the access network forwards the service flow to the client. The acceleration node can also determine the SLA requirements of the service flow based on the type of service to which the service flow belongs. In addition, when the acceleration node detects that the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, that is, when there is resource competition among the multiple service flows, the transmission quality of at least one target service flow among the multiple service flows can be reduced. Among them, the SLA requirements of the at least one target service flow are lower than the SLA requirements of other service flows among the multiple service flows. That is, the acceleration node in the overlay network can give priority to ensuring the transmission quality of service flows with higher SLA requirements.

[0057] It is understandable that the multiple service flows sent by the server may belong to different types of services, that is, the real-time communication system can carry multiple different types of services. Each type of service may include multiple different service flows (such as media flows). For example, the multiple types of services may include: real-time audio and video, online conferences, cloud rendering, cloud games, and metaverse services that require real-time interactive transmission in the system. Among them, real-time audio and video services may also be referred to as real-time communication (RTC) services.

[0058] It is also understandable that for services such as real-time audio and video and online conferencing, the server can be deployed on the terminal. For services such as cloud rendering, cloud gaming and metaverse, the server can be deployed on the cloud.

[0059] Figure 4 is a flow chart of a method for transmitting a service flow provided by an embodiment of the present application, which can be applied to Figure 1 , Figure 2 or Figure 3 In the real-time communication system shown in FIG. Figure 4 As shown, the method includes:

[0060] Step 101: The SLA management terminal sends SLA requirements of at least one type of service to an acceleration node in the overlay network.

[0061] In an embodiment of the present application, the server can register the SLA requirements of at least one type of service in the SLA management end, that is, the server can report the SLA requirements of at least one type of service to the SLA management end. The SLA management end can then send the SLA requirements of the at least one type of service to the acceleration node in the overlay network. For example, the SLA management end can send the SLA requirements of the at least one type of service to each acceleration node in the overlay network via a REST message. It can be understood that each type of service may include multiple different service flows, and the SLA requirements of the multiple different service flows may be the same or different. If the SLA requirements of different service flows in a type of service are different, the SLA requirements of the service sent by the SLA management end to the acceleration node may include the SLA requirements of some or all service flows in the service.

[0062] Optionally, the SLA requirement may include requirements for at least one of the following parameters: end-to-end delay, reliability, priority, etc. In addition, the SLA requirement may also include a path selection strategy, which may be used to characterize the requirements of the service flow for the forwarding path.

[0063] The end-to-end (E2E) latency requirement may refer to the latency requirement of the service flow from the client to the server (such as the cloud), and from the server to the client. For example, for a conference service, the E2E latency requirement of the media service flow may be 300 milliseconds (ms), the E2E latency requirement of the bullet screen service flow may be 800ms, and the E2E latency requirement of the mouse operation service flow may be as low as possible.

[0064] Reliability requirements can include reliable, semi-reliable and unreliable requirements. Reliability means that the data packet must be transmitted to the other end; semi-reliability means that the data packet can be discarded if it cannot be effectively transmitted within a specified time; unreliability means that the data packet can be actively discarded in abnormal scenarios.

[0065] Priority requirements may include priorities between different types of services, or may also include priorities between different service flows in the same type of service. For example, for conference services, the priority of the audio service flow > the priority of the shared screen service flow > the priority of the avatar service flow. For general video services, the priority of the I-frame service flow > the priority of the large P-frame service flow > the priority of the small P-frame service flow. Among them, the I-frame (Iframe) can also be called an intrapicture, and the P-frame refers to a forward predictive coding frame (predictive-frame).

[0066] The path selection strategy in the SLA requirement can be determined based on the business operation characteristics, and the path selection strategy may include: delay strategy, reliability strategy, cost strategy, multi-stream synchronization strategy and hybrid strategy, etc. Among them, the delay strategy refers to giving priority to forwarding paths with low delay; the reliability strategy refers to giving priority to forwarding paths with high reliability; the cost strategy refers to giving priority to forwarding paths with low costs; the multi-stream synchronization strategy refers to giving priority to forwarding paths that can ensure synchronous transmission of multiple business flows, that is, multiple business flows give priority to the same forwarding path; the hybrid strategy refers to giving priority to forwarding paths that can meet multiple requirements (such as high reliability and low delay) at the same time.

[0067] For example, the video conferencing service has a high requirement for the synchronization of video streams and audio streams, so the path selection strategy in its SLA requirement may include a multi-stream synchronization (ie, video stream and audio stream) synchronization strategy.

[0068] Step 102: The acceleration node reports network parameters between other acceleration nodes to the control node in the overlay network.

[0069] In an embodiment of the present application, the control node in the overlay network can send a network detection task to each acceleration node, and the acceleration node can then detect the network parameters between it and other acceleration nodes. Figure 3 , the control node may include a network QoS measurement module, which may issue network detection tasks to each acceleration node, and each acceleration node may detect the network parameters between it and other acceleration nodes, that is, each acceleration node may perform QoS measurement. Afterwards, each acceleration node may report the measured network parameters (also referred to as QoS measurement data or link status data) to the control node. Among them, the network parameters reported by the acceleration node may include at least one of the following: bandwidth, delay, jitter, and packet loss rate. For example, the network parameters may include packet loss rate and delay.

[0070] Step 103: The control node sends multiple forwarding paths to the acceleration node.

[0071] After receiving the network parameters reported by each acceleration node in the overlay network, the control node can calculate multiple forwarding paths between different acceleration nodes in real time based on the network parameters, and can send the multiple forwarding paths to each acceleration node in the overlay network. Figure 3 The control node may also include a real-time routing calculation module, which may calculate multiple forwarding paths in real time based on network parameters, and may send routing tables of the multiple forwarding paths to each acceleration node accordingly.

[0072] Optionally, for two acceleration nodes (which can be any two acceleration nodes) in the overlay network, the control node can calculate at least one path group between the two acceleration nodes, and each path group includes at least one forwarding path. For example, each path group can include the optimal K (i.e., top K) forwarding paths that meet a condition, and different path groups meet different conditions. K can be a positive integer.

[0073] For example, the control node can calculate and send the following multiple path groups to the acceleration node: a path group with the lowest latency, a path group with the lowest cost, a path group with the highest reliability, etc. That is, the control node can calculate and send the top K forwarding paths with the lowest latency, the top K forwarding paths with the lowest cost, and the top K forwarding paths with the highest reliability to the acceleration node.

[0074] Step 104: The server transmits multiple service flows to the acceleration node.

[0075] In an embodiment of the present application, the server can collect data to be sent to the client, and can perform real-time control encoding of the data to generate a service flow. For example, the service flow can be compressed media data. Afterwards, the server can send the service flow to the client through an acceleration node in the overlay network. For example, continue to refer to Figure 3 The server may include a service sending control module, and the service sending control module may send a service flow to the client.

[0076] Optionally, at least one data packet of a service flow sent by the server may also carry the SLA requirements of the service flow. For example, the RTP extension header of the data packet may carry the SLA data of the service flow. Based on this, the acceleration node may also obtain the SLA requirements of the service flow from the data packet of the service flow sent by the server.

[0077] It is understandable that in the above step 101, the SLA management end may send the SLA requirements of some types of services to the acceleration node, or may be the SLA requirements of some service flows in a certain type of service. For services or service flows for which the SLA management end does not send the SLA requirements, the service end can directly carry the SLA requirements of the service flow through the data packets in the service flow when sending the service flow. In this way, it can be ensured that the acceleration node can accurately schedule different service flows based on the SLA requirements of different service flows.

[0078] It can also be understood that in the above step 101, the SLA requirement sent by the SLA management end to the acceleration node can be the business SLA requirement of the business to which the business flow belongs. The business SLA requirement can be a coarse-grained SLA requirement, that is, the limitation of each parameter in the SLA requirement can be a larger range limitation. In order to achieve accurate scheduling of the business flow, the service end can carry the traffic SLA requirement of the business flow in the data packet of the business flow. The traffic SLA requirement can be a fine-grained SLA requirement, that is, the limitation of each parameter in the SLA requirement can be a smaller range limitation or a precise numerical limitation.

[0079] Step 105: For each service flow in the multiple service flows, the acceleration node determines a forwarding path that matches the path selection policy of the service flow from multiple forwarding paths.

[0080] After the acceleration node receives the service flow sent from the server to the client, it can determine the forwarding path that matches the path selection policy of the service flow from the multiple forwarding paths sent by the control node, that is, determine the optimal forwarding path. For example, assuming that the path selection policy in the SLA requirement for the control data service flow is the delay policy, the acceleration node can determine the forwarding path that matches the control data service flow from the top K forwarding paths with the lowest delay. Assuming that the path selection policy in the SLA requirement for the audio and video service flow includes a delay policy and a multi-stream synchronization policy, the acceleration node can select a forwarding path that enables the synchronous transmission of the audio service flow and the video service flow from the top K forwarding paths with the lowest delay.

[0081] Since the multiple forwarding paths sent by the control node are determined in real time based on the network measurement data (i.e., network parameters) of the overlay network, the method provided in the embodiment of the present application can achieve flexible scheduling of business flows based on the network measurement data of the overlay network and the SLA requirements of the business flows.

[0082] It is understandable that the acceleration node can also monitor the node status of its surrounding acceleration nodes, and can determine the matching forwarding path based on the node status of the surrounding acceleration nodes and the path selection strategy. For example, if a surrounding acceleration node in the optimal forwarding path among the top K forwarding paths fails or is congested, the acceleration node can select the suboptimal forwarding path among the top K forwarding paths as the matching forwarding path.

[0083] It can also be understood that, for multiple service flows sent by the server, the acceleration node can determine the SLA requirement of at least one service flow based on the type of service to which at least one service flow belongs among the multiple service flows. Alternatively, the acceleration node can directly obtain the SLA requirement of at least one service flow from the data packet of the at least one service flow.

[0084] Step 106: For each service flow in the multiple service flows, the acceleration node forwards the service flow based on the matched forwarding path.

[0085] In the embodiment of the present application, after the acceleration node determines the forwarding path that matches each service flow, it can forward the service flow to the client based on the matched forwarding path. Figure 3 The acceleration node may include a forwarding control module, which may forward the service flow based on a routing table of a forwarding path that matches the service flow. The acceleration node forwards the service flow through a forwarding path that matches the SLA requirements of the service flow, which may ensure that the overlay network can accurately schedule the service flow based on the SLA requirements of the service flow.

[0086] Step 107: If the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, the acceleration node reduces the transmission quality of at least one target service flow among the multiple service flows.

[0087] In an embodiment of the present application, an acceleration node can determine whether the network resources of the overlay network meet the SLA requirements of multiple business flows based on the network parameters (such as QoS metric parameters) between it and other acceleration nodes, where the network resources may include: computing resources of the acceleration node (such as storage space and processor processing power, etc.), and link bandwidth. The network resources of the overlay network do not meet the SLA requirements of the multiple business flows, which may mean that the SLA requirements of the multiple business flows transmitted in the overlay network exceed the inherent processing power and capacity of the overlay network, that is, network congestion occurs in the overlay network, or a scenario of multiple business flows competing in the overlay network occurs.

[0088] If there is network congestion in the overlay network, the acceleration node can reduce the transmission quality of at least one target business flow among the multiple business flows. Among them, the at least one target business flow can be part of the multiple business flows, and the SLA requirement of the at least one target business flow is lower than the SLA requirement of other business flows among the multiple business flows. As mentioned above, the SLA requirement of the business flow may include requirements for at least one of the following parameters: end-to-end delay, reliability and forwarding priority. Correspondingly, if the SLA requirement includes end-to-end delay, the end-to-end delay of the at least one target business flow is higher than the end-to-end delay of the other business flows. If the SLA requirement includes reliability, the reliability of the at least one target business flow is lower than the reliability of other business flows. If the SLA requirement includes forwarding priority, the forwarding priority of the at least one target business flow is lower than the forwarding priority of other business flows. That is, the at least one target business flow may refer to a relatively less important or relatively unimportant business flow among multiple business flows.

[0089] The acceleration node effectively saves the network resources occupied by at least one target service flow by reducing the transmission quality of the at least one target service flow, thereby ensuring that the overlay network can give priority to meeting the SLA requirements of other service flows, that is, giving priority to meeting the SLA requirements of service flows with higher end-to-end delay requirements, service flows with higher reliability requirements, and / or service flows with higher forwarding priority. In this way, it can be ensured that in the case of instantaneous congestion in the overlay network, important service flows can be successfully transmitted at one time, thereby reducing the retransmission rate of important service flows by 50% and reducing the transmission delay of 1 RTT.

[0090] Optionally, the acceleration node may reduce the transmission quality of the at least one target service flow by: delaying the transmission of the at least one target service flow; and / or discarding at least one data packet in the at least one target service flow. For example, the acceleration node may send the data packets of the at least one target service flow in order from high to low SLA requirements of the at least one target service flow. That is, the acceleration node may send the at least one target service flow in order from high to low latency requirements (i.e., from low to high latency), from high to low reliability, and / or from high to low priority.

[0091] It can be understood that if the delay requirements of two target business flows are the same, the acceleration node can send the two target business flows in order of reliability from high to low, or priority from high to low. If the reliability of two target business flows is the same, the acceleration node can send the two target business flows in order of delay requirements from high to low, or priority from high to low. If the priorities of two target business flows are the same, the acceleration node can send the two target business flows in order of delay requirements from high to low, or reliability from high to low.

[0092] It is understandable that if delaying the sending of data packets of the service flow still fails to alleviate network congestion, the acceleration node may also discard data packets in at least one target service flow. For example, the acceleration node may discard data packets of the at least one target service flow during the congestion period.

[0093] For example, for conference services, the priority of the audio service flow is higher than the priority of the video service flow, and the priority of the shared screen service flow is higher than the priority of the avatar service flow, then the acceleration node can reduce the transmission quality of the video service flow and / or the avatar service flow. For cloud rendering services and bullet screen game services, the priority of the instruction service flow is higher than the priority of the media service flow, then the acceleration node can reduce the transmission quality of the media service flow.

[0094] Based on the above description, it can be known that in the embodiment of the present application, if there is no resource competition in the overlay network, the overlay network can match the forwarding path of the service flow in real time based on the network measurement data (i.e., network parameters) and the SLA requirements of the service flow to ensure that the forwarding path can meet the SLA requirements of the service flow. If there is resource competition in the overlay network, the overlay network can adjust the sending priority of each service flow in real time based on the network measurement data (i.e., network parameters) and the SLA requirements of the service flow, and / or discard the data packets of some service flows to ensure the transmission quality of important service flows.

[0095] Step 108: The acceleration node feeds back to the server the identifier of the discarded data packet in at least one target service flow.

[0096] After discarding the data packet in the at least one target service flow, the acceleration node may also feed back the identifier of the discarded data packet to the server, wherein the identifier of the data packet may include the flow identifier of the service flow to which the data packet belongs, and the sequence number of the data packet.

[0097] Step 109: The server marks the data packets of the at least one target service flow as data packets that do not need to be retransmitted.

[0098] It is understandable that after the acceleration node discards the data packet in the target service flow, the client does not receive the data packet of the target service flow, and will request the server to retransmit the data packet. If the server retransmits the data packet of the target service flow, the congestion of the overlay network cannot be effectively alleviated, and the acceleration node may discard the retransmitted data packet again.

[0099] Based on this, after the server receives the identifier of the discarded data packet fed back by the acceleration node, it can mark the discarded data packet as a data packet that does not need to be retransmitted. Correspondingly, after the server receives the retransmission request from the client, it will no longer retransmit the data packet of the target service flow. In this way, it can avoid wasting network resources by retransmitting invalid data packets and avoid increasing the congestion of the overlay network.

[0100] Step 110: If the network device in the access network detects link congestion, it adds a congestion label to the data packet of the service flow sent to the client.

[0101] In the embodiment of the present application, the network device (also referred to as the access device) in the access network can determine whether there is link congestion based on its own queue length during the process of forwarding the service flow. If the network device determines that there is link congestion, it can add a congestion label to the data packet it sends to the client.

[0102] For example, Figure 3As shown, the network device in the access network may include a link congestion detection module, which may add a congestion label to the Internet protocol (IP) header of the data packet after detecting link congestion. The congestion label may be an explicit congestion notification (ECN) label.

[0103] Step 111: The client determines the congestion level of the access network based on the congestion label in the received data packet.

[0104] After receiving the data packet of the service flow forwarded by the network device, the client can parse the IP header of the data packet and calculate the congestion level of the access network based on the congestion label carried in the IP header. Figure 3 The access network congestion measurement module in the client can periodically count the proportion of data packets carrying congestion labels in the received data packets, and determine the congestion level of the access network in the current period based on the proportion.

[0105] Step 112: The client feeds back the congestion level of the access network to the server.

[0106] The client can also feedback the calculated access network congestion level to the server. For example, the client can feedback the access network congestion level through a transmission control protocol (TCP) acknowledgment (ACK) message, or can feedback the access network congestion level through an RTP control protocol (RTCP) extended message.

[0107] Optionally, in addition to feeding back the congestion level of the access network to the server, the client may also feed back the available bandwidth of the client itself to the server.

[0108] Step 113: The control node in the overlay network feeds back the network status of the overlay network to the server.

[0109] In the embodiment of the present application, the control node in the overlay network can also determine the network status of the overlay network in real time based on the network parameters reported by each acceleration node, and feedback the network status of the overlay network to the server. The network status can be characterized by at least one of the following parameters: bearable bandwidth, average latency, etc.

[0110] Step 114: The server adjusts the sending quality of at least one of the multiple service flows based on the congestion level of the access network, the network status of the overlay network, and the SLA requirements of the multiple service flows.

[0111] In the embodiment of the present application, after receiving the congestion level of the access network fed back by the client and the network status of the overlay network fed back by the control node, the server can also adjust the transmission quality of at least one of the multiple service flows based on the congestion level and the network status, as well as the SLA requirements of each service flow. Thus, it can be ensured that the transmission quality of the multiple service flows can adapt to the network conditions of the access network and the overlay network in real time, thereby ensuring that the transmission quality of the multiple service flows is high.

[0112] For example, the server may reduce the transmission quality of at least one target service flow with a lower SLA requirement among the multiple service flows when the access network is highly congested and / or the network status of the overlay network is poor. Furthermore, the server may also improve the transmission quality of the at least one target service flow when the access network is less congested and / or the network status of the overlay network is improved.

[0113] Among them, the sending quality of the service flow can be characterized by at least one of the following parameters: sending priority, sending performance parameters, encoding parameters, rendering parameters, and the type of transmission network. Correspondingly, the server adjusting the sending quality of a target service flow may refer to: adjusting the sending priority of the target service, adjusting the sending performance, adjusting the encoding quality, adjusting the rendering quality, and / or adjusting the type of transmission network of the service flow, etc. The type of transmission network may include overlay networks and the Internet (i.e., physical networks). It can be understood that the transmission quality of the overlay network is better than that of the physical network. Therefore, if the server detects that the network status of the overlay network is poor, part of the service flow can be allocated to the physical network for transmission.

[0114] Optionally, the sending performance parameters may include at least one of the following: send rate, jitter buffer size, FEC redundancy rate and retransmission strategy, etc. The encoding parameters may include at least one of the following: frame rate, variable bit rate (VBR), resolution, quantizer parameter (QP), constant rate factor (CRF) and encoding level (profile), etc. The rendering parameters may include at least one of the following: frame rate, refresh rate, resolution, lighting and shadow, etc. Among them, in addition to adjusting the above encoding parameters, the server can also reduce the encoding quality by actively dropping frames.

[0115] It is understandable that, depending on the type of service flow, the characterization parameters of its transmission quality may be different. For example, for a video service flow, the characterization parameters of its transmission quality may include: transmission priority, transmission performance parameters, encoding parameters, and rendering parameters. For an audio service flow, the characterization parameters of its transmission quality may include: transmission priority, transmission performance parameters, and encoding parameters. For an instruction service flow, the characterization parameters of its transmission quality may include: transmission priority, transmission performance parameters.

[0116] It can also be understood that for a video service flow, the service policy of the video service flow can be configured in the server, and the service policies of different video service flows can be different. The service policy can include a quality priority policy and a process priority policy. In addition, for service flows with different service policies, the parameters adjusted by the server when adjusting the transmission quality of the service flow are also different, thereby ensuring that the service policy of the service flow can be met while adjusting the transmission quality of the service flow.

[0117] For example, referring to Table 1, the adjustable rendering parameters corresponding to the image quality priority strategy may include: frame rate, refresh rate and resolution; encoding parameters may include: active frame loss, frame rate, VBR and resolution. The adjustable rendering parameters corresponding to the smoothness priority strategy may include: lighting, shadow and resolution; encoding parameters may include: QP, CRF and encoding profile. Moreover, the adjustable transmission performance parameters corresponding to the two strategies may be the same.

[0118] Table 1

[0119]

[0120] Figure 5 This is a schematic diagram of the transmission rate and physical bandwidth in different scenarios provided by an embodiment of the present application. Figure 5 The sending rate here refers to the rate at which the server sends the service flow, and the physical bandwidth (BW) refers to the bandwidth of the access network. Figure 5 In (a), the server in the traditional solution adjusts the sending rate of the service flow according to a preset fixed period (for example, 10 RTTs), which will cause long-term over-transmission congestion and link idleness in the access network. Figure 5 In (b), in the solution provided in the embodiment of the present application, since the server can adjust the sending rate of the service flow in real time based on the congestion level of the access network fed back by the client, the duration of over-congestion and link idleness in the access network can be effectively reduced. For example, the duration can be less than 2 RTTs.

[0121] The above descriptions are based on the example of deploying the server in the cloud. Figure 2 In the scenario shown, both the client and the server are deployed on the terminal. The SLA management end in the cloud can also send SLA requirements of at least one type of service to both the client and the server, so that the client and the server can adjust the sending quality of the service flow based on the SLA requirements of the service to which the service flow belongs.

[0122] Based on the above analysis, it can be seen that the method provided in the embodiment of the present application can solve the delay and jamming problems caused by the inability of the application layer to coordinate with the pipeline (i.e., transmission channel) state in the traditional solution. The method provided in the embodiment of the present application transforms the pipeline black box into a business-perceivable white box through the measurable characteristics of the Overlay network and the congestion measurement mechanism of the wireless access network, thereby realizing the coordination between the business and the pipeline. In this way, the construction of a deterministic network environment is realized, ensuring that under the same available bandwidth conditions, the data transmission efficiency is effectively improved and the service experience is optimized.

[0123] In addition, the method provided in the embodiment of the present application can control the sending strategy of the service flow based on the SLA requirements in the deterministic network. On the one hand, it can realize the coordinated control based on the SLA requirements of the service flow in each link of the transmission, that is, the SLA coordination of the whole link is realized. As a result, the transmission effect of the service flow is effectively optimized, and the end-to-end delay and jamming rate are reduced. On the other hand, the method provided in the embodiment of the present application can also ensure the forwarding success rate of important service flows, while ensuring the transmission fairness of each service flow.

[0124] For example, in a scenario where the transmission bandwidth of a real-time communication system is limited but the sending bandwidth (also called throughput) of the server is sufficient, if the method provided in an embodiment of the present application is adopted, after the server submits service flows with different SLA requirements at one time, the client can observe that each service flow can arrive in the order of reliable low latency, semi-reliable low latency, reliable medium latency, and unreliable low latency.

[0125] It is understandable that the order of steps of the method for transmitting a service flow provided in the embodiment of the present application can be adjusted appropriately, and the steps can be increased or decreased accordingly according to the situation. For example, the above step 102 can be performed before step 101; or, steps 110 to 112 can be performed before step 109; or, step 105 can be deleted according to the situation; or, step 113 can be performed before step 112, or can be deleted according to the situation; or, steps 108 and 109 can be deleted according to the situation; or, steps 110 to 112, and step 114 can be deleted according to the situation.

[0126] In summary, the embodiments of the present application provide a method for transmitting a service flow, wherein the acceleration node in the overlay network can receive multiple service flows sent by the server and obtain the SLA requirements of the multiple service flows. Furthermore, the acceleration node can forward the service flow based on a forwarding path that matches the SLA requirements of the service flow, and can reduce the transmission quality of at least one target service flow with a lower SLA requirement when it detects that the network resources of the overlay network do not meet the SLA requirements of the multiple service flows. Thus, it can not only ensure that the overlay network can schedule service flows based on the SLA requirements of the service flows, but also ensure that when multiple service flows compete for network resources, the transmission quality of service flows with higher SLA requirements is prioritized.

[0127] Furthermore, in the method provided in the embodiment of the present application, the server can also reduce the sending quality of at least one target service flow with a lower SLA requirement based on the congestion level of the access network fed back by the client, so as to ensure that the congestion level of the access network can be effectively alleviated.

[0128] The embodiment of the present application also provides a transmission device for a service flow, which can be applied to Figures 1 to 3 The acceleration node in the overlay network in the real-time communication system shown can be used to implement the steps performed by the acceleration node in the method for transmitting the service flow provided in the above method embodiment. Figure 6 As shown, the transmission device of the service flow includes:

[0129] The receiving module 201 is used to receive multiple service flows sent by the server. The function of the receiving module 201 can be realized by referring to the relevant description of step 104 in the above method embodiment.

[0130] The acquisition module 202 is used to acquire the SLA requirements of the multiple service flows. The functional implementation of the acquisition module 202 can refer to the relevant description of step 101 in the above method embodiment.

[0131] The sending module 203 is used to forward the multiple service flows to the access network, so that the access network forwards the multiple service flows to the client. The function implementation of the sending module 203 can refer to the relevant description of step 106 in the above method embodiment.

[0132] The adjustment module 204 is used to reduce the transmission quality of at least one target service flow among the multiple service flows if the network resources of the overlay network do not meet the SLA requirements of the multiple service flows. The SLA requirements of the at least one target service flow are lower than the SLA requirements of other service flows among the multiple service flows. The functional implementation of the adjustment module 204 can refer to the relevant description of step 107 in the above method embodiment.

[0133] Optionally, the adjustment module 204 may be configured to: delay sending of at least one target service flow among the multiple service flows; and / or discard data packets of at least one target service flow among the multiple service flows.

[0134] Optionally, the sending module 203 may also be used to: after the adjustment module 204 discards the data packet of at least one target service flow among the multiple service flows, feed back to the server an identifier of the discarded data packet of the at least one target service flow. The functional implementation of the sending module 203 may refer to the relevant description of step 108 in the above method embodiment.

[0135] Optionally, the real-time communication system may further include: an SLA management end, and the acquisition module 202 may be used to: receive SLA requirements for at least one type of service issued by the SLA management end; and determine the SLA requirements for at least one service flow based on the type of service to which at least one service flow among the multiple service flows belongs.

[0136] Optionally, the acquisition module 202 may be configured to: acquire an SLA requirement of at least one service flow from a data packet of at least one service flow among the multiple service flows.

[0137] Optionally, the SLA requirement includes a requirement for at least one of the following parameters: end-to-end delay, reliability, and forwarding priority;

[0138] The end-to-end delay of the at least one target service flow is higher than the end-to-end delay of the other service flows;

[0139] The reliability of the at least one target service flow is lower than the reliability of the other service flows;

[0140] The forwarding priority of the at least one target service flow is lower than the forwarding priority of the other service flows.

[0141] Optionally, the sending module 203 may be used to: for each of the multiple service flows, forward the service flow to the access network via a forwarding path that matches the SLA requirement of the service flow. The function of the sending module 203 may refer to the relevant description of step 105 in the above method embodiment.

[0142] Optionally, the SLA requirement includes a path selection strategy, where the path selection strategy is used to characterize the service flow's requirement for a forwarding path;

[0143] The sending module 203 may also be used to report network parameters between the control node in the overlay network and other acceleration nodes in the overlay network. The implementation of the functions of the sending module 203 may refer to the relevant description of step 102 in the above method embodiment.

[0144] The receiving module 201 may also be used to receive multiple forwarding paths sent by the control node, where the multiple forwarding paths are determined based on network parameters reported by each acceleration node in the overlay network. The function of the sending module 203 may refer to the description of step 103 in the above method embodiment.

[0145] The sending module 203 may also be configured to determine, for each of the multiple service flows, a forwarding path from the multiple forwarding paths that matches the path selection policy of the service flow.

[0146] In summary, an embodiment of the present application provides a transmission device for a service flow, which is applied to an acceleration node in an overlay network. The device can receive multiple service flows sent by a server and obtain the SLA requirements of the multiple service flows. Moreover, when the device detects that the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, it can reduce the transmission quality of at least one target service flow with a lower SLA requirement. Thus, it can be ensured that when multiple service flows compete for network resources, the transmission quality of service flows with higher SLA requirements is prioritized.

[0147] The present application also provides another service flow transmission device, which can be applied to Figures 1 to 3 The server in the real-time communication system shown in the figure can be used to implement the steps performed by the server in the method for transmitting the service flow provided in the above method embodiment. Figure 7 As shown, the transmission device of the service flow includes:

[0148] The sending module 301 is used to send multiple service flows to the acceleration node in the overlay network so that the acceleration node forwards the multiple service flows to the access network, and when the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, reduce the transmission quality of at least one target service flow among the multiple service flows.

[0149] The SLA requirement of the at least one target service flow is lower than the SLA requirements of other service flows in the multiple service flows, and after the multiple service flows are forwarded to the access network, the access network forwards the multiple service flows to the client. The function of the sending module 301 can refer to the relevant description of step 104 in the above method embodiment.

[0150] Alternatively, if Figure 7 As shown, the device may also include:

[0151] The first receiving module 302 is used to receive the congestion level of the access network fed back by the client, where the congestion level is determined by the client based on the congestion label fed back by the network device in the access network. The function of the first receiving module 302 can be realized by referring to the relevant description of step 112 in the above method embodiment.

[0152] The adjustment module 303 is used to adjust the transmission quality of at least one of the multiple service flows based on the congestion level of the access network and the SLA requirements of the multiple service flows. The function of the adjustment module 303 can be realized by referring to the relevant description of step 114 in the above method embodiment.

[0153] Optionally, the sending quality may be characterized by at least one of the following parameters: sending priority, sending performance parameters, encoding parameters, rendering parameters, and type of transmission network.

[0154] Optionally, the first receiving module 302 may also be used to receive the network status of the overlay network fed back by the control node in the overlay network. The function of the first receiving module 302 may also refer to the relevant description of step 113 in the above method embodiment.

[0155] The adjustment module 303 may be used to adjust the transmission quality of at least one of the multiple service flows based on the congestion level of the access network, the network status of the overlay network, and the SLA requirements of the multiple service flows.

[0156] Optionally, continue to refer to Figure 7 , the device may also include:

[0157] The second receiving module 304 is used to receive the identifier of the data packet of at least one target service flow among the multiple service flows fed back by the acceleration node, and the data packet of the at least one target service flow is the data packet discarded by the acceleration node after the network resources of the coverage network do not meet the SLA requirements of the multiple service flows. The function of the second receiving module 304 can refer to the relevant description of step 108 in the above method embodiment.

[0158] The sending module 301 may also be used to mark the data packets of the at least one target service flow as data packets that do not need to be retransmitted. The function of the sending module 301 may also refer to the relevant description of step 109 in the above method embodiment.

[0159] Optionally, the real-time communication system may further include: an SLA management terminal.

[0160] The sending module 301 may also be used to report the SLA requirement of at least one type of service to which the multiple service flows belong to the SLA management end.

[0161] Or, if Figure 7As shown, the device may further include: a third receiving module 305, which may be used to receive an SLA requirement of at least one type of service to which the multiple service flows belong, which is issued by the SLA management terminal.

[0162] In summary, an embodiment of the present application provides a transmission device for a service flow, which is applied to a server. The device can send multiple service flows to an acceleration node in an overlay network for the acceleration node to forward to an access network. Moreover, when the acceleration node detects that the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, it can reduce the transmission quality of at least one target service flow with a lower SLA requirement. Thus, it can be ensured that when multiple service flows compete for network resources, the transmission quality of service flows with higher SLA requirements is prioritized.

[0163] Technical personnel in the relevant field can clearly understand that for the convenience and simplicity of description, the transmission device of the business flow and the specific working process of each module described above can refer to the corresponding process in the aforementioned method embodiment and will not be repeated here.

[0164] It is understandable that each module in the transmission device of the service flow (such as the receiving module 201, the acquisition module 202, the sending module 203 and the adjustment module 204, or the sending module 301, the first receiving module 302, the adjustment module 303, the second receiving module 304 and the third receiving module 305, etc.) can be implemented by software or by hardware. Exemplarily, the following takes the receiving module 201 as an example to introduce the implementation of the receiving module 201. Similarly, the implementation of the acquisition module 202, the sending module 203 and the adjustment module 204, and the sending module 301, the first receiving module 302, the adjustment module 303, the second receiving module 304 and the third receiving module 305 can all refer to the implementation of the receiving module 201.

[0165] As an example of a software functional unit, the receiving module 201 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the receiving module 201 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with similar geographical locations. Among them, usually a region may include multiple AZs.

[0166] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.

[0167] As an example of a hardware functional unit, the receiving module 201 may include at least one computing device, such as a server, etc. Alternatively, the receiving module 201 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.

[0168] The multiple computing devices included in the receiving module 201 can be distributed in the same region or in different regions. The multiple computing devices included in the receiving module 201 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the receiving module 201 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0169] It can be understood that in other embodiments, the receiving module 201 can be used to execute any step in the above-mentioned service flow transmission method performed by the acceleration node, and the acquisition module 202, the sending module 203 and the adjustment module 204 can also be used to execute any step in the above-mentioned service flow transmission method performed by the acceleration node. The steps that the receiving module 201, the acquisition module 202, the sending module 203 and the adjustment module 204 are responsible for implementing can be specified as needed, and the above-mentioned modules respectively implement different steps in the service flow transmission method to realize the full functions of the service flow transmission device.

[0170] It can also be understood that in other embodiments, the sending module 301 can be used to execute any step executed by the server in the above-mentioned method for transmitting the service flow, and the first receiving module 302, the adjustment module 303, the second receiving module 304 and the third receiving module 305 can also be used to execute any step executed by the server in the above-mentioned method for transmitting the service flow. The steps that the sending module 301, the first receiving module 302, the adjustment module 303, the second receiving module 304 and the third receiving module 305 are responsible for implementing can be specified as needed, and the above-mentioned modules respectively implement different steps in the method for transmitting the service flow to realize all functions of the transmission device for the service flow.

[0171] Figure 8 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application. The computing device may be an acceleration node and may implement the steps performed by the acceleration node in the above method embodiment, or the computing device may be a server and may implement the steps performed by the server in the above method embodiment. Figure 8 , the computing device may include: a bus 402, a processor 404, a memory 406, and a communication interface 408. The processor 404, the memory 406, and the communication interface 408 communicate with each other via the bus 402. It should be understood that the embodiment of the present application does not limit the number of processors and memories in the computing device.

[0172] The bus 402 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 8 The bus 404 is represented by only one line, but it does not mean that there is only one bus or one type of bus. The bus 404 may include a path for transmitting information between various components of the computing device (for example, the memory 406, the processor 404, and the communication interface 408).

[0173] The processor 404 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0174] The memory 406 may include a volatile memory, such as a random access memory (RAM). The processor 404 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).

[0175] The memory 406 stores executable program codes, and the processor 404 executes the executable program codes to respectively implement the functions of the aforementioned receiving module 201, the acquisition module 202, the sending module 203, and the adjustment module 204, thereby implementing the steps performed by the acceleration node in the above method embodiment. Alternatively, the processor 404 executes the executable program codes to respectively implement the functions of the aforementioned sending module 301, the first receiving module 302, the adjustment module 303, the second receiving module 304, and the third receiving module 305, thereby implementing the steps performed by the server in the above method embodiment. That is, the memory 406 stores instructions for executing the above-mentioned service flow transmission method.

[0176] The communication interface 403 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device and other devices or a communication network.

[0177] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0178] like Fig. 9 As shown, the computing device cluster includes at least one computing device. The memory 406 in one or more computing devices in the computing device cluster may store the same instructions for executing the above-mentioned service flow transmission method.

[0179] In some possible implementations, the memory 406 of one or more computing devices in the computing device cluster may also store partial instructions for executing the above-mentioned method for transmitting the service flow. In other words, the combination of one or more computing devices may jointly execute instructions for executing the above-mentioned method for transmitting the service flow.

[0180] It is understandable that the memory 406 in different computing devices in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the transmission device of the service flow. That is, the instructions stored in the memory 406 in different computing devices can implement the functions of one or more modules of the receiving module 201, the acquisition module 202, the sending module 203 and the adjustment module 204. Or, the instructions stored in the memory 406 in different computing devices can implement the functions of one or more modules of the sending module 301, the first receiving module 302, the adjustment module 303, the second receiving module 304 and the third receiving module 305.

[0181] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.10 A possible implementation is shown. Fig.10 As shown, two computing devices 400A and 400B are connected via a network. Specifically, they are connected to the network via a communication interface in each computing device. In this type of possible implementation, the memory 406 in different computing devices in the computing device cluster can store different instructions for executing part of the functions of the transmission device of the service flow. That is, the instructions stored in the memory 406 in different computing devices can implement the functions of one or more modules in the transmission device of the service flow.

[0182] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to execute the steps performed by the acceleration node or the server in the method for transmitting the service flow provided in the above method embodiment.

[0183] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be a software or program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device executes the steps performed by the acceleration node or the server in the method for transmitting the service flow provided in the above method embodiment.

[0184] In the embodiments of the present application, the terms "first", "second" and "third" are used for descriptive purposes only and should not be understood as indicating or implying relative importance. In the embodiments of the present application, the term "at least one" refers to one or more, and "multiple" refers to two or more. In the embodiments of the present application, the term "and / or" is merely a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article generally indicates that the previously associated objects are in an "or" relationship.

[0185] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the embodiments of the present application, rather than to limit them. Although the embodiments of the present application have been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions recorded in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for transmitting a service flow, characterized in that: Applied to a real-time communication system, the real-time communication system includes: a client, an access network, an overlay network, and a server; the method includes: The acceleration node in the overlay network receives multiple service flows sent by the server; The acceleration node obtains the service level agreement SLA requirements of the multiple business flows; The acceleration node forwards the multiple service flows to the access network, so that the access network forwards the multiple service flows to the client; If the network resources of the overlay network do not meet the SLA requirements of the multiple service flows, the acceleration node reduces the transmission quality of at least one target service flow among the multiple service flows; The SLA requirement of the at least one target service flow is lower than the SLA requirements of other service flows among the multiple service flows.

2. The method according to claim 1, characterized in that The acceleration node forwarding the multiple service flows to the access network includes: For each of the multiple service flows, the acceleration node forwards the service flow to the access network through a forwarding path that matches the SLA requirement of the service flow.

3. The method according to claim 2, characterized in that The SLA requirement includes a path selection strategy, and the path selection strategy is used to characterize the demand of the service flow for the forwarding path; Before the acceleration node forwards the service flow to the access network through a forwarding path that matches the SLA requirement of the service flow, the method further includes: The acceleration node reports network parameters between the acceleration node and other acceleration nodes in the overlay network to the control node in the overlay network; The acceleration node receives a plurality of forwarding paths sent by the control node, where the plurality of forwarding paths are determined based on network parameters reported by each acceleration node in the overlay network; For each of the multiple service flows, the acceleration node determines a forwarding path that matches the path selection policy of the service flow from the multiple forwarding paths.

4. The method according to any one of claims 1 to 3, characterized in that: The acceleration node reduces the transmission quality of at least one target service flow among the multiple service flows, including: The acceleration node delays sending at least one target service flow among the multiple service flows; And / or, the acceleration node discards data packets of at least one target service flow among the multiple service flows.

5. The method according to claim 4, characterized in that After the acceleration node discards a data packet of at least one target service flow among the multiple service flows, the method further includes: The acceleration node feeds back to the server an identifier of the discarded data packet of the at least one target service flow.

6. The method according to any one of claims 1 to 5, characterized in that: The real-time communication system further includes: an SLA management terminal, wherein the acceleration node obtains the SLA requirements of the multiple service flows, including: The acceleration node receives an SLA requirement of at least one type of service issued by the SLA management end; The acceleration node determines an SLA requirement of at least one service flow among the multiple service flows based on a type of service to which the at least one service flow belongs.

7. The method according to any one of claims 1 to 6, characterized in that: The acceleration node obtains the SLA requirements of the multiple service flows, including: The acceleration node obtains the SLA requirement of at least one service flow from a data packet of at least one service flow among the multiple service flows.

8. The method according to any one of claims 1 to 7, characterized in that: The SLA requirement includes a requirement for at least one of the following parameters: end-to-end delay, reliability, and forwarding priority; The end-to-end delay of the at least one target service flow is higher than the end-to-end delay of the other service flows; The reliability of the at least one target service flow is lower than the reliability of the other service flows; The forwarding priority of the at least one target service flow is lower than the forwarding priority of the other service flows.

9. A method for transmitting a service flow, characterized in that: Applied to a real-time communication system, the real-time communication system includes: a client, an access network, an overlay network, and a server; the method includes: The server sends a plurality of service flows to an acceleration node in the overlay network, so that the acceleration node forwards the plurality of service flows to the access network, and reduces the transmission quality of at least one target service flow among the plurality of service flows when the network resources of the overlay network do not meet the service level agreement (SLA) requirements of the plurality of service flows; Among them, the SLA requirement of at least one target service flow is lower than the SLA requirements of other service flows among the multiple service flows. After the multiple service flows are forwarded to the access network, the access network forwards the multiple service flows to the client.

10. The method according to claim 9, characterized in that The method further comprises: The server receives the congestion level of the access network fed back by the client, where the congestion level is determined by the client based on a congestion label fed back by a network device in the access network; The service end adjusts the sending quality of at least one of the multiple service flows based on the congestion level of the access network and the SLA requirements of the multiple service flows.

11. The method according to claim 10, characterized in that The sending quality is characterized by at least one of the following parameters: sending priority, sending performance parameters, encoding parameters, rendering parameters, and type of transmission network.

12. The method according to claim 10 or 11, characterized in that: The method further includes: the server receiving a network status of the overlay network fed back by a control node in the overlay network; The server adjusts the sending quality of at least one of the multiple service flows based on the congestion level of the access network and the SLA requirements of the multiple service flows, including: The server adjusts the sending quality of at least one of the multiple service flows based on the congestion level of the access network, the network status of the overlay network, and the SLA requirements of the multiple service flows.

13. The method according to any one of claims 9 to 12, characterized in that: The method further comprises: The server receives an identifier of a data packet of at least one target service flow among the multiple service flows fed back by the acceleration node, where the data packet of the at least one target service flow is a data packet discarded by the acceleration node after the network resources of the overlay network do not meet the SLA requirements of the multiple service flows; The server marks the data packets of the at least one target service flow as data packets that do not need to be retransmitted.

14. The method according to any one of claims 9 to 13, characterized in that: The real-time communication system further includes: an SLA management terminal; the method further includes: The service end reports the SLA requirements of at least one type of service to which the multiple service flows belong to to the SLA management end; Alternatively, the service end receives an SLA requirement of at least one type of service to which the multiple service flows belong, which is issued by the SLA management end.

15. A transmission device for a service flow, characterized in that: The device is applied to an acceleration node in a coverage network in a real-time communication system, wherein the real-time communication system further comprises: a client, an access network, and a server; and the device comprises: A receiving module, used for receiving multiple service flows sent by the server; An acquisition module, used to acquire service level agreement (SLA) requirements of the multiple business flows; A sending module, used for forwarding the multiple service flows to the access network, so that the access network forwards the multiple service flows to the client; an adjustment module, configured to reduce the transmission quality of at least one target service flow among the multiple service flows if the network resources of the overlay network do not meet the SLA requirements of the multiple service flows; The SLA requirement of the at least one target service flow is lower than the SLA requirements of other service flows among the multiple service flows.

16. The device according to claim 15, characterized in that The sending module is used for: For each service flow among the multiple service flows, the service flow is forwarded to the access network through a forwarding path that matches the SLA requirement of the service flow.

17. The device according to claim 16, characterized in that The SLA requirement includes a path selection strategy, and the path selection strategy is used to characterize the demand of the service flow for the forwarding path; The sending module is further used to report network parameters between the control node in the overlay network and other acceleration nodes in the overlay network; The receiving module is further configured to receive multiple forwarding paths sent by the control node, where the multiple forwarding paths are determined based on network parameters reported by each acceleration node in the overlay network; The sending module is further configured to determine, for each of the multiple service flows, a forwarding path from the multiple forwarding paths that matches the path selection strategy of the service flow.

18. The device according to any one of claims 15 to 17, characterized in that The adjustment module is used for: Delaying sending of at least one target service flow among the multiple service flows; And / or, discarding data packets of at least one target service flow among the multiple service flows.

19. The device according to claim 18, characterized in that The sending module is also used for: After the adjustment module discards a data packet of at least one target service flow among the multiple service flows, an identifier of the discarded data packet of the at least one target service flow is fed back to the server.

20. The device according to any one of claims 15 to 19, characterized in that The real-time communication system further includes: an SLA management terminal, and the acquisition module is used to: Receiving an SLA requirement of at least one type of service issued by the SLA management terminal; Based on the type of service to which at least one service flow among the multiple service flows belongs, an SLA requirement of the at least one service flow is determined.

21. The device according to any one of claims 15 to 20, characterized in that The acquisition module is used to: An SLA requirement of at least one service flow among the multiple service flows is obtained from a data packet of the at least one service flow.

22. The device according to any one of claims 15 to 21, characterized in that The SLA requirement includes a requirement for at least one of the following parameters: end-to-end delay, reliability, and forwarding priority; The end-to-end delay of the at least one target service flow is higher than the end-to-end delay of the other service flows; The reliability of the at least one target service flow is lower than the reliability of the other service flows; The forwarding priority of the at least one target service flow is lower than the forwarding priority of the other service flows.

23. A transmission device for a service flow, characterized in that: The server end is applied to a real-time communication system, wherein the real-time communication system further comprises: a client, an access network, and an overlay network; the device comprises: a sending module, configured to send a plurality of service flows to an acceleration node in the overlay network, so that the acceleration node forwards the plurality of service flows to the access network, and to reduce the transmission quality of at least one target service flow among the plurality of service flows when the network resources of the overlay network do not meet the service level agreement (SLA) requirements of the plurality of service flows; Among them, the SLA requirement of at least one target service flow is lower than the SLA requirements of other service flows among the multiple service flows. After the multiple service flows are forwarded to the access network, the access network forwards the multiple service flows to the client.

24. The device according to claim 23, characterized in that The device also includes: A first receiving module, configured to receive a congestion level of the access network fed back by the client, where the congestion level is determined by the client based on a congestion label fed back by a network device in the access network; An adjustment module is used to adjust the sending quality of at least one service flow among the multiple service flows based on the congestion level of the access network and the SLA requirements of the multiple service flows.

25. The device according to claim 24, characterized in that The sending quality is characterized by at least one of the following parameters: sending priority, sending performance parameters, encoding parameters, rendering parameters, and type of transmission network.

26. The device according to claim 24 or 25, characterized in that The first receiving module is further configured to receive a network status of the overlay network fed back by a control node in the overlay network; The adjustment module is used to adjust the transmission quality of at least one of the multiple service flows based on the congestion level of the access network, the network status of the overlay network, and the SLA requirements of the multiple service flows.

27. The device according to any one of claims 23 to 26, characterized in that The device also includes: A second receiving module is configured to receive an identifier of a data packet of at least one target service flow among the multiple service flows fed back by the acceleration node, where the data packet of the at least one target service flow is a data packet discarded by the acceleration node after the network resources of the overlay network do not meet the SLA requirements of the multiple service flows; The sending module is further used to mark the data packets of the at least one target service flow as data packets that do not need to be retransmitted.

28. The device according to any one of claims 23 to 27, characterized in that The real-time communication system further includes: an SLA management terminal; The sending module is further used to report the SLA requirements of at least one type of service to which the multiple service flows belong to to the SLA management terminal; Alternatively, the device further includes a third receiving module, and the third receiving module is used to receive the SLA requirement of at least one type of service to which the multiple service flows belong, which is issued by the SLA management end.

29. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 14.

30. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 14.

31. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 14.