Data sending method and device, data receiving method and device, equipment and storage medium

By distributing business data into multiple paths and generating verification data, and utilizing XOR processing and transmission along different paths, the problem of service interruption caused by OXC port fragmentation was solved, achieving reliable data transmission and efficient utilization of network resources.

CN121603155APending Publication Date: 2026-03-03HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411182543.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-26
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

In data communication networks, port fragmentation issues in optical cross-connect devices (OXCs) require the interruption of existing services when expanding or adding new services, resulting in service damage. Furthermore, existing technologies struggle to achieve lossless migration in the event of port fragmentation.

Method used

The service data to be sent is distributed into multiple service data streams, and verification data is generated. The verification data is generated through XOR processing and transmitted using different paths of the multiple service data streams and the verification data. When the service data is interrupted, the receiving end uses the verification data to recover, ensuring the reliability of data transmission.

Benefits of technology

It enables lossless service migration in port fragmentation scenarios, improves network resource utilization, ensures data transmission reliability, and supports service expansion or the addition of new services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121603155A_ABST
    Figure CN121603155A_ABST
Patent Text Reader

Abstract

The invention provides a data sending method and device, a data receiving method and device, equipment and a storage medium, and belongs to the technical field of communication. The method comprises the following steps: a sending end distributes service data to be sent into multiple paths of service data, generates at least one path of verification data based on the multiple paths of service data, and sends the multiple paths of service data and the at least one path of verification data to a receiving end, the at least one path of verification data is used for recovering the at least one path of service data when the at least one path of service data in the multiple paths of service data is interrupted, so that the interrupted service data can be recovered when the interrupted service data exists, and the reliability of data transmission can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a method, apparatus, device and storage medium for transmitting and receiving data. Background Technology

[0002] Optical communication technology features high bandwidth, large capacity, high reliability, and low latency, and is widely used in data communication networks. In data communication networks, optical cross-connect (OXC) devices interconnect the devices within the network.

[0003] In data communication networks, the sending end communicates with the receiving end through an OXC device, and data loss may occur during the communication process. Summary of the Invention

[0004] This application provides a method, apparatus, device, and storage medium for data transmission and reception, which can improve the reliability of data transmission. The technical solution adopted is as follows:

[0005] Firstly, this application provides a method for transmitting data, applied at a sending end, the method comprising:

[0006] The sending end distributes the service data to be sent into multiple service data streams; based on the multiple service data streams, the sending end generates at least one verification data stream, which is used to restore the at least one service data stream when it is interrupted; the sending end sends the multiple service data streams and the at least one verification data stream to the receiving end.

[0007] In the scheme shown in this application, when transmitting service data, the service data is distributed into multiple service data streams for transmission, and verification data generated based on the multiple service data streams is also transmitted. This allows the receiving end to use the verification data and the already received service data to recover the interrupted service data when there is an interruption, thereby improving the reliability of data transmission.

[0008] In one alternative approach, the transmitter is used to connect to an OXC device, and the first service data of the multiple service data is output through a first port of the transmitter; the method further includes: the transmitter determining that the first service data is migrated from the first port to a second port of the transmitter, wherein the first port is not the same as the OXC device connected to the second port or the port of the connected OXC device is different; and outputting the first service data through the second port to send the first service data to the receiver.

[0009] In the scheme shown in this application, the transmitting end is connected to the OXC device. When the service transmission path is changed, the port after service migration is determined, and the service data is sent using the port after service migration, so as to realize the change of service transmission path.

[0010] In one alternative approach, the multiple service data streams and the at least one verification data stream are encapsulated as Media Access Control frames or Optical Data Unit (ODU) frames. This provides possible encapsulation methods.

[0011] In one alternative approach, when at least one verification data stream includes a single verification data stream, the sending end performs an XOR operation on multiple service data streams to obtain the single verification data stream. This method simplifies the calculation process and allows for rapid acquisition of the verification data.

[0012] In one alternative approach, the multiple service data and different data from the at least one verification data are transmitted to the receiving end via different paths.

[0013] In the scheme shown in this application, data from different paths are transmitted using different paths, and the possibility of simultaneous interruption of multiple data streams is low, thereby improving the reliability of data transmission.

[0014] Secondly, this application provides a method for receiving data, which is applied at a receiving end and includes:

[0015] The receiving end receives multiple service data streams and at least one verification data stream, wherein the at least one verification data stream is generated based on the multiple service data streams. If the first service data stream in the multiple service data streams is interrupted, the receiving end recovers the first service data stream based on the at least one verification data stream and the service data in the multiple service data streams other than the first service data stream.

[0016] In the solution shown in this application, when there is interrupted service data, the receiving end uses verification data and the already received service data to restore the interrupted service data, thereby improving the reliability of data transmission.

[0017] In one alternative approach, before restoring the first service data, the receiving end aligns the other service data (excluding the first service data) and the at least one verification data among the multiple service data to ensure that the data is aligned, thereby accurately restoring the first service data.

