Data forwarding method and device and storage medium
By identifying the port attributes and scheduling policies of data packets in data center network devices, remote and local data packets are distinguished, and remote data packets are scheduled to high-priority queues. This solves the impact of traffic congestion on remote data centers in multi-data center interconnection scenarios and improves data transmission performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-29
- Publication Date
- 2026-03-24
AI Technical Summary
In multi-data center interconnection scenarios, existing traffic congestion control mechanisms have difficulty distinguishing between remote and local data packets, causing traffic congestion signals from the local data center to be transmitted to the remote end, which seriously affects the data transmission performance across data centers.
By identifying the port attributes and scheduling policies of data packets, remote and local data packets are distinguished. Remote data packets are scheduled to a high-priority forwarding queue to ensure that they can still be forwarded with priority when local traffic is congested, thus preventing congestion signals from being transmitted to the remote end.
It improves data transmission performance across data centers, avoids the impact of local traffic congestion on remote data centers, and ensures the stability and efficiency of data transmission.
Smart Images

Figure CN121728035A_ABST
Abstract
Description
Technical Field
[0001] This document relates to the field of data forwarding technology, and in particular to a data forwarding method, device and storage medium. Background Technology
[0002] To meet the processing demands of massive amounts of data in scenarios such as AI model training, it is often necessary to build multiple data centers (DCs) in different regions. For example, in the field of intelligent computing, as the scale of data continues to grow, the resources and capacity of a single physical location are gradually becoming a bottleneck for the expansion of intelligent computing centers. Therefore, users tend to follow policy guidance or energy layout and build data centers in multiple cities. There are frequent and large-scale data transmission needs within these data centers and between them.
[0003] During data transmission, low packet loss (or even zero packet loss) and low latency are key performance indicators that need to be met. In actual transmission, traffic congestion is inevitable, affecting these transmission performance metrics. To control traffic congestion, differential traffic scheduling mechanisms are typically deployed in data forwarding devices (such as switches), such as priority-based flow control (PFC) or differential services code point (DSCP) flow control mechanisms.
[0004] However, in multi-data center interconnection scenarios, if the local data center's data forwarding device directly uses the aforementioned traffic congestion control mechanism to forward data packets to the destination device, it will be difficult to distinguish between data packets from remote data centers and local data packets. Instead, all data packets will be treated as local data packets for processing. This will cause the traffic congestion signal generated by the local data center to be transmitted to the remote end, thereby interfering with or even interrupting cross-data center data transmission and seriously affecting the cross-data center data transmission performance. Summary of the Invention
[0005] This application provides a data forwarding method, device, and storage medium to address the problem that existing data forwarding methods severely impact data transmission performance across data centers.
[0006] To solve the above-mentioned technical problems, the embodiments of this application are implemented as follows: Firstly, a data forwarding method is provided, applied to a network device, the method comprising: Receive the first data packet; In response to the first port receiving the first data packet having a first attribute, the first data packet is scheduled to a first forwarding queue. The first attribute of the first port is used to indicate that the data packet received through the first port comes from a remote data center. The first forwarding queue has a higher priority than a second forwarding queue used to forward local data packets. In response to a second data packet received at the second port matching a first scheduling policy, the second data packet is scheduled to a third forwarding queue, wherein the second port is the egress port of the first data packet, the first scheduling policy is used to instruct the return data packet of the first data packet to be scheduled to the third forwarding queue, and the priority of the third forwarding queue is the same as the priority of the first forwarding queue.
[0007] Secondly, a data forwarding apparatus is provided, the apparatus comprising: The first receiving module is used to receive the first data packet; A first scheduling module is configured to schedule the first data packet to a first forwarding queue in response to the first port receiving the first data packet having a first attribute. The first attribute of the first port is used to indicate that the data packet received through the first port comes from a remote data center. The first forwarding queue has a higher priority than a second forwarding queue used to forward local data packets. The second scheduling module is configured to schedule the second data packet received at the second port to the third forwarding queue in response to the second data packet being matched with the first scheduling policy. The second port is the output port of the first data packet, and the first scheduling policy is configured to instruct the return data packet of the first data packet to be scheduled to the third forwarding queue. The priority of the third forwarding queue is the same as the priority of the first forwarding queue.
[0008] Thirdly, an electronic device is provided, comprising: processor; Memory used to store the processor's executable instructions; The processor is configured to execute the instructions to implement the method as described in the first aspect.
[0009] Fourthly, a computer-readable storage medium is provided, wherein when instructions in the storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the method described in the first aspect.
[0010] Fifthly, a computer program product including instructions is provided, characterized in that when a computer executes the instructions of the computer program product, the computer performs the method as described in the first aspect.
[0011] In this embodiment, after receiving a first data packet, the network device can determine that the first data packet originates from a remote data center by identifying that the first port receiving the first data packet has a first attribute. The first data packet from the remote data center is then scheduled to a first forwarding queue of a second forwarding queue with a higher priority than local data packets. Simultaneously, for a second data packet received at the second port (the outgoing port of the first data packet), if the second data packet matches the first scheduling policy of the return data packet of the first data packet (i.e., if the second data packet belongs to the return data packet of the first data packet), the second data packet is scheduled to a third forwarding queue of the second forwarding queue with a higher priority than local data packets. Therefore, the data forwarding scheme provided in this embodiment can distinguish between data packets originating from or destined for a remote data center and local data packets, and prioritizes the former for a higher-priority forwarding queue. Through this mechanism, when traffic congestion occurs in the local data center, data packets originating from or destined for the remote data center can still be forwarded preferentially, thus preventing the forwarding process from being affected by local traffic congestion. This avoids the transmission of traffic congestion signals generated in the local data center to the remote data center, thereby improving cross-data center data transmission performance. Attached Figure Description
[0012] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0013] Figure 1 This is a schematic diagram of data forwarding in a multi-data center interconnection scenario provided by some embodiments of this application.
[0014] Figure 2 This is a flowchart illustrating a data forwarding method provided in some embodiments of this application.
[0015] Figure 3 This is a schematic diagram illustrating the forwarding principle of the first data packet in a data forwarding method provided by some embodiments of this application.
[0016] Figure 4 This is a schematic diagram illustrating the forwarding principle of the return data packet of the first data packet in a data forwarding method provided by some embodiments of this application.
[0017] Figure 5 This is a schematic diagram illustrating an application scenario of a data forwarding method provided by some embodiments of this application.
[0018] Figure 6 Is Figure 5 The diagram shown illustrates the forwarding process of a data forwarding method provided in this application embodiment in PE2, where a data forwarding method is applied to forward data packets.
[0019] Figure 7 Is Figure 5 The diagram shown illustrates another forwarding process in PE2, where a data forwarding method provided in this application is used to forward data packets.
[0020] Figure 8 These are schematic diagrams of the structure of electronic devices according to some embodiments of this application.
[0021] Figure 9 This is a schematic diagram of the structure of a data forwarding device provided in some embodiments of this application. Detailed Implementation
[0022] To enable those skilled in the art to better understand the technical solutions in the embodiments of this application, the technical solutions in one or more embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the protection scope of this document.
[0023] The terms "first," "second," etc., used in this application and claims are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein. Furthermore, in this application and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.
[0024] As mentioned above, in multi-data center interconnection scenarios, if the data forwarding device of the local data center directly uses the traffic congestion control mechanism in related technologies to forward data packets to the destination device, it will be difficult to distinguish between data packets from remote data centers and local data packets. Instead, all data packets will be treated as local data packets for processing. This will cause the traffic congestion signal generated by the local data center to be transmitted to the remote end, thereby interfering with or even interrupting cross-data center data transmission and seriously affecting the cross-data center data transmission performance.
[0025] For example, in Figure 1In the cross-data center (DC) data transmission shown, for DC B, when multiple forwarding devices (such as switches) on the parameter plane of DC B simultaneously transmit data packets to the same AI training server, causing congestion in the data traffic scheduled to the AI training server, if the existing traffic scheduling mechanism is still used, the traffic congestion signal in DC B will be transmitted to the remote data center (such as DC A). At this time, it will greatly affect the transmission performance of data transmission from DC A to the AI training server in DC B.
[0026] In related technical solutions, data center switches typically classify data packets into multiple forwarding queues to achieve differential scheduling of data packets. Different forwarding queues have different priorities, and then different scheduling algorithms are used to differentiate and forward data packets. For example, in RoCE intelligent computing scenarios, switches deploying Priority-based Flow Control (PFC) generally determine the forwarding queue of data packets using 802.1p or Differentiated Services Code Points (DSCP), i.e., assigning data packets to forwarding queues of different priorities based on different priority identifiers. The working principle of PFC is the same in multi-data center interconnection scenarios. This data packet scheduling mechanism in related technologies only supports identifying the forwarding queue to which a data packet belongs based on priority identifiers such as 802.1p or DSCP. It cannot accurately identify data packets transmitted across data centers, causing local flow control mechanisms to affect remote data centers and resulting in unnecessary cross-data center congestion control.
[0027] To address the aforementioned problems, this application proposes a data forwarding method, apparatus, and storage medium. The method can be executed by a network device or software installed in the network device. The network device may include, but is not limited to, devices used for data forwarding, such as switches.
[0028] The following description, in conjunction with the accompanying drawings, will explain a data forwarding method proposed in this application.
[0029] Some embodiments of this application provide a data forwarding method that can be applied to network devices, such as... Figure 2 As shown, the method may include: Step 201: Receive the first data packet.
[0030] In some embodiments, the network device described above can be any network device for data forwarding in the first data center, such as any switch in the first data center. The first data center can be any data center in a multi-data center interconnection scenario. Figure 1 Taking the multi-data center interconnection scenario shown as an example, the first data center can be DC A or DC B, and the network devices mentioned above can be either leaf-spine type DC A or DC B, where the latter is a spine switch (such as...). Figure 1 (Spine in DC A or DC B), or leaf switch (e.g. Figure 1 Leaf in DC A or DC B.
[0031] In some embodiments, the first data packet may be any data packet received by the network device at the first port. The first port is one of the data forwarding ports of the network device.
[0032] Step 202: In response to the first port receiving the first data packet having a first attribute, the first data packet is scheduled to the first forwarding queue.
[0033] The first attribute of the first port is used to indicate that the data packets received through the first port come from a remote data center, and the first forwarding queue has a higher priority than the second forwarding queue used to forward local data packets.
[0034] In some embodiments, in a multi-datacenter interconnection scenario, a remote datacenter refers to the other datacenters among these multiple datacenters. A remote datacenter is relative to the local datacenter. For example, assuming the local datacenter is the first datacenter among the multiple datacenters, then the remote datacenters are the other datacenters besides the first datacenter. Figure 1 For example, assuming the first data center is DC B, then DC A is one of the remote data centers of DC B. Based on this, a local data packet refers to a data packet generated by a device in a local data center and sent to other devices locally; it can be simply referred to as a short-range data packet.
[0035] In some embodiments, the number of second forwarding queues for forwarding local data packets can be one or more. Optionally, when there are multiple second forwarding queues, the different second forwarding queues have different priorities.
[0036] In some embodiments, prior to step 202, Figure 2 The method shown may also include: Obtain the attribute information pre-configured for the first port; Based on the attribute information, determine whether the first port has the first attribute.
[0037] In some embodiments, prior to step 202, attribute information including a first attribute can be pre-configured for the first port of the network device. For example, the first attribute may be a long-distance interface attribute, indicating that the data packets received by the port come from a remote data center over a long distance, which can be simply referred to as long-distance data packets.
[0038] It is understandable that when the first data packet comes from a remote data center, it is scheduled to the first forwarding queue, which has a higher priority than local data packets. This ensures that data packets from the remote data center are forwarded first, so that when traffic congestion occurs in the local data center, the forwarding process of data packets from the remote data center is not affected by local traffic congestion. This can prevent traffic congestion signals generated in the local data center from being transmitted to the remote data center, thereby improving the data transmission performance across data centers.
[0039] Step 203: In response to the second data packet received at the second port matching the first scheduling policy, the second data packet is scheduled to the third forwarding queue.
[0040] The second port is the outgoing port of the first data packet, and the first scheduling policy is used to indicate that the return data packet of the first data packet is scheduled to the third forwarding queue. The priority of the third forwarding queue is the same as that of the first forwarding queue.
[0041] In some embodiments, prior to step 203, Figure 2 The method shown may also include: The first data packet is identified to determine the flow characteristic information of the data stream to which the first data packet belongs.
[0042] The flow characteristic information may include, but is not limited to, at least one of the following: the source address of the first data packet, the destination address of the first data packet, the attribute information of the first port, and the priority identifier of the first data packet. The source address or destination address of the first data packet may be an IP address or a MAC address; the attribute information of the first port may include the aforementioned first attribute; the priority identifier of the first data packet may include, but is not limited to, / 802.1p or DSCP.
[0043] As an example, the aforementioned flow characteristic information can be included in a flow table (also known as a data forwarding table). After receiving the first data packet at the first port, the network device can generate a flow table for the first data packet through sampling or packet matching.
[0044] In some embodiments, prior to step 203, Figure 2The method shown may also include: The second port is determined based on the flow characteristic information.
[0045] In some embodiments, the flow characteristic information of the data stream to which the first data packet belongs may include the destination address of the first data packet, wherein determining the second port based on the flow characteristic information may include: The second port is determined based on the outgoing port information corresponding to the destination address of the first data packet.
[0046] For example, for a Layer 2 switch that forwards based on MAC addresses, the outgoing port of the first data packet can be determined by querying the MAC address table; for a router or Layer 3 switch that forwards based on IP addresses, the outgoing port of the first data packet can be determined based on the next-hop IP address.
[0047] In some embodiments, prior to step 203, Figure 2 The method shown may also include: configuring a first scheduling policy on the second port, that is, pre-configuring a first scheduling policy for the second port.
[0048] In some embodiments, prior to step 203, Figure 2 The method shown may also include: A first scheduling strategy is generated based on the aforementioned flow characteristic information; The first scheduling policy is sent to the second port.
[0049] In other words, the network device can dynamically generate a first scheduling policy based on the flow characteristic information of the data stream to which the first data packet belongs, and send the first scheduling policy to the second port, so that the second port can schedule the return data packets of the first data packet according to the latest first scheduling policy, thereby ensuring that the return data packets of the first data packet can be forwarded in a timely and correct manner.
[0050] In some embodiments, the return data packet of the first data packet refers to the response packet sent by the receiver of the first data packet to the sender of the first data packet.
[0051] In some embodiments, the flow characteristic information of the data stream to which the first data packet belongs may include: the source address of the first data packet, the destination address of the first data packet, and the attribute information of the first port receiving the first data packet. The step of generating the first scheduling policy based on the flow characteristic information may include: If it is determined that the first data packet comes from a remote data center based on the attribute information, the source address and destination address of the return data packet are determined based on the source address and destination address of the first data packet, and the first scheduling policy is generated based on the source address and destination address of the return data packet.
[0052] It is understandable that the source address of the return data packet of the first data packet is usually the destination address of the first data packet, and the destination address of the return data packet of the first data packet is usually the source address of the first data packet.
[0053] In some embodiments, the first scheduling policy generated by the network device based on the flow characteristic information of the data stream to which the first data packet belongs may include: 1) Matching rules, including: the source address and destination address of the return data packet of the first data packet; 2) The scheduling operations to be performed include: scheduling the return data packets of the first data packet to the third forwarding queue.
[0054] It is understandable that if the source and destination addresses of the second data packet received at the second port match the source and destination addresses of the return data packet of the first data packet, it indicates that the second data packet is the return data packet of the first data packet and belongs to the data packet sent to the remote data center. It can be scheduled to the third forwarding queue, which has a higher priority than the local data packet forwarding queue, so that the data packet sent to the remote data center is forwarded first. This ensures that the forwarding process of the data packet sent to the remote data center is not affected by the local traffic congestion. This can prevent the traffic congestion signal generated by the local data center from being transmitted to the remote data center, thereby improving the data transmission performance across data centers.
[0055] In some embodiments, Figure 2 The method shown may also include: Receive third data packets; In response to the fact that the third port receiving the third data packet does not have the first attribute, the third data packet is scheduled to the second forwarding queue based on the priority identifier carried in the third data packet.
[0056] In some embodiments, the third port can be any port in the network device other than the first and second ports. That is, the third port is neither a long-distance port for receiving long-distance packets (data packets from a remote data center) nor a short-distance interface for sending and receiving return data packets (data packets sent to a remote data center). The data packets received by the third port are local data packets (i.e., data packets generated within the local data center). It can be understood that scheduling local data packets to a low-priority forwarding queue ensures that long-distance data packets are forwarded preferentially, thereby achieving the goal that local congestion does not affect the remote data center.
[0057] In some embodiments, Figure 2 The method shown may also include: In response to the fourth data packet received at the second port not matching the first scheduling policy, the fourth data packet is scheduled to the second forwarding queue based on the priority identifier carried in the fourth data packet.
[0058] It is understandable that if the fourth data packet received at the second port does not match the first scheduling policy, it means that the fourth data packet is a data packet destined for the local device, that is, the fourth data packet is a local data packet. Scheduling it to a low-priority forwarding queue can ensure that long-distance data packets are forwarded first, thereby achieving the goal that local congestion will not affect the remote data center.
[0059] In some embodiments, if a priority identifier (such as 802.1p or DSCP) is carried in the first data packet, and the first data packet cannot be scheduled to the first forwarding queue based on the priority identifier (such as 802.1p or DSCP) carried in the first data packet, the network device may adjust the first data packet to the first forwarding queue in a preset manner.
[0060] In some embodiments, if the backhaul data packet of the first data packet carries a priority identifier (such as 802.1p or DSCP), and the backhaul data packet of the first data packet cannot be scheduled to the third forwarding queue based on the priority identifier (such as 802.1p or DSCP) carried in the backhaul data packet of the first data packet, the network device may adjust the first data packet to the first forwarding queue by a preset method.
[0061] The preset method may include, but is not limited to, at least one of the following: Adjust the priority identifier of the first data packet so that it matches the priority identifier of the first data packet with the first forwarding queue; Change the forwarding queue of the first data packet from the forwarding queue whose priority identifier matches to the first forwarding queue; ACL matching: By configuring Access Control List (ACL) rules, specific characteristics (such as 5-tuples) of the first data packet are matched, and it is forced to be re-marked as high priority or directly assigned to the first forwarding queue; Interface traffic shaping: By configuring a traffic shaping policy on the first port, bandwidth is guaranteed or a higher shaping rate is provided for the first data packet, thereby giving it a preference during queue scheduling and indirectly prompting it to enter or preferentially use the resources of the first forwarding queue.
[0062] In some embodiments, Figure 2 The data forwarding method shown follows priority-based flow control (PFC). This ensures that long-distance data packets are forwarded preferentially, thus preventing local congestion from affecting remote data centers.
[0063] In a data forwarding method proposed in this application embodiment, after receiving a first data packet, the network device can determine that the first data packet originates from a remote data center by identifying that the first port receiving the first data packet has a first attribute, and schedule the first data packet from the remote data center to a first forwarding queue of a second forwarding queue with a higher priority than local data packets. Simultaneously, for a second data packet received at the second port (the outgoing port of the first data packet), if the second data packet matches the first scheduling policy of the return data packet of the first data packet (i.e., if the second data packet belongs to the return data packet of the first data packet), the second data packet is scheduled to a third forwarding queue of the second forwarding queue with a higher priority than local data packets. This enables the data forwarding scheme proposed in this application embodiment to distinguish between data packets originating from or destined for a remote data center and local data packets, and to schedule the former to a higher priority forwarding queue. This mechanism ensures that when traffic congestion occurs in the local data center, data packets originating from or destined for the remote data center can still be forwarded with priority, thus preventing the forwarding process from being affected by local traffic congestion. This avoids the transmission of traffic congestion signals generated in the local data center to the remote data center, thereby improving the data transmission performance across data centers.
[0064] The following is combined Figure 3 An example is used to illustrate a data forwarding method proposed in an embodiment of this application.
[0065] like Figure 3 As shown, as an example, a control system 301 can be pre-configured in the network device 300. Based on this, a data forwarding method proposed in this application embodiment may include: 1) The flow control process for the first port (i.e., the port with long-distance interface attributes) may include: ① Network device 300 configures long-distance interface attributes (i.e., first attributes) on the receiving port (i.e., first port 303) of the remote data center, and automatically dispatches the first data packet received by the first port 303 to the first forwarding queue, wherein the priority of the first forwarding queue is higher than that of the second forwarding queue used for forwarding local data packets.
[0066] ② After receiving the first data packet, network device 300 generates a flow table 302 of the data stream to which the first data packet belongs through sampling or packet matching. This flow table 302 may contain the source address of the first data packet, the destination address of the first data packet, the attribute information of the first port, and the priority identifier of the first data packet. The source address or destination address of the first data packet may be an IP address or a MAC address; the attribute information of the first port may include the aforementioned long-range interface attributes; and the priority identifier of the first data packet may include, but is not limited to, 802.1p or DSCP.
[0067] For example, network device 300 may generate flow label 302 using methods such as sampling flow (sFlow), network flow (NetFlow), network flow analysis (NetStream), in-situ operations, administration, and maintenance (IOAM), and packet mirroring control system.
[0068] ③ The control system 301 of the network device 300 reads the flow table 302 and determines that the flow table 302 is a flow table for data packets (long-distance packets) from a remote data center based on the long-distance interface attributes contained in the flow table 302.
[0069] ④ After identifying that the flow table 302 is a flow table for long-range packets, the control system 301 of the network device 300 identifies the outgoing port (short-range interface) of the first data packet based on the information in the flow table 302, and obtains the second port 304; and the flow table 302 generates a first scheduling policy for scheduling the return data packets of the first data packet, and sends the first scheduling policy to the second port 304 so as to perform packet matching and scheduling after receiving the return data packets of the first data packet.
[0070] 2) The priority scheduling process for the return data packets of the first data packet (long-distance packet) may include: ① After receiving the first scheduling strategy generated by the control system 301, the second port 304 sends it to the underlying hardware to form a corresponding traffic matching table entry to guide the forwarding of data packets received by the second port 304. ② After receiving a data packet, the second port 304 matches the data packet with the first scheduling policy; ③ In response to the second data packet received on the second port 304 matching the first scheduling policy, i.e., confirming that the second data packet is a return data packet of the first data packet, i.e., the second data packet is a data packet sent to a remote data center, the second data packet can be scheduled to the third forwarding queue. The third forwarding queue is also a high-priority forwarding queue relative to the second forwarding queue used for forwarding local data packets. Optionally, in response to the fourth data packet received on the second port 304 not matching the first scheduling policy, the fourth data packet is scheduled to the second forwarding queue based on the priority identifier carried in the fourth data packet. In this way, network device 300 can ensure that long-distance data packets are forwarded first by using priority-based traffic control policies or Quality of Service (QoS) control policies (upper-layer applications can select queues such as Strict Priority (SP) / Round Robin (RR) / Weighted Round Robin (WRR) based on the service guarantee strength), so that local congestion will not affect remote data centers.
[0071] The following uses a specific application scenario as an example to illustrate a data forwarding method proposed in this application.
[0072] like Figure 5 As shown, in a multi-data center interconnection scenario, host 1 belongs to data center 1, PE1 is the edge network device of data center 1, and host 1 can forward data packets through PE1. Port 1 of PE1 is set as a long-distance port with the first attribute (i.e., the first port); host 2 and host 3 belong to data center 2, PE2 is the edge network device of data center 2, and port 1 of PE2 is set as a long-distance port with the first attribute (i.e., the first port). Host 2 and host 3 can forward data packets through PE2; data center 1 and data center 2 can transmit data through their respective optical transceiver modules (OTN).
[0073] like Figure 5 As shown, for example, the IP address and MAC address of host 1 are IP1 and MAC1 respectively; the IP address and MAC address of host 2 are IP2 and MAC2 respectively; and the IP address and MAC address of host 3 are IP3 and MAC3 respectively.
[0074] from Figure 5It can be seen that the data transmission between host 1 and host 2 is a long-distance data transmission across data centers, while the data transmission between host 3 and host 2 is a short-distance data transmission within data center 2. Assume that forwarding queue 3 is a low-priority forwarding queue and queue 4 is a high-priority forwarding queue. Since PE1 and PE2 can achieve similar functions, the following explanation will only use PE2 as an example to illustrate one of the data forwarding methods proposed in this application.
[0075] 1) Example of IP Layer 3 forwarding Pre-configure the long-distance interface attribute (i.e., the first attribute) for port 1 of PE2. This ensures that all data packets received by PE2 on port 1 will be treated as long-distance traffic (this can be achieved through sflow / netflow, port traffic mirroring to the control system, etc.). Based on this, the IP Layer 3 data forwarding process can include: ① The first data packet sent by host 1 to host 2 is forwarded to port 1 of PE2 via OTN long-distance fiber optic cable. The source address of the first data packet is IP1, the destination address is IP2, and DSCP=24.
[0076] ② Since port 1 of PE2 has been configured with long-distance interface attribute (i.e., first attribute), after receiving the first data packet, port 1 of PE2 will schedule the first data packet to high-priority queue 4.
[0077] The method of scheduling the first data packet to the high-priority queue 4 may include: manually setting it to be enqueued into queue 4 based on DSCP, or automatically matching it to the long-distance interface for enqueuing into queue 4.
[0078] ③ PE2 identifies the flow table of the data stream to which the first data packet belongs, and finds the outgoing port of the first data packet as port 2 based on the flow table information. The flow table of the data stream to which the first data packet belongs includes the source address IP1 and the destination address IP2. Based on the destination address IP2, the outgoing port of the first data packet can be found to be port 2.
[0079] In some embodiments, the flow table of the data stream to which the first data packet belongs may be identified and generated by PE2 after it first receives a long-distance data packet from PE1 on port 1.
[0080] In some embodiments, PE2 may also generate a first scheduling policy based on the flow table of the data stream to which the first data packet belongs, and send the first scheduling policy to port 2 of PE2 to prioritize the scheduling of the return data packets of the first data packet. The first scheduling policy can be regarded as a long-distance traffic scheduling policy.
[0081] ④ PE2 sets a first scheduling policy on port 2 to map the return data packets of the first data packet that matches the first scheduling policy to queue 4, while other data packets that do not match the first scheduling policy are still forwarded in queue 3. The source address of the return data packet of the first data packet is IP2, the destination address is IP1, and DSCP=24.
[0082] It is understandable that subsequent traffic between host 1 and host 2 can be forwarded based on queue 4, and traffic between host 3 and host 2 can be forwarded based on queue 3. Within PE2, the forwarding processes for traffic (long-distance data packets) between host 1 and host 2, and for traffic (local data packets) between host 3 and host 2, can be as follows: Figure 6 As shown.
[0083] 2) Example of VLAN Layer 2 forwarding Pre-configure the long-distance interface attribute (i.e., the first attribute) for port 1 of PE2. This ensures that all data packets received by PE2 on port 1 will be considered long-distance traffic (this can be achieved through sflow / netflow, port traffic mirroring to the control system, etc.). Based on this, the VLAN Layer 2 data forwarding process may include: ① The first data packet sent by host 1 to host 2 is forwarded to port 1 of PE2 via OTN long-distance fiber optic cable. The source address of the first data packet is source MAC1, the destination address is MAC2, and 802.1p=3.
[0084] ② Since port 1 of PE2 has been configured with long-distance interface attribute (i.e., first attribute), after receiving the first data packet, port 1 of PE2 will schedule the first data packet to high-priority queue 4.
[0085] The method of scheduling the first data packet to the high-priority queue 4 may include: manually setting it to be enqueued into queue 4 based on DSCP, or automatically matching it to the long-distance interface for enqueuing into queue 4.
[0086] ③ PE2 identifies the flow table of the data stream to which the first data packet belongs, and finds the outgoing port of the first data packet as port 2 based on the flow table information. The flow table of the data stream to which the first data packet belongs includes the source address MAC1 and the destination address MAC2. Based on the destination address MAC2, the outgoing port of the first data packet can be found to be port 2.
[0087] In some embodiments, the flow table of the data stream to which the first data packet belongs may be identified and generated by PE2 after it first receives a long-distance data packet from PE1 on port 1.
[0088] In some embodiments, PE2 may also generate a first scheduling policy based on the flow table of the data stream to which the first data packet belongs, and send the first scheduling policy to port 2 of PE2 to prioritize the scheduling of the return data packets of the first data packet. The first scheduling policy can be regarded as a long-distance traffic scheduling policy.
[0089] ④ PE2 sets a first scheduling policy on port 2 to map the return data packets of the first data packet that matches the first scheduling policy to queue 4, while other data packets that do not match the first scheduling policy are still forwarded in queue 3. The source address of the return data packet of the first data packet is MAC2, the destination address is MAC1, and 802.1p=3.
[0090] It is understandable that subsequent traffic between host 1 and host 2 can be forwarded based on queue 4, and traffic between host 3 and host 2 can be forwarded based on queue 3. Within PE2, the forwarding processes for traffic (long-distance data packets) between host 1 and host 2, and for traffic (local data packets) between host 3 and host 2, can be as follows: Figure 7 As shown.
[0091] As can be seen from the above embodiments, the data forwarding scheme proposed in this application can distinguish between data packets originating from or destined for a remote data center and local data packets, and place the former into a higher-priority forwarding queue. Through this mechanism, when traffic congestion occurs in the local data center, data packets originating from or destined for the remote data center can still be forwarded preferentially, thus ensuring that the forwarding process is not affected by local traffic congestion. This avoids the transmission of traffic congestion signals generated in the local data center to the remote data center, thereby improving the data transmission performance across data centers.
[0092] The foregoing has described specific embodiments of this application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired results. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0093] Figure 8 These are schematic diagrams of the electronic devices according to some embodiments of this application. Please refer to them. Figure 8At the hardware level, the electronic device includes a processor, and optionally also includes an internal bus, a network interface, and memory. The memory may include main memory, such as high-speed random-access memory (RAM), or non-volatile memory, such as at least one disk drive. Of course, the electronic device may also include other hardware required for other business operations.
[0094] The processor, network interface, and memory can be interconnected via an internal bus, which can be an ISA (Industry Standard Architecture) bus, a PCI (Peripheral Component Interconnect) bus, or an EISA (Extended Industry Standard Architecture) bus, etc. This bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 8 The symbol is represented by a single double-headed arrow, but this does not mean that there is only one bus or one type of bus.
[0095] Memory is used to store programs. Specifically, programs may include program code, which includes computer operation instructions. Memory may include main memory and non-volatile memory, and provides instructions and data to the processor.
[0096] The processor reads the corresponding computer program from non-volatile memory into main memory and then executes it, forming a data forwarding mechanism at the logical level. The processor executes the program stored in memory and specifically performs the following operations: Receive the first data packet; In response to the first port receiving the first data packet having a first attribute, the first data packet is scheduled to a first forwarding queue. The first attribute of the first port is used to indicate that the data packet received through the first port comes from a remote data center. The first forwarding queue has a higher priority than a second forwarding queue used to forward local data packets. In response to a second data packet received at the second port matching a first scheduling policy, the second data packet is scheduled to a third forwarding queue, wherein the second port is the egress port of the first data packet, the first scheduling policy is used to instruct the return data packet of the first data packet to be scheduled to the third forwarding queue, and the priority of the third forwarding queue is the same as the priority of the first forwarding queue.
[0097] The above is as stated in this application. Figure 8The data forwarding device method disclosed in the illustrated embodiments can be applied to a processor or implemented by a processor. The processor may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions in software form. The processor can be a general-purpose processor, including a Central Processing Unit (CPU), a Network Processor (NP), etc.; it can also be a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field-Programmable Gate Array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software module can reside in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0098] The electronic device can also perform Figure 2 The method, and implement the data forwarding device in Figure 2 The functions described in the illustrated embodiments will not be repeated here.
[0099] Of course, in addition to software implementation, the electronic device of this application does not exclude other implementation methods, such as logic devices or a combination of hardware and software, etc. In other words, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0100] This application also proposes a computer-readable storage medium that, when the instructions in the storage medium are executed by the processor of an electronic device, enables the electronic device to perform actions such as... Figure 2 The method of the illustrated embodiment achieves the same technical effect.
[0101] This application also proposes a computer program product including instructions, which, when executed by a computer, performs actions such as... Figure 2 The method of the illustrated embodiment achieves the same technical effect.
[0102] Figure 9 This is a schematic diagram of the structure of a data forwarding device 900 provided in some embodiments of this application. Figure 9 The data forwarding device 900 shown can be applied to network equipment. Please refer to... Figure 9 In one software implementation, the data forwarding device 900 may include: a first receiving module 901, a first scheduling module 903, and a second scheduling module 903.
[0103] The first receiving module 901 is used to receive the first data packet.
[0104] In some embodiments, the network device described above can be any network device for data forwarding in the first data center, such as any switch in the first data center. The first data center can be any data center in a multi-data center interconnection scenario.
[0105] In some embodiments, the first data packet may be any data packet received by the network device at the first port. The first port is one of the data forwarding ports of the network device.
[0106] The first scheduling module 902 is configured to schedule the first data packet to the first forwarding queue in response to the first port receiving the first data packet having a first attribute.
[0107] The first attribute of the first port is used to indicate that the data packets received through the first port come from a remote data center, and the first forwarding queue has a higher priority than the second forwarding queue used to forward local data packets.
[0108] The first attribute of the first port is used to indicate that the data packets received through the first port come from a remote data center, and the first forwarding queue has a higher priority than the second forwarding queue used to forward local data packets.
[0109] In some embodiments, in a multi-datacenter interconnection scenario, a remote datacenter refers to the other datacenters among these multiple datacenters. A remote datacenter is relative to the local datacenter. For example, assuming the local datacenter is the first datacenter among the multiple datacenters, then the remote datacenters are the other datacenters besides the first datacenter. Figure 1 For example, assuming the first data center is DC B, then DC A is one of the remote data centers of DC B. Based on this, a local data packet refers to a data packet generated by a device in a local data center and sent to other devices locally.
[0110] In some embodiments, the number of second forwarding queues for forwarding local data packets can be one or more. Optionally, when there are multiple second forwarding queues, the different second forwarding queues have different priorities.
[0111] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: The information acquisition module is used to acquire attribute information pre-configured for the first port before the first scheduling module schedules the first data packet to the first forwarding queue; The first determining module is used to determine whether the first port has a first attribute based on the attribute information.
[0112] In some embodiments, attribute information including a first attribute can be pre-configured for the first port of the network device. For example, the first attribute may be a long-distance interface attribute, indicating that the data packets received by the port come from a remote data center over a long distance, which may be simply referred to as long-distance data packets.
[0113] It is understandable that when the first data packet comes from a remote data center, it is scheduled to the first forwarding queue, which has a higher priority than local data packets. This ensures that data packets from the remote data center are forwarded first, so that when traffic congestion occurs in the local data center, the forwarding process of data packets from the remote data center is not affected by local traffic congestion. This can prevent traffic congestion signals generated in the local data center from being transmitted to the remote data center, thereby improving the data transmission performance across data centers.
[0114] The second scheduling module 903 is used to schedule the second data packet to the third forwarding queue in response to the second data packet received at the second port matching the first scheduling policy. The second port is the outgoing port of the first data packet, and the first scheduling policy is used to indicate that the return data packet of the first data packet is scheduled to the third forwarding queue. The priority of the third forwarding queue is the same as that of the first forwarding queue.
[0115] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: The message feature recognition module is used to identify the first data message and determine the flow feature information of the data stream to which the first data message belongs before the second scheduling module 903 schedules the second data message.
[0116] The flow characteristic information may include, but is not limited to, at least one of the following: the source address of the first data packet, the destination address of the first data packet, the attribute information of the first port, and the priority identifier of the first data packet. The source address or destination address of the first data packet may be an IP address or a MAC address; the attribute information of the first port may include the aforementioned first attribute; the priority identifier of the first data packet may include, but is not limited to, / 802.1p or DSCP.
[0117] As an example, the aforementioned flow characteristic information can be included in a flow table (also known as a data forwarding table). After receiving the first data packet at the first port, the network device can generate a flow table for the first data packet through sampling or packet matching.
[0118] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: a second determining module, used to determine the second port based on the flow characteristic information before the second scheduling module 903 schedules the second data packet.
[0119] In some embodiments, the flow characteristic information of the data stream to which the first data packet belongs may include the destination address of the first data packet, wherein the second determining module may be used to: determine the second port based on the outgoing port information corresponding to the destination address of the first data packet.
[0120] For example, for a Layer 2 switch that forwards based on MAC addresses, the outgoing port of the first data packet can be determined by querying the MAC address table; for a router or Layer 3 switch that forwards based on IP addresses, the outgoing port of the first data packet can be determined based on the next-hop IP address.
[0121] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: a policy configuration module, used to configure a first scheduling policy on the second port before the second scheduling module 903 schedules the second data packet, that is, to pre-configure the first scheduling policy for the second port.
[0122] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: The strategy generation module is used to generate a first scheduling strategy based on the flow feature information before the second scheduling module 903 schedules the second data packet. The policy distribution module is used to distribute the first scheduling policy to the second port.
[0123] In other words, the network device can dynamically generate a first scheduling policy based on the flow characteristic information of the data stream to which the first data packet belongs, and send the first scheduling policy to the second port, so that the second port can schedule the return data packets of the first data packet according to the latest first scheduling policy, thereby ensuring that the return data packets of the first data packet can be forwarded in a timely and correct manner.
[0124] In some embodiments, the return data packet of the first data packet refers to the response packet sent by the receiver of the first data packet to the sender of the first data packet.
[0125] In some embodiments, the flow characteristic information of the data stream to which the first data packet belongs may include: the source address of the first data packet, the destination address of the first data packet, and the attribute information of the first port receiving the first data packet. The step of generating the first scheduling policy based on the flow characteristic information may include: If it is determined that the first data packet comes from a remote data center based on the attribute information, the source address and destination address of the return data packet are determined based on the source address and destination address of the first data packet, and the first scheduling policy is generated based on the source address and destination address of the return data packet.
[0126] It is understandable that the source address of the return data packet of the first data packet is usually the destination address of the first data packet, and the destination address of the return data packet of the first data packet is usually the source address of the first data packet.
[0127] In some embodiments, the first scheduling policy generated by the policy generation module may include: 1) Matching rules, including: the source address and destination address of the return data packet of the first data packet; 2) The scheduling operations to be performed include: scheduling the return data packets of the first data packet to the third forwarding queue.
[0128] It is understandable that if the source and destination addresses of the second data packet received at the second port match the source and destination addresses of the return data packet of the first data packet, it indicates that the second data packet is the return data packet of the first data packet and belongs to the data packet sent to the remote data center. It can be scheduled to the third forwarding queue, which has a higher priority than the local data packet forwarding queue, so that the data packet sent to the remote data center is forwarded first. This ensures that the forwarding process of the data packet sent to the remote data center is not affected by the local traffic congestion. This can prevent the traffic congestion signal generated by the local data center from being transmitted to the remote data center, thereby improving the data transmission performance across data centers.
[0129] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: The second receiving module is used to receive the third data packet; The third scheduling module is used to schedule the third data packet to the second forwarding queue based on the priority identifier carried in the third data packet, in response to the third port receiving the third data packet not having the first attribute.
[0130] In some embodiments, the third port can be any port in the network device other than the first and second ports. That is, the third port is neither a long-distance port for receiving long-distance packets (data packets from a remote data center) nor a short-distance interface for sending and receiving return data packets (data packets sent to a remote data center). The data packets received by the third port are local data packets (i.e., data packets generated within the local data center and sent to the local device). It can be understood that scheduling local data packets to a low-priority forwarding queue ensures that long-distance data packets are forwarded preferentially, thereby achieving the goal that local congestion does not affect the remote data center.
[0131] In some embodiments, Figure 9 The data forwarding device 900 shown may further include: The fourth scheduling module is used to schedule the fourth data packet to the second forwarding queue based on the priority identifier carried in the fourth data packet in response to the mismatch between the fourth data packet received at the second port and the first scheduling policy.
[0132] It is understandable that if the fourth data packet received at the second port does not match the first scheduling policy, it means that the fourth data packet is a data packet destined for the local device, that is, the fourth data packet is a local data packet. Scheduling it to a low-priority forwarding queue can ensure that long-distance data packets are forwarded first, thereby achieving the goal that local congestion will not affect the remote data center.
[0133] In some embodiments, if a priority identifier (such as 802.1p or DSCP) is carried in the first data packet, and the first data packet cannot be scheduled to the first forwarding queue based on the priority identifier (such as 802.1p or DSCP) carried in the first data packet, the network device may adjust the first data packet to the first forwarding queue in a preset manner.
[0134] In some embodiments, if the backhaul data packet of the first data packet carries a priority identifier (such as 802.1p or DSCP), and the backhaul data packet of the first data packet cannot be scheduled to the third forwarding queue based on the priority identifier (such as 802.1p or DSCP) carried in the backhaul data packet of the first data packet, the network device may adjust the first data packet to the first forwarding queue by a preset method.
[0135] The preset method may include, but is not limited to, at least one of the following: Adjust the priority identifier of the first data packet so that it matches the priority identifier of the first data packet with the first forwarding queue; Change the forwarding queue of the first data packet from the forwarding queue whose priority identifier matches to the first forwarding queue; ACL matching: By configuring Access Control List (ACL) rules, specific characteristics (such as 5-tuples) of the first data packet are matched, and it is forced to be re-marked as high priority or directly assigned to the first forwarding queue; Interface traffic shaping: By configuring a traffic shaping policy on the first port, bandwidth is guaranteed or a higher shaping rate is provided for the first data packet, thereby giving it a preference during queue scheduling and indirectly prompting it to enter or preferentially use the resources of the first forwarding queue.
[0136] In some embodiments, Figure 2 The data forwarding method shown follows priority-based flow control (PFC). This ensures that long-distance data packets are forwarded preferentially, thus preventing local congestion from affecting remote data centers.
[0137] The data forwarding device 900 provided in this application embodiment can also perform... Figure 2 The method, and implementation Figure 2 The embodiments shown in this application have the same functions and achieve the same technical effects, and will not be described in detail here.
[0138] In summary, the above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
[0139] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.
[0140] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0141] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0142] The various embodiments in this application are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.
Claims
1. A data forwarding method, characterized in that, Applied to network devices, the method includes: Receive the first data packet; In response to the first port receiving the first data packet having a first attribute, the first data packet is scheduled to a first forwarding queue. The first attribute of the first port is used to indicate that the data packet received through the first port comes from a remote data center. The first forwarding queue has a higher priority than a second forwarding queue used to forward local data packets. In response to a second data packet received at the second port matching a first scheduling policy, the second data packet is scheduled to a third forwarding queue, wherein the second port is the egress port of the first data packet, the first scheduling policy is used to instruct the return data packet of the first data packet to be scheduled to the third forwarding queue, and the priority of the third forwarding queue is the same as the priority of the first forwarding queue.
2. The method according to claim 1, characterized in that, Before scheduling the second data packet to the third forwarding queue in response to a second data packet received at the second port matching the first scheduling policy, the method further includes: The first data packet is identified to determine the flow characteristic information of the data stream to which the first data packet belongs; The first scheduling strategy is generated based on the flow feature information; The first scheduling policy is sent to the second port.
3. The method according to claim 2, characterized in that, The flow characteristic information includes the source address of the first data packet, the destination address of the first data packet, and the attribute information of the first port. The step of generating the first scheduling policy based on the flow characteristic information includes: If it is determined that the first data packet comes from a remote data center based on the attribute information, the source address and destination address of the return data packet are determined based on the source address and destination address of the first data packet, and the first scheduling policy is generated based on the source address and destination address of the return data packet.
4. The method according to claim 3, characterized in that, The first scheduling strategy includes matching rules and scheduling operations to be performed. The matching rules include the source address and destination address of the return data packet, and the scheduling operations include scheduling the return data packet to the third forwarding queue.
5. The method according to claim 2, characterized in that, Before sending the first scheduling policy to the second port, the method further includes: The second port is determined based on the flow characteristic information.
6. The method according to claim 5, characterized in that, The flow characteristic information includes the destination address of the first data packet, wherein determining the second port based on the flow characteristic information includes: The second port is determined based on the outgoing port information corresponding to the destination address of the first data packet.
7. The method according to claim 1, characterized in that, The method further includes: Receive third data packets; In response to the fact that the third port receiving the third data packet does not have the first attribute, the third data packet is scheduled to the second forwarding queue based on the priority identifier carried in the third data packet.
8. The method according to claim 1, characterized in that, The method further includes: In response to the fourth data packet received at the second port not matching the first scheduling policy, the fourth data packet is scheduled to the second forwarding queue based on the priority identifier carried in the fourth data packet.
9. The method according to any one of claims 1-8, characterized in that, The method follows priority-based flow control (PFC).
10. An electronic device, characterized in that, include: processor; Memory used to store the processor's executable instructions; The processor is configured to execute the instructions to implement the method as described in any one of claims 1 to 9.
11. A computer program product comprising instructions, characterized in that, When the computer executes the instructions of the computer program product, the computer performs the method as described in any one of claims 1 to 9.