WO2025161868A1 - Code block processing method and apparatus, device, system, storage medium and program product - Google Patents
Code block processing method and apparatus, device, system, storage medium and program productInfo
- Publication number
- WO2025161868A1 WO2025161868A1 PCT/CN2025/071006 CN2025071006W WO2025161868A1 WO 2025161868 A1 WO2025161868 A1 WO 2025161868A1 CN 2025071006 W CN2025071006 W CN 2025071006W WO 2025161868 A1 WO2025161868 A1 WO 2025161868A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code block
- block stream
- stream
- multiplexing
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
Definitions
- the present application relates to the field of communication technology, and in particular to a code block processing method, apparatus, device, system, storage medium, and program product.
- networks may contain channels with different transmission rates, such as a low-speed channel of 5 gigabits per second (Gbps) or a high-speed channel of 25 Gbps. Therefore, there are difficulties in interoperating channels with different transmission rates. How to multiplex the traffic flows of multiple low-speed channels into the traffic flow of a single high-speed channel is a pressing issue. Multiplexing can also be called aggregation, convergence, or merging.
- the present application provides a code block processing method, apparatus, device, system, storage medium and program product for multiplexing at least one service code block stream into one multiplexed code block stream for processing.
- a code block processing method comprising: obtaining at least one business code block stream; obtaining a multiplexed code block stream based on the at least one business code block stream, the multiplexed code block stream comprising a mixed code block and a multiplexed code block, the mixed code block being a code block obtained by scheduling code blocks in at least one business code block stream according to a first scheduling ratio, the multiplexed code block carrying multiplexing information, and the multiplexing information being used to process the multiplexed code block stream.
- This method schedules the code blocks in at least one service code block stream according to a fixed scheduling ratio to obtain a multiplexed code block stream based on the scheduled code blocks, thereby multiplexing at least one service code block stream into a multiplexed code block stream. Because multiplexing is performed directly at the code block granularity, the multiplexing process does not require a frame sealing operation, avoiding the bandwidth waste caused by the frame sealing operation. Compared with multiplexing at the bit granularity, this reduces the complexity of the multiplexing process and improves multiplexing efficiency.
- the multiplexed code block stream carries multiplexing information, allowing nodes receiving the multiplexed code block stream to process the multiplexed code block stream based on the multiplexing information, thereby improving the reliability of processing the multiplexed code block stream.
- a third number of placeholder code blocks is inserted.
- the first service code block stream is a code block stream in the at least one service code block stream, and the third number is the difference between the second number and the first number.
- the code blocks included in the first service code block stream do not include already scheduled code blocks. That is, the first number is the number of remaining code blocks included in the first service code block stream, or the first number refers to the number of code blocks currently included in the first service code block stream.
- the remaining code blocks included in the first service code block stream or the code blocks currently included in the first service code block stream can both refer to code blocks in the first service code block stream excluding already scheduled code blocks, that is, unscheduled code blocks.
- the first scheduling ratio between the service code block streams can be kept constant by inserting placeholder code blocks, thereby ensuring that the code block processing based on the first scheduling ratio is accurate.
- the service code block stream is accurately decomposed according to the first scheduling ratio during the demultiplexing process.
- a method for obtaining at least one service code block stream may include receiving a code block stream transmitted by at least one channel, wherein the code block stream transmitted by at least one channel includes a first code block stream; deleting all idle code blocks in the first code block stream to obtain a first service code block stream, wherein the first service code block stream is a code block stream in at least one service code block stream.
- the scheduled code blocks include idle code blocks
- the scheduled idle code blocks may be mistakenly deleted during the forwarding process due to the need for frequency offset adjustment, thereby causing the first scheduling ratio between the scheduled code blocks to be destroyed, making it difficult to perform corresponding code block processing according to the first scheduling ratio.
- the service code block stream is demultiplexed and connected according to the first scheduling ratio. In this method, all idle code blocks in the received code block stream transmitted by at least one channel are deleted, so that the scheduled code blocks do not include idle code blocks, thereby avoiding the occurrence of this problem.
- the method further includes inserting idle code blocks into the scheduled code blocks based on a frequency deviation, where the frequency deviation is a frequency deviation between nodes used to transmit the multiplexed code block stream.
- inserting idle code blocks into the scheduled code blocks based on the frequency deviation may include sequentially transmitting the scheduled code blocks to obtain sequentially transmitted code blocks, and inserting the idle code blocks into the sequentially transmitted code blocks.
- This approach supports frequency offset adjustment in the multiplexed block stream by inserting idle blocks, meeting inter-node frequency offset adjustment requirements. Furthermore, if all idle blocks in the received block stream transmitted by at least one channel are deleted, the idle blocks inserted based on the frequency offset can occupy the bandwidth saved by deleting the idle blocks, thereby avoiding the additional bandwidth overhead introduced by inserting idle blocks.
- the at least two idle code blocks whose Hamming distance meets the distance requirement, if some bits in any of the at least two idle code blocks are erroneous, the at least two idle code blocks can be distinguished based on the other idle code blocks in the at least two idle code blocks, thereby improving the reliability of the idle code blocks and reducing the risk of processing failure of the multiplexed code block stream caused by idle code block errors.
- the mixed code block includes a hidden code block obtained by hiding a control code block in at least one service code block stream.
- the control code block in the at least one service code block stream can be hidden before scheduling the at least one service code block stream, or after scheduling the at least one service code block stream.
- the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block.
- the first overhead code block is used to extract the mixed code block from the multiplexing code block stream.
- the first overhead code block is a code block used to transmit control information in Flexible Ethernet.
- the multiplexing code block is a multiplexing indicator code block, and the multiplexing information is carried in a designated field of the multiplexing indicator code block.
- the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indicator code block and the mixed code block from the multiplexing code block stream.
- the service block stream in the at least one service block stream is obtained by scheduling at least one sub-service block stream according to the second scheduling ratio.
- the service block stream for this multiplexing can be the multiplexed block stream, so that the method can achieve multiple multiplexing.
- the first scheduling ratio is determined based on the bandwidth or transmission rate of at least one service code block stream, so that the bandwidth or transmission rate of the at least one service code block stream matches the frequency scheduled according to the first scheduling ratio.
- an egress port can be determined based on the first service identifier of the multiplexed block stream, and the multiplexed block stream can be transmitted through the egress port.
- the transmission rate of the multiplexed block stream is greater than the transmission rate of the at least one service block stream.
- the multiplexing information includes at least one of a first service identifier or scheduling information for the multiplexed code block stream
- the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream.
- the first service identifier included in the multiplexing information can be used to forward the multiplexed code block stream
- the scheduling information included in the multiplexing information can be used to demultiplex the multiplexed code block stream. Carrying at least one of the first service identifier or scheduling information in the multiplexing information ensures more reliable processing of the multiplexed code block stream.
- a code block processing method which includes: obtaining a multiplexed code block stream, the multiplexed code block stream including a mixed code block and a multiplexed code block, the mixed code block being a code block obtained by scheduling code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carrying multiplexing information; and processing the multiplexed code block stream according to the multiplexing information.
- the multiplexed code block stream can be processed according to the multiplexing information carried by the multiplexing code blocks in the multiplexed code block stream. This achieves the multiplexing of at least one service code block stream into a multiplexed code block stream for processing, and ensures the accuracy of the processing of the multiplexed code block stream through the multiplexing information.
- the multiplexing information includes scheduling information, which includes a first scheduling ratio.
- Processing the multiplexed code block stream based on the multiplexing information may include extracting mixed code blocks from the multiplexed code block stream and demultiplexing at least one service code block stream from the mixed code blocks according to the first scheduling ratio.
- demultiplexing of the multiplexed code block stream can be achieved based on the scheduling information.
- the multiplexing information includes scheduling information, and the scheduling information includes a second service identifier corresponding to at least one service code block stream; processing the multiplexed code block stream according to the multiplexing information may include determining a first scheduling ratio based on the second service identifier corresponding to at least one service code block stream; extracting a mixed code block from the multiplexed code block stream, and demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio.
- demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio may include, if the mixed code block includes idle code blocks, deleting the idle code blocks from the mixed code block; and demultiplexing at least one service code block stream from the mixed code block after deleting the idle code blocks according to the first scheduling ratio.
- the service code block stream demultiplexed according to the first scheduling ratio is more accurate.
- demultiplexing at least one service code block stream from a mixed code block according to a first scheduling ratio may include: demultiplexing at least one initial code block stream from the mixed code block according to the first scheduling ratio, the at least one initial code block stream including a first initial code block stream; and, if the first initial code block stream includes placeholder code blocks, deleting the placeholder code blocks in the first initial code block stream to obtain a first service code block stream, the first service code block stream being a code block stream in the at least one service code block stream.
- the demultiplexed service code block streams are all service code blocks, and the demultiplexed service code blocks are more accurate.
- the mixed code block includes a concealed code block.
- the concealed code block is restored to a control code block.
- the demultiplexed service code block stream remains unchanged.
- the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio, and the multiplexing information also includes the second scheduling ratio. After demultiplexing the at least one service code block stream from the mixed code block according to the first scheduling ratio, the at least one sub-service code block stream is demultiplexed from the service code block stream according to the second scheduling ratio.
- multiple demultiplexing can be achieved using the multiplexing information.
- the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio
- the multiplexing information further includes a third service identifier corresponding to each of the at least one sub-service code block streams.
- a second scheduling ratio is determined based on the third service identifier corresponding to each of the at least one sub-service code block streams.
- At least one sub-service code block stream is demultiplexed from the service code block stream according to the second scheduling ratio.
- the multiplexing information includes a first service identifier of the multiplexed code block stream; and processing the multiplexed code block stream according to the multiplexing information may include forwarding the multiplexed code block stream according to the first service identifier.
- forwarding the multiplexed code block stream can be achieved according to the first service identifier.
- the multiplexing code block is a first overhead code block
- the multiplexing information is carried in a reserved field of the first overhead code block.
- Forwarding the multiplexing code block stream based on the first service identifier may include stripping the first overhead code block from the multiplexing code block stream at an ingress port to obtain a mixed code block; sending the mixed code block to an egress port determined based on the first service identifier, inserting a third overhead code block into the mixed code block, and then sending the mixed code block through the egress port, the third overhead code block carrying the multiplexing information.
- the multiplexing code block is a multiplexing indicator code block
- the multiplexing information is carried in a designated field of the multiplexing indicator code block
- the multiplexing code block stream also includes a second overhead code block
- forwarding the multiplexing code block stream based on the first service identifier may include stripping the second overhead code block from the multiplexing code block stream at an ingress port to obtain a mixed code block including the multiplexing indicator code block and a mixed code block; sending the mixed code block to an egress port determined based on the first service identifier, inserting the fourth overhead code block into the mixed code block, and then sending the mixed code block through the egress port.
- the multiplexing information is carried by the multiplexing indicator code block, so that the multiplexing information can be forwarded and processed along with the mixed code block in the multiplexing indicator code block, thereby avoiding duplication of the multiplexing information from the ingress port to the egress port.
- obtaining a multiplexed code block stream may include receiving a multiplexed code block stream, the multiplexed code block stream also including idle code blocks inserted based on a frequency deviation; and processing the multiplexed code block stream based on the multiplexing information may include adjusting the frequency deviation of the multiplexed code block stream based on the frequency deviation. For example, when the arrival rate of the multiplexed code block stream is low, idle code blocks may be inserted to avoid interruption; when the arrival rate of the multiplexed code block stream is high, idle code blocks may be deleted from the multiplexed code block stream to avoid code block backlog.
- the frequency deviation adjustment allows the forwarding rate of the multiplexed code block stream to adapt to the forwarding node.
- a code block processing device comprising: a transceiver module for performing operations related to reception and/or transmission in the first aspect or any possible implementation of the first aspect; and a processing module for performing operations other than the operations related to reception and/or transmission in the first aspect or any possible implementation of the first aspect.
- a transceiver module for performing operations related to reception and/or transmission in the second aspect or any possible implementation of the second aspect and a processing module for performing operations other than the operations related to reception and/or transmission in the second aspect or any possible implementation of the second aspect.
- the transceiver module includes a receiving module and/or a sending module.
- the receiving module is used to perform reception-related operations
- the sending module is used to perform sending-related operations.
- the processing module is used to obtain at least one business code block stream; based on the at least one business code block stream, a multiplexed code block stream is obtained, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one business code block stream according to the first scheduling ratio, the multiplexed code block carries multiplexing information, and the multiplexing information is used to process the multiplexed code block stream.
- the processing module is further used to insert a third number of placeholder code blocks if a first number of code blocks included in the first business code block stream is less than a second number of code blocks scheduled in the first business code block stream during a process of scheduling code blocks in at least one business code block stream according to a first scheduling ratio, wherein the first business code block stream is a code block stream in at least one business code block stream, and the third number is the difference between the second number and the first number.
- a transceiver module is configured to receive a code block stream transmitted by at least one channel, wherein the code block stream transmitted by at least one channel includes a first code block stream; and a processing module is configured to delete all idle code blocks in the first code block stream to obtain a first service code block stream, wherein the first service code block stream is a code block stream in the at least one service code block stream.
- the processing module is also used to insert idle code blocks in the scheduled code blocks based on the frequency deviation, where the frequency deviation is the frequency deviation between the nodes used to transmit the multiplexed code block stream, the number of idle code blocks is at least two, and the Hamming distance between at least two idle code blocks meets the distance requirement.
- the mixed code block includes a hidden code block
- the hidden code block is obtained by hiding a control code block in at least one service code block stream.
- the multiplexed code block is a first overhead code block
- the multiplexing information is carried in a reserved field of the first overhead code block
- the first overhead code block is used to extract a mixed code block from the multiplexed code block stream.
- the multiplexing code block is a multiplexing indication code block
- the multiplexing information is carried in a designated field of the multiplexing indication code block
- the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indication code block and the mixed code block in the multiplexing code block stream.
- the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to the second scheduling ratio.
- the first scheduling ratio is determined based on the bandwidth or transmission rate of at least one service code block flow.
- the transceiver module is further configured to determine an egress port based on the first service identifier of the multiplexed code block stream, and send the multiplexed code block stream through the egress port, wherein the transmission rate of the multiplexed code block stream is greater than the transmission rate of at least one service code block stream.
- the multiplexing information includes at least one of a first service identifier or scheduling information of the multiplexed code block stream
- the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream.
- the multiplexing information includes scheduling information, and the scheduling information includes a first scheduling ratio; the processing module is used to extract a mixed code block from the multiplexed code block stream, and demultiplex at least one service code block stream from the mixed code block according to the first scheduling ratio.
- the processing module is configured to, when the mixed code block includes an idle code block, delete the idle code block in the mixed code block; and demultiplex at least one service code block stream from the mixed code block after the idle code block is deleted according to the first scheduling ratio.
- a processing module is configured to demultiplex at least one initial code block stream from a mixed code block according to a first scheduling ratio, wherein the at least one initial code block stream includes a first initial code block stream; and when the first initial code block stream includes placeholder code blocks, delete the placeholder code blocks in the first initial code block stream to obtain a first service code block stream, wherein the first service code block stream is a code block stream in the at least one service code block stream.
- the mixed code block includes a hidden code block, and in the process of demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio, the hidden code block is restored to a control code block.
- the multiplexing information includes a first service identifier of the multiplexed code block stream; and the processing module is configured to perform forwarding processing on the multiplexed code block stream according to the first service identifier.
- the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block;
- the processing module is used to strip the first overhead code block in the multiplexing code block stream at the input port to obtain a mixed code block;
- the transceiver module is used to send the mixed code block to the output port determined based on the first service identifier, and send it through the output port after inserting a third overhead code block, where the third overhead code block carries the multiplexing information.
- the multiplexing code block is a multiplexing indication code block
- the multiplexing information is carried in a designated field of the multiplexing indication code block
- the multiplexing code block stream also includes a second overhead code block
- the processing module is used to strip off the second overhead code block in the multiplexing code block stream at the input port to obtain a multiplexing indication code block and a mixed code block
- the transceiver module is used to send the multiplexing indication code block and the mixed code block to the output port determined based on the first service identifier, and send them through the output port after inserting the fourth overhead code block.
- the transceiver module is configured to receive a multiplexed code block stream, which further includes idle code blocks inserted based on a frequency deviation; and the processing module is configured to perform frequency deviation adjustment on the multiplexed code block stream based on the frequency deviation.
- a network device comprising: a processor, the processor being coupled to a memory, the memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor, so that the network device implements the code block processing method described in any one of the first or second aspects above.
- processors there are one or more processors and one or more memories.
- the memory may be integrated with the processor, or the memory may be provided separately from the processor.
- the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips.
- ROM read-only memory
- a communication device comprising: a transceiver, a memory, and a processor.
- the transceiver, the memory, and the processor communicate with each other via an internal connection path; the memory is used to store instructions; the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and to control the transceiver to send signals; and when the processor executes the instructions stored in the memory, the communication device executes the code block processing method according to the first aspect or any possible implementation of the first aspect, or executes the code block processing method according to the second aspect or any possible implementation of the second aspect.
- a code block processing system comprising a first communication device and a second communication device;
- a computer-readable storage medium stores at least one instruction, and the instruction is loaded and executed by a processor to enable the computer to implement the code block processing method in the above-mentioned first aspect or any possible implementation of the first aspect, or to implement the code block processing method in the above-mentioned second aspect or any possible implementation of the second aspect.
- a computer program (product) is provided, which includes: computer program code, which, when executed by a computer, enables the computer to execute the code block processing method in the above aspects.
- a chip comprising a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes the code block processing method in the above aspects.
- another chip including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory.
- the processor is used to execute the code block processing method in the above aspects.
- FIG1 is a schematic diagram of an open system interconnection (OSI) model and a flexible Ethernet (FlexE) framework provided in an embodiment of the present application;
- OSI open system interconnection
- FlexE flexible Ethernet
- FIG2 is a transmission diagram of a slicing packet network (SPN) provided by an embodiment of the present application.
- SPN slicing packet network
- FIG3 is a schematic diagram of a large- and small-size channel docking provided by the related art
- FIG4 is a schematic diagram of a large- and small-size channel docking according to an embodiment of the present application.
- FIG5 is a schematic diagram of a data multiplexing process in a fine grain MTN (fgMTN) provided by the related art
- FIG6 is a schematic diagram of a multiplexing transmission process provided in an embodiment of the present application.
- FIG7 is a schematic diagram of the structure of a network device provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the deployment of a multiplexing module and a demultiplexing module provided in an embodiment of the present application;
- FIG9 is a flowchart of a code block processing method provided in an embodiment of the present application.
- FIG10 is a schematic diagram of a format of a placeholder code block provided in an embodiment of the present application.
- FIG11 is a schematic diagram of the format of another placeholder code block provided in an embodiment of the present application.
- FIG12 is a schematic diagram of a format of an idle code block provided in an embodiment of the present application.
- FIG13 is a schematic diagram of the format of another idle code block provided in an embodiment of the present application.
- FIG14 is a schematic diagram of the format of a first overhead code block provided in an embodiment of the present application.
- FIG15 is a schematic diagram of the format of a multiplexing indication code block provided in an embodiment of the present application.
- FIG16 is a schematic diagram of the format of another multiplexing indication code block provided in an embodiment of the present application.
- FIG17 is a system block diagram of a multiplexing process provided by an embodiment of the present application.
- FIG18 is a flowchart of a multiplexing process provided by an embodiment of the present application.
- FIG19 is a flowchart of another code block processing method provided in an embodiment of the present application.
- FIG20 is a system block diagram of a forwarding processing process provided by an embodiment of the present application.
- FIG21 is a flowchart of a forwarding process provided by an embodiment of the present application.
- FIG22 is a system block diagram of a demultiplexing process provided by an embodiment of the present application.
- FIG23 is a flowchart of a demultiplexing process provided by an embodiment of the present application.
- FIG24 is a system block diagram of a multiplexing process and a demultiplexing process provided by an embodiment of the present application.
- FIG25 is a schematic diagram of a scenario of a multiple-reconnection process provided by an embodiment of the present application.
- FIG26 is a schematic diagram of a format of a service identifier provided in an embodiment of the present application.
- FIG27 is a schematic structural diagram of a code block processing device provided in an embodiment of the present application.
- FIG28 is a schematic diagram of the structure of a network device provided in an embodiment of the present application.
- Figure 29 is a structural diagram of another network device provided in an embodiment of the present application.
- FlexE technology is a lightweight enhancement to traditional Ethernet that enables service isolation and network slicing. FlexE technology divides the bandwidth of an Ethernet interface into multiple data-carrying time slots, providing hard isolation between different slots. These slots can also be called channels.
- the OSI model consists of the physical layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer, from lowest to highest.
- the application layer is the layer that users directly interact with and provides various network services and applications.
- the presentation layer is responsible for data formatting and conversion, ensuring that data from different systems can be correctly interpreted and understood, and handles data encryption and compression.
- the session layer manages sessions between different hosts, establishing, maintaining, and terminating communication connections to ensure reliable data transmission.
- the transport layer is responsible for end-to-end communication and provides functions such as data segmentation, flow control, and error recovery.
- the network layer is responsible for data routing and forwarding, transmitting data packets from the source host to the destination host.
- the data link layer organizes the raw bit stream into frames and identifies devices using physical addresses, which are media access control (MAC) addresses.
- MAC media access control
- the physical (PHY) layer is the lowest layer of the network, responsible for transmitting the raw bit stream and transferring data from one device to another. It involves physical characteristics such as voltage and optical signals.
- the physical layer includes the physical coding sublayer (PCS), the physical medium attachment (PMA), and the physical medium dependent (PMD).
- PCS primarily includes line coding and cyclic redundancy check (CRC) encoding;
- the PMA integrates the SERDES, a serial-to-parallel converter primarily used for serialization and deserialization; and the PMD implements optical-to-electrical/electrical-to-optical conversion.
- the core functionality of FlexE technology is implemented through the FlexE shim, a new intermediate layer between the Ethernet L2 and L1 layers.
- the FlexE shim is also known as the L1.5 layer.
- the L2 layer is the data link layer
- the L1 layer is the physical layer.
- the FlexE shim combines multiple Ethernet interfaces into a FlexE group. Ethernet interfaces are represented by PHYs.
- a FlexE group consists of PHY1 through PHYm, where m is a positive integer greater than 2.
- the FlexE shim divides each PHY in a FlexE group into multiple slots using time division multiplexing (TDM). The group of slots corresponding to each PHY is called a calendar.
- TDM time division multiplexing
- the Ethernet frames in the original data stream of the FlexE client are segmented into data blocks, for example, 64-bit/66-bit encoded data blocks.
- the segmented data blocks can be distributed through the FlexE shim to specific slots of specific PHYs in the FlexE group.
- Each FlexE client can specify one or more slots to exclusively occupy, thereby obtaining a certain bandwidth allocation and achieving conflict-free, hard isolation and deterministic transmission with other FlexE clients.
- FlexE channel cross-connection functionality For networks developed based on FlexE technology, such as SPNs or metropolitan transport networks (MTNs), FlexE channel cross-connection functionality and dynamic and flexible operation, administration, and maintenance (OAM) capabilities are added to Ethernet interfaces based on FlexE slicing.
- FlexE channel cross-connection function also known as the channel L1.5 layer forwarding function, refers to bit block-based forwarding at the Ethernet physical layer. This eliminates the traditional L2/L3 forwarding process of first restoring L1 layer code blocks to packets, then forwarding the packets, and then converting the packets back to code blocks, thereby reducing forwarding latency.
- the L3 layer is the network layer.
- FlexE can be divided into 20 slots, each with a bandwidth of 5 Gigabits per second (Gbps).
- the SPN network shown in Figure 2 includes edge nodes, backbone nodes, and edge nodes. The nodes are connected via PHY groups, each containing multiple 5 Gbps channels. Each network node can implement Layer 1.5 forwarding based on these 5 Gbps channels.
- Ethernet interfaces advance toward 800GE/1.6 terabit Ethernet (TE)
- FlexE slicing granularity is increasing from 5Gbps to 25Gbps and even 100Gbps.
- 800GE/1.6TE high-bandwidth interfaces are often deployed primarily in backbone nodes, while other edge nodes continue to use 100GE/200GE/400GE low-bandwidth interfaces and maintain 5Gbps slicing granularity for a long time. This leads to the problem of interoperating two different channel specifications (5Gbps and 25Gbps) in SPN/MTN networks.
- backbone nodes to parse each 5Gbps service and then perform switching and forwarding for each 5Gbps service. Consequently, backbone nodes face a significant amount of channel crosstalk and connection management, making the scale of backbone nodes a bottleneck for overall network capacity and, in turn, limiting access capacity. While this solves the problem of connecting large and small granularity channels, it also leads to an excessively large scale of backbone node operations and management.
- the edge node at the network entrance multiplexes the services of multiple low-speed channels (for example, 5Gbps channels) into a single high-speed channel (for example, 25Gbps).
- the backbone node performs L1.5 layer forwarding through the high-speed channel, and the edge node at the network exit demultiplexes the services of multiple low-speed channels from the single high-speed channel.
- Multiplexing can also be referred to as aggregation, convergence, or merging, which means aggregating at least one low-speed service into one high-speed service, or allowing multiple low-speed services to reuse the transmission resources or processing resources belonging to a single high-speed service.
- Demultiplexing can also be referred to as deaggregation, deconvergence, or splitting. Demultiplexing is the reverse process of multiplexing, which means decomposing and recovering at least one low-speed service from a single high-speed service.
- fgMTN utilizes multiplexing technology. It further subdivides the 5Gbps channel in the MTN into 480 10Mbps channels. The remaining 200Mbps of bandwidth is used as overhead. fgMTN multiplexes and demultiplexes the 480 10Mbps channels with the single 5Gbps channel.
- the fgMTN multiplexing process is shown in Figure 5. During each multiplexing process, each 10Mbps service provides two 64b/66b-encoded blocks, with a fixed block length of 66 bits. This means that the 480 10Mbps services provide a total of 960 66-bit blocks, which fit neatly into the 64-bit payload field of 990 data (D) blocks.
- a D block consists of 66 bits, with the first two bits forming the block header and the remaining 64 bits forming the payload field.
- a start (S) code block and a tail (T) code block are added to the head and tail of the loaded 990 D code blocks respectively.
- the S code block indicates the beginning of an Ethernet frame
- the T code block indicates the end of an Ethernet frame.
- the multiplex frame can be regarded as a single Ethernet service transmitted through a 5Gbps channel, that is, the 5Gbps channel is not aware of whether the code blocks it carries are from a single service or multiple services.
- the 66-bit code block for each service is loaded into the 64-bit payload field of the D code block of the multiplexing frame. Due to the length mismatch, the code block for each service does not correspond one-to-one with the D code block of the multiplexing frame. This results in the need for bit-granular splicing within the multiplexing frame during multiplexing, and the need to slide bits from the multiplexing frame to recover the code blocks for each service during demultiplexing. This results in high processing complexity and large buffering overhead.
- the embodiment of the present application provides a code block processing method, in which the sending end node does not need to load and seal frames, and can multiplex at least one low-speed service data into one high-speed service data for transmission, thereby reducing the processing scale of the intermediate forwarding node, and can demultiplex the low-speed service data at the receiving end node.
- the code block streams of at least one service are first merged into one code block stream by a multiplexing method, and then sent to a transmission/processing unit.
- the code block streams of at least one service are multiplexed in the same transmission/processing unit. After processing, the code block streams of each service are restored by a demultiplexing method.
- This data transmission method can be applied to any scenario where at least one data stream is merged and processed, such as the interconnection of transmission channels of different specifications in the aforementioned SPN/MTN network, or the scenario where at least one code block is sent to a decoder of a single input/output interface for decoding, or the scenario where at least one fixed-size photo is sent to a graphics processor for processing and then returned along the same route.
- multiple gates send facial photos to a single graphics processor for processing via a convergence switch.
- the convergence switch multiplexes the facial photos from multiple gates into a single photo stream.
- the network forwards the photo stream, and the graphics processor demultiplexes the photo stream, recovering the facial photos of each gate for image recognition.
- a FlexE multiplexing layer may be included between the MAC layer and the FlexE shim.
- the FlexE multiplexing layer multiplexes multiple low-speed service code block streams into a single high-speed service code block stream, which is then directly processed by the FlexE shim.
- the code block processing method provided in the embodiment of the present application can be executed by a communication device.
- the communication device can be a network device such as a switch, a router, etc., such as the network device shown in Figure 7 or Figure 8 below; it can also be a component of the network device, and the component can be a single board or line card on the network device, or a functional module on the network device, such as the interface board or main control switch board shown in Figure 7, or the multiplexing module or demultiplexing module shown in Figure 8; it can also be a chip used to implement the method of the present application, and the embodiment of the present application does not make specific limitations.
- the transceiver module used to implement the method can be, for example, the interface circuit of the chip, and the processing module can be a processing circuit with processing functions in the chip.
- the connection method between communication devices includes but is not limited to direct connection via Ethernet cable or optical cable.
- the network device includes an interface board and a main control switch board.
- the interface board includes a client-side interface chip and a network-side interface chip, and the main control switch board includes a switching network chip.
- the interface board is used to provide various service interfaces and implement data packet forwarding, and the main control switch board is used to control and manage various components in the network device and implement pipe crossing between different service interfaces.
- the network device shown in Figure 7 can be used to execute the data transmission method provided in an embodiment of the present application.
- the network device can be any node in Figures 2-4, such as an edge node or a backbone node.
- the network device can be a box-type or frame-type switch or router in an SPN/MTN network.
- the multiplexing/demultiplexing module can be deployed by upgrading or replacing the interface board. Specifically, by upgrading the interface chip through software or refreshing the field-programmable gate array (FPGA) logic through hardware, thereby supporting the multiplexing/demultiplexing functions.
- the multiplexing module is used to implement multiplexing processing
- the demultiplexing module is used to implement demultiplexing processing.
- the multiplexing/demultiplexing module can be deployed at the inlet or the outlet of the network device, or at both the inlet and the outlet.
- the inlet can be an inbound port
- the outlet can be an outbound port.
- the multiplexing module is deployed at the inlet of the network device.
- Multiple FlexE modules on the inlet side obtain at least one low-speed service code block stream, and the multiplexing module combines the at least one service code block stream into a high-speed service code block stream, which is then sent to the channel cross-connect module for L1.5 layer forwarding.
- This method of combining first and then cross-connecting can reduce the number of services that cross channels during the L1.5 layer forwarding process, thereby reducing the cross-connection scale and the number of forwarding table entries.
- the demultiplexing module is deployed at the inlet of the network device.
- the FlexE module on the inlet side obtains a high-speed service code block stream, and the demultiplexing module recovers at least one low-speed service code block stream.
- the at least one low-speed service code block stream is then cross-forwarded separately and sent to different destination ports of the network device.
- the multiplexing module is deployed at the egress of the network device. This means that after at least one low-speed service code block stream is cross-channeled and sent to the same egress port, the at least one low-speed service code block stream is merged into a high-speed service code block stream and transmitted via the FlexE high-bandwidth channel.
- the demultiplexing module is deployed at the egress of the network device. This means that the high-speed service code block stream first completes channel cross-channeling before arriving at the same egress port. The high-speed service code block stream is then split into individual low-speed service code block streams and transmitted separately via the FlexE low-bandwidth channel.
- multiplexing units or demultiplexing units can also be deployed simultaneously on both the ingress and egress sides.
- some network devices in the network can deploy multiplexing modules on the ingress or egress side, while other network devices can deploy demultiplexing modules on the ingress or egress side.
- FIG 9 is a flowchart of a data transmission method provided in an embodiment of the present application. This method is described using a first communication device executing the method as an example.
- the first communication device may be the network device shown in Figure 7 or Figure 8.
- the code block processing method includes, but is not limited to, the following steps 901 and 902.
- Step 901 Obtain at least one service code block stream.
- any one of the at least one service code block streams includes a plurality of code blocks arranged in sequence.
- a code block is a data unit transmitted over an Ethernet physical layer link.
- the encoding method of the code block includes, but is not limited to, a bit block encoding method of a fixed-length code block such as 8b/10b, 64b/66b, 256b/257b, or 512b/513b.
- the at least one service code block stream may be obtained by receiving the at least one service code block stream from the at least one service via multiple or single channels, or by generating the at least one service code block stream for the at least one service via an upper-layer application.
- the sum of the transmission rates of at least one service code block stream is less than or equal to the transmission rate of the transmission channel of the first communication device.
- the transmission rates corresponding to the three service code block streams may be 5 Gbps, 10 Gbps, and 5 Gbps, respectively.
- the transmission rates corresponding to the three service code block streams may be 5 Gbps, 5 Gbps, and 5 Gbps, respectively.
- the transmission rates corresponding to the three service code block streams are 2 Gbps, 1 Gbps, and 1 Gbps, respectively.
- Step 902 Obtain a multiplexed code block stream based on at least one service code block stream.
- the multiplexed code block stream includes mixed code blocks and multiplexed code blocks.
- the mixed code blocks are code blocks obtained by scheduling code blocks in at least one service code block stream according to a first scheduling ratio.
- the multiplexed code blocks carry multiplexing information, and the multiplexing information is used to process the multiplexed code block stream.
- the first scheduling ratio can be determined based on the bandwidth or transmission rate between at least one business code block stream, so that the bandwidth or transmission rate of at least one business code block stream matches the frequency scheduled according to the first scheduling ratio.
- the transmission rates of three business code block streams are 5Gbps, 10Gbps, and 5Gbps, respectively, then the first scheduling ratio between the three business code block streams is 1:2:1.
- the code blocks in at least one business code block stream are scheduled according to the first scheduling ratio, that is, 1 code block in the first business code block stream, 2 code blocks in the second business code block stream, and 1 code block in the third business code block stream are scheduled respectively, and this scheduling process is repeated.
- the multiplexing mode between at least one business code block stream Since the order of the scheduled code blocks determines the multiplexing mode between at least one business code block stream, if the first scheduling ratio is fixed, then the multiplexing mode between at least one business code block stream in the multiplexed code block stream is fixed. Exemplarily, if the first scheduling ratio is 1:2:1, then the multiplexing mode is 1:2:1.
- the code blocks included in the above-mentioned first business code block stream do not include the code blocks that have been scheduled, that is, the first number is the number of remaining code blocks included in the first business code block stream, or the first number refers to the number of code blocks currently included in the first business code block stream.
- the remaining code blocks included in the first business code block stream or the code blocks currently included in the first business code block stream can refer to the code blocks in the first business code block stream excluding the code blocks that have been scheduled, that is, the code blocks that have not been scheduled.
- the first service code block stream includes 10 code blocks, 3 code blocks have been adjusted, and the remaining code blocks are 7.
- the first number is 7. If the second number is 8, the third number is 1, and 1 placeholder code block is inserted.
- the first scheduling ratio between at least one business code block stream can be kept constant by inserting placeholder code blocks, thereby ensuring that the code block processing based on the first scheduling ratio is accurate.
- the business code block stream can be accurately decomposed according to the first scheduling ratio during the demultiplexing process.
- the first service code block stream includes 1 code block, then 1 code block in the first service code block stream is scheduled; if the second service code block stream includes 1 code block, then 1 code block in the second service code block stream is scheduled, and 1 placeholder code block is inserted, and the placeholder code block plays the role of replacing 1 code block in the second service code block stream; if the third service code block stream includes If the first service code block stream contains one code block, one code block in the third service code block stream is scheduled. Continuing, if the first service code block stream contains one code block, one code block in the first service code block stream is scheduled.
- the second service code block stream contains two code blocks
- two code blocks in the second service code block stream are scheduled.
- the third service code block stream contains no code blocks
- one placeholder code block is inserted to replace one code block in the third service code block stream. Code blocks in at least one service code block stream are continuously scheduled according to this scheduling method.
- code blocks in at least one service code block stream are respectively placed in at least one code block queue, and the code blocks in the at least one service code block stream are scheduled according to a first scheduling ratio, that is, code blocks are scheduled from the at least one code block queue according to the first scheduling ratio.
- a first scheduling ratio that is, code blocks are scheduled from the at least one code block queue according to the first scheduling ratio.
- the code block type of the placeholder code block is the same as the code block type in the service code block stream.
- the embodiment of the present application uses the 64b/66b bit block encoding method as an example for explanation, that is, the code blocks involved in the embodiment of the present application are all 64b/66b bit blocks.
- the first two bits are synchronization header (SH) bits
- the last 64 bits are payload bits, which can be used to carry payload data, etc.
- the synchronization header is "01”, it means that the last 64 bits are all data, that is, the last 64 bits are 8 8-bit data bytes; if the synchronization header is "10", it means that the last 64 bits are a mixture of data and control information, where the 8 bits immediately following the synchronization header are the type field, and the 56 bits following the type field are the payload field, which is a mixture of control information or data.
- the 56 bits when the field value of the type field is 0x1E, the 56 bits include 8 7-bit control bytes, each of which is used to carry a piece of control information; when the field value of the type field is 0x4B, the 56 bits include 3 8-bit data bytes, a 4-bit command (order, O) byte, and 4 7-bit control bytes, each of which is used to carry data information, and each control byte is used to carry control information.
- the embodiment of the present application does not limit the format of the placeholder code block, and it only needs to be distinguishable from the existing control code block.
- a schematic diagram of the format of the placeholder code block can be shown in Figure 10.
- the synchronization header is "10”
- the 8-bit type field is 0x1E, indicating that the type of the placeholder code block is a control (control, C) code block
- the values of the 8 control bytes of 7 bits are all 0x09. Therefore, by defining the values of 0x1E and 8 0x09s, the uniqueness of the C code block can be guaranteed, that is, the uniqueness of the placeholder code block can be guaranteed.
- the format diagram of the placeholder code block can also be shown in Figure 11.
- the synchronization header is "10”
- the 8-bit type field is 0x4B, indicating that the type of the placeholder code block is an O code block
- 0x9 is a newly defined O code value. Therefore, by defining the two values 0x4B and 0x9, the uniqueness of the O code block can be guaranteed, that is, the uniqueness of the placeholder code block can be guaranteed.
- the first data byte that is, the 11th to 18th bits
- the last two data bytes are reserved (res) fields, which are used to carry other data information when needed later
- the last four 7-bit control bytes that is, the last 28 bits, have a value of 0x000_0000.
- the mixed code blocks can be obtained according to the scheduled code blocks.
- the methods of obtaining the mixed code blocks according to the scheduled code blocks include but are not limited to the following.
- Method 1 directly use the scheduled code blocks as mixed code blocks.
- code blocks scheduled from at least one service code block stream are directly used as mixed code blocks.
- the scheduled code blocks are transmitted sequentially, and the sequentially transmitted code blocks are used as mixed code blocks.
- the mixed code blocks include service code blocks sorted according to the first scheduling ratio, or the mixed code blocks include service code blocks and placeholder code blocks sorted according to the first scheduling ratio.
- This method is simple to operate and easy to implement.
- the scheduled code blocks are code block 11 in the first service code block stream, code block 21 and placeholder code blocks in the second service code block stream, code block 31 in the third service code block stream, code block 12 in the first service code block stream, code block 22 and code block 23 in the second service code block stream, and placeholder code blocks in the third service code block stream.
- the mixed code blocks then include code block 11, code block 21, placeholder code blocks, code block 31, code block 12, code block 22, code block 23, and placeholder code blocks.
- idle code blocks are inserted into the scheduled code blocks based on the frequency deviation, where the frequency deviation is the frequency deviation between nodes used to transmit the multiplexed code block stream.
- a node refers to any network device in a transmission network, such as an edge node or backbone node as shown in Figures 2-4 .
- the first communication device is a node in the network. Since Ethernet nodes are allowed to have a certain frequency deviation, frequency deviation can be simply referred to as frequency deviation. For example, the maximum frequency deviation allowed by 50GE/100GE/200GE/400GE Ethernet interfaces is ⁇ 100 parts per million (ppm). Therefore, the code block stream needs to have a certain degree of scalability, that is, it can support the addition or deletion of a small number of idle code blocks to accommodate bandwidth deviations caused by frequency deviation between nodes. The need to delete and/or add idle code blocks due to factors such as frequency differences between nodes is simply referred to as frequency deviation adjustment requirement.
- the mixed code block can support the addition or deletion of idle code blocks, that is, the mixed code block supports frequency deviation adjustment, which can meet the frequency deviation adjustment requirement between nodes.
- the receiver's cache data write rate will be faster than the read rate, causing a buffer overflow in the long run. Therefore, the receiver needs to remove idle code blocks to prevent the receiver's cache from overflowing.
- the sender's sending rate is slower than the receiver's sending rate, the receiver's cache write rate will be slower than the read rate, causing a buffer empty in the long run. Therefore, the receiver needs to add idle code blocks to prevent the receiver's cache from emptying.
- an idle code block is inserted into a scheduled code block based on a frequency deviation to obtain a mixed code block.
- the method of inserting an idle code into a sequentially transmitted code block stream based on a frequency deviation may include determining an insertion period based on a frequency deviation; and inserting an idle code into the scheduled code block stream according to the insertion period.
- the mixed code block also includes an idle code block inserted based on a frequency deviation.
- inserting an idle code block into a scheduled code block based on a frequency deviation may include sequentially transmitting the scheduled code blocks to obtain sequentially transmitted code blocks, and inserting an idle code block into the sequentially transmitted code blocks.
- the insertion period is determined based on the frequency deviation, that is, the insertion period is determined according to the frequency deviation adjustment requirements between nodes.
- the number of idle code blocks inserted in the mixed code block is sufficient for frequency deviation adjustment. Too many will lead to bandwidth waste, and too few will cause frequency deviation adjustment failure.
- the position of the idle code block insertion is not limited in the embodiment of the present application.
- the insertion position of the idle code block needs to be after a T code block.
- a method for obtaining at least one business code block stream may include receiving a code block stream transmitted by at least one channel, wherein the code block stream transmitted by at least one channel includes a first code block stream; deleting all idle code blocks in the first code block stream to obtain a first business code block stream, wherein the first business code block stream is a code block stream in at least one business code block stream.
- the code block stream transmitted by at least one channel received may be a code block stream into which idle code blocks have been inserted.
- the idle code blocks in the code block stream transmitted by at least one channel cannot be used for frequency offset adjustment, because once the idle code blocks are deleted or added, the multiplexing mode error will be caused, which will further cause a demultiplexing error.
- the embodiment of the present application deletes all the idle code blocks in the code block stream originally received for transmission through at least one channel, and then inserts the idle code blocks according to the frequency deviation adjustment requirements, which can not only ensure that the multiplexing mode is fixed, but also meet the frequency deviation adjustment requirements. Since the idle code blocks inserted based on the frequency deviation can occupy the bandwidth saved by deleting the idle code blocks, the introduction of additional bandwidth overhead can also be avoided, that is, the overhead of inserting the idle code blocks required for the multiplexing code block stream is squeezed out by deleting the idle code blocks from the business code block stream, and there is no need to provide additional overhead for inserting idle code blocks. Optionally, the embodiment of the present application can also delete some idle code blocks in the first code block stream.
- the idle code blocks that are not deleted in the first code block stream can also be hidden to avoid the idle code blocks that are not deleted from being mistakenly deleted during the transmission process due to the frequency deviation adjustment requirements.
- the hiding method of the idle code blocks can refer to the hiding method of the control code blocks described below, which will not be repeated here.
- the idle code block is also referred to as an I code block.
- the idle code block deleted from the code block stream transmitted by at least one channel is an idle code block defined by the Ethernet standard, and a format diagram of the idle code block defined by the Ethernet standard is shown in FIG12 .
- the synchronization header is "10”
- the 8-bit type field is 0x1E, indicating that the type of the placeholder code block is a C code block, and the values of the 8 control bytes of 7 bits are all 0x00, or the 8 control bytes of 7 bits can also be empty.
- the idle code block inserted into the spliced code block stream based on the frequency deviation can also be an idle code block defined by the Ethernet standard shown in FIG12, so that the method of inserting the idle code block is simple and has good compatibility.
- the idle code block inserted during the multiplexing process of the embodiment of the present application can also be a customized idle code block, which has a more reliable encapsulation format to reduce the risk of idle code block errors.
- the number of idle code blocks is at least two, and the Hamming distance between at least two idle code blocks meets the distance requirement. The distance requirement can be flexibly adjusted according to the application scenario, for example, the distance requirement is maximum.
- the Hamming distance refers to the number of different bit values at corresponding bit positions in the bit stream of the same length.
- the idle code block shown in Figure 13 Therein, two types of idle code blocks are defined, namely Class A idle code blocks and Class B idle code blocks.
- the synchronization header of both types of idle code blocks is "10", and the 8-bit type field is 0x4B.
- the first half of the 56-bit payload field of Class A idle code blocks is all 0s, and the second half is all 1s; the first half of the 56-bit payload field of Class B idle code blocks is all 1s, and the second half is all 0s. That is, the values of the payload fields of the two types of idle code blocks are exactly opposite, so that the two types of idle code blocks form the largest Hamming distance.
- the idle code block can be the Class A idle code block or the Class B idle code block shown in Figure 13; when the number of idle code blocks is two, the idle code blocks can be the Class A idle code block and the Class B idle code block shown in Figure 13.
- additions or deletions are performed based on the two idle code blocks, and during the demultiplexing process, deletions are also performed based on the two idle code blocks.
- the two types of idle code blocks can still be distinguished, improving the reliability of the idle code blocks, reducing the risk of demultiplexing failure caused by idle code block errors, and enhancing the reliability of the multiplexing system.
- the mixed code block includes a hidden code block
- the hidden code block is obtained by hiding the control code block in at least one service code block stream.
- control code blocks in at least one service code block stream can be hidden before the at least one service code block stream is scheduled; or the control code blocks in at least one service code block stream can be hidden after the at least one service code block stream is scheduled. If the control code blocks are hidden after the at least one service code block stream is scheduled, the control code blocks in the scheduled code blocks are hidden.
- control code block includes but is not limited to the C code block and the O code block, etc.
- the C code block may refer to a 66-bit code block with a type field value of 0x1E
- the O code block may refer to a 66-bit code block with a type field value of 0x4B.
- the embodiment of the present application hides the control code blocks in at least one scheduled business code block stream, strengthens the protection of the control code blocks in the original at least one business code block stream, and makes the nodes of the transmission channel that transmits the multiplexed code block stream invisible to the hidden control code blocks.
- the method for concealing the control code block is not limited in the embodiments of the present application, and it is sufficient that the hidden control code block can avoid being processed by the forwarding node in the transmission channel and can be restored to the original control code block during the demultiplexing process.
- all control code blocks in the scheduled code block are transcoded into corresponding hidden code blocks.
- the transcoding rules may include: changing the type field value 0x1E of the C code block to 0x00; changing the O code value 0x0 in the O code block to 0x3, changing the O code value 0x5 to 0x6, and changing the O code value 0xC to 0xA.
- the transcoding rules may also include: changing the first 2 bits of the control code block, i.e., the synchronization header value, to 00 or 11.
- the idle code blocks in the at least one service code block stream can be hidden by using the method of hiding the control code blocks.
- the first 2 bits, i.e., the synchronization header, in the idle code blocks are modified to 00 or 11.
- the method for obtaining a mixed code block based on the code block after the control code block is hidden can be referred to in the above method 2, that is, directly using the code block after the control code block is hidden as the mixed code block; or, based on the frequency deviation, inserting idle code blocks into the code block after the control code block is hidden.
- the mixed code block can include service code blocks, placeholder code blocks, hidden code blocks, and idle code blocks.
- a mixed code block can be obtained according to the first scheduling ratio.
- a multiplexed code block is further inserted to obtain a multiplexed code block stream.
- the multiplexed code block stream includes the mixed code block and the multiplexed code block, and the multiplexed code block carries multiplexing information, which is used to process the multiplexed code block stream.
- the multiplexing information includes at least one of a first service identifier or scheduling information for the multiplexed code block stream
- the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream.
- the first service identifier included in the multiplexing information can be used to forward the multiplexed code block stream
- the scheduling information included in the multiplexing information can be used to demultiplex the multiplexed code block stream.
- multiplexing code block is an overhead (OH) code block defined in the FlexE standard
- the multiplexing code block is a multiplexing indicator code block.
- the multiplexing indicator code block is a custom code block in the embodiments of the present application and can be used to carry multiplexing information.
- the multiplexing indicator code block may also be referred to as a multiplexing code block, an indicator code block, or a custom code block.
- the method of inserting the multiplexing code block is also different, and the resulting multiplexing code block stream is also different.
- the multiplexed code block is a first overhead code block
- the multiplexing information is carried in a reserved field of the first overhead code block
- the first overhead code block is used to extract a mixed code block from the multiplexed code block stream.
- the multiplexing information is carried by extending the reserved field of the OH code block in the FlexE standard, that is, the first overhead code block is the OH code block in the FlexE standard.
- the multiplexing information including the first service identifier and scheduling information of the multiplexing code block stream as an example, refer to the format diagram of the first overhead code block shown in Figure 14.
- the first overhead code block includes 8 66-bit code blocks, namely BLK1-BLK8 in Figure 14.
- the synchronization header of BLK1 is "10", and the type field of BLK1 is 0x4B; the synchronization headers of BLK2 and BLK3 are both "01", and BLK2 includes a PHY map field, a PHY number (number, num) field and a reserved field.
- the reserved field is the res field shown in Figure 14.
- the embodiment of the present application is expanded for BLK2 (see the dotted box portion in Figure 14), and the 17th-18th bits in the 64-bit payload field corresponding to BLK2 are defined as the multiplexing enable (MX_EN) field. If the MX_EN field takes the value "00" as the current default value, it means that there is no need to check the multiplexing field after the MX_EN field. If the MX_EN field takes the value "11", it means that the multiplexing field after the MX_EN field needs to be checked.
- the multiplexing field refers to the 19th-50th bit field.
- bits 19-34 are defined as the multiplex info for calendar A field, which represents the scheduling information of the multiplexed code block stream formed after multiplexing under calendar A.
- bits 35-50 are defined as multiplex info for calendar B, which represents the scheduling information of the multiplexed code block stream formed after multiplexing under calendar B.
- Calendar A and Calendar B represent two different slot groupings.
- the definition of multiplex info for calendar A and multiplex info for calendar B enables this method to support FlexE's native configuration switching capabilities.
- BLK3 includes the client calendar A field and the client calendar B field.
- the client calendar A field carries the first service identifier of the multiplexed block stream formed after multiplexing under calendar A
- the client calendar B field carries the first service identifier of the multiplexed block stream formed after multiplexing under calendar B.
- the transmission bandwidth occupied by the OH code block is reserved for transmitting FlexE control information.
- the purpose of the OH code block is to leave sufficient space in the Ethernet frame for transmitting FlexE control and synchronization information, ensuring frame format compatibility. This allows FlexE to function properly and transmit control information within the Ethernet frame. Since the OH code blocks are automatically inserted and recognized by the FlexE hardware, for example, by the FlexE shim layer shown in Figure 1, no manual configuration or programming is required.
- PHYs physical link interfaces
- data on each PHY is periodically inserted with OH code blocks to achieve internal PHY slot positioning and alignment between different PHYs.
- the OH code block insertion period can be flexibly adjusted based on the application scenario. For example, each PHY could insert an OH code block every 1023*20 66-bit payload data blocks.
- the multiplexing code block is the OH code block
- inserting the multiplexing code block is equivalent to inserting the OH code block.
- the operation of inserting the OH code block can be found in the relevant description of the FlexE standard and will not be repeated here. Therefore, by extending the OH code block to carry multiplexing information, the additional overhead caused by carrying multiplexing information is avoided, the maximum coupling with the FlexE protocol is achieved, and the implementation complexity of carrying multiplexing information is reduced.
- the OH code block is terminated hop by hop. That is, the ingress port strips the OH code block from the received code block stream, and the egress port regenerates and inserts the OH code block into the transmitted code block stream.
- the multiplexing information needs to be copied from the ingress port to the egress port at each forwarding node, which brings operational complexity. Therefore, the embodiment of the present application can also not use the OH code block in the FlexE standard to carry the multiplexing information, but instead newly define a dedicated multiplexing code block to carry the multiplexing information. See the relevant description of the second case below.
- the multiplexing code block is a multiplexing indication code block
- the multiplexing information is carried in a designated field of the multiplexing indication code block
- the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indication code block and the mixed code block in the multiplexing code block stream.
- the embodiment of the present application does not limit the multiplexing indication code block, and it can be distinguished from the existing code block and can carry the multiplexing information through the designated field.
- the multiplexing information including the first service identifier of the multiplexing code block stream as an example, the format diagram of the multiplexing indication code block can be shown in Figure 15 or Figure 16.
- the multiplexing code block is defined as a unique C code block, and the type field value of its 3rd to 10th bits is 0x1E, and the values of the first three 7-bit control bytes are all 0x09, and the values of the next two 7-bit control bytes are both 0x76, so that the multiplexing code block shown in Figure 15 can be distinguished from the station code block shown in Figure 10, and the last remaining 21 bits, that is, the designated field, is defined as Client Group ID, which is used to indicate the first service identifier of the multiplexed multiplexing code block stream. Alternatively, the last remaining 21 bits can also be used to carry the scheduling information of the multiplexing code block stream.
- two multiplexing indication code blocks are inserted, one multiplexing indication code block is used to carry the first service identifier of the multiplexing code block flow, and the other multiplexing indication code block is used to carry the scheduling information of the multiplexing code block flow.
- the multiplexing block is defined as a unique O-code block, with the type field in bits 3-10 set to 0x4B and the O-code in bits 35-38 set to 0x9.
- the first data byte (bits 11-18) is set to 0xFF, distinguishing the multiplexing block shown in Figure 16 from the station block shown in Figure 11.
- the designated field in the last two data bytes (bits 19-34) is defined as the Client Group ID, which indicates the first service identifier of the multiplexed multiplexing block stream.
- the final four 7-bit control bytes are set to 0x000_0000.
- the last 28 bits can be used to carry scheduling information for the multiplexing block stream.
- the method of inserting the multiplexing indicator code block is not limited in the embodiment of the present application.
- the inserted multiplexing indicator code block can be used to delimit the mixed code block, or can be used as a reference point for the first scheduling ratio.
- the FlexE multiplexing layer inserts the multiplexing indicator code block every N scheduling periods of the first scheduling ratio.
- N is an arbitrary positive integer
- the insertion position of the multiplexing indicator code block is at the beginning of a scheduling period. Therefore, demultiplexing can be started according to the first scheduling ratio based on the insertion position of the multiplexing indicator code block as a reference point. For example, if the first scheduling ratio is 1:2:1, the scheduling period is (service code block 1; service code block 2, service code block 2; service code block 3), and the insertion position of the multiplexing indicator code block is the previous code block of service code block 1.
- the multiplexing code block can be used as a delimiter when forwarding or demultiplexing.
- Delimitation refers to determining the boundary between the code block streams transmitted by different transmission channels in the code block stream received through any Ethernet interface, and then extracting the code block streams transmitted by different transmission channels.
- the 100GE Ethernet interface includes 5 20Gbps channels, and the multiplexing code block stream in the embodiment of the present application is transmitted through the first 25Gbps channel.
- the mixed code block transmitted by the first 25Gbps channel can be delimited in the code block stream received through the 100GE Ethernet interface; according to the second overhead code block, the mixed code block and the multiplexing indication code block transmitted by the first 25Gbps channel can be delimited in the code block stream received through the 100GE Ethernet interface, and the mixed code block is further delimited according to the multiplexing indication code block.
- the dependence on the FlexE protocol is reduced, and a clearer decoupling between functional modules is achieved, which is conducive to modular implementation.
- the intermediate forwarding node no longer needs to strip the multiplexing information at the entrance and reinsert the multiplexing information at the exit, that is, the multiplexing information does not need to be copied from the entrance to the exit.
- the multiplexing indicator code block will be forwarded along with the multiplexing code block flow as part of the multiplexing code block flow, directly passing through the forwarding node, thereby reducing the processing complexity of the forwarding node.
- the forwarding node does not modify the multiplexing indicator code block, but only reads the multiplexing information carried in the multiplexing indicator code block, which is used to search the routing table and forward according to the first service identifier in the multiplexing information.
- the routing table includes a correspondence between the first service identifier and the output port, and the first service identifier is the service identifier after multiplexing.
- multiplexing processing of at least one service block stream is achieved.
- the output port can be determined based on the first service identifier of the multiplexed block stream, and the multiplexed block stream can be sent through the output port.
- the multiplexed block stream is sent to the second communication device through the output port.
- the transmission rate of the multiplexed block stream is greater than the transmission rate of the at least one service block stream.
- the transmission rates of the at least one service block stream transmitted through a small-bandwidth channel are 5 Gbps, 10 Gbps, and 5 Gbps, respectively, while the transmission rate of the multiplexed block stream transmitted through a large-bandwidth channel is 20 Gbps, thereby increasing the transmission rate of the at least one service block stream to 20 Gbps.
- the transmission rate of the at least one service block stream is increased, effectively utilizing the large bandwidth of the output port and avoiding bandwidth waste. This achieves the aggregation of at least one low-speed service block stream into one high-speed service block stream, solving the problem of connecting large and small-bandwidth channels.
- the following describes the multiplexing process in the code block processing method provided in the embodiment of the present application, taking a fixed first scheduling ratio and an overhead code block as an example, in conjunction with the system block diagram shown in FIG17 and the flowchart shown in FIG18.
- the multiplexing process includes but is not limited to the following steps 11 to 14.
- Step 11 Receive at least one service code block stream and delete all idle code blocks in each service code block stream.
- At least one service block stream includes three.
- the first service block stream includes an O block, an S block, and a D block.
- the second service block stream includes three D blocks.
- the third service block stream includes a D block, a T block, and an I block. For each service block stream, after receiving a block, if it is an idle block, it is deleted. If it is not an idle block, it is placed in the service block queue.
- Step 12 Schedule code blocks in at least one service code block stream according to a fixed ratio, and insert placeholder code blocks as needed.
- scheduling code blocks in at least one service code block stream is equivalent to scheduling code blocks in multiple service code block queues. Inserting placeholder code blocks on demand means that if a service code block stream is temporarily without code blocks when scheduling the service code block stream, a specific placeholder code block provided in the embodiment of the present application is inserted.
- Step 13 insert idle code blocks as needed to form mixed code blocks.
- Inserting idle code blocks on demand means determining an insertion period based on the frequency offset adjustment requirement and inserting idle code blocks into the scheduled code blocks according to the insertion period.
- the obtained mixed code blocks are placed in the service group code block queue.
- Step 14 Periodically insert OH code blocks and carry multiplexing information in overhead code blocks to form a multiplexed code block stream.
- OH blocks are periodically inserted into the service group block queue to create a multiplexed block stream, which is then transmitted over a high-speed channel.
- the channel receiving at least one service block stream is a low-speed channel.
- the multiplexed block stream transmitted over the high-speed channel, or multiplexed block stream, is shown in Figure 17 and may include placeholder blocks and idle blocks.
- steps 11 to 14 can refer to the implementation of steps 901 and 902 above, and will not be repeated here.
- the code blocks in at least one service code block stream are scheduled according to a fixed scheduling ratio to obtain a multiplexed code block stream based on the scheduled code blocks, thereby multiplexing at least one service code block stream into a multiplexed code block stream.
- This multiplexing process does not require a frame sealing operation, avoiding the bandwidth waste caused by the frame sealing operation, and multiplexing is performed directly at the granularity of the code block. Compared with multiplexing at the bit granularity, this reduces the complexity of the multiplexing process and improves the multiplexing efficiency.
- the multiplexed code block stream carries multiplexing information, so that all nodes receiving the multiplexed code block stream can process the multiplexed code block stream according to the multiplexing information, ensuring the correct processing of the multiplexed code block stream.
- FIG 19 is a flowchart of a data transmission method provided in an embodiment of the present application. This method is described using a second communication device as an example.
- the second communication device may be the network device shown in Figure 7 or Figure 8.
- the second communication device and the first communication device may be the same network device or two interconnected network devices.
- the code block processing method includes, but is not limited to, steps 1901 and 1902.
- Step 1901 Acquire a multiplexed code block stream, which includes mixed code blocks and multiplexed code blocks.
- the mixed code blocks are obtained by scheduling code blocks in at least one service code block stream according to a first scheduling ratio.
- the multiplexed code blocks carry multiplexing information.
- the multiplexed code block stream may be obtained by receiving the multiplexed code block stream sent by the first communication device, or performing multiplexing processing according to the above steps 901 to 903 to obtain the multiplexed code block stream.
- the multiplexed code block stream refer to the details about the multiplexed code block stream involved in steps 901 to 903, and will not be repeated here.
- Step 1902 Process the multiplexed code block stream according to the multiplexing information.
- processing the multiplexed code block stream based on the multiplexing information includes two steps: forwarding the multiplexed code block stream and demultiplexing the multiplexed code block stream.
- the second communication device can both forward the multiplexed code block stream and demultiplex the multiplexed code block stream.
- the second communication device forwards the multiplexed code block stream, and a third network device receives the multiplexed code block stream forwarded by the second communication device, and the third network device demultiplexes the multiplexed code block stream.
- Processing method 1 forwarding the multiplexed code block stream according to the multiplexing information.
- the overhead code block is terminated hop by hop. Therefore, if the multiplexing code block is the first overhead code block, and the multiplexing information is carried in the reserved field of the first overhead code block, then forwarding the multiplexing code block stream may include: stripping the first overhead code block in the multiplexing code block stream at the ingress port to obtain a mixed code block; sending the mixed code block to the egress port, inserting the third overhead code block into the mixed code block, and then sending it through the egress port, where the third overhead code block carries the multiplexing information. That is, stripping the first overhead code block at the ingress port and reinserting the third overhead code block at the egress port.
- the third overhead code block may be the same as or different from the first overhead code block, so that the multiplexing information needs to be copied from the ingress port to the egress port.
- the multiplexing code block is a multiplexing indication code block, for example, the multiplexing indication code block shown in Figure 15 or 16, the multiplexing information is carried in a designated field of the multiplexing indication code block.
- the multiplexing code block stream also includes a second overhead code block, which is the overhead code block that needs to be carried in the original FlexE protocol transmission scenario.
- forwarding the multiplexing code block stream according to the multiplexing information may include: stripping the second overhead code block in the multiplexing code block stream at the ingress port to obtain a mixed code block stream including a multiplexing indication code block and a mixed code block; sending the mixed code block stream to the egress port, inserting a fourth overhead code block into the mixed code block stream, and then sending it through the egress port. That is, stripping the second overhead code block at the ingress port and reinserting the fourth overhead code block at the egress port.
- the fourth overhead code block is the same as or different from the second overhead block, so that the multiplexing information is carried in the multiplexing indication code block and is directly forwarded following the mixed code block, that is, the multiplexing information does not need to be copied from the ingress port to the egress port.
- the multiplexing information includes the first service identifier of the multiplexing code block stream
- the method of determining the output port of the multiplexing code block stream may include determining the output port based on the service identifier.
- the second communication device maintains a routing table, and the routing table includes a correspondence between the service identifier and the output port. Then, by querying the first service identifier of the multiplexing code block stream in the routing table, the output port of the multiplexing code block stream can be determined.
- the output port of the multiplexing code block stream is the output port of the mixed code block; in the case where the multiplexing code block is the multiplexing indication code block, the output port of the multiplexing code block stream is the output port of the mixed code block stream.
- the method of forwarding the information received by the input port to the corresponding output port through the routing table is called cross forwarding.
- the multiplexed code block stream if the acquired multiplexed code block stream is a multiplexed code block stream received from other network devices, the multiplexed code block stream also includes idle code blocks inserted based on the frequency deviation. Then, forwarding the multiplexed code blocks according to the multiplexing information may include adjusting the frequency deviation of the multiplexed code block stream based on the frequency deviation. Optionally, the frequency deviation of the multiplexed code block stream is adjusted by adding or deleting idle code blocks based on the frequency deviation.
- the arrival rate of the multiplexed code block stream is low, interruption of the flow is avoided by inserting idle code blocks into the multiplexed code block stream; when the arrival rate of the multiplexed code block stream is high, code block backlog is avoided by deleting idle code blocks from the multiplexed code block stream.
- the type of idle code blocks added or deleted during the forwarding process is the same as the type of idle code blocks inserted during the above-mentioned multiplexing process, that is, if the idle code blocks inserted during the multiplexing process are the two types of idle code blocks shown in FIG13 , the idle code blocks added or deleted during the forwarding process are also the two types of idle code blocks shown in FIG13 .
- intermediate forwarding nodes can forward the stream at the granularity of the multiplexed block stream, that is, at the transmission rate of the multiplexed block stream.
- the transmission channel of the multiplexed block stream is a high-bandwidth channel, meaning that at least one service block stream can be transmitted through this high-bandwidth channel.
- the forwarding process includes but is not limited to the following steps 21 to 24.
- Step 21 Receive a code block stream, perform delimitation according to the OH code block, and extract multiplexing information from the OH code block.
- the code block streams of different transmission channels can be delimited according to the OH code block, and then the mixed code block can be extracted and written into the service group queue code block.
- Step 22 Add or delete idle code blocks in the mixed code block according to the frequency offset adjustment requirement.
- frequency offset adjustment is achieved by adding or deleting idle code blocks.
- Step 23 cross-forwarding the mixed code block.
- the cross forwarding of the mixed code block is the cross forwarding of the multiplexed code block stream.
- the forwarding table is checked through the service identifier carried in the multiplexing information, and the mixed code block is sent to the correct egress port.
- Step 24 inserting an OH code block into the code block stream of the outgoing port, where the OH code block carries multiplexing information.
- the multiplexing information sent out in advance by the ingress port needs to be copied to the egress port, so that the OH code block reinserted by the egress port carries the multiplexing information.
- Processing method 2 demultiplexing the multiplexed code block stream according to the multiplexing information.
- the multiplexing information includes scheduling information, and the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream; demultiplexing the multiplexed code block stream according to the multiplexing information may include determining the first scheduling ratio according to the scheduling information; extracting a mixed code block from the multiplexed code block stream, and demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio.
- the scheduling information when the scheduling information includes a first scheduling ratio, the first scheduling ratio in the scheduling information is directly read; when the scheduling information includes a second service identifier corresponding to at least one service code block stream, the first scheduling ratio can be determined based on the bandwidth or transmission rate corresponding to each of the multiple second service identifiers, or the scheduling ratios corresponding to each of the multiple second service identifiers are obtained based on the configuration information, and then the first scheduling ratio is determined based on the scheduling ratios corresponding to each of the multiple second service identifiers.
- the configuration information can be configured in advance by the control end and sent to the second communication device, or it can be obtained by the second communication device in real time from the control end.
- the configuration information includes a correspondence between the second service identifier and the scheduling ratio. In this case, the first communication device can also determine the first scheduling ratio based on the configuration information.
- the method of extracting the mixed code block from the multiplexed code block stream please refer to the relevant instructions in processing method one.
- the multiplexed code block is the first overhead code block
- the mixed code block is delimited according to the insertion position of the first overhead code block, the mixed code block is extracted, and the multiplexing information in the first overhead code block is extracted;
- the multiplexed code block is a multiplexing indicator code block
- the mixed code block stream is delimited according to the insertion position of the second overhead code block, the mixed code block stream is extracted, and then the mixed code block is delimited according to the insertion position of the multiplexing indicator code block to extract the mixed code block and the multiplexing information in the multiplexing indicator code block.
- the mixed code block After extracting the mixed code block, the mixed code block can be restored to at least one service code block stream according to the first scheduling ratio.
- This demultiplexing process corresponds to the aforementioned multiplexing process, that is, the demultiplexing process is the inverse of the multiplexing process. Therefore, the operation performed in the multiplexing process determines the inverse operation performed in the demultiplexing process.
- demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio includes first deleting the idle code blocks from the mixed code block, and then demultiplexing at least one service code block stream from the code block stream after deleting the idle code blocks according to the first scheduling ratio.
- At least one service code block stream can be directly decomposed and restored from the code block stream after deleting the idle code blocks according to the first scheduling ratio. For example, taking a first scheduling ratio of 1:2:1 as an example, at least one service code block stream is demultiplexed from the mixed code block according to the first scheduling ratio. That is, the first code block in the mixed code block is restored to one code block in the first service code block stream, the second and third code blocks in the mixed code block are restored to two code blocks in the second service code block stream, and the fourth code block in the mixed code block is restored to one code block in the third service code block stream, and this restoration process is repeated.
- a mixed code block When a mixed code block includes a concealed code block, the concealed code block is restored to a control code block during demultiplexing of at least one service code block stream from the mixed code block according to the first scheduling ratio.
- the concealed code block in the mixed code block may be first restored to a control code block, and then at least one service code block stream may be demultiplexed from the mixed code block after being restored to the control code block.
- at least one initial code block stream may be first demultiplexed from the mixed code block according to the first scheduling ratio, and the concealed code blocks in the at least one initial code block stream may be restored to a control code block to obtain the at least one service code block stream.
- the process of restoring the hidden code block to the control code block is the reverse process of the hidden control code block.
- the process of restoring the code block after the control code block is hidden may include restoring the type field value 0x00 to 0x1E to restore the C code block; restoring the O code value 0x3 in the O code block to 0x0, restoring the O code value 0x6 to 0x5, and restoring the O code value 0xA to 0xC to restore the O code block.
- At least one initial code block stream can be demultiplexed from the mixed code blocks according to the first scheduling ratio, and at least one service code block stream can be obtained based on the at least one initial code block stream.
- the step of obtaining the at least one service code block stream based on the at least one initial code block stream can include, for a first initial code block stream in the at least one initial code block stream, if the first initial code block stream includes placeholder code blocks, deleting the placeholder code blocks in the first initial code block stream to obtain the first service code block stream; or, if the first initial code block stream includes hidden code blocks, restoring the hidden code blocks to control code blocks to obtain the first service code block stream; or, if the first initial code block stream includes placeholder code blocks and hidden code blocks, deleting the placeholder code blocks in the first initial code block stream and restoring the hidden code blocks to control code blocks to obtain the first service code block stream.
- the first service code block stream is the code block stream in the at least one initial code block stream.
- the multiplexing information includes, in addition to the first scheduling ratio, the first service identifier corresponding to the at least one service code block stream. Therefore, after demultiplexing the at least one service code block stream from the multiplexed code block stream, the egress port corresponding to the at least one service code block stream can be determined based on the first service identifier corresponding to the at least one service code block stream, and the at least one service code block stream can be forwarded via the egress port corresponding to the at least one service code block stream. For example, forwarding can be performed by performing a table lookup based on the first service identifier corresponding to the at least one service code block stream.
- the demultiplexing process of the multiplexed code block stream is implemented through the second processing mode, so that each receiving node can recover at least one service code block stream from the multiplexed code block stream and realize the correct forwarding of at least one service code block stream.
- the demultiplexing process includes but is not limited to the following steps 31 to 34.
- Step 31 Receive a code block stream, perform delimitation according to the OH code block, and extract multiplexing information from the OH code block.
- the code block stream received through the high-speed channel cross transmission is the multiplexed code block stream.
- the mixed code block is extracted from the multiplexed code block stream and added to the service group code block queue.
- Step 32 Delete all idle code blocks in the mixed code block.
- Step 33 Decompose the mixed code block into various code block streams according to the scheduling ratio.
- Step 34 For each code block stream, delete all placeholder code blocks in each code block stream to obtain multiple service code block streams.
- control blocks in each service block stream are transcoded and hidden, and the blocks following the hidden control blocks, i.e., the hidden blocks, are placed in the service block queue.
- the hidden control blocks in each block stream are restored.
- the above process mainly introduces a single multiplexing process and a single demultiplexing process.
- the method provided in the embodiment of the present application can also be used for multiple multiplexing, so that the method can be used in more demand scenarios, and multiple multiplexing means multiple demultiplexing.
- the multiplexed code block stream after one multiplexing can be regarded as an ordinary business code block stream, and is multiplexed again with other business code block streams.
- the demultiplexing process the multiplexed code block stream is demultiplexed layer by layer until the original business code block stream is restored. Multiple multiplexing and multiple demultiplexing can be implemented on the same network device or on different network devices.
- node 1 sends business code block stream 1 to node 4, node 2 sends business code block stream 2 to node 4, and node 3 sends business code block stream 3 to node 4;
- node 4 multiplexes the three business code block streams into multiplexed code block stream 1 through the multiplexing module, and sends the multiplexed code block stream 1 to node 7,
- node 5 sends business code block stream 4 to node 7, and
- node 6 sends business code block stream 5 to node 7;
- node 7 multiplexes the two business code block streams with the multiplexed code block stream 1 into multiplexed code block stream 2, and sends the multiplexed code block stream 2 to node 8;
- node 8 demultiplexes the multiplexed code block stream 2 through the demultiplexing module, restores business code block stream 1-business code block stream 5, and sends business code block stream 1 to node 9, business code block stream 2 to node 10, business code block stream 3 to node 11, business
- any one of the at least one service code block streams acquired by the first communication device in step 901 may be obtained by scheduling at least one sub-service code block stream according to the second scheduling ratio. That is, any one of the service code block streams is a code block stream obtained by multiplexing at least one sub-service code block stream.
- the process for multiplexing at least one sub-service code block stream into any one of the service code block streams can be seen in the multiplexing process shown in FIG. 9 and is not further described here.
- any service code block stream is referred to as a sub-multiplexed code block stream
- the first service identifier of the sub-multiplexed code block stream is the second service identifier of any service code block stream.
- the multiplexing information also includes at least one of a second scheduling ratio or a third service identifier corresponding to at least one sub-service code block stream. After demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio, at least one sub-service code block stream can be demultiplexed from any service code block stream according to the second scheduling ratio.
- the demultiplexing process for any service code block stream can be referred to the demultiplexing process for the multiplexed code block stream and will not be repeated here.
- the Client Group ID field shown in FIG15 or FIG16 can be defined hierarchically.
- the 16 bits of the Client Group ID field are divided into four 4-bit fields, each of which is used to indicate the service identifier of a first-level multiplexing.
- the least significant 4 bits correspond to the service identifier of the first multiplexing, i.e., L1 multiplexing, and the most significant 4 bits correspond to the service identifier of the fourth multiplexing, i.e., L4 multiplexing.
- the Client Group ID field supports carrying the service identifiers of up to four multiplexings.
- the multiplexed block stream can be processed based on the multiplexing information carried by the multiplexed blocks in the multiplexed block stream. This achieves multiplexing of at least one service block stream into a single multiplexed block stream for processing, while ensuring the accuracy of the processing of the multiplexed block stream using the multiplexing information.
- Figure 27 is a structural diagram of a code block processing device provided by an embodiment of the present application. Based on the following multiple modules shown in Figure 27, the code block processing device shown in Figure 27 can perform all or part of the operations performed by the first communication device or the second communication device. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiment of the present application does not limit this. As shown in Figure 27, the device includes:
- the transceiver module 2701 is configured to perform operations related to receiving and/or sending in the method shown in FIG9
- the processing module 2702 is configured to perform operations other than the operations related to receiving and/or sending in the method shown in FIG9 .
- the transceiver module 2701 is configured to perform operations other than the operations related to receiving and/or sending in the method shown in FIG19
- the processing module 2702 is configured to perform operations other than the operations related to receiving and/or sending in the method shown in FIG19 .
- the transceiver module 2701 includes a receiving module and/or a sending module.
- the receiving module is used to perform reception-related operations
- the sending module is used to perform sending-related operations.
- the processing module 2702 is used to obtain at least one business code block stream; and obtain a multiplexed code block stream based on the at least one business code block stream, the multiplexed code block stream including mixed code blocks and multiplexed code blocks, the mixed code blocks being code blocks obtained by scheduling code blocks in at least one business code block stream according to a first scheduling ratio, the multiplexed code blocks carrying multiplexing information, and the multiplexing information being used to process the multiplexed code block stream.
- the processing module 2702 is further configured to, during a process of scheduling code blocks in at least one business code block stream according to a first scheduling ratio, insert a third number of placeholder code blocks if a first number of code blocks included in the first business code block stream is less than a second number of code blocks scheduled in the first business code block stream, wherein the first business code block stream is a code block stream in at least one business code block stream, and the third number is a difference between the second number and the first number.
- the transceiver module 2702 is configured to receive a code block stream transmitted through at least one channel, where the code block stream transmitted through at least one channel includes a first code block stream; and the processing module 2702 is configured to delete all idle code blocks in the first code block stream to obtain a first service code block stream, where the first service code block stream is a code block stream in the at least one service code block stream.
- the processing module 2702 is also used to insert idle code blocks into the scheduled code blocks based on the frequency deviation, where the frequency deviation is the frequency deviation between the nodes used to transmit the multiplexed code block stream, the number of idle code blocks is at least two, and the Hamming distance between at least two idle code blocks meets the distance requirement.
- the mixed code block includes a hidden code block
- the hidden code block is obtained by hiding a control code block in at least one service code block stream.
- the multiplexed code block is a first overhead code block
- the multiplexing information is carried in a reserved field of the first overhead code block
- the first overhead code block is used to extract a mixed code block from the multiplexed code block stream.
- the multiplexing code block is a multiplexing indication code block
- the multiplexing information is carried in a designated field of the multiplexing indication code block
- the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indication code block and the mixed code block in the multiplexing code block stream.
- the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to the second scheduling ratio.
- the first scheduling ratio is determined based on the bandwidth or transmission rate of at least one service code block flow.
- the transceiver module 2702 is further configured to determine an egress port based on the first service identifier of the multiplexed code block stream, and send the multiplexed code block stream through the egress port, wherein the transmission rate of the multiplexed code block stream is greater than the transmission rate of at least one service code block stream.
- the multiplexing information includes at least one of a first service identifier or scheduling information of the multiplexed code block stream
- the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream.
- the processing module 2702 is used to obtain a multiplexed code block stream, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information; the multiplexed code block stream is processed according to the multiplexing information.
- the multiplexing information includes scheduling information, and the scheduling information includes a first scheduling ratio; the processing module 2702 is used to extract a mixed code block from the multiplexed code block stream, and demultiplex at least one service code block stream from the mixed code block according to the first scheduling ratio.
- the processing module 2702 is configured to, when the mixed code block includes an idle code block, delete the idle code block in the mixed code block; and demultiplex at least one service code block stream from the mixed code block after the idle code block is deleted according to the first scheduling ratio.
- the processing module 2702 is configured to demultiplex at least one initial code block stream from the mixed code block according to a first scheduling ratio, where the at least one initial code block stream includes a first initial code block stream; and when the first initial code block stream includes placeholder code blocks, the placeholder code blocks in the first initial code block stream are deleted to obtain a first service code block stream, where the first service code block stream is a code block stream in the at least one service code block stream.
- the mixed code block includes a hidden code block, and in the process of demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio, the hidden code block is restored to a control code block.
- the service code block stream in at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio, and the scheduling information also includes the second scheduling ratio; the processing module 2702 is also used to demultiplex at least one sub-service code block stream from the service code block stream according to the second scheduling ratio.
- the multiplexing information includes a first service identifier of the multiplexed code block stream; and the processing module 2702 is configured to perform forwarding processing on the multiplexed code block stream according to the first service identifier.
- the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block;
- the processing module 2702 is used to strip the first overhead code block in the multiplexing code block stream at the input port to obtain a mixed code block;
- the transceiver module 2702 is used to send the mixed code block to the output port determined based on the first service identifier, and send it through the output port after inserting a third overhead code block, where the third overhead code block carries the multiplexing information.
- the multiplexing code block is a multiplexing indication code block
- the multiplexing information is carried in a designated field of the multiplexing indication code block
- the multiplexing code block stream also includes a second overhead code block
- the processing module 2702 is used to strip off the second overhead code block in the multiplexing code block stream at the input port to obtain a multiplexing indication code block and a mixed code block
- the transceiver module 2702 is used to send the multiplexing indication code block and the mixed code block to the output port determined based on the first service identifier, and send them through the output port after inserting the fourth overhead code block.
- the transceiver module 2702 is configured to receive a multiplexed code block stream, which further includes idle code blocks inserted based on a frequency deviation; and the processing module 2702 is configured to perform frequency deviation adjustment on the multiplexed code block stream based on the frequency deviation.
- the device provided in FIG. 27 is merely an example of the division of the functional modules described above when implementing its functions.
- the functions described above can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
- the device and method embodiments provided in the above embodiments are based on the same concept. The specific implementation process and beneficial effects thereof are detailed in the method embodiments and will not be repeated here.
- FIG. 28 illustrates a schematic diagram of the structure of a network device 2000 provided in accordance with an exemplary embodiment of the present application.
- the network device 2000 illustrated in FIG. 28 is configured to execute the operations described in the code block processing method illustrated in FIG. 9 or FIG. 19 .
- the network device 2000 is, for example, a switch or router, and may be implemented using a general bus architecture.
- the network device 2000 includes at least one processor 2001 , a memory 2003 , and at least one communication interface 2004 .
- the processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), 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 solution of the present application.
- the processor 2001 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof.
- the PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
- the processor can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present invention.
- the processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
- network device 2000 also includes a bus.
- the bus is used to transmit information between the components of network device 2000.
- the bus may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus.
- PCI Peripheral Component Interconnect
- EISA Extended Industry Standard Architecture
- Buses can be categorized as address buses, data buses, control buses, and the like. For ease of illustration, FIG28 shows only one line, but this does not imply that there is only one bus or only one type of bus.
- the memory 2003 may be, for example, a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, a random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, 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 is not limited thereto.
- the memory 2003 may exist independently and be connected to the processor 2001 via a bus.
- the memory 2003 may also be integrated with the processor 2001.
- the communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks.
- the communication network can be Ethernet, a radio access network (RAN), or a wireless local area network (WLAN).
- the communication interface 2004 can include a wired communication interface and a wireless communication interface.
- the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof.
- the Ethernet interface can be an optical interface, an electrical interface, or a combination thereof.
- the communication interface 2004 can be used for the network device 2000 to communicate with other devices.
- processor 2001 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG28 . Each of these processors may be a single-core CPU processor or a multi-core CPU processor.
- a processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
- network device 2000 may include multiple processors, such as processor 2001 and processor 2005 shown in FIG28 . Each of these processors may be a single-core CPU or a multi-core CPU.
- a processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
- the network device 2000 may further include an output device and an input device.
- the output device communicates with the processor 2001 and can display information in various ways.
- the output device can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector.
- the input device communicates with the processor 2001 and can receive user input in various ways.
- the input device can be a mouse, a keyboard, a touch screen device, or a sensor device.
- the memory 2003 is used to store program code 2010 for executing the solution of the present application
- the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the network device 2000 can implement the code block processing method provided by the method embodiment through the processor 2001 and the program code 2010 in the memory 2003.
- the program code 2010 may include one or more software modules.
- the processor 2001 itself may also store program code or instructions for executing the solution of the present application.
- the network device 2000 of the embodiment of the present application may correspond to the first communication device in the above-mentioned method embodiments.
- the processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 28 can execute all or part of the operations performed by the first communication device.
- the processor 2001 is used to obtain at least one business code block stream; based on the at least one business code block stream, a multiplexed code block stream is obtained, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one business code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information, and the multiplexing information is used to process the multiplexed code block stream.
- the network device 2000 of an embodiment of the present application may correspond to the second communication device in each of the above-mentioned method embodiments.
- the processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 28 can execute all or part of the operations performed by the second communication device.
- processor 2001 is used to obtain a multiplexed code block stream, which includes a mixed code block and a multiplexed code block.
- the mixed code block is a code block obtained by scheduling the code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information; the multiplexed code block stream is processed according to the multiplexing information.
- the network device 2000 may also correspond to the code block processing apparatus shown in FIG27 , and each functional module in the code block processing apparatus is implemented using software of the network device 2000.
- the functional modules included in the code block processing apparatus are generated by the processor 2001 of the network device 2000 after reading the program code 2010 stored in the memory 2003.
- each step of the code block processing method shown in Figure 9 or Figure 19 is completed by the hardware integrated logic circuit or software instructions in the processor of the network device 2000.
- the steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor.
- the software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
- FIG. 29 shows a schematic diagram of the structure of a network device 2100 provided in another exemplary embodiment of the present application.
- the network device 2100 shown in FIG. 29 is configured to perform all or part of the operations involved in the code block processing method shown in FIG. 9 or FIG. 19 .
- the network device 2100 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
- the network device 2100 includes a main control board 2110 and an interface board 2130 .
- the main control board also known as the main processing unit (MPU) or route processor card, controls and manages various components in network device 2100, including routing calculations, device management, device maintenance, and protocol processing.
- MCB 2110 includes a central processing unit (CPU) 2111 and memory 2112.
- Interface board 2130 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET/SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients) interfaces. Interface board 2130 includes a central processing unit (CPU) 2131, a network processor (NPU) 2132, a forwarding table memory 2134, and a physical interface card (PIC) 2133.
- CPU central processing unit
- NPU network processor
- PIC physical interface card
- the central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2111 on the main control board 2110 .
- the network processor 2132 is used to implement message forwarding processing.
- the network processor 2132 can be in the form of a forwarding chip.
- the forwarding chip can be a network processor (NP).
- the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- the network processor 2132 is used to forward received messages based on the forwarding table stored in the forwarding entry memory 2134. If the destination address of the message is the address of the network device 2100, the message is sent to the CPU (such as the central processing unit 2131) for processing.
- the processing of uplink messages may include processing the message input interface and forwarding table lookup; the processing of downlink messages may include forwarding table lookup, etc.
- the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, so that a forwarding chip is not required in the interface board.
- Physical interface card 2133 implements physical layer interconnection. Raw traffic enters interface board 2130 through this card, and processed packets are sent out from this physical interface card 2133.
- Physical interface card 2133 also known as a daughter card, can be installed on interface board 2130. It converts optical and electrical signals into packets, performs a validity check on these packets, and then forwards them to network processor 2132 for processing.
- central processing unit 2131 can also perform the functions of network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 2132 in physical interface card 2133.
- the network device 2100 includes multiple interface boards.
- the network device 2100 further includes an interface board 2140.
- the interface board 2140 includes a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143.
- the functions and implementation of each component in the interface board 2140 are the same as or similar to those of the interface board 2130 and are not described in detail here.
- network device 2100 further includes a switching fabric board 2120.
- Switching fabric board 2120 may also be referred to as a switch fabric unit (SFU). If network device 2100 has multiple interface boards, switching fabric board 2120 is used to exchange data between the interface boards. For example, interface board 2130 and interface board 2140 can communicate via switching fabric board 2120.
- SFU switch fabric unit
- the main control board 2110 is coupled to the interface board.
- the main control board 2110, the interface board 2130, the interface board 2140, and the switching network board 2120 are interconnected via a system bus and a system backplane.
- an inter-process communication (IPC) channel is established between the main control board 2110 and the interface boards 2130 and 2140. Communication between the main control board 2110 and the interface boards 2130 and 2140 is performed via the IPC channel.
- IPC inter-process communication
- network device 2100 includes a control plane and a forwarding plane.
- the control plane includes a main control board 2110 and a central processing unit (CPU) 2111.
- the forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, physical interface cards 2133, and a network processor 2132.
- the control plane performs routing functions, generates forwarding tables, processes signaling and protocol messages, and configures and maintains the network device's status.
- the control plane sends the generated forwarding tables to the forwarding plane.
- the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding tables sent by the control plane.
- the forwarding tables sent by the control plane can be stored in the forwarding table entry memory 2134.
- the control plane and forwarding plane can be completely separate and not located on the same network device.
- main control boards SPUs
- interface boards The higher the network device's data processing capabilities, the more interface boards it provides. Interface boards can also have one or more physical interface cards. There may be no SPUs, one or more SPUs, and multiple SPUs can provide load balancing and redundancy.
- network devices may not require SPUs; the interface boards handle service data processing for the entire system.
- network devices may have at least one SPU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities.
- a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board.
- the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU on this card, performing the combined functions of the two.
- This type of network device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers).
- the specific architecture used depends on the specific network deployment scenario and is not specified here.
- the network device 2100 corresponds to the code block processing apparatus shown in FIG27 .
- the transceiver module 2701 in the code block processing apparatus shown in FIG27 corresponds to the physical interface card 2133 in the network device 2100
- the determination module 2702 corresponds to the central processing unit 2111 or the network processor 2132 in the network device 2100 .
- the present application also provides a code block processing system, comprising: a first communication device and a second communication device.
- the first communication device is the network device 2000 shown in FIG. 28 or the network device 2100 shown in FIG. 29
- the second communication device is the network device 2000 shown in FIG. 28 or the network device 2100 shown in FIG. 29 .
- the code block processing method performed by the first communication device and the second communication device can be found in the description of the embodiment shown in FIG. 9 or FIG. 19 above, and will not be further described here.
- An embodiment of the present application further provides a communication device, comprising: a transceiver, a memory, and a processor.
- the transceiver, the memory, and the processor communicate with each other via an internal connection path.
- the memory is used to store instructions
- the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals.
- the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the first communication device or the second communication device.
- the processor described above may be a CPU, or other general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc.
- the general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports the Advanced Reduced Instruction Set Machine (ARM) architecture.
- ARM Advanced Reduced Instruction Set Machine
- the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor.
- the memory may also include a non-volatile random access memory.
- the memory may also store device type information.
- Nonvolatile memory may be read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), or flash memory.
- Volatile memory may be random access memory (RAM), which serves as an external cache memory.
- RAM random access memory
- SRAM static RAM
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- DDR SDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM synchronized dynamic random access memory
- DR RAM direct rambus RAM
- An embodiment of the present application further provides a computer-readable storage medium, in which at least one instruction is stored.
- the instruction is loaded and executed by a processor to enable a computer to implement any of the above code block processing methods.
- the embodiments of the present application further provide a computer program (product), which, when executed by a computer, can enable a processor or computer to execute the corresponding steps and/or processes in the above method embodiments.
- An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes any of the above code block processing methods.
- An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory.
- the processor is used to execute any of the above code block processing methods.
- all or part of the embodiments can be implemented through software, hardware, firmware, or any combination thereof.
- all or part of the embodiments can be implemented in the form of a computer program product.
- a computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the present application is generated in whole or in part.
- the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
- the computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another.
- the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means.
- the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media.
- the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive).
- the computer program product includes one or more computer program instructions.
- the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target.
- a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure.
- the function of the program module can be merged or split between the described program modules.
- the machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.
- the computer program code for realizing the method for the embodiment of the application can be written in one or more programming languages. These computer program codes can be provided to the processor of general-purpose computer, special-purpose computer or other programmable data processing device, so that program code, when being executed by computer or other programmable data processing device, causes the function/operation specified in flow chart and/or block diagram to be implemented.Program code can be executed completely on computer, partly on computer, as independent software package, partly on computer and partly on remote computer or completely on remote computer or server.
- computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above.
- suitable carriers include signals, computer-readable media, and the like.
- Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.
- a machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are merely schematic.
- the division of the modules is merely a logical function division.
- the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or can be electrical, mechanical or other forms of connection.
- modules described as separate components may or may not be physically separate, and 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 may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
- the functional modules in the various embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module.
- the above-mentioned integrated modules may be implemented in the form of hardware or software functional modules.
- the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of the present application is essentially 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, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, and other media that can store program code.
- first, second, etc. are used to distinguish between identical or similar items that have substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between “first”, “second”, and “nth”, nor is there any limitation on quantity or execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. The first image and the second image may both be images, and in some cases, may be separate and different images.
- the size of the serial number of each process does not mean the order of execution.
- the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
- the term "at least one” means one or more, and the term “plurality” means two or more.
- “plurality of second messages” means two or more second messages.
- system and “network” are often used interchangeably herein.
- if and “if” may be interpreted to mean “when” or “upon” or “in response to determining” or “in response to detecting.”
- phrases “if it is determined that ” or “if [stated condition or event] is detected” may be interpreted to mean “upon determining ” or “in response to determining ” or “upon detecting [stated condition or event]” or “in response to detecting [stated condition or event],” depending on the context.
- determining B based on A does not mean determining B based solely on A.
- B can also be determined based on A and/or other information.
- references throughout this specification to "one embodiment,” “an embodiment,” or “one possible implementation” mean that specific features, structures, or characteristics associated with that embodiment or implementation are included in at least one embodiment of the present application. Therefore, the appearance of "in one embodiment,” “in an embodiment,” or “one possible implementation” throughout this specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Time-Division Multiplex Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本申请要求于2024年01月29日提交的申请号为202410128460.6、发明名称为“一种数据复接传输的方法”的中国专利申请的优先权,以及2024年04月09日提交的申请号为202410425565.8、发明名称为“码块处理方法、装置、设备、系统、存储介质及程序产品”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to Chinese patent application No. 202410128460.6, filed on January 29, 2024, with the invention name “A method for data multiplexing and transmission”, and priority to Chinese patent application No. 202410425565.8, filed on April 9, 2024, with the invention name “Code block processing method, device, equipment, system, storage medium and program product”, the entire contents of which are incorporated by reference into this application.
本申请涉及通信技术领域,特别涉及码块处理方法、装置、设备、系统、存储介质及程序产品。The present application relates to the field of communication technology, and in particular to a code block processing method, apparatus, device, system, storage medium, and program product.
随着通信技术的发展,网络中可能存在不同传输速率的通道,例如,5千兆比特每秒(gigabits per second,Gbps)的低速通道或25Gbps的高速通道。因此,不同传输速率的通道之间存在对接问题,如何将多路低速通道的业务流复接到一路高速通道的业务流中是个亟待解决的问题。其中,复接也可称为聚合、汇聚或合并。With the advancement of communication technology, networks may contain channels with different transmission rates, such as a low-speed channel of 5 gigabits per second (Gbps) or a high-speed channel of 25 Gbps. Therefore, there are difficulties in interoperating channels with different transmission rates. How to multiplex the traffic flows of multiple low-speed channels into the traffic flow of a single high-speed channel is a pressing issue. Multiplexing can also be called aggregation, convergence, or merging.
本申请提供了一种码块处理方法、装置、设备、系统、存储介质及程序产品,用于将至少一路业务码块流复接为一路复接码块流进行处理。The present application provides a code block processing method, apparatus, device, system, storage medium and program product for multiplexing at least one service code block stream into one multiplexed code block stream for processing.
第一方面,提供了一种码块处理方法,该方法包括:获取至少一路业务码块流;基于至少一路业务码块流获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息,复接信息用于对复接码块流进行处理。In a first aspect, a code block processing method is provided, the method comprising: obtaining at least one business code block stream; obtaining a multiplexed code block stream based on the at least one business code block stream, the multiplexed code block stream comprising a mixed code block and a multiplexed code block, the mixed code block being a code block obtained by scheduling code blocks in at least one business code block stream according to a first scheduling ratio, the multiplexed code block carrying multiplexing information, and the multiplexing information being used to process the multiplexed code block stream.
该方法按照固定的调度比例来调度至少一路业务码块流中的码块,以根据调度的码块来获取复接码块流,实现了将至少一路业务码块流复接为一路复接码块流。由于直接以码块的粒度进行复接,因而复接过程无需封帧操作,避免了由封帧操作带来的带宽浪费,相比于比特粒度的复接,降低了复接过程的复杂度,提高了复接效率。此外,复接码块流中携带有复接信息,使得接收到复接码块流的节点均能够根据复接信息对复接码块流进行处理,提高了处理复接码块流的可靠性。This method schedules the code blocks in at least one service code block stream according to a fixed scheduling ratio to obtain a multiplexed code block stream based on the scheduled code blocks, thereby multiplexing at least one service code block stream into a multiplexed code block stream. Because multiplexing is performed directly at the code block granularity, the multiplexing process does not require a frame sealing operation, avoiding the bandwidth waste caused by the frame sealing operation. Compared with multiplexing at the bit granularity, this reduces the complexity of the multiplexing process and improves multiplexing efficiency. In addition, the multiplexed code block stream carries multiplexing information, allowing nodes receiving the multiplexed code block stream to process the multiplexed code block stream based on the multiplexing information, thereby improving the reliability of processing the multiplexed code block stream.
在一种可能的实施方式中,在按照第一调度比例调度至少一路业务码块流中的码块的过程中,如果第一业务码块流中包括的码块的第一数量小于调度第一业务码块流中的码块的第二数量,插入第三数量的占位码块。其中,第一业务码块流是至少一路业务码块流中的码块流,第三数量是第二数量与第一数量的差值。In one possible implementation, during scheduling of code blocks in at least one service code block stream according to a first scheduling ratio, if a first number of code blocks included in the first service code block stream is less than a second number of code blocks scheduled in the first service code block stream, a third number of placeholder code blocks is inserted. The first service code block stream is a code block stream in the at least one service code block stream, and the third number is the difference between the second number and the first number.
需要说明的是,上述第一业务码块流中包括的码块不包括已经调度的码块,也就是说,第一数量是第一业务码块流中包括的剩余码块的数量,或者,第一数量是指第一业务码块流中当前包括的码块的数量。第一业务码块流中包括的剩余码块或者第一业务码块流中当前包括的码块均可以是指第一业务码块流中除去已经被调度的码块之外的码块,也即未被调度的码块。It should be noted that the code blocks included in the first service code block stream do not include already scheduled code blocks. That is, the first number is the number of remaining code blocks included in the first service code block stream, or the first number refers to the number of code blocks currently included in the first service code block stream. The remaining code blocks included in the first service code block stream or the code blocks currently included in the first service code block stream can both refer to code blocks in the first service code block stream excluding already scheduled code blocks, that is, unscheduled code blocks.
由此,使得在业务码块流中的码块数量不满足第一调度比例下待调度的码块数量的情况下,通过插入占位码块的方式能够保证业务码块流之间的第一调度比例固定不变,进而能够保证基于第一调度比例进行的码块处理准确,例如,解复接过程中按照第一调度比例准确分解出业务码块流。As a result, when the number of code blocks in the service code block stream does not meet the number of code blocks to be scheduled under the first scheduling ratio, the first scheduling ratio between the service code block streams can be kept constant by inserting placeholder code blocks, thereby ensuring that the code block processing based on the first scheduling ratio is accurate. For example, the service code block stream is accurately decomposed according to the first scheduling ratio during the demultiplexing process.
在一种可能的实施方式中,获取至少一路业务码块流的方式可以包括,接收至少一路通道传输的码块流,至少一路通道传输的码块流包括第一码块流;删除第一码块流中的全部空闲码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。若调度的码块中包括空闲码块,则在转发过程中该调度的空闲码块可能因频偏调整需求被误删,进而导致调度的码块之间的第一调度比例被破坏,难以根据第一调度比例进行相应的码块处理,例如,根据第一调度比例解复接出业务码块流,该方式中通过将接收到的至少一路通道传输的码块流中的空闲码块全部删除,使得调度的码块中不包括空闲码块,进而避免该问题的发生。In one possible implementation, a method for obtaining at least one service code block stream may include receiving a code block stream transmitted by at least one channel, wherein the code block stream transmitted by at least one channel includes a first code block stream; deleting all idle code blocks in the first code block stream to obtain a first service code block stream, wherein the first service code block stream is a code block stream in at least one service code block stream. If the scheduled code blocks include idle code blocks, the scheduled idle code blocks may be mistakenly deleted during the forwarding process due to the need for frequency offset adjustment, thereby causing the first scheduling ratio between the scheduled code blocks to be destroyed, making it difficult to perform corresponding code block processing according to the first scheduling ratio. For example, the service code block stream is demultiplexed and connected according to the first scheduling ratio. In this method, all idle code blocks in the received code block stream transmitted by at least one channel are deleted, so that the scheduled code blocks do not include idle code blocks, thereby avoiding the occurrence of this problem.
在一种可能的实施方式中,该方法还包括:基于频率偏差在调度的码块中插入空闲码块,频率频差为用于传输复接码块流的节点之间存在的频率偏差。可选地,基于频率偏差在调度的码块中插入空闲码块可以包括,将调度的码块进行顺序传输,得到顺序传输的码块,在顺序传输的码块中插入空闲码块。In one possible implementation, the method further includes inserting idle code blocks into the scheduled code blocks based on a frequency deviation, where the frequency deviation is a frequency deviation between nodes used to transmit the multiplexed code block stream. Optionally, inserting idle code blocks into the scheduled code blocks based on the frequency deviation may include sequentially transmitting the scheduled code blocks to obtain sequentially transmitted code blocks, and inserting the idle code blocks into the sequentially transmitted code blocks.
在该方式中,通过插入空闲码块的方式,使得复接码块流支持进行频偏调整,能够满足节点之间的频偏调整需求。并且,在将接收到的至少一路通道传输的码块流中的空闲码块全部删除的情况下,此处按照频率偏差插入的空闲码块可以占用删除空闲码块所节省的带宽,进而避免插入空闲码块引入额外的带宽开销。This approach supports frequency offset adjustment in the multiplexed block stream by inserting idle blocks, meeting inter-node frequency offset adjustment requirements. Furthermore, if all idle blocks in the received block stream transmitted by at least one channel are deleted, the idle blocks inserted based on the frequency offset can occupy the bandwidth saved by deleting the idle blocks, thereby avoiding the additional bandwidth overhead introduced by inserting idle blocks.
在一种可能的实施方式中,空闲码块的数量为至少两个,至少两个空闲码块之间的汉明距离满足距离要求。通过采用汉明距离满足距离要求的至少两个空闲码块,使得在至少两个空闲码块中的任一空闲码块中的部分比特出错的情况下,能够根据至少两个空闲码块中的其他空闲码块区分出至少两个空闲码块,提高空闲码块的可靠性,降低空闲码块出错导致的复接码块流的处理失败的风险。In one possible implementation, there are at least two idle code blocks, and the Hamming distance between the at least two idle code blocks meets a distance requirement. By using at least two idle code blocks whose Hamming distance meets the distance requirement, if some bits in any of the at least two idle code blocks are erroneous, the at least two idle code blocks can be distinguished based on the other idle code blocks in the at least two idle code blocks, thereby improving the reliability of the idle code blocks and reducing the risk of processing failure of the multiplexed code block stream caused by idle code block errors.
在一种可能的实施方式中,混合码块中包括隐藏码块,该隐藏码块通过对至少一路业务码块流中的控制码块进行隐藏得到。其中,可以在调度至少一路业务码块流之前,对至少一路业务码块流中的控制码块进行隐藏;也可以在调度至少一路业务码块流之后,对至少一路业务码块流中的控制码块进行隐藏。通过隐藏至少一路业务码块流中的控制码块的方式,使得传输复接码块流的转发节点对至少一路业务码块流中的控制码块不可见,避免转发节点对业务码块流中的控制码块的错误处理。In one possible implementation, the mixed code block includes a hidden code block obtained by hiding a control code block in at least one service code block stream. The control code block in the at least one service code block stream can be hidden before scheduling the at least one service code block stream, or after scheduling the at least one service code block stream. By hiding the control code block in the at least one service code block stream, forwarding nodes transmitting the multiplexed code block stream are invisible to the control code blocks in the at least one service code block stream, thereby preventing the forwarding nodes from incorrectly processing the control code blocks in the service code block stream.
在一种可能的实施方式中,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中,第一开销码块用于提取复接码块流中的混合码块。其中,第一开销码块是灵活以太网中用于传输控制信息的码块,通过扩展第一开销码块来携带复接信息,避免了携带复接信息导致的额外码块开销,降低了携带复接信息的实现复杂度。In one possible implementation, the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block. The first overhead code block is used to extract the mixed code block from the multiplexing code block stream. The first overhead code block is a code block used to transmit control information in Flexible Ethernet. By extending the first overhead code block to carry the multiplexing information, the additional code block overhead incurred by carrying the multiplexing information is avoided, reducing the implementation complexity of carrying the multiplexing information.
在一种可能的实施方式中,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中;在该情况下,复接码块流中还包括第二开销码块,第二开销码块用于提取复接码块流中的复接指示码块和混合码块。由此,通过新增的复接指示码块来携带复接信息,使得复接信息能够在复接指示码块中跟随混合码块被转发处理。In one possible implementation, the multiplexing code block is a multiplexing indicator code block, and the multiplexing information is carried in a designated field of the multiplexing indicator code block. In this case, the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indicator code block and the mixed code block from the multiplexing code block stream. Thus, by using the newly added multiplexing indicator code block to carry the multiplexing information, the multiplexing information can be forwarded and processed along with the mixed code block in the multiplexing indicator code block.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到。也就是说,进行本次复接的业务码块流可以为复接后的码块流,使得该方法能够实现多次复接。In one possible implementation, the service block stream in the at least one service block stream is obtained by scheduling at least one sub-service block stream according to the second scheduling ratio. In other words, the service block stream for this multiplexing can be the multiplexed block stream, so that the method can achieve multiple multiplexing.
在一种可能的实施方式中,第一调度比例基于至少一路业务码块流的带宽或传输速率确定。使得至少一路业务码块流的带宽或传输速率与按照第一调度比例被调度的频次相匹配。In one possible implementation, the first scheduling ratio is determined based on the bandwidth or transmission rate of at least one service code block stream, so that the bandwidth or transmission rate of the at least one service code block stream matches the frequency scheduled according to the first scheduling ratio.
在一种可能的实施方式中,得到复接码块流之后,可以根据复接码块流的第一业务标识确定出端口,通过出端口发送复接码块流,复接码块流的传输速率大于至少一路业务码块流的传输速率。通过将至少一路业务码块流复接为一路复接码块流进行传输的方式,提高了至少一路业务码块流的传输速率,有效利用了出端口的大带宽,避免带宽浪费。In one possible implementation, after obtaining the multiplexed block stream, an egress port can be determined based on the first service identifier of the multiplexed block stream, and the multiplexed block stream can be transmitted through the egress port. The transmission rate of the multiplexed block stream is greater than the transmission rate of the at least one service block stream. By multiplexing the at least one service block stream into one multiplexed block stream for transmission, the transmission rate of the at least one service block stream is increased, effectively utilizing the large bandwidth of the egress port and avoiding bandwidth waste.
在一种可能的实施方式中,复接信息包括复接码块流的第一业务标识或调度信息中的至少一种,调度信息包括第一调度比例或至少一路业务码块流对应的第二业务标识中的至少一种。复接信息中包括的第一业务标识能够用于对复接码块流进行转发处理,复接信息中包括的调度信息能够用于对复接码块流进行解复接处理。通过在复接信息中携带第一业务标识或调度信息中的至少一种能够保证对复接码块流的处理更加可靠。In one possible implementation, the multiplexing information includes at least one of a first service identifier or scheduling information for the multiplexed code block stream, and the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream. The first service identifier included in the multiplexing information can be used to forward the multiplexed code block stream, and the scheduling information included in the multiplexing information can be used to demultiplex the multiplexed code block stream. Carrying at least one of the first service identifier or scheduling information in the multiplexing information ensures more reliable processing of the multiplexed code block stream.
第二方面,提供了一种码块处理方法,该方法包括:获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息;根据复接信息对复接码块流进行处理。In a second aspect, a code block processing method is provided, which includes: obtaining a multiplexed code block stream, the multiplexed code block stream including a mixed code block and a multiplexed code block, the mixed code block being a code block obtained by scheduling code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carrying multiplexing information; and processing the multiplexed code block stream according to the multiplexing information.
该方法中,在获取到复接码块流后,能够根据复接码块流中的复接码块携带的复接信息对复接码块流进行处理。由此,实现了将至少一路业务码块流复接为一路复接码块流进行处理,且通过复接信息确保了对复接码块流处理的准确性。In this method, after obtaining a multiplexed code block stream, the multiplexed code block stream can be processed according to the multiplexing information carried by the multiplexing code blocks in the multiplexed code block stream. This achieves the multiplexing of at least one service code block stream into a multiplexed code block stream for processing, and ensures the accuracy of the processing of the multiplexed code block stream through the multiplexing information.
在一种可能的实施方式中,复接信息包括调度信息,调度信息包括第一调度比例;根据复接信息对复接码块流进行处理可以包括,在复接码块流中提取出混合码块,按照第一调度比例从混合码块中解复接出至少一路业务码块流。由此,根据调度信息能够实现复接码块流的解复接。In one possible implementation, the multiplexing information includes scheduling information, which includes a first scheduling ratio. Processing the multiplexed code block stream based on the multiplexing information may include extracting mixed code blocks from the multiplexed code block stream and demultiplexing at least one service code block stream from the mixed code blocks according to the first scheduling ratio. Thus, demultiplexing of the multiplexed code block stream can be achieved based on the scheduling information.
在一种可能的实施方式中,复接信息包括调度信息,调度信息包括至少一路业务码块流对应的第二业务标识;根据复接信息对复接码块流进行处理可以包括,根据至少一路业务码块流对应的第二业务标识确定第一调度比例;在复接码块流中提取出混合码块,按照第一调度比例从混合码块中解复接出至少一路业务码块流。In one possible implementation, the multiplexing information includes scheduling information, and the scheduling information includes a second service identifier corresponding to at least one service code block stream; processing the multiplexed code block stream according to the multiplexing information may include determining a first scheduling ratio based on the second service identifier corresponding to at least one service code block stream; extracting a mixed code block from the multiplexed code block stream, and demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio.
在一种可能的实施方式中,按照第一调度比例从混合码块中解复接出至少一路业务码块流可以包括,在混合码块包括空闲码块的情况下,删除混合码块中的空闲码块;按照第一调度比例从删除空闲码块后的混合码块中解复接出至少一路业务码块流。通过删除混合码块中的空闲码块的方式,使得按照第一调度比例解复接出的业务码块流更准确。In one possible implementation, demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio may include, if the mixed code block includes idle code blocks, deleting the idle code blocks from the mixed code block; and demultiplexing at least one service code block stream from the mixed code block after deleting the idle code blocks according to the first scheduling ratio. By deleting the idle code blocks from the mixed code block, the service code block stream demultiplexed according to the first scheduling ratio is more accurate.
在一种可能的实施方式中,按照第一调度比例从混合码块中解复接出至少一路业务码块流可以包括,按照第一调度比例从混合码块中解复接出至少一路初始码块流,至少一路初始码块流包括第一初始码块流;在第一初始码块流包括占位码块的情况下,删除第一初始码块流中的占位码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。通过删除占位码块的方式,使得解复接出的业务码块流均为业务码块,解复接出的业务码块更加准确。In one possible implementation, demultiplexing at least one service code block stream from a mixed code block according to a first scheduling ratio may include: demultiplexing at least one initial code block stream from the mixed code block according to the first scheduling ratio, the at least one initial code block stream including a first initial code block stream; and, if the first initial code block stream includes placeholder code blocks, deleting the placeholder code blocks in the first initial code block stream to obtain a first service code block stream, the first service code block stream being a code block stream in the at least one service code block stream. By deleting the placeholder code blocks, the demultiplexed service code block streams are all service code blocks, and the demultiplexed service code blocks are more accurate.
在一种可能的实施方式中,混合码块中包括隐藏码块,在按照第一调度比例从混合码块中解复接出至少一路业务码块流的过程中,将隐藏码块还原为控制码块。通过还原控制码块的方式,使得解复接出的业务码块流没有发生改变。In one possible implementation, the mixed code block includes a concealed code block. During demultiplexing of at least one service code block stream from the mixed code block according to the first scheduling ratio, the concealed code block is restored to a control code block. By restoring the control code block, the demultiplexed service code block stream remains unchanged.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到,复接信息还包括第二调度比例;按照第一调度比例从混合码块中解复接出至少一路业务码块流之后,按照第二调度比例从业务码块流中解复接出至少一路子业务码块流。由此,通过复接信息还能实现多次解复接。In one possible implementation, the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio, and the multiplexing information also includes the second scheduling ratio. After demultiplexing the at least one service code block stream from the mixed code block according to the first scheduling ratio, the at least one sub-service code block stream is demultiplexed from the service code block stream according to the second scheduling ratio. Thus, multiple demultiplexing can be achieved using the multiplexing information.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到,复接信息还包括至少一路子业务码块流分别对应的第三业务标识;按照第一调度比例从混合码块中解复接出至少一路业务码块流之后,根据至少一路子业务码块流分别对应的第三业务标识确定第二调度比例;按照第二调度比例从业务码块流中解复接出至少一路子业务码块流。由此,通过复接信息还能实现多次解复接。In one possible implementation, the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio, and the multiplexing information further includes a third service identifier corresponding to each of the at least one sub-service code block streams. After demultiplexing the at least one service code block stream from the mixed code block according to the first scheduling ratio, a second scheduling ratio is determined based on the third service identifier corresponding to each of the at least one sub-service code block streams. At least one sub-service code block stream is demultiplexed from the service code block stream according to the second scheduling ratio. Thus, multiple demultiplexing can be achieved using the multiplexing information.
在一种可能的实施方式中,复接信息包括复接码块流的第一业务标识;根据复接信息对复接码块流进行处理可以包括,根据第一业务标识对复接码块流进行转发处理。由此,根据第一业务标识能够实现复接码块流的转发处理。In one possible implementation, the multiplexing information includes a first service identifier of the multiplexed code block stream; and processing the multiplexed code block stream according to the multiplexing information may include forwarding the multiplexed code block stream according to the first service identifier. Thus, forwarding the multiplexed code block stream can be achieved according to the first service identifier.
在一种可能的实施方式中,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中;根据第一业务标识对复接码块流进行转发处理可以包括,在入端口剥离复接码块流中的第一开销码块,得到混合码块;将混合码块发送至基于第一业务标识确定的出端口,在混合码块中插入第三开销码块后通过出端口发送,第三开销码块中携带复接信息。通过扩展第一开销码块实现了复接信息的携带,避免了携带复接信息导致的额外码块开销,降低了携带复接信息的实现复杂度。In one possible implementation, the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block. Forwarding the multiplexing code block stream based on the first service identifier may include stripping the first overhead code block from the multiplexing code block stream at an ingress port to obtain a mixed code block; sending the mixed code block to an egress port determined based on the first service identifier, inserting a third overhead code block into the mixed code block, and then sending the mixed code block through the egress port, the third overhead code block carrying the multiplexing information. By extending the first overhead code block, the multiplexing information is carried, avoiding the additional code block overhead caused by carrying the multiplexing information and reducing the implementation complexity of carrying the multiplexing information.
在一种可能的实施方式中,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中,复接码块流中还包括第二开销码块;根据第一业务标识对复接码块流进行转发处理可以包括,在入端口剥离复接码块流中的第二开销码块,得到包括复接指示码块和混合码块的混杂码块;将混杂码块发送至基于第一业务标识确定的出端口,在混杂码块中插入第四开销码块后通过出端口发送。通过复接指示码块实现了复接信息的携带,使得复接信息能够在复接指示码块中跟随混合码块被转发处理,进而避免复接信息由入端口到出端口的复制。In one possible implementation, the multiplexing code block is a multiplexing indicator code block, the multiplexing information is carried in a designated field of the multiplexing indicator code block, and the multiplexing code block stream also includes a second overhead code block; forwarding the multiplexing code block stream based on the first service identifier may include stripping the second overhead code block from the multiplexing code block stream at an ingress port to obtain a mixed code block including the multiplexing indicator code block and a mixed code block; sending the mixed code block to an egress port determined based on the first service identifier, inserting the fourth overhead code block into the mixed code block, and then sending the mixed code block through the egress port. The multiplexing information is carried by the multiplexing indicator code block, so that the multiplexing information can be forwarded and processed along with the mixed code block in the multiplexing indicator code block, thereby avoiding duplication of the multiplexing information from the ingress port to the egress port.
在一种可能的实施方式中,获取复接码块流可以包括,接收复接码块流,复接码块流还包括基于频率偏差插入的空闲码块;根据复接信息对复接码块流进行处理可以包括,基于频率偏差对复接码块流进行频偏调整。例如,当复接码块流的到达速率偏低时,通过插入idle码块来避免断流;当复接码块流的到达速率偏高时,通过删除复接码块流中的idle码块来避免码块积压。通过频偏调整使得复接码块流的转发速率与转发节点相适应。In one possible implementation, obtaining a multiplexed code block stream may include receiving a multiplexed code block stream, the multiplexed code block stream also including idle code blocks inserted based on a frequency deviation; and processing the multiplexed code block stream based on the multiplexing information may include adjusting the frequency deviation of the multiplexed code block stream based on the frequency deviation. For example, when the arrival rate of the multiplexed code block stream is low, idle code blocks may be inserted to avoid interruption; when the arrival rate of the multiplexed code block stream is high, idle code blocks may be deleted from the multiplexed code block stream to avoid code block backlog. The frequency deviation adjustment allows the forwarding rate of the multiplexed code block stream to adapt to the forwarding node.
第三方面,提供了一种码块处理装置,该装置包括:收发模块,用于执行第一方面或第一方面的任一种可能的实施方式中的接收和/或发送相关的操作;处理模块,用于执行第一方面或第一方面的任一种可能的实施方式中的接收和/或发送相关的操作之外的其它操作。或者,收发模块,用于执行第二方面或第二方面的任一种可能的实施方式中的接收和/或发送相关的操作;处理模块,用于执行第二方面或第二方面的任一种可能的实施方式中的接收和/或发送相关的操作之外的其它操作。In a third aspect, a code block processing device is provided, comprising: a transceiver module for performing operations related to reception and/or transmission in the first aspect or any possible implementation of the first aspect; and a processing module for performing operations other than the operations related to reception and/or transmission in the first aspect or any possible implementation of the first aspect. Alternatively, a transceiver module for performing operations related to reception and/or transmission in the second aspect or any possible implementation of the second aspect; and a processing module for performing operations other than the operations related to reception and/or transmission in the second aspect or any possible implementation of the second aspect.
在一种可能的实施方式中,收发模块包括接收模块和/或发送模块。接收模块用于执行接收相关的操作,发送模块用于执行发送相关的操作。In a possible implementation, the transceiver module includes a receiving module and/or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.
在收发模块,用于执行第一方面或第一方面的任一种可能的实施方式中的接收和/或发送相关的操作,处理模块,用于执行第一方面或第一方面的任一种可能的实施方式中的接收和/或发送相关的操作之外的其它操作的情况下,处理模块,用于获取至少一路业务码块流;基于至少一路业务码块流获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息,复接信息用于对复接码块流进行处理。In the case where the transceiver module is used to perform operations related to reception and/or transmission in the first aspect or any possible implementation of the first aspect, and the processing module is used to perform operations other than the operations related to reception and/or transmission in the first aspect or any possible implementation of the first aspect, the processing module is used to obtain at least one business code block stream; based on the at least one business code block stream, a multiplexed code block stream is obtained, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one business code block stream according to the first scheduling ratio, the multiplexed code block carries multiplexing information, and the multiplexing information is used to process the multiplexed code block stream.
在一种可能的实施方式中,处理模块,还用于在按照第一调度比例调度至少一路业务码块流中的码块的过程中,如果第一业务码块流中包括的码块的第一数量小于调度第一业务码块流中码块的第二数量,插入第三数量的占位码块,其中,第一业务码块流是至少一路业务码块流中的码块流,第三数量是第二数量与第一数量的差值。In one possible embodiment, the processing module is further used to insert a third number of placeholder code blocks if a first number of code blocks included in the first business code block stream is less than a second number of code blocks scheduled in the first business code block stream during a process of scheduling code blocks in at least one business code block stream according to a first scheduling ratio, wherein the first business code block stream is a code block stream in at least one business code block stream, and the third number is the difference between the second number and the first number.
在一种可能的实施方式中,收发模块,用于接收至少一路通道传输的码块流,至少一路通道传输的码块流包括第一码块流;处理模块,用于删除第一码块流中的全部空闲码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。In one possible implementation, a transceiver module is configured to receive a code block stream transmitted by at least one channel, wherein the code block stream transmitted by at least one channel includes a first code block stream; and a processing module is configured to delete all idle code blocks in the first code block stream to obtain a first service code block stream, wherein the first service code block stream is a code block stream in the at least one service code block stream.
在一种可能的实施方式中,处理模块,还用于基于频率偏差在调度的码块中插入空闲码块,频率频差为用于传输复接码块流的节点之间存在的频率偏差,空闲码块的数量为至少两个,至少两个空闲码块之间的汉明距离满足距离要求。In one possible embodiment, the processing module is also used to insert idle code blocks in the scheduled code blocks based on the frequency deviation, where the frequency deviation is the frequency deviation between the nodes used to transmit the multiplexed code block stream, the number of idle code blocks is at least two, and the Hamming distance between at least two idle code blocks meets the distance requirement.
在一种可能的实施方式中,混合码块中包括隐藏码块,隐藏码块通过对至少一路业务码块流中的控制码块进行隐藏得到。In a possible implementation, the mixed code block includes a hidden code block, and the hidden code block is obtained by hiding a control code block in at least one service code block stream.
在一种可能的实施方式中,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中,第一开销码块用于提取复接码块流中的混合码块。In a possible implementation, the multiplexed code block is a first overhead code block, the multiplexing information is carried in a reserved field of the first overhead code block, and the first overhead code block is used to extract a mixed code block from the multiplexed code block stream.
在一种可能的实施方式中,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中,复接码块流中还包括第二开销码块,第二开销码块用于提取复接码块流中的复接指示码块和混合码块。In one possible implementation, the multiplexing code block is a multiplexing indication code block, the multiplexing information is carried in a designated field of the multiplexing indication code block, and the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indication code block and the mixed code block in the multiplexing code block stream.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到。In a possible implementation manner, the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to the second scheduling ratio.
在一种可能的实施方式中,第一调度比例基于至少一路业务码块流的带宽或传输速率确定。In a possible implementation, the first scheduling ratio is determined based on the bandwidth or transmission rate of at least one service code block flow.
在一种可能的实施方式中,收发模块,还用于根据复接码块流的第一业务标识确定出端口,通过出端口发送复接码块流,复接码块流的传输速率大于至少一路业务码块流的传输速率。In a possible implementation, the transceiver module is further configured to determine an egress port based on the first service identifier of the multiplexed code block stream, and send the multiplexed code block stream through the egress port, wherein the transmission rate of the multiplexed code block stream is greater than the transmission rate of at least one service code block stream.
在一种可能的实施方式中,复接信息包括复接码块流的第一业务标识或调度信息中的至少一种,调度信息包括第一调度比例或至少一路业务码块流对应的第二业务标识中的至少一种。In a possible implementation, the multiplexing information includes at least one of a first service identifier or scheduling information of the multiplexed code block stream, and the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream.
在收发模块,用于执行第二方面或第二方面的任一种可能的实施方式中的接收和/或发送相关的操作,处理模块,用于执行第二方面或第二方面的任一种可能的实施方式中的接收和/或发送相关的操作之外的其它操作的情况下,处理模块,用于获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息;根据复接信息对复接码块流进行处理。In the case where the transceiver module is used to perform operations related to reception and/or transmission in the second aspect or any possible implementation of the second aspect, and the processing module is used to perform operations other than the operations related to reception and/or transmission in the second aspect or any possible implementation of the second aspect, the processing module is used to obtain a multiplexed code block stream, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information; the multiplexed code block stream is processed according to the multiplexing information.
在一种可能的实施方式中,复接信息包括调度信息,调度信息包括第一调度比例;处理模块,用于在复接码块流中提取出混合码块,按照第一调度比例从混合码块中解复接出至少一路业务码块流。In one possible implementation, the multiplexing information includes scheduling information, and the scheduling information includes a first scheduling ratio; the processing module is used to extract a mixed code block from the multiplexed code block stream, and demultiplex at least one service code block stream from the mixed code block according to the first scheduling ratio.
在一种可能的实施方式中,处理模块,用于在混合码块包括空闲码块的情况下,删除混合码块中的空闲码块;按照第一调度比例从删除空闲码块后的混合码块中解复接出至少一路业务码块流。In one possible implementation, the processing module is configured to, when the mixed code block includes an idle code block, delete the idle code block in the mixed code block; and demultiplex at least one service code block stream from the mixed code block after the idle code block is deleted according to the first scheduling ratio.
在一种可能的实施方式中,处理模块,用于按照第一调度比例从混合码块中解复接出至少一路初始码块流,至少一路初始码块流包括第一初始码块流;在第一初始码块流包括占位码块的情况下,删除第一初始码块流中的占位码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。In one possible implementation, a processing module is configured to demultiplex at least one initial code block stream from a mixed code block according to a first scheduling ratio, wherein the at least one initial code block stream includes a first initial code block stream; and when the first initial code block stream includes placeholder code blocks, delete the placeholder code blocks in the first initial code block stream to obtain a first service code block stream, wherein the first service code block stream is a code block stream in the at least one service code block stream.
在一种可能的实施方式中,混合码块中包括隐藏码块,在按照第一调度比例从混合码块中解复接出至少一路业务码块流的过程中,将隐藏码块还原为控制码块。In a possible implementation, the mixed code block includes a hidden code block, and in the process of demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio, the hidden code block is restored to a control code block.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到,调度信息中还包括第二调度比例;处理模块,还用于按照第二调度比例从业务码块流中解复接出至少一路子业务码块流。In one possible implementation, the service code block stream in at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio, and the scheduling information also includes the second scheduling ratio; the processing module is also used to demultiplex at least one sub-service code block stream from the service code block stream according to the second scheduling ratio.
在一种可能的实施方式中,复接信息包括复接码块流的第一业务标识;处理模块,用于根据第一业务标识对复接码块流进行转发处理。In a possible implementation, the multiplexing information includes a first service identifier of the multiplexed code block stream; and the processing module is configured to perform forwarding processing on the multiplexed code block stream according to the first service identifier.
在一种可能的实施方式中,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中;处理模块,用于在入端口剥离复接码块流中的第一开销码块,得到混合码块;收发模块,用于将混合码块发送至基于第一业务标识确定的出端口,并在插入第三开销码块后通过出端口发送,第三开销码块中携带复接信息。In one possible implementation, the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block; the processing module is used to strip the first overhead code block in the multiplexing code block stream at the input port to obtain a mixed code block; the transceiver module is used to send the mixed code block to the output port determined based on the first service identifier, and send it through the output port after inserting a third overhead code block, where the third overhead code block carries the multiplexing information.
在一种可能的实施方式中,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中,复接码块流还包括第二开销码块;处理模块,用于在入端口剥离复接码块流中的第二开销码块,得到复接指示码块和混合码块;收发模块,用于将复接指示码块和混合码块发送至基于第一业务标识确定的出端口,并在插入第四开销码块后通过出端口发送。In one possible implementation, the multiplexing code block is a multiplexing indication code block, the multiplexing information is carried in a designated field of the multiplexing indication code block, and the multiplexing code block stream also includes a second overhead code block; the processing module is used to strip off the second overhead code block in the multiplexing code block stream at the input port to obtain a multiplexing indication code block and a mixed code block; the transceiver module is used to send the multiplexing indication code block and the mixed code block to the output port determined based on the first service identifier, and send them through the output port after inserting the fourth overhead code block.
在一种可能的实施方式中,收发模块,用于接收复接码块流,复接码块流还包括基于频率偏差插入的空闲码块;处理模块,用于基于频率偏差对复接码块流进行频偏调整。In a possible implementation, the transceiver module is configured to receive a multiplexed code block stream, which further includes idle code blocks inserted based on a frequency deviation; and the processing module is configured to perform frequency deviation adjustment on the multiplexed code block stream based on the frequency deviation.
第四方面,提供了一种网络设备,该网络设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条程序指令或代码,所述至少一条程序指令或代码由所述处理器加载并执行,以使所述网络设备实现如上第一方面或第二方面任一所述的码块处理方法。In a fourth aspect, a network device is provided, comprising: a processor, the processor being coupled to a memory, the memory storing at least one program instruction or code, the at least one program instruction or code being loaded and executed by the processor, so that the network device implements the code block processing method described in any one of the first or second aspects above.
可选地,所述处理器为一个或多个,所述存储器为一个或多个。Optionally, there are one or more processors and one or more memories.
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.
第五方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该通信装置执行第一方面或第一方面的任一种可能的实施方式中的码块处理方法,或者执行第二方面或第二方面的任一种可能的实施方式中的码块处理方法。In a fifth aspect, a communication device is provided, comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path; the memory is used to store instructions; the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and to control the transceiver to send signals; and when the processor executes the instructions stored in the memory, the communication device executes the code block processing method according to the first aspect or any possible implementation of the first aspect, or executes the code block processing method according to the second aspect or any possible implementation of the second aspect.
第六方面,提供了一种码块处理系统,所述码块处理系统包括第一通信装置和第二通信装置;In a sixth aspect, a code block processing system is provided, the code block processing system comprising a first communication device and a second communication device;
所述第一通信装置用于执行所述第一方面或第一方面的任一种可能的实现方式所述的码块处理方法,所述第二通信装置用于执行所述第二方面或第二方面的任一种可能的实现方式所述的码块处理方法。The first communication device is used to execute the code block processing method described in the first aspect or any possible implementation of the first aspect, and the second communication device is used to execute the code block processing method described in the second aspect or any possible implementation of the second aspect.
第七方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以使计算机实现上述第一方面或第一方面的任一种可能的实施方式中的码块处理方法,或者实现上述第二方面或第二方面的任一种可能的实施方式中的码块处理方法。In the seventh aspect, a computer-readable storage medium is provided, wherein the storage medium stores at least one instruction, and the instruction is loaded and executed by a processor to enable the computer to implement the code block processing method in the above-mentioned first aspect or any possible implementation of the first aspect, or to implement the code block processing method in the above-mentioned second aspect or any possible implementation of the second aspect.
第八方面,提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述各方面中的码块处理方法。In an eighth aspect, a computer program (product) is provided, which includes: computer program code, which, when executed by a computer, enables the computer to execute the code block processing method in the above aspects.
第九方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的码块处理方法。In a ninth aspect, a chip is provided, comprising a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes the code block processing method in the above aspects.
第十方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的码块处理方法。In the tenth aspect, another chip is provided, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the code block processing method in the above aspects.
应当理解的是,本申请的第二方面至第十方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。It should be understood that the beneficial effects achieved by the technical solutions of the second to tenth aspects of this application and the corresponding possible implementation methods can be referred to the technical effects of the first aspect and its corresponding possible implementation methods mentioned above, and will not be repeated here.
图1为本申请实施例提供的一种开放系统互连(open system interconnect,OSI)模型和灵活以太网(flexible Ethernet,FlexE)框架的示意图;FIG1 is a schematic diagram of an open system interconnection (OSI) model and a flexible Ethernet (FlexE) framework provided in an embodiment of the present application;
图2为本申请实施例提供的一种技术切片分组网(slicing packet network,SPN)网络的传输示意图;FIG2 is a transmission diagram of a slicing packet network (SPN) provided by an embodiment of the present application;
图3为相关技术提供的一种大小粒度通道对接的示意图;FIG3 is a schematic diagram of a large- and small-size channel docking provided by the related art;
图4为本申请实施例提供的一种大小粒度通道对接的示意图;FIG4 is a schematic diagram of a large- and small-size channel docking according to an embodiment of the present application;
图5为相关技术提供的一种小颗粒城域传输网络(fine grain MTN,fgMTN)中的数据复接过程的示意图;FIG5 is a schematic diagram of a data multiplexing process in a fine grain MTN (fgMTN) provided by the related art;
图6为本申请实施例提供的一种复接传输过程的示意图;FIG6 is a schematic diagram of a multiplexing transmission process provided in an embodiment of the present application;
图7为本申请实施例提供的一种网络设备的结构示意图;FIG7 is a schematic diagram of the structure of a network device provided in an embodiment of the present application;
图8为本申请实施例提供的一种复接模块和解复接模块的部署示意图;FIG8 is a schematic diagram of the deployment of a multiplexing module and a demultiplexing module provided in an embodiment of the present application;
图9为本申请实施例提供的一种码块处理方法的流程图;FIG9 is a flowchart of a code block processing method provided in an embodiment of the present application;
图10为本申请实施例提供的一种占位码块的格式示意图;FIG10 is a schematic diagram of a format of a placeholder code block provided in an embodiment of the present application;
图11为本申请实施例提供的另一种占位码块的格式示意图;FIG11 is a schematic diagram of the format of another placeholder code block provided in an embodiment of the present application;
图12为本申请实施例提供的一种空闲码块的格式示意图;FIG12 is a schematic diagram of a format of an idle code block provided in an embodiment of the present application;
图13为本申请实施例提供的另一种空闲码块的格式示意图;FIG13 is a schematic diagram of the format of another idle code block provided in an embodiment of the present application;
图14为本申请实施例提供的一种第一开销码块的格式示意图;FIG14 is a schematic diagram of the format of a first overhead code block provided in an embodiment of the present application;
图15为本申请实施例提供的一种复接指示码块的格式示意图;FIG15 is a schematic diagram of the format of a multiplexing indication code block provided in an embodiment of the present application;
图16为本申请实施例提供的另一种复接指示码块的格式示意图;FIG16 is a schematic diagram of the format of another multiplexing indication code block provided in an embodiment of the present application;
图17为本申请实施例提供的一种复接处理过程的系统框图;FIG17 is a system block diagram of a multiplexing process provided by an embodiment of the present application;
图18为本申请实施例提供的一种复接处理过程的流程图;FIG18 is a flowchart of a multiplexing process provided by an embodiment of the present application;
图19为本申请实施例提供的另一种码块处理方法的流程图;FIG19 is a flowchart of another code block processing method provided in an embodiment of the present application;
图20为本申请实施例提供的一种转发处理过程的系统框图;FIG20 is a system block diagram of a forwarding processing process provided by an embodiment of the present application;
图21为本申请实施例提供的一种转发处理过程的流程图;FIG21 is a flowchart of a forwarding process provided by an embodiment of the present application;
图22为本申请实施例提供的一种解复接处理过程的系统框图;FIG22 is a system block diagram of a demultiplexing process provided by an embodiment of the present application;
图23为本申请实施例提供的一种解复接处理过程的流程图;FIG23 is a flowchart of a demultiplexing process provided by an embodiment of the present application;
图24为本申请实施例提供的一种复接处理过程和解复接处理过程的系统框图;FIG24 is a system block diagram of a multiplexing process and a demultiplexing process provided by an embodiment of the present application;
图25为本申请实施例提供的一种多次复接过程的场景示意图;FIG25 is a schematic diagram of a scenario of a multiple-reconnection process provided by an embodiment of the present application;
图26为本申请实施例提供的一种业务标识的格式示意图;FIG26 is a schematic diagram of a format of a service identifier provided in an embodiment of the present application;
图27为本申请实施例提供的一种码块处理装置的结构示意图;FIG27 is a schematic structural diagram of a code block processing device provided in an embodiment of the present application;
图28为本申请实施例提供的一种网络设备的结构示意图;FIG28 is a schematic diagram of the structure of a network device provided in an embodiment of the present application;
图29为本申请实施例提供的另一种网络设备的结构示意图。Figure 29 is a structural diagram of another network device provided in an embodiment of the present application.
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
在通信技术领域,传输通道的传输速率不断提高,使得通信网络中可能存在不同传输速率的通道之间的对接问题。以FlexE技术为例,FlexE技术是对传统以太网的轻量级增强,能够实现业务隔离和网络切片。通过FlexE技术可以将以太网接口的带宽切分为多个承载数据的时隙(slot),不同slot之间硬隔离,slot也可称为通道。In the field of communications technology, the transmission rates of transmission channels continue to increase, which can lead to problems connecting channels with different transmission rates within a communication network. For example, FlexE technology is a lightweight enhancement to traditional Ethernet that enables service isolation and network slicing. FlexE technology divides the bandwidth of an Ethernet interface into multiple data-carrying time slots, providing hard isolation between different slots. These slots can also be called channels.
如图1所示,在OSI模型中,从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。应用层是用户直接接触的层,提供了各种网络服务和应用。表示层负责数据的格式化和转换,确保不同系统的数据能够正确解释和理解,处理数据加密和压缩。会话层管理不同主机之间的会话,建立、维护和结束通信连接,确保数据的可靠传输。传输层负责端到端的通信,提供数据分段、流量控制、错误恢复等功能。网络层负责数据的路由和转发,将数据包从源主机传输到目标主机。数据链路层将原始比特流组织成帧,通过物理地址标识设备,物理地址即媒体接入控制(medium access control,MAC)地址,数据链路层可以称为MAC层。As shown in Figure 1, the OSI model consists of the physical layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer, from lowest to highest. The application layer is the layer that users directly interact with and provides various network services and applications. The presentation layer is responsible for data formatting and conversion, ensuring that data from different systems can be correctly interpreted and understood, and handles data encryption and compression. The session layer manages sessions between different hosts, establishing, maintaining, and terminating communication connections to ensure reliable data transmission. The transport layer is responsible for end-to-end communication and provides functions such as data segmentation, flow control, and error recovery. The network layer is responsible for data routing and forwarding, transmitting data packets from the source host to the destination host. The data link layer organizes the raw bit stream into frames and identifies devices using physical addresses, which are media access control (MAC) addresses. The data link layer can also be called the MAC layer.
物理(physical,PHY)层是网络的最底层,负责传输原始的比特流,将数据从一个设备传输到另一个设备,涉及电压、光信号等物理特性。物理层包括物理编码子层(physical coding sublayer,PCS)、物理媒介适配层(physical medium attachment,PMA)和物理介质相关子层(physical media dependent,PMD)。PCS主要包括线路编码和循环冗余校验(cyclic redundancy check,CRC)编码;PMA中集成了SERDES,SERDES是一个串并转换器,主要用于串行化和解串;PMD实现光电/电光转换。The physical (PHY) layer is the lowest layer of the network, responsible for transmitting the raw bit stream and transferring data from one device to another. It involves physical characteristics such as voltage and optical signals. The physical layer includes the physical coding sublayer (PCS), the physical medium attachment (PMA), and the physical medium dependent (PMD). The PCS primarily includes line coding and cyclic redundancy check (CRC) encoding; the PMA integrates the SERDES, a serial-to-parallel converter primarily used for serialization and deserialization; and the PMD implements optical-to-electrical/electrical-to-optical conversion.
FlexE技术的核心功能通过在以太网L2层与L1层之间新增的中间层FlexE夹层(shim)来实现,FlexE shim也称为L1.5层,L2层即数据链路层,L1层即物理层。参见图1,FlexE shim可以将多个以太网接口组合在一起构成FlexE组(group),以太网接口用PHY来表示,即FlexE group包括PHY1-PHYm,m为大于2的正整数。FlexE shim可以将FlexE group中的每个PHY按照时分复用(time division multiplexing,TDM)方式划分为多个slot,每个PHY所对应的一组slot被称为一个日历(calendar)。FlexE客户端(client)原始数据流中的以太网帧按照数据块(block)为单位进行切分,例如,64比特(bit,b)/66b编码的数据块。切分后的数据块可以通过FlexE shim分发到FlexE group中的某些PHY的某些slot上。每个FlexE client可以指定独占某一个或多个slot,从而获得确定的带宽分配,实现与其它FlexE client之间无冲突、硬隔离以及确定性地传输。The core functionality of FlexE technology is implemented through the FlexE shim, a new intermediate layer between the Ethernet L2 and L1 layers. The FlexE shim is also known as the L1.5 layer. The L2 layer is the data link layer, and the L1 layer is the physical layer. As shown in Figure 1, the FlexE shim combines multiple Ethernet interfaces into a FlexE group. Ethernet interfaces are represented by PHYs. A FlexE group consists of PHY1 through PHYm, where m is a positive integer greater than 2. The FlexE shim divides each PHY in a FlexE group into multiple slots using time division multiplexing (TDM). The group of slots corresponding to each PHY is called a calendar. The Ethernet frames in the original data stream of the FlexE client are segmented into data blocks, for example, 64-bit/66-bit encoded data blocks. The segmented data blocks can be distributed through the FlexE shim to specific slots of specific PHYs in the FlexE group. Each FlexE client can specify one or more slots to exclusively occupy, thereby obtaining a certain bandwidth allocation and achieving conflict-free, hard isolation and deterministic transmission with other FlexE clients.
对于在FlexE技术基础上发展出来的网络,例如,SPN或者城域传输网络(metro transport network,MTN)。在对以太网接口进行FlexE切片的基础上,进一步增加了FlexE通道交叉功能以及动态灵活的操作管理维护(operation administration and maintenance,OAM)能力,从而实现了从网络入口到网络出口创建端到端的资源独享的传输通道,即端到端网络切片。其中,FlexE通道交叉功能也就是通道L1.5层转发功能,指在以太网物理层基于bit block进行转发,省去了传统L2/L3层转发中先将L1层码块恢复成报文,再进行报文转发,再把报文转换成码块的处理过程,从而降低了转发时延,L3层即网络层。For networks developed based on FlexE technology, such as SPNs or metropolitan transport networks (MTNs), FlexE channel cross-connection functionality and dynamic and flexible operation, administration, and maintenance (OAM) capabilities are added to Ethernet interfaces based on FlexE slicing. This enables the creation of end-to-end, resource-exclusive transmission channels from network ingress to egress, i.e., end-to-end network slicing. The FlexE channel cross-connection function, also known as the channel L1.5 layer forwarding function, refers to bit block-based forwarding at the Ethernet physical layer. This eliminates the traditional L2/L3 forwarding process of first restoring L1 layer code blocks to packets, then forwarding the packets, and then converting the packets back to code blocks, thereby reducing forwarding latency. The L3 layer is the network layer.
示例性地,对于100吉比特以太网(gigabit ethernet,GE)的以太网接口,FlexE可以切分为20个slot,每个slot所对应的带宽为5千兆比特每秒(gigabits per second,Gbps)。如图2所示的SPN网络包括边缘节点、骨干节点和边缘节点,节点之间通过PHY group连接,PHY group中包括多个5Gbps通道。每个网络节点基于5Gbps通道可以实现L1.5层转发功能。For example, for a 100 Gigabit Ethernet (GE) Ethernet interface, FlexE can be divided into 20 slots, each with a bandwidth of 5 Gigabits per second (Gbps). The SPN network shown in Figure 2 includes edge nodes, backbone nodes, and edge nodes. The nodes are connected via PHY groups, each containing multiple 5 Gbps channels. Each network node can implement Layer 1.5 forwarding based on these 5 Gbps channels.
随着以太网接口向800GE/1.6太比特以太网(terabit ethernet,TE)迈进,FlexE切片粒度也从5Gbps向25Gbps甚至是100Gbps粒度提升。800GE/1.6TE的大带宽接口往往首先应用在骨干节点,而其它边缘节点则在很长一段时间内继续维持使用100GE/200GE/400GE的小带宽接口并保持5Gbps切片粒度。由此,导致在SPN/MTN网络中存在两种不同规格的通道(即5Gbps通道和25Gbps通道)的对接问题。As Ethernet interfaces advance toward 800GE/1.6 terabit Ethernet (TE), FlexE slicing granularity is increasing from 5Gbps to 25Gbps and even 100Gbps. 800GE/1.6TE high-bandwidth interfaces are often deployed primarily in backbone nodes, while other edge nodes continue to use 100GE/200GE/400GE low-bandwidth interfaces and maintain 5Gbps slicing granularity for a long time. This leads to the problem of interoperating two different channel specifications (5Gbps and 25Gbps) in SPN/MTN networks.
相关技术中,采用归一到基本粒度(或最小粒度)的方式解决了大小粒度通道之间的对接问题。如图3所示,以基本粒度为5Gbps通道为例,即使骨干节点在大带宽接口下采用了25Gbps的FlexE切片粒度,但是为了与5Gbps通道对接,进一步将25Gbps通道细分成多个5Gbps通道,从而实现每个5Gbps的业务在全网端到端独占一个5Gbps的硬通道,即全网以5Gbps粒度的小通道贯通。Related technologies solve the problem of interoperability between large and small granularity channels by normalizing to a basic granularity (or minimum granularity). As shown in Figure 3, taking a 5Gbps channel as an example, even if a backbone node uses a 25Gbps FlexE slice granularity for a high-bandwidth interface, in order to interface with the 5Gbps channel, the 25Gbps channel is further subdivided into multiple 5Gbps channels. This ensures that each 5Gbps service occupies a dedicated 5Gbps hard channel across the entire network end-to-end, meaning that the entire network is connected by small channels with a 5Gbps granularity.
但是,该相关技术需要在骨干节点解析出每个5Gbps的业务,然后针对每个5Gbps业务进行交换转发。因此,骨干节点需要面临大量的通道交叉和连接管理,从而使得骨干节点的规模成为了全网规模瓶颈,进而限制了全网的接入容量。也就是说,虽然解决了大小粒度通道的对接问题,但导致了骨干节点的运维管理规模过大的问题。However, this technology requires backbone nodes to parse each 5Gbps service and then perform switching and forwarding for each 5Gbps service. Consequently, backbone nodes face a significant amount of channel crosstalk and connection management, making the scale of backbone nodes a bottleneck for overall network capacity and, in turn, limiting access capacity. While this solves the problem of connecting large and small granularity channels, it also leads to an excessively large scale of backbone node operations and management.
除了上述大小粒度通道的对接问题之外,随着SPN网络规模的快速增长,也导致在骨干节点形成大量的5Gbps通道连接,给骨干节点的网络运维管理带来了挑战。因此,需要将多条同路径的业务通道复接为单条业务通道,从而降低骨干节点的通道交叉管理规模。In addition to the aforementioned issues with interoperating large and small granularity channels, the rapid growth of SPN networks has also led to the formation of a large number of 5Gbps channel connections at backbone nodes, posing challenges to network operation and maintenance management at backbone nodes. Therefore, it is necessary to multiplex multiple service channels along the same path into a single service channel to reduce the cross-channel management scale at backbone nodes.
如图4所示,网络入口的边缘节点将多个低速通道的业务(例如5Gbps通道)复接到单个高速通道(例如25Gbps),骨干节点通过高速通道进行L1.5层转发,网络出口的边缘节点从单个高速通道中解复接出多个低速通道的业务。其中,复接(multiplexing)可以另外称作聚合、汇聚或合并,是指至少一路低速业务聚合成一路高速业务,或者是让多个低速业务复用单个高速业务所属的传输资源或处理资源。解复接(demultiplexing)可以另外称作解聚合、解汇聚或拆分,解复接是复接的逆过程,是指从单个高速业务中分解恢复出至少一路低速业务。As shown in Figure 4, the edge node at the network entrance multiplexes the services of multiple low-speed channels (for example, 5Gbps channels) into a single high-speed channel (for example, 25Gbps). The backbone node performs L1.5 layer forwarding through the high-speed channel, and the edge node at the network exit demultiplexes the services of multiple low-speed channels from the single high-speed channel. Multiplexing can also be referred to as aggregation, convergence, or merging, which means aggregating at least one low-speed service into one high-speed service, or allowing multiple low-speed services to reuse the transmission resources or processing resources belonging to a single high-speed service. Demultiplexing can also be referred to as deaggregation, deconvergence, or splitting. Demultiplexing is the reverse process of multiplexing, which means decomposing and recovering at least one low-speed service from a single high-speed service.
在fgMTN中使用了复接技术,fgMTN将MTN中的5Gbps通道进一步细分成480个10Mbps的细通道,剩余的200Mbps的带宽用作开销,fgMTN在480个10Mbps通道与单个5Gbps通道之间进行复接和解复接。fgMTN的复接过程如图5所示,在每次复接过程中,每个10Mbps的业务提供两个经过64b/66b编码的码块,也就是码块的长度固定为66bit,即480个10Mbps业务合计提供960个66bit码块,960个66bit码块正好可以装载到990个数据(data block,D)码块的64bit负载(payload)域中。其中,D码块包括66bit,首2bit为码块头,后面64bit为payload域。fgMTN utilizes multiplexing technology. It further subdivides the 5Gbps channel in the MTN into 480 10Mbps channels. The remaining 200Mbps of bandwidth is used as overhead. fgMTN multiplexes and demultiplexes the 480 10Mbps channels with the single 5Gbps channel. The fgMTN multiplexing process is shown in Figure 5. During each multiplexing process, each 10Mbps service provides two 64b/66b-encoded blocks, with a fixed block length of 66 bits. This means that the 480 10Mbps services provide a total of 960 66-bit blocks, which fit neatly into the 64-bit payload field of 990 data (D) blocks. A D block consists of 66 bits, with the first two bits forming the block header and the remaining 64 bits forming the payload field.
在960个66bit码块顺序放入990个D码块的64bit payload域中后,在装载后的990个D码块的头部和尾部分别添加1个开始(start,S)码块和1个结束(tail,T)码块。其中,S码块表示一个以太帧的开始,T码块表示一个以太帧的结束。由此,通过装载封帧,将来自480个10Mbps业务的码块隐藏在990个数据码块中,构成一个固定的S+990*D+T的码块组合,该码块组合也被称为一个复接帧。复接帧可以被看成单个以太网业务通过5Gbps通道传输,即5Gbps通道对所承载的码块究竟是来自于单个业务还是多个业务并不感知。After 960 66-bit code blocks are sequentially placed in the 64-bit payload field of 990 D code blocks, a start (S) code block and a tail (T) code block are added to the head and tail of the loaded 990 D code blocks respectively. Among them, the S code block indicates the beginning of an Ethernet frame, and the T code block indicates the end of an Ethernet frame. Thus, by loading the encapsulation frame, the code blocks from 480 10Mbps services are hidden in 990 data code blocks, forming a fixed S+990*D+T code block combination, which is also called a multiplex frame. The multiplex frame can be regarded as a single Ethernet service transmitted through a 5Gbps channel, that is, the 5Gbps channel is not aware of whether the code blocks it carries are from a single service or multiple services.
但是,fgMTN使用的复接技术中,每个业务的66bit长度的码块被装载到了复接帧的D码块的64bit payload域,由于长度不匹配,因此每个业务的码块与复接帧的D码块不是一一对应的。导致在复接时需要在复接帧中进行bit粒度的拼接,而在解复接时需要从复接帧中滑动取bit来恢复各个业务的码块。从而带来高的处理复杂度和大的缓存开销。此外,在封帧过程中,由于引入了64bit payload装载、S码块和T7码块,从而导致较高的带宽开销,使得单个5Gbps通道只能支持480个10Mbps通道的复接,浪费了200Mbps带宽。However, in the multiplexing technology used by fgMTN, the 66-bit code block for each service is loaded into the 64-bit payload field of the D code block of the multiplexing frame. Due to the length mismatch, the code block for each service does not correspond one-to-one with the D code block of the multiplexing frame. This results in the need for bit-granular splicing within the multiplexing frame during multiplexing, and the need to slide bits from the multiplexing frame to recover the code blocks for each service during demultiplexing. This results in high processing complexity and large buffering overhead. In addition, the introduction of 64-bit payload loading, S code blocks, and T7 code blocks during the frame encapsulation process results in high bandwidth overhead, resulting in a single 5Gbps channel supporting only the multiplexing of 480 10Mbps channels, wasting 200Mbps of bandwidth.
本申请实施例提供了一种码块处理方法,发送端节点无需进行装载封帧,能够将至少一路低速业务数据复接成一路高速业务数据进行传输,从而降低中间转发节点的处理规模,并且在接收端节点可以解复接出各路低速业务数据。示例性地,如图6所示,先通过复接的方法将至少一路业务的码块流合流成一路码块流,然后送往传输/处理单元,至少一路业务的码块流复用同一个传输/处理单元,处理完后再通过解复接的方法恢复出各路业务的码块流。The embodiment of the present application provides a code block processing method, in which the sending end node does not need to load and seal frames, and can multiplex at least one low-speed service data into one high-speed service data for transmission, thereby reducing the processing scale of the intermediate forwarding node, and can demultiplex the low-speed service data at the receiving end node. For example, as shown in Figure 6, the code block streams of at least one service are first merged into one code block stream by a multiplexing method, and then sent to a transmission/processing unit. The code block streams of at least one service are multiplexed in the same transmission/processing unit. After processing, the code block streams of each service are restored by a demultiplexing method.
其中,该数据传输方法可以应用于任意的至少一路数据合并处理的场景,例如,上述SPN/MTN网络中不同规格的传输通道对接场景,或者,至少一路码块被送往单个输入输出接口的解码器进行解码的场景,或者,至少一路固定大小的照片被送往某个图形处理器进行处理然后原路返回的场景等。以地铁闸机的图像识别场景为例,多个闸机通过汇聚交换机向单个图形处理器发送人脸照片进行处理,汇聚交换机将来自多个闸机的人脸照片复接处理成一路照片流,网络对一路照片流进行转发处理,图形处理器对一路照片流进行解复接处理,恢复出每个闸机的人脸照片再进行图像识别。This data transmission method can be applied to any scenario where at least one data stream is merged and processed, such as the interconnection of transmission channels of different specifications in the aforementioned SPN/MTN network, or the scenario where at least one code block is sent to a decoder of a single input/output interface for decoding, or the scenario where at least one fixed-size photo is sent to a graphics processor for processing and then returned along the same route. Taking the image recognition scenario of subway gates as an example, multiple gates send facial photos to a single graphics processor for processing via a convergence switch. The convergence switch multiplexes the facial photos from multiple gates into a single photo stream. The network forwards the photo stream, and the graphics processor demultiplexes the photo stream, recovering the facial photos of each gate for image recognition.
在该方法应用于上述SPN/MTN网络的场景下。继续参见图1,在FlexE复接场景下,MAC层与FlexE shim之间还可以包括FlexE复接层,FlexE复接层将多路低速业务码块流复接为一路高速业务码块流,再由FlexE shim直接对高速业务码块流进行处理。In the scenario where this method is applied to the aforementioned SPN/MTN network, referring to Figure 1, in the FlexE multiplexing scenario, a FlexE multiplexing layer may be included between the MAC layer and the FlexE shim. The FlexE multiplexing layer multiplexes multiple low-speed service code block streams into a single high-speed service code block stream, which is then directly processed by the FlexE shim.
本申请实施例提供的码块处理方法可以由通信装置执行。通信装置可以是交换机、路由器等网络设备,例如下述图7或图8所示的网络设备;也可以是网络设备上的一部分组件,组件可以是网络设备上的单板、线卡,也可以是网络设备上的一个功能模块,例如,图7所示的接口板或主控交换板,或者,图8所示的复接模块或解复接模块;还可以是用于实现本申请方法的芯片,本申请实施例不做具体限定。当通信装置是芯片时,用于实现该方法的收发模块例如可以是芯片的接口电路,处理模块可以是芯片中具有处理功能的处理电路。通信装置之间的连接方式包括但不限于通过以太网线或光缆直接连接。The code block processing method provided in the embodiment of the present application can be executed by a communication device. The communication device can be a network device such as a switch, a router, etc., such as the network device shown in Figure 7 or Figure 8 below; it can also be a component of the network device, and the component can be a single board or line card on the network device, or a functional module on the network device, such as the interface board or main control switch board shown in Figure 7, or the multiplexing module or demultiplexing module shown in Figure 8; it can also be a chip used to implement the method of the present application, and the embodiment of the present application does not make specific limitations. When the communication device is a chip, the transceiver module used to implement the method can be, for example, the interface circuit of the chip, and the processing module can be a processing circuit with processing functions in the chip. The connection method between communication devices includes but is not limited to direct connection via Ethernet cable or optical cable.
参见图7,图7为本申请实施例提供的一种网络设备的示意图。该网络设备包括接口板和主控交换板,接口板包括客户侧接口芯片和网络侧接口芯片,主控交换板包括交换网芯片。其中,接口板用于提供各种业务接口并实现数据包的转发,主控交换板用于对网络设备中各个组件的控制和管理,实现不同业务接口之间的管道交叉。图7所示的网络设备可以用于执行本申请实施例提供的数据传输方法,该网络设备可以为图2-图4中的任一节点,例如边缘节点或者骨干节点。如图7所示,该网络设备可以为SPN/MTN网络中的盒式或者框式的交换机或者路由器,复接/解复接模块可以通过升级或者替换接口板的方式进行部署,具体而言是通过软件升级接口芯片或者硬件刷新现场可编程门阵列(field-programmable gate array,FPGA)逻辑,从而支持复接/解复接的功能。其中,复接模块用于实现复接处理,解复接模块用于实现解复接处理。Refer to Figure 7, which is a schematic diagram of a network device provided in an embodiment of the present application. The network device includes an interface board and a main control switch board. The interface board includes a client-side interface chip and a network-side interface chip, and the main control switch board includes a switching network chip. The interface board is used to provide various service interfaces and implement data packet forwarding, and the main control switch board is used to control and manage various components in the network device and implement pipe crossing between different service interfaces. The network device shown in Figure 7 can be used to execute the data transmission method provided in an embodiment of the present application. The network device can be any node in Figures 2-4, such as an edge node or a backbone node. As shown in Figure 7, the network device can be a box-type or frame-type switch or router in an SPN/MTN network. The multiplexing/demultiplexing module can be deployed by upgrading or replacing the interface board. Specifically, by upgrading the interface chip through software or refreshing the field-programmable gate array (FPGA) logic through hardware, thereby supporting the multiplexing/demultiplexing functions. The multiplexing module is used to implement multiplexing processing, and the demultiplexing module is used to implement demultiplexing processing.
可选地,复接/解复接模块既可以部署在网络设备的入口,也可以部署在网络设备的出口,还可以在入口和出口同时部署。其中,入口可以是指入端口,出口可以是指出端口。示例性地,如图8(a)所示,复接模块部署在网络设备的入口。入口侧的多个FlexE模块获取低速的至少一路低速业务码块流,通过复接模块将至少一路业务码块流合流为一路高速业务码块流,然后送往通道交叉模块进行L1.5层转发。这种先合流后交叉的方式,可以降低L1.5层转发过程中通道交叉的业务数目,即降低了交叉规模,减少了转发表项。如图8(b)所示,解复接模块部署在网络设备的入口。入口侧的FlexE模块获取一路高速业务码块流,通过解复接模块恢复出至少一路低速业务码块流,进而至少一路低速业务码块流分别进行交叉转发,送往网络设备的不同的目的端口。Optionally, the multiplexing/demultiplexing module can be deployed at the inlet or the outlet of the network device, or at both the inlet and the outlet. The inlet can be an inbound port, and the outlet can be an outbound port. For example, as shown in FIG8(a), the multiplexing module is deployed at the inlet of the network device. Multiple FlexE modules on the inlet side obtain at least one low-speed service code block stream, and the multiplexing module combines the at least one service code block stream into a high-speed service code block stream, which is then sent to the channel cross-connect module for L1.5 layer forwarding. This method of combining first and then cross-connecting can reduce the number of services that cross channels during the L1.5 layer forwarding process, thereby reducing the cross-connection scale and the number of forwarding table entries. As shown in FIG8(b), the demultiplexing module is deployed at the inlet of the network device. The FlexE module on the inlet side obtains a high-speed service code block stream, and the demultiplexing module recovers at least one low-speed service code block stream. The at least one low-speed service code block stream is then cross-forwarded separately and sent to different destination ports of the network device.
如图8(c)所示,复接模块部署在网络设备的出口,即在至少一路低速业务码块流分别进行通道交叉送往同一个出端口后,将至少一路低速业务码块流合流为一路高速业务码块流,通过FlexE大带宽通道进行传输。如图8(d)所示,解复接模块部署在网络设备的出口,即高速业务码块流先完成通道交叉后到达同一个出端口,然后在高速业务码块流中拆分出各路低速业务码块流,分别通过FlexE小带宽通道进行传输。除了图8所示的四种部署方法之外,还可以在入口侧和出口侧同时部署复用单元或解复用单元,或者网络中的一部分网络设备在入口侧或出口侧部署复用模块,另一部分网络设备在入口侧或出口侧部署解复用模块。As shown in Figure 8(c), the multiplexing module is deployed at the egress of the network device. This means that after at least one low-speed service code block stream is cross-channeled and sent to the same egress port, the at least one low-speed service code block stream is merged into a high-speed service code block stream and transmitted via the FlexE high-bandwidth channel. As shown in Figure 8(d), the demultiplexing module is deployed at the egress of the network device. This means that the high-speed service code block stream first completes channel cross-channeling before arriving at the same egress port. The high-speed service code block stream is then split into individual low-speed service code block streams and transmitted separately via the FlexE low-bandwidth channel. In addition to the four deployment methods shown in Figure 8, multiplexing units or demultiplexing units can also be deployed simultaneously on both the ingress and egress sides. Alternatively, some network devices in the network can deploy multiplexing modules on the ingress or egress side, while other network devices can deploy demultiplexing modules on the ingress or egress side.
参见图9,图9为本申请实施例提供的一种数据传输方法的流程图。以第一通信装置执行该方法为例进行说明,第一通信装置可以为图7或图8所示的网络设备。如图9所示,该码块处理方法包括但不限于如下步骤901和步骤902。See Figure 9, which is a flowchart of a data transmission method provided in an embodiment of the present application. This method is described using a first communication device executing the method as an example. The first communication device may be the network device shown in Figure 7 or Figure 8. As shown in Figure 9, the code block processing method includes, but is not limited to, the following steps 901 and 902.
步骤901,获取至少一路业务码块流。Step 901: Obtain at least one service code block stream.
在本申请实施例中,至少一路业务码块流的任一业务码块流包括顺序排列的多个码块,码块是在以太网的物理层链路传递的数据单元,码块的编码方式包括但不限于8b/10b、64b/66b、256b/257b或512b/513b等定长码块的比特块编码方式。可选地,至少一路业务码块流的获取方式可以包括,通过多个或单个通道接收来自至少一个业务的至少一路业务码块流,或者,通过上层应用针对至少一个业务生成至少一路业务码块流。In an embodiment of the present application, any one of the at least one service code block streams includes a plurality of code blocks arranged in sequence. A code block is a data unit transmitted over an Ethernet physical layer link. The encoding method of the code block includes, but is not limited to, a bit block encoding method of a fixed-length code block such as 8b/10b, 64b/66b, 256b/257b, or 512b/513b. Optionally, the at least one service code block stream may be obtained by receiving the at least one service code block stream from the at least one service via multiple or single channels, or by generating the at least one service code block stream for the at least one service via an upper-layer application.
在一种可能的实施方式中,至少一路业务码块流的传输速率之和小于或等于第一通信装置的传输通道的传输速率。示例性地,以至少一路业务码块流是3路业务码块流为例,若第一通信装置的传输通道为20Gbps时隙,则3路业务码块流分别对应的传输速率可以为5Gbps、10Gbps、5Gbps,或者,3路业务码块流分别对应的传输速率可以为5Gbps、5Gbps、5Gbps;若第一通信装置的传输通道为5Gbps时隙,则3路业务码块流分别对应的传输速率为2Gbps、1Gbps、1Gbps。In one possible implementation, the sum of the transmission rates of at least one service code block stream is less than or equal to the transmission rate of the transmission channel of the first communication device. For example, taking the at least one service code block stream as three service code block streams, if the transmission channel of the first communication device is a 20 Gbps time slot, the transmission rates corresponding to the three service code block streams may be 5 Gbps, 10 Gbps, and 5 Gbps, respectively. Alternatively, the transmission rates corresponding to the three service code block streams may be 5 Gbps, 5 Gbps, and 5 Gbps, respectively. If the transmission channel of the first communication device is a 5 Gbps time slot, the transmission rates corresponding to the three service code block streams are 2 Gbps, 1 Gbps, and 1 Gbps, respectively.
步骤902,基于至少一路业务码块流获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息,复接信息用于对复接码块流进行处理。Step 902: Obtain a multiplexed code block stream based on at least one service code block stream. The multiplexed code block stream includes mixed code blocks and multiplexed code blocks. The mixed code blocks are code blocks obtained by scheduling code blocks in at least one service code block stream according to a first scheduling ratio. The multiplexed code blocks carry multiplexing information, and the multiplexing information is used to process the multiplexed code block stream.
在本申请实施例中,第一调度比例可以根据至少一路业务码块流之间的带宽或传输速率确定,使得至少一路业务码块流的带宽或传输速率与根据第一调度比例被调度的频次相匹配。例如,3路业务码块流的传输速率分别为5Gbps、10Gbps、5Gbps,则3路业务码块流之间的第一调度比例为1:2:1。按照第一调度比例调度至少一路业务码块流中的码块,也就是分别调度第1路业务码块流中的1个码块、第2路业务码块流中的2个码块、第3路业务码块流中的1个码块,并重复这种调度过程。由于调度的码块的顺序决定至少一路业务码块流之间的复接模式,因此,第一调度比例固定,则复接码块流中的至少一路业务码块流之间的复接模式固定。示例性地,第一调度比例为1:2:1,则复接模式为1:2:1。In an embodiment of the present application, the first scheduling ratio can be determined based on the bandwidth or transmission rate between at least one business code block stream, so that the bandwidth or transmission rate of at least one business code block stream matches the frequency scheduled according to the first scheduling ratio. For example, the transmission rates of three business code block streams are 5Gbps, 10Gbps, and 5Gbps, respectively, then the first scheduling ratio between the three business code block streams is 1:2:1. The code blocks in at least one business code block stream are scheduled according to the first scheduling ratio, that is, 1 code block in the first business code block stream, 2 code blocks in the second business code block stream, and 1 code block in the third business code block stream are scheduled respectively, and this scheduling process is repeated. Since the order of the scheduled code blocks determines the multiplexing mode between at least one business code block stream, if the first scheduling ratio is fixed, then the multiplexing mode between at least one business code block stream in the multiplexed code block stream is fixed. Exemplarily, if the first scheduling ratio is 1:2:1, then the multiplexing mode is 1:2:1.
其中,在按照第一调度比例调度至少一路业务码块流中的码块的过程中,如果第一业务码块流中包括的码块的第一数量小于调度第一业务码块流中码块的第二数量,插入第三数量的占位码块,其中,第一业务码块流是至少一路业务码块流中的码块流,第三数量是第二数量与第一数量的差值。需要说明的是,上述第一业务码块流中包括的码块不包括已经调度的码块,也就是说,第一数量是第一业务码块流中包括的剩余码块的数量,或者,第一数量是指第一业务码块流中当前包括的码块的数量。第一业务码块流中包括的剩余码块或者第一业务码块流中当前包括的码块均可以是指第一业务码块流中除去已经被调度的码块之外的码块,也即未被调度的码块。例如,第一业务码块流中包括10个码块,有3个码块已经被调度过了,剩余码块是7个,则第一数量是7,如果第二数量是8,则第三数量是1,插入1个占位码块。In the process of scheduling the code blocks in at least one business code block stream according to the first scheduling ratio, if the first number of code blocks included in the first business code block stream is less than the second number of code blocks in the scheduled first business code block stream, a third number of placeholder code blocks is inserted, wherein the first business code block stream is the code block stream in at least one business code block stream, and the third number is the difference between the second number and the first number. It should be noted that the code blocks included in the above-mentioned first business code block stream do not include the code blocks that have been scheduled, that is, the first number is the number of remaining code blocks included in the first business code block stream, or the first number refers to the number of code blocks currently included in the first business code block stream. The remaining code blocks included in the first business code block stream or the code blocks currently included in the first business code block stream can refer to the code blocks in the first business code block stream excluding the code blocks that have been scheduled, that is, the code blocks that have not been scheduled. For example, the first service code block stream includes 10 code blocks, 3 code blocks have been adjusted, and the remaining code blocks are 7. The first number is 7. If the second number is 8, the third number is 1, and 1 placeholder code block is inserted.
由此,使得在任一业务码块流中的码块数量不满足第一调度比例下待调度的码块数量的情况下,能够通过插入占位码块的方式保证至少一路业务码块流之间的第一调度比例固定不变,进而能够保证基于第一调度比例进行的码块处理准确,例如,解复接过程中能够按照第一调度比例准确分解出业务码块流。As a result, when the number of code blocks in any business code block stream does not meet the number of code blocks to be scheduled under the first scheduling ratio, the first scheduling ratio between at least one business code block stream can be kept constant by inserting placeholder code blocks, thereby ensuring that the code block processing based on the first scheduling ratio is accurate. For example, the business code block stream can be accurately decomposed according to the first scheduling ratio during the demultiplexing process.
示例性地,在按照1:2:1调度3路业务码块流中的码块过程中,若第1路业务码块流中包括1个码块,则调度出第1路业务码块流中的1个码块;若第2路业务码块流中包括1个码块,则调度出第2路业务码块流中的1个码块,并插入1个占位码块,该1个占位码块起到代替第2路业务码块流中的1个码块的作用;若第3路业务码块流中包括1个码块,则调度出第3路业务码块流中的1个码块;继续,若第1路业务码块流中包括1个码块,则调度出第1路业务码块流中的1个码块;若第2路业务码块流中包括2个码块,则调度出第2路业务码块流中的2个码块;若第3路业务码块流中没有码块,则插入1个占位码块,该1个占位码块起到代替第3路业务码块流中的1个码块的作用。按照该调度方式持续对至少一路业务码块流中的码块进行调度。For example, in the process of scheduling code blocks in 3 service code block streams according to 1:2:1, if the first service code block stream includes 1 code block, then 1 code block in the first service code block stream is scheduled; if the second service code block stream includes 1 code block, then 1 code block in the second service code block stream is scheduled, and 1 placeholder code block is inserted, and the placeholder code block plays the role of replacing 1 code block in the second service code block stream; if the third service code block stream includes If the first service code block stream contains one code block, one code block in the third service code block stream is scheduled. Continuing, if the first service code block stream contains one code block, one code block in the first service code block stream is scheduled. If the second service code block stream contains two code blocks, two code blocks in the second service code block stream are scheduled. If the third service code block stream contains no code blocks, one placeholder code block is inserted to replace one code block in the third service code block stream. Code blocks in at least one service code block stream are continuously scheduled according to this scheduling method.
在一种可能的实施方式中,至少一路业务码块流中的码块分别放入至少一个码块队列中,按照第一调度比例调度至少一路业务码块流中的码块,即是按照第一调度比例从至少一个码块队列中调度码块。在按照第一调度比例调度至少一个码块队列中的码块的过程中,若该次调度任一码块队列中的码块时,该任一码块队列中没有码块,则插入一个占位码块。In one possible implementation, code blocks in at least one service code block stream are respectively placed in at least one code block queue, and the code blocks in the at least one service code block stream are scheduled according to a first scheduling ratio, that is, code blocks are scheduled from the at least one code block queue according to the first scheduling ratio. During the process of scheduling code blocks in the at least one code block queue according to the first scheduling ratio, if any code block queue does not contain any code block during the scheduling, a placeholder code block is inserted.
可选地,占位码块的码块类型与业务码块流中的码块类型相同。本申请实施例以64b/66b比特块编码方式为例进行说明,即本申请实施例涉及的码块均为64b/66b比特块。在64b/66b比特块中,首部的2个bit为同步头(synchronization head,SH)比特,后64bit即为净荷比特,可以用于承载净荷数据等。Optionally, the code block type of the placeholder code block is the same as the code block type in the service code block stream. The embodiment of the present application uses the 64b/66b bit block encoding method as an example for explanation, that is, the code blocks involved in the embodiment of the present application are all 64b/66b bit blocks. In a 64b/66b bit block, the first two bits are synchronization header (SH) bits, and the last 64 bits are payload bits, which can be used to carry payload data, etc.
其中,同步头为“01”代表后64bit都是数据,即后64bit为8个8bit的数据字节;同步头为“10”代表后64bit是数据和控制信息的混合,其中紧挨着同步头的8bit是类型域,类型域后面的56bit是负载(payload)域,payload域是控制信息或数据的混合。例如,类型域的字段取值为0x1E时,该56bit包括8个大小为7bit的控制字节,每个控制字节用于携带一个控制信息;类型域的字段取值为0x4B时,该56bit包括3个大小为8bit的数据字节、4bit的命令(order,O)字节以及4个大小为7bit的控制字节,每个数据字节用于携带数据信息,每个控制字节用于携带控制信息。Among them, if the synchronization header is "01", it means that the last 64 bits are all data, that is, the last 64 bits are 8 8-bit data bytes; if the synchronization header is "10", it means that the last 64 bits are a mixture of data and control information, where the 8 bits immediately following the synchronization header are the type field, and the 56 bits following the type field are the payload field, which is a mixture of control information or data. For example, when the field value of the type field is 0x1E, the 56 bits include 8 7-bit control bytes, each of which is used to carry a piece of control information; when the field value of the type field is 0x4B, the 56 bits include 3 8-bit data bytes, a 4-bit command (order, O) byte, and 4 7-bit control bytes, each of which is used to carry data information, and each control byte is used to carry control information.
本申请实施例不对占位码块的格式进行限定,能够与现有的控制码块相区分即可。例如,占位码块的格式示意图可以如图10所示。其中,同步头为“10”,8bit的类型域为0x1E表示该占位码块的类型为控制(control,C)码块,8个大小为7bit的控制字节的取值均为0x09,由此,通过定义0x1E与8个0x09的取值可以保证该C码块的唯一性,即保证该占位码块的唯一性。The embodiment of the present application does not limit the format of the placeholder code block, and it only needs to be distinguishable from the existing control code block. For example, a schematic diagram of the format of the placeholder code block can be shown in Figure 10. Among them, the synchronization header is "10", the 8-bit type field is 0x1E, indicating that the type of the placeholder code block is a control (control, C) code block, and the values of the 8 control bytes of 7 bits are all 0x09. Therefore, by defining the values of 0x1E and 8 0x09s, the uniqueness of the C code block can be guaranteed, that is, the uniqueness of the placeholder code block can be guaranteed.
或者,占位码块的格式示意图也可以如图11所示。其中,同步头为“10”,8bit的类型域为0x4B表示该占位码块的类型为O码块,0x9是一个新定义的O编码(code)的取值,由此,通过定义0x4B与0x9两个取值可以保证该O码块的唯一性,即保证该占位码块的唯一性。可选地,3个大小为8bit的数据字节中,前1个数据字节即第11-18bit取值为0x00,后两个数据字节作为保留(reserve,res)字段,用于后续需要时携带其他数据信息;最后4个大小为7bit的控制字节,即最后28bit的取值为0x000_0000。Alternatively, the format diagram of the placeholder code block can also be shown in Figure 11. Among them, the synchronization header is "10", the 8-bit type field is 0x4B, indicating that the type of the placeholder code block is an O code block, and 0x9 is a newly defined O code value. Therefore, by defining the two values 0x4B and 0x9, the uniqueness of the O code block can be guaranteed, that is, the uniqueness of the placeholder code block can be guaranteed. Optionally, of the three 8-bit data bytes, the first data byte, that is, the 11th to 18th bits, has a value of 0x00, and the last two data bytes are reserved (res) fields, which are used to carry other data information when needed later; the last four 7-bit control bytes, that is, the last 28 bits, have a value of 0x000_0000.
在通过上述调度方式调度得到码块后,即可根据调度的码块获取混合码块。可选地,根据调度的码块获取混合码块的方式包括但不限于如下几种。After the code blocks are obtained through the above scheduling method, the mixed code blocks can be obtained according to the scheduled code blocks. Optionally, the methods of obtaining the mixed code blocks according to the scheduled code blocks include but are not limited to the following.
方式一,直接将调度的码块作为混合码块。Method 1: directly use the scheduled code blocks as mixed code blocks.
在该方式一下,直接将从至少一路业务码块流中调度出来的码块作为混合码块。例如,将调度的码块进行顺序传输,将顺序传输的码块作为混合码块。混合码块中包括的是按照第一调度比例排序的业务码块,或者,混合码块中包括的是按照第一调度比例排序的业务码块和占位码块。该方式操作简单,易于实施。示例性地,按照上述调度过程,调度的码块分别为第1路业务码块流中的码块11、第2路业务码块流中的码块21和占位码块、第3路业务码块流中的码块31、第1路业务码块流中的码块12、第2路业务码块流中的码块22和码块23、第3路业务码块流中的占位码块。则混合码块包括码块11、码块21、占位码块、码块31、码块12、码块22、码块23和占位码块。In this method, code blocks scheduled from at least one service code block stream are directly used as mixed code blocks. For example, the scheduled code blocks are transmitted sequentially, and the sequentially transmitted code blocks are used as mixed code blocks. The mixed code blocks include service code blocks sorted according to the first scheduling ratio, or the mixed code blocks include service code blocks and placeholder code blocks sorted according to the first scheduling ratio. This method is simple to operate and easy to implement. For example, according to the above scheduling process, the scheduled code blocks are code block 11 in the first service code block stream, code block 21 and placeholder code blocks in the second service code block stream, code block 31 in the third service code block stream, code block 12 in the first service code block stream, code block 22 and code block 23 in the second service code block stream, and placeholder code blocks in the third service code block stream. The mixed code blocks then include code block 11, code block 21, placeholder code blocks, code block 31, code block 12, code block 22, code block 23, and placeholder code blocks.
方式二,基于频率偏差在调度的码块中插入空闲码块,频率频差为用于传输复接码块流的节点之间存在的频率偏差。In the second method, idle code blocks are inserted into the scheduled code blocks based on the frequency deviation, where the frequency deviation is the frequency deviation between nodes used to transmit the multiplexed code block stream.
其中,节点是指传输网络中的任一网络设备,例如图2-图4所示的边缘节点或者骨干节点,第一通信装置即为网络中的一个节点。由于以太网的节点之间允许存在一定的频率偏差,频率偏差可以简称为频偏,例如,50GE/100GE/200GE/400GE以太网接口所允许的最大频偏为±100百万分之一(part per million,ppm)。因此,码块流需要具备一定的伸缩能力,即能够支持增或删少量的空闲(idle)码块,来适应节点之间因频偏引起的带宽偏差。将上述由于节点之间的频率差异等原因导致的删除和/或增加idle码块的需求,简称为频偏调整需求。换句话说,由于频偏调整需求,节点需要删除和/或增加idle码块。因此,通过在拼接后的码块流中插入idle码块的方式,使得混合码块能够支持增或删idle码块,也即使得混合码块支持进行频偏调整,能够满足节点之间的频偏调整需求。A node refers to any network device in a transmission network, such as an edge node or backbone node as shown in Figures 2-4 . The first communication device is a node in the network. Since Ethernet nodes are allowed to have a certain frequency deviation, frequency deviation can be simply referred to as frequency deviation. For example, the maximum frequency deviation allowed by 50GE/100GE/200GE/400GE Ethernet interfaces is ±100 parts per million (ppm). Therefore, the code block stream needs to have a certain degree of scalability, that is, it can support the addition or deletion of a small number of idle code blocks to accommodate bandwidth deviations caused by frequency deviation between nodes. The need to delete and/or add idle code blocks due to factors such as frequency differences between nodes is simply referred to as frequency deviation adjustment requirement. In other words, due to the frequency deviation adjustment requirement, nodes need to delete and/or add idle code blocks. Therefore, by inserting idle code blocks into the spliced code block stream, the mixed code block can support the addition or deletion of idle code blocks, that is, the mixed code block supports frequency deviation adjustment, which can meet the frequency deviation adjustment requirement between nodes.
示例性地,当发送端的发送速率比接收端的发送速率快时,接收端的缓存数据写入速率会比读取速率快,长期以往造成缓存溢出,因此接收端需要通过删除idle码块的方式避免接收端缓存溢出。当发送端的发送速率比接收端的发送速率慢时,接收端的缓存写入速率会比读取速率慢,长期以往会造成缓存读空,因此接收端需要通过增加idle码块的方式避免接收端缓存读空。For example, when the sender's sending rate is faster than the receiver's, the receiver's cache data write rate will be faster than the read rate, causing a buffer overflow in the long run. Therefore, the receiver needs to remove idle code blocks to prevent the receiver's cache from overflowing. When the sender's sending rate is slower than the receiver's sending rate, the receiver's cache write rate will be slower than the read rate, causing a buffer empty in the long run. Therefore, the receiver needs to add idle code blocks to prevent the receiver's cache from emptying.
在一种可能的实施方式中,基于频率偏差在调度的码块中插入idle码块,得到混合码块。其中,基于频率偏差在顺序传输的码块流中插入idle码的方式可以包括,基于频率偏差确定插入周期;按照插入周期在调度的码块流中插入idle码。由此,混合码块中除了包括按照第一调度比例排序的业务码块和/或占位码块之外,还包括基于频率偏差插入的idle码块。可选地,基于频率偏差在调度的码块中插入idle码块可以包括,将调度的码块进行顺序传输,得到顺序传输的码块,在顺序传输的码块中插入idle码块。In one possible implementation, an idle code block is inserted into a scheduled code block based on a frequency deviation to obtain a mixed code block. The method of inserting an idle code into a sequentially transmitted code block stream based on a frequency deviation may include determining an insertion period based on a frequency deviation; and inserting an idle code into the scheduled code block stream according to the insertion period. Thus, in addition to the service code blocks and/or placeholder code blocks sorted according to the first scheduling ratio, the mixed code block also includes an idle code block inserted based on a frequency deviation. Optionally, inserting an idle code block into a scheduled code block based on a frequency deviation may include sequentially transmitting the scheduled code blocks to obtain sequentially transmitted code blocks, and inserting an idle code block into the sequentially transmitted code blocks.
其中,基于频率偏差确定插入周期,即根据节点间的频偏调整需求确定插入周期。也就是说,混合码块中的插入的idle码块的数量足够进行频偏调整即可,过多会导致带宽的浪费,过少会导致频偏调整失败。示例性地,当节点之间频偏为±100ppm时,则idle码块的插入周期可以为200/1000000=1/5000,按照插入周期插入idle码,即可以是每间隔4999*i个码块插入i个idle码块,i=1、2、3…等正整数。可选地,idle码块插入的位置本申请实施例不做限定,例如,idle码块的插入位置需在一个T码块之后。Among them, the insertion period is determined based on the frequency deviation, that is, the insertion period is determined according to the frequency deviation adjustment requirements between nodes. In other words, the number of idle code blocks inserted in the mixed code block is sufficient for frequency deviation adjustment. Too many will lead to bandwidth waste, and too few will cause frequency deviation adjustment failure. Exemplarily, when the frequency deviation between nodes is ±100ppm, the insertion period of the idle code block can be 200/1000000=1/5000, and the idle code is inserted according to the insertion period, that is, i idle code blocks can be inserted every 4999*i code blocks, i=1, 2, 3... and other positive integers. Optionally, the position of the idle code block insertion is not limited in the embodiment of the present application. For example, the insertion position of the idle code block needs to be after a T code block.
在一种可能的实施方式中,获取至少一路业务码块流的方式可以包括,接收至少一路通道传输的码块流,至少一路通道传输的码块流包括第一码块流;删除第一码块流中的全部idle码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。由此,删除至少一路通道传输的码块流的每一路码块流中的全部idle码块,可以得到至少一路业务码块流。由于上述频偏调整需求,接收的至少一路通道传输的码块流可能是已经插入idle码块的码块流,但是为保证至少一路通道传输的码块流之间的复接模式固定,使得至少一路通道传输的码块流中的idle码块不能用于频偏调整,因为一旦删或增idle码块会导致复接模式错误,进而导致解复接出错。In one possible embodiment, a method for obtaining at least one business code block stream may include receiving a code block stream transmitted by at least one channel, wherein the code block stream transmitted by at least one channel includes a first code block stream; deleting all idle code blocks in the first code block stream to obtain a first business code block stream, wherein the first business code block stream is a code block stream in at least one business code block stream. Thus, by deleting all idle code blocks in each code block stream of the code block stream transmitted by at least one channel, at least one business code block stream can be obtained. Due to the above-mentioned frequency offset adjustment requirement, the code block stream transmitted by at least one channel received may be a code block stream into which idle code blocks have been inserted. However, in order to ensure that the multiplexing mode between the code block streams transmitted by at least one channel is fixed, the idle code blocks in the code block stream transmitted by at least one channel cannot be used for frequency offset adjustment, because once the idle code blocks are deleted or added, the multiplexing mode error will be caused, which will further cause a demultiplexing error.
因此,本申请实施例将原本接收到的至少一路通道传输的码块流中的idle码块全部删除,再按照频偏调整需求插入idle码块,既能保证复接模式固定,又能满足频偏调整需求。由于基于频率偏差插入的idle码块可以占用删除idle码块所节省的带宽,因而还能避免额外带宽开销的引入,即复接码块流所需插入idle码块的开销是通过从业务码块流中删除idle码块而挤出来的,不需要额外提供插入idle码块的开销。可选地,本申请实施例也可以删除第一码块流中的部分idle码块。在删除部分idle码块的情况下,还可以将第一码块流中未删除的idle码块进行隐藏,避免未删除的idle码块在传输过程中因频偏调整需求被误删。idle码块的隐藏方式可参见下述控制码块的隐藏方式,此处先不赘述。Therefore, the embodiment of the present application deletes all the idle code blocks in the code block stream originally received for transmission through at least one channel, and then inserts the idle code blocks according to the frequency deviation adjustment requirements, which can not only ensure that the multiplexing mode is fixed, but also meet the frequency deviation adjustment requirements. Since the idle code blocks inserted based on the frequency deviation can occupy the bandwidth saved by deleting the idle code blocks, the introduction of additional bandwidth overhead can also be avoided, that is, the overhead of inserting the idle code blocks required for the multiplexing code block stream is squeezed out by deleting the idle code blocks from the business code block stream, and there is no need to provide additional overhead for inserting idle code blocks. Optionally, the embodiment of the present application can also delete some idle code blocks in the first code block stream. In the case of deleting some idle code blocks, the idle code blocks that are not deleted in the first code block stream can also be hidden to avoid the idle code blocks that are not deleted from being mistakenly deleted during the transmission process due to the frequency deviation adjustment requirements. The hiding method of the idle code blocks can refer to the hiding method of the control code blocks described below, which will not be repeated here.
在本申请实施例中,idle码块也称为I码块。在至少一路通道传输的码块流中删除的idle码块是以太网标准所定义的idle码块,以太网标准所定义的idle码块的格式示意图如图12所示。其中,同步头为“10”,8bit的类型域为0x1E表示该占位码块的类型为C码块,8个大小为7bit的控制字节的取值均为0x00,或者,8个大小为7bit的控制字节也可以均为空。可选地,基于频率偏差在拼接后的码块流中插入的idle码块也可以是图12所示的以太网标准所定义的idle码块,使得插入idle码块的方式简单,且兼容性好。In the embodiment of the present application, the idle code block is also referred to as an I code block. The idle code block deleted from the code block stream transmitted by at least one channel is an idle code block defined by the Ethernet standard, and a format diagram of the idle code block defined by the Ethernet standard is shown in FIG12 . Among them, the synchronization header is "10", the 8-bit type field is 0x1E, indicating that the type of the placeholder code block is a C code block, and the values of the 8 control bytes of 7 bits are all 0x00, or the 8 control bytes of 7 bits can also be empty. Optionally, the idle code block inserted into the spliced code block stream based on the frequency deviation can also be an idle code block defined by the Ethernet standard shown in FIG12, so that the method of inserting the idle code block is simple and has good compatibility.
但是,由于在复接过程中插入的idle码块一旦出错则会导致复接模式被破坏,复接模式的破坏则会导致接收端无法正确地解复接出至少一路业务码块流。由此,本申请实施例复接过程中插入的idle码块也可以是自定义的idle码块,该自定义的idle码块具有更可靠的封装格式,以降低idle码块出错的风险。可选地,idle码块的数量为至少两个,至少两个idle码块之间的汉明距离满足距离要求。距离要求可以根据应用场景灵活调整,例如,距离要求为最大。在该情况下,基于频率偏差在拼接后的码块流中每次插入idle码块,即是连续插入至少两个idle码块。其中,汉明距离是指相同长度比特流中对应比特位置的比特值不同的数量。However, if an idle code block inserted during the multiplexing process goes wrong, the multiplexing mode will be destroyed, and the destruction of the multiplexing mode will cause the receiving end to be unable to correctly demultiplex at least one service code block stream. Therefore, the idle code block inserted during the multiplexing process of the embodiment of the present application can also be a customized idle code block, which has a more reliable encapsulation format to reduce the risk of idle code block errors. Optionally, the number of idle code blocks is at least two, and the Hamming distance between at least two idle code blocks meets the distance requirement. The distance requirement can be flexibly adjusted according to the application scenario, for example, the distance requirement is maximum. In this case, each time an idle code block is inserted into the spliced code block stream based on the frequency deviation, at least two idle code blocks are inserted continuously. Among them, the Hamming distance refers to the number of different bit values at corresponding bit positions in the bit stream of the same length.
示例性地,参见图13所示的idle码块的格式示意图。其中,定义了两类idle码块,即A类idle码块和B类idle码块,两类idle码块的同步头均为“10”,8bit的类型域均为0x4B。A类idle码块的56bit的payload域的前半段取值为全0,后半段取值为全1;B类idle码块的56bit的payload域的前半段取值为全1,后半段取值为全0。即两类idle码块在payload域上的取值正好相反,从而两类idle码块之间构成了最大的汉明距离。可选地,在idle码块的数量为一个的情况下,idle码块可以为图13所示的A类idle码块或B类idle码块;在idle码块的数量为两个的情况下,idle码块可以为图13所示的A类idle码块和B类idle码块。For example, refer to the format diagram of the idle code block shown in Figure 13. Therein, two types of idle code blocks are defined, namely Class A idle code blocks and Class B idle code blocks. The synchronization header of both types of idle code blocks is "10", and the 8-bit type field is 0x4B. The first half of the 56-bit payload field of Class A idle code blocks is all 0s, and the second half is all 1s; the first half of the 56-bit payload field of Class B idle code blocks is all 1s, and the second half is all 0s. That is, the values of the payload fields of the two types of idle code blocks are exactly opposite, so that the two types of idle code blocks form the largest Hamming distance. Optionally, when the number of idle code blocks is one, the idle code block can be the Class A idle code block or the Class B idle code block shown in Figure 13; when the number of idle code blocks is two, the idle code blocks can be the Class A idle code block and the Class B idle code block shown in Figure 13.
在idle码块的数量为两个的情况下,基于频率偏差在拼接后的码块流中每次插入idle码块,即是连续插入2个idle码块(一个为A类idle码块,另一个为B类idle码块)。在复接码块流的转发过程中,也是按照2个idle码块进行增或删,另外在解复接过程中也是按照2个idle码块进行删除。由此,即使2个idle码块中的某个idle码块的部分bit出错也可以区分这两类idle码块,提高了idle码块的可靠性,降低了idle码块出错导致的解复接失败的风险,提升了复接系统的可靠性。When there are two idle code blocks, each time an idle code block is inserted into the spliced code block stream based on the frequency deviation, two idle code blocks are inserted consecutively (one is a Class A idle code block, and the other is a Class B idle code block). During the forwarding process of the multiplexed code block stream, additions or deletions are performed based on the two idle code blocks, and during the demultiplexing process, deletions are also performed based on the two idle code blocks. As a result, even if some bits of one of the two idle code blocks are erroneous, the two types of idle code blocks can still be distinguished, improving the reliability of the idle code blocks, reducing the risk of demultiplexing failure caused by idle code block errors, and enhancing the reliability of the multiplexing system.
方式三,混合码块中包括隐藏码块,隐藏码块通过对至少一路业务码块流中的控制码块进行隐藏得到。In a third approach, the mixed code block includes a hidden code block, and the hidden code block is obtained by hiding the control code block in at least one service code block stream.
在本申请实施例中,可以在调度至少一路业务码块流之前,对至少一路业务码块流中的控制码块进行隐藏;也可以在调度至少一路业务码块流之后,对至少一路业务码块流中的控制码块进行隐藏。如果在调度至少一路业务码块流之后,对控制码块进行隐藏,即是对调度的码块中的控制码块进行隐藏。In the embodiment of the present application, the control code blocks in at least one service code block stream can be hidden before the at least one service code block stream is scheduled; or the control code blocks in at least one service code block stream can be hidden after the at least one service code block stream is scheduled. If the control code blocks are hidden after the at least one service code block stream is scheduled, the control code blocks in the scheduled code blocks are hidden.
其中,控制码块包括但不限于C码块和O码块等,C码块可以是指类型域取值为0x1E的66bit码块,O码块可以是指类型域取值为0x4B的66bit码块。如果不对至少一路业务码块流中的控制码块进行隐藏,可能导致对至少一路业务码块流的保护不足,例如,至少一路业务码块流中的控制码块可能会被复接后的传输通道中的节点误操作。由此,本申请实施例将调度的至少一路业务码块流中的控制码块进行隐藏,加强对原本的至少一路业务码块流中的控制码块的保护,使得传输复接码块流的传输通道的节点对隐藏后的控制码块不可见。Among them, the control code block includes but is not limited to the C code block and the O code block, etc. The C code block may refer to a 66-bit code block with a type field value of 0x1E, and the O code block may refer to a 66-bit code block with a type field value of 0x4B. If the control code blocks in at least one business code block stream are not hidden, it may lead to insufficient protection of at least one business code block stream. For example, the control code blocks in at least one business code block stream may be misoperated by the nodes in the multiplexed transmission channel. Therefore, the embodiment of the present application hides the control code blocks in at least one scheduled business code block stream, strengthens the protection of the control code blocks in the original at least one business code block stream, and makes the nodes of the transmission channel that transmits the multiplexed code block stream invisible to the hidden control code blocks.
可选地,隐藏控制码块的方式本申请实施例不做限定,能够使得隐藏后的控制码块可以避免被传输通道中的转发节点处理,且在解复接的过程中可以被还原为原本的控制码块即可。例如,将调度的码块中的所有控制码块转码为对应的隐藏码块,以控制码块包括C码块和O码块为例,转码规则可以包括:将C码块的类型域取值0x1E修改为0x00;将O码块中的O code取值0x0修改为0x3,O code取值0x5修改为0x6,O code取值0xC修改为0xA。或者,转码规则也可以包括:将控制码块的首2bit即同步头取值修改为00或11。Optionally, the method for concealing the control code block is not limited in the embodiments of the present application, and it is sufficient that the hidden control code block can avoid being processed by the forwarding node in the transmission channel and can be restored to the original control code block during the demultiplexing process. For example, all control code blocks in the scheduled code block are transcoded into corresponding hidden code blocks. Taking the control code block as an example, which includes a C code block and an O code block, the transcoding rules may include: changing the type field value 0x1E of the C code block to 0x00; changing the O code value 0x0 in the O code block to 0x3, changing the O code value 0x5 to 0x6, and changing the O code value 0xC to 0xA. Alternatively, the transcoding rules may also include: changing the first 2 bits of the control code block, i.e., the synchronization header value, to 00 or 11.
针对上述删除接收到的至少一路通道传输的码块流中的全部空闲码块后获取至少一路业务码块流的情况,若删除的不是全部空闲码块而是部分空闲码块,或者,未删除空闲码块直接将接收到的至少一路通道传输的码块流作为至少一路业务码块流,那么可以采用该隐藏控制码块的方式,对至少一路业务码块流中的空闲码块进行隐藏。例如,将空闲码块中的首2bit即同步头取值修改为00或11。由此,避免至少一路业务码块流中的空闲码块在复接为复接码块流后,被中间转发节点因频偏调整需求而删除,进而避免至少一路业务码块流中的空闲码块被删除导致的第一调度比例被破坏,提高基于第一调度比例解复接出至少一路业务码块流的成功率。Regarding the above-mentioned situation where at least one service code block stream is obtained after deleting all idle code blocks in the code block stream received for at least one channel transmission, if not all idle code blocks are deleted but some idle code blocks, or if the idle code blocks are not deleted and the code block stream received for at least one channel transmission is directly used as at least one service code block stream, then the idle code blocks in the at least one service code block stream can be hidden by using the method of hiding the control code blocks. For example, the first 2 bits, i.e., the synchronization header, in the idle code blocks are modified to 00 or 11. This prevents the idle code blocks in the at least one service code block stream from being deleted by the intermediate forwarding node due to frequency offset adjustment requirements after being multiplexed into the multiplexed code block stream, thereby preventing the first scheduling ratio from being destroyed due to the deletion of the idle code blocks in the at least one service code block stream, thereby improving the success rate of demultiplexing the at least one service code block stream based on the first scheduling ratio.
根据隐藏了控制码块之后的码块获取混合码块的方式可以参见上述方式二,即直接将隐藏了控制码块之后的码块作为混合码块;或者,基于频率偏差在隐藏了控制码块之后的码块中插入空闲码块,此处不再赘述。在该方式三下,混合码块中可以包括业务码块、占位码块、隐藏码块和空闲码块。The method for obtaining a mixed code block based on the code block after the control code block is hidden can be referred to in the above method 2, that is, directly using the code block after the control code block is hidden as the mixed code block; or, based on the frequency deviation, inserting idle code blocks into the code block after the control code block is hidden. This is not further described here. In this method 3, the mixed code block can include service code blocks, placeholder code blocks, hidden code blocks, and idle code blocks.
由此,通过上述调度过程,能够根据第一调度比例获取到混合码块。在本申请实施例中,在通过上述调度过程获取到混合码块后,进一步插入复接码块,得到复接码块流。也就是说,复接码块流包括混合码块和复接码块,复接码块中携带有复接信息,复接信息用于对复接码块流进行处理。Thus, through the above scheduling process, a mixed code block can be obtained according to the first scheduling ratio. In the embodiment of the present application, after the mixed code block is obtained through the above scheduling process, a multiplexed code block is further inserted to obtain a multiplexed code block stream. In other words, the multiplexed code block stream includes the mixed code block and the multiplexed code block, and the multiplexed code block carries multiplexing information, which is used to process the multiplexed code block stream.
可选地,复接信息包括复接码块流的第一业务标识或调度信息中的至少一种,调度信息包括第一调度比例或至少一路业务码块流对应的第二业务标识中的至少一种。复接信息中包括的第一业务标识能够用于对复接码块流进行转发处理,复接信息中包括的调度信息能够用于对复接码块流进行解复接处理。由此,通过插入复接码块且复接码块携带复接信息的方式,使得复接码块流能够被正确转发以及被正确解复接。Optionally, the multiplexing information includes at least one of a first service identifier or scheduling information for the multiplexed code block stream, and the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream. The first service identifier included in the multiplexing information can be used to forward the multiplexed code block stream, and the scheduling information included in the multiplexing information can be used to demultiplex the multiplexed code block stream. Thus, by inserting multiplexing code blocks and having the multiplexing code blocks carry the multiplexing information, the multiplexed code block stream can be correctly forwarded and demultiplexed.
在本申请实施例中,提供了两种复接码块的实现方式,一种是复接码块为FlexE标准所定义的开销(overhead,OH)码块,另一种是复接码块为复接指示码块。复接指示码块是本申请实施例自定义的码块,能够用于携带复接信息,复接指示码块也可称为复接码块、指示码块或者自定义码块等。在复接码块为OH码块或者复接指示码块的不同情况下,插入复接码块的方式也不同,进而得到的复接码块流也不同。In the embodiments of the present application, two implementation methods of multiplexing code blocks are provided: one is that the multiplexing code block is an overhead (OH) code block defined in the FlexE standard, and the other is that the multiplexing code block is a multiplexing indicator code block. The multiplexing indicator code block is a custom code block in the embodiments of the present application and can be used to carry multiplexing information. The multiplexing indicator code block may also be referred to as a multiplexing code block, an indicator code block, or a custom code block. In different cases where the multiplexing code block is an OH code block or a multiplexing indicator block, the method of inserting the multiplexing code block is also different, and the resulting multiplexing code block stream is also different.
情况一,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中,第一开销码块用于提取复接码块流中的混合码块。In case 1, the multiplexed code block is a first overhead code block, the multiplexing information is carried in a reserved field of the first overhead code block, and the first overhead code block is used to extract a mixed code block from the multiplexed code block stream.
在该情况一下,通过扩展FlexE标准中的OH码块的保留字段来携带复接信息,即第一开销码块为FlexE标准中的OH码块。示例性地,以复接信息包括复接码块流的第一业务标识和调度信息为例,参见图14所示的第一开销码块的格式示意图。第一开销码块包括8个66比特码块,即图14中的BLK1-BLK8。其中,BLK1的同步头为“10”,BLK1的类型域均为0x4B;BLK2和BLK3的同步头均为“01”,BLK2中包括PHY映射(map)字段、PHY编号(number,num)字段以及保留字段,保留字段即图14所示的res字段。In this case, the multiplexing information is carried by extending the reserved field of the OH code block in the FlexE standard, that is, the first overhead code block is the OH code block in the FlexE standard. For example, taking the multiplexing information including the first service identifier and scheduling information of the multiplexing code block stream as an example, refer to the format diagram of the first overhead code block shown in Figure 14. The first overhead code block includes 8 66-bit code blocks, namely BLK1-BLK8 in Figure 14. Among them, the synchronization header of BLK1 is "10", and the type field of BLK1 is 0x4B; the synchronization headers of BLK2 and BLK3 are both "01", and BLK2 includes a PHY map field, a PHY number (number, num) field and a reserved field. The reserved field is the res field shown in Figure 14.
本申请实施例针对BLK2进行了扩展(见图14中虚线框部分),将BLK2对应的64bit的payload域中的第17-18bit定义为复接使能(multiplex enable,MX_EN)字段。若MX_EN字段取值“00”为当前默认值,表示不用查看MX_EN字段之后的复接字段,若MX_EN字段取值“11”表示需要查看MX_EN字段之后的复接字段。复接字段即是指第19-50bit字段。其中,第19-34bit定义为multiplex info for calendar A字段,表示在calendar A下复接后形成的复接码块流的调度信息。可选地,第35-50bit定义为multiplex info for calendar B,代表在calendar B下复接后形成的复接码块流的调度信息。The embodiment of the present application is expanded for BLK2 (see the dotted box portion in Figure 14), and the 17th-18th bits in the 64-bit payload field corresponding to BLK2 are defined as the multiplexing enable (MX_EN) field. If the MX_EN field takes the value "00" as the current default value, it means that there is no need to check the multiplexing field after the MX_EN field. If the MX_EN field takes the value "11", it means that the multiplexing field after the MX_EN field needs to be checked. The multiplexing field refers to the 19th-50th bit field. Among them, bits 19-34 are defined as the multiplex info for calendar A field, which represents the scheduling information of the multiplexed code block stream formed after multiplexing under calendar A. Optionally, bits 35-50 are defined as multiplex info for calendar B, which represents the scheduling information of the multiplexed code block stream formed after multiplexing under calendar B.
其中,calendar A和calendar B代表两种不同的slot分组,通过multiplex info for calendar A和multiplex info for calendar B的定义使得该方法能够支持FlexE原生的配置切换能力。BLK3中包括client calendar A字段以及client calendar B字段,在本申请实施例中,client calendar A字段用于携带calendar A下复接后形成的复接码块流的第一业务标识,client calendar B字段用于携带calendar B下复接后形成的复接码块流的第一业务标识。Calendar A and Calendar B represent two different slot groupings. The definition of multiplex info for calendar A and multiplex info for calendar B enables this method to support FlexE's native configuration switching capabilities. BLK3 includes the client calendar A field and the client calendar B field. In this embodiment, the client calendar A field carries the first service identifier of the multiplexed block stream formed after multiplexing under calendar A, while the client calendar B field carries the first service identifier of the multiplexed block stream formed after multiplexing under calendar B.
在FlexE标准中,OH码块占用的传输带宽用于传输FlexE控制信息的保留带宽,即OH码块的目的是为了在以太网帧中留出足够的空间用于传输FlexE的控制信息和同步信息,确保帧格式的兼容性。以使在以太网帧中,FlexE也能够正常工作并传输控制信息。由于OH码块是由FlexE硬件自动插入和识别的,例如,由图1所示的FlexE shim层自动插入和识别,因此用户不需要手动进行任何配置或编程。对于一个FlexE Group包含的一个或多个物理链路接口PHY,每个PHY上的数据通过周期性插入OH码块来实现PHY内部时隙位置定位及不同PHY之间对齐。其中,插入OH码块的周期可以根据应用场景灵活调整,例如,每个PHY可以是隔1023*20个66bit的净荷数据码块插入1个OH码块。In the FlexE standard, the transmission bandwidth occupied by the OH code block is reserved for transmitting FlexE control information. Specifically, the purpose of the OH code block is to leave sufficient space in the Ethernet frame for transmitting FlexE control and synchronization information, ensuring frame format compatibility. This allows FlexE to function properly and transmit control information within the Ethernet frame. Since the OH code blocks are automatically inserted and recognized by the FlexE hardware, for example, by the FlexE shim layer shown in Figure 1, no manual configuration or programming is required. For one or more physical link interfaces (PHYs) within a FlexE Group, data on each PHY is periodically inserted with OH code blocks to achieve internal PHY slot positioning and alignment between different PHYs. The OH code block insertion period can be flexibly adjusted based on the application scenario. For example, each PHY could insert an OH code block every 1023*20 66-bit payload data blocks.
在该情况一下,由于复接码块就是OH码块,因此,插入复接码块的操作即是插入OH码块的操作,插入OH码块的操作可以参见FlexE标准中的相关介绍,此处不再赘述。由此,通过扩展OH码块的方式来携带复接信息,避免了携带复接信息导致的额外开销,实现了与FlexE协议的最大耦合,降低了携带复接信息的实现复杂度。In this case, since the multiplexing code block is the OH code block, inserting the multiplexing code block is equivalent to inserting the OH code block. The operation of inserting the OH code block can be found in the relevant description of the FlexE standard and will not be repeated here. Therefore, by extending the OH code block to carry multiplexing information, the additional overhead caused by carrying multiplexing information is avoided, the maximum coupling with the FlexE protocol is achieved, and the implementation complexity of carrying multiplexing information is reduced.
但是由于FlexE标准中,OH码块是逐跳终结的,即入端口在接收的码块流中剥离OH码块,出端口再重新生成并插入OH码块到发送的码块流中,由此使得复接信息需要在每个转发节点从入端口复制到出端口,带来了操作的复杂度。因此,本申请实施例也可以不使用FlexE标准中的OH码块携带复接信息,而是新定义专用的复接码块来携带复接信息,参见下述情况二的相关描述。However, in the FlexE standard, the OH code block is terminated hop by hop. That is, the ingress port strips the OH code block from the received code block stream, and the egress port regenerates and inserts the OH code block into the transmitted code block stream. As a result, the multiplexing information needs to be copied from the ingress port to the egress port at each forwarding node, which brings operational complexity. Therefore, the embodiment of the present application can also not use the OH code block in the FlexE standard to carry the multiplexing information, but instead newly define a dedicated multiplexing code block to carry the multiplexing information. See the relevant description of the second case below.
情况二,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中,复接码块流中还包括第二开销码块,第二开销码块用于提取复接码块流中的复接指示码块和混合码块。In case 2, the multiplexing code block is a multiplexing indication code block, the multiplexing information is carried in a designated field of the multiplexing indication code block, and the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indication code block and the mixed code block in the multiplexing code block stream.
本申请实施例不对复接指示码块进行限定,能够与现有码块进行区分,且通过指定字段能够携带复接信息即可。示例性地,以复接信息包括复接码块流的第一业务标识为例,复接指示码块的格式示意图可以如图15或图16所示。在图15中,复接码块被定义成一个独特的C码块,其第3-10bit的类型域取值为0x1E,紧邻的前三个7bit的控制字节取值均为0x09,再然后的两个7bit的控制字节取值均为0x76,从而图15所示的复接码块能够与图10所示的站位码块相区分,最后剩余的21bit即指定字段定义为Client Group ID,用于指示复接后的复接码块流的第一业务标识。或者,最后剩余的21bit也可以用来携带复接码块流的调度信息。例如,插入两个复接指示码块,一个复接指示码块用于携带复接码块流的第一业务标识,另一个复接指示码块用于携带复接码块流的调度信息。The embodiment of the present application does not limit the multiplexing indication code block, and it can be distinguished from the existing code block and can carry the multiplexing information through the designated field. For example, taking the multiplexing information including the first service identifier of the multiplexing code block stream as an example, the format diagram of the multiplexing indication code block can be shown in Figure 15 or Figure 16. In Figure 15, the multiplexing code block is defined as a unique C code block, and the type field value of its 3rd to 10th bits is 0x1E, and the values of the first three 7-bit control bytes are all 0x09, and the values of the next two 7-bit control bytes are both 0x76, so that the multiplexing code block shown in Figure 15 can be distinguished from the station code block shown in Figure 10, and the last remaining 21 bits, that is, the designated field, is defined as Client Group ID, which is used to indicate the first service identifier of the multiplexed multiplexing code block stream. Alternatively, the last remaining 21 bits can also be used to carry the scheduling information of the multiplexing code block stream. For example, two multiplexing indication code blocks are inserted, one multiplexing indication code block is used to carry the first service identifier of the multiplexing code block flow, and the other multiplexing indication code block is used to carry the scheduling information of the multiplexing code block flow.
在图16中,复接码块被定义成一个独特的O码块,其第3-10bit的类型域取值为0x4B,其第35-38bit的O code取值为0x9。可选地,3个大小为8bit的数据字节中,前1个数据字节即第11-18bit取值为0xFF,从而图16所示的复接码块能够与图11所示的站位码块相区分,后两个数据字节第19-34bit即指定字段定义为Client Group ID,用于指示复接后的复接码块流的第一业务标识;最后4个大小为7bit的控制字节,即最后28bit的取值为0x000_0000。可选地,最后28bit可以用于携带复接码块流的调度信息。In Figure 16, the multiplexing block is defined as a unique O-code block, with the type field in bits 3-10 set to 0x4B and the O-code in bits 35-38 set to 0x9. Optionally, of the three 8-bit data bytes, the first data byte (bits 11-18) is set to 0xFF, distinguishing the multiplexing block shown in Figure 16 from the station block shown in Figure 11. The designated field in the last two data bytes (bits 19-34) is defined as the Client Group ID, which indicates the first service identifier of the multiplexed multiplexing block stream. The final four 7-bit control bytes (the last 28 bits) are set to 0x000_0000. Optionally, the last 28 bits can be used to carry scheduling information for the multiplexing block stream.
可选地,插入复接指示码块的方式本申请实施例不做限定,插入的复接指示码块能够用于对混合码块定界,或者说能够作为第一调度比例的参考点即可。示例性地,如图1所示,在到达FlexE shim层之前,FlexE复接层每隔N个第一调度比例的调度周期插入复接指示码块。N为任意的正整数,复接指示码块的插入位置在一个调度周期的开始,因此,可以按照复接指示码块的插入位置作为参考点开始按照第一调度比例进行解复接。例如,第一调度比例为1:2:1,则调度周期为(业务码块1;业务码块2,业务码块2;业务码块3),复接指示码块的插入位置为业务码块1的前一个码块。Optionally, the method of inserting the multiplexing indicator code block is not limited in the embodiment of the present application. The inserted multiplexing indicator code block can be used to delimit the mixed code block, or can be used as a reference point for the first scheduling ratio. For example, as shown in Figure 1, before reaching the FlexE shim layer, the FlexE multiplexing layer inserts the multiplexing indicator code block every N scheduling periods of the first scheduling ratio. N is an arbitrary positive integer, and the insertion position of the multiplexing indicator code block is at the beginning of a scheduling period. Therefore, demultiplexing can be started according to the first scheduling ratio based on the insertion position of the multiplexing indicator code block as a reference point. For example, if the first scheduling ratio is 1:2:1, the scheduling period is (service code block 1; service code block 2, service code block 2; service code block 3), and the insertion position of the multiplexing indicator code block is the previous code block of service code block 1.
由此,无论复接码块是复接指示码块还是OH码块,该复接码块能够用作转发或解复接的时候定界使用。定界则是指在通过任一以太网接口接收的码块流中确定出不同传输通道传输的码块流之间的边界,进而提取出不同传输通道传输的码块流。例如,100GE以太网接口包括5个20Gbps通道,本申请实施例中的复接码块流通过第1个25Gbps通道传输,则根据第一开销码块能够在通过该100GE以太网接口接收的码块流中定界出第1个25Gbps通道传输的混合码块;根据第二开销码块能够在通过该100GE以太网接口接收的码块流中定界出第1个25Gbps通道传输的混合码块和复接指示码块,根据复接指示码块进一步定界出混合码块。Therefore, no matter whether the multiplexing code block is a multiplexing indication code block or an OH code block, the multiplexing code block can be used as a delimiter when forwarding or demultiplexing. Delimitation refers to determining the boundary between the code block streams transmitted by different transmission channels in the code block stream received through any Ethernet interface, and then extracting the code block streams transmitted by different transmission channels. For example, the 100GE Ethernet interface includes 5 20Gbps channels, and the multiplexing code block stream in the embodiment of the present application is transmitted through the first 25Gbps channel. Then, according to the first overhead code block, the mixed code block transmitted by the first 25Gbps channel can be delimited in the code block stream received through the 100GE Ethernet interface; according to the second overhead code block, the mixed code block and the multiplexing indication code block transmitted by the first 25Gbps channel can be delimited in the code block stream received through the 100GE Ethernet interface, and the mixed code block is further delimited according to the multiplexing indication code block.
在该情况二下,采用复接指示码块作为复接码块后,减少了对FlexE协议的依赖,实现了功能模块之间更清晰的解耦,有利于模块化实现。中间转发节点不再需要在入口剥离复接信息、在出口重新插入复接信息,即复接信息无需由入口复制到出口。复接指示码块会作为复接码块流的一部分随着复接码块流一起被转发,直接穿通转发节点,从而降低了转发节点的处理复杂度。转发节点不对复接指示码块进行修改,只是读取复接指示码块中携带的复接信息,用于根据复接信息中的第一业务标识查找路由表并转发。可选地,路由表包括第一业务标识与出端口的对应关系,该第一业务标识是复接后的业务标识。In this second case, after using the multiplexing indicator code block as the multiplexing code block, the dependence on the FlexE protocol is reduced, and a clearer decoupling between functional modules is achieved, which is conducive to modular implementation. The intermediate forwarding node no longer needs to strip the multiplexing information at the entrance and reinsert the multiplexing information at the exit, that is, the multiplexing information does not need to be copied from the entrance to the exit. The multiplexing indicator code block will be forwarded along with the multiplexing code block flow as part of the multiplexing code block flow, directly passing through the forwarding node, thereby reducing the processing complexity of the forwarding node. The forwarding node does not modify the multiplexing indicator code block, but only reads the multiplexing information carried in the multiplexing indicator code block, which is used to search the routing table and forward according to the first service identifier in the multiplexing information. Optionally, the routing table includes a correspondence between the first service identifier and the output port, and the first service identifier is the service identifier after multiplexing.
由此,通过上述步骤901-步骤903实现对至少一路业务码块流的复接处理。在得到复接码块流之后,可以根据复接码块流的第一业务标识确定出端口,通过出端口发送复接码块流。例如,通过出端口向第二通信装置发送复接码块流。其中,复接码块流的传输速率大于至少一路业务码块流的传输速率,例如,至少一路业务码块流通过小带宽规格通道传输的传输速率分别是5Gbps、10Gbps、5Gbps,复接码块流通过大带宽规格通道传输的传输速率为20Gbps,使得至少一路业务码块流的传输速率提高到20Gbps。通过将至少一路业务码块流复接为一路复接码块流进行传输的方式,提高了至少一路业务码块流的传输速率,有效利用了出端口的大带宽,避免带宽浪费。也即实现了将至少一路低速业务码块流汇聚成一路高速业务码块流,解决了大小规格通道的对接问题。Thus, through steps 901-903 described above, multiplexing processing of at least one service block stream is achieved. After obtaining the multiplexed block stream, the output port can be determined based on the first service identifier of the multiplexed block stream, and the multiplexed block stream can be sent through the output port. For example, the multiplexed block stream is sent to the second communication device through the output port. The transmission rate of the multiplexed block stream is greater than the transmission rate of the at least one service block stream. For example, the transmission rates of the at least one service block stream transmitted through a small-bandwidth channel are 5 Gbps, 10 Gbps, and 5 Gbps, respectively, while the transmission rate of the multiplexed block stream transmitted through a large-bandwidth channel is 20 Gbps, thereby increasing the transmission rate of the at least one service block stream to 20 Gbps. By multiplexing at least one service block stream into one multiplexed block stream for transmission, the transmission rate of the at least one service block stream is increased, effectively utilizing the large bandwidth of the output port and avoiding bandwidth waste. This achieves the aggregation of at least one low-speed service block stream into one high-speed service block stream, solving the problem of connecting large and small-bandwidth channels.
下面,以第一调度比例为固定比例、复接码块为开销码块为例,结合图17所示的系统框图以及图18所示的流程图,对本申请实施例提供的码块处理方法中的复接过程进行举例说明。其中,复接过程包括但不限于如下步骤11-步骤14。The following describes the multiplexing process in the code block processing method provided in the embodiment of the present application, taking a fixed first scheduling ratio and an overhead code block as an example, in conjunction with the system block diagram shown in FIG17 and the flowchart shown in FIG18. The multiplexing process includes but is not limited to the following steps 11 to 14.
步骤11,接收至少一路业务码块流,并删除每路业务码块流中的所有idle码块。Step 11: Receive at least one service code block stream and delete all idle code blocks in each service code block stream.
其中,如图17中所示的至少一路业务码块流包括3路,第1路业务码块流包括O码块、S码块和D码块,第2路业务码块流包括3个D码块,第3路业务码块流包括D码块、T码块和I码块。对于每一路业务码块流,在接收到码块后,若是idle码块则删除,若不是idle码块则放入业务码块队列。As shown in Figure 17 , at least one service block stream includes three. The first service block stream includes an O block, an S block, and a D block. The second service block stream includes three D blocks. The third service block stream includes a D block, a T block, and an I block. For each service block stream, after receiving a block, if it is an idle block, it is deleted. If it is not an idle block, it is placed in the service block queue.
步骤12,按照固定比例调度至少一路业务码块流中的码块,且按需插入占位码块。Step 12: Schedule code blocks in at least one service code block stream according to a fixed ratio, and insert placeholder code blocks as needed.
如图17所示,调度至少一路业务码块流中的码块即是调度多个业务码块队列中的码块。其中,按需插入占位码块即是指,如果在调度某路业务码块流时,该某路业务码块流暂时没有码块,则插入本申请实施例提供的特定的占位码块。As shown in Figure 17, scheduling code blocks in at least one service code block stream is equivalent to scheduling code blocks in multiple service code block queues. Inserting placeholder code blocks on demand means that if a service code block stream is temporarily without code blocks when scheduling the service code block stream, a specific placeholder code block provided in the embodiment of the present application is inserted.
步骤13,按需插入idle码块,形成混合码块。Step 13: insert idle code blocks as needed to form mixed code blocks.
其中,按需插入idle码块即是指,基于频偏调整需求确定插入周期,按照插入周期在调度的码块中插入idle码块。将获取的混合码块放入业务组码块队列中。Inserting idle code blocks on demand means determining an insertion period based on the frequency offset adjustment requirement and inserting idle code blocks into the scheduled code blocks according to the insertion period. The obtained mixed code blocks are placed in the service group code block queue.
步骤14,周期性插入OH码块,并在开销码块中携带复接信息,形成复接码块流。Step 14: Periodically insert OH code blocks and carry multiplexing information in overhead code blocks to form a multiplexed code block stream.
针对业务组码块队列中的码块,周期性插入OH码块后得到复接码块流,进而通过高速通道传输复接码块流,步骤11中接收至少一路业务码块流的通道为低速通道。复接后在高速通道上传输的码块流即复接码块流如图17所示,可以包括占位码块和空闲码块。OH blocks are periodically inserted into the service group block queue to create a multiplexed block stream, which is then transmitted over a high-speed channel. In step 11, the channel receiving at least one service block stream is a low-speed channel. The multiplexed block stream transmitted over the high-speed channel, or multiplexed block stream, is shown in Figure 17 and may include placeholder blocks and idle blocks.
步骤11-步骤14的实施方式可参见上述步骤901和步骤902的实施方式,此处不再赘述。The implementation of steps 11 to 14 can refer to the implementation of steps 901 and 902 above, and will not be repeated here.
综上,在图9所示的码块处理方法中,按照固定的调度比例来调度至少一路业务码块流中的码块,以根据调度的码块来获取复接码块流,实现将至少一路业务码块流复接为一路复接码块流,该复接过程无需封帧操作,避免了由封帧操作带来的带宽浪费,且直接以码块的粒度进行复接,相比于比特粒度的复接,降低了复接过程的复杂度,提高了复接效率。此外,复接码块流中携带有复接信息,使得接收到复接码块流的节点均能够根据复接信息对复接码块流进行处理,保证复接码块流的正确处理。In summary, in the code block processing method shown in Figure 9, the code blocks in at least one service code block stream are scheduled according to a fixed scheduling ratio to obtain a multiplexed code block stream based on the scheduled code blocks, thereby multiplexing at least one service code block stream into a multiplexed code block stream. This multiplexing process does not require a frame sealing operation, avoiding the bandwidth waste caused by the frame sealing operation, and multiplexing is performed directly at the granularity of the code block. Compared with multiplexing at the bit granularity, this reduces the complexity of the multiplexing process and improves the multiplexing efficiency. In addition, the multiplexed code block stream carries multiplexing information, so that all nodes receiving the multiplexed code block stream can process the multiplexed code block stream according to the multiplexing information, ensuring the correct processing of the multiplexed code block stream.
参见图19,图19为本申请实施例提供的一种数据传输方法的流程图。以第二通信装置执行该方法为例进行说明,第二通信装置可以为图7或图8所示的网络设备,第二通信装置与第一通信装置可以为同一个网络设备,也可以为互相连接的两个网络设备。如图19所示,该码块处理方法包括但不限于如下步骤1901和步骤1902。See Figure 19, which is a flowchart of a data transmission method provided in an embodiment of the present application. This method is described using a second communication device as an example. The second communication device may be the network device shown in Figure 7 or Figure 8. The second communication device and the first communication device may be the same network device or two interconnected network devices. As shown in Figure 19, the code block processing method includes, but is not limited to, steps 1901 and 1902.
步骤1901,获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息。Step 1901: Acquire a multiplexed code block stream, which includes mixed code blocks and multiplexed code blocks. The mixed code blocks are obtained by scheduling code blocks in at least one service code block stream according to a first scheduling ratio. The multiplexed code blocks carry multiplexing information.
可选地,获取复接码块流的方式可以为,接收第一通信装置发送的复接码块流,或者,根据上述步骤901-步骤903的方式进行复接处理,以得到该复接码块流。复接码块流的相关内容可参见步骤901-步骤903中所涉及的复接码块流的内容,此处不再赘述。Optionally, the multiplexed code block stream may be obtained by receiving the multiplexed code block stream sent by the first communication device, or performing multiplexing processing according to the above steps 901 to 903 to obtain the multiplexed code block stream. For details about the multiplexed code block stream, refer to the details about the multiplexed code block stream involved in steps 901 to 903, and will not be repeated here.
步骤1902,根据复接信息对复接码块流进行处理。Step 1902: Process the multiplexed code block stream according to the multiplexing information.
在本申请实施例中,根据复接信息对复接码块流进行处理包括两部分,一是对复接码块流进行转发处理,二是对复接码块流进行解复接处理。第二通信装置可以既对复接码块流进行转发处理,又对复接码块流进行解复接处理。或者,第二通信装置对复接码块流进行转发处理,第三网络设备接收第二通信装置转发的复接码块流,第三网络设备对复接码块流进行解复接处理。In an embodiment of the present application, processing the multiplexed code block stream based on the multiplexing information includes two steps: forwarding the multiplexed code block stream and demultiplexing the multiplexed code block stream. The second communication device can both forward the multiplexed code block stream and demultiplex the multiplexed code block stream. Alternatively, the second communication device forwards the multiplexed code block stream, and a third network device receives the multiplexed code block stream forwarded by the second communication device, and the third network device demultiplexes the multiplexed code block stream.
处理方式一,根据复接信息对复接码块流进行转发处理。Processing method 1: forwarding the multiplexed code block stream according to the multiplexing information.
根据上述对于FlexE标准中的开销码块的介绍可知,开销码块是逐跳终结的。因此,如果复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中,那么对复接码块流进行转发处理可以包括:在入端口剥离复接码块流中的第一开销码块,得到混合码块;将混合码块发送至出端口,在混合码块中插入第三开销码块后通过出端口发送,第三开销码块中携带复接信息。也即在入口剥离第一开销码块、在出口重新插入第三开销码块,第三开销码块与第一开销码块相同或不同,使得复接信息需要由入口复制到出口。According to the above introduction to the overhead code block in the FlexE standard, the overhead code block is terminated hop by hop. Therefore, if the multiplexing code block is the first overhead code block, and the multiplexing information is carried in the reserved field of the first overhead code block, then forwarding the multiplexing code block stream may include: stripping the first overhead code block in the multiplexing code block stream at the ingress port to obtain a mixed code block; sending the mixed code block to the egress port, inserting the third overhead code block into the mixed code block, and then sending it through the egress port, where the third overhead code block carries the multiplexing information. That is, stripping the first overhead code block at the ingress port and reinserting the third overhead code block at the egress port. The third overhead code block may be the same as or different from the first overhead code block, so that the multiplexing information needs to be copied from the ingress port to the egress port.
如果复接码块是复接指示码块,例如,图15或16所示的复接指示码块,复接信息携带在复接指示码块的指定字段中。在该情况下,复接码块流中还包括第二开销码块,第二开销码块即是原本FlexE协议传输场景中需要携带的开销码块。那么,根据复接信息对复接码块流进行转发处理可以包括:在入端口剥离复接码块流中的第二开销码块,得到包括复接指示码块和混合码块的混杂码块流;将混杂码块流发送至出端口,在混杂码块流中插入第四开销码块后通过出端口发送。也即在入口剥离第二开销码块、在出口重新插入第四开销码块,第四开销码块与第二开销码块相同或不同,使得复接信息携带在复接指示码块中跟随混合码块直接转发,即复接信息无需由入口复制到出口。If the multiplexing code block is a multiplexing indication code block, for example, the multiplexing indication code block shown in Figure 15 or 16, the multiplexing information is carried in a designated field of the multiplexing indication code block. In this case, the multiplexing code block stream also includes a second overhead code block, which is the overhead code block that needs to be carried in the original FlexE protocol transmission scenario. Then, forwarding the multiplexing code block stream according to the multiplexing information may include: stripping the second overhead code block in the multiplexing code block stream at the ingress port to obtain a mixed code block stream including a multiplexing indication code block and a mixed code block; sending the mixed code block stream to the egress port, inserting a fourth overhead code block into the mixed code block stream, and then sending it through the egress port. That is, stripping the second overhead code block at the ingress port and reinserting the fourth overhead code block at the egress port. The fourth overhead code block is the same as or different from the second overhead block, so that the multiplexing information is carried in the multiplexing indication code block and is directly forwarded following the mixed code block, that is, the multiplexing information does not need to be copied from the ingress port to the egress port.
在本申请实施例中,复接信息包括复接码块流的第一业务标识,确定复接码块流的出端口的方式可以包括,根据业务标识确定出端口。示例性地,第二通信装置维护有路由表,路由表包括业务标识与出端口的对应关系,进而,通过在路由表中查询复接码块流的第一业务标识,可以确定复接码块流的出端口。其中,在复接码块是第一开销码块的情况下,复接码块流的出端口即是混合码块的出端口;在复接码块是复接指示码块的情况下,复接码块流的出端口即是混杂码块流的出端口。将该由入端口接收通过路由表转发至对应的出端口转发的方式称为交叉转发。In an embodiment of the present application, the multiplexing information includes the first service identifier of the multiplexing code block stream, and the method of determining the output port of the multiplexing code block stream may include determining the output port based on the service identifier. Exemplarily, the second communication device maintains a routing table, and the routing table includes a correspondence between the service identifier and the output port. Then, by querying the first service identifier of the multiplexing code block stream in the routing table, the output port of the multiplexing code block stream can be determined. Wherein, in the case where the multiplexing code block is the first overhead code block, the output port of the multiplexing code block stream is the output port of the mixed code block; in the case where the multiplexing code block is the multiplexing indication code block, the output port of the multiplexing code block stream is the output port of the mixed code block stream. The method of forwarding the information received by the input port to the corresponding output port through the routing table is called cross forwarding.
在一种可能的实施方式中,如果获取的复接码块流是接收的其他网络设备发送的复接码块流,复接码块流还包括基于频率偏差插入的空闲码块。那么,根据复接信息对复接码块进行转发处理可以包括,基于频率偏差对复接码块流进行频偏调整。可选地,基于频率偏差通过增或删空闲码块的方式对复接码块流进行频偏调整。例如,当复接码块流的到达速率偏低时,通过在复接码块流中插入空闲码块来避免断流;当复接码块流的到达速率偏高时,通过删除复接码块流中的空闲码块来避免码块积压。其中,在该转发处理过程中增或删的空闲码块的类型与上述复接过程中插入的空闲码块的类型相同,即若复接过程中插入的空闲码块为图13所示的两类idle码块,则转发处理过程中增或删的空闲码块也为图13所示的两类idle码块。In one possible implementation, if the acquired multiplexed code block stream is a multiplexed code block stream received from other network devices, the multiplexed code block stream also includes idle code blocks inserted based on the frequency deviation. Then, forwarding the multiplexed code blocks according to the multiplexing information may include adjusting the frequency deviation of the multiplexed code block stream based on the frequency deviation. Optionally, the frequency deviation of the multiplexed code block stream is adjusted by adding or deleting idle code blocks based on the frequency deviation. For example, when the arrival rate of the multiplexed code block stream is low, interruption of the flow is avoided by inserting idle code blocks into the multiplexed code block stream; when the arrival rate of the multiplexed code block stream is high, code block backlog is avoided by deleting idle code blocks from the multiplexed code block stream. The type of idle code blocks added or deleted during the forwarding process is the same as the type of idle code blocks inserted during the above-mentioned multiplexing process, that is, if the idle code blocks inserted during the multiplexing process are the two types of idle code blocks shown in FIG13 , the idle code blocks added or deleted during the forwarding process are also the two types of idle code blocks shown in FIG13 .
由此,通过处理方式一实现对复接码块流的转发处理,使得中间转发节点均可以按照复接码块流的粒度进行转发,也即按照复接码块流的传输速率进行传输,例如,复接码块流的传输通道为大带宽规格通道,即至少一路业务码块流可以通过该大带宽规格通道进行传输。由此,通过将至少一路业务码块流复接为一路复接码块流进行转发的方式,实现了复接码块流的端到端转发,无需将复接码块流解复接为至少一路业务码块流再分别进行转发,提高了转发规模。Thus, by implementing forwarding processing for the multiplexed block stream through processing method one, intermediate forwarding nodes can forward the stream at the granularity of the multiplexed block stream, that is, at the transmission rate of the multiplexed block stream. For example, the transmission channel of the multiplexed block stream is a high-bandwidth channel, meaning that at least one service block stream can be transmitted through this high-bandwidth channel. Thus, by multiplexing at least one service block stream into one multiplexed block stream for forwarding, end-to-end forwarding of the multiplexed block stream is achieved, eliminating the need to demultiplex the multiplexed block stream into at least one service block stream and then forward them separately, thereby improving forwarding scale.
下面,以复接码块是OH码块为例,结合图20所示的系统框图以及图21所示的流程图,对本申请实施例提供的码块处理方法中的转发处理过程进行举例说明。其中,转发处理过程包括但不限于如下步骤21-步骤24。The following describes the forwarding process in the code block processing method provided by the embodiment of the present application, taking the multiplexed code block as an example, in conjunction with the system block diagram shown in Figure 20 and the flowchart shown in Figure 21. The forwarding process includes but is not limited to the following steps 21 to 24.
步骤21,接收码块流,根据OH码块进行定界,并提取OH码块中的复接信息。Step 21: Receive a code block stream, perform delimitation according to the OH code block, and extract multiplexing information from the OH code block.
依赖OH码块的插入规则,可以根据OH码块进行不同传输通道的码块流的定界,进而提取出混合码块,将混合码块写入业务组队列码块。Depending on the insertion rule of the OH code block, the code block streams of different transmission channels can be delimited according to the OH code block, and then the mixed code block can be extracted and written into the service group queue code block.
步骤22,按照频偏调整需求,对混合码块进行idle码块的增删。Step 22: Add or delete idle code blocks in the mixed code block according to the frequency offset adjustment requirement.
由此,通过增或删idle码块的方式实现频偏调整。Therefore, frequency offset adjustment is achieved by adding or deleting idle code blocks.
步骤23,针对混合码块进行交叉转发。Step 23: cross-forwarding the mixed code block.
由于OH码块已经被剥离,进而对混合码块的交叉转发即是对复接码块流的交叉转发。示例性地,通过复接信息中携带的业务标识来查转发表,进而将混合码块送往正确的出端口。Since the OH code block has been stripped, the cross forwarding of the mixed code block is the cross forwarding of the multiplexed code block stream. For example, the forwarding table is checked through the service identifier carried in the multiplexing information, and the mixed code block is sent to the correct egress port.
步骤24,在出端口的码块流中插入OH码块,OH码块携带复接信息。Step 24: inserting an OH code block into the code block stream of the outgoing port, where the OH code block carries multiplexing information.
也就是说,入端口提前出来的复接信息,需要复制到出端口,进而使得出端口重新插入的OH码块中携带复接信息。That is, the multiplexing information sent out in advance by the ingress port needs to be copied to the egress port, so that the OH code block reinserted by the egress port carries the multiplexing information.
处理方式二,根据复接信息对复接码块流进行解复接处理。Processing method 2: demultiplexing the multiplexed code block stream according to the multiplexing information.
在一种可能的实施方式中,复接信息包括调度信息,调度信息包括第一调度比例或至少一路业务码块流对应的第二业务标识中的至少一种;根据复接信息对复接码块流进行解复接处理可以包括,根据调度信息确定第一调度比例;在复接码块流中提取出混合码块,按照第一调度比例从混合码块中解复接出至少一路业务码块流。In one possible implementation, the multiplexing information includes scheduling information, and the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream; demultiplexing the multiplexed code block stream according to the multiplexing information may include determining the first scheduling ratio according to the scheduling information; extracting a mixed code block from the multiplexed code block stream, and demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio.
可选地,在调度信息包括第一调度比例的情况下,直接读取调度信息中的第一调度比例;在调度信息包括至少一路业务码块流对应的第二业务标识的情况下,可以根据多个第二业务标识分别对应的带宽或传输速率确定第一调度比例,或者,根据配置信息获取多个第二业务标识分别对应的调度占比,进而根据多个第二业务标识分别对应的调度占比确定第一调度比例。配置信息可以是控制端提前配置好下发第二通信装置的,也可以是第二通信装置实时向控制端获取的。可选地,配置信息包括第二业务标识与调度占比的对应关系,在该情况下,第一通信装置也可以根据该配置信息确定第一调度比例。Optionally, when the scheduling information includes a first scheduling ratio, the first scheduling ratio in the scheduling information is directly read; when the scheduling information includes a second service identifier corresponding to at least one service code block stream, the first scheduling ratio can be determined based on the bandwidth or transmission rate corresponding to each of the multiple second service identifiers, or the scheduling ratios corresponding to each of the multiple second service identifiers are obtained based on the configuration information, and then the first scheduling ratio is determined based on the scheduling ratios corresponding to each of the multiple second service identifiers. The configuration information can be configured in advance by the control end and sent to the second communication device, or it can be obtained by the second communication device in real time from the control end. Optionally, the configuration information includes a correspondence between the second service identifier and the scheduling ratio. In this case, the first communication device can also determine the first scheduling ratio based on the configuration information.
在复接码块流中提取出混合码块的方式可以参见处理方式一中的相关说明,例如,如果复接码块是第一开销码块,则根据第一开销码块的插入位置进行混合码块的定界,提取出混合码块,并提取出第一开销码块中的复接信息;如果复接码块是复接指示码块,则根据第二开销码块的插入位置进行混杂码块流的定界,提取出混杂码块流,再根据复接指示码块的插入位置进行混合码块的定界,以提取出混合码块,并提取出复接指示码块中的复接信息。For the method of extracting the mixed code block from the multiplexed code block stream, please refer to the relevant instructions in processing method one. For example, if the multiplexed code block is the first overhead code block, the mixed code block is delimited according to the insertion position of the first overhead code block, the mixed code block is extracted, and the multiplexing information in the first overhead code block is extracted; if the multiplexed code block is a multiplexing indicator code block, the mixed code block stream is delimited according to the insertion position of the second overhead code block, the mixed code block stream is extracted, and then the mixed code block is delimited according to the insertion position of the multiplexing indicator code block to extract the mixed code block and the multiplexing information in the multiplexing indicator code block.
在提取出混合码块后,即可按照第一调度比例将混合码块还原为至少一路业务码块流。该解复接过程与前述复接过程相对应,即解复接过程是复接过程的反过程,因此,复接过程执行的操作决定解复接过程执行的反操作。可选地,若复接过程中插入了空闲码块,即混合码块中包括空闲码块,则按照第一调度比例从混合码块中解复接出至少一路业务码块流包括,先删除混合码块中的空闲码块,然后按照第一调度比例从删除空闲码块后的码块流中解复接出至少一路业务码块流。After extracting the mixed code block, the mixed code block can be restored to at least one service code block stream according to the first scheduling ratio. This demultiplexing process corresponds to the aforementioned multiplexing process, that is, the demultiplexing process is the inverse of the multiplexing process. Therefore, the operation performed in the multiplexing process determines the inverse operation performed in the demultiplexing process. Optionally, if idle code blocks are inserted during the multiplexing process, that is, the mixed code block includes idle code blocks, demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio includes first deleting the idle code blocks from the mixed code block, and then demultiplexing at least one service code block stream from the code block stream after deleting the idle code blocks according to the first scheduling ratio.
若复接过程中直接按照第一调度比例调度得到混合码块,则按照第一调度比例可以从删除空闲码块后的码块流中直接分解还原出至少一路业务码块流。示例性地,以第一调度比例为1:2:1为例,按照第一调度比例从混合码块中解复接出至少一路业务码块流,也就是将混合码块中的第1个码块还原为第1路业务码块流中的1个码块,将混合码块中的第2个码块和第3个码块还原为第2路业务码块流中的2个码块,将混合码块中的第4个码块还原为第3路业务码块流中的1个码块,并重复这种还原过程。If a mixed code block is directly obtained by scheduling according to the first scheduling ratio during the multiplexing process, then at least one service code block stream can be directly decomposed and restored from the code block stream after deleting the idle code blocks according to the first scheduling ratio. For example, taking a first scheduling ratio of 1:2:1 as an example, at least one service code block stream is demultiplexed from the mixed code block according to the first scheduling ratio. That is, the first code block in the mixed code block is restored to one code block in the first service code block stream, the second and third code blocks in the mixed code block are restored to two code blocks in the second service code block stream, and the fourth code block in the mixed code block is restored to one code block in the third service code block stream, and this restoration process is repeated.
在混合码块中包括隐藏码块的情况下,在按照第一调度比例从混合码块中解复接出至少一路业务码块流的过程中,将隐藏码块还原为控制码块。可选地,可以先将混合码块中的隐藏码块还原为控制码块,然后在还原为控制码块后的混合码块中解复接出至少一路业务码块流;也可以先在按照第一调度比例从混合码块中解复接出至少一路初始码块流,将至少一路初始码块流中的隐藏码块还原为控制码块,得到至少一路业务码块流。When a mixed code block includes a concealed code block, the concealed code block is restored to a control code block during demultiplexing of at least one service code block stream from the mixed code block according to the first scheduling ratio. Optionally, the concealed code block in the mixed code block may be first restored to a control code block, and then at least one service code block stream may be demultiplexed from the mixed code block after being restored to the control code block. Alternatively, at least one initial code block stream may be first demultiplexed from the mixed code block according to the first scheduling ratio, and the concealed code blocks in the at least one initial code block stream may be restored to a control code block to obtain the at least one service code block stream.
其中,将隐藏码块还原为控制码块的过程即上述隐藏控制码块的返过程。以上述按照转码规则将控制码块转码为对应的隐藏码块为例,对隐藏了控制码块之后的码块进行还原的过程可以包括,将类型域取值0x00还原为0x1E,以恢复出C码块;将O码块中的O code取值0x3还原为0x0,O code取值0x6还原为0x5,O code取值0xA还原为0xC,以恢复出O码块。The process of restoring the hidden code block to the control code block is the reverse process of the hidden control code block. Taking the above-mentioned transcoding rule of converting the control code block to the corresponding hidden code block as an example, the process of restoring the code block after the control code block is hidden may include restoring the type field value 0x00 to 0x1E to restore the C code block; restoring the O code value 0x3 in the O code block to 0x0, restoring the O code value 0x6 to 0x5, and restoring the O code value 0xA to 0xC to restore the O code block.
可选地,若在复接的调度过程中插入了占位码块或者隐藏了控制码块,则可以先按照第一调度比例从混合码块中解复接出至少一路初始码块流,基于至少一路初始码块流获取至少一路业务码块流。其中,基于至少一路初始码块流获取至少一路业务码块流可以包括,对于至少一路初始码块流中的第一初始码块流,在第一初始码块流包括占位码块的情况下,删除第一初始码块流中的占位码块,得到第一业务码块流;或者,在第一初始码块流中包括隐藏码块的情况下,将隐藏码块还原为控制码块,得到第一业务码块流;或者,在第一初始码块流中包括占位码块和隐藏码块的情况下,删除第一初始码块流中的占位码块,并将隐藏码块还原为控制码块,得到第一业务码块流。第一业务码块流是至少一路初始码块流中的码块流。Optionally, if placeholder code blocks are inserted or control code blocks are hidden during the multiplexing scheduling process, at least one initial code block stream can be demultiplexed from the mixed code blocks according to the first scheduling ratio, and at least one service code block stream can be obtained based on the at least one initial code block stream. The step of obtaining the at least one service code block stream based on the at least one initial code block stream can include, for a first initial code block stream in the at least one initial code block stream, if the first initial code block stream includes placeholder code blocks, deleting the placeholder code blocks in the first initial code block stream to obtain the first service code block stream; or, if the first initial code block stream includes hidden code blocks, restoring the hidden code blocks to control code blocks to obtain the first service code block stream; or, if the first initial code block stream includes placeholder code blocks and hidden code blocks, deleting the placeholder code blocks in the first initial code block stream and restoring the hidden code blocks to control code blocks to obtain the first service code block stream. The first service code block stream is the code block stream in the at least one initial code block stream.
在本申请实施例中,复接信息中除了包括第一调度比例之外,还包括该至少一路业务码块流对应的第一业务标识。因此,在复接码块流中解复接出至少一路业务码块流之后,可以根据至少一路业务码块流对应的第一业务标识确定至少一路业务码块流对应的出端口,进而通过至少一路业务码块流对应的出端口转发该至少一路业务码块流。例如,根据至少一路业务码块流对应的第一业务标识进行查表转发。In this embodiment of the present application, the multiplexing information includes, in addition to the first scheduling ratio, the first service identifier corresponding to the at least one service code block stream. Therefore, after demultiplexing the at least one service code block stream from the multiplexed code block stream, the egress port corresponding to the at least one service code block stream can be determined based on the first service identifier corresponding to the at least one service code block stream, and the at least one service code block stream can be forwarded via the egress port corresponding to the at least one service code block stream. For example, forwarding can be performed by performing a table lookup based on the first service identifier corresponding to the at least one service code block stream.
由此,通过处理方式二实现对复接码块流的解复接处理,使得接收端节点均可以从复接码块流中恢复出至少一路业务码块流,实现至少一路业务码块流的正确转发。Therefore, the demultiplexing process of the multiplexed code block stream is implemented through the second processing mode, so that each receiving node can recover at least one service code block stream from the multiplexed code block stream and realize the correct forwarding of at least one service code block stream.
下面,以复接码块是OH码块为例,结合图22所示的系统框图以及图23所示的流程图,对本申请实施例提供的码块处理方法中的解复接处理过程进行举例说明。其中,解复接处理过程包括但不限于如下步骤31-步骤34。The following describes the demultiplexing process in the code block processing method provided by the embodiment of the present application, taking the OH code block as an example, in conjunction with the system block diagram shown in Figure 22 and the flowchart shown in Figure 23. The demultiplexing process includes but is not limited to the following steps 31 to 34.
步骤31,接收码块流,根据OH码块进行定界,并提取OH码块中的复接信息。Step 31: Receive a code block stream, perform delimitation according to the OH code block, and extract multiplexing information from the OH code block.
示例性地,接收通过高速通道交叉传输的码块流即为复接码块流。在复接码块流中提取出混合码块,将混合码块加入到业务组码块队列。For example, the code block stream received through the high-speed channel cross transmission is the multiplexed code block stream. The mixed code block is extracted from the multiplexed code block stream and added to the service group code block queue.
步骤32,删除混合码块中的所有空闲码块。Step 32: Delete all idle code blocks in the mixed code block.
步骤33,按照调度比例从混合码块中分解出各路码块流。Step 33: Decompose the mixed code block into various code block streams according to the scheduling ratio.
步骤34,针对每路码块流,删除每路码块流中的所有占位码块,得到多路业务码块流。Step 34: For each code block stream, delete all placeholder code blocks in each code block stream to obtain multiple service code block streams.
可选地,在复接过程中隐藏控制码块的场景下,参见图24所示的系统框图。相较于图22所示的复接处理的系统框图,在删除每路业务码块流中的所有空闲码块之后,对每路业务码块流中的控制码块进行转码隐藏,将隐藏控制码块之后的码块即隐藏码块放入业务码块队列;相较于图23所示的接复接处理的系统框图,在删除每路码块流中的所有占位码块之后,对每路码块流中的隐藏的控制码块进行还原。Optionally, in the scenario where control blocks are hidden during the multiplexing process, see the system block diagram shown in Figure 24. Compared to the system block diagram for multiplexing processing shown in Figure 22, after deleting all idle blocks in each service block stream, the control blocks in each service block stream are transcoded and hidden, and the blocks following the hidden control blocks, i.e., the hidden blocks, are placed in the service block queue. Compared to the system block diagram for multiplexing processing shown in Figure 23, after deleting all placeholder blocks in each block stream, the hidden control blocks in each block stream are restored.
上述过程中主要介绍了单次复接处理与单次解复接处理。本申请实施例提供的方法还可用于多次复接,使得该方法能够在更多的需求场景下被使用,多次复接则意味着多次解复接。也就是说,对于一次复接后的复接码块流可以看做是一条普通的业务码块流,再次跟其它业务码块流一起进行复接。在解复接的过程,即逐层解开复接码块流,直至恢复出最初的业务码块流。多次复接及多次解复接,可以在同一个网络设备实现,也可以在不同的网络设备实现。The above process mainly introduces a single multiplexing process and a single demultiplexing process. The method provided in the embodiment of the present application can also be used for multiple multiplexing, so that the method can be used in more demand scenarios, and multiple multiplexing means multiple demultiplexing. In other words, the multiplexed code block stream after one multiplexing can be regarded as an ordinary business code block stream, and is multiplexed again with other business code block streams. In the demultiplexing process, the multiplexed code block stream is demultiplexed layer by layer until the original business code block stream is restored. Multiple multiplexing and multiple demultiplexing can be implemented on the same network device or on different network devices.
示例性地,参见图25所示的多次复接过程的场景示意图,节点1向节点4发送业务码块流1,节点2向节点4发送业务码块流2,节点3向节点4发送业务码块流3;节点4通过复接模块将该3条业务码块流复接为复接码块流1,并向节点7发送该复接码块流1,节点5向节点7发送业务码块流4,节点6向节点7发送业务码块流5;节点7将2条业务码块流与复接码块流1复接为复接码块流2,并向节点8发送该复接码块流2;节点8通过解复接模块解复接该复接码块流2,还原出业务码块流1-业务码块流5,分别向节点9发送业务码块流1,向节点10发送业务码块流2,向节点11发送业务码块流3,向节点12发送业务码块流4,向节点13发送业务码块流5。For example, referring to the scenario diagram of multiple multiplexing processes shown in Figure 25, node 1 sends business code block stream 1 to node 4, node 2 sends business code block stream 2 to node 4, and node 3 sends business code block stream 3 to node 4; node 4 multiplexes the three business code block streams into multiplexed code block stream 1 through the multiplexing module, and sends the multiplexed code block stream 1 to node 7, node 5 sends business code block stream 4 to node 7, and node 6 sends business code block stream 5 to node 7; node 7 multiplexes the two business code block streams with the multiplexed code block stream 1 into multiplexed code block stream 2, and sends the multiplexed code block stream 2 to node 8; node 8 demultiplexes the multiplexed code block stream 2 through the demultiplexing module, restores business code block stream 1-business code block stream 5, and sends business code block stream 1 to node 9, business code block stream 2 to node 10, business code block stream 3 to node 11, business code block stream 4 to node 12, and business code block stream 5 to node 13 respectively.
在一种可能的实施方式中,步骤901中第一通信装置获取的至少一路业务码块流中的任一业务码块流可以是按照第二调度比例调度至少一路子业务码块流得到的,即任一业务码块流为至少一路子业务码块流复接后的码块流。其中,至少一路子业务码块流复接为任一业务码块流的处理过程可参见图9所示的复接处理过程,此处不再赘述。In one possible implementation, any one of the at least one service code block streams acquired by the first communication device in step 901 may be obtained by scheduling at least one sub-service code block stream according to the second scheduling ratio. That is, any one of the service code block streams is a code block stream obtained by multiplexing at least one sub-service code block stream. The process for multiplexing at least one sub-service code block stream into any one of the service code block streams can be seen in the multiplexing process shown in FIG. 9 and is not further described here.
在该情况下,将任一业务码块流称为子复接码块流,则子复接码块流的第一业务标识即为任一业务码块流的第二业务标识。可选地,复接信息中还包括第二调度比例或至少一路子业务码块流对应的第三业务标识中的至少一种;则按照第一调度比例从混合码块中解复接出至少一路业务码块流之后,可以按照第二调度比例从任一业务码块流中解复接出至少一路子业务码块流。对任一业务码块流的解复接处理过程可参见对复接码块流的解复接处理过程,此处不再赘述。In this case, any service code block stream is referred to as a sub-multiplexed code block stream, and the first service identifier of the sub-multiplexed code block stream is the second service identifier of any service code block stream. Optionally, the multiplexing information also includes at least one of a second scheduling ratio or a third service identifier corresponding to at least one sub-service code block stream. After demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio, at least one sub-service code block stream can be demultiplexed from any service code block stream according to the second scheduling ratio. The demultiplexing process for any service code block stream can be referred to the demultiplexing process for the multiplexed code block stream and will not be repeated here.
示例性地,以复接信息包括多次复接分别对应的业务标识为例,可以对图15或图16所示的Client Group ID字段可以分级定义。参见图26所示的分级定义的示意图,将Client Group ID字段的16bit切分成4个4bit字段,每个4bit字段用来指示一级复接的业务标识,最低位的4bit对应首次复接的业务标识,即L1复接,最高位的4bit对应第四次复接的业务标识,即L4复接,从而Client Group ID字段最多支持携带四次复接的业务标识。For example, in the case where multiplexing information includes service identifiers corresponding to multiple multiplexing, the Client Group ID field shown in FIG15 or FIG16 can be defined hierarchically. Referring to the schematic diagram of the hierarchical definition shown in FIG26 , the 16 bits of the Client Group ID field are divided into four 4-bit fields, each of which is used to indicate the service identifier of a first-level multiplexing. The least significant 4 bits correspond to the service identifier of the first multiplexing, i.e., L1 multiplexing, and the most significant 4 bits correspond to the service identifier of the fourth multiplexing, i.e., L4 multiplexing. Thus, the Client Group ID field supports carrying the service identifiers of up to four multiplexings.
综上,在图19所示的码块处理方法中,在获取到复接码块流后,能够根据复接码块流中的复接码块携带的复接信息对复接码块流进行处理。由此,实现了将至少一路业务码块流复接为一路复接码块流进行处理,且通过复接信息确保了对复接码块流处理的准确性。In summary, in the block processing method shown in FIG19 , after obtaining a multiplexed block stream, the multiplexed block stream can be processed based on the multiplexing information carried by the multiplexed blocks in the multiplexed block stream. This achieves multiplexing of at least one service block stream into a single multiplexed block stream for processing, while ensuring the accuracy of the processing of the multiplexed block stream using the multiplexing information.
以上介绍了本申请实施例的码块处理方法,与上述方法对应,本申请实施例还提供了码块处理装置。图27是本申请实施例提供的一种码块处理装置的结构示意图,基于图27所示的如下多个模块,该图27所示的码块处理装置能够执行第一通信装置或第二通信装置所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图27所示,该装置包括:The above describes the code block processing method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a code block processing device. Figure 27 is a structural diagram of a code block processing device provided by an embodiment of the present application. Based on the following multiple modules shown in Figure 27, the code block processing device shown in Figure 27 can perform all or part of the operations performed by the first communication device or the second communication device. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiment of the present application does not limit this. As shown in Figure 27, the device includes:
收发模块2701,用于执行图9所示的方法中的接收和/或发送相关的操作,处理模块2702,用于执行图9所示的方法中的接收和/或发送相关的操作之外的其它操作。或者,收发模块2701,用于执行图19所示的方法中的接收和/或发送相关的操作之外的其它操作,处理模块2702,用于执行图19所示的方法中的接收和/或发送相关的操作之外的其它操作。The transceiver module 2701 is configured to perform operations related to receiving and/or sending in the method shown in FIG9 , and the processing module 2702 is configured to perform operations other than the operations related to receiving and/or sending in the method shown in FIG9 . Alternatively, the transceiver module 2701 is configured to perform operations other than the operations related to receiving and/or sending in the method shown in FIG19 , and the processing module 2702 is configured to perform operations other than the operations related to receiving and/or sending in the method shown in FIG19 .
在一种可能的实施方式中,收发模块2701包括接收模块和/或发送模块。接收模块用于执行接收相关的操作,发送模块用于执行发送相关的操作。In a possible implementation, the transceiver module 2701 includes a receiving module and/or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.
在收发模块2701,用于执行图9所示的方法中的接收和/或发送相关的操作,处理模块2702,用于执行图9所示的方法中的接收和/或发送相关的操作之外的其它操作的情况下,处理模块2702,用于获取至少一路业务码块流;基于至少一路业务码块流获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息,复接信息用于对复接码块流进行处理。In the case where the transceiver module 2701 is used to perform operations related to reception and/or transmission in the method shown in Figure 9, and the processing module 2702 is used to perform operations other than the operations related to reception and/or transmission in the method shown in Figure 9, the processing module 2702 is used to obtain at least one business code block stream; and obtain a multiplexed code block stream based on the at least one business code block stream, the multiplexed code block stream including mixed code blocks and multiplexed code blocks, the mixed code blocks being code blocks obtained by scheduling code blocks in at least one business code block stream according to a first scheduling ratio, the multiplexed code blocks carrying multiplexing information, and the multiplexing information being used to process the multiplexed code block stream.
在一种可能的实施方式中,处理模块2702,还用于在按照第一调度比例调度至少一路业务码块流中的码块的过程中,如果第一业务码块流中包括的码块的第一数量小于调度第一业务码块流中码块的第二数量,插入第三数量的占位码块,其中,第一业务码块流是至少一路业务码块流中的码块流,第三数量是第二数量与第一数量的差值。In one possible implementation, the processing module 2702 is further configured to, during a process of scheduling code blocks in at least one business code block stream according to a first scheduling ratio, insert a third number of placeholder code blocks if a first number of code blocks included in the first business code block stream is less than a second number of code blocks scheduled in the first business code block stream, wherein the first business code block stream is a code block stream in at least one business code block stream, and the third number is a difference between the second number and the first number.
在一种可能的实施方式中,收发模块2702,用于接收至少一路通道传输的码块流,至少一路通道传输的码块流包括第一码块流;处理模块2702,用于删除第一码块流中的全部空闲码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。In one possible implementation, the transceiver module 2702 is configured to receive a code block stream transmitted through at least one channel, where the code block stream transmitted through at least one channel includes a first code block stream; and the processing module 2702 is configured to delete all idle code blocks in the first code block stream to obtain a first service code block stream, where the first service code block stream is a code block stream in the at least one service code block stream.
在一种可能的实施方式中,处理模块2702,还用于基于频率偏差在调度的码块中插入空闲码块,频率频差为用于传输复接码块流的节点之间存在的频率偏差,空闲码块的数量为至少两个,至少两个空闲码块之间的汉明距离满足距离要求。In one possible implementation, the processing module 2702 is also used to insert idle code blocks into the scheduled code blocks based on the frequency deviation, where the frequency deviation is the frequency deviation between the nodes used to transmit the multiplexed code block stream, the number of idle code blocks is at least two, and the Hamming distance between at least two idle code blocks meets the distance requirement.
在一种可能的实施方式中,混合码块中包括隐藏码块,隐藏码块通过对至少一路业务码块流中的控制码块进行隐藏得到。In a possible implementation, the mixed code block includes a hidden code block, and the hidden code block is obtained by hiding a control code block in at least one service code block stream.
在一种可能的实施方式中,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中,第一开销码块用于提取复接码块流中的混合码块。In a possible implementation, the multiplexed code block is a first overhead code block, the multiplexing information is carried in a reserved field of the first overhead code block, and the first overhead code block is used to extract a mixed code block from the multiplexed code block stream.
在一种可能的实施方式中,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中,复接码块流中还包括第二开销码块,第二开销码块用于提取复接码块流中的复接指示码块和混合码块。In one possible implementation, the multiplexing code block is a multiplexing indication code block, the multiplexing information is carried in a designated field of the multiplexing indication code block, and the multiplexing code block stream also includes a second overhead code block, which is used to extract the multiplexing indication code block and the mixed code block in the multiplexing code block stream.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到。In a possible implementation manner, the service code block stream in the at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to the second scheduling ratio.
在一种可能的实施方式中,第一调度比例基于至少一路业务码块流的带宽或传输速率确定。In a possible implementation, the first scheduling ratio is determined based on the bandwidth or transmission rate of at least one service code block flow.
在一种可能的实施方式中,收发模块2702,还用于根据复接码块流的第一业务标识确定出端口,通过出端口发送复接码块流,复接码块流的传输速率大于至少一路业务码块流的传输速率。In a possible implementation, the transceiver module 2702 is further configured to determine an egress port based on the first service identifier of the multiplexed code block stream, and send the multiplexed code block stream through the egress port, wherein the transmission rate of the multiplexed code block stream is greater than the transmission rate of at least one service code block stream.
在一种可能的实施方式中,复接信息包括复接码块流的第一业务标识或调度信息中的至少一种,调度信息包括第一调度比例或至少一路业务码块流对应的第二业务标识中的至少一种。In a possible implementation, the multiplexing information includes at least one of a first service identifier or scheduling information of the multiplexed code block stream, and the scheduling information includes at least one of a first scheduling ratio or a second service identifier corresponding to at least one service code block stream.
在收发模块2701,用于执行图19所示的方法中的接收和/或发送相关的操作之外的其它操作,处理模块2702,用于执行图19所示的方法中的接收和/或发送相关的操作之外的其它操作的情况下,处理模块2702,用于获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息;根据复接信息对复接码块流进行处理。In the case where the transceiver module 2701 is used to perform operations other than the operations related to receiving and/or sending in the method shown in Figure 19, and the processing module 2702 is used to perform operations other than the operations related to receiving and/or sending in the method shown in Figure 19, the processing module 2702 is used to obtain a multiplexed code block stream, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information; the multiplexed code block stream is processed according to the multiplexing information.
在一种可能的实施方式中,复接信息包括调度信息,调度信息包括第一调度比例;处理模块2702,用于在复接码块流中提取出混合码块,按照第一调度比例从混合码块中解复接出至少一路业务码块流。In one possible implementation, the multiplexing information includes scheduling information, and the scheduling information includes a first scheduling ratio; the processing module 2702 is used to extract a mixed code block from the multiplexed code block stream, and demultiplex at least one service code block stream from the mixed code block according to the first scheduling ratio.
在一种可能的实施方式中,处理模块2702,用于在混合码块包括空闲码块的情况下,删除混合码块中的空闲码块;按照第一调度比例从删除空闲码块后的混合码块中解复接出至少一路业务码块流。In one possible implementation, the processing module 2702 is configured to, when the mixed code block includes an idle code block, delete the idle code block in the mixed code block; and demultiplex at least one service code block stream from the mixed code block after the idle code block is deleted according to the first scheduling ratio.
在一种可能的实施方式中,处理模块2702,用于按照第一调度比例从混合码块中解复接出至少一路初始码块流,至少一路初始码块流包括第一初始码块流;在第一初始码块流包括占位码块的情况下,删除第一初始码块流中的占位码块,得到第一业务码块流,第一业务码块流是至少一路业务码块流中的码块流。In one possible implementation, the processing module 2702 is configured to demultiplex at least one initial code block stream from the mixed code block according to a first scheduling ratio, where the at least one initial code block stream includes a first initial code block stream; and when the first initial code block stream includes placeholder code blocks, the placeholder code blocks in the first initial code block stream are deleted to obtain a first service code block stream, where the first service code block stream is a code block stream in the at least one service code block stream.
在一种可能的实施方式中,混合码块中包括隐藏码块,在按照第一调度比例从混合码块中解复接出至少一路业务码块流的过程中,将隐藏码块还原为控制码块。In a possible implementation, the mixed code block includes a hidden code block, and in the process of demultiplexing at least one service code block stream from the mixed code block according to the first scheduling ratio, the hidden code block is restored to a control code block.
在一种可能的实施方式中,至少一路业务码块流中的业务码块流是按照第二调度比例调度至少一路子业务码块流得到,调度信息中还包括第二调度比例;处理模块2702,还用于按照第二调度比例从业务码块流中解复接出至少一路子业务码块流。In one possible implementation, the service code block stream in at least one service code block stream is obtained by scheduling at least one sub-service code block stream according to a second scheduling ratio, and the scheduling information also includes the second scheduling ratio; the processing module 2702 is also used to demultiplex at least one sub-service code block stream from the service code block stream according to the second scheduling ratio.
在一种可能的实施方式中,复接信息包括复接码块流的第一业务标识;处理模块2702,用于根据第一业务标识对复接码块流进行转发处理。In a possible implementation, the multiplexing information includes a first service identifier of the multiplexed code block stream; and the processing module 2702 is configured to perform forwarding processing on the multiplexed code block stream according to the first service identifier.
在一种可能的实施方式中,复接码块是第一开销码块,复接信息携带在第一开销码块的保留字段中;处理模块2702,用于在入端口剥离复接码块流中的第一开销码块,得到混合码块;收发模块2702,用于将混合码块发送至基于第一业务标识确定的出端口,并在插入第三开销码块后通过出端口发送,第三开销码块中携带复接信息。In one possible implementation, the multiplexing code block is a first overhead code block, and the multiplexing information is carried in a reserved field of the first overhead code block; the processing module 2702 is used to strip the first overhead code block in the multiplexing code block stream at the input port to obtain a mixed code block; the transceiver module 2702 is used to send the mixed code block to the output port determined based on the first service identifier, and send it through the output port after inserting a third overhead code block, where the third overhead code block carries the multiplexing information.
在一种可能的实施方式中,复接码块是复接指示码块,复接信息携带在复接指示码块的指定字段中,复接码块流还包括第二开销码块;处理模块2702,用于在入端口剥离复接码块流中的第二开销码块,得到复接指示码块和混合码块;收发模块2702,用于将复接指示码块和混合码块发送至基于第一业务标识确定的出端口,并在插入第四开销码块后通过出端口发送。In one possible implementation, the multiplexing code block is a multiplexing indication code block, the multiplexing information is carried in a designated field of the multiplexing indication code block, and the multiplexing code block stream also includes a second overhead code block; the processing module 2702 is used to strip off the second overhead code block in the multiplexing code block stream at the input port to obtain a multiplexing indication code block and a mixed code block; the transceiver module 2702 is used to send the multiplexing indication code block and the mixed code block to the output port determined based on the first service identifier, and send them through the output port after inserting the fourth overhead code block.
在一种可能的实施方式中,收发模块2702,用于接收复接码块流,复接码块流还包括基于频率偏差插入的空闲码块;处理模块2702,用于基于频率偏差对复接码块流进行频偏调整。In a possible implementation, the transceiver module 2702 is configured to receive a multiplexed code block stream, which further includes idle code blocks inserted based on a frequency deviation; and the processing module 2702 is configured to perform frequency deviation adjustment on the multiplexed code block stream based on the frequency deviation.
应理解的是,上述图27提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程以及有益效果详见方法实施例,这里不再赘述。It should be understood that the device provided in FIG. 27 is merely an example of the division of the functional modules described above when implementing its functions. In actual applications, the functions described above can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments are based on the same concept. The specific implementation process and beneficial effects thereof are detailed in the method embodiments and will not be repeated here.
参见图28,图28示出了本申请一个示例性实施例提供的网络设备2000的结构示意图。图28所示的网络设备2000用于执行上述图9或图19所示的码块处理方法所涉及的操作。该网络设备2000例如是交换机、路由器等,该网络设备2000可以由一般性的总线体系结构来实现。Referring to FIG. 28 , FIG. 28 illustrates a schematic diagram of the structure of a network device 2000 provided in accordance with an exemplary embodiment of the present application. The network device 2000 illustrated in FIG. 28 is configured to execute the operations described in the code block processing method illustrated in FIG. 9 or FIG. 19 . The network device 2000 is, for example, a switch or router, and may be implemented using a general bus architecture.
如图28所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。As shown in FIG. 28 , the network device 2000 includes at least one processor 2001 , a memory 2003 , and at least one communication interface 2004 .
处理器2001例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。The processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), 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 solution of the present application. For example, the processor 2001 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present invention. The processor may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图28中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。Optionally, network device 2000 also includes a bus. The bus is used to transmit information between the components of network device 2000. The bus may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. Buses can be categorized as address buses, data buses, control buses, and the like. For ease of illustration, FIG28 shows only one line, but this does not imply that there is only one bus or only one type of bus.
存储器2003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。The memory 2003 may be, for example, a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, a random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, 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 is not limited thereto. The memory 2003 may exist independently and be connected to the processor 2001 via a bus. The memory 2003 may also be integrated with the processor 2001.
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(radio access network,RAN)或无线局域网(wireless local area networks,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(Ethernet)接口、快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口,异步传输模式(Asynchronous Transfer Mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。The communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks. The communication network can be Ethernet, a radio access network (RAN), or a wireless local area network (WLAN). The communication interface 2004 can include a wired communication interface and a wireless communication interface. Specifically, the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In an embodiment of the present application, the communication interface 2004 can be used for the network device 2000 to communicate with other devices.
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图28中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-core CPU)处理器,也可以是一个多核(multi-core CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。In a specific implementation, as an example, processor 2001 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG28 . Each of these processors may be a single-core CPU processor or a multi-core CPU processor. A processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图28中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-core CPU),也可以是一个多核处理器(multi-core CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。In a specific implementation, as an example, network device 2000 may include multiple processors, such as processor 2001 and processor 2005 shown in FIG28 . Each of these processors may be a single-core CPU or a multi-core CPU. A processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。In a specific implementation, as an embodiment, the network device 2000 may further include an output device and an input device. The output device communicates with the processor 2001 and can display information in various ways. For example, the output device can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 2001 and can receive user input in various ways. For example, the input device can be a mouse, a keyboard, a touch screen device, or a sensor device.
在一些实施例中,存储器2003用于存储执行本申请方案的程序代码2010,处理器2001可以执行存储器2003中存储的程序代码2010。也即是,网络设备2000可以通过处理器2001以及存储器2003中的程序代码2010,来实现方法实施例提供的码块处理方法。程序代码2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。In some embodiments, the memory 2003 is used to store program code 2010 for executing the solution of the present application, and the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the network device 2000 can implement the code block processing method provided by the method embodiment through the processor 2001 and the program code 2010 in the memory 2003. The program code 2010 may include one or more software modules. Optionally, the processor 2001 itself may also store program code or instructions for executing the solution of the present application.
在具体实施例中,本申请实施例的网络设备2000可对应于上述各个方法实施例中的第一通信装置,网络设备2000中的处理器2001读取存储器2003中的指令,使图28所示的网络设备2000能够执行第一通信装置所执行的全部或部分操作。In a specific embodiment, the network device 2000 of the embodiment of the present application may correspond to the first communication device in the above-mentioned method embodiments. The processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 28 can execute all or part of the operations performed by the first communication device.
具体的,处理器2001用于获取至少一路业务码块流;基于至少一路业务码块流获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息,复接信息用于对复接码块流进行处理。Specifically, the processor 2001 is used to obtain at least one business code block stream; based on the at least one business code block stream, a multiplexed code block stream is obtained, the multiplexed code block stream includes a mixed code block and a multiplexed code block, the mixed code block is a code block obtained by scheduling the code blocks in at least one business code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information, and the multiplexing information is used to process the multiplexed code block stream.
其他可选的实施方式,为了简洁,在此不再赘述。For the sake of brevity, other optional implementations will not be described here in detail.
又例如,本申请实施例的网络设备2000可对应于上述各个方法实施例中的第二通信装置,网络设备2000中的处理器2001读取存储器2003中的指令,使图28所示的网络设备2000能够执行第二通信装置所执行的全部或部分操作。For another example, the network device 2000 of an embodiment of the present application may correspond to the second communication device in each of the above-mentioned method embodiments. The processor 2001 in the network device 2000 reads the instructions in the memory 2003, so that the network device 2000 shown in Figure 28 can execute all or part of the operations performed by the second communication device.
具体的,处理器2001用于获取复接码块流,复接码块流包括混合码块和复接码块,混合码块是按照第一调度比例调度至少一路业务码块流中的码块得到的码块,复接码块中携带复接信息;根据复接信息对复接码块流进行处理。Specifically, processor 2001 is used to obtain a multiplexed code block stream, which includes a mixed code block and a multiplexed code block. The mixed code block is a code block obtained by scheduling the code blocks in at least one service code block stream according to a first scheduling ratio, and the multiplexed code block carries multiplexing information; the multiplexed code block stream is processed according to the multiplexing information.
其他可选的实施方式,为了简洁,在此不再赘述。For the sake of brevity, other optional implementations will not be described here in detail.
网络设备2000还可以对应于上述图27所示的码块处理装置,码块处理装置中的每个功能模块采用网络设备2000的软件实现。换句话说,码块处理装置包括的功能模块为网络设备2000的处理器2001读取存储器2003中存储的程序代码2010后生成的。The network device 2000 may also correspond to the code block processing apparatus shown in FIG27 , and each functional module in the code block processing apparatus is implemented using software of the network device 2000. In other words, the functional modules included in the code block processing apparatus are generated by the processor 2001 of the network device 2000 after reading the program code 2010 stored in the memory 2003.
其中,图9或图19所示的码块处理方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。Among them, each step of the code block processing method shown in Figure 9 or Figure 19 is completed by the hardware integrated logic circuit or software instructions in the processor of the network device 2000. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
参见图29,图29示出了本申请另一个示例性实施例提供的网络设备2100的结构示意图,图29所示的网络设备2100用于执行上述图9或图19所示的码块处理方法所涉及的全部或部分操作。该网络设备2100例如是交换机、路由器等,该网络设备2100可以由一般性的总线体系结构来实现。Referring to FIG. 29 , FIG. 29 shows a schematic diagram of the structure of a network device 2100 provided in another exemplary embodiment of the present application. The network device 2100 shown in FIG. 29 is configured to perform all or part of the operations involved in the code block processing method shown in FIG. 9 or FIG. 19 . The network device 2100 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.
如图29所示,网络设备2100包括:主控板2110和接口板2130。As shown in FIG. 29 , the network device 2100 includes a main control board 2110 and an interface board 2130 .
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(route processor card),主控板2110用于对网络设备2100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板2110包括:中央处理器2111和存储器2112。The main control board (MCB), also known as the main processing unit (MPU) or route processor card, controls and manages various components in network device 2100, including routing calculations, device management, device maintenance, and protocol processing. MCB 2110 includes a central processing unit (CPU) 2111 and memory 2112.
接口板2130也称为线路接口单元(line processing unit,LPU)、线卡(line card)或业务板。接口板2130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(Packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(Flexible Ethernet Clients,FlexE Clients)。接口板2130包括:中央处理器2131、网络处理器2132、转发表项存储器2134和物理接口卡(physical interface card,PIC)2133。Interface board 2130 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET/SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients) interfaces. Interface board 2130 includes a central processing unit (CPU) 2131, a network processor (NPU) 2132, a forwarding table memory 2134, and a physical interface card (PIC) 2133.
接口板2130上的中央处理器2131用于对接口板2130进行控制管理并与主控板2110上的中央处理器2111进行通信。The central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2111 on the main control board 2110 .
网络处理器2132用于实现报文的转发处理。网络处理器2132的形态可以是转发芯片。转发芯片可以是网络处理器(network processor,NP)。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。具体而言,网络处理器2132用于基于转发表项存储器2134保存的转发表转发接收到的报文,如果报文的目的地址为网络设备2100的地址,则将该报文上送至CPU(如中央处理器2131)处理;如果报文的目的地址不是网络设备2100的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理可以包括:报文入接口的处理,转发表查找;下行报文的处理可以包括:转发表查找等等。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。The network processor 2132 is used to implement message forwarding processing. The network processor 2132 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 2132 is used to forward received messages based on the forwarding table stored in the forwarding entry memory 2134. If the destination address of the message is the address of the network device 2100, the message is sent to the CPU (such as the central processing unit 2131) for processing. If the destination address of the message is not the address of the network device 2100, the next hop and outgoing interface corresponding to the destination address are searched in the forwarding table based on the destination address, and the message is forwarded to the outgoing interface corresponding to the destination address. The processing of uplink messages may include processing the message input interface and forwarding table lookup; the processing of downlink messages may include forwarding table lookup, etc. In some embodiments, the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, so that a forwarding chip is not required in the interface board.
物理接口卡2133用于实现物理层的对接功能,原始的流量由此进入接口板2130,以及处理后的报文从该物理接口卡2133发出。物理接口卡2133也称为子卡,可安装在接口板2130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器2132处理。在一些实施例中,中央处理器2131也可执行网络处理器2132的功能,比如基于通用CPU实现软件转发,从而物理接口卡2133中不需要网络处理器2132。Physical interface card 2133 implements physical layer interconnection. Raw traffic enters interface board 2130 through this card, and processed packets are sent out from this physical interface card 2133. Physical interface card 2133, also known as a daughter card, can be installed on interface board 2130. It converts optical and electrical signals into packets, performs a validity check on these packets, and then forwards them to network processor 2132 for processing. In some embodiments, central processing unit 2131 can also perform the functions of network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 2132 in physical interface card 2133.
可选地,网络设备2100包括多个接口板,例如网络设备2100还包括接口板2140,接口板2140包括:中央处理器2141、网络处理器2142、转发表项存储器2144和物理接口卡2143。接口板2140中各部件的功能和实现方式与接口板2130相同或相似,在此不再赘述。Optionally, the network device 2100 includes multiple interface boards. For example, the network device 2100 further includes an interface board 2140. The interface board 2140 includes a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143. The functions and implementation of each component in the interface board 2140 are the same as or similar to those of the interface board 2130 and are not described in detail here.
可选地,网络设备2100还包括交换网板2120。交换网板2120也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备2100有多个接口板的情况下,交换网板2120用于完成各接口板之间的数据交换。例如,接口板2130和接口板2140之间可以通过交换网板2120通信。Optionally, network device 2100 further includes a switching fabric board 2120. Switching fabric board 2120 may also be referred to as a switch fabric unit (SFU). If network device 2100 has multiple interface boards, switching fabric board 2120 is used to exchange data between the interface boards. For example, interface board 2130 and interface board 2140 can communicate via switching fabric board 2120.
主控板2110和接口板耦合。例如。主控板2110、接口板2130和接口板2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板2110和接口板2130及接口板2140之间建立进程间通信协议(inter-process communication,IPC)通道,主控板2110和接口板2130及接口板2140之间通过IPC通道进行通信。The main control board 2110 is coupled to the interface board. For example, the main control board 2110, the interface board 2130, the interface board 2140, and the switching network board 2120 are interconnected via a system bus and a system backplane. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2110 and the interface boards 2130 and 2140. Communication between the main control board 2110 and the interface boards 2130 and 2140 is performed via the IPC channel.
在逻辑上,网络设备2100包括控制面和转发面,控制面包括主控板2110和中央处理器2111,转发面包括执行转发的各个组件,比如转发表项存储器2134、物理接口卡2133和网络处理器2132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护网络设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器2132基于控制面下发的转发表对物理接口卡2133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器2134中。在有些实施例中,控制面和转发面可以完全分离,不在同一网络设备上。Logically, network device 2100 includes a control plane and a forwarding plane. The control plane includes a main control board 2110 and a central processing unit (CPU) 2111. The forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, physical interface cards 2133, and a network processor 2132. The control plane performs routing functions, generates forwarding tables, processes signaling and protocol messages, and configures and maintains the network device's status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding tables sent by the control plane. The forwarding tables sent by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same network device.
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的网络设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态网络设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。It's worth noting that there may be one or more main control boards (SPUs), which can include both active and standby SPUs. There may also be one or more interface boards. The higher the network device's data processing capabilities, the more interface boards it provides. Interface boards can also have one or more physical interface cards. There may be no SPUs, one or more SPUs, and multiple SPUs can provide load balancing and redundancy. In a centralized forwarding architecture, network devices may not require SPUs; the interface boards handle service data processing for the entire system. In a distributed forwarding architecture, network devices may have at least one SPU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, network devices with distributed architectures have greater data access and processing capabilities than those with centralized architectures. Alternatively, a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU on this card, performing the combined functions of the two. This type of network device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers). The specific architecture used depends on the specific network deployment scenario and is not specified here.
在具体实施例中,网络设备2100对应于上述图27所示的码块处理装置。在一些实施例中,图27所示的码块处理装置中的收发模块2701相当于网络设备2100中的物理接口卡2133,确定模块2702相当于网络设备2100中的中央处理器2111或网络处理器2132。In a specific embodiment, the network device 2100 corresponds to the code block processing apparatus shown in FIG27 . In some embodiments, the transceiver module 2701 in the code block processing apparatus shown in FIG27 corresponds to the physical interface card 2133 in the network device 2100 , and the determination module 2702 corresponds to the central processing unit 2111 or the network processor 2132 in the network device 2100 .
本申请实施例还提供了一种码块处理系统,该码块处理系统包括:第一通信装置和第二通信装置。例如,第一通信装置为图28所示的网络设备2000或图29所示的网络设备2100,第二通信装置为图28所示的网络设备2000或图29所示的网络设备2100。第一通信装置及第二通信装置所执行的码块处理方法可参见上述图9或图19所示实施例的相关描述,此处不再加以赘述。The present application also provides a code block processing system, comprising: a first communication device and a second communication device. For example, the first communication device is the network device 2000 shown in FIG. 28 or the network device 2100 shown in FIG. 29 , and the second communication device is the network device 2000 shown in FIG. 28 or the network device 2100 shown in FIG. 29 . The code block processing method performed by the first communication device and the second communication device can be found in the description of the embodiment shown in FIG. 9 or FIG. 19 above, and will not be further described here.
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一通信装置或第二通信装置所需执行的方法。An embodiment of the present application further provides a communication device, comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path. The memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals. When the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the first communication device or the second communication device.
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。It should be understood that the processor described above may be a CPU, or other general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports the Advanced Reduced Instruction Set Machine (ARM) architecture.
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。Furthermore, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store device type information.
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。The memory may be volatile or nonvolatile, or may include both. Nonvolatile memory may be read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), or flash memory. Volatile memory may be random access memory (RAM), which serves as an external cache memory. By way of example and not limitation, many forms of RAM are available. For example, static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronized dynamic random access memory (SLDRAM) and direct rambus RAM (DR RAM).
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行,以使计算机实现如上任一的码块处理方法。An embodiment of the present application further provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor to enable a computer to implement any of the above code block processing methods.
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。The embodiments of the present application further provide a computer program (product), which, when executed by a computer, can enable a processor or computer to execute the corresponding steps and/or processes in the above method embodiments.
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行如上任一的码块处理方法。An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes any of the above code block processing methods.
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行如上任一的码块处理方法。An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the above code block processing methods.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk))等。In the above embodiments, all or part of the embodiments can be implemented through software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive).
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those skilled in the art will appreciate that the various method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or may be accomplished by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or split between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。The computer program code for realizing the method for the embodiment of the application can be written in one or more programming languages.These computer program codes can be provided to the processor of general-purpose computer, special-purpose computer or other programmable data processing device, so that program code, when being executed by computer or other programmable data processing device, causes the function/operation specified in flow chart and/or block diagram to be implemented.Program code can be executed completely on computer, partly on computer, as independent software package, partly on computer and partly on remote computer or completely on remote computer or server.
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。In the context of the embodiments of the present application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.
机器可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。A machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art will clearly understand that, for the sake of convenience and brevity of description, the specific working processes of the above-described systems, devices, and modules can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or can be electrical, mechanical or other forms of connection.
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。The modules described as separate components may or may not be physically separate, and 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 may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。In addition, the functional modules in the various embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module. The above-mentioned integrated modules may be implemented in the form of hardware or software functional modules.
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated module is implemented in the form of 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 the present application is essentially 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, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, and other media that can store program code.
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。In this application, the terms "first", "second", etc. are used to distinguish between identical or similar items that have substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there any limitation on quantity or execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. The first image and the second image may both be images, and in some cases, may be separate and different images.
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。In this application, the term "at least one" means one or more, and the term "plurality" means two or more. For example, "plurality of second messages" means two or more second messages. The terms "system" and "network" are often used interchangeably herein.
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。It should also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the listed items. The term "and/or" describes an association between associated objects, indicating that three possible relationships exist. For example, "A and/or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character "/" in this application generally indicates that the associated objects are in an "or" relationship.
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。It will also be understood that the term “comprise” (also known as “includes,” “including,” “comprises,” and/or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and/or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。It should also be understood that the terms “if” and “if” may be interpreted to mean “when” or “upon” or “in response to determining” or “in response to detecting.” Similarly, the phrases “if it is determined that ” or “if [stated condition or event] is detected” may be interpreted to mean “upon determining ” or “in response to determining ” or “upon detecting [stated condition or event]” or “in response to detecting [stated condition or event],” depending on the context.
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。It should be understood that determining B based on A does not mean determining B based solely on A. B can also be determined based on A and/or other information.
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。It should also be understood that references throughout this specification to "one embodiment," "an embodiment," or "one possible implementation" mean that specific features, structures, or characteristics associated with that embodiment or implementation are included in at least one embodiment of the present application. Therefore, the appearance of "in one embodiment," "in an embodiment," or "one possible implementation" throughout this specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the principles of the present application should be included in the scope of protection of the present application.
Claims (26)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410128460.6 | 2024-01-29 | ||
| CN202410128460 | 2024-01-29 | ||
| CN202410425565.8 | 2024-04-09 | ||
| CN202410425565.8A CN120389827A (en) | 2024-01-29 | 2024-04-09 | Code block processing method, device, equipment, system, storage medium and program product |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025161868A1 true WO2025161868A1 (en) | 2025-08-07 |
Family
ID=96484341
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2025/071006 Pending WO2025161868A1 (en) | 2024-01-29 | 2025-01-07 | Code block processing method and apparatus, device, system, storage medium and program product |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN120389827A (en) |
| WO (1) | WO2025161868A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109995434A (en) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | A kind of data transmission method, communication equipment and storage medium |
| CN110971531A (en) * | 2018-09-28 | 2020-04-07 | 华为技术有限公司 | Data transmission method, communication equipment and storage medium |
| CN112953675A (en) * | 2019-12-10 | 2021-06-11 | 华为技术有限公司 | Data transmission method, communication equipment and storage medium |
| WO2023141777A1 (en) * | 2022-01-25 | 2023-08-03 | 华为技术有限公司 | Communication method and network device |
-
2024
- 2024-04-09 CN CN202410425565.8A patent/CN120389827A/en active Pending
-
2025
- 2025-01-07 WO PCT/CN2025/071006 patent/WO2025161868A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109995434A (en) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | A kind of data transmission method, communication equipment and storage medium |
| CN110971531A (en) * | 2018-09-28 | 2020-04-07 | 华为技术有限公司 | Data transmission method, communication equipment and storage medium |
| CN112953675A (en) * | 2019-12-10 | 2021-06-11 | 华为技术有限公司 | Data transmission method, communication equipment and storage medium |
| WO2023141777A1 (en) * | 2022-01-25 | 2023-08-03 | 华为技术有限公司 | Communication method and network device |
Also Published As
| Publication number | Publication date |
|---|---|
| CN120389827A (en) | 2025-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11082199B2 (en) | Data transmission method in optical network and optical network device | |
| US20210203588A1 (en) | Data forwarding method and device | |
| CN109600188B (en) | Data transmission method, transmission device and transmission system | |
| KR100567326B1 (en) | SONET / SDH, PDH, and Ethernet switching / transmission device and method thereof | |
| CN107438028B (en) | A method and device for customer business processing | |
| CN110768742B (en) | OAM message transmission method, sending device, receiving device and readable storage medium | |
| US9025467B2 (en) | Hitless protection for traffic received from 1+1 protecting line cards in high-speed switching systems | |
| US11271668B2 (en) | Data transmission methods, apparatuses, devices, and system | |
| US20040202205A1 (en) | Apparatus and method for aggregation and transportation of gigabit ethernet and other packet based data formats | |
| KR20210038959A (en) | Service transmission method, equipment and computer storage medium | |
| WO2019029419A1 (en) | Method and device for pass-through of service frequency | |
| WO2018090856A1 (en) | Method and device for building flexible ethernet group | |
| US12341653B2 (en) | Service flow adjustment method and communication apparatus | |
| EP4557695A1 (en) | Communication method, related apparatus and computer-readable storage medium | |
| US9479619B2 (en) | Transmission apparatus, transmission system, and transmission method | |
| WO2021115215A1 (en) | Data transmission method, communication device and storage medium | |
| CN116132379A (en) | Network and resource allocation system based on TSN and FlexE | |
| US20030161344A1 (en) | Method and device for transporting ethernet frames over transport SDH/SONET network | |
| CN117579220A (en) | A fault code block processing method and device | |
| US20040105453A1 (en) | Capacity re-use in data communication networks | |
| WO2025161868A1 (en) | Code block processing method and apparatus, device, system, storage medium and program product | |
| WO2021013025A1 (en) | Data receiving method and apparatus, and data sending method and apparatus | |
| WO2020114084A1 (en) | Message forwarding method and apparatus | |
| WO2023231764A1 (en) | Service data processing method and device | |
| WO2019023824A1 (en) | Method and device for bit block stream processing, rate matching and exchange |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25747444 Country of ref document: EP Kind code of ref document: A1 |