[0018] In one alternative approach, when recovering the first channel of service data, the receiving end performs an XOR operation on the at least one verification data channel and the service data from the multiple service data channels excluding the first channel, to obtain the first channel of service data. In this way, the receiving end directly performs an XOR operation on the received data to obtain the interrupted service data; the calculation method is simple and can quickly obtain the interrupted service data.

[0019] Thirdly, this application provides a data transmission apparatus having the functionality to implement the first aspect or any optional method of the first aspect described above. The apparatus includes at least one module for implementing the data transmission method provided by the first aspect or any optional method of the first aspect.

[0020] In one alternative approach, the modules in the data transmission device are implemented in software; these modules are program modules. In another alternative approach, the modules in the data transmission device are implemented in hardware or firmware.

[0021] Fourthly, this application provides a data receiving apparatus having the functionality to implement the second aspect or any optional method of the second aspect described above. The apparatus includes at least one module for implementing the data receiving method provided by the second aspect or any optional method of the second aspect.

[0022] In one alternative approach, the modules in the data receiving device are implemented in software; these modules are program modules. In another alternative approach, the modules in the data receiving device are implemented in hardware or firmware.

[0023] Fifthly, this application provides a computer-readable storage medium storing at least one computer instruction, which is read by a processor to cause a communication device to perform the data transmission method provided in the first aspect or any alternative method of the first aspect.

[0024] In a sixth aspect, this application provides a computer-readable storage medium storing at least one computer instruction that is read by a processor to cause a communication device to perform the data reception method provided in the second aspect or any alternative method of the second aspect.

[0025] In a seventh aspect, this application provides a computer program product including computer instructions stored in a computer-readable storage medium. A processor of a communication device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the communication device to perform the data transmission method provided in the first aspect or any alternative method of the first aspect.

[0026] Eighthly, this application provides a computer program product including computer instructions stored in a computer-readable storage medium. A processor of a communication device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the communication device to perform the data receiving method provided in the second aspect or any alternative method of the second aspect.

[0027] Ninthly, this application provides a communication system, the communication system including a transmitting end and a receiving end, the transmitting end being used to perform the data transmission method provided by the first aspect or any optional method of the first aspect, and the receiving end being used to perform the data reception method provided by the second aspect or any optional method of the second aspect.

[0028] In a tenth aspect, this application provides a network interface card (NIC) for performing the methods provided by the first aspect, the second aspect, any optional mode of the first aspect, or any optional mode of the second aspect. Attached Figure Description

[0029] Figure 1 This is a schematic diagram of the architecture of a data center network (DCN) provided in an exemplary embodiment of this application;

[0030] Figure 2 This is a schematic diagram of the system architecture provided in another exemplary embodiment of this application;

[0031] Figure 3 This is a schematic flowchart of a data transmission and reception method provided in an exemplary embodiment of this application;

[0032] Figure 4 This is a schematic diagram illustrating the relationship between business data and verification data provided in an exemplary embodiment of this application;

[0033] Figure 5 This is a schematic diagram of a data transmission path provided in an exemplary embodiment of this application;

[0034] Figure 6 This is a schematic diagram illustrating data transmission provided in an exemplary embodiment of this application;

[0035] Figure 7 This is a schematic diagram of a business migration process provided in an exemplary embodiment of this application;

[0036] Figure 8 This is a schematic diagram illustrating the migration of a first service provided in an exemplary embodiment of this application;

[0037] Figure 9This is a schematic diagram of a data transmission apparatus provided in an exemplary embodiment of this application;

[0038] Figure 10 This is a schematic diagram of a data receiving apparatus provided in an exemplary embodiment of this application;

[0039] Figure 11 This is a schematic diagram of the structure of a communication device provided in an exemplary embodiment of this application. Detailed Implementation

[0040] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0041] like Figure 1 As shown, with the proliferation of applications such as high-performance computing in data centers, the bandwidth and traffic of DCN interfaces are experiencing sudden surges. DCNs utilize fiber optic links for communication. For example, a DCN includes servers, switches, and OXC devices. Each server is connected to at least one switch, and the servers and switches are connected via electrical or fiber optic connections. Switches are connected to OXC devices via fiber optic connections, and each switch is connected to all OXC devices. There is at least one link between each switch and each OXC device.

[0042] After a DCN has been running for a period of time, port fragmentation will occur. Port fragmentation refers to the following situation: When the existing service on the source server (the server sending data) is expanded or a new service is added, the switch connected to the source server may have a free port A, which is connected to the first OXC device. However, the switch connecting the first OXC device to the destination server (the server receiving data) may not have a free link. Alternatively, the switch connected to the destination server may have a free port B, which is connected to the second OXC device. However, the switch connecting the second OXC device to the source server may not have a free link. This results in low port utilization when the source and destination servers need to add expansion ports for interconnection, as the free ports cannot be used to complete the interconnection. In other words, there is a free link between the switch connected to the source server and the first OXC device, but no free link between the first OXC device and the switch connected to the destination server, or vice versa. In this case, to expand the service or add a new service, the existing service needs to be interrupted, and the ports used by the service need to be adjusted so that the expanded or added service has a link to use. Thus, when expanding or adding new services, service interruptions can lead to business damage.

[0043] Based on this, this application provides a method for sending data and a method for receiving data. In this method, service data is distributed to multiple transmission paths and there is also redundancy check protection, so that even if at least one path of service data is lost, it can be recovered. In this way, when port fragmentation occurs, service data can be migrated without interrupting the service, reducing port fragmentation. This not only improves network resource utilization, but also ensures that expanded services or new services have ports available.

[0044] The system architecture of the embodiments of this application is described below.

[0045] Figure 1 This application provides a system architecture according to an embodiment of the present application. Figure 2 Another system architecture according to embodiments of this application is provided. For example... Figure 2 As shown, in this system architecture, the DCN is divided into multiple points of delivery (pods). The pods are interconnected using OXC devices. Each pod is the basic unit in data center planning. A physical device can only belong to one pod. Each pod includes servers and switches, and each server is connected to at least one switch in its pod.

[0046] Figure 1 and Figure 2 The examples used in this application all illustrate DCN. The data transmission and reception methods in this embodiment can be applied to any scenario where port fragmentation occurs; this application does not limit the methods. For example, the switch can be a multi-layer switch. Furthermore, a router can be used instead of a switch.

[0047] The following describes the execution entities of the data sending and receiving methods.

[0048] The entity executing the data transmission method is the data transmission device. Optionally, the device is a hardware device, such as a server or switch. Optionally, the device is a software device, such as a software program running on a server or switch.

[0049] The entity executing the data receiving method is a data receiving device. Optionally, this device is a hardware device, such as a server. Optionally, this device is a software device, such as a software program running on a server.

[0050] Figure 3 This application provides a schematic flowchart of a data transmission and reception method in an embodiment. The data transmission and reception method is executed by a sending end and a receiving end. The sending end includes a source server and a source switch, which are directly or indirectly connected. The source server refers to the server that sends data. The receiving end includes a destination server, which refers to the server that receives data. See [link to relevant documentation]. Figure 3 Steps 301 to 305.

[0051] Step 301: The source server distributes the business data to be sent into multiple business data streams.

[0052] The data to be sent is data from one or more services. The following text will use the example of data from one type of service to be sent.

[0053] In this embodiment, when the source server sends the service data to be sent, it distributes the service data into multiple service data streams using a round-robin method. For example, the multiple service data streams include four service data streams. In the service data to be sent, bits 1 to X are distributed to the first service data stream, bits X+1 to 2X are distributed to the second service data stream, bits 2X+1 to 3X are distributed to the third service data stream, bits 3X+1 to 4X are distributed to the fourth service data stream, and then bits 4X+1 to 5X are distributed to the first service data stream, and so on, to obtain four service data streams.

[0054] In one optional approach, the number of multiple service data streams is set according to actual needs; alternatively, the number of multiple service data streams is a fixed value. For example, the multiple service data streams include N service data streams, where N is an integer greater than 2. Alternatively, the number of multiple service data streams is set based on the number of ports connected to a switch from the source server. For example, the number of multiple service data streams is less than or equal to the number of ports connected to a switch from the source server; if the number of ports connected to the source switch from the source server is 5, the multiple service data streams include four service data streams.

[0055] In one alternative approach, multiple service data streams are encapsulated in the same way. Each service data stream's data block is encapsulated as a Media Access Control (MAC) frame, a specific data block, or an ODU frame. The specific data block is a custom data block, such as a 16-byte length. Each service data stream's data block carries fields such as alignment flags, used by the receiving end to align the received data blocks. These alignment flags and other fields can be located in the data block header.

[0056] Optionally, when the data transmission and reception method is applied to an optical transport network (OTN), the encapsulation method of the data block in each service data path can be an ODU frame; when the data transmission and reception method is applied to Ethernet, the encapsulation method of the data block in each service data path can be a MAC frame.

[0057] Step 302: The source server generates at least one verification data based on multiple business data streams.

[0058] In this embodiment, the source server uses multiple service data streams to calculate at least one verification data stream. This verification data stream is used to recover interrupted service data when at least one service data stream is interrupted. The at least one verification data stream uses the same encapsulation method as the multiple service data streams, and the data blocks in each verification data stream are encapsulated as MAC frames, specific data blocks, or ODU frames.

[0059] Optionally, when encapsulating validation data, similar to business data, the header also includes fields such as alignment flags.

[0060] It should be noted that when at least one verification data path includes M verification data paths, M interrupted service data paths can be recovered. The value of M is set according to actual needs. For example, when transmission resources are insufficient or the network transmission reliability is high, M can be set to 1; when transmission resources are sufficient or the network transmission reliability is low, M can be set to greater than 1.

[0061] In one optional approach, at least one verification data path includes a single verification data path. The source server performs an XOR operation on multiple service data paths to obtain a single verification data path. For example, if the multiple service data paths include four paths, TP1 to TP4, and the single verification data path TP5 is "TP1 XOR TP2 XOR TP3 XOR TP4". Specifically, Figure 4 A diagram illustrating the relationship between business data and validation data is provided, such as... Figure 4 As shown, TP1 includes multiple data blocks, denoted as D11 to D1n, TP2 includes multiple data blocks, denoted as D21 to D2n, TP3 includes multiple data blocks, denoted as D31 to D3n, TP4 includes multiple data blocks, denoted as D41 to D4n, and TP5 includes multiple data blocks, denoted as P1 to Pn. And so on, In this way, when migrating business data later, one business data point can be migrated simultaneously from multiple business data points, and this multiple business data point is the business data that yields one verification data point.

[0062] In one optional approach, at least one verification data stream includes M verification data streams, where M is greater than 1. Multiple service data streams include N service data streams. The source server performs specific encoding processing on the N service data streams to obtain M verification data streams. This encoding processing can be XOR processing, forward error correction encoding, etc., and the specific encoding method is not specifically limited. This verification method can tolerate at least two service data streams being interrupted or having bit errors. When two service data streams or the verification data streams are corrupted, the receiving end can still correctly recover the service data.

[0063] Optionally, when M is greater than 1, the multiple service data streams can be divided into M groups of service data. The multiple service data streams in each group are then XORed to obtain one verification data stream for that group, resulting in M ​​verification data streams. In this way, during subsequent service data migration, M service data streams can be migrated simultaneously, with each group providing one service data stream, forming a total of M migrateable service data streams.

[0064] Step 303: The source server sends multiple service data streams and at least one verification data stream to the receiving device.

[0065] In this embodiment, after aligning multiple service data streams and at least one checksum data stream, the source server sends these data streams and at least one checksum data stream to the connected source switch. The source switch modulates each data stream of the multiple service data streams and at least one checksum data stream onto an optical signal, resulting in multiple optical signals. These multiple optical signals are then sent to the connected OXC device according to their configured output ports. The OXC device is configured with port switching relationships. Each port of the OXC device is equipped with a micro-electro-mechanical system (MEMS). The MEMS controls the transmission of the multiple optical signals to the port connected to the destination switch. The destination switch is the switch connected to the target server. Upon receiving the optical signals, the destination switch converts them into electrical signals, thereby obtaining multiple service data streams and at least one checksum data stream. Using the addresses in the multiple service data streams and at least one checksum data stream, the destination switch sends these data streams and at least one checksum data stream to the destination server. Here, the output port of the switch and the port switching relationship in the OXC device can be configured by a controller, which is the network management controller in the network.

[0066] In the source server, the output ports for multiple service data streams and at least one checksum data stream are different. For example, in a DCN, multiple transport channels (TPs) within a Transport Channel Group (TPG) using the unified bus (UB) protocol transmit multiple service data streams and at least one checksum data stream, such as... Figure 5As shown, the server includes five UB ports, designated UB1 to UB5. Each UB port can transmit service data for one or more services. The five UB ports form five transmission channels. Multiple service data streams and at least one checksum data stream constitute a transmission channel group. The multiple service data streams include four service data streams, and the at least one checksum data stream includes one checksum data stream. The five UB ports are used to transmit four service data streams and one checksum data stream for each service. Different UB ports transmit different data streams. Figure 5 This illustrates the first, second, and third services. These three services can be executed by the same process on the source server or by different processes. When using different ports, the paths for sending multiple service data streams and at least one checksum data stream to the receiving end are different; for example, see [link to example]. Figure 6 The first service's multi-channel data includes four channels: TP1, TP2, TP3, and TP4. At least one verification data channel, TP5, is also included. The path for each data channel is represented as {Po, OXC, Pi}, where OXC is an optical switching connection device, Po is the output switch connecting to the OXC device (i.e., the switch's output port connects to the OXC device), and Pi is the input switch connecting to the OXC device (i.e., the OXC device connects to the switch's input port). The path corresponding to TP1 is {Po#i, OXC#i, P}. i#i}, Po#i is the port i of switch po through which TP1 passes, OXC#i is the number i of OXC device i through which TP1 passes, Pi#i is the port i of switch Pi through which TP1 passes, the path corresponding to TP2 is {Po#j, OXC#j, Pi#j}, the path corresponding to TP3 is {Po#k, OXC#k, Pi#k}, the path corresponding to TP4 is {Po#l, OXC#l, Pi#l}, and the path corresponding to TP5 is {Po#n, OXC#n, Pi#n}.

[0067] Here, the paths of multiple service data and at least one verification data are different, which reduces the possibility of simultaneous transmission errors of multiple service data and at least one verification data, thus improving the reliability of data transmission.

[0068] Alternatively, in the source server, the output ports for multiple business data streams and at least one verification data stream are the same.

[0069] Alternatively, in the source server, the output ports for multiple business data streams and at least one verification data stream share the same port.

[0070] Step 304: The destination server receives multiple service data streams and at least one verification data stream, wherein the at least one verification data stream is generated based on the multiple service data streams.

[0071] In one alternative approach, after receiving multiple service data streams and at least one checksum data stream, the destination server aligns the service data streams and at least one checksum data stream. For example, each data stream includes an alignment marker, which is used to align the service data streams and at least one checksum data stream. The alignment marker can be located in a specific block, in the header of an ODU frame or MAC frame, or in the header of a specific data block. For an ODU frame, the alignment marker can be in the ODU frame header; for a MAC frame, a fixed-length MAC frame can be used, and the alignment marker can be in the header of the fixed-length MAC frame.

[0072] Step 305: If the first service data in the multi-channel service data is interrupted, the destination server restores the first service data based on at least one verification data and the service data in the multi-channel service data excluding the first service data.

[0073] In this embodiment, during the process of receiving service data, the first channel of service data may be interrupted if the transmission path is interrupted or if the first channel of service data is migrated to another port. For example, during the migration of service data, there may be a migration time difference between the source switch and the OXC device. The source switch may have already migrated the first channel of service data, but the OXC device may not have yet switched the first channel of service data to the migrated port for output, resulting in the loss of the first channel of service data. If the destination server determines that the first channel of service data is interrupted, it will use at least one verification data and service data from multiple channels other than the first channel of service data to recover the first channel of service data.

[0074] If the destination server does not receive the first service data within a certain period of time after receiving other service data, it determines that the first service data is interrupted. Alternatively, if the destination server does not receive the first service data on a specified port, it determines that the first service data is interrupted.

[0075] In one alternative approach, when at least one verification data path includes one verification data path, the verification data path and other service data paths are XORed. The XOR result is the first service data path, and the other service data paths refer to the service data other than the first service data path among the multiple service data paths.

[0076] When at least one verification data path includes multiple verification data paths, if only the first service data path is interrupted among the multiple service data paths, then the target verification data path and the other service data paths are XORed. The XOR result is the first service data path. The target verification data path is the verification data generated using the multiple service data paths in the service data group to which the first service data path belongs. The other service data paths refer to the service data in the service data group to which the first service data path belongs, excluding the first service data path. If multiple service data paths are interrupted, then the multiple service data paths are restored in the same way as the first service data path was restored.

[0077] In one alternative approach, each data path in the multiple service data paths and at least one verification data path also includes a check bit. For example, for each service data path, the sending end inputs the data portion of each data block into a verification algorithm to obtain a check value, which is carried in the check bit field of the data block. After receiving a data block of a certain service data path, the receiving end inputs the data portion of the received data block into the verification algorithm to obtain a check value. It then compares this check value with the check value in the check bit field. If they match, the verification is successful, and the service data path is directly acquired. Otherwise, the service data path is recovered using the check data and the corresponding data blocks from other service data paths. This also allows for the recovery of data with transmission errors.

[0078] In addition, when using verification data, a checksum is also used for verification to ensure that there are no errors in the verification data.

[0079] exist Figure 3 In the process shown, the destination server can recover using at least one verification data after at least one channel of business data is interrupted, thus making the data transmission more reliable.

[0080] Moreover, it adopts Figure 3 The illustrated process for sending and receiving data allows for lossless migration of services in the event of port fragmentation, supporting the expansion of existing services or the addition of new services. During migration, there are two processing methods: one method involves the controller (network management controller) determining the service data to be migrated and the migration path; the controller is connected to both the switch and the OXC device. The other method involves the sending end determining the service data to be migrated and the migration path.

[0081] Figure 7 A flowchart illustrating a business migration process is provided. Figure 7 In this process, the controller determines the business data to be migrated and the path to which it will be migrated, as shown in steps 701 to 706.

[0082] Step 701: The controller determines the first port to be migrated and the port to which the service data on the first port will be migrated, and sends a service migration message to the source switch in the sending end.

[0083] In this embodiment, the transmission paths of service data in the network are all configured by the controller, therefore the controller stores the mapping relationship between service data and paths. When performing port fragmentation, the controller determines the paths for various services while minimizing migrations, ensuring that all services have available paths. In this embodiment, the controller determines that service data for other services needs to be transmitted on the first path and migrates the service data on the first path to the second path. The first path includes the first port of the source switch, and the second path includes the second port of the source switch. Thus, if service data for other services needs to be transmitted on the first port of the source switch, the service data on the first port is migrated to the second port for transmission. Assuming that the service data on the first port includes a first stream of service data, which belongs to multiple streams of service data sent by the source server, and the second port can accommodate the first stream of service data without port fragmentation, the first stream of service data is migrated to the second port for transmission. The controller generates a service migration message and sends it to the source switch. The service migration message instructs the first stream of service data to migrate from the first port to the second port. In this way, after the first service data is migrated to the first port, the controller can control the first port to transmit other service data, so as to realize service expansion or new services.

[0084] It should be noted that if multiple service data are transmitted on the first port, the service migration message may include information about the port after the multiple service data are migrated.

[0085] It should also be noted that when there are multiple links connecting the switch and the OXC device, the first port and the second port may also be connected to the same OXC device.

[0086] Step 702: The source switch receives the service migration message.

[0087] Step 703: The source switch sends the first service data to the destination server through the second port.

[0088] In this embodiment, after the source switch receives the service migration message, when it subsequently sends the first service data, it sends it from the second port. The source switch then sends the first service data to the OXC device connected to the second port.

[0089] In one alternative approach, when at least one verification data path includes a verification data path, recovery is possible if one of the multiple service data paths is interrupted. Therefore, during the migration of service data for each service, only one service data path from each service is migrated at a time. For example, ... Figure 8 As shown, the first port is PO#i. The services passing through the first port include the first service, the second service, and the third service. The service data involved in all services can be migrated separately. The TP 1 of the first service is migrated from the path {Po#i, OXC#i, Pi#i} to the path {Po#r, OXC#r, Pi#r}. Other services, such as the second and third services, can be migrated to the path {Po#r, OXC#r, Pi#r} or other paths, depending on the actual needs.

[0090] When at least one verification data path includes M verification data paths, M service data paths can be migrated simultaneously. For example, if M service data paths for a certain service are sent from the first port, these M service data paths can be migrated simultaneously. These M service data paths can be migrated to the same port or different ports as needed.

[0091] Step 704: The controller sends a control message to the OXC device connected to the second port.

[0092] In this embodiment, the OXC devices in the first path and the second path are different. The controller sends a control message to the OXC device connected to the second port. The control message is used to instruct the OXC device to exchange the first service data received from the third port to the fourth port. The third port is connected to the second port, and the second path includes the port of the switch connected to the fourth port.

[0093] It should be noted that when there are multiple links between the switch and the OXC device, the OXC devices in the first path and the second path may be the same.

[0094] Step 705: The OXC device connected to the second port receives the control message.

[0095] Step 706: The OXC device connected to the second port performs business data exchange processing based on control messages.

[0096] In this embodiment, each port of the OXC device is equipped with a MEMS. The OXC device connected to the second port controls the MEMS of the third port to send the service data received by the third port to the fourth port, so that the first service data is sent according to the second path.

[0097] use Figure 7 During the business data migration process shown, the receiving end can recover the lost business data using at least one verification data when some business data is lost. Therefore, lossless migration can be achieved, the entire port resource can be made available, and resource utilization can be improved.

[0098] exist Figure 7The example given uses the controller determining the business data to be migrated. In another implementation, the sending end determines the business data to be migrated and the path to which it will be migrated. The execution flow is similar. Figure 7 The process shown is the same, so it will not be repeated here.

[0099] It should be noted that in this embodiment of the application, the sending end is described by taking the server as an example of generating and sending verification data. This process can also be performed by an intermediate device in the network, such as a router or switch.

[0100] The apparatus provided in the embodiments of this application is described below.

[0101] Figure 9 This is a structural diagram of the data transmission apparatus provided in this application embodiment. This apparatus is applied at the transmitting end and can be implemented as part or all of the apparatus through software, hardware, or a combination of both. The apparatus provided in this application embodiment can implement the embodiments of this application. Figure 3 The aforementioned process, the device includes: a distribution module 910, a generation module 920, and a sending module 930, wherein:

[0102] The distribution module 910 is used to distribute the service data to be sent into multiple service data streams. Specifically, it can be used to implement the distribution function of step 301 and execute the implicit steps included in step 301.

[0103] The generation module 920 is used to generate at least one verification data based on the multi-channel service data. The at least one verification data is used to restore the at least one service data when there is an interruption in the multi-channel service data. Specifically, it can be used to implement the generation function of step 302 and execute the implicit steps included in step 302.

[0104] The sending module 930 is used to send the multiple service data and the at least one verification data to the receiving end. Specifically, it can be used to implement the sending function of step 303 and execute the implicit steps included in step 303.

[0105] In one alternative approach, the transmitting end is used to connect to an OXC device, and the first service data of the multiple service data is output through the first port of the transmitting end;

[0106] The sending module 930 is further configured to:

[0107] It is determined that the first service data in the multi-channel service data is migrated from the first port to the second port of the transmitting end, wherein the first port and the second port are connected to different OXC devices or the ports of the connected OXC devices are different.

[0108] The first service data is output through the second port to send the first service data to the receiving end.

[0109] In one alternative approach, the encapsulation method for the multiple service data and the at least one verification data is a media access control frame or an ODU frame.

[0110] In one alternative approach, the at least one verification data stream includes one verification data stream;

[0111] The generation module 920 is used to perform XOR processing on the multi-channel service data to obtain the single-channel verification data.

[0112] In one alternative approach, the multiple service data and the different data from the at least one verification data are transmitted to the receiving end via different paths.

[0113] Figure 9 For details of the data transmission process performed by the data transmission device shown, please refer to the descriptions in the previous embodiments; they will not be repeated here. Figure 9 The data transmission device shown is attached. Figure 11 Communication equipment in the country.

[0114] Figure 10 This is a structural diagram of the data receiving apparatus provided in the embodiments of this application. This apparatus is applied at the receiving end and can be implemented as part or all of the apparatus through software, hardware, or a combination of both. The apparatus provided in the embodiments of this application can implement the embodiments of this application. Figure 3 The aforementioned process includes a receiving module 1010 and a recovery module 1020, wherein:

[0115] The receiving module 1010 is used to receive multiple service data and at least one verification data, wherein the at least one verification data is generated based on the multiple service data, and can be used to implement the receiving function of step 304 and execute the implicit steps included in step 304.

[0116] The recovery module 1020 is used to recover the first service data based on the at least one verification data and the service data other than the first service data in the multiple service data when the first service data in the multiple service data is interrupted. Specifically, it can be used to implement the recovery function of step 305 and execute the implicit steps included in step 305.

[0117] In an optional embodiment, the receiving module 1010 is further configured to perform alignment processing on the service data other than the first service data and the at least one verification data in the multiple service data before restoring the first service data.

[0118] In one alternative approach, the recovery module 1020 is configured to perform an XOR operation on the at least one verification data and the service data other than the first service data in the multiple service data to obtain the first service data.

[0119] Figure 10 For details of the data receiving process performed by the data receiving device shown, please refer to the descriptions in the previous embodiments; they will not be repeated here. Figure 10 The data receiving device shown is attached. Figure 11 Communication equipment in the country.

[0120] like Figure 11 As shown, the communication device 1100 may optionally be implemented using a general bus architecture. The communication device 1100 includes at least one processor 1101, a communication bus 1102, a memory 1103, and at least one network interface 1104.

[0121] Processor 1101 may be, for example, a general-purpose central processing unit (CPU), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the embodiments of this application. For example, processor 1101 may include an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0122] The communication bus 1102 is used to transmit information between the aforementioned components. The communication bus 1102 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 11 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0123] Memory 1103 may be, for example, read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 1103 may exist independently and be connected to processor 1101 via communication bus 1102. Memory 1103 may also be integrated with processor 1101.

[0124] Network interface 1104 uses any transceiver-like device for communicating with other devices or communication networks. Network interface 1104 includes a wired network interface and may also include a wireless network interface. The wired network interface may be, for example, an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless network interface may be a wireless local area network (WLAN) interface, a cellular network interface, or a combination thereof.

[0125] In a specific implementation, as an example, processor 1101 may include one or more CPUs.

[0126] In a specific implementation, as an example, the communication device 1100 may include multiple processors. Each of these processors may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). Here, a processor may refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).

[0127] In some embodiments, memory 1103 is used to store program code 1131 for executing the data transmission or data reception method in this application, and processor 1101 executes the program code 1131 stored in memory 1103. That is, communication device 1100 can implement the data transmission or data reception method provided in the method embodiment through processor 1101 and program code 1131 in memory 1103.

[0128] In some embodiments, a computer program product is provided, the computer program product including computer instructions stored in a computer-readable storage medium. A processor of a communication device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, causing the communication device to perform... Figure 3 The process is shown below.

[0129] Those skilled in the art will recognize that the method steps and units described in the embodiments disclosed in this application can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0130] In the embodiments provided in this application, it should be understood that the disclosed system architecture, apparatus, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or modules, or may be electrical, mechanical, or other forms of connection.

[0131] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of the embodiments of this application, depending on actual needs.

[0132] Furthermore, the modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules described above can be implemented in hardware or in software.

[0133] If the integrated module is implemented as a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.

[0134] In this application, the terms "first" and "second," etc., are used to distinguish identical or similar items that have substantially the same function and purpose. It should be understood that there is no logical or temporal dependency between "first" and "second," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first" and "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another. For example, without departing from the scope of various examples, a first port can be referred to as a second port, and similarly, a second port can be referred to as a first port. Both a first port and a second port can be ports, and in some cases, they can be separate and distinct ports.

[0135] In this application, the term "at least one" means one or more channels, and the term "multiple channels" means two or more channels.

[0136] The above description is merely an exemplary embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and such modifications or substitutions should all be covered within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for transmitting data, characterized in that, Applied to the sending end, the method includes: The sending end distributes the service data to be sent into multiple service data streams; The transmitting end generates at least one verification data based on the multiple service data. The at least one verification data is used to restore the at least one service data when at least one service data is interrupted in the multiple service data. The sending end sends the multiple service data and at least one verification data to the receiving end.

2. The method according to claim 1, characterized in that, The transmitting end is used to connect to the optical cross-connect (OXC) device, and the first service data in the multiple service data is output through the first port of the transmitting end; The method further includes: The transmitting end determines that the first channel of service data is migrated from the first port to the second port of the transmitting end, wherein the first port and the second port are connected to different OXC devices or the ports of the connected OXC devices are different. The first service data is output through the second port to send the first service data to the receiving end.

3. The method according to claim 1 or 2, characterized in that, The encapsulation method for the multiple service data and the at least one verification data is a media access control frame or an optical data unit (ODU) frame.

4. The method according to any one of claims 1 to 3, characterized in that, The at least one verification data stream includes one verification data stream; The sending end generates at least one verification data based on the multiple service data streams, including: The sending end performs an XOR operation on the multiple service data streams to obtain the single verification data stream.

5. The method according to any one of claims 1 to 4, characterized in that, The multiple service data and the at least one verification data are transmitted to the receiving end through different paths.

6. A method for receiving data, characterized in that, Applied to the receiving end, the method includes: The receiving end receives multiple service data streams and at least one verification data stream, wherein the at least one verification data stream is generated based on the multiple service data streams. If the first service data in the multi-channel service data is interrupted, the receiving end restores the first service data based on the at least one verification data and the service data in the multi-channel service data other than the first service data.

7. The method according to claim 6, characterized in that, Before restoring the first service data, the process also includes: The receiving end performs alignment processing on the multiple service data and the at least one verification data.

8. The method according to claim 6 or 7, characterized in that, The step of restoring the first service data based on the at least one verification data and the service data other than the first service data from the multiple service data includes: The receiving end performs an XOR operation on the at least one verification data and the service data other than the first service data among the multiple service data to obtain the first service data.

9. A data transmission apparatus, characterized in that, Applied to the transmitting end, the device includes: The distribution module is used to distribute the service data to be sent into multiple service data streams; The generation module is used to generate at least one verification data based on the multiple service data, and the at least one verification data is used to restore the at least one service data when at least one service data is interrupted in the multiple service data. The sending module is used to send the multiple service data and the at least one verification data to the receiving end.

10. The apparatus according to claim 9, characterized in that, The transmitting end is used to connect to the optical cross-connect (OXC) device, and the first service data in the multiple service data is output through the first port of the transmitting end; The sending module is further configured to: It is determined that the first service data is migrated from the first port to the second port of the transmitting end, wherein the OXC devices connected to the first port and the second port are different or the ports of the connected OXC devices are different; The first service data is output through the second port to send the first service data to the receiving end.

11. The apparatus according to claim 9 or 10, characterized in that, The encapsulation method for the multiple service data and the at least one verification data is a media access control frame or an optical data unit (ODU) frame.

12. The apparatus according to any one of claims 9 to 11, characterized in that, The at least one verification data stream includes one verification data stream; The generation module is used to perform XOR processing on the multiple service data to obtain the single verification data.

13. The apparatus according to any one of claims 9 to 12, characterized in that, The multiple service data and the at least one verification data are transmitted to the receiving end through different paths.

14. A data receiving device, characterized in that, Applied to the receiving end, the device includes: A receiving module is configured to receive multiple streams of service data and at least one stream of verification data, wherein the at least one stream of verification data is generated based on the multiple streams of service data. The recovery module is used to recover the first service data based on the at least one verification data and the service data other than the first service data in the multiple service data when the first service data is interrupted.

15. The apparatus according to claim 14, characterized in that, The receiving module is further configured to perform alignment processing on the service data other than the first service data and the at least one verification data in the multiple service data before restoring the first service data.

16. The apparatus according to claim 14 or 15, characterized in that, The recovery module is used to perform an XOR operation on the at least one verification data and the service data other than the first service data in the multiple service data to obtain the first service data.

17. A communication device, characterized in that, The communication device includes a processor and a memory, the memory containing computer instructions; The processor is configured to execute computer instructions, causing the communication device to perform the method as described in any one of claims 1 to 5.

18. A communication device, characterized in that, The communication device includes a processor and a memory, the memory containing computer instructions; The processor is configured to execute computer instructions, causing the communication device to perform the method as described in any one of claims 6 to 8.

19. A computer-readable storage medium, characterized in that, The storage medium stores at least one computer instruction, which is read by a processor to cause the communication device to perform the method as described in any one of claims 1 to 5.

20. A computer-readable storage medium, characterized in that, The storage medium stores at least one computer instruction, which is read by a processor to cause the communication device to perform the method as described in any one of claims 6 to 8.

21. A communication system, characterized in that, The communication system includes a transmitter and a receiver, wherein the transmitter is used to perform the method as described in any one of claims 1 to 5; The receiving end is used to perform the method as described in any one of claims 6 to 8.

22. A network interface card (NIC), characterized in that, The network interface card is used to perform the method as described in any one of claims 1 to 8.